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
6
.globl sym_globl_undef_B
9
.globl sym_globl_undef_A
11
.globl sym_globl_def_C
12
.globl sym_globl_undef_C
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)
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')
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')
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')
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')
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')
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')
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')
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')
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')
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', [
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)
199
// CHECK-X86_64: ('_relocations', [
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')
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')
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')
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')
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')
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')
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')
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')
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')
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', [