1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s 2 3 .data 4 .long undef 5 .long (undef + 4) 6 7 .globl local_a_ext 8 local_a_ext: 9 .long local_a_ext 10 11 local_a: 12 .long 0 13 local_a_elt: 14 .long 0 15 local_b: 16 .long local_b - local_c + 245 17 .long 0 18 local_c: 19 .long 0 20 21 22 .long local_a_elt + 1 23 .long local_a_elt + 10 24 .short local_a_elt + 20 25 .byte local_a_elt + 89 26 27 .const 28 29 .long 30 bar: 31 .long local_a_elt - bar + 33 32 33 L0: 34 .long L0 35 .long L1 36 37 .text 38 _f0: 39 L1: 40 jmp 0xbabecafe 41 jmp L0 42 jmp L1 43 ret 44 45 .objc_class_name_A=0 46 .globl .objc_class_name_A 47 48 .text 49 .globl _f1 50 .weak_definition _f1 51 _f1: 52 .data 53 .long _f1 54 .long _f1 + 4 55 56 // CHECK: ('cputype', 7) 57 // CHECK: ('cpusubtype', 3) 58 // CHECK: ('filetype', 1) 59 // CHECK: ('num_load_commands', 3) 60 // CHECK: ('load_commands_size', 364) 61 // CHECK: ('flag', 0) 62 // CHECK: ('load_commands', [ 63 // CHECK: # Load Command 0 64 // CHECK: (('command', 1) 65 // CHECK: ('size', 260) 66 // CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 67 // CHECK: ('vm_addr', 0) 68 // CHECK: ('vm_size', 76) 69 // CHECK: ('file_offset', 392) 70 // CHECK: ('file_size', 76) 71 // CHECK: ('maxprot', 7) 72 // CHECK: ('initprot', 7) 73 // CHECK: ('num_sections', 3) 74 // CHECK: ('flags', 0) 75 // CHECK: ('sections', [ 76 // CHECK: # Section 0 77 // CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 78 // CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 79 // CHECK: ('address', 0) 80 // CHECK: ('size', 13) 81 // CHECK: ('offset', 392) 82 // CHECK: ('alignment', 0) 83 // CHECK: ('reloc_offset', 468) 84 // CHECK: ('num_reloc', 2) 85 // CHECK: ('flags', 0x80000400) 86 // CHECK: ('reserved1', 0) 87 // CHECK: ('reserved2', 0) 88 // CHECK: ), 89 // CHECK: ('_relocations', [ 90 // CHECK: # Relocation 0 91 // CHECK: (('word-0', 0x6), 92 // CHECK: ('word-1', 0x5000003)), 93 // CHECK: # Relocation 1 94 // CHECK: (('word-0', 0x1), 95 // CHECK: ('word-1', 0x5000000)), 96 // CHECK: ]) 97 // CHECK: ('_section_data', 'e9f9cabe bae93a00 0000ebf4 c3') 98 // CHECK: # Section 1 99 // CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 100 // CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 101 // CHECK: ('address', 13) 102 // CHECK: ('size', 51) 103 // CHECK: ('offset', 405) 104 // CHECK: ('alignment', 0) 105 // CHECK: ('reloc_offset', 484) 106 // CHECK: ('num_reloc', 11) 107 // CHECK: ('flags', 0x0) 108 // CHECK: ('reserved1', 0) 109 // CHECK: ('reserved2', 0) 110 // CHECK: ), 111 // CHECK: ('_relocations', [ 112 // CHECK: # Relocation 0 113 // CHECK: (('word-0', 0x2f), 114 // CHECK: ('word-1', 0xc000007)), 115 // CHECK: # Relocation 1 116 // CHECK: (('word-0', 0x2b), 117 // CHECK: ('word-1', 0xc000007)), 118 // CHECK: # Relocation 2 119 // CHECK: (('word-0', 0x8000002a), 120 // CHECK: ('word-1', 0x1d)), 121 // CHECK: # Relocation 3 122 // CHECK: (('word-0', 0x90000028), 123 // CHECK: ('word-1', 0x1d)), 124 // CHECK: # Relocation 4 125 // CHECK: (('word-0', 0xa0000024), 126 // CHECK: ('word-1', 0x1d)), 127 // CHECK: # Relocation 5 128 // CHECK: (('word-0', 0xa0000020), 129 // CHECK: ('word-1', 0x1d)), 130 // CHECK: # Relocation 6 131 // CHECK: (('word-0', 0xa4000014), 132 // CHECK: ('word-1', 0x21)), 133 // CHECK: # Relocation 7 134 // CHECK: (('word-0', 0xa1000000), 135 // CHECK: ('word-1', 0x29)), 136 // CHECK: # Relocation 8 137 // CHECK: (('word-0', 0x8), 138 // CHECK: ('word-1', 0x4000002)), 139 // CHECK: # Relocation 9 140 // CHECK: (('word-0', 0x4), 141 // CHECK: ('word-1', 0xc000009)), 142 // CHECK: # Relocation 10 143 // CHECK: (('word-0', 0x0), 144 // CHECK: ('word-1', 0xc000009)), 145 // CHECK: ]) 146 // CHECK: ('_section_data', '00000000 04000000 15000000 00000000 00000000 ed000000 00000000 00000000 1e000000 27000000 31007600 00000004 000000') 147 // CHECK: # Section 2 148 // CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00') 149 // CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 150 // CHECK: ('address', 64) 151 // CHECK: ('size', 12) 152 // CHECK: ('offset', 456) 153 // CHECK: ('alignment', 0) 154 // CHECK: ('reloc_offset', 572) 155 // CHECK: ('num_reloc', 4) 156 // CHECK: ('flags', 0x0) 157 // CHECK: ('reserved1', 0) 158 // CHECK: ('reserved2', 0) 159 // CHECK: ), 160 // CHECK: ('_relocations', [ 161 // CHECK: # Relocation 0 162 // CHECK: (('word-0', 0x8), 163 // CHECK: ('word-1', 0x4000001)), 164 // CHECK: # Relocation 1 165 // CHECK: (('word-0', 0x4), 166 // CHECK: ('word-1', 0x4000003)), 167 // CHECK: # Relocation 2 168 // CHECK: (('word-0', 0xa4000000), 169 // CHECK: ('word-1', 0x1d)), 170 // CHECK: # Relocation 3 171 // CHECK: (('word-0', 0xa1000000), 172 // CHECK: ('word-1', 0x40)), 173 // CHECK: ]) 174 // CHECK: ('_section_data', 'feffffff 44000000 00000000') 175 // CHECK: ]) 176 // CHECK: ), 177 // CHECK: # Load Command 1 178 // CHECK: (('command', 2) 179 // CHECK: ('size', 24) 180 // CHECK: ('symoff', 604) 181 // CHECK: ('nsyms', 10) 182 // CHECK: ('stroff', 724) 183 // CHECK: ('strsize', 88) 184 // CHECK: ('_string_data', '\x00undef\x00local_a_ext\x00.objc_class_name_A\x00_f1\x00local_a\x00local_a_elt\x00local_b\x00local_c\x00bar\x00_f0\x00\x00\x00') 185 // CHECK: ('_symbols', [ 186 // CHECK: # Symbol 0 187 // CHECK: (('n_strx', 42) 188 // CHECK: ('n_type', 0xe) 189 // CHECK: ('n_sect', 2) 190 // CHECK: ('n_desc', 0) 191 // CHECK: ('n_value', 25) 192 // CHECK: ('_string', 'local_a') 193 // CHECK: ), 194 // CHECK: # Symbol 1 195 // CHECK: (('n_strx', 50) 196 // CHECK: ('n_type', 0xe) 197 // CHECK: ('n_sect', 2) 198 // CHECK: ('n_desc', 0) 199 // CHECK: ('n_value', 29) 200 // CHECK: ('_string', 'local_a_elt') 201 // CHECK: ), 202 // CHECK: # Symbol 2 203 // CHECK: (('n_strx', 62) 204 // CHECK: ('n_type', 0xe) 205 // CHECK: ('n_sect', 2) 206 // CHECK: ('n_desc', 0) 207 // CHECK: ('n_value', 33) 208 // CHECK: ('_string', 'local_b') 209 // CHECK: ), 210 // CHECK: # Symbol 3 211 // CHECK: (('n_strx', 70) 212 // CHECK: ('n_type', 0xe) 213 // CHECK: ('n_sect', 2) 214 // CHECK: ('n_desc', 0) 215 // CHECK: ('n_value', 41) 216 // CHECK: ('_string', 'local_c') 217 // CHECK: ), 218 // CHECK: # Symbol 4 219 // CHECK: (('n_strx', 78) 220 // CHECK: ('n_type', 0xe) 221 // CHECK: ('n_sect', 3) 222 // CHECK: ('n_desc', 0) 223 // CHECK: ('n_value', 64) 224 // CHECK: ('_string', 'bar') 225 // CHECK: ), 226 // CHECK: # Symbol 5 227 // CHECK: (('n_strx', 82) 228 // CHECK: ('n_type', 0xe) 229 // CHECK: ('n_sect', 1) 230 // CHECK: ('n_desc', 0) 231 // CHECK: ('n_value', 0) 232 // CHECK: ('_string', '_f0') 233 // CHECK: ), 234 // CHECK: # Symbol 6 235 // CHECK: (('n_strx', 19) 236 // CHECK: ('n_type', 0x3) 237 // CHECK: ('n_sect', 0) 238 // CHECK: ('n_desc', 0) 239 // CHECK: ('n_value', 0) 240 // CHECK: ('_string', '.objc_class_name_A') 241 // CHECK: ), 242 // CHECK: # Symbol 7 243 // CHECK: (('n_strx', 38) 244 // CHECK: ('n_type', 0xf) 245 // CHECK: ('n_sect', 1) 246 // CHECK: ('n_desc', 128) 247 // CHECK: ('n_value', 13) 248 // CHECK: ('_string', '_f1') 249 // CHECK: ), 250 // CHECK: # Symbol 8 251 // CHECK: (('n_strx', 7) 252 // CHECK: ('n_type', 0xf) 253 // CHECK: ('n_sect', 2) 254 // CHECK: ('n_desc', 0) 255 // CHECK: ('n_value', 21) 256 // CHECK: ('_string', 'local_a_ext') 257 // CHECK: ), 258 // CHECK: # Symbol 9 259 // CHECK: (('n_strx', 1) 260 // CHECK: ('n_type', 0x1) 261 // CHECK: ('n_sect', 0) 262 // CHECK: ('n_desc', 0) 263 // CHECK: ('n_value', 0) 264 // CHECK: ('_string', 'undef') 265 // CHECK: ), 266 // CHECK: ]) 267 // CHECK: ), 268 // CHECK: # Load Command 2 269 // CHECK: (('command', 11) 270 // CHECK: ('size', 80) 271 // CHECK: ('ilocalsym', 0) 272 // CHECK: ('nlocalsym', 6) 273 // CHECK: ('iextdefsym', 6) 274 // CHECK: ('nextdefsym', 3) 275 // CHECK: ('iundefsym', 9) 276 // CHECK: ('nundefsym', 1) 277 // CHECK: ('tocoff', 0) 278 // CHECK: ('ntoc', 0) 279 // CHECK: ('modtaboff', 0) 280 // CHECK: ('nmodtab', 0) 281 // CHECK: ('extrefsymoff', 0) 282 // CHECK: ('nextrefsyms', 0) 283 // CHECK: ('indirectsymoff', 0) 284 // CHECK: ('nindirectsyms', 0) 285 // CHECK: ('extreloff', 0) 286 // CHECK: ('nextrel', 0) 287 // CHECK: ('locreloff', 0) 288 // CHECK: ('nlocrel', 0) 289 // CHECK: ('_indirect_symbols', [ 290 // CHECK: ]) 291 // CHECK: ), 292 // CHECK: ]) 293