cf05afa7509f47f2f30d29db6b26713dfdc1c7cd
[oota-llvm.git] / test / MC / MachO / symbols-1.s
1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck -check-prefix CHECK-X86_32 %s
2 // RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump | FileCheck -check-prefix CHECK-X86_64 %s
3
4 sym_local_B:
5 .globl sym_globl_def_B
6 .globl sym_globl_undef_B
7 sym_local_A:
8 .globl sym_globl_def_A
9 .globl sym_globl_undef_A
10 sym_local_C:
11 .globl sym_globl_def_C
12 .globl sym_globl_undef_C
13         
14 sym_globl_def_A: 
15 sym_globl_def_B: 
16 sym_globl_def_C: 
17 Lsym_asm_temp:
18         .long 0
19         
20 // CHECK-X86_32: ('cputype', 7)
21 // CHECK-X86_32: ('cpusubtype', 3)
22 // CHECK-X86_32: ('filetype', 1)
23 // CHECK-X86_32: ('num_load_commands', 3)
24 // CHECK-X86_32: ('load_commands_size', 228)
25 // CHECK-X86_32: ('flag', 0)
26 // CHECK-X86_32: ('load_commands', [
27 // CHECK-X86_32:   # Load Command 0
28 // CHECK-X86_32:  (('command', 1)
29 // CHECK-X86_32:   ('size', 124)
30 // CHECK-X86_32:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
31 // CHECK-X86_32:   ('vm_addr', 0)
32 // CHECK-X86_32:   ('vm_size', 4)
33 // CHECK-X86_32:   ('file_offset', 256)
34 // CHECK-X86_32:   ('file_size', 4)
35 // CHECK-X86_32:   ('maxprot', 7)
36 // CHECK-X86_32:   ('initprot', 7)
37 // CHECK-X86_32:   ('num_sections', 1)
38 // CHECK-X86_32:   ('flags', 0)
39 // CHECK-X86_32:   ('sections', [
40 // CHECK-X86_32:     # Section 0
41 // CHECK-X86_32:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
42 // CHECK-X86_32:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
43 // CHECK-X86_32:     ('address', 0)
44 // CHECK-X86_32:     ('size', 4)
45 // CHECK-X86_32:     ('offset', 256)
46 // CHECK-X86_32:     ('alignment', 0)
47 // CHECK-X86_32:     ('reloc_offset', 0)
48 // CHECK-X86_32:     ('num_reloc', 0)
49 // CHECK-X86_32:     ('flags', 0x80000000)
50 // CHECK-X86_32:     ('reserved1', 0)
51 // CHECK-X86_32:     ('reserved2', 0)
52 // CHECK-X86_32:    ),
53 // CHECK-X86_32:   ])
54 // CHECK-X86_32:  ),
55 // CHECK-X86_32:   # Load Command 1
56 // CHECK-X86_32:  (('command', 2)
57 // CHECK-X86_32:   ('size', 24)
58 // CHECK-X86_32:   ('symoff', 260)
59 // CHECK-X86_32:   ('nsyms', 9)
60 // CHECK-X86_32:   ('stroff', 368)
61 // CHECK-X86_32:   ('strsize', 140)
62 // CHECK-X86_32:   ('_string_data', '\x00sym_globl_def_B\x00sym_globl_undef_B\x00sym_globl_def_A\x00sym_globl_undef_A\x00sym_globl_def_C\x00sym_globl_undef_C\x00sym_local_B\x00sym_local_A\x00sym_local_C\x00\x00')
63 // CHECK-X86_32:   ('_symbols', [
64 // CHECK-X86_32:     # Symbol 0
65 // CHECK-X86_32:    (('n_strx', 103)
66 // CHECK-X86_32:     ('n_type', 0xe)
67 // CHECK-X86_32:     ('n_sect', 1)
68 // CHECK-X86_32:     ('n_desc', 0)
69 // CHECK-X86_32:     ('n_value', 0)
70 // CHECK-X86_32:     ('_string', 'sym_local_B')
71 // CHECK-X86_32:    ),
72 // CHECK-X86_32:     # Symbol 1
73 // CHECK-X86_32:    (('n_strx', 115)
74 // CHECK-X86_32:     ('n_type', 0xe)
75 // CHECK-X86_32:     ('n_sect', 1)
76 // CHECK-X86_32:     ('n_desc', 0)
77 // CHECK-X86_32:     ('n_value', 0)
78 // CHECK-X86_32:     ('_string', 'sym_local_A')
79 // CHECK-X86_32:    ),
80 // CHECK-X86_32:     # Symbol 2
81 // CHECK-X86_32:    (('n_strx', 127)
82 // CHECK-X86_32:     ('n_type', 0xe)
83 // CHECK-X86_32:     ('n_sect', 1)
84 // CHECK-X86_32:     ('n_desc', 0)
85 // CHECK-X86_32:     ('n_value', 0)
86 // CHECK-X86_32:     ('_string', 'sym_local_C')
87 // CHECK-X86_32:    ),
88 // CHECK-X86_32:     # Symbol 3
89 // CHECK-X86_32:    (('n_strx', 35)
90 // CHECK-X86_32:     ('n_type', 0xf)
91 // CHECK-X86_32:     ('n_sect', 1)
92 // CHECK-X86_32:     ('n_desc', 0)
93 // CHECK-X86_32:     ('n_value', 0)
94 // CHECK-X86_32:     ('_string', 'sym_globl_def_A')
95 // CHECK-X86_32:    ),
96 // CHECK-X86_32:     # Symbol 4
97 // CHECK-X86_32:    (('n_strx', 1)
98 // CHECK-X86_32:     ('n_type', 0xf)
99 // CHECK-X86_32:     ('n_sect', 1)
100 // CHECK-X86_32:     ('n_desc', 0)
101 // CHECK-X86_32:     ('n_value', 0)
102 // CHECK-X86_32:     ('_string', 'sym_globl_def_B')
103 // CHECK-X86_32:    ),
104 // CHECK-X86_32:     # Symbol 5
105 // CHECK-X86_32:    (('n_strx', 69)
106 // CHECK-X86_32:     ('n_type', 0xf)
107 // CHECK-X86_32:     ('n_sect', 1)
108 // CHECK-X86_32:     ('n_desc', 0)
109 // CHECK-X86_32:     ('n_value', 0)
110 // CHECK-X86_32:     ('_string', 'sym_globl_def_C')
111 // CHECK-X86_32:    ),
112 // CHECK-X86_32:     # Symbol 6
113 // CHECK-X86_32:    (('n_strx', 51)
114 // CHECK-X86_32:     ('n_type', 0x1)
115 // CHECK-X86_32:     ('n_sect', 0)
116 // CHECK-X86_32:     ('n_desc', 0)
117 // CHECK-X86_32:     ('n_value', 0)
118 // CHECK-X86_32:     ('_string', 'sym_globl_undef_A')
119 // CHECK-X86_32:    ),
120 // CHECK-X86_32:     # Symbol 7
121 // CHECK-X86_32:    (('n_strx', 17)
122 // CHECK-X86_32:     ('n_type', 0x1)
123 // CHECK-X86_32:     ('n_sect', 0)
124 // CHECK-X86_32:     ('n_desc', 0)
125 // CHECK-X86_32:     ('n_value', 0)
126 // CHECK-X86_32:     ('_string', 'sym_globl_undef_B')
127 // CHECK-X86_32:    ),
128 // CHECK-X86_32:     # Symbol 8
129 // CHECK-X86_32:    (('n_strx', 85)
130 // CHECK-X86_32:     ('n_type', 0x1)
131 // CHECK-X86_32:     ('n_sect', 0)
132 // CHECK-X86_32:     ('n_desc', 0)
133 // CHECK-X86_32:     ('n_value', 0)
134 // CHECK-X86_32:     ('_string', 'sym_globl_undef_C')
135 // CHECK-X86_32:    ),
136 // CHECK-X86_32:   ])
137 // CHECK-X86_32:  ),
138 // CHECK-X86_32:   # Load Command 2
139 // CHECK-X86_32:  (('command', 11)
140 // CHECK-X86_32:   ('size', 80)
141 // CHECK-X86_32:   ('ilocalsym', 0)
142 // CHECK-X86_32:   ('nlocalsym', 3)
143 // CHECK-X86_32:   ('iextdefsym', 3)
144 // CHECK-X86_32:   ('nextdefsym', 3)
145 // CHECK-X86_32:   ('iundefsym', 6)
146 // CHECK-X86_32:   ('nundefsym', 3)
147 // CHECK-X86_32:   ('tocoff', 0)
148 // CHECK-X86_32:   ('ntoc', 0)
149 // CHECK-X86_32:   ('modtaboff', 0)
150 // CHECK-X86_32:   ('nmodtab', 0)
151 // CHECK-X86_32:   ('extrefsymoff', 0)
152 // CHECK-X86_32:   ('nextrefsyms', 0)
153 // CHECK-X86_32:   ('indirectsymoff', 0)
154 // CHECK-X86_32:   ('nindirectsyms', 0)
155 // CHECK-X86_32:   ('extreloff', 0)
156 // CHECK-X86_32:   ('nextrel', 0)
157 // CHECK-X86_32:   ('locreloff', 0)
158 // CHECK-X86_32:   ('nlocrel', 0)
159 // CHECK-X86_32:   ('_indirect_symbols', [
160 // CHECK-X86_32:   ])
161 // CHECK-X86_32:  ),
162 // CHECK-X86_32: ])
163
164 // CHECK-X86_64: ('cputype', 16777223)
165 // CHECK-X86_64: ('cpusubtype', 3)
166 // CHECK-X86_64: ('filetype', 1)
167 // CHECK-X86_64: ('num_load_commands', 3)
168 // CHECK-X86_64: ('load_commands_size', 256)
169 // CHECK-X86_64: ('flag', 0)
170 // CHECK-X86_64: ('reserved', 0)
171 // CHECK-X86_64: ('load_commands', [
172 // CHECK-X86_64:   # Load Command 0
173 // CHECK-X86_64:  (('command', 25)
174 // CHECK-X86_64:   ('size', 152)
175 // CHECK-X86_64:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
176 // CHECK-X86_64:   ('vm_addr', 0)
177 // CHECK-X86_64:   ('vm_size', 4)
178 // CHECK-X86_64:   ('file_offset', 288)
179 // CHECK-X86_64:   ('file_size', 4)
180 // CHECK-X86_64:   ('maxprot', 7)
181 // CHECK-X86_64:   ('initprot', 7)
182 // CHECK-X86_64:   ('num_sections', 1)
183 // CHECK-X86_64:   ('flags', 0)
184 // CHECK-X86_64:   ('sections', [
185 // CHECK-X86_64:     # Section 0
186 // CHECK-X86_64:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
187 // CHECK-X86_64:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
188 // CHECK-X86_64:     ('address', 0)
189 // CHECK-X86_64:     ('size', 4)
190 // CHECK-X86_64:     ('offset', 288)
191 // CHECK-X86_64:     ('alignment', 0)
192 // CHECK-X86_64:     ('reloc_offset', 0)
193 // CHECK-X86_64:     ('num_reloc', 0)
194 // CHECK-X86_64:     ('flags', 0x80000000)
195 // CHECK-X86_64:     ('reserved1', 0)
196 // CHECK-X86_64:     ('reserved2', 0)
197 // CHECK-X86_64:     ('reserved3', 0)
198 // CHECK-X86_64:    ),
199 // CHECK-X86_64:   ('_relocations', [
200 // CHECK-X86_64:   ])
201 // CHECK-X86_64:   ])
202 // CHECK-X86_64:  ),
203 // CHECK-X86_64:   # Load Command 1
204 // CHECK-X86_64:  (('command', 2)
205 // CHECK-X86_64:   ('size', 24)
206 // CHECK-X86_64:   ('symoff', 292)
207 // CHECK-X86_64:   ('nsyms', 9)
208 // CHECK-X86_64:   ('stroff', 436)
209 // CHECK-X86_64:   ('strsize', 140)
210 // CHECK-X86_64:   ('_string_data', '\x00sym_globl_def_B\x00sym_globl_undef_B\x00sym_globl_def_A\x00sym_globl_undef_A\x00sym_globl_def_C\x00sym_globl_undef_C\x00sym_local_B\x00sym_local_A\x00sym_local_C\x00\x00')
211 // CHECK-X86_64:   ('_symbols', [
212 // CHECK-X86_64:     # Symbol 0
213 // CHECK-X86_64:    (('n_strx', 103)
214 // CHECK-X86_64:     ('n_type', 0xe)
215 // CHECK-X86_64:     ('n_sect', 1)
216 // CHECK-X86_64:     ('n_desc', 0)
217 // CHECK-X86_64:     ('n_value', 0)
218 // CHECK-X86_64:     ('_string', 'sym_local_B')
219 // CHECK-X86_64:    ),
220 // CHECK-X86_64:     # Symbol 1
221 // CHECK-X86_64:    (('n_strx', 115)
222 // CHECK-X86_64:     ('n_type', 0xe)
223 // CHECK-X86_64:     ('n_sect', 1)
224 // CHECK-X86_64:     ('n_desc', 0)
225 // CHECK-X86_64:     ('n_value', 0)
226 // CHECK-X86_64:     ('_string', 'sym_local_A')
227 // CHECK-X86_64:    ),
228 // CHECK-X86_64:     # Symbol 2
229 // CHECK-X86_64:    (('n_strx', 127)
230 // CHECK-X86_64:     ('n_type', 0xe)
231 // CHECK-X86_64:     ('n_sect', 1)
232 // CHECK-X86_64:     ('n_desc', 0)
233 // CHECK-X86_64:     ('n_value', 0)
234 // CHECK-X86_64:     ('_string', 'sym_local_C')
235 // CHECK-X86_64:    ),
236 // CHECK-X86_64:     # Symbol 3
237 // CHECK-X86_64:    (('n_strx', 35)
238 // CHECK-X86_64:     ('n_type', 0xf)
239 // CHECK-X86_64:     ('n_sect', 1)
240 // CHECK-X86_64:     ('n_desc', 0)
241 // CHECK-X86_64:     ('n_value', 0)
242 // CHECK-X86_64:     ('_string', 'sym_globl_def_A')
243 // CHECK-X86_64:    ),
244 // CHECK-X86_64:     # Symbol 4
245 // CHECK-X86_64:    (('n_strx', 1)
246 // CHECK-X86_64:     ('n_type', 0xf)
247 // CHECK-X86_64:     ('n_sect', 1)
248 // CHECK-X86_64:     ('n_desc', 0)
249 // CHECK-X86_64:     ('n_value', 0)
250 // CHECK-X86_64:     ('_string', 'sym_globl_def_B')
251 // CHECK-X86_64:    ),
252 // CHECK-X86_64:     # Symbol 5
253 // CHECK-X86_64:    (('n_strx', 69)
254 // CHECK-X86_64:     ('n_type', 0xf)
255 // CHECK-X86_64:     ('n_sect', 1)
256 // CHECK-X86_64:     ('n_desc', 0)
257 // CHECK-X86_64:     ('n_value', 0)
258 // CHECK-X86_64:     ('_string', 'sym_globl_def_C')
259 // CHECK-X86_64:    ),
260 // CHECK-X86_64:     # Symbol 6
261 // CHECK-X86_64:    (('n_strx', 51)
262 // CHECK-X86_64:     ('n_type', 0x1)
263 // CHECK-X86_64:     ('n_sect', 0)
264 // CHECK-X86_64:     ('n_desc', 0)
265 // CHECK-X86_64:     ('n_value', 0)
266 // CHECK-X86_64:     ('_string', 'sym_globl_undef_A')
267 // CHECK-X86_64:    ),
268 // CHECK-X86_64:     # Symbol 7
269 // CHECK-X86_64:    (('n_strx', 17)
270 // CHECK-X86_64:     ('n_type', 0x1)
271 // CHECK-X86_64:     ('n_sect', 0)
272 // CHECK-X86_64:     ('n_desc', 0)
273 // CHECK-X86_64:     ('n_value', 0)
274 // CHECK-X86_64:     ('_string', 'sym_globl_undef_B')
275 // CHECK-X86_64:    ),
276 // CHECK-X86_64:     # Symbol 8
277 // CHECK-X86_64:    (('n_strx', 85)
278 // CHECK-X86_64:     ('n_type', 0x1)
279 // CHECK-X86_64:     ('n_sect', 0)
280 // CHECK-X86_64:     ('n_desc', 0)
281 // CHECK-X86_64:     ('n_value', 0)
282 // CHECK-X86_64:     ('_string', 'sym_globl_undef_C')
283 // CHECK-X86_64:    ),
284 // CHECK-X86_64:   ])
285 // CHECK-X86_64:  ),
286 // CHECK-X86_64:   # Load Command 2
287 // CHECK-X86_64:  (('command', 11)
288 // CHECK-X86_64:   ('size', 80)
289 // CHECK-X86_64:   ('ilocalsym', 0)
290 // CHECK-X86_64:   ('nlocalsym', 3)
291 // CHECK-X86_64:   ('iextdefsym', 3)
292 // CHECK-X86_64:   ('nextdefsym', 3)
293 // CHECK-X86_64:   ('iundefsym', 6)
294 // CHECK-X86_64:   ('nundefsym', 3)
295 // CHECK-X86_64:   ('tocoff', 0)
296 // CHECK-X86_64:   ('ntoc', 0)
297 // CHECK-X86_64:   ('modtaboff', 0)
298 // CHECK-X86_64:   ('nmodtab', 0)
299 // CHECK-X86_64:   ('extrefsymoff', 0)
300 // CHECK-X86_64:   ('nextrefsyms', 0)
301 // CHECK-X86_64:   ('indirectsymoff', 0)
302 // CHECK-X86_64:   ('nindirectsyms', 0)
303 // CHECK-X86_64:   ('extreloff', 0)
304 // CHECK-X86_64:   ('nextrel', 0)
305 // CHECK-X86_64:   ('locreloff', 0)
306 // CHECK-X86_64:   ('nlocrel', 0)
307 // CHECK-X86_64:   ('_indirect_symbols', [
308 // CHECK-X86_64:   ])
309 // CHECK-X86_64:  ),
310 // CHECK-X86_64: ])