diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-29 14:26:06 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-29 14:26:06 +0000 |
| commit | 8d6fbc3a4e92398bd1f50d9a3c731dde292c7587 (patch) | |
| tree | 84c0fc51c78546feeb94aab809d5fb857b616c09 | |
| parent | 9bcbfd7d42e56244ce78d8f54aeceec8f07d8c40 (diff) | |
| download | bcm5719-llvm-8d6fbc3a4e92398bd1f50d9a3c731dde292c7587.tar.gz bcm5719-llvm-8d6fbc3a4e92398bd1f50d9a3c731dde292c7587.zip | |
IRObject: Mark extern_weak as weak.
llvm-svn: 262222
| -rw-r--r-- | llvm/lib/Object/IRObjectFile.cpp | 3 | ||||
| -rw-r--r-- | llvm/test/Object/X86/nm-ir.ll | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/Object/IRObjectFile.cpp b/llvm/lib/Object/IRObjectFile.cpp index 8b8464842de..5548a3822b8 100644 --- a/llvm/lib/Object/IRObjectFile.cpp +++ b/llvm/lib/Object/IRObjectFile.cpp @@ -231,7 +231,8 @@ uint32_t IRObjectFile::getSymbolFlags(DataRefImpl Symb) const { Res |= BasicSymbolRef::SF_Global; if (GV->hasCommonLinkage()) Res |= BasicSymbolRef::SF_Common; - if (GV->hasLinkOnceLinkage() || GV->hasWeakLinkage()) + if (GV->hasLinkOnceLinkage() || GV->hasWeakLinkage() || + GV->hasExternalWeakLinkage()) Res |= BasicSymbolRef::SF_Weak; if (GV->getName().startswith("llvm.")) diff --git a/llvm/test/Object/X86/nm-ir.ll b/llvm/test/Object/X86/nm-ir.ll index d517b09d3e9..1742a8f938e 100644 --- a/llvm/test/Object/X86/nm-ir.ll +++ b/llvm/test/Object/X86/nm-ir.ll @@ -6,6 +6,7 @@ ; CHECK-NEXT: t f2 ; CHECK-NEXT: W f3 ; CHECK-NEXT: U f4 +; CHECK-NEXT: w f5 ; CHECK-NEXT: D g1 ; CHECK-NEXT: d g2 ; CHECK-NEXT: C g3 @@ -31,6 +32,7 @@ module asm ".long undef_asm_sym" @a2 = internal alias i32, i32* @g1 define void @f1() { + call void @f5() ret void } @@ -43,3 +45,5 @@ define linkonce_odr void @f3() { } declare void @f4() + +declare extern_weak void @f5() |

