1 // RUN
: llvm-mc
-triple x86_64-apple-darwin
%s
-filetype
=obj
-o
- | macho-dump
--dump-section-data | FileCheck
%s
3 .section __TEXT,__text,regular,pure_instructions
4 .section __DATA,__thread_data,thread_local_regular
10 .section __DATA,__thread_vars,thread_local_variables
13 .quad ___tlv_bootstrap
17 .section __DATA,__thread_data,thread_local_regular
23 .section __DATA,__thread_vars,thread_local_variables
26 .quad ___tlv_bootstrap
30 .tbss _a$tlv$init, 4, 2
34 .quad ___tlv_bootstrap
38 .tbss _b$tlv$init, 4, 2
42 .quad ___tlv_bootstrap
46 .subsections_via_symbols
48 // CHECK
: ('cputype', 16777223)
49 // CHECK
: ('cpusubtype', 3)
50 // CHECK
: ('filetype', 1)
51 // CHECK
: ('num_load_commands', 3)
52 // CHECK
: ('load_commands_size', 496)
53 // CHECK
: ('flag', 8192)
54 // CHECK
: ('reserved', 0)
55 // CHECK
: ('load_commands', [
56 // CHECK
: # Load Command 0
57 // CHECK
: (('command', 25)
58 // CHECK
: ('size', 392)
59 // CHECK
: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
60 // CHECK
: ('vm_addr', 0)
61 // CHECK
: ('vm_size', 112)
62 // CHECK
: ('file_offset', 528)
63 // CHECK
: ('file_size', 104)
64 // CHECK
: ('maxprot', 7)
65 // CHECK
: ('initprot', 7)
66 // CHECK
: ('num_sections', 4)
67 // CHECK
: ('flags', 0)
68 // CHECK
: ('sections', [
70 // CHECK
: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
71 // CHECK
: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
72 // CHECK
: ('address', 0)
74 // CHECK
: ('offset', 528)
75 // CHECK
: ('alignment', 0)
76 // CHECK
: ('reloc_offset', 0)
77 // CHECK
: ('num_reloc', 0)
78 // CHECK
: ('flags', 0x80000000)
79 // CHECK
: ('reserved1', 0)
80 // CHECK
: ('reserved2', 0)
81 // CHECK
: ('reserved3', 0)
83 // CHECK
: ('_relocations', [
85 // CHECK
: ('_section_data', '')
87 // CHECK
: (('section_name', '__thread_data\x00\x00\x00')
88 // CHECK
: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
89 // CHECK
: ('address', 0)
91 // CHECK
: ('offset', 528)
92 // CHECK
: ('alignment', 2)
93 // CHECK
: ('reloc_offset', 0)
94 // CHECK
: ('num_reloc', 0)
95 // CHECK
: ('flags', 0x11)
96 // CHECK
: ('reserved1', 0)
97 // CHECK
: ('reserved2', 0)
98 // CHECK
: ('reserved3', 0)
100 // CHECK
: ('_relocations', [
102 // CHECK
: ('_section_data', '04000000 05000000')
103 // CHECK
: # Section 2
104 // CHECK
: (('section_name', '__thread_vars\x00\x00\x00')
105 // CHECK
: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
106 // CHECK
: ('address', 8)
107 // CHECK
: ('size', 96)
108 // CHECK
: ('offset', 536)
109 // CHECK
: ('alignment', 0)
110 // CHECK
: ('reloc_offset', 632)
111 // CHECK
: ('num_reloc', 8)
112 // CHECK
: ('flags', 0x13)
113 // CHECK
: ('reserved1', 0)
114 // CHECK
: ('reserved2', 0)
115 // CHECK
: ('reserved3', 0)
117 // CHECK
: ('_relocations', [
118 // CHECK
: # Relocation 0
119 // CHECK
: (('word-0', 0x58),
120 // CHECK
: ('word-1', 0xe000001)),
121 // CHECK
: # Relocation 1
122 // CHECK
: (('word-0', 0x48),
123 // CHECK
: ('word-1', 0xe000008)),
124 // CHECK
: # Relocation 2
125 // CHECK
: (('word-0', 0x40),
126 // CHECK
: ('word-1', 0xe000000)),
127 // CHECK
: # Relocation 3
128 // CHECK
: (('word-0', 0x30),
129 // CHECK
: ('word-1', 0xe000008)),
130 // CHECK
: # Relocation 4
131 // CHECK
: (('word-0', 0x28),
132 // CHECK
: ('word-1', 0xe000007)),
133 // CHECK
: # Relocation 5
134 // CHECK
: (('word-0', 0x18),
135 // CHECK
: ('word-1', 0xe000008)),
136 // CHECK
: # Relocation 6
137 // CHECK
: (('word-0', 0x10),
138 // CHECK
: ('word-1', 0xe000005)),
139 // CHECK
: # Relocation 7
140 // CHECK
: (('word-0', 0x0),
141 // CHECK
: ('word-1', 0xe000008)),
143 // CHECK
: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
144 // CHECK
: # Section 3
145 // CHECK
: (('section_name', '__thread_bss\x00\x00\x00\x00')
146 // CHECK
: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
147 // CHECK
: ('address', 104)
148 // CHECK
: ('size', 8)
149 // CHECK
: ('offset', 0)
150 // CHECK
: ('alignment', 2)
151 // CHECK
: ('reloc_offset', 0)
152 // CHECK
: ('num_reloc', 0)
153 // CHECK
: ('flags', 0x12)
154 // CHECK
: ('reserved1', 0)
155 // CHECK
: ('reserved2', 0)
156 // CHECK
: ('reserved3', 0)
158 // CHECK
: ('_relocations', [
160 // CHECK
: ('_section_data', 'cffaedfe 07000001')
163 // CHECK
: # Load Command 1
164 // CHECK
: (('command', 2)
165 // CHECK
: ('size', 24)
166 // CHECK
: ('symoff', 696)
167 // CHECK
: ('nsyms', 9)
168 // CHECK
: ('stroff', 840)
169 // CHECK
: ('strsize', 80)
170 // CHECK
: ('_string_data', '\x00_c$tlv$init\x00_c\x00___tlv_bootstrap\x00_d$tlv$init\x00_d\x00_a\x00_b\x00_a$tlv$init\x00_b$tlv$init\x00\x00\x00')
171 // CHECK
: ('_symbols', [
173 // CHECK
: (('n_strx', 54)
174 // CHECK
: ('n_type', 0xe)
175 // CHECK
: ('n_sect', 4)
176 // CHECK
: ('n_desc', 0)
177 // CHECK
: ('n_value', 104)
178 // CHECK
: ('_string', '_a$tlv$init')
181 // CHECK
: (('n_strx', 66)
182 // CHECK
: ('n_type', 0xe)
183 // CHECK
: ('n_sect', 4)
184 // CHECK
: ('n_desc', 0)
185 // CHECK
: ('n_value', 108)
186 // CHECK
: ('_string', '_b$tlv$init')
189 // CHECK
: (('n_strx', 48)
190 // CHECK
: ('n_type', 0xf)
191 // CHECK
: ('n_sect', 3)
192 // CHECK
: ('n_desc', 0)
193 // CHECK
: ('n_value', 56)
194 // CHECK
: ('_string', '_a')
197 // CHECK
: (('n_strx', 51)
198 // CHECK
: ('n_type', 0xf)
199 // CHECK
: ('n_sect', 3)
200 // CHECK
: ('n_desc', 0)
201 // CHECK
: ('n_value', 80)
202 // CHECK
: ('_string', '_b')
205 // CHECK
: (('n_strx', 13)
206 // CHECK
: ('n_type', 0xf)
207 // CHECK
: ('n_sect', 3)
208 // CHECK
: ('n_desc', 0)
209 // CHECK
: ('n_value', 8)
210 // CHECK
: ('_string', '_c')
213 // CHECK
: (('n_strx', 1)
214 // CHECK
: ('n_type', 0xf)
215 // CHECK
: ('n_sect', 2)
216 // CHECK
: ('n_desc', 0)
217 // CHECK
: ('n_value', 0)
218 // CHECK
: ('_string', '_c$tlv$init')
221 // CHECK
: (('n_strx', 45)
222 // CHECK
: ('n_type', 0xf)
223 // CHECK
: ('n_sect', 3)
224 // CHECK
: ('n_desc', 0)
225 // CHECK
: ('n_value', 32)
226 // CHECK
: ('_string', '_d')
229 // CHECK
: (('n_strx', 33)
230 // CHECK
: ('n_type', 0xf)
231 // CHECK
: ('n_sect', 2)
232 // CHECK
: ('n_desc', 0)
233 // CHECK
: ('n_value', 4)
234 // CHECK
: ('_string', '_d$tlv$init')
237 // CHECK
: (('n_strx', 16)
238 // CHECK
: ('n_type', 0x1)
239 // CHECK
: ('n_sect', 0)
240 // CHECK
: ('n_desc', 0)
241 // CHECK
: ('n_value', 0)
242 // CHECK
: ('_string', '___tlv_bootstrap')
246 // CHECK
: # Load Command 2
247 // CHECK
: (('command', 11)
248 // CHECK
: ('size', 80)
249 // CHECK
: ('ilocalsym', 0)
250 // CHECK
: ('nlocalsym', 2)
251 // CHECK
: ('iextdefsym', 2)
252 // CHECK
: ('nextdefsym', 6)
253 // CHECK
: ('iundefsym', 8)
254 // CHECK
: ('nundefsym', 1)
255 // CHECK
: ('tocoff', 0)
256 // CHECK
: ('ntoc', 0)
257 // CHECK
: ('modtaboff', 0)
258 // CHECK
: ('nmodtab', 0)
259 // CHECK
: ('extrefsymoff', 0)
260 // CHECK
: ('nextrefsyms', 0)
261 // CHECK
: ('indirectsymoff', 0)
262 // CHECK
: ('nindirectsyms', 0)
263 // CHECK
: ('extreloff', 0)
264 // CHECK
: ('nextrel', 0)
265 // CHECK
: ('locreloff', 0)
266 // CHECK
: ('nlocrel', 0)
267 // CHECK
: ('_indirect_symbols', [