14536b12feaa8a58857ad15dbdcf57f5b3377ffe
[oota-llvm.git] / test / MC / MachO / pcrel-to-other-section.s
1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
2
3 nop
4         .section        __TEXT,__StaticInit,regular,pure_instructions
5         calll   foo
6
7 // CHECK:      ('cputype', 7)
8 // CHECK-NEXT: ('cpusubtype', 3)
9 // CHECK-NEXT: ('filetype', 1)
10 // CHECK-NEXT: ('num_load_commands', 4)
11 // CHECK-NEXT: ('load_commands_size', 312)
12 // CHECK-NEXT: ('flag', 0)
13 // CHECK-NEXT: ('load_commands', [
14 // CHECK-NEXT:   # Load Command 0
15 // CHECK-NEXT:  (('command', 1)
16 // CHECK-NEXT:   ('size', 192)
17 // CHECK-NEXT:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
18 // CHECK-NEXT:   ('vm_addr', 0)
19 // CHECK-NEXT:   ('vm_size', 6)
20 // CHECK-NEXT:   ('file_offset', 340)
21 // CHECK-NEXT:   ('file_size', 6)
22 // CHECK-NEXT:   ('maxprot', 7)
23 // CHECK-NEXT:   ('initprot', 7)
24 // CHECK-NEXT:   ('num_sections', 2)
25 // CHECK-NEXT:   ('flags', 0)
26 // CHECK-NEXT:   ('sections', [
27 // CHECK-NEXT:     # Section 0
28 // CHECK-NEXT:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
29 // CHECK-NEXT:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
30 // CHECK-NEXT:     ('address', 0)
31 // CHECK-NEXT:     ('size', 1)
32 // CHECK-NEXT:     ('offset', 340)
33 // CHECK-NEXT:     ('alignment', 0)
34 // CHECK-NEXT:     ('reloc_offset', 0)
35 // CHECK-NEXT:     ('num_reloc', 0)
36 // CHECK-NEXT:     ('flags', 0x80000400)
37 // CHECK-NEXT:     ('reserved1', 0)
38 // CHECK-NEXT:     ('reserved2', 0)
39 // CHECK-NEXT:    ),
40 // CHECK-NEXT:   ('_relocations', [
41 // CHECK-NEXT:   ])
42 // CHECK-NEXT:   ('_section_data', '90')
43 // CHECK-NEXT:     # Section 1
44 // CHECK-NEXT:    (('section_name', '__StaticInit\x00\x00\x00\x00')
45 // CHECK-NEXT:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
46 // CHECK-NEXT:     ('address', 1)
47 // CHECK-NEXT:     ('size', 5)
48 // CHECK-NEXT:     ('offset', 341)
49 // CHECK-NEXT:     ('alignment', 0)
50 // CHECK-NEXT:     ('reloc_offset', 348)
51 // CHECK-NEXT:     ('num_reloc', 1)
52 // CHECK-NEXT:     ('flags', 0x80000400)
53 // CHECK-NEXT:     ('reserved1', 0)
54 // CHECK-NEXT:     ('reserved2', 0)
55 // CHECK-NEXT:    ),
56 // CHECK-NEXT:   ('_relocations', [
57 // CHECK-NEXT:     # Relocation 0
58 // CHECK-NEXT:     (('word-0', 0x1),
59 // CHECK-NEXT:      ('word-1', 0xd000000)),
60 // CHECK-NEXT:   ])
61 // CHECK-NEXT:   ('_section_data', 'e8faffff ff')
62 // CHECK-NEXT:   ])
63 // CHECK-NEXT:  ),
64 // CHECK:       # Load Command 2
65 // CHECK-NEXT:  (('command', 2)
66 // CHECK-NEXT:   ('size', 24)
67 // CHECK-NEXT:   ('symoff', 356)
68 // CHECK-NEXT:   ('nsyms', 1)
69 // CHECK-NEXT:   ('stroff', 368)
70 // CHECK-NEXT:   ('strsize', 8)
71 // CHECK-NEXT:   ('_string_data', '\x00foo\x00\x00\x00\x00')
72 // CHECK-NEXT:   ('_symbols', [
73 // CHECK-NEXT:     # Symbol 0
74 // CHECK-NEXT:    (('n_strx', 1)
75 // CHECK-NEXT:     ('n_type', 0x1)
76 // CHECK-NEXT:     ('n_sect', 0)
77 // CHECK-NEXT:     ('n_desc', 0)
78 // CHECK-NEXT:     ('n_value', 0)
79 // CHECK-NEXT:     ('_string', 'foo')
80 // CHECK-NEXT:    ),
81 // CHECK-NEXT:   ])
82 // CHECK-NEXT:  ),
83 // CHECK-NEXT:   # Load Command 3
84 // CHECK-NEXT:  (('command', 11)
85 // CHECK-NEXT:   ('size', 80)
86 // CHECK-NEXT:   ('ilocalsym', 0)
87 // CHECK-NEXT:   ('nlocalsym', 0)
88 // CHECK-NEXT:   ('iextdefsym', 0)
89 // CHECK-NEXT:   ('nextdefsym', 0)
90 // CHECK-NEXT:   ('iundefsym', 0)
91 // CHECK-NEXT:   ('nundefsym', 1)
92 // CHECK-NEXT:   ('tocoff', 0)
93 // CHECK-NEXT:   ('ntoc', 0)
94 // CHECK-NEXT:   ('modtaboff', 0)
95 // CHECK-NEXT:   ('nmodtab', 0)
96 // CHECK-NEXT:   ('extrefsymoff', 0)
97 // CHECK-NEXT:   ('nextrefsyms', 0)
98 // CHECK-NEXT:   ('indirectsymoff', 0)
99 // CHECK-NEXT:   ('nindirectsyms', 0)
100 // CHECK-NEXT:   ('extreloff', 0)
101 // CHECK-NEXT:   ('nextrel', 0)
102 // CHECK-NEXT:   ('locreloff', 0)
103 // CHECK-NEXT:   ('nlocrel', 0)
104 // CHECK-NEXT:   ('_indirect_symbols', [
105 // CHECK-NEXT:   ])
106 // CHECK-NEXT:  ),
107 // CHECK-NEXT: ])