1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -r -expand-relocs | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker .data 4*9880d681SAndroid Build Coastguard Worker .long undef 5*9880d681SAndroid Build Coastguard Worker .long (undef + 4) 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker .globl local_a_ext 8*9880d681SAndroid Build Coastguard Workerlocal_a_ext: 9*9880d681SAndroid Build Coastguard Worker .long local_a_ext 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerlocal_a: 12*9880d681SAndroid Build Coastguard Worker .long 0 13*9880d681SAndroid Build Coastguard Workerlocal_a_elt: 14*9880d681SAndroid Build Coastguard Worker .long 0 15*9880d681SAndroid Build Coastguard Workerlocal_b: 16*9880d681SAndroid Build Coastguard Worker .long local_b - local_c + 245 17*9880d681SAndroid Build Coastguard Worker .long 0 18*9880d681SAndroid Build Coastguard Workerlocal_c: 19*9880d681SAndroid Build Coastguard Worker .long 0 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker .long local_a_elt + 1 23*9880d681SAndroid Build Coastguard Worker .long local_a_elt + 10 24*9880d681SAndroid Build Coastguard Worker .short local_a_elt + 20 25*9880d681SAndroid Build Coastguard Worker .byte local_a_elt + 89 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker .const 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker .long 30*9880d681SAndroid Build Coastguard Workerbar: 31*9880d681SAndroid Build Coastguard Worker .long local_a_elt - bar + 33 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard WorkerL0: 34*9880d681SAndroid Build Coastguard Worker .long L0 35*9880d681SAndroid Build Coastguard Worker .long L1 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker .text 38*9880d681SAndroid Build Coastguard Worker_f0: 39*9880d681SAndroid Build Coastguard WorkerL1: 40*9880d681SAndroid Build Coastguard Worker jmp 0xbabecafe 41*9880d681SAndroid Build Coastguard Worker jmp L0 42*9880d681SAndroid Build Coastguard Worker jmp L1 43*9880d681SAndroid Build Coastguard Worker ret 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker .objc_class_name_A=0 46*9880d681SAndroid Build Coastguard Worker .globl .objc_class_name_A 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Worker .text 49*9880d681SAndroid Build Coastguard Worker .globl _f1 50*9880d681SAndroid Build Coastguard Worker .weak_definition _f1 51*9880d681SAndroid Build Coastguard Worker_f1: 52*9880d681SAndroid Build Coastguard Worker .data 53*9880d681SAndroid Build Coastguard Worker .long _f1 54*9880d681SAndroid Build Coastguard Worker .long _f1 + 4 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Worker// CHECK: Relocations [ 57*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section __text { 58*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 59*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x6 60*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 1 61*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 62*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 63*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: __const 64*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 65*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 66*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x1 67*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 1 68*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 69*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 70*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: - (0) 71*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 72*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 73*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section __data { 74*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 75*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x2F 76*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 77*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 78*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 79*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol: _f1 80*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 81*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 82*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x2B 83*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 84*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 85*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 86*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol: _f1 87*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 88*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 89*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x2A 90*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 91*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 0 92*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 93*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0x1D 94*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 95*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 96*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x28 97*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 98*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 1 99*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 100*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0x1D 101*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 102*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 103*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x24 104*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 105*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 106*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 107*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0x1D 108*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 109*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 110*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x20 111*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 112*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 113*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 114*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0x1D 115*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 116*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 117*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x14 118*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 119*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 120*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_LOCAL_SECTDIFF (4) 121*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0x21 122*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 123*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 124*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x0 125*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 126*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 127*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_PAIR (1) 128*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0x29 129*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 130*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 131*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x8 132*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 133*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 134*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 135*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: __data 136*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 137*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 138*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x4 139*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 140*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 141*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 142*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol: undef 143*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 144*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 145*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x0 146*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 147*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 148*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 149*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Symbol: undef 150*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 151*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 152*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section __const { 153*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 154*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x8 155*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 156*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 157*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 158*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: __text 159*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 160*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 161*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x4 162*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 163*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 164*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_VANILLA (0) 165*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Section: __const 166*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 167*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 168*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x0 169*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 170*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 171*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_LOCAL_SECTDIFF (4) 172*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0x1D 173*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 174*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Relocation { 175*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x0 176*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: PCRel: 0 177*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Length: 2 178*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: GENERIC_RELOC_PAIR (1) 179*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Value: 0x40 180*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 181*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: } 182*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:] 183