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