1 // RUN
: llvm-mc
-triple i386-apple-darwin9
%s
-filetype
=obj
-o
- | macho-dump | FileCheck
%s
3 // FIXME
: We are missing
a lot of diagnostics on this kind of stuff which the
7 .indirect_symbol sym_lsp_B
11 .indirect_symbol sym_lsp_A
15 .indirect_symbol sym_lsp_C
18 // FIXME
: Enable this test once missing llvm-mc support is in place.
20 .indirect_symbol sym_lsp_D
24 .indirect_symbol sym_lsp_E
27 // FIXME
: Enable this test once missing llvm-mc support is in place.
30 .indirect_symbol sym_lsp_F
36 .indirect_symbol sym_lsp_G
39 .non_lazy_symbol_pointer
40 .indirect_symbol sym_nlp_B
44 .indirect_symbol sym_nlp_A
48 .indirect_symbol sym_nlp_C
51 // FIXME
: Enable this test once missing llvm-mc support is in place.
53 .indirect_symbol sym_nlp_D
57 .indirect_symbol sym_nlp_E
60 // FIXME
: Enable this test once missing llvm-mc support is in place.
63 .indirect_symbol sym_nlp_F
69 .indirect_symbol sym_nlp_G
72 // CHECK
: ('cputype', 7)
73 // CHECK
: ('cpusubtype', 3)
74 // CHECK
: ('filetype', 1)
75 // CHECK
: ('num_load_commands', 1)
76 // CHECK
: ('load_commands_size', 364)
78 // CHECK
: ('load_commands', [
79 // CHECK
: # Load Command 0
80 // CHECK
: (('command', 1)
81 // CHECK
: ('size', 260)
82 // CHECK
: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
83 // CHECK
: ('vm_addr', 0)
84 // CHECK
: ('vm_size', 40)
85 // CHECK
: ('file_offset', 392)
86 // CHECK
: ('file_size', 40)
87 // CHECK
: ('maxprot', 7)
88 // CHECK
: ('initprot', 7)
89 // CHECK
: ('num_sections', 3)
90 // CHECK
: ('flags', 0)
91 // CHECK
: ('sections', [
93 // CHECK
: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
94 // CHECK
: ('address', 0)
96 // CHECK
: ('offset', 392)
97 // CHECK
: ('alignment', 0)
98 // CHECK
: ('reloc_offset', 0)
99 // CHECK
: ('num_reloc', 0)
100 // CHECK
: ('flags', 0x80000000)
101 // CHECK
: ('reserved1', 0)
102 // CHECK
: ('reserved2', 0)
104 // CHECK
: # Section 1
105 // CHECK
: (('section_name', '__la_symbol_ptr\x00')
106 // CHECK
: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
107 // CHECK
: ('address', 0)
108 // CHECK
: ('size', 20)
109 // CHECK
: ('offset', 392)
110 // CHECK
: ('alignment', 2)
111 // CHECK
: ('reloc_offset', 0)
112 // CHECK
: ('num_reloc', 0)
113 // CHECK
: ('flags', 0x7)
114 // CHECK
: ('reserved1', 0)
115 // CHECK
: ('reserved2', 0)
117 // CHECK
: # Section 2
118 // CHECK
: (('section_name', '__nl_symbol_ptr\x00')
119 // CHECK
: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
120 // CHECK
: ('address', 20)
121 // CHECK
: ('size', 20)
122 // CHECK
: ('offset', 412)
123 // CHECK
: ('alignment', 2)
124 // CHECK
: ('reloc_offset', 0)
125 // CHECK
: ('num_reloc', 0)
126 // CHECK
: ('flags', 0x6)
127 // FIXME
: Enable this when fixed
!
128 // CHECX
: ('reserved1', 5)
129 // CHECK
: ('reserved2', 0)
133 // CHECK
: # Load Command 1
134 // CHECK
: (('command', 2)
135 // CHECK
: ('size', 24)
136 // CHECK
: ('symoff', 472)
137 // CHECK
: ('nsyms', 10)
138 // CHECK
: ('stroff', 592)
139 // CHECK
: ('strsize', 104)
140 // CHECK
: ('_string_data', '\x00sym_lsp_A\x00sym_lsp_G\x00sym_nlp_A\x00sym_nlp_G\x00sym_nlp_B\x00sym_nlp_E\x00sym_lsp_B\x00sym_lsp_E\x00sym_lsp_C\x00sym_nlp_C\x00\x00\x00\x00')
141 // CHECK
: ('_symbols', [
143 // CHECK
: (('n_strx', 81)
144 // CHECK
: ('n_type', 0xe)
145 // CHECK
: ('n_sect', 2)
146 // CHECK
: ('n_desc', 0)
147 // CHECK
: ('n_value', 8)
148 // CHECK
: ('_string', 'sym_lsp_C')
151 // CHECK
: (('n_strx', 91)
152 // CHECK
: ('n_type', 0xe)
153 // CHECK
: ('n_sect', 3)
154 // CHECK
: ('n_desc', 0)
155 // CHECK
: ('n_value', 28)
156 // CHECK
: ('_string', 'sym_nlp_C')
159 // CHECK
: (('n_strx', 11)
160 // CHECK
: ('n_type', 0xf)
161 // CHECK
: ('n_sect', 2)
162 // CHECK
: ('n_desc', 0)
163 // CHECK
: ('n_value', 16)
164 // CHECK
: ('_string', 'sym_lsp_G')
167 // CHECK
: (('n_strx', 31)
168 // CHECK
: ('n_type', 0xf)
169 // CHECK
: ('n_sect', 3)
170 // CHECK
: ('n_desc', 0)
171 // CHECK
: ('n_value', 36)
172 // CHECK
: ('_string', 'sym_nlp_G')
175 // CHECK
: (('n_strx', 1)
176 // CHECK
: ('n_type', 0x1)
177 // CHECK
: ('n_sect', 0)
178 // CHECK
: ('n_desc', 0)
179 // CHECK
: ('n_value', 0)
180 // CHECK
: ('_string', 'sym_lsp_A')
183 // CHECK
: (('n_strx', 61)
184 // CHECK
: ('n_type', 0x1)
185 // CHECK
: ('n_sect', 0)
186 // CHECK
: ('n_desc', 1)
187 // CHECK
: ('n_value', 0)
188 // CHECK
: ('_string', 'sym_lsp_B')
191 // CHECK
: (('n_strx', 71)
192 // CHECK
: ('n_type', 0x1)
193 // CHECK
: ('n_sect', 0)
194 // CHECK
: ('n_desc', 1)
195 // CHECK
: ('n_value', 0)
196 // CHECK
: ('_string', 'sym_lsp_E')
199 // CHECK
: (('n_strx', 21)
200 // CHECK
: ('n_type', 0x1)
201 // CHECK
: ('n_sect', 0)
202 // CHECK
: ('n_desc', 0)
203 // CHECK
: ('n_value', 0)
204 // CHECK
: ('_string', 'sym_nlp_A')
207 // CHECK
: (('n_strx', 41)
208 // CHECK
: ('n_type', 0x1)
209 // CHECK
: ('n_sect', 0)
210 // CHECK
: ('n_desc', 0)
211 // CHECK
: ('n_value', 0)
212 // CHECK
: ('_string', 'sym_nlp_B')
215 // CHECK
: (('n_strx', 51)
216 // CHECK
: ('n_type', 0x1)
217 // CHECK
: ('n_sect', 0)
218 // CHECK
: ('n_desc', 0)
219 // CHECK
: ('n_value', 0)
220 // CHECK
: ('_string', 'sym_nlp_E')
224 // CHECK
: # Load Command 2
225 // CHECK
: (('command', 11)
226 // CHECK
: ('size', 80)
227 // CHECK
: ('ilocalsym', 0)
228 // CHECK
: ('nlocalsym', 2)
229 // CHECK
: ('iextdefsym', 2)
230 // CHECK
: ('nextdefsym', 2)
231 // CHECK
: ('iundefsym', 4)
232 // CHECK
: ('nundefsym', 6)
233 // CHECK
: ('tocoff', 0)
234 // CHECK
: ('ntoc', 0)
235 // CHECK
: ('modtaboff', 0)
236 // CHECK
: ('nmodtab', 0)
237 // CHECK
: ('extrefsymoff', 0)
238 // CHECK
: ('nextrefsyms', 0)
239 // CHECK
: ('indirectsymoff', 432)
240 // CHECK
: ('nindirectsyms', 10)
241 // CHECK
: ('extreloff', 0)
242 // CHECK
: ('nextrel', 0)
243 // CHECK
: ('locreloff', 0)
244 // CHECK
: ('nlocrel', 0)
245 // CHECK
: ('_indirect_symbols', [
246 // CHECK
: # Indirect Symbol 0
247 // CHECK
: (('symbol_index', 0x5),),
248 // CHECK
: # Indirect Symbol 1
249 // CHECK
: (('symbol_index', 0x4),),
250 // CHECK
: # Indirect Symbol 2
251 // CHECK
: (('symbol_index', 0x0),),
252 // CHECK
: # Indirect Symbol 3
253 // CHECK
: (('symbol_index', 0x6),),
254 // CHECK
: # Indirect Symbol 4
255 // CHECK
: (('symbol_index', 0x2),),
256 // CHECK
: # Indirect Symbol 5
257 // CHECK
: (('symbol_index', 0x8),),
258 // CHECK
: # Indirect Symbol 6
259 // CHECK
: (('symbol_index', 0x7),),
260 // CHECK
: # Indirect Symbol 7
261 // CHECK
: (('symbol_index', 0x80000000),),
262 // CHECK
: # Indirect Symbol 8
263 // CHECK
: (('symbol_index', 0x9),),
264 // CHECK
: # Indirect Symbol 9
265 // CHECK
: (('symbol_index', 0x3),),