1// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck -check-prefix CHECK-X86_32 %s 2// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump | FileCheck -check-prefix CHECK-X86_64 %s 3 4sym_local_B: 5.globl sym_globl_def_B 6.globl sym_globl_undef_B 7sym_local_A: 8.globl sym_globl_def_A 9.globl sym_globl_undef_A 10sym_local_C: 11.globl sym_globl_def_C 12.globl sym_globl_undef_C 13 14sym_globl_def_A: 15sym_globl_def_B: 16sym_globl_def_C: 17Lsym_asm_temp: 18 .long 0 19 20// CHECK-X86_32: ('cputype', 7) 21// CHECK-X86_32: ('cpusubtype', 3) 22// CHECK-X86_32: ('filetype', 1) 23// CHECK-X86_32: ('num_load_commands', 3) 24// CHECK-X86_32: ('load_commands_size', 228) 25// CHECK-X86_32: ('flag', 0) 26// CHECK-X86_32: ('load_commands', [ 27// CHECK-X86_32: # Load Command 0 28// CHECK-X86_32: (('command', 1) 29// CHECK-X86_32: ('size', 124) 30// CHECK-X86_32: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 31// CHECK-X86_32: ('vm_addr', 0) 32// CHECK-X86_32: ('vm_size', 4) 33// CHECK-X86_32: ('file_offset', 256) 34// CHECK-X86_32: ('file_size', 4) 35// CHECK-X86_32: ('maxprot', 7) 36// CHECK-X86_32: ('initprot', 7) 37// CHECK-X86_32: ('num_sections', 1) 38// CHECK-X86_32: ('flags', 0) 39// CHECK-X86_32: ('sections', [ 40// CHECK-X86_32: # Section 0 41// CHECK-X86_32: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 42// CHECK-X86_32: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 43// CHECK-X86_32: ('address', 0) 44// CHECK-X86_32: ('size', 4) 45// CHECK-X86_32: ('offset', 256) 46// CHECK-X86_32: ('alignment', 0) 47// CHECK-X86_32: ('reloc_offset', 0) 48// CHECK-X86_32: ('num_reloc', 0) 49// CHECK-X86_32: ('flags', 0x80000000) 50// CHECK-X86_32: ('reserved1', 0) 51// CHECK-X86_32: ('reserved2', 0) 52// CHECK-X86_32: ), 53// CHECK-X86_32: ]) 54// CHECK-X86_32: ), 55// CHECK-X86_32: # Load Command 1 56// CHECK-X86_32: (('command', 2) 57// CHECK-X86_32: ('size', 24) 58// CHECK-X86_32: ('symoff', 260) 59// CHECK-X86_32: ('nsyms', 9) 60// CHECK-X86_32: ('stroff', 368) 61// CHECK-X86_32: ('strsize', 140) 62// CHECK-X86_32: ('_string_data', '\x00sym_globl_def_B\x00sym_globl_undef_B\x00sym_globl_def_A\x00sym_globl_undef_A\x00sym_globl_def_C\x00sym_globl_undef_C\x00sym_local_B\x00sym_local_A\x00sym_local_C\x00\x00') 63// CHECK-X86_32: ('_symbols', [ 64// CHECK-X86_32: # Symbol 0 65// CHECK-X86_32: (('n_strx', 103) 66// CHECK-X86_32: ('n_type', 0xe) 67// CHECK-X86_32: ('n_sect', 1) 68// CHECK-X86_32: ('n_desc', 0) 69// CHECK-X86_32: ('n_value', 0) 70// CHECK-X86_32: ('_string', 'sym_local_B') 71// CHECK-X86_32: ), 72// CHECK-X86_32: # Symbol 1 73// CHECK-X86_32: (('n_strx', 115) 74// CHECK-X86_32: ('n_type', 0xe) 75// CHECK-X86_32: ('n_sect', 1) 76// CHECK-X86_32: ('n_desc', 0) 77// CHECK-X86_32: ('n_value', 0) 78// CHECK-X86_32: ('_string', 'sym_local_A') 79// CHECK-X86_32: ), 80// CHECK-X86_32: # Symbol 2 81// CHECK-X86_32: (('n_strx', 127) 82// CHECK-X86_32: ('n_type', 0xe) 83// CHECK-X86_32: ('n_sect', 1) 84// CHECK-X86_32: ('n_desc', 0) 85// CHECK-X86_32: ('n_value', 0) 86// CHECK-X86_32: ('_string', 'sym_local_C') 87// CHECK-X86_32: ), 88// CHECK-X86_32: # Symbol 3 89// CHECK-X86_32: (('n_strx', 35) 90// CHECK-X86_32: ('n_type', 0xf) 91// CHECK-X86_32: ('n_sect', 1) 92// CHECK-X86_32: ('n_desc', 0) 93// CHECK-X86_32: ('n_value', 0) 94// CHECK-X86_32: ('_string', 'sym_globl_def_A') 95// CHECK-X86_32: ), 96// CHECK-X86_32: # Symbol 4 97// CHECK-X86_32: (('n_strx', 1) 98// CHECK-X86_32: ('n_type', 0xf) 99// CHECK-X86_32: ('n_sect', 1) 100// CHECK-X86_32: ('n_desc', 0) 101// CHECK-X86_32: ('n_value', 0) 102// CHECK-X86_32: ('_string', 'sym_globl_def_B') 103// CHECK-X86_32: ), 104// CHECK-X86_32: # Symbol 5 105// CHECK-X86_32: (('n_strx', 69) 106// CHECK-X86_32: ('n_type', 0xf) 107// CHECK-X86_32: ('n_sect', 1) 108// CHECK-X86_32: ('n_desc', 0) 109// CHECK-X86_32: ('n_value', 0) 110// CHECK-X86_32: ('_string', 'sym_globl_def_C') 111// CHECK-X86_32: ), 112// CHECK-X86_32: # Symbol 6 113// CHECK-X86_32: (('n_strx', 51) 114// CHECK-X86_32: ('n_type', 0x1) 115// CHECK-X86_32: ('n_sect', 0) 116// CHECK-X86_32: ('n_desc', 0) 117// CHECK-X86_32: ('n_value', 0) 118// CHECK-X86_32: ('_string', 'sym_globl_undef_A') 119// CHECK-X86_32: ), 120// CHECK-X86_32: # Symbol 7 121// CHECK-X86_32: (('n_strx', 17) 122// CHECK-X86_32: ('n_type', 0x1) 123// CHECK-X86_32: ('n_sect', 0) 124// CHECK-X86_32: ('n_desc', 0) 125// CHECK-X86_32: ('n_value', 0) 126// CHECK-X86_32: ('_string', 'sym_globl_undef_B') 127// CHECK-X86_32: ), 128// CHECK-X86_32: # Symbol 8 129// CHECK-X86_32: (('n_strx', 85) 130// CHECK-X86_32: ('n_type', 0x1) 131// CHECK-X86_32: ('n_sect', 0) 132// CHECK-X86_32: ('n_desc', 0) 133// CHECK-X86_32: ('n_value', 0) 134// CHECK-X86_32: ('_string', 'sym_globl_undef_C') 135// CHECK-X86_32: ), 136// CHECK-X86_32: ]) 137// CHECK-X86_32: ), 138// CHECK-X86_32: # Load Command 2 139// CHECK-X86_32: (('command', 11) 140// CHECK-X86_32: ('size', 80) 141// CHECK-X86_32: ('ilocalsym', 0) 142// CHECK-X86_32: ('nlocalsym', 3) 143// CHECK-X86_32: ('iextdefsym', 3) 144// CHECK-X86_32: ('nextdefsym', 3) 145// CHECK-X86_32: ('iundefsym', 6) 146// CHECK-X86_32: ('nundefsym', 3) 147// CHECK-X86_32: ('tocoff', 0) 148// CHECK-X86_32: ('ntoc', 0) 149// CHECK-X86_32: ('modtaboff', 0) 150// CHECK-X86_32: ('nmodtab', 0) 151// CHECK-X86_32: ('extrefsymoff', 0) 152// CHECK-X86_32: ('nextrefsyms', 0) 153// CHECK-X86_32: ('indirectsymoff', 0) 154// CHECK-X86_32: ('nindirectsyms', 0) 155// CHECK-X86_32: ('extreloff', 0) 156// CHECK-X86_32: ('nextrel', 0) 157// CHECK-X86_32: ('locreloff', 0) 158// CHECK-X86_32: ('nlocrel', 0) 159// CHECK-X86_32: ('_indirect_symbols', [ 160// CHECK-X86_32: ]) 161// CHECK-X86_32: ), 162// CHECK-X86_32: ]) 163 164// CHECK-X86_64: ('cputype', 16777223) 165// CHECK-X86_64: ('cpusubtype', 3) 166// CHECK-X86_64: ('filetype', 1) 167// CHECK-X86_64: ('num_load_commands', 3) 168// CHECK-X86_64: ('load_commands_size', 256) 169// CHECK-X86_64: ('flag', 0) 170// CHECK-X86_64: ('reserved', 0) 171// CHECK-X86_64: ('load_commands', [ 172// CHECK-X86_64: # Load Command 0 173// CHECK-X86_64: (('command', 25) 174// CHECK-X86_64: ('size', 152) 175// CHECK-X86_64: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 176// CHECK-X86_64: ('vm_addr', 0) 177// CHECK-X86_64: ('vm_size', 4) 178// CHECK-X86_64: ('file_offset', 288) 179// CHECK-X86_64: ('file_size', 4) 180// CHECK-X86_64: ('maxprot', 7) 181// CHECK-X86_64: ('initprot', 7) 182// CHECK-X86_64: ('num_sections', 1) 183// CHECK-X86_64: ('flags', 0) 184// CHECK-X86_64: ('sections', [ 185// CHECK-X86_64: # Section 0 186// CHECK-X86_64: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 187// CHECK-X86_64: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 188// CHECK-X86_64: ('address', 0) 189// CHECK-X86_64: ('size', 4) 190// CHECK-X86_64: ('offset', 288) 191// CHECK-X86_64: ('alignment', 0) 192// CHECK-X86_64: ('reloc_offset', 0) 193// CHECK-X86_64: ('num_reloc', 0) 194// CHECK-X86_64: ('flags', 0x80000000) 195// CHECK-X86_64: ('reserved1', 0) 196// CHECK-X86_64: ('reserved2', 0) 197// CHECK-X86_64: ('reserved3', 0) 198// CHECK-X86_64: ), 199// CHECK-X86_64: ('_relocations', [ 200// CHECK-X86_64: ]) 201// CHECK-X86_64: ]) 202// CHECK-X86_64: ), 203// CHECK-X86_64: # Load Command 1 204// CHECK-X86_64: (('command', 2) 205// CHECK-X86_64: ('size', 24) 206// CHECK-X86_64: ('symoff', 292) 207// CHECK-X86_64: ('nsyms', 9) 208// CHECK-X86_64: ('stroff', 436) 209// CHECK-X86_64: ('strsize', 140) 210// CHECK-X86_64: ('_string_data', '\x00sym_globl_def_B\x00sym_globl_undef_B\x00sym_globl_def_A\x00sym_globl_undef_A\x00sym_globl_def_C\x00sym_globl_undef_C\x00sym_local_B\x00sym_local_A\x00sym_local_C\x00\x00') 211// CHECK-X86_64: ('_symbols', [ 212// CHECK-X86_64: # Symbol 0 213// CHECK-X86_64: (('n_strx', 103) 214// CHECK-X86_64: ('n_type', 0xe) 215// CHECK-X86_64: ('n_sect', 1) 216// CHECK-X86_64: ('n_desc', 0) 217// CHECK-X86_64: ('n_value', 0) 218// CHECK-X86_64: ('_string', 'sym_local_B') 219// CHECK-X86_64: ), 220// CHECK-X86_64: # Symbol 1 221// CHECK-X86_64: (('n_strx', 115) 222// CHECK-X86_64: ('n_type', 0xe) 223// CHECK-X86_64: ('n_sect', 1) 224// CHECK-X86_64: ('n_desc', 0) 225// CHECK-X86_64: ('n_value', 0) 226// CHECK-X86_64: ('_string', 'sym_local_A') 227// CHECK-X86_64: ), 228// CHECK-X86_64: # Symbol 2 229// CHECK-X86_64: (('n_strx', 127) 230// CHECK-X86_64: ('n_type', 0xe) 231// CHECK-X86_64: ('n_sect', 1) 232// CHECK-X86_64: ('n_desc', 0) 233// CHECK-X86_64: ('n_value', 0) 234// CHECK-X86_64: ('_string', 'sym_local_C') 235// CHECK-X86_64: ), 236// CHECK-X86_64: # Symbol 3 237// CHECK-X86_64: (('n_strx', 35) 238// CHECK-X86_64: ('n_type', 0xf) 239// CHECK-X86_64: ('n_sect', 1) 240// CHECK-X86_64: ('n_desc', 0) 241// CHECK-X86_64: ('n_value', 0) 242// CHECK-X86_64: ('_string', 'sym_globl_def_A') 243// CHECK-X86_64: ), 244// CHECK-X86_64: # Symbol 4 245// CHECK-X86_64: (('n_strx', 1) 246// CHECK-X86_64: ('n_type', 0xf) 247// CHECK-X86_64: ('n_sect', 1) 248// CHECK-X86_64: ('n_desc', 0) 249// CHECK-X86_64: ('n_value', 0) 250// CHECK-X86_64: ('_string', 'sym_globl_def_B') 251// CHECK-X86_64: ), 252// CHECK-X86_64: # Symbol 5 253// CHECK-X86_64: (('n_strx', 69) 254// CHECK-X86_64: ('n_type', 0xf) 255// CHECK-X86_64: ('n_sect', 1) 256// CHECK-X86_64: ('n_desc', 0) 257// CHECK-X86_64: ('n_value', 0) 258// CHECK-X86_64: ('_string', 'sym_globl_def_C') 259// CHECK-X86_64: ), 260// CHECK-X86_64: # Symbol 6 261// CHECK-X86_64: (('n_strx', 51) 262// CHECK-X86_64: ('n_type', 0x1) 263// CHECK-X86_64: ('n_sect', 0) 264// CHECK-X86_64: ('n_desc', 0) 265// CHECK-X86_64: ('n_value', 0) 266// CHECK-X86_64: ('_string', 'sym_globl_undef_A') 267// CHECK-X86_64: ), 268// CHECK-X86_64: # Symbol 7 269// CHECK-X86_64: (('n_strx', 17) 270// CHECK-X86_64: ('n_type', 0x1) 271// CHECK-X86_64: ('n_sect', 0) 272// CHECK-X86_64: ('n_desc', 0) 273// CHECK-X86_64: ('n_value', 0) 274// CHECK-X86_64: ('_string', 'sym_globl_undef_B') 275// CHECK-X86_64: ), 276// CHECK-X86_64: # Symbol 8 277// CHECK-X86_64: (('n_strx', 85) 278// CHECK-X86_64: ('n_type', 0x1) 279// CHECK-X86_64: ('n_sect', 0) 280// CHECK-X86_64: ('n_desc', 0) 281// CHECK-X86_64: ('n_value', 0) 282// CHECK-X86_64: ('_string', 'sym_globl_undef_C') 283// CHECK-X86_64: ), 284// CHECK-X86_64: ]) 285// CHECK-X86_64: ), 286// CHECK-X86_64: # Load Command 2 287// CHECK-X86_64: (('command', 11) 288// CHECK-X86_64: ('size', 80) 289// CHECK-X86_64: ('ilocalsym', 0) 290// CHECK-X86_64: ('nlocalsym', 3) 291// CHECK-X86_64: ('iextdefsym', 3) 292// CHECK-X86_64: ('nextdefsym', 3) 293// CHECK-X86_64: ('iundefsym', 6) 294// CHECK-X86_64: ('nundefsym', 3) 295// CHECK-X86_64: ('tocoff', 0) 296// CHECK-X86_64: ('ntoc', 0) 297// CHECK-X86_64: ('modtaboff', 0) 298// CHECK-X86_64: ('nmodtab', 0) 299// CHECK-X86_64: ('extrefsymoff', 0) 300// CHECK-X86_64: ('nextrefsyms', 0) 301// CHECK-X86_64: ('indirectsymoff', 0) 302// CHECK-X86_64: ('nindirectsyms', 0) 303// CHECK-X86_64: ('extreloff', 0) 304// CHECK-X86_64: ('nextrel', 0) 305// CHECK-X86_64: ('locreloff', 0) 306// CHECK-X86_64: ('nlocrel', 0) 307// CHECK-X86_64: ('_indirect_symbols', [ 308// CHECK-X86_64: ]) 309// CHECK-X86_64: ), 310// CHECK-X86_64: ]) 311