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 5sym_ref_def_A: 6sym_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 15sym_weak_ref_def_A: 16sym_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 22sym_weak_def_A: 23sym_weak_def_B: 24 .weak_definition sym_weak_def_B 25 .globl sym_weak_def_B 26 .weak_definition sym_weak_def_C 27sym_weak_def_C: 28 .globl sym_weak_def_C 29 30 .lazy_reference sym_lazy_ref_A 31 .lazy_reference sym_lazy_ref_B 32sym_lazy_ref_B: 33sym_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 42sym_private_ext_B: 43sym_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 52sym_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 60sym_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