blob: e82b0a0447f87f2f6d7787aad2cc8a95cde1e604 [file] [log] [blame]
Daniel Dunbar30b09422009-08-24 08:40:12 +00001// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
2
3 .reference sym_ref_A
4 .reference sym_ref_def_A
5sym_ref_def_A:
6sym_ref_def_C:
7 .reference sym_ref_def_C
8
9 .weak_reference sym_weak_ref_A
10 .weak_reference sym_weak_ref_def_A
11sym_weak_ref_def_A:
12sym_weak_ref_def_B:
13 .weak_reference sym_weak_ref_def_B
14
15 .data
16 .globl sym_weak_def_A
17 .weak_definition sym_weak_def_A
18sym_weak_def_A:
19
20 .lazy_reference sym_lazy_ref_A
21 .lazy_reference sym_lazy_ref_B
22sym_lazy_ref_B:
23sym_lazy_ref_C:
24 .lazy_reference sym_lazy_ref_C
25
26 .private_extern sym_private_ext_A
27 .private_extern sym_private_ext_B
28sym_private_ext_B:
29sym_private_ext_C:
30 .private_extern sym_private_ext_C
31 .private_extern sym_private_ext_D
32 .globl sym_private_ext_D
33
34 .no_dead_strip sym_no_dead_strip_A
35
36 .reference sym_ref_A
37 .desc sym_ref_A, 1
38 .desc sym_ref_A, 0x1234
39
40 .desc sym_desc_flags,0x47
41sym_desc_flags:
42
43// CHECK: ('cputype', 7)
44// CHECK: ('cpusubtype', 3)
45// CHECK: ('filetype', 1)
46// CHECK: ('num_load_commands', 1)
47// CHECK: ('load_commands_size', 296)
48// CHECK: ('flag', 0)
49// CHECK: ('load_commands', [
50// CHECK: # Load Command 0
51// CHECK: (('command', 1)
52// CHECK: ('size', 192)
53// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
54// CHECK: ('vm_addr', 0)
55// CHECK: ('vm_size', 0)
56// CHECK: ('file_offset', 324)
57// CHECK: ('file_size', 0)
58// CHECK: ('maxprot', 7)
59// CHECK: ('initprot', 7)
60// CHECK: ('num_sections', 2)
61// CHECK: ('flags', 0)
62// CHECK: ('sections', [
63// CHECK: # Section 0
64// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
65// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
66// CHECK: ('address', 0)
67// CHECK: ('size', 0)
68// CHECK: ('offset', 324)
69// CHECK: ('alignment', 0)
70// CHECK: ('reloc_offset', 0)
71// CHECK: ('num_reloc', 0)
72// CHECK: ('flags', 0x80000000)
73// CHECK: ('reserved1', 0)
74// CHECK: ('reserved2', 0)
75// CHECK: ),
76// CHECK: # Section 1
77// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
78// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
79// CHECK: ('address', 0)
80// CHECK: ('size', 0)
81// CHECK: ('offset', 324)
82// CHECK: ('alignment', 0)
83// CHECK: ('reloc_offset', 0)
84// CHECK: ('num_reloc', 0)
85// CHECK: ('flags', 0x0)
86// CHECK: ('reserved1', 0)
87// CHECK: ('reserved2', 0)
88// CHECK: ),
89// CHECK: ])
90// CHECK: ),
91// CHECK: # Load Command 1
92// CHECK: (('command', 2)
93// CHECK: ('size', 24)
94// CHECK: ('symoff', 324)
95// CHECK: ('nsyms', 16)
96// CHECK: ('stroff', 516)
97// CHECK: ('strsize', 260)
98// CHECK: ('_string_data', '\x00sym_ref_A\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_lazy_ref_A\x00sym_private_ext_A\x00sym_private_ext_B\x00sym_private_ext_C\x00sym_private_ext_D\x00sym_no_dead_strip_A\x00sym_ref_def_A\x00sym_ref_def_C\x00sym_weak_ref_def_A\x00sym_weak_ref_def_B\x00sym_lazy_ref_B\x00sym_lazy_ref_C\x00sym_desc_flags\x00\x00')
99// CHECK: ('_symbols', [
100// CHECK: # Symbol 0
101// CHECK: (('n_strx', 148)
102// CHECK: ('n_type', 0xe)
103// CHECK: ('n_sect', 1)
104// CHECK: ('n_desc', 32)
105// CHECK: ('n_value', 0)
106// CHECK: ('_string', 'sym_ref_def_A')
107// CHECK: ),
108// CHECK: # Symbol 1
109// CHECK: (('n_strx', 162)
110// CHECK: ('n_type', 0xe)
111// CHECK: ('n_sect', 1)
112// CHECK: ('n_desc', 32)
113// CHECK: ('n_value', 0)
114// CHECK: ('_string', 'sym_ref_def_C')
115// CHECK: ),
116// CHECK: # Symbol 2
117// CHECK: (('n_strx', 176)
118// CHECK: ('n_type', 0xe)
119// CHECK: ('n_sect', 1)
120// CHECK: ('n_desc', 0)
121// CHECK: ('n_value', 0)
122// CHECK: ('_string', 'sym_weak_ref_def_A')
123// CHECK: ),
124// CHECK: # Symbol 3
125// CHECK: (('n_strx', 195)
126// CHECK: ('n_type', 0xe)
127// CHECK: ('n_sect', 1)
128// CHECK: ('n_desc', 0)
129// CHECK: ('n_value', 0)
130// CHECK: ('_string', 'sym_weak_ref_def_B')
131// CHECK: ),
132// CHECK: # Symbol 4
133// CHECK: (('n_strx', 214)
134// CHECK: ('n_type', 0xe)
135// CHECK: ('n_sect', 2)
136// CHECK: ('n_desc', 32)
137// CHECK: ('n_value', 0)
138// CHECK: ('_string', 'sym_lazy_ref_B')
139// CHECK: ),
140// CHECK: # Symbol 5
141// CHECK: (('n_strx', 229)
142// CHECK: ('n_type', 0xe)
143// CHECK: ('n_sect', 2)
144// CHECK: ('n_desc', 32)
145// CHECK: ('n_value', 0)
146// CHECK: ('_string', 'sym_lazy_ref_C')
147// CHECK: ),
148// CHECK: # Symbol 6
149// CHECK: (('n_strx', 244)
150// CHECK: ('n_type', 0xe)
151// CHECK: ('n_sect', 2)
152// CHECK: ('n_desc', 0)
153// CHECK: ('n_value', 0)
154// CHECK: ('_string', 'sym_desc_flags')
155// CHECK: ),
156// CHECK: # Symbol 7
157// CHECK: (('n_strx', 74)
158// CHECK: ('n_type', 0x1f)
159// CHECK: ('n_sect', 2)
160// CHECK: ('n_desc', 0)
161// CHECK: ('n_value', 0)
162// CHECK: ('_string', 'sym_private_ext_B')
163// CHECK: ),
164// CHECK: # Symbol 8
165// CHECK: (('n_strx', 92)
166// CHECK: ('n_type', 0x1f)
167// CHECK: ('n_sect', 2)
168// CHECK: ('n_desc', 0)
169// CHECK: ('n_value', 0)
170// CHECK: ('_string', 'sym_private_ext_C')
171// CHECK: ),
172// CHECK: # Symbol 9
173// CHECK: (('n_strx', 26)
174// CHECK: ('n_type', 0xf)
175// CHECK: ('n_sect', 2)
176// CHECK: ('n_desc', 128)
177// CHECK: ('n_value', 0)
178// CHECK: ('_string', 'sym_weak_def_A')
179// CHECK: ),
180// CHECK: # Symbol 10
181// CHECK: (('n_strx', 41)
182// CHECK: ('n_type', 0x1)
183// CHECK: ('n_sect', 0)
184// CHECK: ('n_desc', 33)
185// CHECK: ('n_value', 0)
186// CHECK: ('_string', 'sym_lazy_ref_A')
187// CHECK: ),
188// CHECK: # Symbol 11
189// CHECK: (('n_strx', 128)
190// CHECK: ('n_type', 0x1)
191// CHECK: ('n_sect', 0)
192// CHECK: ('n_desc', 32)
193// CHECK: ('n_value', 0)
194// CHECK: ('_string', 'sym_no_dead_strip_A')
195// CHECK: ),
196// CHECK: # Symbol 12
197// CHECK: (('n_strx', 56)
198// CHECK: ('n_type', 0x11)
199// CHECK: ('n_sect', 0)
200// CHECK: ('n_desc', 0)
201// CHECK: ('n_value', 0)
202// CHECK: ('_string', 'sym_private_ext_A')
203// CHECK: ),
204// CHECK: # Symbol 13
205// CHECK: (('n_strx', 110)
206// CHECK: ('n_type', 0x11)
207// CHECK: ('n_sect', 0)
208// CHECK: ('n_desc', 0)
209// CHECK: ('n_value', 0)
210// CHECK: ('_string', 'sym_private_ext_D')
211// CHECK: ),
212// CHECK: # Symbol 14
213// CHECK: (('n_strx', 1)
214// CHECK: ('n_type', 0x1)
215// CHECK: ('n_sect', 0)
216// CHECK: ('n_desc', 4660)
217// CHECK: ('n_value', 0)
218// CHECK: ('_string', 'sym_ref_A')
219// CHECK: ),
220// CHECK: # Symbol 15
221// CHECK: (('n_strx', 11)
222// CHECK: ('n_type', 0x1)
223// CHECK: ('n_sect', 0)
224// CHECK: ('n_desc', 64)
225// CHECK: ('n_value', 0)
226// CHECK: ('_string', 'sym_weak_ref_A')
227// CHECK: ),
228// CHECK: ])
229// CHECK: ),
230// CHECK: # Load Command 2
231// CHECK: (('command', 11)
232// CHECK: ('size', 80)
233// CHECK: ('ilocalsym', 0)
234// CHECK: ('nlocalsym', 7)
235// CHECK: ('iextdefsym', 7)
236// CHECK: ('nextdefsym', 3)
237// CHECK: ('iundefsym', 10)
238// CHECK: ('nundefsym', 6)
239// CHECK: ('tocoff', 0)
240// CHECK: ('ntoc', 0)
241// CHECK: ('modtaboff', 0)
242// CHECK: ('nmodtab', 0)
243// CHECK: ('extrefsymoff', 0)
244// CHECK: ('nextrefsyms', 0)
245// CHECK: ('indirectsymoff', 0)
246// CHECK: ('nindirectsyms', 0)
247// CHECK: ('extreloff', 0)
248// CHECK: ('nextrel', 0)
249// CHECK: ('locreloff', 0)
250// CHECK: ('nlocrel', 0)
251// CHECK: ('_indirect_symbols', [
252// CHECK: ])
253// CHECK: ),
254// CHECK: ])