1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o %t.o 2*9880d681SAndroid Build Coastguard Worker// RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.o > %t.dump 3*9880d681SAndroid Build Coastguard Worker// RUN: FileCheck < %t.dump %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker_a: 6*9880d681SAndroid Build Coastguard WorkerL0: 7*9880d681SAndroid Build Coastguard Worker .long 1 8*9880d681SAndroid Build Coastguard WorkerL1: 9*9880d681SAndroid Build Coastguard Worker .long 2 10*9880d681SAndroid Build Coastguard Worker .long _c - _d + 4 11*9880d681SAndroid Build Coastguard Worker .long (_c - L0) - (_d - L1) // == (_c - _d) + (L1 - L0) 12*9880d681SAndroid Build Coastguard Worker // == (_c - _d + 4) 13*9880d681SAndroid Build Coastguard Worker_c: 14*9880d681SAndroid Build Coastguard Worker .long 0 15*9880d681SAndroid Build Coastguard Worker_d: 16*9880d681SAndroid Build Coastguard Worker .long 0 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker// CHECK: File: <stdin> 19*9880d681SAndroid Build Coastguard Worker// CHECK: Format: Mach-O 64-bit x86-64 20*9880d681SAndroid Build Coastguard Worker// CHECK: Arch: x86_64 21*9880d681SAndroid Build Coastguard Worker// CHECK: AddressSize: 64bit 22*9880d681SAndroid Build Coastguard Worker// CHECK: MachHeader { 23*9880d681SAndroid Build Coastguard Worker// CHECK: Magic: Magic64 (0xFEEDFACF) 24*9880d681SAndroid Build Coastguard Worker// CHECK: CpuType: X86-64 (0x1000007) 25*9880d681SAndroid Build Coastguard Worker// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3) 26*9880d681SAndroid Build Coastguard Worker// CHECK: FileType: Relocatable (0x1) 27*9880d681SAndroid Build Coastguard Worker// CHECK: NumOfLoadCommands: 4 28*9880d681SAndroid Build Coastguard Worker// CHECK: SizeOfLoadCommands: 272 29*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 30*9880d681SAndroid Build Coastguard Worker// CHECK: ] 31*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved: 0x0 32*9880d681SAndroid Build Coastguard Worker// CHECK: } 33*9880d681SAndroid Build Coastguard Worker// CHECK: Sections [ 34*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 35*9880d681SAndroid Build Coastguard Worker// CHECK: Index: 0 36*9880d681SAndroid Build Coastguard Worker// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) 37*9880d681SAndroid Build Coastguard Worker// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 38*9880d681SAndroid Build Coastguard Worker// CHECK: Address: 0x0 39*9880d681SAndroid Build Coastguard Worker// CHECK: Size: 0x18 40*9880d681SAndroid Build Coastguard Worker// CHECK: Offset: 304 41*9880d681SAndroid Build Coastguard Worker// CHECK: Alignment: 0 42*9880d681SAndroid Build Coastguard Worker// CHECK: RelocationOffset: 0x148 43*9880d681SAndroid Build Coastguard Worker// CHECK: RelocationCount: 4 44*9880d681SAndroid Build Coastguard Worker// CHECK: Type: 0x0 45*9880d681SAndroid Build Coastguard Worker// CHECK: Attributes [ (0x800000) 46*9880d681SAndroid Build Coastguard Worker// CHECK: PureInstructions (0x800000) 47*9880d681SAndroid Build Coastguard Worker// CHECK: ] 48*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved1: 0x0 49*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved2: 0x0 50*9880d681SAndroid Build Coastguard Worker// CHECK: Reserved3: 0x0 51*9880d681SAndroid Build Coastguard Worker// CHECK: SectionData ( 52*9880d681SAndroid Build Coastguard Worker// CHECK: 0000: 01000000 02000000 04000000 04000000 |................| 53*9880d681SAndroid Build Coastguard Worker// CHECK: 0010: 00000000 00000000 |........| 54*9880d681SAndroid Build Coastguard Worker// CHECK: ) 55*9880d681SAndroid Build Coastguard Worker// CHECK: } 56*9880d681SAndroid Build Coastguard Worker// CHECK: ] 57*9880d681SAndroid Build Coastguard Worker// CHECK: Relocations [ 58*9880d681SAndroid Build Coastguard Worker// CHECK: Section __text { 59*9880d681SAndroid Build Coastguard Worker// CHECK: 0xC 0 2 1 X86_64_RELOC_SUBTRACTOR 0 _d 60*9880d681SAndroid Build Coastguard Worker// CHECK: 0xC 0 2 1 X86_64_RELOC_UNSIGNED 0 _c 61*9880d681SAndroid Build Coastguard Worker// CHECK: 0x8 0 2 1 X86_64_RELOC_SUBTRACTOR 0 _d 62*9880d681SAndroid Build Coastguard Worker// CHECK: 0x8 0 2 1 X86_64_RELOC_UNSIGNED 0 _c 63*9880d681SAndroid Build Coastguard Worker// CHECK: } 64*9880d681SAndroid Build Coastguard Worker// CHECK: ] 65*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [ 66*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 67*9880d681SAndroid Build Coastguard Worker// CHECK: Name: _a (7) 68*9880d681SAndroid Build Coastguard Worker// CHECK: Type: Section (0xE) 69*9880d681SAndroid Build Coastguard Worker// CHECK: Section: __text (0x1) 70*9880d681SAndroid Build Coastguard Worker// CHECK: RefType: UndefinedNonLazy (0x0) 71*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 72*9880d681SAndroid Build Coastguard Worker// CHECK: ] 73*9880d681SAndroid Build Coastguard Worker// CHECK: Value: 0x0 74*9880d681SAndroid Build Coastguard Worker// CHECK: } 75*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 76*9880d681SAndroid Build Coastguard Worker// CHECK: Name: _c (4) 77*9880d681SAndroid Build Coastguard Worker// CHECK: Type: Section (0xE) 78*9880d681SAndroid Build Coastguard Worker// CHECK: Section: __text (0x1) 79*9880d681SAndroid Build Coastguard Worker// CHECK: RefType: UndefinedNonLazy (0x0) 80*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 81*9880d681SAndroid Build Coastguard Worker// CHECK: ] 82*9880d681SAndroid Build Coastguard Worker// CHECK: Value: 0x10 83*9880d681SAndroid Build Coastguard Worker// CHECK: } 84*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 85*9880d681SAndroid Build Coastguard Worker// CHECK: Name: _d (1) 86*9880d681SAndroid Build Coastguard Worker// CHECK: Type: Section (0xE) 87*9880d681SAndroid Build Coastguard Worker// CHECK: Section: __text (0x1) 88*9880d681SAndroid Build Coastguard Worker// CHECK: RefType: UndefinedNonLazy (0x0) 89*9880d681SAndroid Build Coastguard Worker// CHECK: Flags [ (0x0) 90*9880d681SAndroid Build Coastguard Worker// CHECK: ] 91*9880d681SAndroid Build Coastguard Worker// CHECK: Value: 0x14 92*9880d681SAndroid Build Coastguard Worker// CHECK: } 93*9880d681SAndroid Build Coastguard Worker// CHECK: ] 94*9880d681SAndroid Build Coastguard Worker// CHECK: Indirect Symbols { 95*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 0 96*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [ 97*9880d681SAndroid Build Coastguard Worker// CHECK: ] 98*9880d681SAndroid Build Coastguard Worker// CHECK: } 99*9880d681SAndroid Build Coastguard Worker// CHECK: Segment { 100*9880d681SAndroid Build Coastguard Worker// CHECK: Cmd: LC_SEGMENT_64 101*9880d681SAndroid Build Coastguard Worker// CHECK: Name: 102*9880d681SAndroid Build Coastguard Worker// CHECK: Size: 152 103*9880d681SAndroid Build Coastguard Worker// CHECK: vmaddr: 0x0 104*9880d681SAndroid Build Coastguard Worker// CHECK: vmsize: 0x18 105*9880d681SAndroid Build Coastguard Worker// CHECK: fileoff: 304 106*9880d681SAndroid Build Coastguard Worker// CHECK: filesize: 24 107*9880d681SAndroid Build Coastguard Worker// CHECK: maxprot: rwx 108*9880d681SAndroid Build Coastguard Worker// CHECK: initprot: rwx 109*9880d681SAndroid Build Coastguard Worker// CHECK: nsects: 1 110*9880d681SAndroid Build Coastguard Worker// CHECK: flags: 0x0 111*9880d681SAndroid Build Coastguard Worker// CHECK: } 112*9880d681SAndroid Build Coastguard Worker// CHECK: Dysymtab { 113*9880d681SAndroid Build Coastguard Worker// CHECK: ilocalsym: 0 114*9880d681SAndroid Build Coastguard Worker// CHECK: nlocalsym: 3 115*9880d681SAndroid Build Coastguard Worker// CHECK: iextdefsym: 3 116*9880d681SAndroid Build Coastguard Worker// CHECK: nextdefsym: 0 117*9880d681SAndroid Build Coastguard Worker// CHECK: iundefsym: 3 118*9880d681SAndroid Build Coastguard Worker// CHECK: nundefsym: 0 119*9880d681SAndroid Build Coastguard Worker// CHECK: tocoff: 0 120*9880d681SAndroid Build Coastguard Worker// CHECK: ntoc: 0 121*9880d681SAndroid Build Coastguard Worker// CHECK: modtaboff: 0 122*9880d681SAndroid Build Coastguard Worker// CHECK: nmodtab: 0 123*9880d681SAndroid Build Coastguard Worker// CHECK: extrefsymoff: 0 124*9880d681SAndroid Build Coastguard Worker// CHECK: nextrefsyms: 0 125*9880d681SAndroid Build Coastguard Worker// CHECK: indirectsymoff: 0 126*9880d681SAndroid Build Coastguard Worker// CHECK: nindirectsyms: 0 127*9880d681SAndroid Build Coastguard Worker// CHECK: extreloff: 0 128*9880d681SAndroid Build Coastguard Worker// CHECK: nextrel: 0 129*9880d681SAndroid Build Coastguard Worker// CHECK: locreloff: 0 130*9880d681SAndroid Build Coastguard Worker// CHECK: nlocrel: 0 131*9880d681SAndroid Build Coastguard Worker// CHECK: } 132