Move out of line
[llvm-project.git] / lld / test / ELF / debug-names-type-units.s
blobdda065b238d85c90b554f38b807adcbb422b1848
1 # REQUIRES: x86
2 # RUN: rm -rf %t && split-file %s %t && cd %t
3 # RUN: llvm-mc -filetype=obj -triple=x86_64 a.tu.s -o a.tu.o
4 # RUN: llvm-mc -filetype=obj -triple=x86_64 a.foreign-tu.s -o a.foreign-tu.o
5 # RUN: llvm-mc -filetype=obj -triple=x86_64 b.s -o b.o
7 # RUN: ld.lld --debug-names a.tu.o b.o -o out0 2>&1 | FileCheck --check-prefix=WARN %s
8 # RUN: llvm-dwarfdump --debug-names out0 | FileCheck --check-prefix=DWARF %s
10 # WARN: warning: a.tu.o:(.debug_names): type units are not implemented
12 # DWARF: CU count: 2
13 # DWARF-NEXT: Local TU count: 0
14 # DWARF-NEXT: Foreign TU count: 0
15 # DWARF: Compilation Unit offsets [
16 # DWARF-NEXT: CU[0]:
17 # DWARF-SAME: 0x0000002a
18 # DWARF-NEXT: CU[1]:
19 # DWARF-SAME: 0x0000006a
20 # DWARF-NEXT: ]
21 # DWARF: String: {{.*}} "t1"
22 # DWARF-NEXT: Entry @ 0x8f {
23 # DWARF-NEXT: Abbrev: 0x2
24 # DWARF-NEXT: Tag: DW_TAG_structure_type
25 # DWARF-NEXT: DW_IDX_type_unit: 0x00
26 # DWARF-NEXT: DW_IDX_die_offset: 0x00000023
27 # DWARF-NEXT: DW_IDX_parent: <parent not indexed>
28 # DWARF-NEXT: DW_IDX_compile_unit: 0x00
29 # DWARF-NEXT: }
30 # DWARF-NEXT: Entry @ 0x96 {
31 # DWARF-NEXT: Abbrev: 0x1
32 # DWARF-NEXT: Tag: DW_TAG_structure_type
33 # DWARF-NEXT: DW_IDX_die_offset: 0x00000036
34 # DWARF-NEXT: DW_IDX_parent: <parent not indexed>
35 # DWARF-NEXT: DW_IDX_compile_unit: 0x00
36 # DWARF-NEXT: }
37 # DWARF-NEXT: Entry @ 0x9c {
38 # DWARF-NEXT: Abbrev: 0x1
39 # DWARF-NEXT: Tag: DW_TAG_structure_type
40 # DWARF-NEXT: DW_IDX_die_offset: 0x00000029
41 # DWARF-NEXT: DW_IDX_parent: <parent not indexed>
42 # DWARF-NEXT: DW_IDX_compile_unit: 0x01
43 # DWARF-NEXT: }
45 # RUN: ld.lld --debug-names a.foreign-tu.o b.o -o out1 2>&1 | FileCheck %s --check-prefix=WARN2
46 # RUN: llvm-dwarfdump --debug-names out1 | FileCheck --check-prefix=DWARF2 %s
48 # WARN2: warning: a.foreign-tu.o:(.debug_names): type units are not implemented
50 # DWARF2: CU count: 2
51 # DWARF2-NEXT: Local TU count: 0
52 # DWARF2-NEXT: Foreign TU count: 0
53 # DWARF2: Compilation Unit offsets [
54 # DWARF2-NEXT: CU[0]:
55 # DWARF2-SAME: 0x00000000
56 # DWARF2-NEXT: CU[1]:
57 # DWARF2-SAME: 0x00000028
58 # DWARF2-NEXT: ]
60 .ifdef GEN
61 #--- a.cc
62 struct t1 {};
63 extern "C" void _start(t1) {}
64 #--- b.cc
65 struct t1 { } vb;
66 #--- gen
67 echo '#--- a.tu.s'
68 clang --target=x86_64-linux -S -O1 -g -gpubnames -fdebug-types-section a.cc -o -
69 echo '#--- a.foreign-tu.s'
70 clang --target=x86_64-linux -S -O1 -g -gpubnames -fdebug-types-section -gsplit-dwarf a.cc -o -
71 echo '#--- b.s'
72 clang --target=x86_64-linux -S -O1 -g -gpubnames b.cc -o -
73 .endif
74 #--- a.tu.s
75 .text
76 .file "a.cc"
77 .globl _start # -- Begin function _start
78 .p2align 4, 0x90
79 .type _start,@function
80 _start: # @_start
81 .Lfunc_begin0:
82 .file 0 "/proc/self/cwd" "a.cc" md5 0x6835f89a7d36054002b51e54e47d852e
83 .cfi_startproc
84 # %bb.0: # %entry
85 .loc 0 2 29 prologue_end # a.cc:2:29
86 retq
87 .Ltmp0:
88 .Lfunc_end0:
89 .size _start, .Lfunc_end0-_start
90 .cfi_endproc
91 # -- End function
92 .section .debug_info,"G",@progbits,14297044602779165170,comdat
93 .Ltu_begin0:
94 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
95 .Ldebug_info_start0:
96 .short 5 # DWARF version number
97 .byte 2 # DWARF Unit Type
98 .byte 8 # Address Size (in bytes)
99 .long .debug_abbrev # Offset Into Abbrev. Section
100 .quad -4149699470930386446 # Type Signature
101 .long 35 # Type DIE Offset
102 .byte 1 # Abbrev [1] 0x18:0x12 DW_TAG_type_unit
103 .short 33 # DW_AT_language
104 .long .Lline_table_start0 # DW_AT_stmt_list
105 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
106 .byte 2 # Abbrev [2] 0x23:0x6 DW_TAG_structure_type
107 .byte 5 # DW_AT_calling_convention
108 .byte 4 # DW_AT_name
109 .byte 1 # DW_AT_byte_size
110 .byte 0 # DW_AT_decl_file
111 .byte 1 # DW_AT_decl_line
112 .byte 0 # End Of Children Mark
113 .Ldebug_info_end0:
114 .section .debug_abbrev,"",@progbits
115 .byte 1 # Abbreviation Code
116 .byte 65 # DW_TAG_type_unit
117 .byte 1 # DW_CHILDREN_yes
118 .byte 19 # DW_AT_language
119 .byte 5 # DW_FORM_data2
120 .byte 16 # DW_AT_stmt_list
121 .byte 23 # DW_FORM_sec_offset
122 .byte 114 # DW_AT_str_offsets_base
123 .byte 23 # DW_FORM_sec_offset
124 .byte 0 # EOM(1)
125 .byte 0 # EOM(2)
126 .byte 2 # Abbreviation Code
127 .byte 19 # DW_TAG_structure_type
128 .byte 0 # DW_CHILDREN_no
129 .byte 54 # DW_AT_calling_convention
130 .byte 11 # DW_FORM_data1
131 .byte 3 # DW_AT_name
132 .byte 37 # DW_FORM_strx1
133 .byte 11 # DW_AT_byte_size
134 .byte 11 # DW_FORM_data1
135 .byte 58 # DW_AT_decl_file
136 .byte 11 # DW_FORM_data1
137 .byte 59 # DW_AT_decl_line
138 .byte 11 # DW_FORM_data1
139 .byte 0 # EOM(1)
140 .byte 0 # EOM(2)
141 .byte 3 # Abbreviation Code
142 .byte 17 # DW_TAG_compile_unit
143 .byte 1 # DW_CHILDREN_yes
144 .byte 37 # DW_AT_producer
145 .byte 37 # DW_FORM_strx1
146 .byte 19 # DW_AT_language
147 .byte 5 # DW_FORM_data2
148 .byte 3 # DW_AT_name
149 .byte 37 # DW_FORM_strx1
150 .byte 114 # DW_AT_str_offsets_base
151 .byte 23 # DW_FORM_sec_offset
152 .byte 16 # DW_AT_stmt_list
153 .byte 23 # DW_FORM_sec_offset
154 .byte 27 # DW_AT_comp_dir
155 .byte 37 # DW_FORM_strx1
156 .byte 17 # DW_AT_low_pc
157 .byte 27 # DW_FORM_addrx
158 .byte 18 # DW_AT_high_pc
159 .byte 6 # DW_FORM_data4
160 .byte 115 # DW_AT_addr_base
161 .byte 23 # DW_FORM_sec_offset
162 .byte 0 # EOM(1)
163 .byte 0 # EOM(2)
164 .byte 4 # Abbreviation Code
165 .byte 46 # DW_TAG_subprogram
166 .byte 1 # DW_CHILDREN_yes
167 .byte 17 # DW_AT_low_pc
168 .byte 27 # DW_FORM_addrx
169 .byte 18 # DW_AT_high_pc
170 .byte 6 # DW_FORM_data4
171 .byte 64 # DW_AT_frame_base
172 .byte 24 # DW_FORM_exprloc
173 .byte 122 # DW_AT_call_all_calls
174 .byte 25 # DW_FORM_flag_present
175 .byte 3 # DW_AT_name
176 .byte 37 # DW_FORM_strx1
177 .byte 58 # DW_AT_decl_file
178 .byte 11 # DW_FORM_data1
179 .byte 59 # DW_AT_decl_line
180 .byte 11 # DW_FORM_data1
181 .byte 63 # DW_AT_external
182 .byte 25 # DW_FORM_flag_present
183 .byte 0 # EOM(1)
184 .byte 0 # EOM(2)
185 .byte 5 # Abbreviation Code
186 .byte 5 # DW_TAG_formal_parameter
187 .byte 0 # DW_CHILDREN_no
188 .byte 58 # DW_AT_decl_file
189 .byte 11 # DW_FORM_data1
190 .byte 59 # DW_AT_decl_line
191 .byte 11 # DW_FORM_data1
192 .byte 73 # DW_AT_type
193 .byte 19 # DW_FORM_ref4
194 .byte 0 # EOM(1)
195 .byte 0 # EOM(2)
196 .byte 6 # Abbreviation Code
197 .byte 19 # DW_TAG_structure_type
198 .byte 0 # DW_CHILDREN_no
199 .byte 60 # DW_AT_declaration
200 .byte 25 # DW_FORM_flag_present
201 .byte 105 # DW_AT_signature
202 .byte 32 # DW_FORM_ref_sig8
203 .byte 0 # EOM(1)
204 .byte 0 # EOM(2)
205 .byte 0 # EOM(3)
206 .section .debug_info,"",@progbits
207 .Lcu_begin0:
208 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
209 .Ldebug_info_start1:
210 .short 5 # DWARF version number
211 .byte 1 # DWARF Unit Type
212 .byte 8 # Address Size (in bytes)
213 .long .debug_abbrev # Offset Into Abbrev. Section
214 .byte 3 # Abbrev [3] 0xc:0x34 DW_TAG_compile_unit
215 .byte 0 # DW_AT_producer
216 .short 33 # DW_AT_language
217 .byte 1 # DW_AT_name
218 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
219 .long .Lline_table_start0 # DW_AT_stmt_list
220 .byte 2 # DW_AT_comp_dir
221 .byte 0 # DW_AT_low_pc
222 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
223 .long .Laddr_table_base0 # DW_AT_addr_base
224 .byte 4 # Abbrev [4] 0x23:0x13 DW_TAG_subprogram
225 .byte 0 # DW_AT_low_pc
226 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
227 .byte 1 # DW_AT_frame_base
228 .byte 87
229 # DW_AT_call_all_calls
230 .byte 3 # DW_AT_name
231 .byte 0 # DW_AT_decl_file
232 .byte 2 # DW_AT_decl_line
233 # DW_AT_external
234 .byte 5 # Abbrev [5] 0x2e:0x7 DW_TAG_formal_parameter
235 .byte 0 # DW_AT_decl_file
236 .byte 2 # DW_AT_decl_line
237 .long 54 # DW_AT_type
238 .byte 0 # End Of Children Mark
239 .byte 6 # Abbrev [6] 0x36:0x9 DW_TAG_structure_type
240 # DW_AT_declaration
241 .quad -4149699470930386446 # DW_AT_signature
242 .byte 0 # End Of Children Mark
243 .Ldebug_info_end1:
244 .section .debug_str_offsets,"",@progbits
245 .long 24 # Length of String Offsets Set
246 .short 5
247 .short 0
248 .Lstr_offsets_base0:
249 .section .debug_str,"MS",@progbits,1
250 .Linfo_string0:
251 .byte 0 # string offset=0
252 .Linfo_string1:
253 .asciz "a.cc" # string offset=1
254 .Linfo_string2:
255 .asciz "/proc/self/cwd" # string offset=6
256 .Linfo_string3:
257 .asciz "_start" # string offset=21
258 .Linfo_string4:
259 .asciz "t1" # string offset=28
260 .section .debug_str_offsets,"",@progbits
261 .long .Linfo_string0
262 .long .Linfo_string1
263 .long .Linfo_string2
264 .long .Linfo_string3
265 .long .Linfo_string4
266 .section .debug_addr,"",@progbits
267 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
268 .Ldebug_addr_start0:
269 .short 5 # DWARF version number
270 .byte 8 # Address size
271 .byte 0 # Segment selector size
272 .Laddr_table_base0:
273 .quad .Lfunc_begin0
274 .Ldebug_addr_end0:
275 .section .debug_names,"",@progbits
276 .long .Lnames_end0-.Lnames_start0 # Header: unit length
277 .Lnames_start0:
278 .short 5 # Header: version
279 .short 0 # Header: padding
280 .long 1 # Header: compilation unit count
281 .long 1 # Header: local type unit count
282 .long 0 # Header: foreign type unit count
283 .long 2 # Header: bucket count
284 .long 2 # Header: name count
285 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
286 .long 8 # Header: augmentation string size
287 .ascii "LLVM0700" # Header: augmentation string
288 .long .Lcu_begin0 # Compilation unit 0
289 .long .Ltu_begin0 # Type unit 0
290 .long 1 # Bucket 0
291 .long 0 # Bucket 1
292 .long 5863786 # Hash in Bucket 0
293 .long -304389582 # Hash in Bucket 0
294 .long .Linfo_string4 # String in Bucket 0: t1
295 .long .Linfo_string3 # String in Bucket 0: _start
296 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 0
297 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0
298 .Lnames_abbrev_start0:
299 .byte 1 # Abbrev code
300 .byte 19 # DW_TAG_structure_type
301 .byte 2 # DW_IDX_type_unit
302 .byte 11 # DW_FORM_data1
303 .byte 3 # DW_IDX_die_offset
304 .byte 19 # DW_FORM_ref4
305 .byte 4 # DW_IDX_parent
306 .byte 25 # DW_FORM_flag_present
307 .byte 0 # End of abbrev
308 .byte 0 # End of abbrev
309 .byte 2 # Abbrev code
310 .byte 19 # DW_TAG_structure_type
311 .byte 3 # DW_IDX_die_offset
312 .byte 19 # DW_FORM_ref4
313 .byte 4 # DW_IDX_parent
314 .byte 25 # DW_FORM_flag_present
315 .byte 0 # End of abbrev
316 .byte 0 # End of abbrev
317 .byte 3 # Abbrev code
318 .byte 46 # DW_TAG_subprogram
319 .byte 3 # DW_IDX_die_offset
320 .byte 19 # DW_FORM_ref4
321 .byte 4 # DW_IDX_parent
322 .byte 25 # DW_FORM_flag_present
323 .byte 0 # End of abbrev
324 .byte 0 # End of abbrev
325 .byte 0 # End of abbrev list
326 .Lnames_abbrev_end0:
327 .Lnames_entries0:
328 .Lnames1:
329 .L1:
330 .byte 1 # Abbreviation code
331 .byte 0 # DW_IDX_type_unit
332 .long 35 # DW_IDX_die_offset
333 .L0: # DW_IDX_parent
334 .byte 2 # Abbreviation code
335 .long 54 # DW_IDX_die_offset
336 .byte 0 # DW_IDX_parent
337 # End of list: t1
338 .Lnames0:
339 .byte 3 # Abbreviation code
340 .long 35 # DW_IDX_die_offset
341 .byte 0 # DW_IDX_parent
342 # End of list: _start
343 .p2align 2, 0x0
344 .Lnames_end0:
345 .section ".note.GNU-stack","",@progbits
346 .addrsig
347 .section .debug_line,"",@progbits
348 .Lline_table_start0:
349 #--- a.foreign-tu.s
350 .text
351 .file "a.cc"
352 .globl _start # -- Begin function _start
353 .p2align 4, 0x90
354 .type _start,@function
355 _start: # @_start
356 .Lfunc_begin0:
357 .file 0 "/proc/self/cwd" "a.cc" md5 0x6835f89a7d36054002b51e54e47d852e
358 .cfi_startproc
359 # %bb.0: # %entry
360 .loc 0 2 29 prologue_end # a.cc:2:29
361 retq
362 .Ltmp0:
363 .Lfunc_end0:
364 .size _start, .Lfunc_end0-_start
365 .cfi_endproc
366 # -- End function
367 .section .debug_info.dwo,"e",@progbits
368 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
369 .Ldebug_info_dwo_start0:
370 .short 5 # DWARF version number
371 .byte 6 # DWARF Unit Type
372 .byte 8 # Address Size (in bytes)
373 .long 0 # Offset Into Abbrev. Section
374 .quad -4149699470930386446 # Type Signature
375 .long 33 # Type DIE Offset
376 .byte 1 # Abbrev [1] 0x18:0x10 DW_TAG_type_unit
377 .short 33 # DW_AT_language
378 .byte 1 # DW_AT_comp_dir
379 .byte 2 # DW_AT_dwo_name
380 .long 0 # DW_AT_stmt_list
381 .byte 2 # Abbrev [2] 0x21:0x6 DW_TAG_structure_type
382 .byte 5 # DW_AT_calling_convention
383 .byte 3 # DW_AT_name
384 .byte 1 # DW_AT_byte_size
385 .byte 0 # DW_AT_decl_file
386 .byte 1 # DW_AT_decl_line
387 .byte 0 # End Of Children Mark
388 .Ldebug_info_dwo_end0:
389 .section .debug_abbrev,"",@progbits
390 .byte 1 # Abbreviation Code
391 .byte 74 # DW_TAG_skeleton_unit
392 .byte 0 # DW_CHILDREN_no
393 .byte 16 # DW_AT_stmt_list
394 .byte 23 # DW_FORM_sec_offset
395 .byte 114 # DW_AT_str_offsets_base
396 .byte 23 # DW_FORM_sec_offset
397 .byte 27 # DW_AT_comp_dir
398 .byte 37 # DW_FORM_strx1
399 .byte 118 # DW_AT_dwo_name
400 .byte 37 # DW_FORM_strx1
401 .byte 17 # DW_AT_low_pc
402 .byte 27 # DW_FORM_addrx
403 .byte 18 # DW_AT_high_pc
404 .byte 6 # DW_FORM_data4
405 .byte 115 # DW_AT_addr_base
406 .byte 23 # DW_FORM_sec_offset
407 .byte 0 # EOM(1)
408 .byte 0 # EOM(2)
409 .byte 0 # EOM(3)
410 .section .debug_info,"",@progbits
411 .Lcu_begin0:
412 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
413 .Ldebug_info_start0:
414 .short 5 # DWARF version number
415 .byte 4 # DWARF Unit Type
416 .byte 8 # Address Size (in bytes)
417 .long .debug_abbrev # Offset Into Abbrev. Section
418 .quad -2763464185488304260
419 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
420 .long .Lline_table_start0 # DW_AT_stmt_list
421 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
422 .byte 0 # DW_AT_comp_dir
423 .byte 1 # DW_AT_dwo_name
424 .byte 0 # DW_AT_low_pc
425 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
426 .long .Laddr_table_base0 # DW_AT_addr_base
427 .Ldebug_info_end0:
428 .section .debug_str_offsets,"",@progbits
429 .long 12 # Length of String Offsets Set
430 .short 5
431 .short 0
432 .Lstr_offsets_base0:
433 .section .debug_str,"MS",@progbits,1
434 .Lskel_string0:
435 .asciz "/proc/self/cwd" # string offset=0
436 .Lskel_string1:
437 .asciz "_start" # string offset=15
438 .Lskel_string2:
439 .asciz "t1" # string offset=22
440 .Lskel_string3:
441 .asciz "a.dwo" # string offset=25
442 .section .debug_str_offsets,"",@progbits
443 .long .Lskel_string0
444 .long .Lskel_string3
445 .section .debug_str_offsets.dwo,"e",@progbits
446 .long 28 # Length of String Offsets Set
447 .short 5
448 .short 0
449 .section .debug_str.dwo,"eMS",@progbits,1
450 .Linfo_string0:
451 .asciz "_start" # string offset=0
452 .Linfo_string1:
453 .asciz "/proc/self/cwd" # string offset=7
454 .Linfo_string2:
455 .asciz "a.dwo" # string offset=22
456 .Linfo_string3:
457 .asciz "t1" # string offset=28
458 .Linfo_string4:
459 .byte 0 # string offset=31
460 .Linfo_string5:
461 .asciz "a.cc" # string offset=32
462 .section .debug_str_offsets.dwo,"e",@progbits
463 .long 0
464 .long 7
465 .long 22
466 .long 28
467 .long 31
468 .long 32
469 .section .debug_info.dwo,"e",@progbits
470 .long .Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit
471 .Ldebug_info_dwo_start1:
472 .short 5 # DWARF version number
473 .byte 5 # DWARF Unit Type
474 .byte 8 # Address Size (in bytes)
475 .long 0 # Offset Into Abbrev. Section
476 .quad -2763464185488304260
477 .byte 3 # Abbrev [3] 0x14:0x23 DW_TAG_compile_unit
478 .byte 4 # DW_AT_producer
479 .short 33 # DW_AT_language
480 .byte 5 # DW_AT_name
481 .byte 2 # DW_AT_dwo_name
482 .byte 4 # Abbrev [4] 0x1a:0x13 DW_TAG_subprogram
483 .byte 0 # DW_AT_low_pc
484 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
485 .byte 1 # DW_AT_frame_base
486 .byte 87
487 # DW_AT_call_all_calls
488 .byte 0 # DW_AT_name
489 .byte 0 # DW_AT_decl_file
490 .byte 2 # DW_AT_decl_line
491 # DW_AT_external
492 .byte 5 # Abbrev [5] 0x25:0x7 DW_TAG_formal_parameter
493 .byte 0 # DW_AT_decl_file
494 .byte 2 # DW_AT_decl_line
495 .long 45 # DW_AT_type
496 .byte 0 # End Of Children Mark
497 .byte 6 # Abbrev [6] 0x2d:0x9 DW_TAG_structure_type
498 # DW_AT_declaration
499 .quad -4149699470930386446 # DW_AT_signature
500 .byte 0 # End Of Children Mark
501 .Ldebug_info_dwo_end1:
502 .section .debug_abbrev.dwo,"e",@progbits
503 .byte 1 # Abbreviation Code
504 .byte 65 # DW_TAG_type_unit
505 .byte 1 # DW_CHILDREN_yes
506 .byte 19 # DW_AT_language
507 .byte 5 # DW_FORM_data2
508 .byte 27 # DW_AT_comp_dir
509 .byte 37 # DW_FORM_strx1
510 .byte 118 # DW_AT_dwo_name
511 .byte 37 # DW_FORM_strx1
512 .byte 16 # DW_AT_stmt_list
513 .byte 23 # DW_FORM_sec_offset
514 .byte 0 # EOM(1)
515 .byte 0 # EOM(2)
516 .byte 2 # Abbreviation Code
517 .byte 19 # DW_TAG_structure_type
518 .byte 0 # DW_CHILDREN_no
519 .byte 54 # DW_AT_calling_convention
520 .byte 11 # DW_FORM_data1
521 .byte 3 # DW_AT_name
522 .byte 37 # DW_FORM_strx1
523 .byte 11 # DW_AT_byte_size
524 .byte 11 # DW_FORM_data1
525 .byte 58 # DW_AT_decl_file
526 .byte 11 # DW_FORM_data1
527 .byte 59 # DW_AT_decl_line
528 .byte 11 # DW_FORM_data1
529 .byte 0 # EOM(1)
530 .byte 0 # EOM(2)
531 .byte 3 # Abbreviation Code
532 .byte 17 # DW_TAG_compile_unit
533 .byte 1 # DW_CHILDREN_yes
534 .byte 37 # DW_AT_producer
535 .byte 37 # DW_FORM_strx1
536 .byte 19 # DW_AT_language
537 .byte 5 # DW_FORM_data2
538 .byte 3 # DW_AT_name
539 .byte 37 # DW_FORM_strx1
540 .byte 118 # DW_AT_dwo_name
541 .byte 37 # DW_FORM_strx1
542 .byte 0 # EOM(1)
543 .byte 0 # EOM(2)
544 .byte 4 # Abbreviation Code
545 .byte 46 # DW_TAG_subprogram
546 .byte 1 # DW_CHILDREN_yes
547 .byte 17 # DW_AT_low_pc
548 .byte 27 # DW_FORM_addrx
549 .byte 18 # DW_AT_high_pc
550 .byte 6 # DW_FORM_data4
551 .byte 64 # DW_AT_frame_base
552 .byte 24 # DW_FORM_exprloc
553 .byte 122 # DW_AT_call_all_calls
554 .byte 25 # DW_FORM_flag_present
555 .byte 3 # DW_AT_name
556 .byte 37 # DW_FORM_strx1
557 .byte 58 # DW_AT_decl_file
558 .byte 11 # DW_FORM_data1
559 .byte 59 # DW_AT_decl_line
560 .byte 11 # DW_FORM_data1
561 .byte 63 # DW_AT_external
562 .byte 25 # DW_FORM_flag_present
563 .byte 0 # EOM(1)
564 .byte 0 # EOM(2)
565 .byte 5 # Abbreviation Code
566 .byte 5 # DW_TAG_formal_parameter
567 .byte 0 # DW_CHILDREN_no
568 .byte 58 # DW_AT_decl_file
569 .byte 11 # DW_FORM_data1
570 .byte 59 # DW_AT_decl_line
571 .byte 11 # DW_FORM_data1
572 .byte 73 # DW_AT_type
573 .byte 19 # DW_FORM_ref4
574 .byte 0 # EOM(1)
575 .byte 0 # EOM(2)
576 .byte 6 # Abbreviation Code
577 .byte 19 # DW_TAG_structure_type
578 .byte 0 # DW_CHILDREN_no
579 .byte 60 # DW_AT_declaration
580 .byte 25 # DW_FORM_flag_present
581 .byte 105 # DW_AT_signature
582 .byte 32 # DW_FORM_ref_sig8
583 .byte 0 # EOM(1)
584 .byte 0 # EOM(2)
585 .byte 0 # EOM(3)
586 .section .debug_line.dwo,"e",@progbits
587 .Ltmp1:
588 .long .Ldebug_line_end0-.Ldebug_line_start0 # unit length
589 .Ldebug_line_start0:
590 .short 5
591 .byte 8
592 .byte 0
593 .long .Lprologue_end0-.Lprologue_start0
594 .Lprologue_start0:
595 .byte 1
596 .byte 1
597 .byte 1
598 .byte -5
599 .byte 14
600 .byte 1
601 .byte 1
602 .byte 1
603 .byte 8
604 .byte 1
605 .ascii "/proc/self/cwd"
606 .byte 0
607 .byte 3
608 .byte 1
609 .byte 8
610 .byte 2
611 .byte 15
612 .byte 5
613 .byte 30
614 .byte 1
615 .ascii "a.cc"
616 .byte 0
617 .byte 0
618 .byte 0x68, 0x35, 0xf8, 0x9a
619 .byte 0x7d, 0x36, 0x05, 0x40
620 .byte 0x02, 0xb5, 0x1e, 0x54
621 .byte 0xe4, 0x7d, 0x85, 0x2e
622 .Lprologue_end0:
623 .Ldebug_line_end0:
624 .section .debug_addr,"",@progbits
625 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
626 .Ldebug_addr_start0:
627 .short 5 # DWARF version number
628 .byte 8 # Address size
629 .byte 0 # Segment selector size
630 .Laddr_table_base0:
631 .quad .Lfunc_begin0
632 .Ldebug_addr_end0:
633 .section .debug_names,"",@progbits
634 .long .Lnames_end0-.Lnames_start0 # Header: unit length
635 .Lnames_start0:
636 .short 5 # Header: version
637 .short 0 # Header: padding
638 .long 1 # Header: compilation unit count
639 .long 0 # Header: local type unit count
640 .long 1 # Header: foreign type unit count
641 .long 2 # Header: bucket count
642 .long 2 # Header: name count
643 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
644 .long 8 # Header: augmentation string size
645 .ascii "LLVM0700" # Header: augmentation string
646 .long .Lcu_begin0 # Compilation unit 0
647 .quad -4149699470930386446 # Type unit 0
648 .long 1 # Bucket 0
649 .long 0 # Bucket 1
650 .long 5863786 # Hash in Bucket 0
651 .long -304389582 # Hash in Bucket 0
652 .long .Lskel_string2 # String in Bucket 0: t1
653 .long .Lskel_string1 # String in Bucket 0: _start
654 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 0
655 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0
656 .Lnames_abbrev_start0:
657 .byte 1 # Abbrev code
658 .byte 19 # DW_TAG_structure_type
659 .byte 2 # DW_IDX_type_unit
660 .byte 11 # DW_FORM_data1
661 .byte 3 # DW_IDX_die_offset
662 .byte 19 # DW_FORM_ref4
663 .byte 4 # DW_IDX_parent
664 .byte 25 # DW_FORM_flag_present
665 .byte 0 # End of abbrev
666 .byte 0 # End of abbrev
667 .byte 2 # Abbrev code
668 .byte 19 # DW_TAG_structure_type
669 .byte 3 # DW_IDX_die_offset
670 .byte 19 # DW_FORM_ref4
671 .byte 4 # DW_IDX_parent
672 .byte 25 # DW_FORM_flag_present
673 .byte 0 # End of abbrev
674 .byte 0 # End of abbrev
675 .byte 3 # Abbrev code
676 .byte 46 # DW_TAG_subprogram
677 .byte 3 # DW_IDX_die_offset
678 .byte 19 # DW_FORM_ref4
679 .byte 4 # DW_IDX_parent
680 .byte 25 # DW_FORM_flag_present
681 .byte 0 # End of abbrev
682 .byte 0 # End of abbrev
683 .byte 0 # End of abbrev list
684 .Lnames_abbrev_end0:
685 .Lnames_entries0:
686 .Lnames1:
687 .L2:
688 .byte 1 # Abbreviation code
689 .byte 0 # DW_IDX_type_unit
690 .long 33 # DW_IDX_die_offset
691 .L1: # DW_IDX_parent
692 .byte 2 # Abbreviation code
693 .long 45 # DW_IDX_die_offset
694 .byte 0 # DW_IDX_parent
695 # End of list: t1
696 .Lnames0:
697 .L0:
698 .byte 3 # Abbreviation code
699 .long 26 # DW_IDX_die_offset
700 .byte 0 # DW_IDX_parent
701 # End of list: _start
702 .p2align 2, 0x0
703 .Lnames_end0:
704 .section ".note.GNU-stack","",@progbits
705 .addrsig
706 .section .debug_line,"",@progbits
707 .Lline_table_start0:
708 #--- b.s
709 .text
710 .file "b.cc"
711 .file 0 "/proc/self/cwd" "b.cc" md5 0xe69190c4224a66c796605e3a1324674b
712 .type vb,@object # @vb
713 .bss
714 .globl vb
716 .zero 1
717 .size vb, 1
719 .section .debug_abbrev,"",@progbits
720 .byte 1 # Abbreviation Code
721 .byte 17 # DW_TAG_compile_unit
722 .byte 1 # DW_CHILDREN_yes
723 .byte 37 # DW_AT_producer
724 .byte 37 # DW_FORM_strx1
725 .byte 19 # DW_AT_language
726 .byte 5 # DW_FORM_data2
727 .byte 3 # DW_AT_name
728 .byte 37 # DW_FORM_strx1
729 .byte 114 # DW_AT_str_offsets_base
730 .byte 23 # DW_FORM_sec_offset
731 .byte 16 # DW_AT_stmt_list
732 .byte 23 # DW_FORM_sec_offset
733 .byte 27 # DW_AT_comp_dir
734 .byte 37 # DW_FORM_strx1
735 .byte 115 # DW_AT_addr_base
736 .byte 23 # DW_FORM_sec_offset
737 .byte 0 # EOM(1)
738 .byte 0 # EOM(2)
739 .byte 2 # Abbreviation Code
740 .byte 52 # DW_TAG_variable
741 .byte 0 # DW_CHILDREN_no
742 .byte 3 # DW_AT_name
743 .byte 37 # DW_FORM_strx1
744 .byte 73 # DW_AT_type
745 .byte 19 # DW_FORM_ref4
746 .byte 63 # DW_AT_external
747 .byte 25 # DW_FORM_flag_present
748 .byte 58 # DW_AT_decl_file
749 .byte 11 # DW_FORM_data1
750 .byte 59 # DW_AT_decl_line
751 .byte 11 # DW_FORM_data1
752 .byte 2 # DW_AT_location
753 .byte 24 # DW_FORM_exprloc
754 .byte 0 # EOM(1)
755 .byte 0 # EOM(2)
756 .byte 3 # Abbreviation Code
757 .byte 19 # DW_TAG_structure_type
758 .byte 0 # DW_CHILDREN_no
759 .byte 54 # DW_AT_calling_convention
760 .byte 11 # DW_FORM_data1
761 .byte 3 # DW_AT_name
762 .byte 37 # DW_FORM_strx1
763 .byte 11 # DW_AT_byte_size
764 .byte 11 # DW_FORM_data1
765 .byte 58 # DW_AT_decl_file
766 .byte 11 # DW_FORM_data1
767 .byte 59 # DW_AT_decl_line
768 .byte 11 # DW_FORM_data1
769 .byte 0 # EOM(1)
770 .byte 0 # EOM(2)
771 .byte 0 # EOM(3)
772 .section .debug_info,"",@progbits
773 .Lcu_begin0:
774 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
775 .Ldebug_info_start0:
776 .short 5 # DWARF version number
777 .byte 1 # DWARF Unit Type
778 .byte 8 # Address Size (in bytes)
779 .long .debug_abbrev # Offset Into Abbrev. Section
780 .byte 1 # Abbrev [1] 0xc:0x24 DW_TAG_compile_unit
781 .byte 0 # DW_AT_producer
782 .short 33 # DW_AT_language
783 .byte 1 # DW_AT_name
784 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
785 .long .Lline_table_start0 # DW_AT_stmt_list
786 .byte 2 # DW_AT_comp_dir
787 .long .Laddr_table_base0 # DW_AT_addr_base
788 .byte 2 # Abbrev [2] 0x1e:0xb DW_TAG_variable
789 .byte 3 # DW_AT_name
790 .long 41 # DW_AT_type
791 # DW_AT_external
792 .byte 0 # DW_AT_decl_file
793 .byte 1 # DW_AT_decl_line
794 .byte 2 # DW_AT_location
795 .byte 161
796 .byte 0
797 .byte 3 # Abbrev [3] 0x29:0x6 DW_TAG_structure_type
798 .byte 5 # DW_AT_calling_convention
799 .byte 4 # DW_AT_name
800 .byte 1 # DW_AT_byte_size
801 .byte 0 # DW_AT_decl_file
802 .byte 1 # DW_AT_decl_line
803 .byte 0 # End Of Children Mark
804 .Ldebug_info_end0:
805 .section .debug_str_offsets,"",@progbits
806 .long 24 # Length of String Offsets Set
807 .short 5
808 .short 0
809 .Lstr_offsets_base0:
810 .section .debug_str,"MS",@progbits,1
811 .Linfo_string0:
812 .byte 0 # string offset=0
813 .Linfo_string1:
814 .asciz "b.cc" # string offset=1
815 .Linfo_string2:
816 .asciz "/proc/self/cwd" # string offset=6
817 .Linfo_string3:
818 .asciz "vb" # string offset=21
819 .Linfo_string4:
820 .asciz "t1" # string offset=24
821 .section .debug_str_offsets,"",@progbits
822 .long .Linfo_string0
823 .long .Linfo_string1
824 .long .Linfo_string2
825 .long .Linfo_string3
826 .long .Linfo_string4
827 .section .debug_addr,"",@progbits
828 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
829 .Ldebug_addr_start0:
830 .short 5 # DWARF version number
831 .byte 8 # Address size
832 .byte 0 # Segment selector size
833 .Laddr_table_base0:
834 .quad vb
835 .Ldebug_addr_end0:
836 .section .debug_names,"",@progbits
837 .long .Lnames_end0-.Lnames_start0 # Header: unit length
838 .Lnames_start0:
839 .short 5 # Header: version
840 .short 0 # Header: padding
841 .long 1 # Header: compilation unit count
842 .long 0 # Header: local type unit count
843 .long 0 # Header: foreign type unit count
844 .long 2 # Header: bucket count
845 .long 2 # Header: name count
846 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
847 .long 8 # Header: augmentation string size
848 .ascii "LLVM0700" # Header: augmentation string
849 .long .Lcu_begin0 # Compilation unit 0
850 .long 1 # Bucket 0
851 .long 2 # Bucket 1
852 .long 5863786 # Hash in Bucket 0
853 .long 5863901 # Hash in Bucket 1
854 .long .Linfo_string4 # String in Bucket 0: t1
855 .long .Linfo_string3 # String in Bucket 1: vb
856 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0
857 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 1
858 .Lnames_abbrev_start0:
859 .byte 1 # Abbrev code
860 .byte 19 # DW_TAG_structure_type
861 .byte 3 # DW_IDX_die_offset
862 .byte 19 # DW_FORM_ref4
863 .byte 4 # DW_IDX_parent
864 .byte 25 # DW_FORM_flag_present
865 .byte 0 # End of abbrev
866 .byte 0 # End of abbrev
867 .byte 2 # Abbrev code
868 .byte 52 # DW_TAG_variable
869 .byte 3 # DW_IDX_die_offset
870 .byte 19 # DW_FORM_ref4
871 .byte 4 # DW_IDX_parent
872 .byte 25 # DW_FORM_flag_present
873 .byte 0 # End of abbrev
874 .byte 0 # End of abbrev
875 .byte 0 # End of abbrev list
876 .Lnames_abbrev_end0:
877 .Lnames_entries0:
878 .Lnames0:
879 .L1:
880 .byte 1 # Abbreviation code
881 .long 41 # DW_IDX_die_offset
882 .byte 0 # DW_IDX_parent
883 # End of list: t1
884 .Lnames1:
885 .L0:
886 .byte 2 # Abbreviation code
887 .long 30 # DW_IDX_die_offset
888 .byte 0 # DW_IDX_parent
889 # End of list: vb
890 .p2align 2, 0x0
891 .Lnames_end0:
892 .section ".note.GNU-stack","",@progbits
893 .addrsig
894 .section .debug_line,"",@progbits
895 .Lline_table_start0: