1 // Test various single-location
and location list formats.
2 // REQUIRES
: aarch64-registered-target
4 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64-linux-android
-o
%t.o
%s
5 // RUN
: echo
'FRAME %t.o 0x4' | llvm-symbolizer | FileCheck
%s
--check-prefix
=CHECK0
6 // RUN
: echo
'FRAME %t.o 0x24' | llvm-symbolizer | FileCheck
%s
--check-prefix
=CHECK1
7 // RUN
: echo
'FRAME %t.o 0x44' | llvm-symbolizer | FileCheck
%s
--check-prefix
=CHECK2
8 // RUN
: echo
'FRAME %t.o 0x68' | llvm-symbolizer | FileCheck
%s
--check-prefix
=CHECK3
9 // RUN
: echo
'FRAME %t.o 0x94' | llvm-symbolizer | FileCheck
%s
--check-prefix
=CHECK4
11 // Built from the following source with
12 // clang
-target aarch64-linux-android
-O3
-g
-S
13 // and edited to replace DW_OP_fbreg with DW_OP_breg29 in func00
(search for EDIT below
).
45 // DW_AT_location
(DW_OP_breg29 W29-
4)
48 // CHECK0-NEXT
: {{.*}}dbg.c:4
49 // CHECK0-NEXT
: -4 4 ??
51 // DW_AT_location
(DW_OP_fbreg
-4)
54 // CHECK1-NEXT
: {{.*}}dbg.c:9
55 // CHECK1-NEXT
: -4 4 ??
57 // DW_AT_location
(0x00000000:
58 // [0x000000000000004c, 0x0000000000000058): DW_OP_breg29 W29-
4
59 // [0x0000000000000058, 0x000000000000005c): DW_OP_reg0 W0
)
62 // CHECK2-NEXT
: {{.*}}dbg.c:14
63 // CHECK2-NEXT
: -4 4 ??
65 // DW_AT_location
(0x00000037:
66 // [0x0000000000000078, 0x0000000000000080): DW_OP_consts
+1, DW_OP_stack_value
67 // [0x0000000000000080, 0x0000000000000088): DW_OP_breg29 W29-
4
68 // [0x0000000000000088, 0x000000000000008c): DW_OP_reg0 W0
)
71 // CHECK3-NEXT
: {{.*}}dbg.c:20
72 // CHECK3-NEXT
: -4 4 ??
75 // DW_AT_location
(0x00000083:
76 // [0x0000000000000090, 0x00000000000000a0): DW_OP_reg0 W0
77 // [0x00000000000000a0, 0x00000000000000ac): DW_OP_reg19 W19
)
80 // CHECK4-NEXT
: {{.*}}dbg.c:25
81 // CHECK4-NEXT
: ??
4 ??
84 // CHECK4-NEXT
: {{.*}}dbg.c:26
85 // CHECK4-NEXT
: ??
4 ??
89 .globl func00 // -- Begin function func00
91 .type func00,@function
94 .file 1 "/tmp" "dbg.c"
95 .loc 1 3 0 // /tmp/dbg.c:3:0
96 .cfi_sections .debug_frame
99 sub sp
, sp
, #32 // =32
100 stp x29
, x30
, [sp
, #16] // 16-byte Folded Spill
101 add x29
, sp
, #16 // =16
106 //DEBUG_VALUE
: func00
:x
<- [DW_OP_constu
4, DW_OP_minus
, DW_OP_deref
] $fp
107 .loc 1 5 3 prologue_end // /tmp/dbg.c:5:3
108 sub x0
, x29
, #4 // =4
111 .loc 1 6 1 // /tmp/dbg.c:6:1
112 ldp x29
, x30
, [sp
, #16] // 16-byte Folded Reload
113 add sp
, sp
, #32 // =32
117 .size func00, .Lfunc_end0-func00
120 .globl func0 // -- Begin function func0
122 .type func0,@function
125 .loc 1 8 0 // /tmp/dbg.c:8:0
128 sub sp
, sp
, #32 // =32
129 stp x29
, x30
, [sp
, #16] // 16-byte Folded Spill
130 add x29
, sp
, #16 // =16
135 //DEBUG_VALUE
: func0
:x
<- [DW_OP_constu
4, DW_OP_minus
, DW_OP_deref
] $fp
136 .loc 1 10 3 prologue_end // /tmp/dbg.c:10:3
137 sub x0
, x29
, #4 // =4
140 .loc 1 11 1 // /tmp/dbg.c:11:1
141 ldp x29
, x30
, [sp
, #16] // 16-byte Folded Reload
142 add sp
, sp
, #32 // =32
146 .size func0, .Lfunc_end1-func0
149 .globl func1 // -- Begin function func1
151 .type func1,@function
154 .loc 1 13 0 // /tmp/dbg.c:13:0
157 sub sp
, sp
, #32 // =32
158 stp x29
, x30
, [sp
, #16] // 16-byte Folded Spill
159 add x29
, sp
, #16 // =16
164 //DEBUG_VALUE
: func1
:x
<- [DW_OP_constu
4, DW_OP_minus
, DW_OP_deref
] $fp
165 .loc 1 15 3 prologue_end // /tmp/dbg.c:15:3
166 sub x0
, x29
, #4 // =4
169 .loc 1 16 10 // /tmp/dbg.c:16:10
172 //DEBUG_VALUE
: func1
:x
<- $w0
173 .loc 1 16 3 is_stmt 0 // /tmp/dbg.c:16:3
174 ldp x29
, x30
, [sp
, #16] // 16-byte Folded Reload
175 add sp
, sp
, #32 // =32
179 .size func1, .Lfunc_end2-func1
182 .globl func2 // -- Begin function func2
184 .type func2,@function
187 .loc 1 19 0 is_stmt 1 // /tmp/dbg.c:19:0
190 sub sp
, sp
, #32 // =32
191 stp x29
, x30
, [sp
, #16] // 16-byte Folded Spill
192 add x29
, sp
, #16 // =16
198 //DEBUG_VALUE
: func2
:x
<- 1
199 .loc 1 21 3 prologue_end // /tmp/dbg.c:21:3
200 sub x0
, x29
, #4 // =4
201 .loc 1 20 7 // /tmp/dbg.c:20:7
204 //DEBUG_VALUE
: func2
:x
<- [DW_OP_constu
4, DW_OP_minus
, DW_OP_deref
] $fp
205 .loc 1 21 3 // /tmp/dbg.c:21:3
208 .loc 1 22 10 // /tmp/dbg.c:22:10
211 //DEBUG_VALUE
: func2
:x
<- $w0
212 .loc 1 22 3 is_stmt 0 // /tmp/dbg.c:22:3
213 ldp x29
, x30
, [sp
, #16] // 16-byte Folded Reload
214 add sp
, sp
, #32 // =32
218 .size func2, .Lfunc_end3-func2
221 .globl func3 // -- Begin function func3
223 .type func3,@function
226 .loc 1 25 0 is_stmt 1 // /tmp/dbg.c:25:0
229 //DEBUG_VALUE
: func3
:b <- $w0
230 stp x29
, x30
, [sp
, #-32]! // 16-byte Folded Spill
231 str x19
, [sp
, #16] // 8-byte Folded Spill
238 //DEBUG_VALUE
: func3
:x
<- $w0
241 //DEBUG_VALUE
: func3
:x
<- $w19
242 //DEBUG_VALUE
: func3
:b <- $w19
243 .loc 1 27 3 prologue_end // /tmp/dbg.c:27:3
246 .loc 1 28 3 // /tmp/dbg.c:28:3
248 ldr x19
, [sp
, #16] // 8-byte Folded Reload
250 ldp x29
, x30
, [sp
], #32 // 16-byte Folded Reload
254 .size func3, .Lfunc_end4-func3
257 .section .debug_str,"MS",@progbits,1
259 .asciz "clang version 10.0.0 (git@github.com:llvm/llvm-project.git 092ef9c6cf4678d2b8df7738110ecd405fe1fe3d)" // string offset=0
261 .asciz "/tmp/dbg.c" // string offset=101
263 .asciz "/code/build-llvm-cmake" // string offset=112
265 .asciz "use" // string offset=135
267 .asciz "usei" // string offset=139
269 .asciz "int" // string offset=144
271 .asciz "func00" // string offset=148
273 .asciz "func0" // string offset=155
275 .asciz "func1" // string offset=161
277 .asciz "func2" // string offset=167
279 .asciz "func3" // string offset=173
281 .asciz "x" // string offset=179
283 .asciz "b" // string offset=181
284 .section .debug_loc,"",@progbits
286 .xword .Ltmp6-.Lfunc_begin0
287 .xword .Ltmp8-.Lfunc_begin0
288 .hword 2 // Loc expr size
289 .byte 141 // DW_OP_breg29
291 .xword .Ltmp8-.Lfunc_begin0
292 .xword .Lfunc_end2-.Lfunc_begin0
293 .hword 1 // Loc expr size
294 .byte 80 // DW_OP_reg0
298 .xword .Ltmp10-.Lfunc_begin0
299 .xword .Ltmp11-.Lfunc_begin0
300 .hword 3 // Loc expr size
301 .byte 17 // DW_OP_consts
303 .byte 159 // DW_OP_stack_value
304 .xword .Ltmp11-.Lfunc_begin0
305 .xword .Ltmp13-.Lfunc_begin0
306 .hword 2 // Loc expr size
307 .byte 141 // DW_OP_breg29
309 .xword .Ltmp13-.Lfunc_begin0
310 .xword .Lfunc_end3-.Lfunc_begin0
311 .hword 1 // Loc expr size
312 .byte 80 // DW_OP_reg0
316 .xword .Lfunc_begin4-.Lfunc_begin0
317 .xword .Ltmp16-.Lfunc_begin0
318 .hword 1 // Loc expr size
319 .byte 80 // DW_OP_reg0
320 .xword .Ltmp16-.Lfunc_begin0
321 .xword .Ltmp18-.Lfunc_begin0
322 .hword 1 // Loc expr size
323 .byte 99 // DW_OP_reg19
327 .xword .Ltmp15-.Lfunc_begin0
328 .xword .Ltmp16-.Lfunc_begin0
329 .hword 1 // Loc expr size
330 .byte 80 // DW_OP_reg0
331 .xword .Ltmp16-.Lfunc_begin0
332 .xword .Ltmp18-.Lfunc_begin0
333 .hword 1 // Loc expr size
334 .byte 99 // DW_OP_reg19
337 .section .debug_abbrev,"",@progbits
338 .byte 1 // Abbreviation Code
339 .byte 17 // DW_TAG_compile_unit
340 .byte 1 // DW_CHILDREN_yes
341 .byte 37 // DW_AT_producer
342 .byte 14 // DW_FORM_strp
343 .byte 19 // DW_AT_language
344 .byte 5 // DW_FORM_data2
345 .byte 3 // DW_AT_name
346 .byte 14 // DW_FORM_strp
347 .byte 16 // DW_AT_stmt_list
348 .byte 23 // DW_FORM_sec_offset
349 .byte 27 // DW_AT_comp_dir
350 .byte 14 // DW_FORM_strp
351 .byte 17 // DW_AT_low_pc
352 .byte 1 // DW_FORM_addr
353 .byte 18 // DW_AT_high_pc
354 .byte 6 // DW_FORM_data4
357 .byte 2 // Abbreviation Code
358 .byte 46 // DW_TAG_subprogram
359 .byte 1 // DW_CHILDREN_yes
360 .byte 17 // DW_AT_low_pc
361 .byte 1 // DW_FORM_addr
362 .byte 18 // DW_AT_high_pc
363 .byte 6 // DW_FORM_data4
364 .byte 64 // DW_AT_frame_base
365 .byte 24 // DW_FORM_exprloc
366 .ascii "\227B" // DW_AT_GNU_all_call_sites
367 .byte 25 // DW_FORM_flag_present
368 .byte 3 // DW_AT_name
369 .byte 14 // DW_FORM_strp
370 .byte 58 // DW_AT_decl_file
371 .byte 11 // DW_FORM_data1
372 .byte 59 // DW_AT_decl_line
373 .byte 11 // DW_FORM_data1
374 .byte 63 // DW_AT_external
375 .byte 25 // DW_FORM_flag_present
378 .byte 3 // Abbreviation Code
379 .byte 52 // DW_TAG_variable
380 .byte 0 // DW_CHILDREN_no
381 .byte 2 // DW_AT_location
382 .byte 24 // DW_FORM_exprloc
383 .byte 3 // DW_AT_name
384 .byte 14 // DW_FORM_strp
385 .byte 58 // DW_AT_decl_file
386 .byte 11 // DW_FORM_data1
387 .byte 59 // DW_AT_decl_line
388 .byte 11 // DW_FORM_data1
389 .byte 73 // DW_AT_type
390 .byte 19 // DW_FORM_ref4
393 .byte 4 // Abbreviation Code
394 .ascii "\211\202\001" // DW_TAG_GNU_call_site
395 .byte 0 // DW_CHILDREN_no
396 .byte 49 // DW_AT_abstract_origin
397 .byte 19 // DW_FORM_ref4
398 .byte 17 // DW_AT_low_pc
399 .byte 1 // DW_FORM_addr
402 .byte 5 // Abbreviation Code
403 .byte 46 // DW_TAG_subprogram
404 .byte 1 // DW_CHILDREN_yes
405 .byte 3 // DW_AT_name
406 .byte 14 // DW_FORM_strp
407 .byte 58 // DW_AT_decl_file
408 .byte 11 // DW_FORM_data1
409 .byte 59 // DW_AT_decl_line
410 .byte 11 // DW_FORM_data1
411 .byte 39 // DW_AT_prototyped
412 .byte 25 // DW_FORM_flag_present
413 .byte 60 // DW_AT_declaration
414 .byte 25 // DW_FORM_flag_present
415 .byte 63 // DW_AT_external
416 .byte 25 // DW_FORM_flag_present
419 .byte 6 // Abbreviation Code
420 .byte 5 // DW_TAG_formal_parameter
421 .byte 0 // DW_CHILDREN_no
422 .byte 73 // DW_AT_type
423 .byte 19 // DW_FORM_ref4
426 .byte 7 // Abbreviation Code
427 .byte 15 // DW_TAG_pointer_type
428 .byte 0 // DW_CHILDREN_no
431 .byte 8 // Abbreviation Code
432 .byte 46 // DW_TAG_subprogram
433 .byte 1 // DW_CHILDREN_yes
434 .byte 17 // DW_AT_low_pc
435 .byte 1 // DW_FORM_addr
436 .byte 18 // DW_AT_high_pc
437 .byte 6 // DW_FORM_data4
438 .byte 64 // DW_AT_frame_base
439 .byte 24 // DW_FORM_exprloc
440 .ascii "\227B" // DW_AT_GNU_all_call_sites
441 .byte 25 // DW_FORM_flag_present
442 .byte 3 // DW_AT_name
443 .byte 14 // DW_FORM_strp
444 .byte 58 // DW_AT_decl_file
445 .byte 11 // DW_FORM_data1
446 .byte 59 // DW_AT_decl_line
447 .byte 11 // DW_FORM_data1
448 .byte 73 // DW_AT_type
449 .byte 19 // DW_FORM_ref4
450 .byte 63 // DW_AT_external
451 .byte 25 // DW_FORM_flag_present
454 .byte 9 // Abbreviation Code
455 .byte 52 // DW_TAG_variable
456 .byte 0 // DW_CHILDREN_no
457 .byte 2 // DW_AT_location
458 .byte 23 // DW_FORM_sec_offset
459 .byte 3 // DW_AT_name
460 .byte 14 // DW_FORM_strp
461 .byte 58 // DW_AT_decl_file
462 .byte 11 // DW_FORM_data1
463 .byte 59 // DW_AT_decl_line
464 .byte 11 // DW_FORM_data1
465 .byte 73 // DW_AT_type
466 .byte 19 // DW_FORM_ref4
469 .byte 10 // Abbreviation Code
470 .byte 46 // DW_TAG_subprogram
471 .byte 1 // DW_CHILDREN_yes
472 .byte 17 // DW_AT_low_pc
473 .byte 1 // DW_FORM_addr
474 .byte 18 // DW_AT_high_pc
475 .byte 6 // DW_FORM_data4
476 .byte 64 // DW_AT_frame_base
477 .byte 24 // DW_FORM_exprloc
478 .ascii "\227B" // DW_AT_GNU_all_call_sites
479 .byte 25 // DW_FORM_flag_present
480 .byte 3 // DW_AT_name
481 .byte 14 // DW_FORM_strp
482 .byte 58 // DW_AT_decl_file
483 .byte 11 // DW_FORM_data1
484 .byte 59 // DW_AT_decl_line
485 .byte 11 // DW_FORM_data1
486 .byte 39 // DW_AT_prototyped
487 .byte 25 // DW_FORM_flag_present
488 .byte 73 // DW_AT_type
489 .byte 19 // DW_FORM_ref4
490 .byte 63 // DW_AT_external
491 .byte 25 // DW_FORM_flag_present
494 .byte 11 // Abbreviation Code
495 .byte 5 // DW_TAG_formal_parameter
496 .byte 0 // DW_CHILDREN_no
497 .byte 2 // DW_AT_location
498 .byte 23 // DW_FORM_sec_offset
499 .byte 3 // DW_AT_name
500 .byte 14 // DW_FORM_strp
501 .byte 58 // DW_AT_decl_file
502 .byte 11 // DW_FORM_data1
503 .byte 59 // DW_AT_decl_line
504 .byte 11 // DW_FORM_data1
505 .byte 73 // DW_AT_type
506 .byte 19 // DW_FORM_ref4
509 .byte 12 // Abbreviation Code
510 .byte 36 // DW_TAG_base_type
511 .byte 0 // DW_CHILDREN_no
512 .byte 3 // DW_AT_name
513 .byte 14 // DW_FORM_strp
514 .byte 62 // DW_AT_encoding
515 .byte 11 // DW_FORM_data1
516 .byte 11 // DW_AT_byte_size
517 .byte 11 // DW_FORM_data1
521 .section .debug_info,"",@progbits
523 .word .Ldebug_info_end0-.Ldebug_info_start0 // Length of Unit
525 .hword 4 // DWARF version number
526 .word .debug_abbrev // Offset Into Abbrev. Section
527 .byte 8 // Address Size (in bytes)
528 .byte 1 // Abbrev [1] 0xb:0x155 DW_TAG_compile_unit
529 .word .Linfo_string0 // DW_AT_producer
530 .hword 12 // DW_AT_language
531 .word .Linfo_string1 // DW_AT_name
532 .word .Lline_table_start0 // DW_AT_stmt_list
533 .word .Linfo_string2 // DW_AT_comp_dir
534 .xword .Lfunc_begin0 // DW_AT_low_pc
535 .word .Lfunc_end4-.Lfunc_begin0 // DW_AT_high_pc
536 .byte 2 // Abbrev [2] 0x2a:0x31 DW_TAG_subprogram
537 .xword .Lfunc_begin0 // DW_AT_low_pc
538 .word .Lfunc_end0-.Lfunc_begin0 // DW_AT_high_pc
539 .byte 1 // DW_AT_frame_base
541 // DW_AT_GNU_all_call_sites
542 .word .Linfo_string6 // DW_AT_name
543 .byte 1 // DW_AT_decl_file
544 .byte 3 // DW_AT_decl_line
546 .byte 3 // Abbrev [3] 0x3f:0xe DW_TAG_variable
547 .byte 2 // DW_AT_location
548 .byte 141 // DW_OP_breg29 !!! EDIT: 145 (fbreg) to 141 (breg29)
550 .word .Linfo_string11 // DW_AT_name
551 .byte 1 // DW_AT_decl_file
552 .byte 4 // DW_AT_decl_line
553 .word 344 // DW_AT_type
554 .byte 4 // Abbrev [4] 0x4d:0xd DW_TAG_GNU_call_site
555 .word 91 // DW_AT_abstract_origin
556 .xword .Ltmp1 // DW_AT_low_pc
557 .byte 0 // End Of Children Mark
558 .byte 5 // Abbrev [5] 0x5b:0xd DW_TAG_subprogram
559 .word .Linfo_string3 // DW_AT_name
560 .byte 1 // DW_AT_decl_file
561 .byte 1 // DW_AT_decl_line
565 .byte 6 // Abbrev [6] 0x62:0x5 DW_TAG_formal_parameter
566 .word 104 // DW_AT_type
567 .byte 0 // End Of Children Mark
568 .byte 7 // Abbrev [7] 0x68:0x1 DW_TAG_pointer_type
569 .byte 2 // Abbrev [2] 0x69:0x31 DW_TAG_subprogram
570 .xword .Lfunc_begin1 // DW_AT_low_pc
571 .word .Lfunc_end1-.Lfunc_begin1 // DW_AT_high_pc
572 .byte 1 // DW_AT_frame_base
574 // DW_AT_GNU_all_call_sites
575 .word .Linfo_string7 // DW_AT_name
576 .byte 1 // DW_AT_decl_file
577 .byte 8 // DW_AT_decl_line
579 .byte 3 // Abbrev [3] 0x7e:0xe DW_TAG_variable
580 .byte 2 // DW_AT_location
583 .word .Linfo_string11 // DW_AT_name
584 .byte 1 // DW_AT_decl_file
585 .byte 9 // DW_AT_decl_line
586 .word 344 // DW_AT_type
587 .byte 4 // Abbrev [4] 0x8c:0xd DW_TAG_GNU_call_site
588 .word 91 // DW_AT_abstract_origin
589 .xword .Ltmp4 // DW_AT_low_pc
590 .byte 0 // End Of Children Mark
591 .byte 8 // Abbrev [8] 0x9a:0x36 DW_TAG_subprogram
592 .xword .Lfunc_begin2 // DW_AT_low_pc
593 .word .Lfunc_end2-.Lfunc_begin2 // DW_AT_high_pc
594 .byte 1 // DW_AT_frame_base
596 // DW_AT_GNU_all_call_sites
597 .word .Linfo_string8 // DW_AT_name
598 .byte 1 // DW_AT_decl_file
599 .byte 13 // DW_AT_decl_line
600 .word 344 // DW_AT_type
602 .byte 9 // Abbrev [9] 0xb3:0xf DW_TAG_variable
603 .word .Ldebug_loc0 // DW_AT_location
604 .word .Linfo_string11 // DW_AT_name
605 .byte 1 // DW_AT_decl_file
606 .byte 14 // DW_AT_decl_line
607 .word 344 // DW_AT_type
608 .byte 4 // Abbrev [4] 0xc2:0xd DW_TAG_GNU_call_site
609 .word 91 // DW_AT_abstract_origin
610 .xword .Ltmp7 // DW_AT_low_pc
611 .byte 0 // End Of Children Mark
612 .byte 8 // Abbrev [8] 0xd0:0x36 DW_TAG_subprogram
613 .xword .Lfunc_begin3 // DW_AT_low_pc
614 .word .Lfunc_end3-.Lfunc_begin3 // DW_AT_high_pc
615 .byte 1 // DW_AT_frame_base
617 // DW_AT_GNU_all_call_sites
618 .word .Linfo_string9 // DW_AT_name
619 .byte 1 // DW_AT_decl_file
620 .byte 19 // DW_AT_decl_line
621 .word 344 // DW_AT_type
623 .byte 9 // Abbrev [9] 0xe9:0xf DW_TAG_variable
624 .word .Ldebug_loc1 // DW_AT_location
625 .word .Linfo_string11 // DW_AT_name
626 .byte 1 // DW_AT_decl_file
627 .byte 20 // DW_AT_decl_line
628 .word 344 // DW_AT_type
629 .byte 4 // Abbrev [4] 0xf8:0xd DW_TAG_GNU_call_site
630 .word 91 // DW_AT_abstract_origin
631 .xword .Ltmp12 // DW_AT_low_pc
632 .byte 0 // End Of Children Mark
633 .byte 10 // Abbrev [10] 0x106:0x45 DW_TAG_subprogram
634 .xword .Lfunc_begin4 // DW_AT_low_pc
635 .word .Lfunc_end4-.Lfunc_begin4 // DW_AT_high_pc
636 .byte 1 // DW_AT_frame_base
638 // DW_AT_GNU_all_call_sites
639 .word .Linfo_string10 // DW_AT_name
640 .byte 1 // DW_AT_decl_file
641 .byte 25 // DW_AT_decl_line
643 .word 344 // DW_AT_type
645 .byte 11 // Abbrev [11] 0x11f:0xf DW_TAG_formal_parameter
646 .word .Ldebug_loc2 // DW_AT_location
647 .word .Linfo_string12 // DW_AT_name
648 .byte 1 // DW_AT_decl_file
649 .byte 25 // DW_AT_decl_line
650 .word 344 // DW_AT_type
651 .byte 9 // Abbrev [9] 0x12e:0xf DW_TAG_variable
652 .word .Ldebug_loc3 // DW_AT_location
653 .word .Linfo_string11 // DW_AT_name
654 .byte 1 // DW_AT_decl_file
655 .byte 26 // DW_AT_decl_line
656 .word 344 // DW_AT_type
657 .byte 4 // Abbrev [4] 0x13d:0xd DW_TAG_GNU_call_site
658 .word 331 // DW_AT_abstract_origin
659 .xword .Ltmp17 // DW_AT_low_pc
660 .byte 0 // End Of Children Mark
661 .byte 5 // Abbrev [5] 0x14b:0xd DW_TAG_subprogram
662 .word .Linfo_string4 // DW_AT_name
663 .byte 1 // DW_AT_decl_file
664 .byte 2 // DW_AT_decl_line
668 .byte 6 // Abbrev [6] 0x152:0x5 DW_TAG_formal_parameter
669 .word 344 // DW_AT_type
670 .byte 0 // End Of Children Mark
671 .byte 12 // Abbrev [12] 0x158:0x7 DW_TAG_base_type
672 .word .Linfo_string5 // DW_AT_name
673 .byte 5 // DW_AT_encoding
674 .byte 4 // DW_AT_byte_size
675 .byte 0 // End Of Children Mark
677 .ident "clang version 10.0.0 (git@github.com:llvm/llvm-project.git 092ef9c6cf4678d2b8df7738110ecd405fe1fe3d)"
678 .section ".note.GNU-stack","",@progbits
679 .section .debug_line,"",@progbits