[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / MC / MachO / symbol-flags.s
blob991ea5628c42d70750326b7e5ab6c3667c8eb7ff
1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj --file-headers -S -r --symbols --macho-segment --macho-dysymtab --macho-indirect-symbols | FileCheck %s
3 .reference sym_ref_A
4 .reference sym_ref_def_A
5 sym_ref_def_A:
6 sym_ref_def_C:
7 .reference sym_ref_def_C
8 .reference sym_ref_def_D
9 .globl sym_ref_def_D
10 .globl sym_ref_def_E
11 .reference sym_ref_def_E
13 .weak_reference sym_weak_ref_A
14 .weak_reference sym_weak_ref_def_A
15 sym_weak_ref_def_A:
16 sym_weak_ref_def_B:
17 .weak_reference sym_weak_ref_def_B
19 .data
20 .globl sym_weak_def_A
21 .weak_definition sym_weak_def_A
22 sym_weak_def_A:
23 sym_weak_def_B:
24 .weak_definition sym_weak_def_B
25 .globl sym_weak_def_B
26 .weak_definition sym_weak_def_C
27 sym_weak_def_C:
28 .globl sym_weak_def_C
30 .lazy_reference sym_lazy_ref_A
31 .lazy_reference sym_lazy_ref_B
32 sym_lazy_ref_B:
33 sym_lazy_ref_C:
34 .lazy_reference sym_lazy_ref_C
35 .lazy_reference sym_lazy_ref_D
36 .globl sym_lazy_ref_D
37 .globl sym_lazy_ref_E
38 .lazy_reference sym_lazy_ref_E
40 .private_extern sym_private_ext_A
41 .private_extern sym_private_ext_B
42 sym_private_ext_B:
43 sym_private_ext_C:
44 .private_extern sym_private_ext_C
45 .private_extern sym_private_ext_D
46 .globl sym_private_ext_D
47 .globl sym_private_ext_E
48 .private_extern sym_private_ext_E
50 .no_dead_strip sym_no_dead_strip_A
52 sym_symbol_resolver_A:
53 .symbol_resolver sym_symbol_resolver_A
55 .reference sym_ref_A
56 .desc sym_ref_A, 1
57 .desc sym_ref_A, 0x1234
59 .desc sym_desc_flags,0x47
60 sym_desc_flags:
62 // CHECK: File: <stdin>
63 // CHECK: Format: Mach-O 32-bit i386
64 // CHECK: Arch: i386
65 // CHECK: AddressSize: 32bit
66 // CHECK: MachHeader {
67 // CHECK: Magic: Magic (0xFEEDFACE)
68 // CHECK: CpuType: X86 (0x7)
69 // CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
70 // CHECK: FileType: Relocatable (0x1)
71 // CHECK: NumOfLoadCommands: 4
72 // CHECK: SizeOfLoadCommands: 312
73 // CHECK: Flags [ (0x0)
74 // CHECK: ]
75 // CHECK: }
76 // CHECK: Sections [
77 // CHECK: Section {
78 // CHECK: Index: 0
79 // CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
80 // CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
81 // CHECK: Address: 0x0
82 // CHECK: Size: 0x0
83 // CHECK: Offset: 340
84 // CHECK: Alignment: 0
85 // CHECK: RelocationOffset: 0x0
86 // CHECK: RelocationCount: 0
87 // CHECK: Type: Regular (0x0)
88 // CHECK: Attributes [ (0x800000)
89 // CHECK: PureInstructions (0x800000)
90 // CHECK: ]
91 // CHECK: Reserved1: 0x0
92 // CHECK: Reserved2: 0x0
93 // CHECK: }
94 // CHECK: Section {
95 // CHECK: Index: 1
96 // CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
97 // CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
98 // CHECK: Address: 0x0
99 // CHECK: Size: 0x0
100 // CHECK: Offset: 340
101 // CHECK: Alignment: 0
102 // CHECK: RelocationOffset: 0x0
103 // CHECK: RelocationCount: 0
104 // CHECK: Type: Regular (0x0)
105 // CHECK: Attributes [ (0x0)
106 // CHECK: ]
107 // CHECK: Reserved1: 0x0
108 // CHECK: Reserved2: 0x0
109 // CHECK: }
110 // CHECK: ]
111 // CHECK: Relocations [
112 // CHECK: ]
113 // CHECK: Symbols [
114 // CHECK: Symbol {
115 // CHECK: Name: sym_ref_def_A (354)
116 // CHECK: Type: Section (0xE)
117 // CHECK: Section: __text (0x1)
118 // CHECK: RefType: UndefinedNonLazy (0x0)
119 // CHECK: Flags [ (0x20)
120 // CHECK: NoDeadStrip (0x20)
121 // CHECK: ]
122 // CHECK: Value: 0x0
123 // CHECK: }
124 // CHECK: Symbol {
125 // CHECK: Name: sym_ref_def_C (158)
126 // CHECK: Type: Section (0xE)
127 // CHECK: Section: __text (0x1)
128 // CHECK: RefType: UndefinedNonLazy (0x0)
129 // CHECK: Flags [ (0x20)
130 // CHECK: NoDeadStrip (0x20)
131 // CHECK: ]
132 // CHECK: Value: 0x0
133 // CHECK: }
134 // CHECK: Symbol {
135 // CHECK: Name: sym_weak_ref_def_A (368)
136 // CHECK: Type: Section (0xE)
137 // CHECK: Section: __text (0x1)
138 // CHECK: RefType: UndefinedNonLazy (0x0)
139 // CHECK: Flags [ (0x40)
140 // CHECK: WeakRef (0x40)
141 // CHECK: ]
142 // CHECK: Value: 0x0
143 // CHECK: }
144 // CHECK: Symbol {
145 // CHECK: Name: sym_weak_ref_def_B (220)
146 // CHECK: Type: Section (0xE)
147 // CHECK: Section: __text (0x1)
148 // CHECK: RefType: UndefinedNonLazy (0x0)
149 // CHECK: Flags [ (0x0)
150 // CHECK: ]
151 // CHECK: Value: 0x0
152 // CHECK: }
153 // CHECK: Symbol {
154 // CHECK: Name: sym_lazy_ref_B (190)
155 // CHECK: Type: Section (0xE)
156 // CHECK: Section: __data (0x2)
157 // CHECK: RefType: UndefinedNonLazy (0x0)
158 // CHECK: Flags [ (0x20)
159 // CHECK: NoDeadStrip (0x20)
160 // CHECK: ]
161 // CHECK: Value: 0x0
162 // CHECK: }
163 // CHECK: Symbol {
164 // CHECK: Name: sym_lazy_ref_C (128)
165 // CHECK: Type: Section (0xE)
166 // CHECK: Section: __data (0x2)
167 // CHECK: RefType: UndefinedNonLazy (0x0)
168 // CHECK: Flags [ (0x20)
169 // CHECK: NoDeadStrip (0x20)
170 // CHECK: ]
171 // CHECK: Value: 0x0
172 // CHECK: }
173 // CHECK: Symbol {
174 // CHECK: Name: sym_symbol_resolver_A (257)
175 // CHECK: Type: Section (0xE)
176 // CHECK: Section: __data (0x2)
177 // CHECK: RefType: UndefinedNonLazy (0x0)
178 // CHECK: Flags [ (0x100)
179 // CHECK: ]
180 // CHECK: Value: 0x0
181 // CHECK: }
182 // CHECK: Symbol {
183 // CHECK: Name: sym_desc_flags (1)
184 // CHECK: Type: Section (0xE)
185 // CHECK: Section: __data (0x2)
186 // CHECK: RefType: UndefinedNonLazy (0x0)
187 // CHECK: Flags [ (0x40)
188 // CHECK: WeakRef (0x40)
189 // CHECK: ]
190 // CHECK: Value: 0x0
191 // CHECK: }
192 // CHECK: Symbol {
193 // CHECK: Name: sym_private_ext_B (172)
194 // CHECK: PrivateExtern
195 // CHECK: Extern
196 // CHECK: Type: Section (0xE)
197 // CHECK: Section: __data (0x2)
198 // CHECK: RefType: UndefinedNonLazy (0x0)
199 // CHECK: Flags [ (0x0)
200 // CHECK: ]
201 // CHECK: Value: 0x0
202 // CHECK: }
203 // CHECK: Symbol {
204 // CHECK: Name: sym_private_ext_C (110)
205 // CHECK: PrivateExtern
206 // CHECK: Extern
207 // CHECK: Type: Section (0xE)
208 // CHECK: Section: __data (0x2)
209 // CHECK: RefType: UndefinedNonLazy (0x0)
210 // CHECK: Flags [ (0x0)
211 // CHECK: ]
212 // CHECK: Value: 0x0
213 // CHECK: }
214 // CHECK: Symbol {
215 // CHECK: Name: sym_weak_def_A (339)
216 // CHECK: Extern
217 // CHECK: Type: Section (0xE)
218 // CHECK: Section: __data (0x2)
219 // CHECK: RefType: UndefinedNonLazy (0x0)
220 // CHECK: Flags [ (0x80)
221 // CHECK: WeakDef (0x80)
222 // CHECK: ]
223 // CHECK: Value: 0x0
224 // CHECK: }
225 // CHECK: Symbol {
226 // CHECK: Name: sym_weak_def_B (205)
227 // CHECK: Extern
228 // CHECK: Type: Section (0xE)
229 // CHECK: Section: __data (0x2)
230 // CHECK: RefType: UndefinedNonLazy (0x0)
231 // CHECK: Flags [ (0x80)
232 // CHECK: WeakDef (0x80)
233 // CHECK: ]
234 // CHECK: Value: 0x0
235 // CHECK: }
236 // CHECK: Symbol {
237 // CHECK: Name: sym_weak_def_C (143)
238 // CHECK: Extern
239 // CHECK: Type: Section (0xE)
240 // CHECK: Section: __data (0x2)
241 // CHECK: RefType: UndefinedNonLazy (0x0)
242 // CHECK: Flags [ (0x80)
243 // CHECK: WeakDef (0x80)
244 // CHECK: ]
245 // CHECK: Value: 0x0
246 // CHECK: }
247 // CHECK: Symbol {
248 // CHECK: Name: sym_lazy_ref_A (299)
249 // CHECK: Extern
250 // CHECK: Type: Undef (0x0)
251 // CHECK: Section: (0x0)
252 // CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)
253 // CHECK: Flags [ (0x20)
254 // CHECK: NoDeadStrip (0x20)
255 // CHECK: ]
256 // CHECK: Value: 0x0
257 // CHECK: }
258 // CHECK: Symbol {
259 // CHECK: Name: sym_lazy_ref_D (81)
260 // CHECK: Extern
261 // CHECK: Type: Undef (0x0)
262 // CHECK: Section: (0x0)
263 // CHECK: RefType: UndefinedNonLazy (0x0)
264 // CHECK: Flags [ (0x20)
265 // CHECK: NoDeadStrip (0x20)
266 // CHECK: ]
267 // CHECK: Value: 0x0
268 // CHECK: }
269 // CHECK: Symbol {
270 // CHECK: Name: sym_lazy_ref_E (34)
271 // CHECK: Extern
272 // CHECK: Type: Undef (0x0)
273 // CHECK: Section: (0x0)
274 // CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)
275 // CHECK: Flags [ (0x20)
276 // CHECK: NoDeadStrip (0x20)
277 // CHECK: ]
278 // CHECK: Value: 0x0
279 // CHECK: }
280 // CHECK: Symbol {
281 // CHECK: Name: sym_no_dead_strip_A (279)
282 // CHECK: Extern
283 // CHECK: Type: Undef (0x0)
284 // CHECK: Section: (0x0)
285 // CHECK: RefType: UndefinedNonLazy (0x0)
286 // CHECK: Flags [ (0x20)
287 // CHECK: NoDeadStrip (0x20)
288 // CHECK: ]
289 // CHECK: Value: 0x0
290 // CHECK: }
291 // CHECK: Symbol {
292 // CHECK: Name: sym_private_ext_A (239)
293 // CHECK: PrivateExtern
294 // CHECK: Extern
295 // CHECK: Type: Undef (0x0)
296 // CHECK: Section: (0x0)
297 // CHECK: RefType: UndefinedNonLazy (0x0)
298 // CHECK: Flags [ (0x0)
299 // CHECK: ]
300 // CHECK: Value: 0x0
301 // CHECK: }
302 // CHECK: Symbol {
303 // CHECK: Name: sym_private_ext_D (63)
304 // CHECK: PrivateExtern
305 // CHECK: Extern
306 // CHECK: Type: Undef (0x0)
307 // CHECK: Section: (0x0)
308 // CHECK: RefType: UndefinedNonLazy (0x0)
309 // CHECK: Flags [ (0x0)
310 // CHECK: ]
311 // CHECK: Value: 0x0
312 // CHECK: }
313 // CHECK: Symbol {
314 // CHECK: Name: sym_private_ext_E (16)
315 // CHECK: PrivateExtern
316 // CHECK: Extern
317 // CHECK: Type: Undef (0x0)
318 // CHECK: Section: (0x0)
319 // CHECK: RefType: UndefinedNonLazy (0x0)
320 // CHECK: Flags [ (0x0)
321 // CHECK: ]
322 // CHECK: Value: 0x0
323 // CHECK: }
324 // CHECK: Symbol {
325 // CHECK: Name: sym_ref_A (314)
326 // CHECK: Extern
327 // CHECK: Type: Undef (0x0)
328 // CHECK: Section: (0x0)
329 // CHECK: RefType: ReferenceFlagPrivateUndefinedNonLazy (0x4)
330 // CHECK: Flags [ (0x1230)
331 // CHECK: NoDeadStrip (0x20)
332 // CHECK: ReferencedDynamically (0x10)
333 // CHECK: ]
334 // CHECK: Value: 0x0
335 // CHECK: }
336 // CHECK: Symbol {
337 // CHECK: Name: sym_ref_def_D (96)
338 // CHECK: Extern
339 // CHECK: Type: Undef (0x0)
340 // CHECK: Section: (0x0)
341 // CHECK: RefType: UndefinedNonLazy (0x0)
342 // CHECK: Flags [ (0x20)
343 // CHECK: NoDeadStrip (0x20)
344 // CHECK: ]
345 // CHECK: Value: 0x0
346 // CHECK: }
347 // CHECK: Symbol {
348 // CHECK: Name: sym_ref_def_E (49)
349 // CHECK: Extern
350 // CHECK: Type: Undef (0x0)
351 // CHECK: Section: (0x0)
352 // CHECK: RefType: UndefinedNonLazy (0x0)
353 // CHECK: Flags [ (0x20)
354 // CHECK: NoDeadStrip (0x20)
355 // CHECK: ]
356 // CHECK: Value: 0x0
357 // CHECK: }
358 // CHECK: Symbol {
359 // CHECK: Name: sym_weak_ref_A (324)
360 // CHECK: Extern
361 // CHECK: Type: Undef (0x0)
362 // CHECK: Section: (0x0)
363 // CHECK: RefType: UndefinedNonLazy (0x0)
364 // CHECK: Flags [ (0x40)
365 // CHECK: WeakRef (0x40)
366 // CHECK: ]
367 // CHECK: Value: 0x0
368 // CHECK: }
369 // CHECK: ]
370 // CHECK: Indirect Symbols {
371 // CHECK: Number: 0
372 // CHECK: Symbols [
373 // CHECK: ]
374 // CHECK: }
375 // CHECK: Segment {
376 // CHECK: Cmd: LC_SEGMENT
377 // CHECK: Name:
378 // CHECK: Size: 192
379 // CHECK: vmaddr: 0x0
380 // CHECK: vmsize: 0x0
381 // CHECK: fileoff: 340
382 // CHECK: filesize: 0
383 // CHECK: maxprot: rwx
384 // CHECK: initprot: rwx
385 // CHECK: nsects: 2
386 // CHECK: flags: 0x0
387 // CHECK: }
388 // CHECK: Dysymtab {
389 // CHECK: ilocalsym: 0
390 // CHECK: nlocalsym: 8
391 // CHECK: iextdefsym: 8
392 // CHECK: nextdefsym: 5
393 // CHECK: iundefsym: 13
394 // CHECK: nundefsym: 11
395 // CHECK: tocoff: 0
396 // CHECK: ntoc: 0
397 // CHECK: modtaboff: 0
398 // CHECK: nmodtab: 0
399 // CHECK: extrefsymoff: 0
400 // CHECK: nextrefsyms: 0
401 // CHECK: indirectsymoff: 0
402 // CHECK: nindirectsyms: 0
403 // CHECK: extreloff: 0
404 // CHECK: nextrel: 0
405 // CHECK: locreloff: 0
406 // CHECK: nlocrel: 0
407 // CHECK: }