summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-10-08 07:23:31 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-10-08 07:23:31 +0000
commit1b3b70e371d10ec9a1272bd10f7e08d43e63b511 (patch)
treecc1162a0e626dfd12a80e43ae07fdc73079227b7 /llvm/test/Transforms
parente2ff5b9223b9da46fbdbae2877dd6de91d3cc133 (diff)
downloadbcm5719-llvm-1b3b70e371d10ec9a1272bd10f7e08d43e63b511.tar.gz
bcm5719-llvm-1b3b70e371d10ec9a1272bd10f7e08d43e63b511.zip
GlobalOpt: Don't drop unused memberes of a Comdat
A linkonce_odr member of a COMDAT shouldn't be dropped if we need to keep the entire COMDAT group. This fixes PR21191. llvm-svn: 219283
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/GlobalOpt/pr21191.ll19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/Transforms/GlobalOpt/pr21191.ll b/llvm/test/Transforms/GlobalOpt/pr21191.ll
new file mode 100644
index 00000000000..39b8eee9a25
--- /dev/null
+++ b/llvm/test/Transforms/GlobalOpt/pr21191.ll
@@ -0,0 +1,19 @@
+; RUN: opt < %s -globalopt -S | FileCheck %s
+
+$c = comdat any
+; CHECK: $c = comdat any
+
+define linkonce_odr void @foo() comdat $c {
+ ret void
+}
+; CHECK: define linkonce_odr void @foo() comdat $c
+
+define linkonce_odr void @bar() comdat $c {
+ ret void
+}
+; CHECK: define linkonce_odr void @bar() comdat $c
+
+define void @zed() {
+ call void @foo()
+ ret void
+}
OpenPOWER on IntegriCloud