xref: /llvm-project/bolt/test/X86/dwarf5-debug-names-class-type-decl.s (revision 8c2da89ec4cc99af84f98e25a19b93f32ca58b65)
1# REQUIRES: system-linux
2
3# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %s -o %t1.o
4# RUN: %clang %cflags -dwarf-5 %t1.o -o %t.exe -Wl,-q
5# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
6# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt > %t.txt
7# RUN: llvm-dwarfdump --show-form --verbose --debug-names %t.bolt >> %t.txt
8# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
9
10## This tests that BOLT doesn't generate entry for a DW_TAG_class_type declaration with DW_AT_name.
11
12# POSTCHECK:       DW_TAG_type_unit
13# POSTCHECK:       DW_TAG_class_type [7]
14# POSTCHECK-NEXT:    DW_AT_name [DW_FORM_strx1]  (indexed (00000006) string = "InnerState")
15# POSTCHECK-NEXT:    DW_AT_declaration [DW_FORM_flag_present]  (true)
16# POSTCHECK: Name Index
17# POSTCHECK-NOT: "InnerState"
18
19## -g2 -O0 -fdebug-types-section -gpubnames
20## namespace A {
21##   namespace B {
22##     class State {
23##       public:
24##       class InnerState{
25##         InnerState() {}
26##       };
27##       State(){}
28##       State(InnerState S){}
29##     };
30##   }
31## }
32##
33## int main() {
34##   A::B::State S;
35##   return 0;
36## }
37
38	.text
39	.file	"main.cpp"
40	.file	0 "/DW_TAG_class_type" "main.cpp" md5 0x80f261b124b76c481b8761c040ab4802
41	.section	.debug_info,"G",@progbits,16664150534606561860,comdat
42.Ltu_begin0:
43	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
44.Ldebug_info_start0:
45	.short	5                               # DWARF version number
46	.byte	2                               # DWARF Unit Type
47	.byte	8                               # Address Size (in bytes)
48	.long	.debug_abbrev                   # Offset Into Abbrev. Section
49	.quad	-1782593539102989756            # Type Signature
50	.long	39                              # Type DIE Offset
51	.byte	1                               # Abbrev [1] 0x18:0x3b DW_TAG_type_unit
52	.short	33                              # DW_AT_language
53	.long	.Lline_table_start0             # DW_AT_stmt_list
54	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
55	.byte	2                               # Abbrev [2] 0x23:0x2a DW_TAG_namespace
56	.byte	3                               # DW_AT_name
57	.byte	2                               # Abbrev [2] 0x25:0x27 DW_TAG_namespace
58	.byte	4                               # DW_AT_name
59	.byte	3                               # Abbrev [3] 0x27:0x24 DW_TAG_class_type
60	.byte	5                               # DW_AT_calling_convention
61	.byte	5                               # DW_AT_name
62	.byte	1                               # DW_AT_byte_size
63	.byte	0                               # DW_AT_decl_file
64	.byte	3                               # DW_AT_decl_line
65	.byte	4                               # Abbrev [4] 0x2d:0xb DW_TAG_subprogram
66	.byte	5                               # DW_AT_name
67	.byte	0                               # DW_AT_decl_file
68	.byte	8                               # DW_AT_decl_line
69                                        # DW_AT_declaration
70                                        # DW_AT_external
71	.byte	1                               # DW_AT_accessibility
72                                        # DW_ACCESS_public
73	.byte	5                               # Abbrev [5] 0x32:0x5 DW_TAG_formal_parameter
74	.long	77                              # DW_AT_type
75                                        # DW_AT_artificial
76	.byte	0                               # End Of Children Mark
77	.byte	4                               # Abbrev [4] 0x38:0x10 DW_TAG_subprogram
78	.byte	5                               # DW_AT_name
79	.byte	0                               # DW_AT_decl_file
80	.byte	9                               # DW_AT_decl_line
81                                        # DW_AT_declaration
82                                        # DW_AT_external
83	.byte	1                               # DW_AT_accessibility
84                                        # DW_ACCESS_public
85	.byte	5                               # Abbrev [5] 0x3d:0x5 DW_TAG_formal_parameter
86	.long	77                              # DW_AT_type
87                                        # DW_AT_artificial
88	.byte	6                               # Abbrev [6] 0x42:0x5 DW_TAG_formal_parameter
89	.long	72                              # DW_AT_type
90	.byte	0                               # End Of Children Mark
91	.byte	7                               # Abbrev [7] 0x48:0x2 DW_TAG_class_type
92	.byte	6                               # DW_AT_name
93                                        # DW_AT_declaration
94	.byte	0                               # End Of Children Mark
95	.byte	0                               # End Of Children Mark
96	.byte	0                               # End Of Children Mark
97	.byte	8                               # Abbrev [8] 0x4d:0x5 DW_TAG_pointer_type
98	.long	39                              # DW_AT_type
99	.byte	0                               # End Of Children Mark
100.Ldebug_info_end0:
101	.text
102	.globl	main                            # -- Begin function main
103	.p2align	4, 0x90
104	.type	main,@function
105main:                                   # @main
106.Lfunc_begin0:
107	.loc	0 14 0                          # main.cpp:14:0
108	.cfi_startproc
109# %bb.0:                                # %entry
110	pushq	%rbp
111	.cfi_def_cfa_offset 16
112	.cfi_offset %rbp, -16
113	movq	%rsp, %rbp
114	.cfi_def_cfa_register %rbp
115	subq	$16, %rsp
116	movl	$0, -4(%rbp)
117.Ltmp0:
118	.loc	0 15 15 prologue_end            # main.cpp:15:15
119	leaq	-5(%rbp), %rdi
120	callq	_ZN1A1B5StateC2Ev
121	.loc	0 16 3                          # main.cpp:16:3
122	xorl	%eax, %eax
123	.loc	0 16 3 epilogue_begin is_stmt 0 # main.cpp:16:3
124	addq	$16, %rsp
125	popq	%rbp
126	.cfi_def_cfa %rsp, 8
127	retq
128.Ltmp1:
129.Lfunc_end0:
130	.size	main, .Lfunc_end0-main
131	.cfi_endproc
132                                        # -- End function
133	.section	.text._ZN1A1B5StateC2Ev,"axG",@progbits,_ZN1A1B5StateC2Ev,comdat
134	.weak	_ZN1A1B5StateC2Ev               # -- Begin function _ZN1A1B5StateC2Ev
135	.p2align	4, 0x90
136	.type	_ZN1A1B5StateC2Ev,@function
137_ZN1A1B5StateC2Ev:                      # @_ZN1A1B5StateC2Ev
138.Lfunc_begin1:
139	.loc	0 8 0 is_stmt 1                 # main.cpp:8:0
140	.cfi_startproc
141# %bb.0:                                # %entry
142	pushq	%rbp
143	.cfi_def_cfa_offset 16
144	.cfi_offset %rbp, -16
145	movq	%rsp, %rbp
146	.cfi_def_cfa_register %rbp
147	movq	%rdi, -8(%rbp)
148.Ltmp2:
149	.loc	0 8 15 prologue_end epilogue_begin # main.cpp:8:15
150	popq	%rbp
151	.cfi_def_cfa %rsp, 8
152	retq
153.Ltmp3:
154.Lfunc_end1:
155	.size	_ZN1A1B5StateC2Ev, .Lfunc_end1-_ZN1A1B5StateC2Ev
156	.cfi_endproc
157                                        # -- End function
158	.section	.debug_abbrev,"",@progbits
159	.byte	1                               # Abbreviation Code
160	.byte	65                              # DW_TAG_type_unit
161	.byte	1                               # DW_CHILDREN_yes
162	.byte	19                              # DW_AT_language
163	.byte	5                               # DW_FORM_data2
164	.byte	16                              # DW_AT_stmt_list
165	.byte	23                              # DW_FORM_sec_offset
166	.byte	114                             # DW_AT_str_offsets_base
167	.byte	23                              # DW_FORM_sec_offset
168	.byte	0                               # EOM(1)
169	.byte	0                               # EOM(2)
170	.byte	2                               # Abbreviation Code
171	.byte	57                              # DW_TAG_namespace
172	.byte	1                               # DW_CHILDREN_yes
173	.byte	3                               # DW_AT_name
174	.byte	37                              # DW_FORM_strx1
175	.byte	0                               # EOM(1)
176	.byte	0                               # EOM(2)
177	.byte	3                               # Abbreviation Code
178	.byte	2                               # DW_TAG_class_type
179	.byte	1                               # DW_CHILDREN_yes
180	.byte	54                              # DW_AT_calling_convention
181	.byte	11                              # DW_FORM_data1
182	.byte	3                               # DW_AT_name
183	.byte	37                              # DW_FORM_strx1
184	.byte	11                              # DW_AT_byte_size
185	.byte	11                              # DW_FORM_data1
186	.byte	58                              # DW_AT_decl_file
187	.byte	11                              # DW_FORM_data1
188	.byte	59                              # DW_AT_decl_line
189	.byte	11                              # DW_FORM_data1
190	.byte	0                               # EOM(1)
191	.byte	0                               # EOM(2)
192	.byte	4                               # Abbreviation Code
193	.byte	46                              # DW_TAG_subprogram
194	.byte	1                               # DW_CHILDREN_yes
195	.byte	3                               # DW_AT_name
196	.byte	37                              # DW_FORM_strx1
197	.byte	58                              # DW_AT_decl_file
198	.byte	11                              # DW_FORM_data1
199	.byte	59                              # DW_AT_decl_line
200	.byte	11                              # DW_FORM_data1
201	.byte	60                              # DW_AT_declaration
202	.byte	25                              # DW_FORM_flag_present
203	.byte	63                              # DW_AT_external
204	.byte	25                              # DW_FORM_flag_present
205	.byte	50                              # DW_AT_accessibility
206	.byte	11                              # DW_FORM_data1
207	.byte	0                               # EOM(1)
208	.byte	0                               # EOM(2)
209	.byte	5                               # Abbreviation Code
210	.byte	5                               # DW_TAG_formal_parameter
211	.byte	0                               # DW_CHILDREN_no
212	.byte	73                              # DW_AT_type
213	.byte	19                              # DW_FORM_ref4
214	.byte	52                              # DW_AT_artificial
215	.byte	25                              # DW_FORM_flag_present
216	.byte	0                               # EOM(1)
217	.byte	0                               # EOM(2)
218	.byte	6                               # Abbreviation Code
219	.byte	5                               # DW_TAG_formal_parameter
220	.byte	0                               # DW_CHILDREN_no
221	.byte	73                              # DW_AT_type
222	.byte	19                              # DW_FORM_ref4
223	.byte	0                               # EOM(1)
224	.byte	0                               # EOM(2)
225	.byte	7                               # Abbreviation Code
226	.byte	2                               # DW_TAG_class_type
227	.byte	0                               # DW_CHILDREN_no
228	.byte	3                               # DW_AT_name
229	.byte	37                              # DW_FORM_strx1
230	.byte	60                              # DW_AT_declaration
231	.byte	25                              # DW_FORM_flag_present
232	.byte	0                               # EOM(1)
233	.byte	0                               # EOM(2)
234	.byte	8                               # Abbreviation Code
235	.byte	15                              # DW_TAG_pointer_type
236	.byte	0                               # DW_CHILDREN_no
237	.byte	73                              # DW_AT_type
238	.byte	19                              # DW_FORM_ref4
239	.byte	0                               # EOM(1)
240	.byte	0                               # EOM(2)
241	.byte	9                               # Abbreviation Code
242	.byte	17                              # DW_TAG_compile_unit
243	.byte	1                               # DW_CHILDREN_yes
244	.byte	37                              # DW_AT_producer
245	.byte	37                              # DW_FORM_strx1
246	.byte	19                              # DW_AT_language
247	.byte	5                               # DW_FORM_data2
248	.byte	3                               # DW_AT_name
249	.byte	37                              # DW_FORM_strx1
250	.byte	114                             # DW_AT_str_offsets_base
251	.byte	23                              # DW_FORM_sec_offset
252	.byte	16                              # DW_AT_stmt_list
253	.byte	23                              # DW_FORM_sec_offset
254	.byte	27                              # DW_AT_comp_dir
255	.byte	37                              # DW_FORM_strx1
256	.byte	17                              # DW_AT_low_pc
257	.byte	1                               # DW_FORM_addr
258	.byte	85                              # DW_AT_ranges
259	.byte	35                              # DW_FORM_rnglistx
260	.byte	115                             # DW_AT_addr_base
261	.byte	23                              # DW_FORM_sec_offset
262	.byte	116                             # DW_AT_rnglists_base
263	.byte	23                              # DW_FORM_sec_offset
264	.byte	0                               # EOM(1)
265	.byte	0                               # EOM(2)
266	.byte	10                              # Abbreviation Code
267	.byte	2                               # DW_TAG_class_type
268	.byte	1                               # DW_CHILDREN_yes
269	.byte	60                              # DW_AT_declaration
270	.byte	25                              # DW_FORM_flag_present
271	.byte	105                             # DW_AT_signature
272	.byte	32                              # DW_FORM_ref_sig8
273	.byte	0                               # EOM(1)
274	.byte	0                               # EOM(2)
275	.byte	11                              # Abbreviation Code
276	.byte	46                              # DW_TAG_subprogram
277	.byte	1                               # DW_CHILDREN_yes
278	.byte	17                              # DW_AT_low_pc
279	.byte	27                              # DW_FORM_addrx
280	.byte	18                              # DW_AT_high_pc
281	.byte	6                               # DW_FORM_data4
282	.byte	64                              # DW_AT_frame_base
283	.byte	24                              # DW_FORM_exprloc
284	.byte	3                               # DW_AT_name
285	.byte	37                              # DW_FORM_strx1
286	.byte	58                              # DW_AT_decl_file
287	.byte	11                              # DW_FORM_data1
288	.byte	59                              # DW_AT_decl_line
289	.byte	11                              # DW_FORM_data1
290	.byte	73                              # DW_AT_type
291	.byte	19                              # DW_FORM_ref4
292	.byte	63                              # DW_AT_external
293	.byte	25                              # DW_FORM_flag_present
294	.byte	0                               # EOM(1)
295	.byte	0                               # EOM(2)
296	.byte	12                              # Abbreviation Code
297	.byte	52                              # DW_TAG_variable
298	.byte	0                               # DW_CHILDREN_no
299	.byte	2                               # DW_AT_location
300	.byte	24                              # DW_FORM_exprloc
301	.byte	3                               # DW_AT_name
302	.byte	37                              # DW_FORM_strx1
303	.byte	58                              # DW_AT_decl_file
304	.byte	11                              # DW_FORM_data1
305	.byte	59                              # DW_AT_decl_line
306	.byte	11                              # DW_FORM_data1
307	.byte	73                              # DW_AT_type
308	.byte	19                              # DW_FORM_ref4
309	.byte	0                               # EOM(1)
310	.byte	0                               # EOM(2)
311	.byte	13                              # Abbreviation Code
312	.byte	46                              # DW_TAG_subprogram
313	.byte	1                               # DW_CHILDREN_yes
314	.byte	17                              # DW_AT_low_pc
315	.byte	27                              # DW_FORM_addrx
316	.byte	18                              # DW_AT_high_pc
317	.byte	6                               # DW_FORM_data4
318	.byte	64                              # DW_AT_frame_base
319	.byte	24                              # DW_FORM_exprloc
320	.byte	100                             # DW_AT_object_pointer
321	.byte	19                              # DW_FORM_ref4
322	.byte	110                             # DW_AT_linkage_name
323	.byte	37                              # DW_FORM_strx1
324	.byte	71                              # DW_AT_specification
325	.byte	19                              # DW_FORM_ref4
326	.byte	0                               # EOM(1)
327	.byte	0                               # EOM(2)
328	.byte	14                              # Abbreviation Code
329	.byte	5                               # DW_TAG_formal_parameter
330	.byte	0                               # DW_CHILDREN_no
331	.byte	2                               # DW_AT_location
332	.byte	24                              # DW_FORM_exprloc
333	.byte	3                               # DW_AT_name
334	.byte	37                              # DW_FORM_strx1
335	.byte	73                              # DW_AT_type
336	.byte	19                              # DW_FORM_ref4
337	.byte	52                              # DW_AT_artificial
338	.byte	25                              # DW_FORM_flag_present
339	.byte	0                               # EOM(1)
340	.byte	0                               # EOM(2)
341	.byte	15                              # Abbreviation Code
342	.byte	36                              # DW_TAG_base_type
343	.byte	0                               # DW_CHILDREN_no
344	.byte	3                               # DW_AT_name
345	.byte	37                              # DW_FORM_strx1
346	.byte	62                              # DW_AT_encoding
347	.byte	11                              # DW_FORM_data1
348	.byte	11                              # DW_AT_byte_size
349	.byte	11                              # DW_FORM_data1
350	.byte	0                               # EOM(1)
351	.byte	0                               # EOM(2)
352	.byte	0                               # EOM(3)
353	.section	.debug_info,"",@progbits
354.Lcu_begin0:
355	.long	.Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit
356.Ldebug_info_start1:
357	.short	5                               # DWARF version number
358	.byte	1                               # DWARF Unit Type
359	.byte	8                               # Address Size (in bytes)
360	.long	.debug_abbrev                   # Offset Into Abbrev. Section
361	.byte	9                               # Abbrev [9] 0xc:0x7f DW_TAG_compile_unit
362	.byte	0                               # DW_AT_producer
363	.short	33                              # DW_AT_language
364	.byte	1                               # DW_AT_name
365	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
366	.long	.Lline_table_start0             # DW_AT_stmt_list
367	.byte	2                               # DW_AT_comp_dir
368	.quad	0                               # DW_AT_low_pc
369	.byte	0                               # DW_AT_ranges
370	.long	.Laddr_table_base0              # DW_AT_addr_base
371	.long	.Lrnglists_table_base0          # DW_AT_rnglists_base
372	.byte	2                               # Abbrev [2] 0x2b:0x1b DW_TAG_namespace
373	.byte	3                               # DW_AT_name
374	.byte	2                               # Abbrev [2] 0x2d:0x18 DW_TAG_namespace
375	.byte	4                               # DW_AT_name
376	.byte	10                              # Abbrev [10] 0x2f:0x15 DW_TAG_class_type
377                                        # DW_AT_declaration
378	.quad	-1782593539102989756            # DW_AT_signature
379	.byte	4                               # Abbrev [4] 0x38:0xb DW_TAG_subprogram
380	.byte	5                               # DW_AT_name
381	.byte	0                               # DW_AT_decl_file
382	.byte	8                               # DW_AT_decl_line
383                                        # DW_AT_declaration
384                                        # DW_AT_external
385	.byte	1                               # DW_AT_accessibility
386                                        # DW_ACCESS_public
387	.byte	5                               # Abbrev [5] 0x3d:0x5 DW_TAG_formal_parameter
388	.long	97                              # DW_AT_type
389                                        # DW_AT_artificial
390	.byte	0                               # End Of Children Mark
391	.byte	0                               # End Of Children Mark
392	.byte	0                               # End Of Children Mark
393	.byte	0                               # End Of Children Mark
394	.byte	11                              # Abbrev [11] 0x46:0x1b DW_TAG_subprogram
395	.byte	0                               # DW_AT_low_pc
396	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
397	.byte	1                               # DW_AT_frame_base
398	.byte	86
399	.byte	7                               # DW_AT_name
400	.byte	0                               # DW_AT_decl_file
401	.byte	14                              # DW_AT_decl_line
402	.long	129                             # DW_AT_type
403                                        # DW_AT_external
404	.byte	12                              # Abbrev [12] 0x55:0xb DW_TAG_variable
405	.byte	2                               # DW_AT_location
406	.byte	145
407	.byte	123
408	.byte	10                              # DW_AT_name
409	.byte	0                               # DW_AT_decl_file
410	.byte	15                              # DW_AT_decl_line
411	.long	47                              # DW_AT_type
412	.byte	0                               # End Of Children Mark
413	.byte	8                               # Abbrev [8] 0x61:0x5 DW_TAG_pointer_type
414	.long	47                              # DW_AT_type
415	.byte	13                              # Abbrev [13] 0x66:0x1b DW_TAG_subprogram
416	.byte	1                               # DW_AT_low_pc
417	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
418	.byte	1                               # DW_AT_frame_base
419	.byte	86
420	.long	119                             # DW_AT_object_pointer
421	.byte	9                               # DW_AT_linkage_name
422	.long	56                              # DW_AT_specification
423	.byte	14                              # Abbrev [14] 0x77:0x9 DW_TAG_formal_parameter
424	.byte	2                               # DW_AT_location
425	.byte	145
426	.byte	120
427	.byte	11                              # DW_AT_name
428	.long	133                             # DW_AT_type
429                                        # DW_AT_artificial
430	.byte	0                               # End Of Children Mark
431	.byte	15                              # Abbrev [15] 0x81:0x4 DW_TAG_base_type
432	.byte	8                               # DW_AT_name
433	.byte	5                               # DW_AT_encoding
434	.byte	4                               # DW_AT_byte_size
435	.byte	8                               # Abbrev [8] 0x85:0x5 DW_TAG_pointer_type
436	.long	47                              # DW_AT_type
437	.byte	0                               # End Of Children Mark
438.Ldebug_info_end1:
439	.section	.debug_rnglists,"",@progbits
440	.long	.Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
441.Ldebug_list_header_start0:
442	.short	5                               # Version
443	.byte	8                               # Address size
444	.byte	0                               # Segment selector size
445	.long	1                               # Offset entry count
446.Lrnglists_table_base0:
447	.long	.Ldebug_ranges0-.Lrnglists_table_base0
448.Ldebug_ranges0:
449	.byte	3                               # DW_RLE_startx_length
450	.byte	0                               #   start index
451	.uleb128 .Lfunc_end0-.Lfunc_begin0      #   length
452	.byte	3                               # DW_RLE_startx_length
453	.byte	1                               #   start index
454	.uleb128 .Lfunc_end1-.Lfunc_begin1      #   length
455	.byte	0                               # DW_RLE_end_of_list
456.Ldebug_list_header_end0:
457	.section	.debug_str_offsets,"",@progbits
458	.long	52                              # Length of String Offsets Set
459	.short	5
460	.short	0
461.Lstr_offsets_base0:
462	.section	.debug_str,"MS",@progbits,1
463.Linfo_string0:
464	.asciz	"clang version 19.0.0git"       # string offset=0
465.Linfo_string1:
466	.asciz	"main.cpp"                      # string offset=24
467.Linfo_string2:
468	.asciz	"/home/ayermolo/local/tasks/T190087639/DW_TAG_class_type" # string offset=33
469.Linfo_string3:
470	.asciz	"A"                             # string offset=89
471.Linfo_string4:
472	.asciz	"B"                             # string offset=91
473.Linfo_string5:
474	.asciz	"State"                         # string offset=93
475.Linfo_string6:
476	.asciz	"InnerState"                    # string offset=99
477.Linfo_string7:
478	.asciz	"main"                          # string offset=110
479.Linfo_string8:
480	.asciz	"_ZN1A1B5StateC2Ev"             # string offset=115
481.Linfo_string9:
482	.asciz	"int"                           # string offset=133
483.Linfo_string10:
484	.asciz	"S"                             # string offset=137
485.Linfo_string11:
486	.asciz	"this"                          # string offset=139
487	.section	.debug_str_offsets,"",@progbits
488	.long	.Linfo_string0
489	.long	.Linfo_string1
490	.long	.Linfo_string2
491	.long	.Linfo_string3
492	.long	.Linfo_string4
493	.long	.Linfo_string5
494	.long	.Linfo_string6
495	.long	.Linfo_string7
496	.long	.Linfo_string9
497	.long	.Linfo_string8
498	.long	.Linfo_string10
499	.long	.Linfo_string11
500	.section	.debug_addr,"",@progbits
501	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
502.Ldebug_addr_start0:
503	.short	5                               # DWARF version number
504	.byte	8                               # Address size
505	.byte	0                               # Segment selector size
506.Laddr_table_base0:
507	.quad	.Lfunc_begin0
508	.quad	.Lfunc_begin1
509.Ldebug_addr_end0:
510	.section	.debug_names,"",@progbits
511	.long	.Lnames_end0-.Lnames_start0     # Header: unit length
512.Lnames_start0:
513	.short	5                               # Header: version
514	.short	0                               # Header: padding
515	.long	1                               # Header: compilation unit count
516	.long	1                               # Header: local type unit count
517	.long	0                               # Header: foreign type unit count
518	.long	6                               # Header: bucket count
519	.long	6                               # Header: name count
520	.long	.Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
521	.long	8                               # Header: augmentation string size
522	.ascii	"LLVM0700"                      # Header: augmentation string
523	.long	.Lcu_begin0                     # Compilation unit 0
524	.long	.Ltu_begin0                     # Type unit 0
525	.long	0                               # Bucket 0
526	.long	0                               # Bucket 1
527	.long	1                               # Bucket 2
528	.long	2                               # Bucket 3
529	.long	3                               # Bucket 4
530	.long	6                               # Bucket 5
531	.long	193495088                       # Hash in Bucket 2
532	.long	1059643959                      # Hash in Bucket 3
533	.long	177670                          # Hash in Bucket 4
534	.long	274811398                       # Hash in Bucket 4
535	.long	2090499946                      # Hash in Bucket 4
536	.long	177671                          # Hash in Bucket 5
537	.long	.Linfo_string9                  # String in Bucket 2: int
538	.long	.Linfo_string8                  # String in Bucket 3: _ZN1A1B5StateC2Ev
539	.long	.Linfo_string3                  # String in Bucket 4: A
540	.long	.Linfo_string5                  # String in Bucket 4: State
541	.long	.Linfo_string7                  # String in Bucket 4: main
542	.long	.Linfo_string4                  # String in Bucket 5: B
543	.long	.Lnames5-.Lnames_entries0       # Offset in Bucket 2
544	.long	.Lnames4-.Lnames_entries0       # Offset in Bucket 3
545	.long	.Lnames0-.Lnames_entries0       # Offset in Bucket 4
546	.long	.Lnames2-.Lnames_entries0       # Offset in Bucket 4
547	.long	.Lnames3-.Lnames_entries0       # Offset in Bucket 4
548	.long	.Lnames1-.Lnames_entries0       # Offset in Bucket 5
549.Lnames_abbrev_start0:
550	.byte	1                               # Abbrev code
551	.byte	36                              # DW_TAG_base_type
552	.byte	3                               # DW_IDX_die_offset
553	.byte	19                              # DW_FORM_ref4
554	.byte	4                               # DW_IDX_parent
555	.byte	25                              # DW_FORM_flag_present
556	.byte	0                               # End of abbrev
557	.byte	0                               # End of abbrev
558	.byte	2                               # Abbrev code
559	.byte	46                              # DW_TAG_subprogram
560	.byte	3                               # DW_IDX_die_offset
561	.byte	19                              # DW_FORM_ref4
562	.byte	4                               # DW_IDX_parent
563	.byte	25                              # DW_FORM_flag_present
564	.byte	0                               # End of abbrev
565	.byte	0                               # End of abbrev
566	.byte	3                               # Abbrev code
567	.byte	57                              # DW_TAG_namespace
568	.byte	2                               # DW_IDX_type_unit
569	.byte	11                              # DW_FORM_data1
570	.byte	3                               # DW_IDX_die_offset
571	.byte	19                              # DW_FORM_ref4
572	.byte	4                               # DW_IDX_parent
573	.byte	25                              # DW_FORM_flag_present
574	.byte	0                               # End of abbrev
575	.byte	0                               # End of abbrev
576	.byte	4                               # Abbrev code
577	.byte	57                              # DW_TAG_namespace
578	.byte	3                               # DW_IDX_die_offset
579	.byte	19                              # DW_FORM_ref4
580	.byte	4                               # DW_IDX_parent
581	.byte	25                              # DW_FORM_flag_present
582	.byte	0                               # End of abbrev
583	.byte	0                               # End of abbrev
584	.byte	5                               # Abbrev code
585	.byte	2                               # DW_TAG_class_type
586	.byte	2                               # DW_IDX_type_unit
587	.byte	11                              # DW_FORM_data1
588	.byte	3                               # DW_IDX_die_offset
589	.byte	19                              # DW_FORM_ref4
590	.byte	4                               # DW_IDX_parent
591	.byte	19                              # DW_FORM_ref4
592	.byte	0                               # End of abbrev
593	.byte	0                               # End of abbrev
594	.byte	6                               # Abbrev code
595	.byte	57                              # DW_TAG_namespace
596	.byte	2                               # DW_IDX_type_unit
597	.byte	11                              # DW_FORM_data1
598	.byte	3                               # DW_IDX_die_offset
599	.byte	19                              # DW_FORM_ref4
600	.byte	4                               # DW_IDX_parent
601	.byte	19                              # DW_FORM_ref4
602	.byte	0                               # End of abbrev
603	.byte	0                               # End of abbrev
604	.byte	7                               # Abbrev code
605	.byte	57                              # DW_TAG_namespace
606	.byte	3                               # DW_IDX_die_offset
607	.byte	19                              # DW_FORM_ref4
608	.byte	4                               # DW_IDX_parent
609	.byte	19                              # DW_FORM_ref4
610	.byte	0                               # End of abbrev
611	.byte	0                               # End of abbrev
612	.byte	0                               # End of abbrev list
613.Lnames_abbrev_end0:
614.Lnames_entries0:
615.Lnames5:
616.L2:
617	.byte	1                               # Abbreviation code
618	.long	129                             # DW_IDX_die_offset
619	.byte	0                               # DW_IDX_parent
620                                        # End of list: int
621.Lnames4:
622.L3:
623	.byte	2                               # Abbreviation code
624	.long	102                             # DW_IDX_die_offset
625	.byte	0                               # DW_IDX_parent
626                                        # End of list: _ZN1A1B5StateC2Ev
627.Lnames0:
628.L4:
629	.byte	3                               # Abbreviation code
630	.byte	0                               # DW_IDX_type_unit
631	.long	35                              # DW_IDX_die_offset
632.L7:                                    # DW_IDX_parent
633	.byte	4                               # Abbreviation code
634	.long	43                              # DW_IDX_die_offset
635	.byte	0                               # DW_IDX_parent
636                                        # End of list: A
637.Lnames2:
638.L1:
639	.byte	5                               # Abbreviation code
640	.byte	0                               # DW_IDX_type_unit
641	.long	39                              # DW_IDX_die_offset
642	.long	.L5-.Lnames_entries0            # DW_IDX_parent
643	.byte	2                               # Abbreviation code
644	.long	102                             # DW_IDX_die_offset
645	.byte	0                               # DW_IDX_parent
646                                        # End of list: State
647.Lnames3:
648.L0:
649	.byte	2                               # Abbreviation code
650	.long	70                              # DW_IDX_die_offset
651	.byte	0                               # DW_IDX_parent
652                                        # End of list: main
653.Lnames1:
654.L5:
655	.byte	6                               # Abbreviation code
656	.byte	0                               # DW_IDX_type_unit
657	.long	37                              # DW_IDX_die_offset
658	.long	.L4-.Lnames_entries0            # DW_IDX_parent
659.L6:
660	.byte	7                               # Abbreviation code
661	.long	45                              # DW_IDX_die_offset
662	.long	.L7-.Lnames_entries0            # DW_IDX_parent
663	.byte	0                               # End of list: B
664	.p2align	2, 0x0
665.Lnames_end0:
666	.ident	"clang version 19.0.0git"
667	.section	".note.GNU-stack","",@progbits
668	.addrsig
669	.section	.debug_line,"",@progbits
670.Lline_table_start0:
671