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