117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o %t.o
217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// RUN: macho-dump --dump-section-data < %t.o > %t.dump
317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// RUN: FileCheck < %t.dump %s
417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar
517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar_a:
617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel DunbarL0:
717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar        .long 1
817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel DunbarL1:
917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar        .long 2
1017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar        .long _c - _d + 4
1117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar        .long (_c - L0) - (_d - L1) // == (_c - _d) + (L1 - L0)
1217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar                                    // == (_c - _d + 4)
1317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar_c:
1417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar        .long 0
1517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar_d:
1617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar        .long 0
1717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar
1817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ('cputype', 16777223)
1917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ('cpusubtype', 3)
2017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ('filetype', 1)
2117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ('num_load_commands', 3)
2217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ('load_commands_size', 256)
2317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ('flag', 0)
2417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ('reserved', 0)
2517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ('load_commands', [
2617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   # Load Command 0
2717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:  (('command', 25)
2817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('size', 152)
2917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
3017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('vm_addr', 0)
3117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('vm_size', 24)
3217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('file_offset', 288)
3317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('file_size', 24)
3417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('maxprot', 7)
3517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('initprot', 7)
3617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('num_sections', 1)
3717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('flags', 0)
3817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('sections', [
3917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     # Section 0
4017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
4117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
4217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('address', 0)
4317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('size', 24)
4417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('offset', 288)
4517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('alignment', 0)
4617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('reloc_offset', 312)
4717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('num_reloc', 4)
4817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('flags', 0x80000000)
4917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('reserved1', 0)
5017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('reserved2', 0)
5117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('reserved3', 0)
5217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:    ),
5317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('_relocations', [
5417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     # Relocation 0
5517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     (('word-0', 0xc),
5617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:      ('word-1', 0x5c000002)),
5717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     # Relocation 1
5817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     (('word-0', 0xc),
5917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:      ('word-1', 0xc000001)),
6017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     # Relocation 2
6117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     (('word-0', 0x8),
6217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:      ('word-1', 0x5c000002)),
6317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     # Relocation 3
6417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     (('word-0', 0x8),
6517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:      ('word-1', 0xc000001)),
6617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ])
6717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('_section_data', '01000000 02000000 04000000 04000000 00000000 00000000')
6817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ])
6917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:  ),
7017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   # Load Command 1
7117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:  (('command', 2)
7217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('size', 24)
7317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('symoff', 344)
7417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nsyms', 3)
7517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('stroff', 392)
7617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('strsize', 12)
7717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('_string_data', '\x00_a\x00_c\x00_d\x00\x00\x00')
7817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('_symbols', [
7917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     # Symbol 0
8017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:    (('n_strx', 1)
8117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_type', 0xe)
8217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_sect', 1)
8317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_desc', 0)
8417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_value', 0)
8517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('_string', '_a')
8617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:    ),
8717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     # Symbol 1
8817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:    (('n_strx', 4)
8917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_type', 0xe)
9017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_sect', 1)
9117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_desc', 0)
9217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_value', 16)
9317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('_string', '_c')
9417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:    ),
9517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     # Symbol 2
9617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:    (('n_strx', 7)
9717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_type', 0xe)
9817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_sect', 1)
9917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_desc', 0)
10017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('n_value', 20)
10117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:     ('_string', '_d')
10217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:    ),
10317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ])
10417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:  ),
10517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   # Load Command 2
10617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:  (('command', 11)
10717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('size', 80)
10817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('ilocalsym', 0)
10917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nlocalsym', 3)
11017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('iextdefsym', 3)
11117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nextdefsym', 0)
11217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('iundefsym', 3)
11317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nundefsym', 0)
11417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('tocoff', 0)
11517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('ntoc', 0)
11617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('modtaboff', 0)
11717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nmodtab', 0)
11817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('extrefsymoff', 0)
11917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nextrefsyms', 0)
12017304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('indirectsymoff', 0)
12117304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nindirectsyms', 0)
12217304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('extreloff', 0)
12317304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nextrel', 0)
12417304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('locreloff', 0)
12517304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('nlocrel', 0)
12617304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ('_indirect_symbols', [
12717304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:   ])
12817304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK:  ),
12917304b3489b7b8ea06dd4df237f15a381ae181ceDaniel Dunbar// CHECK: ])
130