1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker .text 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker// FIXME: llvm-mc doesn't handle this in a way we can make compatible with 'as', 6*9880d681SAndroid Build Coastguard Worker// currently, because of how we handle assembler variables. 7*9880d681SAndroid Build Coastguard Worker// 8*9880d681SAndroid Build Coastguard Worker// See <rdar://problem/7763719> improve handling of absolute symbols 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker// _baz = 4 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker_foo: 13*9880d681SAndroid Build Coastguard Worker xorl %eax,%eax 14*9880d681SAndroid Build Coastguard Worker_g0: 15*9880d681SAndroid Build Coastguard Worker xorl %eax,%eax 16*9880d681SAndroid Build Coastguard WorkerL0: 17*9880d681SAndroid Build Coastguard Worker jmp 4 18*9880d681SAndroid Build Coastguard Worker// jmp _baz 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' for historical reasons widens this jump, but doesn't emit 21*9880d681SAndroid Build Coastguard Worker// a relocation. It seems like 'as' widens any jump that is not to a temporary, 22*9880d681SAndroid Build Coastguard Worker// which is inherited from the x86_32 behavior, even though x86_64 could do 23*9880d681SAndroid Build Coastguard Worker// better. 24*9880d681SAndroid Build Coastguard Worker// jmp _g0 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker jmp L0 27*9880d681SAndroid Build Coastguard Worker jmp _g1 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' gets this wrong as well, even though it could get it right 30*9880d681SAndroid Build Coastguard Worker// given the other things we do on x86_64. It is using a short jump here. This 31*9880d681SAndroid Build Coastguard Worker// is probably fallout of the hack that exists for x86_32. 32*9880d681SAndroid Build Coastguard Worker// jmp L1 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker// FIXME: We don't support this, and would currently get it wrong, it should be a jump to an absolute address. 35*9880d681SAndroid Build Coastguard Worker// jmp L0 - _g0 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker// jmp _g1 - _g0 38*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' comes up with 'SIGNED' here instead of 'BRANCH'. 39*9880d681SAndroid Build Coastguard Worker// jmp _g1 - L1 40*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' gets this completely wrong. It ends up with a single 41*9880d681SAndroid Build Coastguard Worker// branch relocation. Fallout from the other delta hack? 42*9880d681SAndroid Build Coastguard Worker// jmp L1 - _g0 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Worker jmp _g2 45*9880d681SAndroid Build Coastguard Worker jmp L2 46*9880d681SAndroid Build Coastguard Worker jmp _g3 47*9880d681SAndroid Build Coastguard Worker jmp L3 48*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' gets this completely wrong. It ends up with a single 49*9880d681SAndroid Build Coastguard Worker// branch relocation. Fallout from the other delta hack? 50*9880d681SAndroid Build Coastguard Worker// jmp L2 - _g3 51*9880d681SAndroid Build Coastguard Worker// jmp _g3 - _g2 52*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' comes up with 'SIGNED' here instead of 'BRANCH'. 53*9880d681SAndroid Build Coastguard Worker// jmp _g3 - L3 54*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' gets this completely wrong. It ends up with a single 55*9880d681SAndroid Build Coastguard Worker// branch relocation. Fallout from the other delta hack? 56*9880d681SAndroid Build Coastguard Worker// jmp L3 - _g2 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker movl %eax,4(%rip) 59*9880d681SAndroid Build Coastguard Worker// movl %eax,_baz(%rip) 60*9880d681SAndroid Build Coastguard Worker movl %eax,_g0(%rip) 61*9880d681SAndroid Build Coastguard Worker movl %eax,L0(%rip) 62*9880d681SAndroid Build Coastguard Worker movl %eax,_g1(%rip) 63*9880d681SAndroid Build Coastguard Worker movl %eax,L1(%rip) 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' gets most of these wrong, and there is an ambiguity in ATT 66*9880d681SAndroid Build Coastguard Worker// syntax in what they should mean in the first place (absolute or 67*9880d681SAndroid Build Coastguard Worker// rip-relative address). 68*9880d681SAndroid Build Coastguard Worker// movl %eax,L0 - _g0(%rip) 69*9880d681SAndroid Build Coastguard Worker// movl %eax,_g1 - _g0(%rip) 70*9880d681SAndroid Build Coastguard Worker// movl %eax,_g1 - L1(%rip) 71*9880d681SAndroid Build Coastguard Worker// movl %eax,L1 - _g0(%rip) 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Worker movl %eax,_g2(%rip) 74*9880d681SAndroid Build Coastguard Worker movl %eax,L2(%rip) 75*9880d681SAndroid Build Coastguard Worker movl %eax,_g3(%rip) 76*9880d681SAndroid Build Coastguard Worker movl %eax,L3(%rip) 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Worker// FIXME: Darwin 'as' gets most of these wrong, and there is an ambiguity in ATT 79*9880d681SAndroid Build Coastguard Worker// syntax in what they should mean in the first place (absolute or 80*9880d681SAndroid Build Coastguard Worker// rip-relative address). 81*9880d681SAndroid Build Coastguard Worker// movl %eax,L2 - _g2(%rip) 82*9880d681SAndroid Build Coastguard Worker// movl %eax,_g3 - _g2(%rip) 83*9880d681SAndroid Build Coastguard Worker// movl %eax,_g3 - L3(%rip) 84*9880d681SAndroid Build Coastguard Worker// movl %eax,L3 - _g2(%rip) 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Worker_g1: 87*9880d681SAndroid Build Coastguard Worker xorl %eax,%eax 88*9880d681SAndroid Build Coastguard WorkerL1: 89*9880d681SAndroid Build Coastguard Worker xorl %eax,%eax 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Worker .data 92*9880d681SAndroid Build Coastguard Worker_g2: 93*9880d681SAndroid Build Coastguard Worker xorl %eax,%eax 94*9880d681SAndroid Build Coastguard WorkerL2: 95*9880d681SAndroid Build Coastguard Worker .quad 4 96*9880d681SAndroid Build Coastguard Worker// .quad _baz 97*9880d681SAndroid Build Coastguard Worker .quad _g2 98*9880d681SAndroid Build Coastguard Worker .quad L2 99*9880d681SAndroid Build Coastguard Worker .quad _g3 100*9880d681SAndroid Build Coastguard Worker .quad L3 101*9880d681SAndroid Build Coastguard Worker .quad L2 - _g2 102*9880d681SAndroid Build Coastguard Worker .quad _g3 - _g2 103*9880d681SAndroid Build Coastguard Worker .quad L3 - _g2 104*9880d681SAndroid Build Coastguard Worker .quad L3 - _g3 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker .quad _g0 107*9880d681SAndroid Build Coastguard Worker .quad L0 108*9880d681SAndroid Build Coastguard Worker .quad _g1 109*9880d681SAndroid Build Coastguard Worker .quad L1 110*9880d681SAndroid Build Coastguard Worker .quad L0 - _g0 111*9880d681SAndroid Build Coastguard Worker .quad _g1 - _g0 112*9880d681SAndroid Build Coastguard Worker .quad L1 - _g0 113*9880d681SAndroid Build Coastguard Worker .quad L1 - _g1 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Worker_g3: 116*9880d681SAndroid Build Coastguard Worker xorl %eax,%eax 117*9880d681SAndroid Build Coastguard WorkerL3: 118*9880d681SAndroid Build Coastguard Worker xorl %eax,%eax 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Worker// FIXME: Unfortunately, we do not get these relocations in exactly the same 121*9880d681SAndroid Build Coastguard Worker// order as Darwin 'as'. It turns out that 'as' *usually* ends up emitting 122*9880d681SAndroid Build Coastguard Worker// them in reverse address order, but sometimes it allocates some 123*9880d681SAndroid Build Coastguard Worker// additional relocations late so these end up precede the other entries. I 124*9880d681SAndroid Build Coastguard Worker// haven't figured out the exact criteria for this yet. 125*9880d681SAndroid Build Coastguard Worker 126*9880d681SAndroid Build Coastguard Worker// CHECK: File: <stdin> 127*9880d681SAndroid Build Coastguard Worker// CHECK: Format: Mach-O 64-bit x86-64 128*9880d681SAndroid Build Coastguard Worker// CHECK: Arch: x86_64 129*9880d681SAndroid Build Coastguard Worker// CHECK: AddressSize: 64bit 130*9880d681SAndroid Build Coastguard Worker// CHECK: MachHeader { 131*9880d681SAndroid Build Coastguard Worker// CHECK: Magic: Magic64 (0xFEEDFACF) 132*9880d681SAndroid Build Coastguard Worker// CHECK: CpuType: X86-64 (0x1000007) 133*9880d681SAndroid Build Coastguard Worker// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3) 134*9880d681SAndroid Build Coastguard Worker// CHECK: FileType: Relocatable (0x1) 135*9880d681SAndroid Build Coastguard Worker// CHECK: NumOfLoadCommands: 4 136*9880d681SAndroid Build Coastguard Worker// CHECK: SizeOfLoadCommands: 352 137*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 138*9880d681SAndroid Build Coastguard Worker// CHECK: ] 139*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved: 0x0 140*9880d681SAndroid Build Coastguard Worker// CHECK: } 141*9880d681SAndroid Build Coastguard Worker// CHECK: Sections [ 142*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 143*9880d681SAndroid Build Coastguard Worker// CHECK: Index: 0 144*9880d681SAndroid Build Coastguard Worker// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) 145*9880d681SAndroid Build Coastguard Worker// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 146*9880d681SAndroid Build Coastguard Worker// CHECK: Address: 0x0 147*9880d681SAndroid Build Coastguard Worker// CHECK: Size: 0x5E 148*9880d681SAndroid Build Coastguard Worker// CHECK: Offset: 384 149*9880d681SAndroid Build Coastguard Worker// CHECK: Alignment: 0 150*9880d681SAndroid Build Coastguard Worker// CHECK: RelocationOffset: 0x26C 151*9880d681SAndroid Build Coastguard Worker// CHECK: RelocationCount: 12 152*9880d681SAndroid Build Coastguard Worker// CHECK: Type: 0x0 153*9880d681SAndroid Build Coastguard Worker// CHECK: Attributes [ (0x800004) 154*9880d681SAndroid Build Coastguard Worker// CHECK: PureInstructions (0x800000) 155*9880d681SAndroid Build Coastguard Worker// CHECK: SomeInstructions (0x4) 156*9880d681SAndroid Build Coastguard Worker// CHECK: ] 157*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved1: 0x0 158*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved2: 0x0 159*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved3: 0x0 160*9880d681SAndroid Build Coastguard Worker// CHECK: SectionData ( 161*9880d681SAndroid Build Coastguard Worker// CHECK: 0000: 31C031C0 E9040000 00EBF9E9 00000000 |1.1.............| 162*9880d681SAndroid Build Coastguard Worker// CHECK: 0010: E9000000 00E90200 0000E900 000000E9 |................| 163*9880d681SAndroid Build Coastguard Worker// CHECK: 0020: 02000000 89050400 00008905 D2FFFFFF |................| 164*9880d681SAndroid Build Coastguard Worker// CHECK: 0030: 8905CEFF FFFF8905 00000000 89050200 |................| 165*9880d681SAndroid Build Coastguard Worker// CHECK: 0040: 00008905 00000000 89050200 00008905 |................| 166*9880d681SAndroid Build Coastguard Worker// CHECK: 0050: 00000000 89050200 000031C0 31C0 |..........1.1.| 167*9880d681SAndroid Build Coastguard Worker// CHECK: ) 168*9880d681SAndroid Build Coastguard Worker// CHECK: } 169*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 170*9880d681SAndroid Build Coastguard Worker// CHECK: Index: 1 171*9880d681SAndroid Build Coastguard Worker// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) 172*9880d681SAndroid Build Coastguard Worker// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) 173*9880d681SAndroid Build Coastguard Worker// CHECK: Address: 0x5E 174*9880d681SAndroid Build Coastguard Worker// CHECK: Size: 0x8E 175*9880d681SAndroid Build Coastguard Worker// CHECK: Offset: 478 176*9880d681SAndroid Build Coastguard Worker// CHECK: Alignment: 0 177*9880d681SAndroid Build Coastguard Worker// CHECK: RelocationOffset: 0x2CC 178*9880d681SAndroid Build Coastguard Worker// CHECK: RelocationCount: 16 179*9880d681SAndroid Build Coastguard Worker// CHECK: Type: 0x0 180*9880d681SAndroid Build Coastguard Worker// CHECK: Attributes [ (0x4) 181*9880d681SAndroid Build Coastguard Worker// CHECK: SomeInstructions (0x4) 182*9880d681SAndroid Build Coastguard Worker// CHECK: ] 183*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved1: 0x0 184*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved2: 0x0 185*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved3: 0x0 186*9880d681SAndroid Build Coastguard Worker// CHECK: SectionData ( 187*9880d681SAndroid Build Coastguard Worker// CHECK: 0000: 31C00400 00000000 00000000 00000000 |1...............| 188*9880d681SAndroid Build Coastguard Worker// CHECK: 0010: 00000200 00000000 00000000 00000000 |................| 189*9880d681SAndroid Build Coastguard Worker// CHECK: 0020: 00000200 00000000 00000200 00000000 |................| 190*9880d681SAndroid Build Coastguard Worker// CHECK: 0030: 00000000 00000000 00000200 00000000 |................| 191*9880d681SAndroid Build Coastguard Worker// CHECK: 0040: 00000200 00000000 00000000 00000000 |................| 192*9880d681SAndroid Build Coastguard Worker// CHECK: 0050: 00000200 00000000 00000000 00000000 |................| 193*9880d681SAndroid Build Coastguard Worker// CHECK: 0060: 00000200 00000000 00000200 00000000 |................| 194*9880d681SAndroid Build Coastguard Worker// CHECK: 0070: 00000000 00000000 00000200 00000000 |................| 195*9880d681SAndroid Build Coastguard Worker// CHECK: 0080: 00000200 00000000 000031C0 31C0 |..........1.1.| 196*9880d681SAndroid Build Coastguard Worker// CHECK: ) 197*9880d681SAndroid Build Coastguard Worker// CHECK: } 198*9880d681SAndroid Build Coastguard Worker// CHECK: ] 199*9880d681SAndroid Build Coastguard Worker// CHECK: Relocations [ 200*9880d681SAndroid Build Coastguard Worker// CHECK: Section __text { 201*9880d681SAndroid Build Coastguard Worker// CHECK: 0x56 1 2 1 X86_64_RELOC_SIGNED 0 _g3 202*9880d681SAndroid Build Coastguard Worker// CHECK: 0x50 1 2 1 X86_64_RELOC_SIGNED 0 _g3 203*9880d681SAndroid Build Coastguard Worker// CHECK: 0x4A 1 2 1 X86_64_RELOC_SIGNED 0 _g2 204*9880d681SAndroid Build Coastguard Worker// CHECK: 0x44 1 2 1 X86_64_RELOC_SIGNED 0 _g2 205*9880d681SAndroid Build Coastguard Worker// CHECK: 0x3E 1 2 1 X86_64_RELOC_SIGNED 0 _g1 206*9880d681SAndroid Build Coastguard Worker// CHECK: 0x38 1 2 1 X86_64_RELOC_SIGNED 0 _g1 207*9880d681SAndroid Build Coastguard Worker// CHECK: 0x20 1 2 1 X86_64_RELOC_BRANCH 0 _g3 208*9880d681SAndroid Build Coastguard Worker// CHECK: 0x1B 1 2 1 X86_64_RELOC_BRANCH 0 _g3 209*9880d681SAndroid Build Coastguard Worker// CHECK: 0x16 1 2 1 X86_64_RELOC_BRANCH 0 _g2 210*9880d681SAndroid Build Coastguard Worker// CHECK: 0x11 1 2 1 X86_64_RELOC_BRANCH 0 _g2 211*9880d681SAndroid Build Coastguard Worker// CHECK: 0xC 1 2 1 X86_64_RELOC_BRANCH 0 _g1 212*9880d681SAndroid Build Coastguard Worker// CHECK: 0x5 1 2 1 X86_64_RELOC_BRANCH 0 _foo 213*9880d681SAndroid Build Coastguard Worker// CHECK: } 214*9880d681SAndroid Build Coastguard Worker// CHECK: Section __data { 215*9880d681SAndroid Build Coastguard Worker// CHECK: 0x7A 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g0 216*9880d681SAndroid Build Coastguard Worker// CHECK: 0x7A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g1 217*9880d681SAndroid Build Coastguard Worker// CHECK: 0x72 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g0 218*9880d681SAndroid Build Coastguard Worker// CHECK: 0x72 0 3 1 X86_64_RELOC_UNSIGNED 0 _g1 219*9880d681SAndroid Build Coastguard Worker// CHECK: 0x62 0 3 1 X86_64_RELOC_UNSIGNED 0 _g1 220*9880d681SAndroid Build Coastguard Worker// CHECK: 0x5A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g1 221*9880d681SAndroid Build Coastguard Worker// CHECK: 0x52 0 3 1 X86_64_RELOC_UNSIGNED 0 _g0 222*9880d681SAndroid Build Coastguard Worker// CHECK: 0x4A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g0 223*9880d681SAndroid Build Coastguard Worker// CHECK: 0x3A 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g2 224*9880d681SAndroid Build Coastguard Worker// CHECK: 0x3A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g3 225*9880d681SAndroid Build Coastguard Worker// CHECK: 0x32 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g2 226*9880d681SAndroid Build Coastguard Worker// CHECK: 0x32 0 3 1 X86_64_RELOC_UNSIGNED 0 _g3 227*9880d681SAndroid Build Coastguard Worker// CHECK: 0x22 0 3 1 X86_64_RELOC_UNSIGNED 0 _g3 228*9880d681SAndroid Build Coastguard Worker// CHECK: 0x1A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g3 229*9880d681SAndroid Build Coastguard Worker// CHECK: 0x12 0 3 1 X86_64_RELOC_UNSIGNED 0 _g2 230*9880d681SAndroid Build Coastguard Worker// CHECK: 0xA 0 3 1 X86_64_RELOC_UNSIGNED 0 _g2 231*9880d681SAndroid Build Coastguard Worker// CHECK: } 232*9880d681SAndroid Build Coastguard Worker// CHECK: ] 233*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [ 234*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 235*9880d681SAndroid Build Coastguard Worker// CHECK: Name: _foo (1) 236*9880d681SAndroid Build Coastguard Worker// CHECK: Type: Section (0xE) 237*9880d681SAndroid Build Coastguard Worker// CHECK: Section: __text (0x1) 238*9880d681SAndroid Build Coastguard Worker// CHECK: RefType: UndefinedNonLazy (0x0) 239*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 240*9880d681SAndroid Build Coastguard Worker// CHECK: ] 241*9880d681SAndroid Build Coastguard Worker// CHECK: Value: 0x0 242*9880d681SAndroid Build Coastguard Worker// CHECK: } 243*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 244*9880d681SAndroid Build Coastguard Worker// CHECK: Name: _g0 (18) 245*9880d681SAndroid Build Coastguard Worker// CHECK: Type: Section (0xE) 246*9880d681SAndroid Build Coastguard Worker// CHECK: Section: __text (0x1) 247*9880d681SAndroid Build Coastguard Worker// CHECK: RefType: UndefinedNonLazy (0x0) 248*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 249*9880d681SAndroid Build Coastguard Worker// CHECK: ] 250*9880d681SAndroid Build Coastguard Worker// CHECK: Value: 0x2 251*9880d681SAndroid Build Coastguard Worker// CHECK: } 252*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 253*9880d681SAndroid Build Coastguard Worker// CHECK: Name: _g1 (14) 254*9880d681SAndroid Build Coastguard Worker// CHECK: Type: Section (0xE) 255*9880d681SAndroid Build Coastguard Worker// CHECK: Section: __text (0x1) 256*9880d681SAndroid Build Coastguard Worker// CHECK: RefType: UndefinedNonLazy (0x0) 257*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 258*9880d681SAndroid Build Coastguard Worker// CHECK: ] 259*9880d681SAndroid Build Coastguard Worker// CHECK: Value: 0x5A 260*9880d681SAndroid Build Coastguard Worker// CHECK: } 261*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 262*9880d681SAndroid Build Coastguard Worker// CHECK: Name: _g2 (10) 263*9880d681SAndroid Build Coastguard Worker// CHECK: Type: Section (0xE) 264*9880d681SAndroid Build Coastguard Worker// CHECK: Section: __data (0x2) 265*9880d681SAndroid Build Coastguard Worker// CHECK: RefType: UndefinedNonLazy (0x0) 266*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 267*9880d681SAndroid Build Coastguard Worker// CHECK: ] 268*9880d681SAndroid Build Coastguard Worker// CHECK: Value: 0x5E 269*9880d681SAndroid Build Coastguard Worker// CHECK: } 270*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 271*9880d681SAndroid Build Coastguard Worker// CHECK: Name: _g3 (6) 272*9880d681SAndroid Build Coastguard Worker// CHECK: Type: Section (0xE) 273*9880d681SAndroid Build Coastguard Worker// CHECK: Section: __data (0x2) 274*9880d681SAndroid Build Coastguard Worker// CHECK: RefType: UndefinedNonLazy (0x0) 275*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 276*9880d681SAndroid Build Coastguard Worker// CHECK: ] 277*9880d681SAndroid Build Coastguard Worker// CHECK: Value: 0xE8 278*9880d681SAndroid Build Coastguard Worker// CHECK: } 279*9880d681SAndroid Build Coastguard Worker// CHECK: ] 280*9880d681SAndroid Build Coastguard Worker// CHECK: Indirect Symbols { 281*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 0 282*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [ 283*9880d681SAndroid Build Coastguard Worker// CHECK: ] 284*9880d681SAndroid Build Coastguard Worker// CHECK: } 285*9880d681SAndroid Build Coastguard Worker// CHECK: Segment { 286*9880d681SAndroid Build Coastguard Worker// CHECK: Cmd: LC_SEGMENT_64 287*9880d681SAndroid Build Coastguard Worker// CHECK: Name: 288*9880d681SAndroid Build Coastguard Worker// CHECK: Size: 232 289*9880d681SAndroid Build Coastguard Worker// CHECK: vmaddr: 0x0 290*9880d681SAndroid Build Coastguard Worker// CHECK: vmsize: 0xEC 291*9880d681SAndroid Build Coastguard Worker// CHECK: fileoff: 384 292*9880d681SAndroid Build Coastguard Worker// CHECK: filesize: 236 293*9880d681SAndroid Build Coastguard Worker// CHECK: maxprot: rwx 294*9880d681SAndroid Build Coastguard Worker// CHECK: initprot: rwx 295*9880d681SAndroid Build Coastguard Worker// CHECK: nsects: 2 296*9880d681SAndroid Build Coastguard Worker// CHECK: flags: 0x0 297*9880d681SAndroid Build Coastguard Worker// CHECK: } 298*9880d681SAndroid Build Coastguard Worker// CHECK: Dysymtab { 299*9880d681SAndroid Build Coastguard Worker// CHECK: ilocalsym: 0 300*9880d681SAndroid Build Coastguard Worker// CHECK: nlocalsym: 5 301*9880d681SAndroid Build Coastguard Worker// CHECK: iextdefsym: 5 302*9880d681SAndroid Build Coastguard Worker// CHECK: nextdefsym: 0 303*9880d681SAndroid Build Coastguard Worker// CHECK: iundefsym: 5 304*9880d681SAndroid Build Coastguard Worker// CHECK: nundefsym: 0 305*9880d681SAndroid Build Coastguard Worker// CHECK: tocoff: 0 306*9880d681SAndroid Build Coastguard Worker// CHECK: ntoc: 0 307*9880d681SAndroid Build Coastguard Worker// CHECK: modtaboff: 0 308*9880d681SAndroid Build Coastguard Worker// CHECK: nmodtab: 0 309*9880d681SAndroid Build Coastguard Worker// CHECK: extrefsymoff: 0 310*9880d681SAndroid Build Coastguard Worker// CHECK: nextrefsyms: 0 311*9880d681SAndroid Build Coastguard Worker// CHECK: indirectsymoff: 0 312*9880d681SAndroid Build Coastguard Worker// CHECK: nindirectsyms: 0 313*9880d681SAndroid Build Coastguard Worker// CHECK: extreloff: 0 314*9880d681SAndroid Build Coastguard Worker// CHECK: nextrel: 0 315*9880d681SAndroid Build Coastguard Worker// CHECK: locreloff: 0 316*9880d681SAndroid Build Coastguard Worker// CHECK: nlocrel: 0 317*9880d681SAndroid Build Coastguard Worker// CHECK: } 318