Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / bolt / test / X86 / Inputs / dwarf4-df-change-in-dw-op-gnu-addr-index-main.s
blob6817057c2ac2b0a582cba68cf1dee9fc6db63105
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 # }
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 # }
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
101 main: # @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
185 .long 0 # 0x0
186 .size x, 4
188 .type y,@object # @y
189 .data
190 .globl y
191 .p2align 2, 0x0
193 .long 1 # 0x1
194 .size y, 4
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: