diff options
author | Vitaly Buka <vitalybuka@google.com> | 2018-04-10 00:53:16 +0000 |
---|---|---|
committer | Vitaly Buka <vitalybuka@google.com> | 2018-04-10 00:53:16 +0000 |
commit | 6c05a3bb718d562859dcb164fe1a85756da12e8f (patch) | |
tree | 8ea6bc511e7a7ddb7f439ab3b1bf7c1bf070a2d2 | |
parent | 0274632ee6eede14d2eb7efeb488c1775611a9dd (diff) | |
download | bcm5719-llvm-6c05a3bb718d562859dcb164fe1a85756da12e8f.tar.gz bcm5719-llvm-6c05a3bb718d562859dcb164fe1a85756da12e8f.zip |
Object: Don't mark alias unconditionally defined
Summary:
Can't remove EmitAssignment override as llvm/test/Object/X86/nm-bitcodeweak.test
expects this behavior.
Reviewers: pcc, espindola
Subscribers: mehdi_amini, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D44596
llvm-svn: 329651
-rw-r--r-- | llvm/lib/Object/RecordStreamer.cpp | 5 | ||||
-rw-r--r-- | llvm/test/LTO/X86/symver-asm3.ll | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/Object/RecordStreamer.cpp b/llvm/lib/Object/RecordStreamer.cpp index 74130901d32..21577bb5696 100644 --- a/llvm/lib/Object/RecordStreamer.cpp +++ b/llvm/lib/Object/RecordStreamer.cpp @@ -216,7 +216,10 @@ void RecordStreamer::flushSymverDirectives() { // TODO: Handle "@@@". Depending on SymbolAttribute value it needs to be // converted into @ or @@. const MCExpr *Value = MCSymbolRefExpr::create(Aliasee, getContext()); - EmitAssignment(Alias, Value); + if (IsDefined) + markDefined(*Alias); + // Don't use EmitAssignment override as it always marks alias as defined. + MCStreamer::EmitAssignment(Alias, Value); if (Attr != MCSA_Invalid) EmitSymbolAttribute(Alias, Attr); } diff --git a/llvm/test/LTO/X86/symver-asm3.ll b/llvm/test/LTO/X86/symver-asm3.ll index 90cee28bf60..0ae8f88c489 100644 --- a/llvm/test/LTO/X86/symver-asm3.ll +++ b/llvm/test/LTO/X86/symver-asm3.ll @@ -12,9 +12,11 @@ module asm "foo1:" module asm ".symver foo1, foo@@@VER1" ; CHECK-DAG: t foo@@VER1 +module asm ".global foo2" module asm ".symver foo2, foo@@@VER2" ; CHECK-DAG: U foo2 -; CHECK-DAG: t foo@VER2 +; CHECK-DAG: U foo@VER2 +module asm "call foo2" module asm ".symver foo3, foo@@@VER3" ; CHECK-DAG: t foo@@VER3 @@ -23,7 +25,7 @@ module asm ".symver foo4, foo@@@VER4" ; CHECK-DAG: T foo@@VER4 module asm ".symver foo5, foo@@@VER5" -; CHECK-DAG: T foo@VER5 +; CHECK-DAG: U foo@VER5 module asm "foo3:" ; CHECK-DAG: t foo3 |