aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2009-02-13 15:31:46 +0000
committerNick Lewycky <nicholas@mxc.ca>2009-02-13 15:31:46 +0000
commit5ace5827a7797a59e02b5384ad1ae1c0b81057f6 (patch)
treefc859fd7a2713267c986d57d53752c09052e360e /test
parent511a1946433d2c3dc049eba0f395cb79b54c1038 (diff)
downloadexternal_llvm-5ace5827a7797a59e02b5384ad1ae1c0b81057f6.zip
external_llvm-5ace5827a7797a59e02b5384ad1ae1c0b81057f6.tar.gz
external_llvm-5ace5827a7797a59e02b5384ad1ae1c0b81057f6.tar.bz2
On strtod and friends, mark 'endptr' nocapture in the function prototype, and
mark the first argument nocapture if endptr=NULL for each particular call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64453 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/SimplifyLibCalls/2009-02-12-StrTo.ll13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/Transforms/SimplifyLibCalls/2009-02-12-StrTo.ll b/test/Transforms/SimplifyLibCalls/2009-02-12-StrTo.ll
new file mode 100644
index 0000000..3d51d78
--- /dev/null
+++ b/test/Transforms/SimplifyLibCalls/2009-02-12-StrTo.ll
@@ -0,0 +1,13 @@
+; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis > %t
+; RUN: grep nocapture %t | count 2
+; RUN: grep null %t | grep nocapture | count 1
+
+; Test that we do add nocapture to the declaration, and to the second call only.
+
+declare float @strtof(i8* %s, i8** %endptr, i32 %base)
+
+define void @foo(i8* %x, i8** %endptr) {
+ call float @strtof(i8* %x, i8** %endptr, i32 0)
+ call float @strtof(i8* %x, i8** null, i32 0)
+ ret void
+}