1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s -o - \ 2*9880d681SAndroid Build Coastguard Worker// RUN: | llvm-readobj -t -r | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerlocal1: 5*9880d681SAndroid Build Coastguard Workerexternal_aliased_to_local = local1 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker .globl global_aliased_to_external 8*9880d681SAndroid Build Coastguard Workerglobal_aliased_to_external = external1 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker .globl global_aliased_to_local 11*9880d681SAndroid Build Coastguard Workerlocal2: 12*9880d681SAndroid Build Coastguard Workerglobal_aliased_to_local = local2 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker .weak weak_aliased_to_external 15*9880d681SAndroid Build Coastguard Workerweak_aliased_to_external = external2 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker// Generate relocs against the above aliases. 18*9880d681SAndroid Build Coastguard Worker .long external_aliased_to_local 19*9880d681SAndroid Build Coastguard Worker .long global_aliased_to_external 20*9880d681SAndroid Build Coastguard Worker .long global_aliased_to_local 21*9880d681SAndroid Build Coastguard Worker .long weak_aliased_to_external 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker// CHECK: Relocations [ 24*9880d681SAndroid Build Coastguard Worker// CHECK: 0x0 IMAGE_REL_I386_DIR32 external_aliased_to_local 25*9880d681SAndroid Build Coastguard Worker// CHECK: 0x4 IMAGE_REL_I386_DIR32 external1 26*9880d681SAndroid Build Coastguard Worker// CHECK: 0x8 IMAGE_REL_I386_DIR32 global_aliased_to_local 27*9880d681SAndroid Build Coastguard Worker// CHECK: 0xC IMAGE_REL_I386_DIR32 external2 28*9880d681SAndroid Build Coastguard Worker// CHECK: ] 29*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [ 30*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol { 31*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Name: .text 32*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0 33*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: .text (1) 34*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: BaseType: Null (0x0) 35*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ComplexType: Null (0x0) 36*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: StorageClass: Static (0x3) 37*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxSymbolCount: 1 38*9880d681SAndroid Build Coastguard Worker// CHECK: } 39*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 40*9880d681SAndroid Build Coastguard Worker// CHECK: Name: local1 41*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0 42*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: .text (1) 43*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: BaseType: Null (0x0) 44*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ComplexType: Null (0x0) 45*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: StorageClass: Static (0x3) 46*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxSymbolCount: 0 47*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 48*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol { 49*9880d681SAndroid Build Coastguard Worker// CHECK: Name: global_aliased_to_external 50*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0 51*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0) 52*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: BaseType: Null (0x0) 53*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ComplexType: Null (0x0) 54*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: StorageClass: External (0x2) 55*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxSymbolCount: 0 56*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 57*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol { 58*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Name: external1 59*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0 60*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0) 61*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: BaseType: Null (0x0) 62*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ComplexType: Null (0x0) 63*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: StorageClass: External (0x2) 64*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxSymbolCount: 0 65*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 66*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol { 67*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Name: global_aliased_to_local 68*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0 69*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: .text (1) 70*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: BaseType: Null (0x0) 71*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ComplexType: Null (0x0) 72*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: StorageClass: External (0x2) 73*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxSymbolCount: 0 74*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 75*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol { 76*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Name: local2 77*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0 78*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: .text (1) 79*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: BaseType: Null (0x0) 80*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ComplexType: Null (0x0) 81*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: StorageClass: Static (0x3) 82*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxSymbolCount: 0 83*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 84*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol { 85*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Name: weak_aliased_to_external 86*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0 87*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0) 88*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: BaseType: Null (0x0) 89*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ComplexType: Null (0x0) 90*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: StorageClass: WeakExternal (0x69) 91*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxSymbolCount: 1 92*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxWeakExternal { 93*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Linked: external2 94*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Search: Library (0x2) 95*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 96*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 97*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol { 98*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Name: external2 99*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0 100*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0) 101*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: BaseType: Null (0x0) 102*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ComplexType: Null (0x0) 103*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: StorageClass: External (0x2) 104*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AuxSymbolCount: 0 105*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 106*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ] 107