1// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj --symbols - | FileCheck %s
2
3        .text
4L0:
5D0:
6        .section	__TEXT,__text,regular,pure_instructions
7L1:
8D1:
9        .const
10L2:
11D2:
12        .static_const
13L3:
14D3:
15        .cstring
16L4:
17D4:
18        .literal4
19L5:
20D5:
21        .literal8
22L6:
23D6:
24        .literal16
25L7:
26D7:
27        .constructor
28L8:
29D8:
30        .destructor
31L9:
32D9:
33//        .symbol_stub
34//L10:
35//D10:
36//        .picsymbol_stub
37//L11:
38//D11:
39        .data
40L12:
41D12:
42        .static_data
43L13:
44D13:
45//        .non_lazy_symbol_pointer
46//L14:
47//D14:
48//        .lazy_symbol_pointer
49//L15:
50//D15:
51        .dyld
52L16:
53D16:
54        .mod_init_func
55L17:
56D17:
57        .mod_term_func
58L18:
59D18:
60        .const_data
61L19:
62D19:
63        .objc_class
64L20:
65D20:
66        .objc_meta_class
67L21:
68D21:
69        .objc_cat_cls_meth
70L22:
71D22:
72        .objc_cat_inst_meth
73L23:
74D23:
75        .objc_protocol
76L24:
77D24:
78        .objc_string_object
79L25:
80D25:
81        .objc_cls_meth
82L26:
83D26:
84        .objc_inst_meth
85L27:
86D27:
87        .objc_cls_refs
88L28:
89D28:
90        .objc_message_refs
91L29:
92D29:
93        .objc_symbols
94L30:
95D30:
96        .objc_category
97L31:
98D31:
99        .objc_class_vars
100L32:
101D32:
102        .objc_instance_vars
103L33:
104D33:
105        .objc_module_info
106L34:
107D34:
108        .objc_class_names
109L35:
110D35:
111        .objc_meth_var_types
112L36:
113D36:
114        .objc_meth_var_names
115L37:
116D37:
117        .objc_selector_strs
118L38:
119D38:
120//        .section __TEXT,__picsymbolstub4,symbol_stubs,none,16
121//L39:
122//D39:
123
124        .section foo, bar
125        .long L4 + 1
126        .long L35 + 1
127        .long L36 + 1
128        .long L37 + 1
129        .long L38 + 1
130
131// CHECK: Symbols [
132// CHECK-NEXT:   Symbol {
133// CHECK-NEXT:     Name: D0 (139)
134// CHECK-NEXT:     Type: Section (0xE)
135// CHECK-NEXT:     Section: __text (0x1)
136// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
137// CHECK-NEXT:     Flags [ (0x0)
138// CHECK-NEXT:     ]
139// CHECK-NEXT:     Value: 0x0
140// CHECK-NEXT:   }
141// CHECK-NEXT:   Symbol {
142// CHECK-NEXT:     Name: D1 (128)
143// CHECK-NEXT:     Type: Section (0xE)
144// CHECK-NEXT:     Section: __text (0x1)
145// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
146// CHECK-NEXT:     Flags [ (0x0)
147// CHECK-NEXT:     ]
148// CHECK-NEXT:     Value: 0x0
149// CHECK-NEXT:   }
150// CHECK-NEXT:   Symbol {
151// CHECK-NEXT:     Name: D2 (113)
152// CHECK-NEXT:     Type: Section (0xE)
153// CHECK-NEXT:     Section: __const (0x2)
154// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
155// CHECK-NEXT:     Flags [ (0x0)
156// CHECK-NEXT:     ]
157// CHECK-NEXT:     Value: 0x0
158// CHECK-NEXT:   }
159// CHECK-NEXT:   Symbol {
160// CHECK-NEXT:     Name: D3 (98)
161// CHECK-NEXT:     Type: Section (0xE)
162// CHECK-NEXT:     Section: __static_const (0x3)
163// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
164// CHECK-NEXT:     Flags [ (0x0)
165// CHECK-NEXT:     ]
166// CHECK-NEXT:     Value: 0x0
167// CHECK-NEXT:   }
168// CHECK-NEXT:   Symbol {
169// CHECK-NEXT:     Name: L4 (84)
170// CHECK-NEXT:     Type: Section (0xE)
171// CHECK-NEXT:     Section: __cstring (0x4)
172// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
173// CHECK-NEXT:     Flags [ (0x0)
174// CHECK-NEXT:     ]
175// CHECK-NEXT:     Value: 0x0
176// CHECK-NEXT:   }
177// CHECK-NEXT:   Symbol {
178// CHECK-NEXT:     Name: D4 (87)
179// CHECK-NEXT:     Type: Section (0xE)
180// CHECK-NEXT:     Section: __cstring (0x4)
181// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
182// CHECK-NEXT:     Flags [ (0x0)
183// CHECK-NEXT:     ]
184// CHECK-NEXT:     Value: 0x0
185// CHECK-NEXT:   }
186// CHECK-NEXT:   Symbol {
187// CHECK-NEXT:     Name: D5 (69)
188// CHECK-NEXT:     Type: Section (0xE)
189// CHECK-NEXT:     Section: __literal4 (0x5)
190// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
191// CHECK-NEXT:     Flags [ (0x0)
192// CHECK-NEXT:     ]
193// CHECK-NEXT:     Value: 0x0
194// CHECK-NEXT:   }
195// CHECK-NEXT:   Symbol {
196// CHECK-NEXT:     Name: D6 (50)
197// CHECK-NEXT:     Type: Section (0xE)
198// CHECK-NEXT:     Section: __literal8 (0x6)
199// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
200// CHECK-NEXT:     Flags [ (0x0)
201// CHECK-NEXT:     ]
202// CHECK-NEXT:     Value: 0x0
203// CHECK-NEXT:   }
204// CHECK-NEXT:   Symbol {
205// CHECK-NEXT:     Name: D7 (31)
206// CHECK-NEXT:     Type: Section (0xE)
207// CHECK-NEXT:     Section: __literal16 (0x7)
208// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
209// CHECK-NEXT:     Flags [ (0x0)
210// CHECK-NEXT:     ]
211// CHECK-NEXT:     Value: 0x0
212// CHECK-NEXT:   }
213// CHECK-NEXT:   Symbol {
214// CHECK-NEXT:     Name: D8 (12)
215// CHECK-NEXT:     Type: Section (0xE)
216// CHECK-NEXT:     Section: __constructor (0x8)
217// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
218// CHECK-NEXT:     Flags [ (0x0)
219// CHECK-NEXT:     ]
220// CHECK-NEXT:     Value: 0x0
221// CHECK-NEXT:   }
222// CHECK-NEXT:   Symbol {
223// CHECK-NEXT:     Name: D9 (1)
224// CHECK-NEXT:     Type: Section (0xE)
225// CHECK-NEXT:     Section: __destructor (0x9)
226// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
227// CHECK-NEXT:     Flags [ (0x0)
228// CHECK-NEXT:     ]
229// CHECK-NEXT:     Value: 0x0
230// CHECK-NEXT:   }
231// CHECK-NEXT:   Symbol {
232// CHECK-NEXT:     Name: D12 (124)
233// CHECK-NEXT:     Type: Section (0xE)
234// CHECK-NEXT:     Section: __data (0xA)
235// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
236// CHECK-NEXT:     Flags [ (0x0)
237// CHECK-NEXT:     ]
238// CHECK-NEXT:     Value: 0x0
239// CHECK-NEXT:   }
240// CHECK-NEXT:   Symbol {
241// CHECK-NEXT:     Name: D13 (109)
242// CHECK-NEXT:     Type: Section (0xE)
243// CHECK-NEXT:     Section: __static_data (0xB)
244// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
245// CHECK-NEXT:     Flags [ (0x0)
246// CHECK-NEXT:     ]
247// CHECK-NEXT:     Value: 0x0
248// CHECK-NEXT:   }
249// CHECK-NEXT:   Symbol {
250// CHECK-NEXT:     Name: D16 (65)
251// CHECK-NEXT:     Type: Section (0xE)
252// CHECK-NEXT:     Section: __dyld (0xC)
253// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
254// CHECK-NEXT:     Flags [ (0x0)
255// CHECK-NEXT:     ]
256// CHECK-NEXT:     Value: 0x0
257// CHECK-NEXT:   }
258// CHECK-NEXT:   Symbol {
259// CHECK-NEXT:     Name: D17 (46)
260// CHECK-NEXT:     Type: Section (0xE)
261// CHECK-NEXT:     Section: __mod_init_func (0xD)
262// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
263// CHECK-NEXT:     Flags [ (0x0)
264// CHECK-NEXT:     ]
265// CHECK-NEXT:     Value: 0x0
266// CHECK-NEXT:   }
267// CHECK-NEXT:   Symbol {
268// CHECK-NEXT:     Name: D18 (27)
269// CHECK-NEXT:     Type: Section (0xE)
270// CHECK-NEXT:     Section: __mod_term_func (0xE)
271// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
272// CHECK-NEXT:     Flags [ (0x0)
273// CHECK-NEXT:     ]
274// CHECK-NEXT:     Value: 0x0
275// CHECK-NEXT:   }
276// CHECK-NEXT:   Symbol {
277// CHECK-NEXT:     Name: D19 (8)
278// CHECK-NEXT:     Type: Section (0xE)
279// CHECK-NEXT:     Section: __const (0xF)
280// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
281// CHECK-NEXT:     Flags [ (0x0)
282// CHECK-NEXT:     ]
283// CHECK-NEXT:     Value: 0x0
284// CHECK-NEXT:   }
285// CHECK-NEXT:   Symbol {
286// CHECK-NEXT:     Name: D20 (146)
287// CHECK-NEXT:     Type: Section (0xE)
288// CHECK-NEXT:     Section: __class (0x10)
289// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
290// CHECK-NEXT:     Flags [ (0x0)
291// CHECK-NEXT:     ]
292// CHECK-NEXT:     Value: 0x0
293// CHECK-NEXT:   }
294// CHECK-NEXT:   Symbol {
295// CHECK-NEXT:     Name: D21 (135)
296// CHECK-NEXT:     Type: Section (0xE)
297// CHECK-NEXT:     Section: __meta_class (0x11)
298// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
299// CHECK-NEXT:     Flags [ (0x0)
300// CHECK-NEXT:     ]
301// CHECK-NEXT:     Value: 0x0
302// CHECK-NEXT:   }
303// CHECK-NEXT:   Symbol {
304// CHECK-NEXT:     Name: D22 (120)
305// CHECK-NEXT:     Type: Section (0xE)
306// CHECK-NEXT:     Section: __cat_cls_meth (0x12)
307// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
308// CHECK-NEXT:     Flags [ (0x0)
309// CHECK-NEXT:     ]
310// CHECK-NEXT:     Value: 0x0
311// CHECK-NEXT:   }
312// CHECK-NEXT:   Symbol {
313// CHECK-NEXT:     Name: D23 (105)
314// CHECK-NEXT:     Type: Section (0xE)
315// CHECK-NEXT:     Section: __cat_inst_meth (0x13)
316// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
317// CHECK-NEXT:     Flags [ (0x0)
318// CHECK-NEXT:     ]
319// CHECK-NEXT:     Value: 0x0
320// CHECK-NEXT:   }
321// CHECK-NEXT:   Symbol {
322// CHECK-NEXT:     Name: D24 (94)
323// CHECK-NEXT:     Type: Section (0xE)
324// CHECK-NEXT:     Section: __protocol (0x14)
325// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
326// CHECK-NEXT:     Flags [ (0x0)
327// CHECK-NEXT:     ]
328// CHECK-NEXT:     Value: 0x0
329// CHECK-NEXT:   }
330// CHECK-NEXT:   Symbol {
331// CHECK-NEXT:     Name: D25 (80)
332// CHECK-NEXT:     Type: Section (0xE)
333// CHECK-NEXT:     Section: __string_object (0x15)
334// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
335// CHECK-NEXT:     Flags [ (0x0)
336// CHECK-NEXT:     ]
337// CHECK-NEXT:     Value: 0x0
338// CHECK-NEXT:   }
339// CHECK-NEXT:   Symbol {
340// CHECK-NEXT:     Name: D26 (61)
341// CHECK-NEXT:     Type: Section (0xE)
342// CHECK-NEXT:     Section: __cls_meth (0x16)
343// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
344// CHECK-NEXT:     Flags [ (0x0)
345// CHECK-NEXT:     ]
346// CHECK-NEXT:     Value: 0x0
347// CHECK-NEXT:   }
348// CHECK-NEXT:   Symbol {
349// CHECK-NEXT:     Name: D27 (42)
350// CHECK-NEXT:     Type: Section (0xE)
351// CHECK-NEXT:     Section: __inst_meth (0x17)
352// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
353// CHECK-NEXT:     Flags [ (0x0)
354// CHECK-NEXT:     ]
355// CHECK-NEXT:     Value: 0x0
356// CHECK-NEXT:   }
357// CHECK-NEXT:   Symbol {
358// CHECK-NEXT:     Name: D28 (23)
359// CHECK-NEXT:     Type: Section (0xE)
360// CHECK-NEXT:     Section: __cls_refs (0x18)
361// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
362// CHECK-NEXT:     Flags [ (0x0)
363// CHECK-NEXT:     ]
364// CHECK-NEXT:     Value: 0x0
365// CHECK-NEXT:   }
366// CHECK-NEXT:   Symbol {
367// CHECK-NEXT:     Name: D29 (4)
368// CHECK-NEXT:     Type: Section (0xE)
369// CHECK-NEXT:     Section: __message_refs (0x19)
370// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
371// CHECK-NEXT:     Flags [ (0x0)
372// CHECK-NEXT:     ]
373// CHECK-NEXT:     Value: 0x0
374// CHECK-NEXT:   }
375// CHECK-NEXT:   Symbol {
376// CHECK-NEXT:     Name: D30 (142)
377// CHECK-NEXT:     Type: Section (0xE)
378// CHECK-NEXT:     Section: __symbols (0x1A)
379// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
380// CHECK-NEXT:     Flags [ (0x0)
381// CHECK-NEXT:     ]
382// CHECK-NEXT:     Value: 0x0
383// CHECK-NEXT:   }
384// CHECK-NEXT:   Symbol {
385// CHECK-NEXT:     Name: D31 (131)
386// CHECK-NEXT:     Type: Section (0xE)
387// CHECK-NEXT:     Section: __category (0x1B)
388// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
389// CHECK-NEXT:     Flags [ (0x0)
390// CHECK-NEXT:     ]
391// CHECK-NEXT:     Value: 0x0
392// CHECK-NEXT:   }
393// CHECK-NEXT:   Symbol {
394// CHECK-NEXT:     Name: D32 (116)
395// CHECK-NEXT:     Type: Section (0xE)
396// CHECK-NEXT:     Section: __class_vars (0x1C)
397// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
398// CHECK-NEXT:     Flags [ (0x0)
399// CHECK-NEXT:     ]
400// CHECK-NEXT:     Value: 0x0
401// CHECK-NEXT:   }
402// CHECK-NEXT:   Symbol {
403// CHECK-NEXT:     Name: D33 (101)
404// CHECK-NEXT:     Type: Section (0xE)
405// CHECK-NEXT:     Section: __instance_vars (0x1D)
406// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
407// CHECK-NEXT:     Flags [ (0x0)
408// CHECK-NEXT:     ]
409// CHECK-NEXT:     Value: 0x0
410// CHECK-NEXT:   }
411// CHECK-NEXT:   Symbol {
412// CHECK-NEXT:     Name: D34 (90)
413// CHECK-NEXT:     Type: Section (0xE)
414// CHECK-NEXT:     Section: __module_info (0x1E)
415// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
416// CHECK-NEXT:     Flags [ (0x0)
417// CHECK-NEXT:     ]
418// CHECK-NEXT:     Value: 0x0
419// CHECK-NEXT:   }
420// CHECK-NEXT:   Symbol {
421// CHECK-NEXT:     Name: L35 (72)
422// CHECK-NEXT:     Type: Section (0xE)
423// CHECK-NEXT:     Section: __cstring (0x4)
424// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
425// CHECK-NEXT:     Flags [ (0x0)
426// CHECK-NEXT:     ]
427// CHECK-NEXT:     Value: 0x0
428// CHECK-NEXT:   }
429// CHECK-NEXT:   Symbol {
430// CHECK-NEXT:     Name: D35 (76)
431// CHECK-NEXT:     Type: Section (0xE)
432// CHECK-NEXT:     Section: __cstring (0x4)
433// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
434// CHECK-NEXT:     Flags [ (0x0)
435// CHECK-NEXT:     ]
436// CHECK-NEXT:     Value: 0x0
437// CHECK-NEXT:   }
438// CHECK-NEXT:   Symbol {
439// CHECK-NEXT:     Name: L36 (53)
440// CHECK-NEXT:     Type: Section (0xE)
441// CHECK-NEXT:     Section: __cstring (0x4)
442// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
443// CHECK-NEXT:     Flags [ (0x0)
444// CHECK-NEXT:     ]
445// CHECK-NEXT:     Value: 0x0
446// CHECK-NEXT:   }
447// CHECK-NEXT:   Symbol {
448// CHECK-NEXT:     Name: D36 (57)
449// CHECK-NEXT:     Type: Section (0xE)
450// CHECK-NEXT:     Section: __cstring (0x4)
451// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
452// CHECK-NEXT:     Flags [ (0x0)
453// CHECK-NEXT:     ]
454// CHECK-NEXT:     Value: 0x0
455// CHECK-NEXT:   }
456// CHECK-NEXT:   Symbol {
457// CHECK-NEXT:     Name: L37 (34)
458// CHECK-NEXT:     Type: Section (0xE)
459// CHECK-NEXT:     Section: __cstring (0x4)
460// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
461// CHECK-NEXT:     Flags [ (0x0)
462// CHECK-NEXT:     ]
463// CHECK-NEXT:     Value: 0x0
464// CHECK-NEXT:   }
465// CHECK-NEXT:   Symbol {
466// CHECK-NEXT:     Name: D37 (38)
467// CHECK-NEXT:     Type: Section (0xE)
468// CHECK-NEXT:     Section: __cstring (0x4)
469// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
470// CHECK-NEXT:     Flags [ (0x0)
471// CHECK-NEXT:     ]
472// CHECK-NEXT:     Value: 0x0
473// CHECK-NEXT:   }
474// CHECK-NEXT:   Symbol {
475// CHECK-NEXT:     Name: L38 (15)
476// CHECK-NEXT:     Type: Section (0xE)
477// CHECK-NEXT:     Section: __selector_strs (0x1F)
478// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
479// CHECK-NEXT:     Flags [ (0x0)
480// CHECK-NEXT:     ]
481// CHECK-NEXT:     Value: 0x0
482// CHECK-NEXT:   }
483// CHECK-NEXT:   Symbol {
484// CHECK-NEXT:     Name: D38 (19)
485// CHECK-NEXT:     Type: Section (0xE)
486// CHECK-NEXT:     Section: __selector_strs (0x1F)
487// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
488// CHECK-NEXT:     Flags [ (0x0)
489// CHECK-NEXT:     ]
490// CHECK-NEXT:     Value: 0x0
491// CHECK-NEXT:   }
492// CHECK-NEXT: ]
493