1 @ RUN: llvm-mc -n -triple armv7-apple-darwin10 %s -filetype=obj -o %t.obj 2 @ RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.obj > %t.dump 3 @ RUN: FileCheck < %t.dump %s 4 5 .syntax unified 6 .text 7 _f0: 8 bl _printf 9 10 _f1: 11 bl _f0 12 13 .data 14 _d0: 15 Ld0_0: 16 .long Lsc0_0 - Ld0_0 17 18 .section __TEXT,__cstring,cstring_literals 19 Lsc0_0: 20 .long 0 21 22 .subsections_via_symbols 23 24 @ CHECK: File: <stdin> 25 @ CHECK: Format: Mach-O arm 26 @ CHECK: Arch: arm 27 @ CHECK: AddressSize: 32bit 28 @ CHECK: MachHeader { 29 @ CHECK: Magic: Magic (0xFEEDFACE) 30 @ CHECK: CpuType: Arm (0xC) 31 @ CHECK: CpuSubType: CPU_SUBTYPE_ARM_V7 (0x9) 32 @ CHECK: FileType: Relocatable (0x1) 33 @ CHECK: NumOfLoadCommands: 4 34 @ CHECK: SizeOfLoadCommands: 380 35 @ CHECK: Flags [ (0x2000) 36 @ CHECK: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) 37 @ CHECK: ] 38 @ CHECK: } 39 @ CHECK: Sections [ 40 @ CHECK: Section { 41 @ CHECK: Index: 0 42 @ CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) 43 @ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 44 @ CHECK: Address: 0x0 45 @ CHECK: Size: 0x8 46 @ CHECK: Offset: 408 47 @ CHECK: Alignment: 0 48 @ CHECK: RelocationOffset: 0x1A8 49 @ CHECK: RelocationCount: 2 50 @ CHECK: Type: 0x0 51 @ CHECK: Attributes [ (0x800004) 52 @ CHECK: PureInstructions (0x800000) 53 @ CHECK: SomeInstructions (0x4) 54 @ CHECK: ] 55 @ CHECK: Reserved1: 0x0 56 @ CHECK: Reserved2: 0x0 57 @ CHECK: SectionData ( 58 @ CHECK: 0000: FEFFFFEB FDFFFFEB |........| 59 @ CHECK: ) 60 @ CHECK: } 61 @ CHECK: Section { 62 @ CHECK: Index: 1 63 @ CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) 64 @ CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) 65 @ CHECK: Address: 0x8 66 @ CHECK: Size: 0x4 67 @ CHECK: Offset: 416 68 @ CHECK: Alignment: 0 69 @ CHECK: RelocationOffset: 0x1B8 70 @ CHECK: RelocationCount: 2 71 @ CHECK: Type: 0x0 72 @ CHECK: Attributes [ (0x0) 73 @ CHECK: ] 74 @ CHECK: Reserved1: 0x0 75 @ CHECK: Reserved2: 0x0 76 @ CHECK: SectionData ( 77 @ CHECK: 0000: 04000000 |....| 78 @ CHECK: ) 79 @ CHECK: } 80 @ CHECK: Section { 81 @ CHECK: Index: 2 82 @ CHECK: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) 83 @ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 84 @ CHECK: Address: 0xC 85 @ CHECK: Size: 0x4 86 @ CHECK: Offset: 420 87 @ CHECK: Alignment: 0 88 @ CHECK: RelocationOffset: 0x0 89 @ CHECK: RelocationCount: 0 90 @ CHECK: Type: ExtReloc (0x2) 91 @ CHECK: Attributes [ (0x0) 92 @ CHECK: ] 93 @ CHECK: Reserved1: 0x0 94 @ CHECK: Reserved2: 0x0 95 @ CHECK: SectionData ( 96 @ CHECK: 0000: 00000000 |....| 97 @ CHECK: ) 98 @ CHECK: } 99 @ CHECK: ] 100 @ CHECK: Relocations [ 101 @ CHECK: Section __text { 102 @ CHECK: 0x4 1 2 0 ARM_RELOC_BR24 0 __text 103 @ CHECK: 0x0 1 2 1 ARM_RELOC_BR24 0 _printf 104 @ CHECK: } 105 @ CHECK: Section __data { 106 @ CHECK: 0x0 0 2 n/a ARM_RELOC_SECTDIFF 1 0xC 107 @ CHECK: 0x0 0 2 n/a ARM_RELOC_PAIR 1 0x8 108 @ CHECK: } 109 @ CHECK: ] 110 @ CHECK: Symbols [ 111 @ CHECK: Symbol { 112 @ CHECK: Name: _f0 (13) 113 @ CHECK: Type: Section (0xE) 114 @ CHECK: Section: __text (0x1) 115 @ CHECK: RefType: UndefinedNonLazy (0x0) 116 @ CHECK: Flags [ (0x0) 117 @ CHECK: ] 118 @ CHECK: Value: 0x0 119 @ CHECK: } 120 @ CHECK: Symbol { 121 @ CHECK: Name: _f1 (9) 122 @ CHECK: Type: Section (0xE) 123 @ CHECK: Section: __text (0x1) 124 @ CHECK: RefType: UndefinedNonLazy (0x0) 125 @ CHECK: Flags [ (0x0) 126 @ CHECK: ] 127 @ CHECK: Value: 0x4 128 @ CHECK: } 129 @ CHECK: Symbol { 130 @ CHECK: Name: _d0 (17) 131 @ CHECK: Type: Section (0xE) 132 @ CHECK: Section: __data (0x2) 133 @ CHECK: RefType: UndefinedNonLazy (0x0) 134 @ CHECK: Flags [ (0x0) 135 @ CHECK: ] 136 @ CHECK: Value: 0x8 137 @ CHECK: } 138 @ CHECK: Symbol { 139 @ CHECK: Name: _printf (1) 140 @ CHECK: Extern 141 @ CHECK: Type: Undef (0x0) 142 @ CHECK: Section: (0x0) 143 @ CHECK: RefType: UndefinedNonLazy (0x0) 144 @ CHECK: Flags [ (0x0) 145 @ CHECK: ] 146 @ CHECK: Value: 0x0 147 @ CHECK: } 148 @ CHECK: ] 149 @ CHECK: Indirect Symbols { 150 @ CHECK: Number: 0 151 @ CHECK: Symbols [ 152 @ CHECK: ] 153 @ CHECK: } 154 @ CHECK: Segment { 155 @ CHECK: Cmd: LC_SEGMENT 156 @ CHECK: Name: 157 @ CHECK: Size: 260 158 @ CHECK: vmaddr: 0x0 159 @ CHECK: vmsize: 0x10 160 @ CHECK: fileoff: 408 161 @ CHECK: filesize: 16 162 @ CHECK: maxprot: rwx 163 @ CHECK: initprot: rwx 164 @ CHECK: nsects: 3 165 @ CHECK: flags: 0x0 166 @ CHECK: } 167 @ CHECK: Dysymtab { 168 @ CHECK: ilocalsym: 0 169 @ CHECK: nlocalsym: 3 170 @ CHECK: iextdefsym: 3 171 @ CHECK: nextdefsym: 0 172 @ CHECK: iundefsym: 3 173 @ CHECK: nundefsym: 1 174 @ CHECK: tocoff: 0 175 @ CHECK: ntoc: 0 176 @ CHECK: modtaboff: 0 177 @ CHECK: nmodtab: 0 178 @ CHECK: extrefsymoff: 0 179 @ CHECK: nextrefsyms: 0 180 @ CHECK: indirectsymoff: 0 181 @ CHECK: nindirectsyms: 0 182 @ CHECK: extreloff: 0 183 @ CHECK: nextrel: 0 184 @ CHECK: locreloff: 0 185 @ CHECK: nlocrel: 0 186 @ CHECK: } 187