[llvm] r329651 - Object: Don't mark alias unconditionally defined
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 9 17:53:17 PDT 2018
Author: vitalybuka
Date: Mon Apr 9 17:53:16 2018
New Revision: 329651
URL: http://llvm.org/viewvc/llvm-project?rev=329651&view=rev
Log:
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
Modified:
llvm/trunk/lib/Object/RecordStreamer.cpp
llvm/trunk/test/LTO/X86/symver-asm3.ll
Modified: llvm/trunk/lib/Object/RecordStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/RecordStreamer.cpp?rev=329651&r1=329650&r2=329651&view=diff
==============================================================================
--- llvm/trunk/lib/Object/RecordStreamer.cpp (original)
+++ llvm/trunk/lib/Object/RecordStreamer.cpp Mon Apr 9 17:53:16 2018
@@ -216,7 +216,10 @@ void RecordStreamer::flushSymverDirectiv
// 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);
}
Modified: llvm/trunk/test/LTO/X86/symver-asm3.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/LTO/X86/symver-asm3.ll?rev=329651&r1=329650&r2=329651&view=diff
==============================================================================
--- llvm/trunk/test/LTO/X86/symver-asm3.ll (original)
+++ llvm/trunk/test/LTO/X86/symver-asm3.ll Mon Apr 9 17:53:16 2018
@@ -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 at VER2
+; CHECK-DAG: U foo at 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 at VER5
+; CHECK-DAG: U foo at VER5
module asm "foo3:"
; CHECK-DAG: t foo3
More information about the llvm-commits
mailing list