[Instrumentation] Fix a warning
[llvm-project.git] / llvm / test / tools / llvm-symbolizer / frame-loclist.s
blob53db9d87b8fcd0c532613db32bcbf4da33c822fc
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).
15 // void use(void *);
16 // void usei(int);
17 // void func00() {
18 // int x;
19 // use(&x);
20 // }
22 // void func0() {
23 // int x;
24 // use(&x);
25 // }
27 // int func1() {
28 // int x;
29 // use(&x);
30 // return x;
31 // }
33 // int func2() {
34 // int x = 1;
35 // use(&x);
36 // return x;
37 // }
39 // int func3(int b) {
40 // int x = b;
41 // usei(x);
42 // return x;
43 // }
45 // DW_AT_location (DW_OP_breg29 W29-4)
46 // CHECK0: func00
47 // CHECK0-NEXT: x
48 // CHECK0-NEXT: {{.*}}dbg.c:4
49 // CHECK0-NEXT: -4 4 ??
51 // DW_AT_location (DW_OP_fbreg -4)
52 // CHECK1: func0{{$}}
53 // CHECK1-NEXT: x
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)
60 // CHECK2: func1
61 // CHECK2-NEXT: x
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)
69 // CHECK3: func2
70 // CHECK3-NEXT: x
71 // CHECK3-NEXT: {{.*}}dbg.c:20
72 // CHECK3-NEXT: -4 4 ??
74 // No stack location.
75 // DW_AT_location (0x00000083:
76 // [0x0000000000000090, 0x00000000000000a0): DW_OP_reg0 W0
77 // [0x00000000000000a0, 0x00000000000000ac): DW_OP_reg19 W19)
78 // CHECK4: func3
79 // CHECK4-NEXT: b
80 // CHECK4-NEXT: {{.*}}dbg.c:25
81 // CHECK4-NEXT: ?? 4 ??
82 // CHECK4-NEXT: func3
83 // CHECK4-NEXT: x
84 // CHECK4-NEXT: {{.*}}dbg.c:26
85 // CHECK4-NEXT: ?? 4 ??
87 .text
88 .file "dbg.c"
89 .globl func00 // -- Begin function func00
90 .p2align 2
91 .type func00,@function
92 func00: // @func00
93 .Lfunc_begin0:
94 .file 1 "/tmp" "dbg.c"
95 .loc 1 3 0 // /tmp/dbg.c:3:0
96 .cfi_sections .debug_frame
97 .cfi_startproc
98 // %bb.0: // %entry
99 sub sp, sp, #32 // =32
100 stp x29, x30, [sp, #16] // 16-byte Folded Spill
101 add x29, sp, #16 // =16
102 .cfi_def_cfa w29, 16
103 .cfi_offset w30, -8
104 .cfi_offset w29, -16
105 .Ltmp0:
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
109 bl use
110 .Ltmp1:
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
115 .Ltmp2:
116 .Lfunc_end0:
117 .size func00, .Lfunc_end0-func00
118 .cfi_endproc
119 // -- End function
120 .globl func0 // -- Begin function func0
121 .p2align 2
122 .type func0,@function
123 func0: // @func0
124 .Lfunc_begin1:
125 .loc 1 8 0 // /tmp/dbg.c:8:0
126 .cfi_startproc
127 // %bb.0: // %entry
128 sub sp, sp, #32 // =32
129 stp x29, x30, [sp, #16] // 16-byte Folded Spill
130 add x29, sp, #16 // =16
131 .cfi_def_cfa w29, 16
132 .cfi_offset w30, -8
133 .cfi_offset w29, -16
134 .Ltmp3:
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
138 bl use
139 .Ltmp4:
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
144 .Ltmp5:
145 .Lfunc_end1:
146 .size func0, .Lfunc_end1-func0
147 .cfi_endproc
148 // -- End function
149 .globl func1 // -- Begin function func1
150 .p2align 2
151 .type func1,@function
152 func1: // @func1
153 .Lfunc_begin2:
154 .loc 1 13 0 // /tmp/dbg.c:13:0
155 .cfi_startproc
156 // %bb.0: // %entry
157 sub sp, sp, #32 // =32
158 stp x29, x30, [sp, #16] // 16-byte Folded Spill
159 add x29, sp, #16 // =16
160 .cfi_def_cfa w29, 16
161 .cfi_offset w30, -8
162 .cfi_offset w29, -16
163 .Ltmp6:
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
167 bl use
168 .Ltmp7:
169 .loc 1 16 10 // /tmp/dbg.c:16:10
170 ldur w0, [x29, #-4]
171 .Ltmp8:
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
177 .Ltmp9:
178 .Lfunc_end2:
179 .size func1, .Lfunc_end2-func1
180 .cfi_endproc
181 // -- End function
182 .globl func2 // -- Begin function func2
183 .p2align 2
184 .type func2,@function
185 func2: // @func2
186 .Lfunc_begin3:
187 .loc 1 19 0 is_stmt 1 // /tmp/dbg.c:19:0
188 .cfi_startproc
189 // %bb.0: // %entry
190 sub sp, sp, #32 // =32
191 stp x29, x30, [sp, #16] // 16-byte Folded Spill
192 add x29, sp, #16 // =16
193 .cfi_def_cfa w29, 16
194 .cfi_offset w30, -8
195 .cfi_offset w29, -16
196 mov w8, #1
197 .Ltmp10:
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
202 stur w8, [x29, #-4]
203 .Ltmp11:
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
206 bl use
207 .Ltmp12:
208 .loc 1 22 10 // /tmp/dbg.c:22:10
209 ldur w0, [x29, #-4]
210 .Ltmp13:
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
216 .Ltmp14:
217 .Lfunc_end3:
218 .size func2, .Lfunc_end3-func2
219 .cfi_endproc
220 // -- End function
221 .globl func3 // -- Begin function func3
222 .p2align 2
223 .type func3,@function
224 func3: // @func3
225 .Lfunc_begin4:
226 .loc 1 25 0 is_stmt 1 // /tmp/dbg.c:25:0
227 .cfi_startproc
228 // %bb.0: // %entry
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
232 mov x29, sp
233 .cfi_def_cfa w29, 32
234 .cfi_offset w19, -16
235 .cfi_offset w30, -24
236 .cfi_offset w29, -32
237 .Ltmp15:
238 //DEBUG_VALUE: func3:x <- $w0
239 mov w19, w0
240 .Ltmp16:
241 //DEBUG_VALUE: func3:x <- $w19
242 //DEBUG_VALUE: func3:b <- $w19
243 .loc 1 27 3 prologue_end // /tmp/dbg.c:27:3
244 bl usei
245 .Ltmp17:
246 .loc 1 28 3 // /tmp/dbg.c:28:3
247 mov w0, w19
248 ldr x19, [sp, #16] // 8-byte Folded Reload
249 .Ltmp18:
250 ldp x29, x30, [sp], #32 // 16-byte Folded Reload
252 .Ltmp19:
253 .Lfunc_end4:
254 .size func3, .Lfunc_end4-func3
255 .cfi_endproc
256 // -- End function
257 .section .debug_str,"MS",@progbits,1
258 .Linfo_string0:
259 .asciz "clang version 10.0.0 (git@github.com:llvm/llvm-project.git 092ef9c6cf4678d2b8df7738110ecd405fe1fe3d)" // string offset=0
260 .Linfo_string1:
261 .asciz "/tmp/dbg.c" // string offset=101
262 .Linfo_string2:
263 .asciz "/code/build-llvm-cmake" // string offset=112
264 .Linfo_string3:
265 .asciz "use" // string offset=135
266 .Linfo_string4:
267 .asciz "usei" // string offset=139
268 .Linfo_string5:
269 .asciz "int" // string offset=144
270 .Linfo_string6:
271 .asciz "func00" // string offset=148
272 .Linfo_string7:
273 .asciz "func0" // string offset=155
274 .Linfo_string8:
275 .asciz "func1" // string offset=161
276 .Linfo_string9:
277 .asciz "func2" // string offset=167
278 .Linfo_string10:
279 .asciz "func3" // string offset=173
280 .Linfo_string11:
281 .asciz "x" // string offset=179
282 .Linfo_string12:
283 .asciz "b" // string offset=181
284 .section .debug_loc,"",@progbits
285 .Ldebug_loc0:
286 .xword .Ltmp6-.Lfunc_begin0
287 .xword .Ltmp8-.Lfunc_begin0
288 .hword 2 // Loc expr size
289 .byte 141 // DW_OP_breg29
290 .byte 124 // -4
291 .xword .Ltmp8-.Lfunc_begin0
292 .xword .Lfunc_end2-.Lfunc_begin0
293 .hword 1 // Loc expr size
294 .byte 80 // DW_OP_reg0
295 .xword 0
296 .xword 0
297 .Ldebug_loc1:
298 .xword .Ltmp10-.Lfunc_begin0
299 .xword .Ltmp11-.Lfunc_begin0
300 .hword 3 // Loc expr size
301 .byte 17 // DW_OP_consts
302 .byte 1 // 1
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
308 .byte 124 // -4
309 .xword .Ltmp13-.Lfunc_begin0
310 .xword .Lfunc_end3-.Lfunc_begin0
311 .hword 1 // Loc expr size
312 .byte 80 // DW_OP_reg0
313 .xword 0
314 .xword 0
315 .Ldebug_loc2:
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
324 .xword 0
325 .xword 0
326 .Ldebug_loc3:
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
335 .xword 0
336 .xword 0
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
355 .byte 0 // EOM(1)
356 .byte 0 // EOM(2)
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
376 .byte 0 // EOM(1)
377 .byte 0 // EOM(2)
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
391 .byte 0 // EOM(1)
392 .byte 0 // EOM(2)
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
400 .byte 0 // EOM(1)
401 .byte 0 // EOM(2)
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
417 .byte 0 // EOM(1)
418 .byte 0 // EOM(2)
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
424 .byte 0 // EOM(1)
425 .byte 0 // EOM(2)
426 .byte 7 // Abbreviation Code
427 .byte 15 // DW_TAG_pointer_type
428 .byte 0 // DW_CHILDREN_no
429 .byte 0 // EOM(1)
430 .byte 0 // EOM(2)
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
452 .byte 0 // EOM(1)
453 .byte 0 // EOM(2)
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
467 .byte 0 // EOM(1)
468 .byte 0 // EOM(2)
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
492 .byte 0 // EOM(1)
493 .byte 0 // EOM(2)
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
507 .byte 0 // EOM(1)
508 .byte 0 // EOM(2)
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
518 .byte 0 // EOM(1)
519 .byte 0 // EOM(2)
520 .byte 0 // EOM(3)
521 .section .debug_info,"",@progbits
522 .Lcu_begin0:
523 .word .Ldebug_info_end0-.Ldebug_info_start0 // Length of Unit
524 .Ldebug_info_start0:
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
540 .byte 109
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
545 // DW_AT_external
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)
549 .byte 124 // -4
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
562 // DW_AT_prototyped
563 // DW_AT_declaration
564 // DW_AT_external
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
573 .byte 109
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
578 // DW_AT_external
579 .byte 3 // Abbrev [3] 0x7e:0xe DW_TAG_variable
580 .byte 2 // DW_AT_location
581 .byte 145
582 .byte 124
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
595 .byte 109
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
601 // DW_AT_external
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
616 .byte 109
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
622 // DW_AT_external
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
637 .byte 109
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
642 // DW_AT_prototyped
643 .word 344 // DW_AT_type
644 // DW_AT_external
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
665 // DW_AT_prototyped
666 // DW_AT_declaration
667 // DW_AT_external
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
676 .Ldebug_info_end0:
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
680 .Lline_table_start0: