xref: /llvm-project/lld/test/ELF/debug-names-multi-cus.s (revision 16711b431b843dd2143d38fdf6b0591dfb1783e0)
1# REQUIRES: x86
2## Test name indexes that contain multiple CU offsets due to LTO.
3
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
10
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
15
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
48
49.ifdef GEN
50#--- b.cc
51[[gnu::used]] int vb;
52#--- c.cc
53[[gnu::used]] int vc;
54#--- d.cc
55namespace ns {
56[[gnu::used]] int vd;
57}
58
59//--- e.cc
60[[gnu::used]] int ve;
61//--- f.cc
62namespace ns {
63[[gnu::used]] int vf;
64}
65
66#--- gen
67clang --target=x86_64-linux -O1 -g -gpubnames -flto b.cc c.cc d.cc -nostdlib -fuse-ld=lld -Wl,--lto-emit-asm
68echo '#--- bcd.s'
69cat a.out.lto.s
70clang --target=x86_64-linux -O1 -g -gpubnames -flto e.cc f.cc -nostdlib -fuse-ld=lld -Wl,--lto-emit-asm
71echo '#--- ef.s'
72cat 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
84vb:
85	.long	0                               # 0x0
86	.size	vb, 4
87
88	.type	vc,@object                      # @vc
89	.section	.bss.vc,"aw",@nobits
90	.globl	vc
91	.p2align	2, 0x0
92vc:
93	.long	0                               # 0x0
94	.size	vc, 4
95
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
103
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
477ve:
478	.long	0                               # 0x0
479	.size	ve, 4
480
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
488
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:
790