1 // RUN
: llvm-mc
-triple i386-apple-darwin9
%s
-filetype
=obj
-o
- | macho-dump
--dump-section-data | FileCheck
%s
12 movl $
(_text_a
- _text_b
), %eax
13 Ltext_expr_0
= _text_a
- _text_b
14 movl $
(Ltext_expr_0
), %eax
16 movl $
(Ltext_c
- _text_b
), %eax
17 Ltext_expr_1
= Ltext_c
- _text_b
18 movl $
(Ltext_expr_1
), %eax
20 movl $
(Ltext_d
- Ltext_c
), %eax
21 Ltext_expr_2
= Ltext_d
- Ltext_c
22 movl $
(Ltext_expr_2
), %eax
24 movl $
(_text_a
+ Ltext_expr_0
), %eax
36 .long _data_a - _data_b
37 Ldata_expr_0
= _data_a
- _data_b
40 .long Ldata_c - _data_b
41 Ldata_expr_1
= Ldata_c
- _data_b
44 .long Ldata_d - Ldata_c
45 Ldata_expr_2
= Ldata_d
- Ldata_c
48 .long _data_a + Ldata_expr_0
50 // CHECK
: ('cputype', 7)
51 // CHECK
: ('cpusubtype', 3)
52 // CHECK
: ('filetype', 1)
53 // CHECK
: ('num_load_commands', 3)
54 // CHECK
: ('load_commands_size', 296)
56 // CHECK
: ('load_commands', [
57 // CHECK
: # Load Command 0
58 // CHECK
: (('command', 1)
59 // CHECK
: ('size', 192)
60 // CHECK
: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
61 // CHECK
: ('vm_addr', 0)
62 // CHECK
: ('vm_size', 87)
63 // CHECK
: ('file_offset', 324)
64 // CHECK
: ('file_size', 87)
65 // CHECK
: ('maxprot', 7)
66 // CHECK
: ('initprot', 7)
67 // CHECK
: ('num_sections', 2)
68 // CHECK
: ('flags', 0)
69 // CHECK
: ('sections', [
71 // CHECK
: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
72 // CHECK
: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
73 // CHECK
: ('address', 0)
74 // CHECK
: ('size', 43)
75 // CHECK
: ('offset', 324)
76 // CHECK
: ('alignment', 0)
77 // CHECK
: ('reloc_offset', 412)
78 // CHECK
: ('num_reloc', 7)
79 // CHECK
: ('flags', 0x80000400)
80 // CHECK
: ('reserved1', 0)
81 // CHECK
: ('reserved2', 0)
83 // CHECK
: ('_relocations', [
84 // CHECK
: # Relocation 0
85 // CHECK
: (('word-0', 0xa0000027),
86 // CHECK
: ('word-1', 0x0)),
87 // CHECK
: # Relocation 1
88 // CHECK
: (('word-0', 0xa400001d),
89 // CHECK
: ('word-1', 0x6)),
90 // CHECK
: # Relocation 2
91 // CHECK
: (('word-0', 0xa1000000),
92 // CHECK
: ('word-1', 0x4)),
93 // CHECK
: # Relocation 3
94 // CHECK
: (('word-0', 0xa4000013),
95 // CHECK
: ('word-1', 0x4)),
96 // CHECK
: # Relocation 4
97 // CHECK
: (('word-0', 0xa1000000),
98 // CHECK
: ('word-1', 0x2)),
99 // CHECK
: # Relocation 5
100 // CHECK
: (('word-0', 0xa4000009),
101 // CHECK
: ('word-1', 0x0)),
102 // CHECK
: # Relocation 6
103 // CHECK
: (('word-0', 0xa1000000),
104 // CHECK
: ('word-1', 0x2)),
106 // CHECK
: ('_section_data', '31c031c0 31c031c0 b8feffff ffb8feff ffffb802 000000b8 02000000 b8020000 00b80200 0000b8fe ffffff')
107 // CHECK
: # Section 1
108 // CHECK
: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
109 // CHECK
: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
110 // CHECK
: ('address', 43)
111 // CHECK
: ('size', 44)
112 // CHECK
: ('offset', 367)
113 // CHECK
: ('alignment', 0)
114 // CHECK
: ('reloc_offset', 468)
115 // CHECK
: ('num_reloc', 7)
116 // CHECK
: ('flags', 0x0)
117 // CHECK
: ('reserved1', 0)
118 // CHECK
: ('reserved2', 0)
120 // CHECK
: ('_relocations', [
121 // CHECK
: # Relocation 0
122 // CHECK
: (('word-0', 0xa0000028),
123 // CHECK
: ('word-1', 0x2b)),
124 // CHECK
: # Relocation 1
125 // CHECK
: (('word-0', 0xa4000020),
126 // CHECK
: ('word-1', 0x37)),
127 // CHECK
: # Relocation 2
128 // CHECK
: (('word-0', 0xa1000000),
129 // CHECK
: ('word-1', 0x33)),
130 // CHECK
: # Relocation 3
131 // CHECK
: (('word-0', 0xa4000018),
132 // CHECK
: ('word-1', 0x33)),
133 // CHECK
: # Relocation 4
134 // CHECK
: (('word-0', 0xa1000000),
135 // CHECK
: ('word-1', 0x2f)),
136 // CHECK
: # Relocation 5
137 // CHECK
: (('word-0', 0xa4000010),
138 // CHECK
: ('word-1', 0x2b)),
139 // CHECK
: # Relocation 6
140 // CHECK
: (('word-0', 0xa1000000),
141 // CHECK
: ('word-1', 0x2f)),
143 // CHECK
: ('_section_data', '00000000 00000000 00000000 00000000 fcffffff fcffffff 04000000 04000000 04000000 04000000 27000000')
146 // CHECK
: # Load Command 1
147 // CHECK
: (('command', 2)
148 // CHECK
: ('size', 24)
149 // CHECK
: ('symoff', 524)
150 // CHECK
: ('nsyms', 4)
151 // CHECK
: ('stroff', 572)
152 // CHECK
: ('strsize', 36)
153 // CHECK
: ('_string_data', '\x00_text_a\x00_text_b\x00_data_a\x00_data_b\x00\x00\x00\x00')
154 // CHECK
: ('_symbols', [
156 // CHECK
: (('n_strx', 1)
157 // CHECK
: ('n_type', 0xe)
158 // CHECK
: ('n_sect', 1)
159 // CHECK
: ('n_desc', 0)
160 // CHECK
: ('n_value', 0)
161 // CHECK
: ('_string', '_text_a')
164 // CHECK
: (('n_strx', 9)
165 // CHECK
: ('n_type', 0xe)
166 // CHECK
: ('n_sect', 1)
167 // CHECK
: ('n_desc', 0)
168 // CHECK
: ('n_value', 2)
169 // CHECK
: ('_string', '_text_b')
172 // CHECK
: (('n_strx', 17)
173 // CHECK
: ('n_type', 0xe)
174 // CHECK
: ('n_sect', 2)
175 // CHECK
: ('n_desc', 0)
176 // CHECK
: ('n_value', 43)
177 // CHECK
: ('_string', '_data_a')
180 // CHECK
: (('n_strx', 25)
181 // CHECK
: ('n_type', 0xe)
182 // CHECK
: ('n_sect', 2)
183 // CHECK
: ('n_desc', 0)
184 // CHECK
: ('n_value', 47)
185 // CHECK
: ('_string', '_data_b')
189 // CHECK
: # Load Command 2
190 // CHECK
: (('command', 11)
191 // CHECK
: ('size', 80)
192 // CHECK
: ('ilocalsym', 0)
193 // CHECK
: ('nlocalsym', 4)
194 // CHECK
: ('iextdefsym', 4)
195 // CHECK
: ('nextdefsym', 0)
196 // CHECK
: ('iundefsym', 4)
197 // CHECK
: ('nundefsym', 0)
198 // CHECK
: ('tocoff', 0)
199 // CHECK
: ('ntoc', 0)
200 // CHECK
: ('modtaboff', 0)
201 // CHECK
: ('nmodtab', 0)
202 // CHECK
: ('extrefsymoff', 0)
203 // CHECK
: ('nextrefsyms', 0)
204 // CHECK
: ('indirectsymoff', 0)
205 // CHECK
: ('nindirectsyms', 0)
206 // CHECK
: ('extreloff', 0)
207 // CHECK
: ('nextrel', 0)
208 // CHECK
: ('locreloff', 0)
209 // CHECK
: ('nlocrel', 0)
210 // CHECK
: ('_indirect_symbols', [