mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-11 13:46:13 +00:00
746036c22a
We were creating a weak external that tried to reference a static symbol. That would always fail to link with link.exe. We now create an external symbol in the same position as the local and refer to that. This works with link.exe and matches what gas does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270906 91177308-0d34-0410-b5e6-96231b3b80d8
44 lines
1.3 KiB
ArmAsm
44 lines
1.3 KiB
ArmAsm
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s -o %t.o
|
|
// RUN: llvm-readobj -t %t.o | FileCheck %s
|
|
|
|
// test that we create an external symbol for a to point to.
|
|
|
|
.data
|
|
.long 123
|
|
b:
|
|
.long 42
|
|
.weak a
|
|
a=b
|
|
|
|
// CHECK: Symbol {
|
|
// CHECK: Name: b
|
|
// CHECK-NEXT: Value: 4
|
|
// CHECK-NEXT: Section: .data (2)
|
|
// CHECK-NEXT: BaseType: Null (0x0)
|
|
// CHECK-NEXT: ComplexType: Null (0x0)
|
|
// CHECK-NEXT: StorageClass: Static (0x3)
|
|
// CHECK-NEXT: AuxSymbolCount: 0
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Symbol {
|
|
// CHECK-NEXT: Name: a
|
|
// CHECK-NEXT: Value: 0
|
|
// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
|
|
// CHECK-NEXT: BaseType: Null (0x0)
|
|
// CHECK-NEXT: ComplexType: Null (0x0)
|
|
// CHECK-NEXT: StorageClass: WeakExternal (0x69)
|
|
// CHECK-NEXT: AuxSymbolCount: 1
|
|
// CHECK-NEXT: AuxWeakExternal {
|
|
// CHECK-NEXT: Linked: .weak.a.default (9)
|
|
// CHECK-NEXT: Search: Library (0x2)
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Symbol {
|
|
// CHECK-NEXT: Name: .weak.a.default
|
|
// CHECK-NEXT: Value: 4
|
|
// CHECK-NEXT: Section: .data (2)
|
|
// CHECK-NEXT: BaseType: Null (0x0)
|
|
// CHECK-NEXT: ComplexType: Null (0x0)
|
|
// CHECK-NEXT: StorageClass: External (0x2)
|
|
// CHECK-NEXT: AuxSymbolCount: 0
|
|
// CHECK-NEXT: }
|