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