1// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o %t.o 2// RUN: macho-dump --dump-section-data < %t.o > %t.dump 3// RUN: FileCheck < %t.dump %s 4 5_a: 6L0: 7 .long 1 8L1: 9 .long 2 10 .long _c - _d + 4 11 .long (_c - L0) - (_d - L1) // == (_c - _d) + (L1 - L0) 12 // == (_c - _d + 4) 13_c: 14 .long 0 15_d: 16 .long 0 17 18// CHECK: ('cputype', 16777223) 19// CHECK: ('cpusubtype', 3) 20// CHECK: ('filetype', 1) 21// CHECK: ('num_load_commands', 3) 22// CHECK: ('load_commands_size', 256) 23// CHECK: ('flag', 0) 24// CHECK: ('reserved', 0) 25// CHECK: ('load_commands', [ 26// CHECK: # Load Command 0 27// CHECK: (('command', 25) 28// CHECK: ('size', 152) 29// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 30// CHECK: ('vm_addr', 0) 31// CHECK: ('vm_size', 24) 32// CHECK: ('file_offset', 288) 33// CHECK: ('file_size', 24) 34// CHECK: ('maxprot', 7) 35// CHECK: ('initprot', 7) 36// CHECK: ('num_sections', 1) 37// CHECK: ('flags', 0) 38// CHECK: ('sections', [ 39// CHECK: # Section 0 40// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 41// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 42// CHECK: ('address', 0) 43// CHECK: ('size', 24) 44// CHECK: ('offset', 288) 45// CHECK: ('alignment', 0) 46// CHECK: ('reloc_offset', 312) 47// CHECK: ('num_reloc', 4) 48// CHECK: ('flags', 0x80000000) 49// CHECK: ('reserved1', 0) 50// CHECK: ('reserved2', 0) 51// CHECK: ('reserved3', 0) 52// CHECK: ), 53// CHECK: ('_relocations', [ 54// CHECK: # Relocation 0 55// CHECK: (('word-0', 0xc), 56// CHECK: ('word-1', 0x5c000002)), 57// CHECK: # Relocation 1 58// CHECK: (('word-0', 0xc), 59// CHECK: ('word-1', 0xc000001)), 60// CHECK: # Relocation 2 61// CHECK: (('word-0', 0x8), 62// CHECK: ('word-1', 0x5c000002)), 63// CHECK: # Relocation 3 64// CHECK: (('word-0', 0x8), 65// CHECK: ('word-1', 0xc000001)), 66// CHECK: ]) 67// CHECK: ('_section_data', '01000000 02000000 04000000 04000000 00000000 00000000') 68// CHECK: ]) 69// CHECK: ), 70// CHECK: # Load Command 1 71// CHECK: (('command', 2) 72// CHECK: ('size', 24) 73// CHECK: ('symoff', 344) 74// CHECK: ('nsyms', 3) 75// CHECK: ('stroff', 392) 76// CHECK: ('strsize', 12) 77// CHECK: ('_string_data', '\x00_a\x00_c\x00_d\x00\x00\x00') 78// CHECK: ('_symbols', [ 79// CHECK: # Symbol 0 80// CHECK: (('n_strx', 1) 81// CHECK: ('n_type', 0xe) 82// CHECK: ('n_sect', 1) 83// CHECK: ('n_desc', 0) 84// CHECK: ('n_value', 0) 85// CHECK: ('_string', '_a') 86// CHECK: ), 87// CHECK: # Symbol 1 88// CHECK: (('n_strx', 4) 89// CHECK: ('n_type', 0xe) 90// CHECK: ('n_sect', 1) 91// CHECK: ('n_desc', 0) 92// CHECK: ('n_value', 16) 93// CHECK: ('_string', '_c') 94// CHECK: ), 95// CHECK: # Symbol 2 96// CHECK: (('n_strx', 7) 97// CHECK: ('n_type', 0xe) 98// CHECK: ('n_sect', 1) 99// CHECK: ('n_desc', 0) 100// CHECK: ('n_value', 20) 101// CHECK: ('_string', '_d') 102// CHECK: ), 103// CHECK: ]) 104// CHECK: ), 105// CHECK: # Load Command 2 106// CHECK: (('command', 11) 107// CHECK: ('size', 80) 108// CHECK: ('ilocalsym', 0) 109// CHECK: ('nlocalsym', 3) 110// CHECK: ('iextdefsym', 3) 111// CHECK: ('nextdefsym', 0) 112// CHECK: ('iundefsym', 3) 113// CHECK: ('nundefsym', 0) 114// CHECK: ('tocoff', 0) 115// CHECK: ('ntoc', 0) 116// CHECK: ('modtaboff', 0) 117// CHECK: ('nmodtab', 0) 118// CHECK: ('extrefsymoff', 0) 119// CHECK: ('nextrefsyms', 0) 120// CHECK: ('indirectsymoff', 0) 121// CHECK: ('nindirectsyms', 0) 122// CHECK: ('extreloff', 0) 123// CHECK: ('nextrel', 0) 124// CHECK: ('locreloff', 0) 125// CHECK: ('nlocrel', 0) 126// CHECK: ('_indirect_symbols', [ 127// CHECK: ]) 128// CHECK: ), 129// CHECK: ]) 130