1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s 2 3 .reference sym_ref_A 4 .reference sym_ref_def_A 5 sym_ref_def_A: 6 sym_ref_def_C: 7 .reference sym_ref_def_C 8 .reference sym_ref_def_D 9 .globl sym_ref_def_D 10 .globl sym_ref_def_E 11 .reference sym_ref_def_E 12 13 .weak_reference sym_weak_ref_A 14 .weak_reference sym_weak_ref_def_A 15 sym_weak_ref_def_A: 16 sym_weak_ref_def_B: 17 .weak_reference sym_weak_ref_def_B 18 19 .data 20 .globl sym_weak_def_A 21 .weak_definition sym_weak_def_A 22 sym_weak_def_A: 23 sym_weak_def_B: 24 .weak_definition sym_weak_def_B 25 .globl sym_weak_def_B 26 .weak_definition sym_weak_def_C 27 sym_weak_def_C: 28 .globl sym_weak_def_C 29 30 .lazy_reference sym_lazy_ref_A 31 .lazy_reference sym_lazy_ref_B 32 sym_lazy_ref_B: 33 sym_lazy_ref_C: 34 .lazy_reference sym_lazy_ref_C 35 .lazy_reference sym_lazy_ref_D 36 .globl sym_lazy_ref_D 37 .globl sym_lazy_ref_E 38 .lazy_reference sym_lazy_ref_E 39 40 .private_extern sym_private_ext_A 41 .private_extern sym_private_ext_B 42 sym_private_ext_B: 43 sym_private_ext_C: 44 .private_extern sym_private_ext_C 45 .private_extern sym_private_ext_D 46 .globl sym_private_ext_D 47 .globl sym_private_ext_E 48 .private_extern sym_private_ext_E 49 50 .no_dead_strip sym_no_dead_strip_A 51 52 sym_symbol_resolver_A: 53 .symbol_resolver sym_symbol_resolver_A 54 55 .reference sym_ref_A 56 .desc sym_ref_A, 1 57 .desc sym_ref_A, 0x1234 58 59 .desc sym_desc_flags,0x47 60 sym_desc_flags: 61 62 // CHECK: ('cputype', 7) 63 // CHECK: ('cpusubtype', 3) 64 // CHECK: ('filetype', 1) 65 // CHECK: ('num_load_commands', 3) 66 // CHECK: ('load_commands_size', 296) 67 // CHECK: ('flag', 0) 68 // CHECK: ('load_commands', [ 69 // CHECK: # Load Command 0 70 // CHECK: (('command', 1) 71 // CHECK: ('size', 192) 72 // CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 73 // CHECK: ('vm_addr', 0) 74 // CHECK: ('vm_size', 0) 75 // CHECK: ('file_offset', 324) 76 // CHECK: ('file_size', 0) 77 // CHECK: ('maxprot', 7) 78 // CHECK: ('initprot', 7) 79 // CHECK: ('num_sections', 2) 80 // CHECK: ('flags', 0) 81 // CHECK: ('sections', [ 82 // CHECK: # Section 0 83 // CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 84 // CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 85 // CHECK: ('address', 0) 86 // CHECK: ('size', 0) 87 // CHECK: ('offset', 324) 88 // CHECK: ('alignment', 0) 89 // CHECK: ('reloc_offset', 0) 90 // CHECK: ('num_reloc', 0) 91 // CHECK: ('flags', 0x80000000) 92 // CHECK: ('reserved1', 0) 93 // CHECK: ('reserved2', 0) 94 // CHECK: ), 95 // CHECK: ('_relocations', [ 96 // CHECK: ]) 97 // CHECK: # Section 1 98 // CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 99 // CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 100 // CHECK: ('address', 0) 101 // CHECK: ('size', 0) 102 // CHECK: ('offset', 324) 103 // CHECK: ('alignment', 0) 104 // CHECK: ('reloc_offset', 0) 105 // CHECK: ('num_reloc', 0) 106 // CHECK: ('flags', 0x0) 107 // CHECK: ('reserved1', 0) 108 // CHECK: ('reserved2', 0) 109 // CHECK: ), 110 // CHECK: ('_relocations', [ 111 // CHECK: ]) 112 // CHECK: ]) 113 // CHECK: ), 114 // CHECK: # Load Command 1 115 // CHECK: (('command', 2) 116 // CHECK: ('size', 24) 117 // CHECK: ('symoff', 324) 118 // CHECK: ('nsyms', 24) 119 // CHECK: ('stroff', 612) 120 // CHECK: ('strsize', 388) 121 // CHECK: ('_string_data', '\x00sym_ref_A\x00sym_ref_def_D\x00sym_ref_def_E\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_weak_def_B\x00sym_weak_def_C\x00sym_lazy_ref_A\x00sym_lazy_ref_D\x00sym_lazy_ref_E\x00sym_private_ext_A\x00sym_private_ext_B\x00sym_private_ext_C\x00sym_private_ext_D\x00sym_private_ext_E\x00sym_no_dead_strip_A\x00sym_ref_def_A\x00sym_ref_def_C\x00sym_weak_ref_def_A\x00sym_weak_ref_def_B\x00sym_lazy_ref_B\x00sym_lazy_ref_C\x00sym_symbol_resolver_A\x00sym_desc_flags\x00\x00') 122 // CHECK: ('_symbols', [ 123 // CHECK: # Symbol 0 124 // CHECK: (('n_strx', 254) 125 // CHECK: ('n_type', 0xe) 126 // CHECK: ('n_sect', 1) 127 // CHECK: ('n_desc', 32) 128 // CHECK: ('n_value', 0) 129 // CHECK: ('_string', 'sym_ref_def_A') 130 // CHECK: ), 131 // CHECK: # Symbol 1 132 // CHECK: (('n_strx', 268) 133 // CHECK: ('n_type', 0xe) 134 // CHECK: ('n_sect', 1) 135 // CHECK: ('n_desc', 32) 136 // CHECK: ('n_value', 0) 137 // CHECK: ('_string', 'sym_ref_def_C') 138 // CHECK: ), 139 // CHECK: # Symbol 2 140 // CHECK: (('n_strx', 282) 141 // CHECK: ('n_type', 0xe) 142 // CHECK: ('n_sect', 1) 143 // CHECK: ('n_desc', 64) 144 // CHECK: ('n_value', 0) 145 // CHECK: ('_string', 'sym_weak_ref_def_A') 146 // CHECK: ), 147 // CHECK: # Symbol 3 148 // CHECK: (('n_strx', 301) 149 // CHECK: ('n_type', 0xe) 150 // CHECK: ('n_sect', 1) 151 // CHECK: ('n_desc', 0) 152 // CHECK: ('n_value', 0) 153 // CHECK: ('_string', 'sym_weak_ref_def_B') 154 // CHECK: ), 155 // CHECK: # Symbol 4 156 // CHECK: (('n_strx', 320) 157 // CHECK: ('n_type', 0xe) 158 // CHECK: ('n_sect', 2) 159 // CHECK: ('n_desc', 32) 160 // CHECK: ('n_value', 0) 161 // CHECK: ('_string', 'sym_lazy_ref_B') 162 // CHECK: ), 163 // CHECK: # Symbol 5 164 // CHECK: (('n_strx', 335) 165 // CHECK: ('n_type', 0xe) 166 // CHECK: ('n_sect', 2) 167 // CHECK: ('n_desc', 32) 168 // CHECK: ('n_value', 0) 169 // CHECK: ('_string', 'sym_lazy_ref_C') 170 // CHECK: ), 171 // CHECK: # Symbol 6 172 // CHECK: (('n_strx', 350) 173 // CHECK: ('n_type', 0xe) 174 // CHECK: ('n_sect', 2) 175 // CHECK: ('n_desc', 256) 176 // CHECK: ('n_value', 0) 177 // CHECK: ('_string', 'sym_symbol_resolver_A') 178 // CHECK: ), 179 // CHECK: # Symbol 7 180 // CHECK: (('n_strx', 372) 181 // CHECK: ('n_type', 0xe) 182 // CHECK: ('n_sect', 2) 183 // CHECK: ('n_desc', 64) 184 // CHECK: ('n_value', 0) 185 // CHECK: ('_string', 'sym_desc_flags') 186 // CHECK: ), 187 // CHECK: # Symbol 8 188 // CHECK: (('n_strx', 162) 189 // CHECK: ('n_type', 0x1f) 190 // CHECK: ('n_sect', 2) 191 // CHECK: ('n_desc', 0) 192 // CHECK: ('n_value', 0) 193 // CHECK: ('_string', 'sym_private_ext_B') 194 // CHECK: ), 195 // CHECK: # Symbol 9 196 // CHECK: (('n_strx', 180) 197 // CHECK: ('n_type', 0x1f) 198 // CHECK: ('n_sect', 2) 199 // CHECK: ('n_desc', 0) 200 // CHECK: ('n_value', 0) 201 // CHECK: ('_string', 'sym_private_ext_C') 202 // CHECK: ), 203 // CHECK: # Symbol 10 204 // CHECK: (('n_strx', 54) 205 // CHECK: ('n_type', 0xf) 206 // CHECK: ('n_sect', 2) 207 // CHECK: ('n_desc', 128) 208 // CHECK: ('n_value', 0) 209 // CHECK: ('_string', 'sym_weak_def_A') 210 // CHECK: ), 211 // CHECK: # Symbol 11 212 // CHECK: (('n_strx', 69) 213 // CHECK: ('n_type', 0xf) 214 // CHECK: ('n_sect', 2) 215 // CHECK: ('n_desc', 128) 216 // CHECK: ('n_value', 0) 217 // CHECK: ('_string', 'sym_weak_def_B') 218 // CHECK: ), 219 // CHECK: # Symbol 12 220 // CHECK: (('n_strx', 84) 221 // CHECK: ('n_type', 0xf) 222 // CHECK: ('n_sect', 2) 223 // CHECK: ('n_desc', 128) 224 // CHECK: ('n_value', 0) 225 // CHECK: ('_string', 'sym_weak_def_C') 226 // CHECK: ), 227 // CHECK: # Symbol 13 228 // CHECK: (('n_strx', 99) 229 // CHECK: ('n_type', 0x1) 230 // CHECK: ('n_sect', 0) 231 // CHECK: ('n_desc', 33) 232 // CHECK: ('n_value', 0) 233 // CHECK: ('_string', 'sym_lazy_ref_A') 234 // CHECK: ), 235 // CHECK: # Symbol 14 236 // CHECK: (('n_strx', 114) 237 // CHECK: ('n_type', 0x1) 238 // CHECK: ('n_sect', 0) 239 // CHECK: ('n_desc', 32) 240 // CHECK: ('n_value', 0) 241 // CHECK: ('_string', 'sym_lazy_ref_D') 242 // CHECK: ), 243 // CHECK: # Symbol 15 244 // CHECK: (('n_strx', 129) 245 // CHECK: ('n_type', 0x1) 246 // CHECK: ('n_sect', 0) 247 // CHECK: ('n_desc', 33) 248 // CHECK: ('n_value', 0) 249 // CHECK: ('_string', 'sym_lazy_ref_E') 250 // CHECK: ), 251 // CHECK: # Symbol 16 252 // CHECK: (('n_strx', 234) 253 // CHECK: ('n_type', 0x1) 254 // CHECK: ('n_sect', 0) 255 // CHECK: ('n_desc', 32) 256 // CHECK: ('n_value', 0) 257 // CHECK: ('_string', 'sym_no_dead_strip_A') 258 // CHECK: ), 259 // CHECK: # Symbol 17 260 // CHECK: (('n_strx', 144) 261 // CHECK: ('n_type', 0x11) 262 // CHECK: ('n_sect', 0) 263 // CHECK: ('n_desc', 0) 264 // CHECK: ('n_value', 0) 265 // CHECK: ('_string', 'sym_private_ext_A') 266 // CHECK: ), 267 // CHECK: # Symbol 18 268 // CHECK: (('n_strx', 198) 269 // CHECK: ('n_type', 0x11) 270 // CHECK: ('n_sect', 0) 271 // CHECK: ('n_desc', 0) 272 // CHECK: ('n_value', 0) 273 // CHECK: ('_string', 'sym_private_ext_D') 274 // CHECK: ), 275 // CHECK: # Symbol 19 276 // CHECK: (('n_strx', 216) 277 // CHECK: ('n_type', 0x11) 278 // CHECK: ('n_sect', 0) 279 // CHECK: ('n_desc', 0) 280 // CHECK: ('n_value', 0) 281 // CHECK: ('_string', 'sym_private_ext_E') 282 // CHECK: ), 283 // CHECK: # Symbol 20 284 // CHECK: (('n_strx', 1) 285 // CHECK: ('n_type', 0x1) 286 // CHECK: ('n_sect', 0) 287 // CHECK: ('n_desc', 4660) 288 // CHECK: ('n_value', 0) 289 // CHECK: ('_string', 'sym_ref_A') 290 // CHECK: ), 291 // CHECK: # Symbol 21 292 // CHECK: (('n_strx', 11) 293 // CHECK: ('n_type', 0x1) 294 // CHECK: ('n_sect', 0) 295 // CHECK: ('n_desc', 32) 296 // CHECK: ('n_value', 0) 297 // CHECK: ('_string', 'sym_ref_def_D') 298 // CHECK: ), 299 // CHECK: # Symbol 22 300 // CHECK: (('n_strx', 25) 301 // CHECK: ('n_type', 0x1) 302 // CHECK: ('n_sect', 0) 303 // CHECK: ('n_desc', 32) 304 // CHECK: ('n_value', 0) 305 // CHECK: ('_string', 'sym_ref_def_E') 306 // CHECK: ), 307 // CHECK: # Symbol 23 308 // CHECK: (('n_strx', 39) 309 // CHECK: ('n_type', 0x1) 310 // CHECK: ('n_sect', 0) 311 // CHECK: ('n_desc', 64) 312 // CHECK: ('n_value', 0) 313 // CHECK: ('_string', 'sym_weak_ref_A') 314 // CHECK: ), 315 // CHECK: ]) 316 // CHECK: ), 317 // CHECK: # Load Command 2 318 // CHECK: (('command', 11) 319 // CHECK: ('size', 80) 320 // CHECK: ('ilocalsym', 0) 321 // CHECK: ('nlocalsym', 8) 322 // CHECK: ('iextdefsym', 8) 323 // CHECK: ('nextdefsym', 5) 324 // CHECK: ('iundefsym', 13) 325 // CHECK: ('nundefsym', 11) 326 // CHECK: ('tocoff', 0) 327 // CHECK: ('ntoc', 0) 328 // CHECK: ('modtaboff', 0) 329 // CHECK: ('nmodtab', 0) 330 // CHECK: ('extrefsymoff', 0) 331 // CHECK: ('nextrefsyms', 0) 332 // CHECK: ('indirectsymoff', 0) 333 // CHECK: ('nindirectsyms', 0) 334 // CHECK: ('extreloff', 0) 335 // CHECK: ('nextrel', 0) 336 // CHECK: ('locreloff', 0) 337 // CHECK: ('nlocrel', 0) 338 // CHECK: ('_indirect_symbols', [ 339 // CHECK: ]) 340 // CHECK: ), 341 // CHECK: ]) 342