aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-02-27 18:45:03 +0000
committerChad Rosier <mcrosier@apple.com>2012-02-27 18:45:03 +0000
commit07d164266d9563919d07d423ce00655fcfa8a4d4 (patch)
tree293202e9dc43e057e4516e9ce64c5df49a333d6f
parent1b1a507098bac79bb1d48db09f52ba98b000df9a (diff)
Test case for r151429/r151430, which ensures llvm.lifetime intrinsics are not
being emitted at -O0, but are emitted when optimizations are enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151533 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/CodeGen/lifetime.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/CodeGen/lifetime.c b/test/CodeGen/lifetime.c
new file mode 100644
index 0000000000..2203840d4b
--- /dev/null
+++ b/test/CodeGen/lifetime.c
@@ -0,0 +1,23 @@
+// RUN: %clang -S -emit-llvm -o - -O0 %s | FileCheck %s -check-prefix=O0
+// RUN: %clang -S -emit-llvm -o - -O1 %s | FileCheck %s -check-prefix=O1
+// RUN: %clang -S -emit-llvm -o - -O2 %s | FileCheck %s -check-prefix=O2
+// RUN: %clang -S -emit-llvm -o - -O3 %s | FileCheck %s -check-prefix=O3
+
+extern void use(char *a);
+
+__attribute__((always_inline)) void helper_no_markers() {
+ char a;
+ use(&a);
+}
+
+void lifetime_test() {
+// O0: lifetime_test
+// O1: lifetime_test
+// O2: lifetime_test
+// O3: lifetime_test
+// O0-NOT: @llvm.lifetime.start
+// O1: @llvm.lifetime.start
+// O2: @llvm.lifetime.start
+// O3: @llvm.lifetime.start
+ helper_no_markers();
+}