[memprof] Remove an unused using directive (#117004)
[llvm-project.git] / lld / test / ELF / debug-names-multi-cus.s
blob78fcdc227ef2591edf79b98e8aeaeee418d93ffd
1 # REQUIRES: x86
2 ## Test name indexes that contain multiple CU offsets due to LTO.
4 # RUN: rm -rf %t && split-file %s %t && cd %t
5 # RUN: llvm-mc -filetype=obj -triple=x86_64 %S/Inputs/debug-names-a.s -o a.o
6 # RUN: llvm-mc -filetype=obj -triple=x86_64 bcd.s -o bcd.o
7 # RUN: llvm-mc -filetype=obj -triple=x86_64 ef.s -o ef.o
8 # RUN: ld.lld --debug-names a.o bcd.o ef.o -o out
9 # RUN: llvm-dwarfdump --debug-info --debug-names out | FileCheck %s --check-prefix=DWARF
11 ## Place the multiple CU offsets in the second name index in an input file.
12 # RUN: ld.lld -r a.o bcd.o -o abcd.o
13 # RUN: ld.lld --debug-names abcd.o ef.o -o out
14 # RUN: llvm-dwarfdump --debug-info --debug-names out | FileCheck %s --check-prefix=DWARF
16 # DWARF: [[CU0:0x[^:]+]]: Compile Unit
17 # DWARF: [[CU1:0x[^:]+]]: Compile Unit
18 # DWARF: [[CU2:0x[^:]+]]: Compile Unit
19 # DWARF: [[CU3:0x[^:]+]]: Compile Unit
20 # DWARF: [[CU4:0x[^:]+]]: Compile Unit
21 # DWARF: [[CU5:0x[^:]+]]: Compile Unit
22 # DWARF: Compilation Unit offsets [
23 # DWARF-NEXT: CU[0]: [[CU0]]
24 # DWARF-NEXT: CU[1]: [[CU1]]
25 # DWARF-NEXT: CU[2]: [[CU2]]
26 # DWARF-NEXT: CU[3]: [[CU3]]
27 # DWARF-NEXT: CU[4]: [[CU4]]
28 # DWARF-NEXT: CU[5]: [[CU5]]
29 # DWARF-NEXT: ]
30 # DWARF: String: {{.*}} "vc"
31 # DWARF: DW_IDX_compile_unit: 0x02
32 # DWARF: String: {{.*}} "vd"
33 # DWARF: DW_IDX_die_offset:
34 # DWARF-SAME: 0x00000020
35 # DWARF: DW_IDX_compile_unit:
36 # DWARF-SAME: 0x03
37 # DWARF: String: {{.*}} "ve"
38 # DWARF: DW_IDX_die_offset:
39 # DWARF-SAME: 0x0000001e
40 # DWARF: DW_IDX_compile_unit:
41 # DWARF-SAME: 0x04
42 # DWARF: String: {{.*}} "vf"
43 # DWARF: DW_IDX_compile_unit:
44 # DWARF-SAME: 0x05
45 # DWARF: String: {{.*}} "vb"
46 # DWARF: DW_IDX_compile_unit:
47 # DWARF-SAME: 0x01
49 .ifdef GEN
50 #--- b.cc
51 [[gnu::used]] int vb;
52 #--- c.cc
53 [[gnu::used]] int vc;
54 #--- d.cc
55 namespace ns {
56 [[gnu::used]] int vd;
59 //--- e.cc
60 [[gnu::used]] int ve;
61 //--- f.cc
62 namespace ns {
63 [[gnu::used]] int vf;
66 #--- gen
67 clang --target=x86_64-linux -O1 -g -gpubnames -flto b.cc c.cc d.cc -nostdlib -fuse-ld=lld -Wl,--lto-emit-asm
68 echo '#--- bcd.s'
69 cat a.out.lto.s
70 clang --target=x86_64-linux -O1 -g -gpubnames -flto e.cc f.cc -nostdlib -fuse-ld=lld -Wl,--lto-emit-asm
71 echo '#--- ef.s'
72 cat a.out.lto.s
73 .endif
74 #--- bcd.s
75 .text
76 .file "ld-temp.o"
77 .file 1 "/proc/self/cwd" "b.cc" md5 0x78dad32a49063326a4de543198e54944
78 .file 2 "/proc/self/cwd" "c.cc" md5 0x7a0f7bf2cb0ec8c297f794908d91ab1b
79 .file 3 "/proc/self/cwd" "d.cc" md5 0xf7e2af89615ce48bf9a98fdae55ab5ad
80 .type vb,@object # @vb
81 .section .bss.vb,"aw",@nobits
82 .globl vb
83 .p2align 2, 0x0
84 vb:
85 .long 0 # 0x0
86 .size vb, 4
88 .type vc,@object # @vc
89 .section .bss.vc,"aw",@nobits
90 .globl vc
91 .p2align 2, 0x0
92 vc:
93 .long 0 # 0x0
94 .size vc, 4
96 .type _ZN2ns2vdE,@object # @_ZN2ns2vdE
97 .section .bss._ZN2ns2vdE,"aw",@nobits
98 .globl _ZN2ns2vdE
99 .p2align 2, 0x0
100 _ZN2ns2vdE:
101 .long 0 # 0x0
102 .size _ZN2ns2vdE, 4
104 .section .debug_abbrev,"",@progbits
105 .byte 1 # Abbreviation Code
106 .byte 17 # DW_TAG_compile_unit
107 .byte 1 # DW_CHILDREN_yes
108 .byte 37 # DW_AT_producer
109 .byte 37 # DW_FORM_strx1
110 .byte 19 # DW_AT_language
111 .byte 5 # DW_FORM_data2
112 .byte 3 # DW_AT_name
113 .byte 37 # DW_FORM_strx1
114 .byte 114 # DW_AT_str_offsets_base
115 .byte 23 # DW_FORM_sec_offset
116 .byte 16 # DW_AT_stmt_list
117 .byte 23 # DW_FORM_sec_offset
118 .byte 27 # DW_AT_comp_dir
119 .byte 37 # DW_FORM_strx1
120 .byte 115 # DW_AT_addr_base
121 .byte 23 # DW_FORM_sec_offset
122 .byte 0 # EOM(1)
123 .byte 0 # EOM(2)
124 .byte 2 # Abbreviation Code
125 .byte 52 # DW_TAG_variable
126 .byte 0 # DW_CHILDREN_no
127 .byte 3 # DW_AT_name
128 .byte 37 # DW_FORM_strx1
129 .byte 73 # DW_AT_type
130 .byte 19 # DW_FORM_ref4
131 .byte 63 # DW_AT_external
132 .byte 25 # DW_FORM_flag_present
133 .byte 58 # DW_AT_decl_file
134 .byte 11 # DW_FORM_data1
135 .byte 59 # DW_AT_decl_line
136 .byte 11 # DW_FORM_data1
137 .byte 2 # DW_AT_location
138 .byte 24 # DW_FORM_exprloc
139 .byte 0 # EOM(1)
140 .byte 0 # EOM(2)
141 .byte 3 # Abbreviation Code
142 .byte 36 # DW_TAG_base_type
143 .byte 0 # DW_CHILDREN_no
144 .byte 3 # DW_AT_name
145 .byte 37 # DW_FORM_strx1
146 .byte 62 # DW_AT_encoding
147 .byte 11 # DW_FORM_data1
148 .byte 11 # DW_AT_byte_size
149 .byte 11 # DW_FORM_data1
150 .byte 0 # EOM(1)
151 .byte 0 # EOM(2)
152 .byte 4 # Abbreviation Code
153 .byte 52 # DW_TAG_variable
154 .byte 0 # DW_CHILDREN_no
155 .byte 3 # DW_AT_name
156 .byte 37 # DW_FORM_strx1
157 .byte 73 # DW_AT_type
158 .byte 16 # DW_FORM_ref_addr
159 .byte 63 # DW_AT_external
160 .byte 25 # DW_FORM_flag_present
161 .byte 58 # DW_AT_decl_file
162 .byte 11 # DW_FORM_data1
163 .byte 59 # DW_AT_decl_line
164 .byte 11 # DW_FORM_data1
165 .byte 2 # DW_AT_location
166 .byte 24 # DW_FORM_exprloc
167 .byte 0 # EOM(1)
168 .byte 0 # EOM(2)
169 .byte 5 # Abbreviation Code
170 .byte 57 # DW_TAG_namespace
171 .byte 1 # DW_CHILDREN_yes
172 .byte 3 # DW_AT_name
173 .byte 37 # DW_FORM_strx1
174 .byte 0 # EOM(1)
175 .byte 0 # EOM(2)
176 .byte 6 # Abbreviation Code
177 .byte 52 # DW_TAG_variable
178 .byte 0 # DW_CHILDREN_no
179 .byte 3 # DW_AT_name
180 .byte 37 # DW_FORM_strx1
181 .byte 73 # DW_AT_type
182 .byte 16 # DW_FORM_ref_addr
183 .byte 63 # DW_AT_external
184 .byte 25 # DW_FORM_flag_present
185 .byte 58 # DW_AT_decl_file
186 .byte 11 # DW_FORM_data1
187 .byte 59 # DW_AT_decl_line
188 .byte 11 # DW_FORM_data1
189 .byte 2 # DW_AT_location
190 .byte 24 # DW_FORM_exprloc
191 .byte 110 # DW_AT_linkage_name
192 .byte 37 # DW_FORM_strx1
193 .byte 0 # EOM(1)
194 .byte 0 # EOM(2)
195 .byte 0 # EOM(3)
196 .section .debug_info,"",@progbits
197 .Lcu_begin0:
198 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
199 .Ldebug_info_start0:
200 .short 5 # DWARF version number
201 .byte 1 # DWARF Unit Type
202 .byte 8 # Address Size (in bytes)
203 .long .debug_abbrev # Offset Into Abbrev. Section
204 .byte 1 # Abbrev [1] 0xc:0x22 DW_TAG_compile_unit
205 .byte 0 # DW_AT_producer
206 .short 33 # DW_AT_language
207 .byte 1 # DW_AT_name
208 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
209 .long .Lline_table_start0 # DW_AT_stmt_list
210 .byte 2 # DW_AT_comp_dir
211 .long .Laddr_table_base0 # DW_AT_addr_base
212 .byte 2 # Abbrev [2] 0x1e:0xb DW_TAG_variable
213 .byte 3 # DW_AT_name
214 .long 41 # DW_AT_type
215 # DW_AT_external
216 .byte 1 # DW_AT_decl_file
217 .byte 1 # DW_AT_decl_line
218 .byte 2 # DW_AT_location
219 .byte 161
220 .byte 0
221 .byte 3 # Abbrev [3] 0x29:0x4 DW_TAG_base_type
222 .byte 4 # DW_AT_name
223 .byte 5 # DW_AT_encoding
224 .byte 4 # DW_AT_byte_size
225 .byte 0 # End Of Children Mark
226 .Ldebug_info_end0:
227 .Lcu_begin1:
228 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
229 .Ldebug_info_start1:
230 .short 5 # DWARF version number
231 .byte 1 # DWARF Unit Type
232 .byte 8 # Address Size (in bytes)
233 .long .debug_abbrev # Offset Into Abbrev. Section
234 .byte 1 # Abbrev [1] 0xc:0x1e DW_TAG_compile_unit
235 .byte 0 # DW_AT_producer
236 .short 33 # DW_AT_language
237 .byte 5 # DW_AT_name
238 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
239 .long .Lline_table_start0 # DW_AT_stmt_list
240 .byte 2 # DW_AT_comp_dir
241 .long .Laddr_table_base0 # DW_AT_addr_base
242 .byte 4 # Abbrev [4] 0x1e:0xb DW_TAG_variable
243 .byte 6 # DW_AT_name
244 .long .debug_info+41 # DW_AT_type
245 # DW_AT_external
246 .byte 2 # DW_AT_decl_file
247 .byte 1 # DW_AT_decl_line
248 .byte 2 # DW_AT_location
249 .byte 161
250 .byte 1
251 .byte 0 # End Of Children Mark
252 .Ldebug_info_end1:
253 .Lcu_begin2:
254 .long .Ldebug_info_end2-.Ldebug_info_start2 # Length of Unit
255 .Ldebug_info_start2:
256 .short 5 # DWARF version number
257 .byte 1 # DWARF Unit Type
258 .byte 8 # Address Size (in bytes)
259 .long .debug_abbrev # Offset Into Abbrev. Section
260 .byte 1 # Abbrev [1] 0xc:0x22 DW_TAG_compile_unit
261 .byte 0 # DW_AT_producer
262 .short 33 # DW_AT_language
263 .byte 7 # DW_AT_name
264 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
265 .long .Lline_table_start0 # DW_AT_stmt_list
266 .byte 2 # DW_AT_comp_dir
267 .long .Laddr_table_base0 # DW_AT_addr_base
268 .byte 5 # Abbrev [5] 0x1e:0xf DW_TAG_namespace
269 .byte 8 # DW_AT_name
270 .byte 6 # Abbrev [6] 0x20:0xc DW_TAG_variable
271 .byte 9 # DW_AT_name
272 .long .debug_info+41 # DW_AT_type
273 # DW_AT_external
274 .byte 3 # DW_AT_decl_file
275 .byte 2 # DW_AT_decl_line
276 .byte 2 # DW_AT_location
277 .byte 161
278 .byte 2
279 .byte 10 # DW_AT_linkage_name
280 .byte 0 # End Of Children Mark
281 .byte 0 # End Of Children Mark
282 .Ldebug_info_end2:
283 .section .debug_str_offsets,"",@progbits
284 .long 48 # Length of String Offsets Set
285 .short 5
286 .short 0
287 .Lstr_offsets_base0:
288 .section .debug_str,"MS",@progbits,1
289 .Linfo_string0:
290 .byte 0 # string offset=0
291 .Linfo_string1:
292 .asciz "b.cc" # string offset=1
293 .Linfo_string2:
294 .asciz "/proc/self/cwd" # string offset=6
295 .Linfo_string3:
296 .asciz "vb" # string offset=21
297 .Linfo_string4:
298 .asciz "int" # string offset=24
299 .Linfo_string5:
300 .asciz "c.cc" # string offset=28
301 .Linfo_string6:
302 .asciz "vc" # string offset=33
303 .Linfo_string7:
304 .asciz "d.cc" # string offset=36
305 .Linfo_string8:
306 .asciz "ns" # string offset=41
307 .Linfo_string9:
308 .asciz "vd" # string offset=44
309 .Linfo_string10:
310 .asciz "_ZN2ns2vdE" # string offset=47
311 .section .debug_str_offsets,"",@progbits
312 .long .Linfo_string0
313 .long .Linfo_string1
314 .long .Linfo_string2
315 .long .Linfo_string3
316 .long .Linfo_string4
317 .long .Linfo_string5
318 .long .Linfo_string6
319 .long .Linfo_string7
320 .long .Linfo_string8
321 .long .Linfo_string9
322 .long .Linfo_string10
323 .section .debug_addr,"",@progbits
324 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
325 .Ldebug_addr_start0:
326 .short 5 # DWARF version number
327 .byte 8 # Address size
328 .byte 0 # Segment selector size
329 .Laddr_table_base0:
330 .quad vb
331 .quad vc
332 .quad _ZN2ns2vdE
333 .Ldebug_addr_end0:
334 .section .debug_names,"",@progbits
335 .long .Lnames_end0-.Lnames_start0 # Header: unit length
336 .Lnames_start0:
337 .short 5 # Header: version
338 .short 0 # Header: padding
339 .long 3 # Header: compilation unit count
340 .long 0 # Header: local type unit count
341 .long 0 # Header: foreign type unit count
342 .long 6 # Header: bucket count
343 .long 6 # Header: name count
344 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
345 .long 8 # Header: augmentation string size
346 .ascii "LLVM0700" # Header: augmentation string
347 .long .Lcu_begin0 # Compilation unit 0
348 .long .Lcu_begin1 # Compilation unit 1
349 .long .Lcu_begin2 # Compilation unit 2
350 .long 1 # Bucket 0
351 .long 2 # Bucket 1
352 .long 3 # Bucket 2
353 .long 0 # Bucket 3
354 .long 4 # Bucket 4
355 .long 6 # Bucket 5
356 .long 5863902 # Hash in Bucket 0
357 .long 5863903 # Hash in Bucket 1
358 .long 193495088 # Hash in Bucket 2
359 .long 5863654 # Hash in Bucket 4
360 .long -823734096 # Hash in Bucket 4
361 .long 5863901 # Hash in Bucket 5
362 .long .Linfo_string6 # String in Bucket 0: vc
363 .long .Linfo_string9 # String in Bucket 1: vd
364 .long .Linfo_string4 # String in Bucket 2: int
365 .long .Linfo_string8 # String in Bucket 4: ns
366 .long .Linfo_string10 # String in Bucket 4: _ZN2ns2vdE
367 .long .Linfo_string3 # String in Bucket 5: vb
368 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 0
369 .long .Lnames4-.Lnames_entries0 # Offset in Bucket 1
370 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 2
371 .long .Lnames3-.Lnames_entries0 # Offset in Bucket 4
372 .long .Lnames5-.Lnames_entries0 # Offset in Bucket 4
373 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 5
374 .Lnames_abbrev_start0:
375 .byte 1 # Abbrev code
376 .byte 52 # DW_TAG_variable
377 .byte 1 # DW_IDX_compile_unit
378 .byte 11 # DW_FORM_data1
379 .byte 3 # DW_IDX_die_offset
380 .byte 19 # DW_FORM_ref4
381 .byte 4 # DW_IDX_parent
382 .byte 25 # DW_FORM_flag_present
383 .byte 0 # End of abbrev
384 .byte 0 # End of abbrev
385 .byte 2 # Abbrev code
386 .byte 52 # DW_TAG_variable
387 .byte 1 # DW_IDX_compile_unit
388 .byte 11 # DW_FORM_data1
389 .byte 3 # DW_IDX_die_offset
390 .byte 19 # DW_FORM_ref4
391 .byte 4 # DW_IDX_parent
392 .byte 19 # DW_FORM_ref4
393 .byte 0 # End of abbrev
394 .byte 0 # End of abbrev
395 .byte 3 # Abbrev code
396 .byte 36 # DW_TAG_base_type
397 .byte 1 # DW_IDX_compile_unit
398 .byte 11 # DW_FORM_data1
399 .byte 3 # DW_IDX_die_offset
400 .byte 19 # DW_FORM_ref4
401 .byte 4 # DW_IDX_parent
402 .byte 25 # DW_FORM_flag_present
403 .byte 0 # End of abbrev
404 .byte 0 # End of abbrev
405 .byte 4 # Abbrev code
406 .byte 57 # DW_TAG_namespace
407 .byte 1 # DW_IDX_compile_unit
408 .byte 11 # DW_FORM_data1
409 .byte 3 # DW_IDX_die_offset
410 .byte 19 # DW_FORM_ref4
411 .byte 4 # DW_IDX_parent
412 .byte 25 # DW_FORM_flag_present
413 .byte 0 # End of abbrev
414 .byte 0 # End of abbrev
415 .byte 0 # End of abbrev list
416 .Lnames_abbrev_end0:
417 .Lnames_entries0:
418 .Lnames2:
419 .L0:
420 .byte 1 # Abbreviation code
421 .byte 1 # DW_IDX_compile_unit
422 .long 30 # DW_IDX_die_offset
423 .byte 0 # DW_IDX_parent
424 # End of list: vc
425 .Lnames4:
426 .L4:
427 .byte 2 # Abbreviation code
428 .byte 2 # DW_IDX_compile_unit
429 .long 32 # DW_IDX_die_offset
430 .long .L2-.Lnames_entries0 # DW_IDX_parent
431 .byte 0 # End of list: vd
432 .Lnames0:
433 .L3:
434 .byte 3 # Abbreviation code
435 .byte 0 # DW_IDX_compile_unit
436 .long 41 # DW_IDX_die_offset
437 .byte 0 # DW_IDX_parent
438 # End of list: int
439 .Lnames3:
440 .L2:
441 .byte 4 # Abbreviation code
442 .byte 2 # DW_IDX_compile_unit
443 .long 30 # DW_IDX_die_offset
444 .byte 0 # DW_IDX_parent
445 # End of list: ns
446 .Lnames5:
447 .byte 2 # Abbreviation code
448 .byte 2 # DW_IDX_compile_unit
449 .long 32 # DW_IDX_die_offset
450 .long .L2-.Lnames_entries0 # DW_IDX_parent
451 .byte 0 # End of list: _ZN2ns2vdE
452 .Lnames1:
453 .L1:
454 .byte 1 # Abbreviation code
455 .byte 0 # DW_IDX_compile_unit
456 .long 30 # DW_IDX_die_offset
457 .byte 0 # DW_IDX_parent
458 # End of list: vb
459 .p2align 2, 0x0
460 .Lnames_end0:
461 .section ".note.GNU-stack","",@progbits
462 .addrsig
463 .addrsig_sym vb
464 .addrsig_sym vc
465 .addrsig_sym _ZN2ns2vdE
466 .section .debug_line,"",@progbits
467 .Lline_table_start0:
468 #--- ef.s
469 .text
470 .file "ld-temp.o"
471 .file 1 "/proc/self/cwd" "e.cc" md5 0xa8d6c645998197bd15436f2a351ebd6a
472 .file 2 "/proc/self/cwd" "f.cc" md5 0x6ec1ec6b7f003f84cb0bf3409e65b085
473 .type ve,@object # @ve
474 .section .bss.ve,"aw",@nobits
475 .globl ve
476 .p2align 2, 0x0
478 .long 0 # 0x0
479 .size ve, 4
481 .type _ZN2ns2vfE,@object # @_ZN2ns2vfE
482 .section .bss._ZN2ns2vfE,"aw",@nobits
483 .globl _ZN2ns2vfE
484 .p2align 2, 0x0
485 _ZN2ns2vfE:
486 .long 0 # 0x0
487 .size _ZN2ns2vfE, 4
489 .section .debug_abbrev,"",@progbits
490 .byte 1 # Abbreviation Code
491 .byte 17 # DW_TAG_compile_unit
492 .byte 1 # DW_CHILDREN_yes
493 .byte 37 # DW_AT_producer
494 .byte 37 # DW_FORM_strx1
495 .byte 19 # DW_AT_language
496 .byte 5 # DW_FORM_data2
497 .byte 3 # DW_AT_name
498 .byte 37 # DW_FORM_strx1
499 .byte 114 # DW_AT_str_offsets_base
500 .byte 23 # DW_FORM_sec_offset
501 .byte 16 # DW_AT_stmt_list
502 .byte 23 # DW_FORM_sec_offset
503 .byte 27 # DW_AT_comp_dir
504 .byte 37 # DW_FORM_strx1
505 .byte 115 # DW_AT_addr_base
506 .byte 23 # DW_FORM_sec_offset
507 .byte 0 # EOM(1)
508 .byte 0 # EOM(2)
509 .byte 2 # Abbreviation Code
510 .byte 52 # DW_TAG_variable
511 .byte 0 # DW_CHILDREN_no
512 .byte 3 # DW_AT_name
513 .byte 37 # DW_FORM_strx1
514 .byte 73 # DW_AT_type
515 .byte 19 # DW_FORM_ref4
516 .byte 63 # DW_AT_external
517 .byte 25 # DW_FORM_flag_present
518 .byte 58 # DW_AT_decl_file
519 .byte 11 # DW_FORM_data1
520 .byte 59 # DW_AT_decl_line
521 .byte 11 # DW_FORM_data1
522 .byte 2 # DW_AT_location
523 .byte 24 # DW_FORM_exprloc
524 .byte 0 # EOM(1)
525 .byte 0 # EOM(2)
526 .byte 3 # Abbreviation Code
527 .byte 36 # DW_TAG_base_type
528 .byte 0 # DW_CHILDREN_no
529 .byte 3 # DW_AT_name
530 .byte 37 # DW_FORM_strx1
531 .byte 62 # DW_AT_encoding
532 .byte 11 # DW_FORM_data1
533 .byte 11 # DW_AT_byte_size
534 .byte 11 # DW_FORM_data1
535 .byte 0 # EOM(1)
536 .byte 0 # EOM(2)
537 .byte 4 # Abbreviation Code
538 .byte 57 # DW_TAG_namespace
539 .byte 1 # DW_CHILDREN_yes
540 .byte 3 # DW_AT_name
541 .byte 37 # DW_FORM_strx1
542 .byte 0 # EOM(1)
543 .byte 0 # EOM(2)
544 .byte 5 # Abbreviation Code
545 .byte 52 # DW_TAG_variable
546 .byte 0 # DW_CHILDREN_no
547 .byte 3 # DW_AT_name
548 .byte 37 # DW_FORM_strx1
549 .byte 73 # DW_AT_type
550 .byte 16 # DW_FORM_ref_addr
551 .byte 63 # DW_AT_external
552 .byte 25 # DW_FORM_flag_present
553 .byte 58 # DW_AT_decl_file
554 .byte 11 # DW_FORM_data1
555 .byte 59 # DW_AT_decl_line
556 .byte 11 # DW_FORM_data1
557 .byte 2 # DW_AT_location
558 .byte 24 # DW_FORM_exprloc
559 .byte 110 # DW_AT_linkage_name
560 .byte 37 # DW_FORM_strx1
561 .byte 0 # EOM(1)
562 .byte 0 # EOM(2)
563 .byte 0 # EOM(3)
564 .section .debug_info,"",@progbits
565 .Lcu_begin0:
566 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
567 .Ldebug_info_start0:
568 .short 5 # DWARF version number
569 .byte 1 # DWARF Unit Type
570 .byte 8 # Address Size (in bytes)
571 .long .debug_abbrev # Offset Into Abbrev. Section
572 .byte 1 # Abbrev [1] 0xc:0x22 DW_TAG_compile_unit
573 .byte 0 # DW_AT_producer
574 .short 33 # DW_AT_language
575 .byte 1 # DW_AT_name
576 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
577 .long .Lline_table_start0 # DW_AT_stmt_list
578 .byte 2 # DW_AT_comp_dir
579 .long .Laddr_table_base0 # DW_AT_addr_base
580 .byte 2 # Abbrev [2] 0x1e:0xb DW_TAG_variable
581 .byte 3 # DW_AT_name
582 .long 41 # DW_AT_type
583 # DW_AT_external
584 .byte 1 # DW_AT_decl_file
585 .byte 1 # DW_AT_decl_line
586 .byte 2 # DW_AT_location
587 .byte 161
588 .byte 0
589 .byte 3 # Abbrev [3] 0x29:0x4 DW_TAG_base_type
590 .byte 4 # DW_AT_name
591 .byte 5 # DW_AT_encoding
592 .byte 4 # DW_AT_byte_size
593 .byte 0 # End Of Children Mark
594 .Ldebug_info_end0:
595 .Lcu_begin1:
596 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
597 .Ldebug_info_start1:
598 .short 5 # DWARF version number
599 .byte 1 # DWARF Unit Type
600 .byte 8 # Address Size (in bytes)
601 .long .debug_abbrev # Offset Into Abbrev. Section
602 .byte 1 # Abbrev [1] 0xc:0x22 DW_TAG_compile_unit
603 .byte 0 # DW_AT_producer
604 .short 33 # DW_AT_language
605 .byte 5 # DW_AT_name
606 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
607 .long .Lline_table_start0 # DW_AT_stmt_list
608 .byte 2 # DW_AT_comp_dir
609 .long .Laddr_table_base0 # DW_AT_addr_base
610 .byte 4 # Abbrev [4] 0x1e:0xf DW_TAG_namespace
611 .byte 6 # DW_AT_name
612 .byte 5 # Abbrev [5] 0x20:0xc DW_TAG_variable
613 .byte 7 # DW_AT_name
614 .long .debug_info+41 # DW_AT_type
615 # DW_AT_external
616 .byte 2 # DW_AT_decl_file
617 .byte 2 # DW_AT_decl_line
618 .byte 2 # DW_AT_location
619 .byte 161
620 .byte 1
621 .byte 8 # DW_AT_linkage_name
622 .byte 0 # End Of Children Mark
623 .byte 0 # End Of Children Mark
624 .Ldebug_info_end1:
625 .section .debug_str_offsets,"",@progbits
626 .long 40 # Length of String Offsets Set
627 .short 5
628 .short 0
629 .Lstr_offsets_base0:
630 .section .debug_str,"MS",@progbits,1
631 .Linfo_string0:
632 .byte 0 # string offset=0
633 .Linfo_string1:
634 .asciz "e.cc" # string offset=1
635 .Linfo_string2:
636 .asciz "/proc/self/cwd" # string offset=6
637 .Linfo_string3:
638 .asciz "ve" # string offset=21
639 .Linfo_string4:
640 .asciz "int" # string offset=24
641 .Linfo_string5:
642 .asciz "f.cc" # string offset=28
643 .Linfo_string6:
644 .asciz "ns" # string offset=33
645 .Linfo_string7:
646 .asciz "vf" # string offset=36
647 .Linfo_string8:
648 .asciz "_ZN2ns2vfE" # string offset=39
649 .section .debug_str_offsets,"",@progbits
650 .long .Linfo_string0
651 .long .Linfo_string1
652 .long .Linfo_string2
653 .long .Linfo_string3
654 .long .Linfo_string4
655 .long .Linfo_string5
656 .long .Linfo_string6
657 .long .Linfo_string7
658 .long .Linfo_string8
659 .section .debug_addr,"",@progbits
660 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
661 .Ldebug_addr_start0:
662 .short 5 # DWARF version number
663 .byte 8 # Address size
664 .byte 0 # Segment selector size
665 .Laddr_table_base0:
666 .quad ve
667 .quad _ZN2ns2vfE
668 .Ldebug_addr_end0:
669 .section .debug_names,"",@progbits
670 .long .Lnames_end0-.Lnames_start0 # Header: unit length
671 .Lnames_start0:
672 .short 5 # Header: version
673 .short 0 # Header: padding
674 .long 2 # Header: compilation unit count
675 .long 0 # Header: local type unit count
676 .long 0 # Header: foreign type unit count
677 .long 5 # Header: bucket count
678 .long 5 # Header: name count
679 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
680 .long 8 # Header: augmentation string size
681 .ascii "LLVM0700" # Header: augmentation string
682 .long .Lcu_begin0 # Compilation unit 0
683 .long .Lcu_begin1 # Compilation unit 1
684 .long 1 # Bucket 0
685 .long 2 # Bucket 1
686 .long 0 # Bucket 2
687 .long 3 # Bucket 3
688 .long 4 # Bucket 4
689 .long 5863905 # Hash in Bucket 0
690 .long -823734030 # Hash in Bucket 1
691 .long 193495088 # Hash in Bucket 3
692 .long 5863654 # Hash in Bucket 4
693 .long 5863904 # Hash in Bucket 4
694 .long .Linfo_string7 # String in Bucket 0: vf
695 .long .Linfo_string8 # String in Bucket 1: _ZN2ns2vfE
696 .long .Linfo_string4 # String in Bucket 3: int
697 .long .Linfo_string6 # String in Bucket 4: ns
698 .long .Linfo_string3 # String in Bucket 4: ve
699 .long .Lnames3-.Lnames_entries0 # Offset in Bucket 0
700 .long .Lnames4-.Lnames_entries0 # Offset in Bucket 1
701 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 3
702 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 4
703 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 4
704 .Lnames_abbrev_start0:
705 .byte 1 # Abbrev code
706 .byte 52 # DW_TAG_variable
707 .byte 1 # DW_IDX_compile_unit
708 .byte 11 # DW_FORM_data1
709 .byte 3 # DW_IDX_die_offset
710 .byte 19 # DW_FORM_ref4
711 .byte 4 # DW_IDX_parent
712 .byte 19 # DW_FORM_ref4
713 .byte 0 # End of abbrev
714 .byte 0 # End of abbrev
715 .byte 2 # Abbrev code
716 .byte 36 # DW_TAG_base_type
717 .byte 1 # DW_IDX_compile_unit
718 .byte 11 # DW_FORM_data1
719 .byte 3 # DW_IDX_die_offset
720 .byte 19 # DW_FORM_ref4
721 .byte 4 # DW_IDX_parent
722 .byte 25 # DW_FORM_flag_present
723 .byte 0 # End of abbrev
724 .byte 0 # End of abbrev
725 .byte 3 # Abbrev code
726 .byte 57 # DW_TAG_namespace
727 .byte 1 # DW_IDX_compile_unit
728 .byte 11 # DW_FORM_data1
729 .byte 3 # DW_IDX_die_offset
730 .byte 19 # DW_FORM_ref4
731 .byte 4 # DW_IDX_parent
732 .byte 25 # DW_FORM_flag_present
733 .byte 0 # End of abbrev
734 .byte 0 # End of abbrev
735 .byte 4 # Abbrev code
736 .byte 52 # DW_TAG_variable
737 .byte 1 # DW_IDX_compile_unit
738 .byte 11 # DW_FORM_data1
739 .byte 3 # DW_IDX_die_offset
740 .byte 19 # DW_FORM_ref4
741 .byte 4 # DW_IDX_parent
742 .byte 25 # DW_FORM_flag_present
743 .byte 0 # End of abbrev
744 .byte 0 # End of abbrev
745 .byte 0 # End of abbrev list
746 .Lnames_abbrev_end0:
747 .Lnames_entries0:
748 .Lnames3:
749 .L2:
750 .byte 1 # Abbreviation code
751 .byte 1 # DW_IDX_compile_unit
752 .long 32 # DW_IDX_die_offset
753 .long .L0-.Lnames_entries0 # DW_IDX_parent
754 .byte 0 # End of list: vf
755 .Lnames4:
756 .byte 1 # Abbreviation code
757 .byte 1 # DW_IDX_compile_unit
758 .long 32 # DW_IDX_die_offset
759 .long .L0-.Lnames_entries0 # DW_IDX_parent
760 .byte 0 # End of list: _ZN2ns2vfE
761 .Lnames0:
762 .L3:
763 .byte 2 # Abbreviation code
764 .byte 0 # DW_IDX_compile_unit
765 .long 41 # DW_IDX_die_offset
766 .byte 0 # DW_IDX_parent
767 # End of list: int
768 .Lnames2:
769 .L0:
770 .byte 3 # Abbreviation code
771 .byte 1 # DW_IDX_compile_unit
772 .long 30 # DW_IDX_die_offset
773 .byte 0 # DW_IDX_parent
774 # End of list: ns
775 .Lnames1:
776 .L1:
777 .byte 4 # Abbreviation code
778 .byte 0 # DW_IDX_compile_unit
779 .long 30 # DW_IDX_die_offset
780 .byte 0 # DW_IDX_parent
781 # End of list: ve
782 .p2align 2, 0x0
783 .Lnames_end0:
784 .section ".note.GNU-stack","",@progbits
785 .addrsig
786 .addrsig_sym ve
787 .addrsig_sym _ZN2ns2vfE
788 .section .debug_line,"",@progbits
789 .Lline_table_start0: