diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-03-24 15:23:01 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-03-24 15:23:01 +0000 |
| commit | e1c42ac12b29462944af83719c92fa5546da6a90 (patch) | |
| tree | 43fe4b6e0f2aed900155d04dc6e03804d87f52aa /llvm/test/Linker | |
| parent | d8c1be66abc7ba4997656b5c3f87a94839cbc617 (diff) | |
| download | bcm5719-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.ll | 12 | ||||
| -rw-r--r-- | llvm/test/Linker/pr27044.ll | 6 |
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 +} |

