aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/GlobalOpt
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-07-20 23:33:15 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-07-20 23:33:15 +0000
commit64f2f910bd48c123a6b5945ebe90b018f7bea4d5 (patch)
tree22a781d2a92c90dc68f3fa31df2ea7ff47d1835d /test/Transforms/GlobalOpt
parentc5b8b590ee43d05816bf94ae54c77cb6275b98e4 (diff)
downloadexternal_llvm-64f2f910bd48c123a6b5945ebe90b018f7bea4d5.zip
external_llvm-64f2f910bd48c123a6b5945ebe90b018f7bea4d5.tar.gz
external_llvm-64f2f910bd48c123a6b5945ebe90b018f7bea4d5.tar.bz2
Don't crash when llvm.compiler.used becomes empty.
GlobalOpt simplifies llvm.compiler.used by removing any members that are also in the more strict llvm.used. Handle the special case where llvm.compiler.used becomes empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186778 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/GlobalOpt')
-rw-r--r--test/Transforms/GlobalOpt/compiler-used.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Transforms/GlobalOpt/compiler-used.ll b/test/Transforms/GlobalOpt/compiler-used.ll
new file mode 100644
index 0000000..a710d27
--- /dev/null
+++ b/test/Transforms/GlobalOpt/compiler-used.ll
@@ -0,0 +1,16 @@
+; RUN: opt < %s -globalopt -S | FileCheck %s
+
+; Test that when all members of llvm.compiler.used are found to be redundant
+; we delete it instead of crashing.
+
+define void @foo() {
+ ret void
+}
+
+@llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
+
+@llvm.compiler.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
+
+; CHECK-NOT: @llvm.compiler.used
+; CHECK: @llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
+; CHECK-NOT: @llvm.compiler.used