mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-27 21:50:40 +00:00
Fix symbol value computation when part of the expression is weak.
This matches the behaviour of the gnu assembler and is part of fixing pr24486. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245576 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
950d9fd449
commit
9a6dbcb2d8
@ -137,7 +137,7 @@ static bool getSymbolOffsetImpl(const MCAsmLayout &Layout, const MCSymbol &S,
|
||||
|
||||
// If SD is a variable, evaluate it.
|
||||
MCValue Target;
|
||||
if (!S.getVariableValue()->evaluateAsRelocatable(Target, &Layout, nullptr))
|
||||
if (!S.getVariableValue()->evaluateAsValue(Target, Layout))
|
||||
report_fatal_error("unable to evaluate offset for variable '" +
|
||||
S.getName() + "'");
|
||||
|
||||
|
@ -1,9 +1,13 @@
|
||||
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux < %s | llvm-readobj -r | FileCheck %s
|
||||
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux < %s | llvm-readobj -r -t | FileCheck %s
|
||||
|
||||
// CHECK: Section {{.*}} .rela.text {
|
||||
// CHECK-NEXT: 0x0 R_X86_64_32 d 0x0
|
||||
// CHECK-NEXT: }
|
||||
|
||||
// CHECK: Symbol {
|
||||
// CHECK: Name: d2
|
||||
// CHECK-NEXT: Value: 0x2A
|
||||
|
||||
a:
|
||||
b = a
|
||||
c = a
|
||||
@ -16,3 +20,4 @@ a2:
|
||||
.weak b2
|
||||
b2 = a2
|
||||
c2 = b2 - a2
|
||||
d2 = b2 - a2 + 42
|
||||
|
Loading…
Reference in New Issue
Block a user