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