1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s 2 3 _b: 4 _c = 0 5 _e: 6 _f = 0 7 8 .section __IMPORT,__jump_table,symbol_stubs,pure_instructions+self_modifying_code,5 9 .indirect_symbol _a 10 .ascii "\364\364\364\364\364" 11 .indirect_symbol _b 12 .ascii "\364\364\364\364\364" 13 .indirect_symbol _c 14 .ascii "\364\364\364\364\364" 15 .section __IMPORT,__pointers,non_lazy_symbol_pointers 16 .indirect_symbol _d 17 .long 0 18 .indirect_symbol _e 19 .long 0 20 .indirect_symbol _f 21 .long 0 22 23 // CHECK: File: <stdin> 24 // CHECK: Format: Mach-O 32-bit i386 25 // CHECK: Arch: i386 26 // CHECK: AddressSize: 32bit 27 // CHECK: MachHeader { 28 // CHECK: Magic: Magic (0xFEEDFACE) 29 // CHECK: CpuType: X86 (0x7) 30 // CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3) 31 // CHECK: FileType: Relocatable (0x1) 32 // CHECK: NumOfLoadCommands: 4 33 // CHECK: SizeOfLoadCommands: 380 34 // CHECK: Flags [ (0x0) 35 // CHECK: ] 36 // CHECK: } 37 // CHECK: Sections [ 38 // CHECK: Section { 39 // CHECK: Index: 0 40 // CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) 41 // CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 42 // CHECK: Address: 0x0 43 // CHECK: Size: 0x0 44 // CHECK: Offset: 408 45 // CHECK: Alignment: 0 46 // CHECK: RelocationOffset: 0x0 47 // CHECK: RelocationCount: 0 48 // CHECK: Type: 0x0 49 // CHECK: Attributes [ (0x800000) 50 // CHECK: PureInstructions (0x800000) 51 // CHECK: ] 52 // CHECK: Reserved1: 0x0 53 // CHECK: Reserved2: 0x0 54 // CHECK: SectionData ( 55 // CHECK: ) 56 // CHECK: } 57 // CHECK: Section { 58 // CHECK: Index: 1 59 // CHECK: Name: __jump_table (5F 5F 6A 75 6D 70 5F 74 61 62 6C 65 00 00 00 00) 60 // CHECK: Segment: __IMPORT (5F 5F 49 4D 50 4F 52 54 00 00 00 00 00 00 00 00) 61 // CHECK: Address: 0x0 62 // CHECK: Size: 0xF 63 // CHECK: Offset: 408 64 // CHECK: Alignment: 0 65 // CHECK: RelocationOffset: 0x0 66 // CHECK: RelocationCount: 0 67 // CHECK: Type: 0x8 68 // CHECK: Attributes [ (0x840000) 69 // CHECK: PureInstructions (0x800000) 70 // CHECK: SelfModifyingCode (0x40000) 71 // CHECK: ] 72 // CHECK: Reserved1: 0x0 73 // CHECK: Reserved2: 0x5 74 // CHECK: SectionData ( 75 // CHECK: 0000: F4F4F4F4 F4F4F4F4 F4F4F4F4 F4F4F4 |...............| 76 // CHECK: ) 77 // CHECK: } 78 // CHECK: Section { 79 // CHECK: Index: 2 80 // CHECK: Name: __pointers (5F 5F 70 6F 69 6E 74 65 72 73 00 00 00 00 00 00) 81 // CHECK: Segment: __IMPORT (5F 5F 49 4D 50 4F 52 54 00 00 00 00 00 00 00 00) 82 // CHECK: Address: 0xF 83 // CHECK: Size: 0xC 84 // CHECK: Offset: 423 85 // CHECK: Alignment: 0 86 // CHECK: RelocationOffset: 0x0 87 // CHECK: RelocationCount: 0 88 // CHECK: Type: 0x6 89 // CHECK: Attributes [ (0x0) 90 // CHECK: ] 91 // CHECK: Reserved1: 0x3 92 // CHECK: Reserved2: 0x0 93 // CHECK: SectionData ( 94 // CHECK: 0000: 00000000 00000000 00000000 |............| 95 // CHECK: ) 96 // CHECK: } 97 // CHECK: ] 98 // CHECK: Relocations [ 99 // CHECK: ] 100 // CHECK: Symbols [ 101 // CHECK: Symbol { 102 // CHECK: Name: _b (13) 103 // CHECK: Type: Section (0xE) 104 // CHECK: Section: __text (0x1) 105 // CHECK: RefType: UndefinedNonLazy (0x0) 106 // CHECK: Flags [ (0x0) 107 // CHECK: ] 108 // CHECK: Value: 0x0 109 // CHECK: } 110 // CHECK: Symbol { 111 // CHECK: Name: _c (10) 112 // CHECK: Type: Abs (0x2) 113 // CHECK: Section: (0x0) 114 // CHECK: RefType: UndefinedNonLazy (0x0) 115 // CHECK: Flags [ (0x0) 116 // CHECK: ] 117 // CHECK: Value: 0x0 118 // CHECK: } 119 // CHECK: Symbol { 120 // CHECK: Name: _e (4) 121 // CHECK: Type: Section (0xE) 122 // CHECK: Section: __text (0x1) 123 // CHECK: RefType: UndefinedNonLazy (0x0) 124 // CHECK: Flags [ (0x0) 125 // CHECK: ] 126 // CHECK: Value: 0x0 127 // CHECK: } 128 // CHECK: Symbol { 129 // CHECK: Name: _f (1) 130 // CHECK: Type: Abs (0x2) 131 // CHECK: Section: (0x0) 132 // CHECK: RefType: UndefinedNonLazy (0x0) 133 // CHECK: Flags [ (0x0) 134 // CHECK: ] 135 // CHECK: Value: 0x0 136 // CHECK: } 137 // CHECK: Symbol { 138 // CHECK: Name: _a (16) 139 // CHECK: Extern 140 // CHECK: Type: Undef (0x0) 141 // CHECK: Section: (0x0) 142 // CHECK: RefType: ReferenceFlagUndefinedLazy (0x1) 143 // CHECK: Flags [ (0x0) 144 // CHECK: ] 145 // CHECK: Value: 0x0 146 // CHECK: } 147 // CHECK: Symbol { 148 // CHECK: Name: _d (7) 149 // CHECK: Extern 150 // CHECK: Type: Undef (0x0) 151 // CHECK: Section: (0x0) 152 // CHECK: RefType: UndefinedNonLazy (0x0) 153 // CHECK: Flags [ (0x0) 154 // CHECK: ] 155 // CHECK: Value: 0x0 156 // CHECK: } 157 // CHECK: ] 158 // CHECK: Indirect Symbols { 159 // CHECK: Number: 6 160 // CHECK: Symbols [ 161 // CHECK: Entry { 162 // CHECK: Entry Index: 0 163 // CHECK: Symbol Index: 0x4 164 // CHECK: } 165 // CHECK: Entry { 166 // CHECK: Entry Index: 1 167 // CHECK: Symbol Index: 0x0 168 // CHECK: } 169 // CHECK: Entry { 170 // CHECK: Entry Index: 2 171 // CHECK: Symbol Index: 0x1 172 // CHECK: } 173 // CHECK: Entry { 174 // CHECK: Entry Index: 3 175 // CHECK: Symbol Index: 0x5 176 // CHECK: } 177 // CHECK: Entry { 178 // CHECK: Entry Index: 4 179 // CHECK: Symbol Index: 0x80000000 180 // CHECK: } 181 // CHECK: Entry { 182 // CHECK: Entry Index: 5 183 // CHECK: Symbol Index: 0xC0000000 184 // CHECK: } 185 // CHECK: ] 186 // CHECK: } 187 // CHECK: Segment { 188 // CHECK: Cmd: LC_SEGMENT 189 // CHECK: Name: 190 // CHECK: Size: 260 191 // CHECK: vmaddr: 0x0 192 // CHECK: vmsize: 0x1B 193 // CHECK: fileoff: 408 194 // CHECK: filesize: 27 195 // CHECK: maxprot: rwx 196 // CHECK: initprot: rwx 197 // CHECK: nsects: 3 198 // CHECK: flags: 0x0 199 // CHECK: } 200 // CHECK: Dysymtab { 201 // CHECK: ilocalsym: 0 202 // CHECK: nlocalsym: 4 203 // CHECK: iextdefsym: 4 204 // CHECK: nextdefsym: 0 205 // CHECK: iundefsym: 4 206 // CHECK: nundefsym: 2 207 // CHECK: tocoff: 0 208 // CHECK: ntoc: 0 209 // CHECK: modtaboff: 0 210 // CHECK: nmodtab: 0 211 // CHECK: extrefsymoff: 0 212 // CHECK: nextrefsyms: 0 213 // CHECK: indirectsymoff: 436 214 // CHECK: nindirectsyms: 6 215 // CHECK: extreloff: 0 216 // CHECK: nextrel: 0 217 // CHECK: locreloff: 0 218 // CHECK: nlocrel: 0 219 // CHECK: } 220