xref: /llvm-project/bolt/test/X86/Inputs/dwarf5-df-change-in-dw-op-gnu-addr-index-main.s (revision 96cfc5f8404a686543b3a34c5d01ac0af925b697)
1# clang++ -O2 -g -gdwarf-5 -gsplit-dwarf main.cpp
2# void use(int * x, int * y) {
3#  static int Foo = *y + *x;
4#  *x += 4;
5#  *y -= Foo;
6# }
7#
8# int x = 0;
9# int y = 1;
10# int  main(int argc, char *argv[]) {
11#    x = argc;
12#    y = argc + 3;
13#    use(&x, &y);
14#    return 0;
15# }
16	.text
17	.file	"main.cpp"
18	.file	0 "." "main.cpp" md5 0x4f704c611bdcbf8d7a62eb17d439188e
19	.globl	_Z3usePiS_                      # -- Begin function _Z3usePiS_
20	.p2align	4, 0x90
21	.type	_Z3usePiS_,@function
22_Z3usePiS_:                             # @_Z3usePiS_
23.Lfunc_begin0:
24	.loc	0 1 0                           # main.cpp:1:0
25	.cfi_startproc
26# %bb.0:                                # %entry
27	#DEBUG_VALUE: use:x <- $rdi
28	#DEBUG_VALUE: use:y <- $rsi
29	pushq	%r14
30	.cfi_def_cfa_offset 16
31	pushq	%rbx
32	.cfi_def_cfa_offset 24
33	pushq	%rax
34	.cfi_def_cfa_offset 32
35	.cfi_offset %rbx, -24
36	.cfi_offset %r14, -16
37	movq	%rsi, %rbx
38	movq	%rdi, %r14
39.Ltmp0:
40	.loc	0 2 2 prologue_end              # main.cpp:2:2
41	movzbl	_ZGVZ3usePiS_E3Foo(%rip), %eax
42	testb	%al, %al
43	je	.LBB0_1
44.Ltmp1:
45.LBB0_3:                                # %init.end
46	#DEBUG_VALUE: use:x <- $r14
47	#DEBUG_VALUE: use:y <- $rbx
48	.loc	0 3 5                           # main.cpp:3:5
49	addl	$4, (%r14)
50	.loc	0 4 8                           # main.cpp:4:8
51	movl	_ZZ3usePiS_E3Foo(%rip), %eax
52	.loc	0 4 5 is_stmt 0                 # main.cpp:4:5
53	subl	%eax, (%rbx)
54	.loc	0 5 1 epilogue_begin is_stmt 1  # main.cpp:5:1
55	addq	$8, %rsp
56	.cfi_def_cfa_offset 24
57	popq	%rbx
58.Ltmp2:
59	#DEBUG_VALUE: use:y <- [DW_OP_LLVM_entry_value 1] $rsi
60	.cfi_def_cfa_offset 16
61	popq	%r14
62.Ltmp3:
63	#DEBUG_VALUE: use:x <- [DW_OP_LLVM_entry_value 1] $rdi
64	.cfi_def_cfa_offset 8
65	retq
66.Ltmp4:
67.LBB0_1:                                # %init.check
68	.cfi_def_cfa_offset 32
69	#DEBUG_VALUE: use:x <- $r14
70	#DEBUG_VALUE: use:y <- $rbx
71	.loc	0 2 2                           # main.cpp:2:2
72	leaq	_ZGVZ3usePiS_E3Foo(%rip), %rdi
73	callq	__cxa_guard_acquire@PLT
74.Ltmp5:
75	testl	%eax, %eax
76	je	.LBB0_3
77.Ltmp6:
78# %bb.2:                                # %init
79	#DEBUG_VALUE: use:x <- $r14
80	#DEBUG_VALUE: use:y <- $rbx
81	.loc	0 2 24 is_stmt 0                # main.cpp:2:24
82	movl	(%r14), %eax
83	.loc	0 2 22                          # main.cpp:2:22
84	addl	(%rbx), %eax
85	.loc	0 2 2                           # main.cpp:2:2
86	movl	%eax, _ZZ3usePiS_E3Foo(%rip)
87	leaq	_ZGVZ3usePiS_E3Foo(%rip), %rdi
88	callq	__cxa_guard_release@PLT
89.Ltmp7:
90	.loc	0 0 2                           # main.cpp:0:2
91	jmp	.LBB0_3
92.Ltmp8:
93.Lfunc_end0:
94	.size	_Z3usePiS_, .Lfunc_end0-_Z3usePiS_
95	.cfi_endproc
96                                        # -- End function
97	.globl	main                            # -- Begin function main
98	.p2align	4, 0x90
99	.type	main,@function
100main:                                   # @main
101.Lfunc_begin1:
102	.cfi_startproc
103# %bb.0:                                # %entry
104	#DEBUG_VALUE: main:argc <- $edi
105	#DEBUG_VALUE: main:argv <- $rsi
106	.loc	0 10 6 prologue_end is_stmt 1   # main.cpp:10:6
107	movl	%edi, x(%rip)
108	.loc	0 11 13                         # main.cpp:11:13
109	addl	$3, %edi
110.Ltmp9:
111	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi
112	.loc	0 11 6 is_stmt 0                # main.cpp:11:6
113	movl	%edi, y(%rip)
114.Ltmp10:
115	#DEBUG_VALUE: use:y <- undef
116	#DEBUG_VALUE: use:x <- undef
117	.loc	0 2 2 is_stmt 1                 # main.cpp:2:2
118	movzbl	_ZGVZ3usePiS_E3Foo(%rip), %eax
119	testb	%al, %al
120	je	.LBB1_1
121.Ltmp11:
122.LBB1_4:                                # %_Z3usePiS_.exit
123	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi
124	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
125	.loc	0 3 5                           # main.cpp:3:5
126	addl	$4, x(%rip)
127	.loc	0 4 8                           # main.cpp:4:8
128	movl	_ZZ3usePiS_E3Foo(%rip), %eax
129	.loc	0 4 5 is_stmt 0                 # main.cpp:4:5
130	subl	%eax, y(%rip)
131.Ltmp12:
132	.loc	0 13 4 is_stmt 1                # main.cpp:13:4
133	xorl	%eax, %eax
134	retq
135.Ltmp13:
136.LBB1_1:                                # %init.check.i
137	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi
138	#DEBUG_VALUE: main:argv <- $rsi
139	pushq	%rax
140	.cfi_def_cfa_offset 16
141.Ltmp14:
142	.loc	0 2 2                           # main.cpp:2:2
143	leaq	_ZGVZ3usePiS_E3Foo(%rip), %rdi
144	callq	__cxa_guard_acquire@PLT
145.Ltmp15:
146	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
147	testl	%eax, %eax
148	je	.LBB1_3
149.Ltmp16:
150# %bb.2:                                # %init.i
151	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi
152	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
153	.loc	0 2 24 is_stmt 0                # main.cpp:2:24
154	movl	x(%rip), %eax
155	.loc	0 2 22                          # main.cpp:2:22
156	addl	y(%rip), %eax
157	.loc	0 2 2                           # main.cpp:2:2
158	movl	%eax, _ZZ3usePiS_E3Foo(%rip)
159	leaq	_ZGVZ3usePiS_E3Foo(%rip), %rdi
160	callq	__cxa_guard_release@PLT
161.Ltmp17:
162.LBB1_3:
163	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi
164	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
165	.loc	0 0 2                           # main.cpp:0:2
166	addq	$8, %rsp
167	.cfi_def_cfa_offset 8
168	jmp	.LBB1_4
169.Lfunc_end1:
170	.size	main, .Lfunc_end1-main
171	.cfi_endproc
172                                        # -- End function
173	.type	_ZZ3usePiS_E3Foo,@object        # @_ZZ3usePiS_E3Foo
174	.local	_ZZ3usePiS_E3Foo
175	.comm	_ZZ3usePiS_E3Foo,4,4
176	.type	_ZGVZ3usePiS_E3Foo,@object      # @_ZGVZ3usePiS_E3Foo
177	.local	_ZGVZ3usePiS_E3Foo
178	.comm	_ZGVZ3usePiS_E3Foo,8,8
179	.type	x,@object                       # @x
180	.bss
181	.globl	x
182	.p2align	2, 0x0
183x:
184	.long	0                               # 0x0
185	.size	x, 4
186
187	.type	y,@object                       # @y
188	.data
189	.globl	y
190	.p2align	2, 0x0
191y:
192	.long	1                               # 0x1
193	.size	y, 4
194
195	.section	.debug_loclists.dwo,"e",@progbits
196	.long	.Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
197.Ldebug_list_header_start0:
198	.short	5                               # Version
199	.byte	8                               # Address size
200	.byte	0                               # Segment selector size
201	.long	4                               # Offset entry count
202.Lloclists_table_base0:
203	.long	.Ldebug_loc0-.Lloclists_table_base0
204	.long	.Ldebug_loc1-.Lloclists_table_base0
205	.long	.Ldebug_loc2-.Lloclists_table_base0
206	.long	.Ldebug_loc3-.Lloclists_table_base0
207.Ldebug_loc0:
208	.byte	1                               # DW_LLE_base_addressx
209	.byte	3                               #   base address index
210	.byte	4                               # DW_LLE_offset_pair
211	.uleb128 .Lfunc_begin0-.Lfunc_begin0    #   starting offset
212	.uleb128 .Ltmp1-.Lfunc_begin0           #   ending offset
213	.byte	1                               # Loc expr size
214	.byte	85                              # DW_OP_reg5
215	.byte	4                               # DW_LLE_offset_pair
216	.uleb128 .Ltmp1-.Lfunc_begin0           #   starting offset
217	.uleb128 .Ltmp3-.Lfunc_begin0           #   ending offset
218	.byte	1                               # Loc expr size
219	.byte	94                              # DW_OP_reg14
220	.byte	4                               # DW_LLE_offset_pair
221	.uleb128 .Ltmp3-.Lfunc_begin0           #   starting offset
222	.uleb128 .Ltmp4-.Lfunc_begin0           #   ending offset
223	.byte	4                               # Loc expr size
224	.byte	163                             # DW_OP_entry_value
225	.byte	1                               # 1
226	.byte	85                              # DW_OP_reg5
227	.byte	159                             # DW_OP_stack_value
228	.byte	4                               # DW_LLE_offset_pair
229	.uleb128 .Ltmp4-.Lfunc_begin0           #   starting offset
230	.uleb128 .Lfunc_end0-.Lfunc_begin0      #   ending offset
231	.byte	1                               # Loc expr size
232	.byte	94                              # DW_OP_reg14
233	.byte	0                               # DW_LLE_end_of_list
234.Ldebug_loc1:
235	.byte	1                               # DW_LLE_base_addressx
236	.byte	3                               #   base address index
237	.byte	4                               # DW_LLE_offset_pair
238	.uleb128 .Lfunc_begin0-.Lfunc_begin0    #   starting offset
239	.uleb128 .Ltmp1-.Lfunc_begin0           #   ending offset
240	.byte	1                               # Loc expr size
241	.byte	84                              # DW_OP_reg4
242	.byte	4                               # DW_LLE_offset_pair
243	.uleb128 .Ltmp1-.Lfunc_begin0           #   starting offset
244	.uleb128 .Ltmp2-.Lfunc_begin0           #   ending offset
245	.byte	1                               # Loc expr size
246	.byte	83                              # DW_OP_reg3
247	.byte	4                               # DW_LLE_offset_pair
248	.uleb128 .Ltmp2-.Lfunc_begin0           #   starting offset
249	.uleb128 .Ltmp4-.Lfunc_begin0           #   ending offset
250	.byte	4                               # Loc expr size
251	.byte	163                             # DW_OP_entry_value
252	.byte	1                               # 1
253	.byte	84                              # DW_OP_reg4
254	.byte	159                             # DW_OP_stack_value
255	.byte	4                               # DW_LLE_offset_pair
256	.uleb128 .Ltmp4-.Lfunc_begin0           #   starting offset
257	.uleb128 .Lfunc_end0-.Lfunc_begin0      #   ending offset
258	.byte	1                               # Loc expr size
259	.byte	83                              # DW_OP_reg3
260	.byte	0                               # DW_LLE_end_of_list
261.Ldebug_loc2:
262	.byte	1                               # DW_LLE_base_addressx
263	.byte	3                               #   base address index
264	.byte	4                               # DW_LLE_offset_pair
265	.uleb128 .Lfunc_begin1-.Lfunc_begin0    #   starting offset
266	.uleb128 .Ltmp9-.Lfunc_begin0           #   ending offset
267	.byte	1                               # Loc expr size
268	.byte	85                              # super-register DW_OP_reg5
269	.byte	4                               # DW_LLE_offset_pair
270	.uleb128 .Ltmp9-.Lfunc_begin0           #   starting offset
271	.uleb128 .Lfunc_end1-.Lfunc_begin0      #   ending offset
272	.byte	4                               # Loc expr size
273	.byte	163                             # DW_OP_entry_value
274	.byte	1                               # 1
275	.byte	85                              # super-register DW_OP_reg5
276	.byte	159                             # DW_OP_stack_value
277	.byte	0                               # DW_LLE_end_of_list
278.Ldebug_loc3:
279	.byte	1                               # DW_LLE_base_addressx
280	.byte	3                               #   base address index
281	.byte	4                               # DW_LLE_offset_pair
282	.uleb128 .Lfunc_begin1-.Lfunc_begin0    #   starting offset
283	.uleb128 .Ltmp11-.Lfunc_begin0          #   ending offset
284	.byte	1                               # Loc expr size
285	.byte	84                              # DW_OP_reg4
286	.byte	4                               # DW_LLE_offset_pair
287	.uleb128 .Ltmp11-.Lfunc_begin0          #   starting offset
288	.uleb128 .Ltmp13-.Lfunc_begin0          #   ending offset
289	.byte	4                               # Loc expr size
290	.byte	163                             # DW_OP_entry_value
291	.byte	1                               # 1
292	.byte	84                              # DW_OP_reg4
293	.byte	159                             # DW_OP_stack_value
294	.byte	4                               # DW_LLE_offset_pair
295	.uleb128 .Ltmp13-.Lfunc_begin0          #   starting offset
296	.uleb128 .Ltmp15-.Lfunc_begin0          #   ending offset
297	.byte	1                               # Loc expr size
298	.byte	84                              # DW_OP_reg4
299	.byte	4                               # DW_LLE_offset_pair
300	.uleb128 .Ltmp15-.Lfunc_begin0          #   starting offset
301	.uleb128 .Lfunc_end1-.Lfunc_begin0      #   ending offset
302	.byte	4                               # Loc expr size
303	.byte	163                             # DW_OP_entry_value
304	.byte	1                               # 1
305	.byte	84                              # DW_OP_reg4
306	.byte	159                             # DW_OP_stack_value
307	.byte	0                               # DW_LLE_end_of_list
308.Ldebug_list_header_end0:
309	.section	.debug_abbrev,"",@progbits
310	.byte	1                               # Abbreviation Code
311	.byte	74                              # DW_TAG_skeleton_unit
312	.byte	0                               # DW_CHILDREN_no
313	.byte	16                              # DW_AT_stmt_list
314	.byte	23                              # DW_FORM_sec_offset
315	.byte	114                             # DW_AT_str_offsets_base
316	.byte	23                              # DW_FORM_sec_offset
317	.byte	27                              # DW_AT_comp_dir
318	.byte	37                              # DW_FORM_strx1
319	.ascii	"\264B"                         # DW_AT_GNU_pubnames
320	.byte	25                              # DW_FORM_flag_present
321	.byte	118                             # DW_AT_dwo_name
322	.byte	37                              # DW_FORM_strx1
323	.byte	17                              # DW_AT_low_pc
324	.byte	27                              # DW_FORM_addrx
325	.byte	18                              # DW_AT_high_pc
326	.byte	6                               # DW_FORM_data4
327	.byte	115                             # DW_AT_addr_base
328	.byte	23                              # DW_FORM_sec_offset
329	.byte	0                               # EOM(1)
330	.byte	0                               # EOM(2)
331	.byte	0                               # EOM(3)
332	.section	.debug_info,"",@progbits
333.Lcu_begin0:
334	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
335.Ldebug_info_start0:
336	.short	5                               # DWARF version number
337	.byte	4                               # DWARF Unit Type
338	.byte	8                               # Address Size (in bytes)
339	.long	.debug_abbrev                   # Offset Into Abbrev. Section
340	.quad	-3440409667494789237
341	.byte	1                               # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
342	.long	.Lline_table_start0             # DW_AT_stmt_list
343	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
344	.byte	0                               # DW_AT_comp_dir
345                                        # DW_AT_GNU_pubnames
346	.byte	1                               # DW_AT_dwo_name
347	.byte	3                               # DW_AT_low_pc
348	.long	.Lfunc_end1-.Lfunc_begin0       # DW_AT_high_pc
349	.long	.Laddr_table_base0              # DW_AT_addr_base
350.Ldebug_info_end0:
351	.section	.debug_str_offsets,"",@progbits
352	.long	12                              # Length of String Offsets Set
353	.short	5
354	.short	0
355.Lstr_offsets_base0:
356	.section	.debug_str,"MS",@progbits,1
357.Lskel_string0:
358	.asciz	"." # string offset=0
359.Lskel_string1:
360	.asciz	"main.dwo"                      # string offset=38
361	.section	.debug_str_offsets,"",@progbits
362	.long	.Lskel_string0
363	.long	.Lskel_string1
364	.section	.debug_str_offsets.dwo,"e",@progbits
365	.long	56                              # Length of String Offsets Set
366	.short	5
367	.short	0
368	.section	.debug_str.dwo,"eMS",@progbits,1
369.Linfo_string0:
370	.asciz	"Foo"                           # string offset=0
371.Linfo_string1:
372	.asciz	"int"                           # string offset=4
373.Linfo_string2:
374	.asciz	"x"                             # string offset=8
375.Linfo_string3:
376	.asciz	"y"                             # string offset=10
377.Linfo_string4:
378	.asciz	"_Z3usePiS_"                    # string offset=12
379.Linfo_string5:
380	.asciz	"use"                           # string offset=23
381.Linfo_string6:
382	.asciz	"main"                          # string offset=27
383.Linfo_string7:
384	.asciz	"argc"                          # string offset=32
385.Linfo_string8:
386	.asciz	"argv"                          # string offset=37
387.Linfo_string9:
388	.asciz	"char"                          # string offset=42
389.Linfo_string10:
390	.asciz	"clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" # string offset=47
391.Linfo_string11:
392	.asciz	"main.cpp"                      # string offset=148
393.Linfo_string12:
394	.asciz	"main.dwo"                      # string offset=157
395	.section	.debug_str_offsets.dwo,"e",@progbits
396	.long	0
397	.long	4
398	.long	8
399	.long	10
400	.long	12
401	.long	23
402	.long	27
403	.long	32
404	.long	37
405	.long	42
406	.long	47
407	.long	148
408	.long	157
409	.section	.debug_info.dwo,"e",@progbits
410	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
411.Ldebug_info_dwo_start0:
412	.short	5                               # DWARF version number
413	.byte	5                               # DWARF Unit Type
414	.byte	8                               # Address Size (in bytes)
415	.long	0                               # Offset Into Abbrev. Section
416	.quad	-3440409667494789237
417	.byte	1                               # Abbrev [1] 0x14:0x95 DW_TAG_compile_unit
418	.byte	10                              # DW_AT_producer
419	.short	33                              # DW_AT_language
420	.byte	11                              # DW_AT_name
421	.byte	12                              # DW_AT_dwo_name
422	.byte	2                               # Abbrev [2] 0x1a:0x24 DW_TAG_subprogram
423	.byte	3                               # DW_AT_low_pc
424	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
425	.byte	1                               # DW_AT_frame_base
426	.byte	87
427                                        # DW_AT_call_all_calls
428	.long	88                              # DW_AT_abstract_origin
429	.byte	3                               # Abbrev [3] 0x26:0xb DW_TAG_variable
430	.byte	0                               # DW_AT_name
431	.long	62                              # DW_AT_type
432	.byte	0                               # DW_AT_decl_file
433	.byte	2                               # DW_AT_decl_line
434	.byte	2                               # DW_AT_location
435	.byte	161
436	.byte	0
437	.byte	4                               # Abbrev [4] 0x31:0x6 DW_TAG_formal_parameter
438	.byte	0                               # DW_AT_location
439	.long	93                              # DW_AT_abstract_origin
440	.byte	4                               # Abbrev [4] 0x37:0x6 DW_TAG_formal_parameter
441	.byte	1                               # DW_AT_location
442	.long	101                             # DW_AT_abstract_origin
443	.byte	0                               # End Of Children Mark
444	.byte	5                               # Abbrev [5] 0x3e:0x4 DW_TAG_base_type
445	.byte	1                               # DW_AT_name
446	.byte	5                               # DW_AT_encoding
447	.byte	4                               # DW_AT_byte_size
448	.byte	6                               # Abbrev [6] 0x42:0xb DW_TAG_variable
449	.byte	2                               # DW_AT_name
450	.long	62                              # DW_AT_type
451                                        # DW_AT_external
452	.byte	0                               # DW_AT_decl_file
453	.byte	7                               # DW_AT_decl_line
454	.byte	2                               # DW_AT_location
455	.byte	161
456	.byte	1
457	.byte	6                               # Abbrev [6] 0x4d:0xb DW_TAG_variable
458	.byte	3                               # DW_AT_name
459	.long	62                              # DW_AT_type
460                                        # DW_AT_external
461	.byte	0                               # DW_AT_decl_file
462	.byte	8                               # DW_AT_decl_line
463	.byte	2                               # DW_AT_location
464	.byte	161
465	.byte	2
466	.byte	7                               # Abbrev [7] 0x58:0x16 DW_TAG_subprogram
467	.byte	4                               # DW_AT_linkage_name
468	.byte	5                               # DW_AT_name
469	.byte	0                               # DW_AT_decl_file
470	.byte	1                               # DW_AT_decl_line
471                                        # DW_AT_external
472                                        # DW_AT_inline
473	.byte	8                               # Abbrev [8] 0x5d:0x8 DW_TAG_formal_parameter
474	.byte	2                               # DW_AT_name
475	.byte	0                               # DW_AT_decl_file
476	.byte	1                               # DW_AT_decl_line
477	.long	110                             # DW_AT_type
478	.byte	8                               # Abbrev [8] 0x65:0x8 DW_TAG_formal_parameter
479	.byte	3                               # DW_AT_name
480	.byte	0                               # DW_AT_decl_file
481	.byte	1                               # DW_AT_decl_line
482	.long	110                             # DW_AT_type
483	.byte	0                               # End Of Children Mark
484	.byte	9                               # Abbrev [9] 0x6e:0x5 DW_TAG_pointer_type
485	.long	62                              # DW_AT_type
486	.byte	10                              # Abbrev [10] 0x73:0x27 DW_TAG_subprogram
487	.byte	0                               # DW_AT_ranges
488	.byte	1                               # DW_AT_frame_base
489	.byte	87
490                                        # DW_AT_call_all_calls
491	.byte	6                               # DW_AT_name
492	.byte	0                               # DW_AT_decl_file
493	.byte	9                               # DW_AT_decl_line
494	.long	62                              # DW_AT_type
495                                        # DW_AT_external
496	.byte	11                              # Abbrev [11] 0x7e:0x9 DW_TAG_formal_parameter
497	.byte	2                               # DW_AT_location
498	.byte	7                               # DW_AT_name
499	.byte	0                               # DW_AT_decl_file
500	.byte	9                               # DW_AT_decl_line
501	.long	62                              # DW_AT_type
502	.byte	11                              # Abbrev [11] 0x87:0x9 DW_TAG_formal_parameter
503	.byte	3                               # DW_AT_location
504	.byte	8                               # DW_AT_name
505	.byte	0                               # DW_AT_decl_file
506	.byte	9                               # DW_AT_decl_line
507	.long	154                             # DW_AT_type
508	.byte	12                              # Abbrev [12] 0x90:0x9 DW_TAG_inlined_subroutine
509	.long	88                              # DW_AT_abstract_origin
510	.byte	1                               # DW_AT_ranges
511	.byte	0                               # DW_AT_call_file
512	.byte	12                              # DW_AT_call_line
513	.byte	4                               # DW_AT_call_column
514	.byte	0                               # End Of Children Mark
515	.byte	9                               # Abbrev [9] 0x9a:0x5 DW_TAG_pointer_type
516	.long	159                             # DW_AT_type
517	.byte	9                               # Abbrev [9] 0x9f:0x5 DW_TAG_pointer_type
518	.long	164                             # DW_AT_type
519	.byte	5                               # Abbrev [5] 0xa4:0x4 DW_TAG_base_type
520	.byte	9                               # DW_AT_name
521	.byte	6                               # DW_AT_encoding
522	.byte	1                               # DW_AT_byte_size
523	.byte	0                               # End Of Children Mark
524.Ldebug_info_dwo_end0:
525	.section	.debug_abbrev.dwo,"e",@progbits
526	.byte	1                               # Abbreviation Code
527	.byte	17                              # DW_TAG_compile_unit
528	.byte	1                               # DW_CHILDREN_yes
529	.byte	37                              # DW_AT_producer
530	.byte	37                              # DW_FORM_strx1
531	.byte	19                              # DW_AT_language
532	.byte	5                               # DW_FORM_data2
533	.byte	3                               # DW_AT_name
534	.byte	37                              # DW_FORM_strx1
535	.byte	118                             # DW_AT_dwo_name
536	.byte	37                              # DW_FORM_strx1
537	.byte	0                               # EOM(1)
538	.byte	0                               # EOM(2)
539	.byte	2                               # Abbreviation Code
540	.byte	46                              # DW_TAG_subprogram
541	.byte	1                               # DW_CHILDREN_yes
542	.byte	17                              # DW_AT_low_pc
543	.byte	27                              # DW_FORM_addrx
544	.byte	18                              # DW_AT_high_pc
545	.byte	6                               # DW_FORM_data4
546	.byte	64                              # DW_AT_frame_base
547	.byte	24                              # DW_FORM_exprloc
548	.byte	122                             # DW_AT_call_all_calls
549	.byte	25                              # DW_FORM_flag_present
550	.byte	49                              # DW_AT_abstract_origin
551	.byte	19                              # DW_FORM_ref4
552	.byte	0                               # EOM(1)
553	.byte	0                               # EOM(2)
554	.byte	3                               # Abbreviation Code
555	.byte	52                              # DW_TAG_variable
556	.byte	0                               # DW_CHILDREN_no
557	.byte	3                               # DW_AT_name
558	.byte	37                              # DW_FORM_strx1
559	.byte	73                              # DW_AT_type
560	.byte	19                              # DW_FORM_ref4
561	.byte	58                              # DW_AT_decl_file
562	.byte	11                              # DW_FORM_data1
563	.byte	59                              # DW_AT_decl_line
564	.byte	11                              # DW_FORM_data1
565	.byte	2                               # DW_AT_location
566	.byte	24                              # DW_FORM_exprloc
567	.byte	0                               # EOM(1)
568	.byte	0                               # EOM(2)
569	.byte	4                               # Abbreviation Code
570	.byte	5                               # DW_TAG_formal_parameter
571	.byte	0                               # DW_CHILDREN_no
572	.byte	2                               # DW_AT_location
573	.byte	34                              # DW_FORM_loclistx
574	.byte	49                              # DW_AT_abstract_origin
575	.byte	19                              # DW_FORM_ref4
576	.byte	0                               # EOM(1)
577	.byte	0                               # EOM(2)
578	.byte	5                               # Abbreviation Code
579	.byte	36                              # DW_TAG_base_type
580	.byte	0                               # DW_CHILDREN_no
581	.byte	3                               # DW_AT_name
582	.byte	37                              # DW_FORM_strx1
583	.byte	62                              # DW_AT_encoding
584	.byte	11                              # DW_FORM_data1
585	.byte	11                              # DW_AT_byte_size
586	.byte	11                              # DW_FORM_data1
587	.byte	0                               # EOM(1)
588	.byte	0                               # EOM(2)
589	.byte	6                               # Abbreviation Code
590	.byte	52                              # DW_TAG_variable
591	.byte	0                               # DW_CHILDREN_no
592	.byte	3                               # DW_AT_name
593	.byte	37                              # DW_FORM_strx1
594	.byte	73                              # DW_AT_type
595	.byte	19                              # DW_FORM_ref4
596	.byte	63                              # DW_AT_external
597	.byte	25                              # DW_FORM_flag_present
598	.byte	58                              # DW_AT_decl_file
599	.byte	11                              # DW_FORM_data1
600	.byte	59                              # DW_AT_decl_line
601	.byte	11                              # DW_FORM_data1
602	.byte	2                               # DW_AT_location
603	.byte	24                              # DW_FORM_exprloc
604	.byte	0                               # EOM(1)
605	.byte	0                               # EOM(2)
606	.byte	7                               # Abbreviation Code
607	.byte	46                              # DW_TAG_subprogram
608	.byte	1                               # DW_CHILDREN_yes
609	.byte	110                             # DW_AT_linkage_name
610	.byte	37                              # DW_FORM_strx1
611	.byte	3                               # DW_AT_name
612	.byte	37                              # DW_FORM_strx1
613	.byte	58                              # DW_AT_decl_file
614	.byte	11                              # DW_FORM_data1
615	.byte	59                              # DW_AT_decl_line
616	.byte	11                              # DW_FORM_data1
617	.byte	63                              # DW_AT_external
618	.byte	25                              # DW_FORM_flag_present
619	.byte	32                              # DW_AT_inline
620	.byte	33                              # DW_FORM_implicit_const
621	.byte	1
622	.byte	0                               # EOM(1)
623	.byte	0                               # EOM(2)
624	.byte	8                               # Abbreviation Code
625	.byte	5                               # DW_TAG_formal_parameter
626	.byte	0                               # DW_CHILDREN_no
627	.byte	3                               # DW_AT_name
628	.byte	37                              # DW_FORM_strx1
629	.byte	58                              # DW_AT_decl_file
630	.byte	11                              # DW_FORM_data1
631	.byte	59                              # DW_AT_decl_line
632	.byte	11                              # DW_FORM_data1
633	.byte	73                              # DW_AT_type
634	.byte	19                              # DW_FORM_ref4
635	.byte	0                               # EOM(1)
636	.byte	0                               # EOM(2)
637	.byte	9                               # Abbreviation Code
638	.byte	15                              # DW_TAG_pointer_type
639	.byte	0                               # DW_CHILDREN_no
640	.byte	73                              # DW_AT_type
641	.byte	19                              # DW_FORM_ref4
642	.byte	0                               # EOM(1)
643	.byte	0                               # EOM(2)
644	.byte	10                              # Abbreviation Code
645	.byte	46                              # DW_TAG_subprogram
646	.byte	1                               # DW_CHILDREN_yes
647	.byte	85                              # DW_AT_ranges
648	.byte	35                              # DW_FORM_rnglistx
649	.byte	64                              # DW_AT_frame_base
650	.byte	24                              # DW_FORM_exprloc
651	.byte	122                             # DW_AT_call_all_calls
652	.byte	25                              # DW_FORM_flag_present
653	.byte	3                               # DW_AT_name
654	.byte	37                              # DW_FORM_strx1
655	.byte	58                              # DW_AT_decl_file
656	.byte	11                              # DW_FORM_data1
657	.byte	59                              # DW_AT_decl_line
658	.byte	11                              # DW_FORM_data1
659	.byte	73                              # DW_AT_type
660	.byte	19                              # DW_FORM_ref4
661	.byte	63                              # DW_AT_external
662	.byte	25                              # DW_FORM_flag_present
663	.byte	0                               # EOM(1)
664	.byte	0                               # EOM(2)
665	.byte	11                              # Abbreviation Code
666	.byte	5                               # DW_TAG_formal_parameter
667	.byte	0                               # DW_CHILDREN_no
668	.byte	2                               # DW_AT_location
669	.byte	34                              # DW_FORM_loclistx
670	.byte	3                               # DW_AT_name
671	.byte	37                              # DW_FORM_strx1
672	.byte	58                              # DW_AT_decl_file
673	.byte	11                              # DW_FORM_data1
674	.byte	59                              # DW_AT_decl_line
675	.byte	11                              # DW_FORM_data1
676	.byte	73                              # DW_AT_type
677	.byte	19                              # DW_FORM_ref4
678	.byte	0                               # EOM(1)
679	.byte	0                               # EOM(2)
680	.byte	12                              # Abbreviation Code
681	.byte	29                              # DW_TAG_inlined_subroutine
682	.byte	0                               # DW_CHILDREN_no
683	.byte	49                              # DW_AT_abstract_origin
684	.byte	19                              # DW_FORM_ref4
685	.byte	85                              # DW_AT_ranges
686	.byte	35                              # DW_FORM_rnglistx
687	.byte	88                              # DW_AT_call_file
688	.byte	11                              # DW_FORM_data1
689	.byte	89                              # DW_AT_call_line
690	.byte	11                              # DW_FORM_data1
691	.byte	87                              # DW_AT_call_column
692	.byte	11                              # DW_FORM_data1
693	.byte	0                               # EOM(1)
694	.byte	0                               # EOM(2)
695	.byte	0                               # EOM(3)
696	.section	.debug_rnglists.dwo,"e",@progbits
697	.long	.Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
698.Ldebug_list_header_start1:
699	.short	5                               # Version
700	.byte	8                               # Address size
701	.byte	0                               # Segment selector size
702	.long	2                               # Offset entry count
703.Lrnglists_dwo_table_base0:
704	.long	.Ldebug_ranges0-.Lrnglists_dwo_table_base0
705	.long	.Ldebug_ranges1-.Lrnglists_dwo_table_base0
706.Ldebug_ranges0:
707	.byte	4                               # DW_RLE_offset_pair
708	.uleb128 .Lfunc_begin1-.Lfunc_begin0    #   starting offset
709	.uleb128 .Lfunc_end1-.Lfunc_begin0      #   ending offset
710	.byte	0                               # DW_RLE_end_of_list
711.Ldebug_ranges1:
712	.byte	4                               # DW_RLE_offset_pair
713	.uleb128 .Ltmp10-.Lfunc_begin0          #   starting offset
714	.uleb128 .Ltmp12-.Lfunc_begin0          #   ending offset
715	.byte	4                               # DW_RLE_offset_pair
716	.uleb128 .Ltmp14-.Lfunc_begin0          #   starting offset
717	.uleb128 .Ltmp17-.Lfunc_begin0          #   ending offset
718	.byte	0                               # DW_RLE_end_of_list
719.Ldebug_list_header_end1:
720	.section	.debug_addr,"",@progbits
721	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
722.Ldebug_addr_start0:
723	.short	5                               # DWARF version number
724	.byte	8                               # Address size
725	.byte	0                               # Segment selector size
726.Laddr_table_base0:
727	.quad	_ZZ3usePiS_E3Foo
728	.quad	x
729	.quad	y
730	.quad	.Lfunc_begin0
731.Ldebug_addr_end0:
732	.section	.debug_gnu_pubnames,"",@progbits
733	.long	.LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
734.LpubNames_start0:
735	.short	2                               # DWARF Version
736	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
737	.long	40                              # Compilation Unit Length
738	.long	38                              # DIE offset
739	.byte	160                             # Attributes: VARIABLE, STATIC
740	.asciz	"use::Foo"                      # External Name
741	.long	66                              # DIE offset
742	.byte	32                              # Attributes: VARIABLE, EXTERNAL
743	.asciz	"x"                             # External Name
744	.long	77                              # DIE offset
745	.byte	32                              # Attributes: VARIABLE, EXTERNAL
746	.asciz	"y"                             # External Name
747	.long	88                              # DIE offset
748	.byte	48                              # Attributes: FUNCTION, EXTERNAL
749	.asciz	"use"                           # External Name
750	.long	115                             # DIE offset
751	.byte	48                              # Attributes: FUNCTION, EXTERNAL
752	.asciz	"main"                          # External Name
753	.long	0                               # End Mark
754.LpubNames_end0:
755	.section	.debug_gnu_pubtypes,"",@progbits
756	.long	.LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
757.LpubTypes_start0:
758	.short	2                               # DWARF Version
759	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
760	.long	40                              # Compilation Unit Length
761	.long	62                              # DIE offset
762	.byte	144                             # Attributes: TYPE, STATIC
763	.asciz	"int"                           # External Name
764	.long	164                             # DIE offset
765	.byte	144                             # Attributes: TYPE, STATIC
766	.asciz	"char"                          # External Name
767	.long	0                               # End Mark
768.LpubTypes_end0:
769	.ident	"clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)"
770	.section	".note.GNU-stack","",@progbits
771	.addrsig
772	.addrsig_sym _ZGVZ3usePiS_E3Foo
773	.section	.debug_line,"",@progbits
774.Lline_table_start0:
775