summaryrefslogtreecommitdiffstats
path: root/llvm/test/Linker
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-03-24 15:23:01 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-03-24 15:23:01 +0000
commite1c42ac12b29462944af83719c92fa5546da6a90 (patch)
tree43fe4b6e0f2aed900155d04dc6e03804d87f52aa /llvm/test/Linker
parentd8c1be66abc7ba4997656b5c3f87a94839cbc617 (diff)
downloadbcm5719-llvm-e1c42ac12b29462944af83719c92fa5546da6a90.tar.gz
bcm5719-llvm-e1c42ac12b29462944af83719c92fa5546da6a90.zip
Fix another case where we were unconditionally linking linkonce GVs.
With this I think that now llvm-link, lld and the gold plugin should agree on which symbol is kept. llvm-svn: 264292
Diffstat (limited to 'llvm/test/Linker')
-rw-r--r--llvm/test/Linker/Inputs/pr27044.ll12
-rw-r--r--llvm/test/Linker/pr27044.ll6
2 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/Linker/Inputs/pr27044.ll b/llvm/test/Linker/Inputs/pr27044.ll
index 907643c115d..c949a93243e 100644
--- a/llvm/test/Linker/Inputs/pr27044.ll
+++ b/llvm/test/Linker/Inputs/pr27044.ll
@@ -1,7 +1,19 @@
$foo = comdat any
+$bar = comdat any
+
define linkonce_odr i32 @f1() comdat($foo) {
ret i32 1
}
+
define void @f2() comdat($foo) {
+ call i32 @g2()
ret void
}
+
+define linkonce_odr i32 @g1() comdat($bar) {
+ ret i32 1
+}
+
+define linkonce_odr i32 @g2() comdat($bar) {
+ ret i32 1
+}
diff --git a/llvm/test/Linker/pr27044.ll b/llvm/test/Linker/pr27044.ll
index 58d21656f58..59e6c50bbfa 100644
--- a/llvm/test/Linker/pr27044.ll
+++ b/llvm/test/Linker/pr27044.ll
@@ -1,8 +1,14 @@
; RUN: llvm-link -S %s %p/Inputs/pr27044.ll -o - | FileCheck %s
; CHECK: define i32 @f1() {
+; CHECK: define i32 @g1() {
; CHECK: define void @f2() comdat($foo) {
+; CHECK: define linkonce_odr i32 @g2() comdat($bar) {
define i32 @f1() {
ret i32 0
}
+
+define i32 @g1() {
+ ret i32 0
+}
OpenPOWER on IntegriCloud