xref: /llvm-project/bolt/test/X86/Inputs/dwarf5-df-debug-names-main.s (revision 6de5fcc74637116581d7b9b39c16fc252a5a54ef)
1# clang++ -gsplit-dwarf -g2 -gdwarf-5 -gpubnames -fdebug-compilation-dir='.'
2# header.h
3# struct Foo2a {
4#   char *c1;
5#   char *c2;
6#   char *c3;
7# };
8# main.cpp
9# #include "header.h"
10# struct Foo2 {
11#  char *c1;
12# };
13# int main(int argc, char *argv[]) {
14#  Foo2 f2;
15#  Foo2a f3;
16#  return 0;
17# }
18
19	.text
20	.file	"main.cpp"
21	.globl	main                            # -- Begin function main
22	.p2align	4, 0x90
23	.type	main,@function
24main:                                   # @main
25.Lfunc_begin0:
26	.file	0 "." "main.cpp" md5 0x9c5cea5bb78d3fc265cd175110bfe903
27	.loc	0 5 0                           # main.cpp:5:0
28	.cfi_startproc
29# %bb.0:                                # %entry
30	pushq	%rbp
31	.cfi_def_cfa_offset 16
32	.cfi_offset %rbp, -16
33	movq	%rsp, %rbp
34	.cfi_def_cfa_register %rbp
35	movl	$0, -4(%rbp)
36	movl	%edi, -8(%rbp)
37	movq	%rsi, -16(%rbp)
38.Ltmp0:
39	.loc	0 8 2 prologue_end              # main.cpp:8:2
40	xorl	%eax, %eax
41	.loc	0 8 2 epilogue_begin is_stmt 0  # main.cpp:8:2
42	popq	%rbp
43	.cfi_def_cfa %rsp, 8
44	retq
45.Ltmp1:
46.Lfunc_end0:
47	.size	main, .Lfunc_end0-main
48	.cfi_endproc
49                                        # -- End function
50	.file	1 "." "header.h" md5 0xfea7bb1f22c47f129e15695f7137a1e7
51	.section	.debug_abbrev,"",@progbits
52	.byte	1                               # Abbreviation Code
53	.byte	74                              # DW_TAG_skeleton_unit
54	.byte	0                               # DW_CHILDREN_no
55	.byte	16                              # DW_AT_stmt_list
56	.byte	23                              # DW_FORM_sec_offset
57	.byte	114                             # DW_AT_str_offsets_base
58	.byte	23                              # DW_FORM_sec_offset
59	.byte	27                              # DW_AT_comp_dir
60	.byte	37                              # DW_FORM_strx1
61	.byte	118                             # DW_AT_dwo_name
62	.byte	37                              # DW_FORM_strx1
63	.byte	17                              # DW_AT_low_pc
64	.byte	27                              # DW_FORM_addrx
65	.byte	18                              # DW_AT_high_pc
66	.byte	6                               # DW_FORM_data4
67	.byte	115                             # DW_AT_addr_base
68	.byte	23                              # DW_FORM_sec_offset
69	.byte	0                               # EOM(1)
70	.byte	0                               # EOM(2)
71	.byte	0                               # EOM(3)
72	.section	.debug_info,"",@progbits
73.Lcu_begin0:
74	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
75.Ldebug_info_start0:
76	.short	5                               # DWARF version number
77	.byte	4                               # DWARF Unit Type
78	.byte	8                               # Address Size (in bytes)
79	.long	.debug_abbrev                   # Offset Into Abbrev. Section
80	.quad	-5618023701701543936
81	.byte	1                               # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
82	.long	.Lline_table_start0             # DW_AT_stmt_list
83	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
84	.byte	0                               # DW_AT_comp_dir
85	.byte	1                               # DW_AT_dwo_name
86	.byte	0                               # DW_AT_low_pc
87	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
88	.long	.Laddr_table_base0              # DW_AT_addr_base
89.Ldebug_info_end0:
90	.section	.debug_str_offsets,"",@progbits
91	.long	12                              # Length of String Offsets Set
92	.short	5
93	.short	0
94.Lstr_offsets_base0:
95	.section	.debug_str,"MS",@progbits,1
96.Lskel_string0:
97	.asciz	"."                             # string offset=0
98.Lskel_string1:
99	.asciz	"main"                          # string offset=2
100.Lskel_string2:
101	.asciz	"int"                           # string offset=7
102.Lskel_string3:
103	.asciz	"char"                          # string offset=11
104.Lskel_string4:
105	.asciz	"Foo2"                          # string offset=16
106.Lskel_string5:
107	.asciz	"Foo2a"                         # string offset=21
108.Lskel_string6:
109	.asciz	"main.dwo"                      # string offset=27
110	.section	.debug_str_offsets,"",@progbits
111	.long	.Lskel_string0
112	.long	.Lskel_string6
113	.section	.debug_str_offsets.dwo,"e",@progbits
114	.long	64                              # Length of String Offsets Set
115	.short	5
116	.short	0
117	.section	.debug_str.dwo,"eMS",@progbits,1
118.Linfo_string0:
119	.asciz	"main"                          # string offset=0
120.Linfo_string1:
121	.asciz	"int"                           # string offset=5
122.Linfo_string2:
123	.asciz	"argc"                          # string offset=9
124.Linfo_string3:
125	.asciz	"argv"                          # string offset=14
126.Linfo_string4:
127	.asciz	"char"                          # string offset=19
128.Linfo_string5:
129	.asciz	"f2"                            # string offset=24
130.Linfo_string6:
131	.asciz	"c1"                            # string offset=27
132.Linfo_string7:
133	.asciz	"Foo2"                          # string offset=30
134.Linfo_string8:
135	.asciz	"f3"                            # string offset=35
136.Linfo_string9:
137	.asciz	"c2"                            # string offset=38
138.Linfo_string10:
139	.asciz	"c3"                            # string offset=41
140.Linfo_string11:
141	.asciz	"Foo2a"                         # string offset=44
142.Linfo_string12:
143	.asciz	"clang version 19.0.0git (git@github.com:ayermolo/llvm-project.git da9e9277be64deca73370a90d22af33e5b37cc52)" # string offset=50
144.Linfo_string13:
145	.asciz	"main.cpp"                      # string offset=158
146.Linfo_string14:
147	.asciz	"main.dwo"                      # string offset=167
148	.section	.debug_str_offsets.dwo,"e",@progbits
149	.long	0
150	.long	5
151	.long	9
152	.long	14
153	.long	19
154	.long	24
155	.long	27
156	.long	30
157	.long	35
158	.long	38
159	.long	41
160	.long	44
161	.long	50
162	.long	158
163	.long	167
164	.section	.debug_info.dwo,"e",@progbits
165	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
166.Ldebug_info_dwo_start0:
167	.short	5                               # DWARF version number
168	.byte	5                               # DWARF Unit Type
169	.byte	8                               # Address Size (in bytes)
170	.long	0                               # Offset Into Abbrev. Section
171	.quad	-5618023701701543936
172	.byte	1                               # Abbrev [1] 0x14:0x87 DW_TAG_compile_unit
173	.byte	12                              # DW_AT_producer
174	.short	33                              # DW_AT_language
175	.byte	13                              # DW_AT_name
176	.byte	14                              # DW_AT_dwo_name
177	.byte	2                               # Abbrev [2] 0x1a:0x3c DW_TAG_subprogram
178	.byte	0                               # DW_AT_low_pc
179	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
180	.byte	1                               # DW_AT_frame_base
181	.byte	86
182	.byte	0                               # DW_AT_name
183	.byte	0                               # DW_AT_decl_file
184	.byte	5                               # DW_AT_decl_line
185	.long	86                              # DW_AT_type
186                                        # DW_AT_external
187	.byte	3                               # Abbrev [3] 0x29:0xb DW_TAG_formal_parameter
188	.byte	2                               # DW_AT_location
189	.byte	145
190	.byte	120
191	.byte	2                               # DW_AT_name
192	.byte	0                               # DW_AT_decl_file
193	.byte	5                               # DW_AT_decl_line
194	.long	86                              # DW_AT_type
195	.byte	3                               # Abbrev [3] 0x34:0xb DW_TAG_formal_parameter
196	.byte	2                               # DW_AT_location
197	.byte	145
198	.byte	112
199	.byte	3                               # DW_AT_name
200	.byte	0                               # DW_AT_decl_file
201	.byte	5                               # DW_AT_decl_line
202	.long	90                              # DW_AT_type
203	.byte	4                               # Abbrev [4] 0x3f:0xb DW_TAG_variable
204	.byte	2                               # DW_AT_location
205	.byte	145
206	.byte	104
207	.byte	5                               # DW_AT_name
208	.byte	0                               # DW_AT_decl_file
209	.byte	6                               # DW_AT_decl_line
210	.long	104                             # DW_AT_type
211	.byte	4                               # Abbrev [4] 0x4a:0xb DW_TAG_variable
212	.byte	2                               # DW_AT_location
213	.byte	145
214	.byte	80
215	.byte	8                               # DW_AT_name
216	.byte	0                               # DW_AT_decl_file
217	.byte	7                               # DW_AT_decl_line
218	.long	120                             # DW_AT_type
219	.byte	0                               # End Of Children Mark
220	.byte	5                               # Abbrev [5] 0x56:0x4 DW_TAG_base_type
221	.byte	1                               # DW_AT_name
222	.byte	5                               # DW_AT_encoding
223	.byte	4                               # DW_AT_byte_size
224	.byte	6                               # Abbrev [6] 0x5a:0x5 DW_TAG_pointer_type
225	.long	95                              # DW_AT_type
226	.byte	6                               # Abbrev [6] 0x5f:0x5 DW_TAG_pointer_type
227	.long	100                             # DW_AT_type
228	.byte	5                               # Abbrev [5] 0x64:0x4 DW_TAG_base_type
229	.byte	4                               # DW_AT_name
230	.byte	6                               # DW_AT_encoding
231	.byte	1                               # DW_AT_byte_size
232	.byte	7                               # Abbrev [7] 0x68:0x10 DW_TAG_structure_type
233	.byte	5                               # DW_AT_calling_convention
234	.byte	7                               # DW_AT_name
235	.byte	8                               # DW_AT_byte_size
236	.byte	0                               # DW_AT_decl_file
237	.byte	2                               # DW_AT_decl_line
238	.byte	8                               # Abbrev [8] 0x6e:0x9 DW_TAG_member
239	.byte	6                               # DW_AT_name
240	.long	95                              # DW_AT_type
241	.byte	0                               # DW_AT_decl_file
242	.byte	3                               # DW_AT_decl_line
243	.byte	0                               # DW_AT_data_member_location
244	.byte	0                               # End Of Children Mark
245	.byte	7                               # Abbrev [7] 0x78:0x22 DW_TAG_structure_type
246	.byte	5                               # DW_AT_calling_convention
247	.byte	11                              # DW_AT_name
248	.byte	24                              # DW_AT_byte_size
249	.byte	1                               # DW_AT_decl_file
250	.byte	1                               # DW_AT_decl_line
251	.byte	8                               # Abbrev [8] 0x7e:0x9 DW_TAG_member
252	.byte	6                               # DW_AT_name
253	.long	95                              # DW_AT_type
254	.byte	1                               # DW_AT_decl_file
255	.byte	2                               # DW_AT_decl_line
256	.byte	0                               # DW_AT_data_member_location
257	.byte	8                               # Abbrev [8] 0x87:0x9 DW_TAG_member
258	.byte	9                               # DW_AT_name
259	.long	95                              # DW_AT_type
260	.byte	1                               # DW_AT_decl_file
261	.byte	3                               # DW_AT_decl_line
262	.byte	8                               # DW_AT_data_member_location
263	.byte	8                               # Abbrev [8] 0x90:0x9 DW_TAG_member
264	.byte	10                              # DW_AT_name
265	.long	95                              # DW_AT_type
266	.byte	1                               # DW_AT_decl_file
267	.byte	4                               # DW_AT_decl_line
268	.byte	16                              # DW_AT_data_member_location
269	.byte	0                               # End Of Children Mark
270	.byte	0                               # End Of Children Mark
271.Ldebug_info_dwo_end0:
272	.section	.debug_abbrev.dwo,"e",@progbits
273	.byte	1                               # Abbreviation Code
274	.byte	17                              # DW_TAG_compile_unit
275	.byte	1                               # DW_CHILDREN_yes
276	.byte	37                              # DW_AT_producer
277	.byte	37                              # DW_FORM_strx1
278	.byte	19                              # DW_AT_language
279	.byte	5                               # DW_FORM_data2
280	.byte	3                               # DW_AT_name
281	.byte	37                              # DW_FORM_strx1
282	.byte	118                             # DW_AT_dwo_name
283	.byte	37                              # DW_FORM_strx1
284	.byte	0                               # EOM(1)
285	.byte	0                               # EOM(2)
286	.byte	2                               # Abbreviation Code
287	.byte	46                              # DW_TAG_subprogram
288	.byte	1                               # DW_CHILDREN_yes
289	.byte	17                              # DW_AT_low_pc
290	.byte	27                              # DW_FORM_addrx
291	.byte	18                              # DW_AT_high_pc
292	.byte	6                               # DW_FORM_data4
293	.byte	64                              # DW_AT_frame_base
294	.byte	24                              # DW_FORM_exprloc
295	.byte	3                               # DW_AT_name
296	.byte	37                              # DW_FORM_strx1
297	.byte	58                              # DW_AT_decl_file
298	.byte	11                              # DW_FORM_data1
299	.byte	59                              # DW_AT_decl_line
300	.byte	11                              # DW_FORM_data1
301	.byte	73                              # DW_AT_type
302	.byte	19                              # DW_FORM_ref4
303	.byte	63                              # DW_AT_external
304	.byte	25                              # DW_FORM_flag_present
305	.byte	0                               # EOM(1)
306	.byte	0                               # EOM(2)
307	.byte	3                               # Abbreviation Code
308	.byte	5                               # DW_TAG_formal_parameter
309	.byte	0                               # DW_CHILDREN_no
310	.byte	2                               # DW_AT_location
311	.byte	24                              # DW_FORM_exprloc
312	.byte	3                               # DW_AT_name
313	.byte	37                              # DW_FORM_strx1
314	.byte	58                              # DW_AT_decl_file
315	.byte	11                              # DW_FORM_data1
316	.byte	59                              # DW_AT_decl_line
317	.byte	11                              # DW_FORM_data1
318	.byte	73                              # DW_AT_type
319	.byte	19                              # DW_FORM_ref4
320	.byte	0                               # EOM(1)
321	.byte	0                               # EOM(2)
322	.byte	4                               # Abbreviation Code
323	.byte	52                              # DW_TAG_variable
324	.byte	0                               # DW_CHILDREN_no
325	.byte	2                               # DW_AT_location
326	.byte	24                              # DW_FORM_exprloc
327	.byte	3                               # DW_AT_name
328	.byte	37                              # DW_FORM_strx1
329	.byte	58                              # DW_AT_decl_file
330	.byte	11                              # DW_FORM_data1
331	.byte	59                              # DW_AT_decl_line
332	.byte	11                              # DW_FORM_data1
333	.byte	73                              # DW_AT_type
334	.byte	19                              # DW_FORM_ref4
335	.byte	0                               # EOM(1)
336	.byte	0                               # EOM(2)
337	.byte	5                               # Abbreviation Code
338	.byte	36                              # DW_TAG_base_type
339	.byte	0                               # DW_CHILDREN_no
340	.byte	3                               # DW_AT_name
341	.byte	37                              # DW_FORM_strx1
342	.byte	62                              # DW_AT_encoding
343	.byte	11                              # DW_FORM_data1
344	.byte	11                              # DW_AT_byte_size
345	.byte	11                              # DW_FORM_data1
346	.byte	0                               # EOM(1)
347	.byte	0                               # EOM(2)
348	.byte	6                               # Abbreviation Code
349	.byte	15                              # DW_TAG_pointer_type
350	.byte	0                               # DW_CHILDREN_no
351	.byte	73                              # DW_AT_type
352	.byte	19                              # DW_FORM_ref4
353	.byte	0                               # EOM(1)
354	.byte	0                               # EOM(2)
355	.byte	7                               # Abbreviation Code
356	.byte	19                              # DW_TAG_structure_type
357	.byte	1                               # DW_CHILDREN_yes
358	.byte	54                              # DW_AT_calling_convention
359	.byte	11                              # DW_FORM_data1
360	.byte	3                               # DW_AT_name
361	.byte	37                              # DW_FORM_strx1
362	.byte	11                              # DW_AT_byte_size
363	.byte	11                              # DW_FORM_data1
364	.byte	58                              # DW_AT_decl_file
365	.byte	11                              # DW_FORM_data1
366	.byte	59                              # DW_AT_decl_line
367	.byte	11                              # DW_FORM_data1
368	.byte	0                               # EOM(1)
369	.byte	0                               # EOM(2)
370	.byte	8                               # Abbreviation Code
371	.byte	13                              # DW_TAG_member
372	.byte	0                               # DW_CHILDREN_no
373	.byte	3                               # DW_AT_name
374	.byte	37                              # DW_FORM_strx1
375	.byte	73                              # DW_AT_type
376	.byte	19                              # DW_FORM_ref4
377	.byte	58                              # DW_AT_decl_file
378	.byte	11                              # DW_FORM_data1
379	.byte	59                              # DW_AT_decl_line
380	.byte	11                              # DW_FORM_data1
381	.byte	56                              # DW_AT_data_member_location
382	.byte	11                              # DW_FORM_data1
383	.byte	0                               # EOM(1)
384	.byte	0                               # EOM(2)
385	.byte	0                               # EOM(3)
386	.section	.debug_addr,"",@progbits
387	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
388.Ldebug_addr_start0:
389	.short	5                               # DWARF version number
390	.byte	8                               # Address size
391	.byte	0                               # Segment selector size
392.Laddr_table_base0:
393	.quad	.Lfunc_begin0
394.Ldebug_addr_end0:
395	.section	.debug_names,"",@progbits
396	.long	.Lnames_end0-.Lnames_start0     # Header: unit length
397.Lnames_start0:
398	.short	5                               # Header: version
399	.short	0                               # Header: padding
400	.long	1                               # Header: compilation unit count
401	.long	0                               # Header: local type unit count
402	.long	0                               # Header: foreign type unit count
403	.long	5                               # Header: bucket count
404	.long	5                               # Header: name count
405	.long	.Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
406	.long	8                               # Header: augmentation string size
407	.ascii	"LLVM0700"                      # Header: augmentation string
408	.long	.Lcu_begin0                     # Compilation unit 0
409	.long	0                               # Bucket 0
410	.long	1                               # Bucket 1
411	.long	0                               # Bucket 2
412	.long	3                               # Bucket 3
413	.long	4                               # Bucket 4
414	.long	2090263771                      # Hash in Bucket 1
415	.long	2090499946                      # Hash in Bucket 1
416	.long	193495088                       # Hash in Bucket 3
417	.long	259227804                       # Hash in Bucket 4
418	.long	2090147939                      # Hash in Bucket 4
419	.long	.Lskel_string4                  # String in Bucket 1: Foo2
420	.long	.Lskel_string1                  # String in Bucket 1: main
421	.long	.Lskel_string2                  # String in Bucket 3: int
422	.long	.Lskel_string5                  # String in Bucket 4: Foo2a
423	.long	.Lskel_string3                  # String in Bucket 4: char
424	.long	.Lnames3-.Lnames_entries0       # Offset in Bucket 1
425	.long	.Lnames0-.Lnames_entries0       # Offset in Bucket 1
426	.long	.Lnames1-.Lnames_entries0       # Offset in Bucket 3
427	.long	.Lnames4-.Lnames_entries0       # Offset in Bucket 4
428	.long	.Lnames2-.Lnames_entries0       # Offset in Bucket 4
429.Lnames_abbrev_start0:
430	.ascii	"\230\023"                      # Abbrev code
431	.byte	19                              # DW_TAG_structure_type
432	.byte	3                               # DW_IDX_die_offset
433	.byte	19                              # DW_FORM_ref4
434	.byte	4                               # DW_IDX_parent
435	.byte	25                              # DW_FORM_flag_present
436	.byte	0                               # End of abbrev
437	.byte	0                               # End of abbrev
438	.ascii	"\230."                         # Abbrev code
439	.byte	46                              # DW_TAG_subprogram
440	.byte	3                               # DW_IDX_die_offset
441	.byte	19                              # DW_FORM_ref4
442	.byte	4                               # DW_IDX_parent
443	.byte	25                              # DW_FORM_flag_present
444	.byte	0                               # End of abbrev
445	.byte	0                               # End of abbrev
446	.ascii	"\230$"                         # Abbrev code
447	.byte	36                              # DW_TAG_base_type
448	.byte	3                               # DW_IDX_die_offset
449	.byte	19                              # DW_FORM_ref4
450	.byte	4                               # DW_IDX_parent
451	.byte	25                              # DW_FORM_flag_present
452	.byte	0                               # End of abbrev
453	.byte	0                               # End of abbrev
454	.byte	0                               # End of abbrev list
455.Lnames_abbrev_end0:
456.Lnames_entries0:
457.Lnames3:
458.L4:
459	.ascii	"\230\023"                      # Abbreviation code
460	.long	104                             # DW_IDX_die_offset
461	.byte	0                               # DW_IDX_parent
462                                        # End of list: Foo2
463.Lnames0:
464.L1:
465	.ascii	"\230."                         # Abbreviation code
466	.long	26                              # DW_IDX_die_offset
467	.byte	0                               # DW_IDX_parent
468                                        # End of list: main
469.Lnames1:
470.L3:
471	.ascii	"\230$"                         # Abbreviation code
472	.long	86                              # DW_IDX_die_offset
473	.byte	0                               # DW_IDX_parent
474                                        # End of list: int
475.Lnames4:
476.L2:
477	.ascii	"\230\023"                      # Abbreviation code
478	.long	120                             # DW_IDX_die_offset
479	.byte	0                               # DW_IDX_parent
480                                        # End of list: Foo2a
481.Lnames2:
482.L0:
483	.ascii	"\230$"                         # Abbreviation code
484	.long	100                             # DW_IDX_die_offset
485	.byte	0                               # DW_IDX_parent
486                                        # End of list: char
487	.p2align	2, 0x0
488.Lnames_end0:
489	.ident	"clang version 19.0.0git (git@github.com:ayermolo/llvm-project.git da9e9277be64deca73370a90d22af33e5b37cc52)"
490	.section	".note.GNU-stack","",@progbits
491	.addrsig
492	.section	.debug_line,"",@progbits
493.Lline_table_start0:
494