mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-01 07:30:33 +00:00
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329651 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
af04f87166
commit
b6a38e0857
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user