1// REQUIRES: aarch64-registered-target 2 3// RUN: llvm-mc -filetype=obj -triple=aarch64-linux-android -o %t.o %s 4// RUN: echo 'FRAME %t.o 0' | llvm-symbolizer | FileCheck %s 5 6// CHECK: f 7// CHECK-NEXT: a 8// CHECK-NEXT: /tmp{{/|\\}}stack.c:20 9// CHECK-NEXT: -192 32 192 10// CHECK-NEXT: g 11// CHECK-NEXT: p 12// CHECK-NEXT: /tmp{{/|\\}}stack.c:8 13// CHECK-NEXT: ?? 8 ?? 14// CHECK-NEXT: g 15// CHECK-NEXT: b 16// CHECK-NEXT: /tmp{{/|\\}}stack.c:10 17// CHECK-NEXT: -128 32 128 18// CHECK-NEXT: h 19// CHECK-NEXT: p1 20// CHECK-NEXT: /tmp{{/|\\}}stack.c:3 21// CHECK-NEXT: ?? 8 ?? 22// CHECK-NEXT: h 23// CHECK-NEXT: p2 24// CHECK-NEXT: /tmp{{/|\\}}stack.c:3 25// CHECK-NEXT: ?? 8 ?? 26// CHECK-NEXT: h 27// CHECK-NEXT: d 28// CHECK-NEXT: /tmp{{/|\\}}stack.c:4 29// CHECK-NEXT: -96 32 0 30// CHECK-NEXT: g 31// CHECK-NEXT: c 32// CHECK-NEXT: /tmp{{/|\\}}stack.c:14 33// CHECK-NEXT: -160 32 64 34// CHECK-NEXT: h 35// CHECK-NEXT: p1 36// CHECK-NEXT: /tmp{{/|\\}}stack.c:3 37// CHECK-NEXT: ?? 8 ?? 38// CHECK-NEXT: h 39// CHECK-NEXT: p2 40// CHECK-NEXT: /tmp{{/|\\}}stack.c:3 41// CHECK-NEXT: ?? 8 ?? 42// CHECK-NEXT: h 43// CHECK-NEXT: d 44// CHECK-NEXT: /tmp{{/|\\}}stack.c:4 45// CHECK-NEXT: -96 32 0 46 47// Generated from: 48// 49// void i(void *, void *, void *); 50// 51// static void h(void *p1, void *p2) { 52// char d[32]; 53// i(d, p1, p2); 54// } 55// 56// static void g(void *p) { 57// { 58// char b[32]; 59// h(b, p); 60// } 61// { 62// char c[32]; 63// h(c, p); 64// } 65// } 66// 67// clang -S -o - -fsanitize=hwaddress --target=aarch64-linux-android /tmp/stack.c -O -fsanitize-hwaddress-abi=platform -g 68 69 .text 70 .file "stack.c" 71 .globl f // -- Begin function f 72 .p2align 2 73 .type f,@function 74f: // @f 75.Lfunc_begin0: 76 .file 1 "/tmp" "stack.c" 77 .loc 1 19 0 // stack.c:19:0 78 .cfi_startproc 79// %bb.0: // %entry 80 sub sp, sp, #208 // =208 81 stp x26, x25, [sp, #128] // 16-byte Folded Spill 82 stp x24, x23, [sp, #144] // 16-byte Folded Spill 83 stp x22, x21, [sp, #160] // 16-byte Folded Spill 84 stp x20, x19, [sp, #176] // 16-byte Folded Spill 85 stp x29, x30, [sp, #192] // 16-byte Folded Spill 86 add x29, sp, #192 // =192 87 .cfi_def_cfa w29, 16 88 .cfi_offset w30, -8 89 .cfi_offset w29, -16 90 .cfi_offset w19, -24 91 .cfi_offset w20, -32 92 .cfi_offset w21, -40 93 .cfi_offset w22, -48 94 .cfi_offset w23, -56 95 .cfi_offset w24, -64 96 .cfi_offset w25, -72 97 .cfi_offset w26, -80 98 mrs x8, TPIDR_EL0 99 ldr x12, [x8, #48] 100.Ltmp0: 101 adr x14, .Ltmp0 102 orr x14, x14, x29, lsl #44 103 add x9, sp, #96 // =96 104 asr x15, x12, #3 105 asr x16, x12, #56 106 orr x17, x12, #0xffffffff 107 str x14, [x12], #8 108 bic x12, x12, x16, lsl #12 109 str x12, [x8, #48] 110.Ltmp1: 111 .loc 1 4 8 prologue_end // stack.c:4:8 112 and w8, w15, #0xff 113 lsr x22, x9, #4 114 add x25, x17, #1 // =1 115 bfi w8, w8, #8, #8 116 add x10, sp, #64 // =64 117 strh w8, [x25, x22] 118.Ltmp2: 119 .loc 1 10 10 // stack.c:10:10 120 eor x8, x15, #0x80 121 orr x1, x10, x8, lsl #56 122 and w8, w8, #0xff 123 lsr x23, x10, #4 124 bfi w8, w8, #8, #8 125 add x11, sp, #32 // =32 126 strh w8, [x25, x23] 127.Ltmp3: 128 .loc 1 14 10 // stack.c:14:10 129 eor x8, x15, #0x40 130 orr x19, x11, x8, lsl #56 131 and w8, w8, #0xff 132 lsr x24, x11, #4 133 bfi w8, w8, #8, #8 134 mov x13, sp 135 strh w8, [x25, x24] 136.Ltmp4: 137 .loc 1 20 3 // stack.c:20:3 138 eor x8, x15, #0xc0 139.Ltmp5: 140 .loc 1 4 8 // stack.c:4:8 141 orr x20, x9, x15, lsl #56 142.Ltmp6: 143 .loc 1 20 3 // stack.c:20:3 144 orr x21, x13, x8, lsl #56 145 and w8, w8, #0xff 146 lsr x26, x13, #4 147 bfi w8, w8, #8, #8 148.Ltmp7: 149 .loc 1 5 3 // stack.c:5:3 150 mov x0, x20 151 mov x2, x21 152.Ltmp8: 153 .loc 1 20 3 // stack.c:20:3 154 strh w8, [x25, x26] 155.Ltmp9: 156 //DEBUG_VALUE: h:p1 <- $x1 157 //DEBUG_VALUE: g:p <- $x21 158 //DEBUG_VALUE: h:p2 <- $x21 159 //DEBUG_VALUE: h:p2 <- $x21 160 .loc 1 5 3 // stack.c:5:3 161 bl i 162.Ltmp10: 163 //DEBUG_VALUE: h:p1 <- $x19 164 .loc 1 5 3 is_stmt 0 // stack.c:5:3 165 mov x0, x20 166 mov x1, x19 167 mov x2, x21 168 bl i 169.Ltmp11: 170 .loc 1 22 1 is_stmt 1 // stack.c:22:1 171 strh wzr, [x25, x22] 172 strh wzr, [x25, x23] 173 strh wzr, [x25, x24] 174 strh wzr, [x25, x26] 175 ldp x29, x30, [sp, #192] // 16-byte Folded Reload 176 ldp x20, x19, [sp, #176] // 16-byte Folded Reload 177.Ltmp12: 178 ldp x22, x21, [sp, #160] // 16-byte Folded Reload 179.Ltmp13: 180 ldp x24, x23, [sp, #144] // 16-byte Folded Reload 181 ldp x26, x25, [sp, #128] // 16-byte Folded Reload 182 add sp, sp, #208 // =208 183 ret 184.Ltmp14: 185.Lfunc_end0: 186 .size f, .Lfunc_end0-f 187 .cfi_endproc 188 // -- End function 189 .section .text.hwasan.module_ctor,"axG",@progbits,hwasan.module_ctor,comdat 190 .p2align 2 // -- Begin function hwasan.module_ctor 191 .type hwasan.module_ctor,@function 192hwasan.module_ctor: // @hwasan.module_ctor 193.Lfunc_begin1: 194 .cfi_startproc 195// %bb.0: 196 str x30, [sp, #-16]! // 8-byte Folded Spill 197 .cfi_def_cfa_offset 16 198 .cfi_offset w30, -16 199 bl __hwasan_init 200 ldr x30, [sp], #16 // 8-byte Folded Reload 201 ret 202.Lfunc_end1: 203 .size hwasan.module_ctor, .Lfunc_end1-hwasan.module_ctor 204 .cfi_endproc 205 // -- End function 206 .section .init_array.0,"aGw",@init_array,hwasan.module_ctor,comdat 207 .p2align 3 208 .xword hwasan.module_ctor 209 .section .debug_str,"MS",@progbits,1 210.Linfo_string0: 211 .asciz "clang version 9.0.0 " // string offset=0 212.Linfo_string1: 213 .asciz "stack.c" // string offset=21 214.Linfo_string2: 215 .asciz "/tmp" // string offset=29 216.Linfo_string3: 217 .asciz "h" // string offset=34 218.Linfo_string4: 219 .asciz "p1" // string offset=36 220.Linfo_string5: 221 .asciz "p2" // string offset=39 222.Linfo_string6: 223 .asciz "d" // string offset=42 224.Linfo_string7: 225 .asciz "char" // string offset=44 226.Linfo_string8: 227 .asciz "__ARRAY_SIZE_TYPE__" // string offset=49 228.Linfo_string9: 229 .asciz "g" // string offset=69 230.Linfo_string10: 231 .asciz "p" // string offset=71 232.Linfo_string11: 233 .asciz "b" // string offset=73 234.Linfo_string12: 235 .asciz "c" // string offset=75 236.Linfo_string13: 237 .asciz "f" // string offset=77 238.Linfo_string14: 239 .asciz "a" // string offset=79 240 .section .debug_loc,"",@progbits 241.Ldebug_loc0: 242 .xword .Ltmp9-.Lfunc_begin0 243 .xword .Ltmp10-.Lfunc_begin0 244 .hword 1 // Loc expr size 245 .byte 81 // DW_OP_reg1 246 .xword 0 247 .xword 0 248.Ldebug_loc1: 249 .xword .Ltmp9-.Lfunc_begin0 250 .xword .Ltmp13-.Lfunc_begin0 251 .hword 1 // Loc expr size 252 .byte 101 // DW_OP_reg21 253 .xword 0 254 .xword 0 255.Ldebug_loc2: 256 .xword .Ltmp9-.Lfunc_begin0 257 .xword .Ltmp13-.Lfunc_begin0 258 .hword 1 // Loc expr size 259 .byte 101 // DW_OP_reg21 260 .xword 0 261 .xword 0 262.Ldebug_loc3: 263 .xword .Ltmp9-.Lfunc_begin0 264 .xword .Ltmp13-.Lfunc_begin0 265 .hword 1 // Loc expr size 266 .byte 101 // DW_OP_reg21 267 .xword 0 268 .xword 0 269.Ldebug_loc4: 270 .xword .Ltmp10-.Lfunc_begin0 271 .xword .Ltmp12-.Lfunc_begin0 272 .hword 1 // Loc expr size 273 .byte 99 // DW_OP_reg19 274 .xword 0 275 .xword 0 276 .section .debug_abbrev,"",@progbits 277 .byte 1 // Abbreviation Code 278 .byte 17 // DW_TAG_compile_unit 279 .byte 1 // DW_CHILDREN_yes 280 .byte 37 // DW_AT_producer 281 .byte 14 // DW_FORM_strp 282 .byte 19 // DW_AT_language 283 .byte 5 // DW_FORM_data2 284 .byte 3 // DW_AT_name 285 .byte 14 // DW_FORM_strp 286 .byte 16 // DW_AT_stmt_list 287 .byte 23 // DW_FORM_sec_offset 288 .byte 27 // DW_AT_comp_dir 289 .byte 14 // DW_FORM_strp 290 .byte 17 // DW_AT_low_pc 291 .byte 1 // DW_FORM_addr 292 .byte 18 // DW_AT_high_pc 293 .byte 6 // DW_FORM_data4 294 .byte 0 // EOM(1) 295 .byte 0 // EOM(2) 296 .byte 2 // Abbreviation Code 297 .byte 46 // DW_TAG_subprogram 298 .byte 1 // DW_CHILDREN_yes 299 .byte 3 // DW_AT_name 300 .byte 14 // DW_FORM_strp 301 .byte 58 // DW_AT_decl_file 302 .byte 11 // DW_FORM_data1 303 .byte 59 // DW_AT_decl_line 304 .byte 11 // DW_FORM_data1 305 .byte 39 // DW_AT_prototyped 306 .byte 25 // DW_FORM_flag_present 307 .byte 32 // DW_AT_inline 308 .byte 11 // DW_FORM_data1 309 .byte 0 // EOM(1) 310 .byte 0 // EOM(2) 311 .byte 3 // Abbreviation Code 312 .byte 5 // DW_TAG_formal_parameter 313 .byte 0 // DW_CHILDREN_no 314 .byte 3 // DW_AT_name 315 .byte 14 // DW_FORM_strp 316 .byte 58 // DW_AT_decl_file 317 .byte 11 // DW_FORM_data1 318 .byte 59 // DW_AT_decl_line 319 .byte 11 // DW_FORM_data1 320 .byte 73 // DW_AT_type 321 .byte 19 // DW_FORM_ref4 322 .byte 0 // EOM(1) 323 .byte 0 // EOM(2) 324 .byte 4 // Abbreviation Code 325 .byte 52 // DW_TAG_variable 326 .byte 0 // DW_CHILDREN_no 327 .byte 3 // DW_AT_name 328 .byte 14 // DW_FORM_strp 329 .byte 58 // DW_AT_decl_file 330 .byte 11 // DW_FORM_data1 331 .byte 59 // DW_AT_decl_line 332 .byte 11 // DW_FORM_data1 333 .byte 73 // DW_AT_type 334 .byte 19 // DW_FORM_ref4 335 .byte 0 // EOM(1) 336 .byte 0 // EOM(2) 337 .byte 5 // Abbreviation Code 338 .byte 15 // DW_TAG_pointer_type 339 .byte 0 // DW_CHILDREN_no 340 .byte 0 // EOM(1) 341 .byte 0 // EOM(2) 342 .byte 6 // Abbreviation Code 343 .byte 1 // DW_TAG_array_type 344 .byte 1 // DW_CHILDREN_yes 345 .byte 73 // DW_AT_type 346 .byte 19 // DW_FORM_ref4 347 .byte 0 // EOM(1) 348 .byte 0 // EOM(2) 349 .byte 7 // Abbreviation Code 350 .byte 33 // DW_TAG_subrange_type 351 .byte 0 // DW_CHILDREN_no 352 .byte 73 // DW_AT_type 353 .byte 19 // DW_FORM_ref4 354 .byte 55 // DW_AT_count 355 .byte 11 // DW_FORM_data1 356 .byte 0 // EOM(1) 357 .byte 0 // EOM(2) 358 .byte 8 // Abbreviation Code 359 .byte 36 // DW_TAG_base_type 360 .byte 0 // DW_CHILDREN_no 361 .byte 3 // DW_AT_name 362 .byte 14 // DW_FORM_strp 363 .byte 62 // DW_AT_encoding 364 .byte 11 // DW_FORM_data1 365 .byte 11 // DW_AT_byte_size 366 .byte 11 // DW_FORM_data1 367 .byte 0 // EOM(1) 368 .byte 0 // EOM(2) 369 .byte 9 // Abbreviation Code 370 .byte 36 // DW_TAG_base_type 371 .byte 0 // DW_CHILDREN_no 372 .byte 3 // DW_AT_name 373 .byte 14 // DW_FORM_strp 374 .byte 11 // DW_AT_byte_size 375 .byte 11 // DW_FORM_data1 376 .byte 62 // DW_AT_encoding 377 .byte 11 // DW_FORM_data1 378 .byte 0 // EOM(1) 379 .byte 0 // EOM(2) 380 .byte 10 // Abbreviation Code 381 .byte 11 // DW_TAG_lexical_block 382 .byte 1 // DW_CHILDREN_yes 383 .byte 0 // EOM(1) 384 .byte 0 // EOM(2) 385 .byte 11 // Abbreviation Code 386 .byte 46 // DW_TAG_subprogram 387 .byte 1 // DW_CHILDREN_yes 388 .byte 17 // DW_AT_low_pc 389 .byte 1 // DW_FORM_addr 390 .byte 18 // DW_AT_high_pc 391 .byte 6 // DW_FORM_data4 392 .byte 64 // DW_AT_frame_base 393 .byte 24 // DW_FORM_exprloc 394 .byte 3 // DW_AT_name 395 .byte 14 // DW_FORM_strp 396 .byte 58 // DW_AT_decl_file 397 .byte 11 // DW_FORM_data1 398 .byte 59 // DW_AT_decl_line 399 .byte 11 // DW_FORM_data1 400 .byte 63 // DW_AT_external 401 .byte 25 // DW_FORM_flag_present 402 .byte 0 // EOM(1) 403 .byte 0 // EOM(2) 404 .byte 12 // Abbreviation Code 405 .byte 52 // DW_TAG_variable 406 .byte 0 // DW_CHILDREN_no 407 .byte 2 // DW_AT_location 408 .byte 24 // DW_FORM_exprloc 409 .ascii "\203|" // DW_AT_LLVM_tag_offset 410 .byte 11 // DW_FORM_data1 411 .byte 3 // DW_AT_name 412 .byte 14 // DW_FORM_strp 413 .byte 58 // DW_AT_decl_file 414 .byte 11 // DW_FORM_data1 415 .byte 59 // DW_AT_decl_line 416 .byte 11 // DW_FORM_data1 417 .byte 73 // DW_AT_type 418 .byte 19 // DW_FORM_ref4 419 .byte 0 // EOM(1) 420 .byte 0 // EOM(2) 421 .byte 13 // Abbreviation Code 422 .byte 29 // DW_TAG_inlined_subroutine 423 .byte 1 // DW_CHILDREN_yes 424 .byte 49 // DW_AT_abstract_origin 425 .byte 19 // DW_FORM_ref4 426 .byte 85 // DW_AT_ranges 427 .byte 23 // DW_FORM_sec_offset 428 .byte 88 // DW_AT_call_file 429 .byte 11 // DW_FORM_data1 430 .byte 89 // DW_AT_call_line 431 .byte 11 // DW_FORM_data1 432 .byte 0 // EOM(1) 433 .byte 0 // EOM(2) 434 .byte 14 // Abbreviation Code 435 .byte 5 // DW_TAG_formal_parameter 436 .byte 0 // DW_CHILDREN_no 437 .byte 2 // DW_AT_location 438 .byte 23 // DW_FORM_sec_offset 439 .byte 49 // DW_AT_abstract_origin 440 .byte 19 // DW_FORM_ref4 441 .byte 0 // EOM(1) 442 .byte 0 // EOM(2) 443 .byte 15 // Abbreviation Code 444 .byte 11 // DW_TAG_lexical_block 445 .byte 1 // DW_CHILDREN_yes 446 .byte 85 // DW_AT_ranges 447 .byte 23 // DW_FORM_sec_offset 448 .byte 0 // EOM(1) 449 .byte 0 // EOM(2) 450 .byte 16 // Abbreviation Code 451 .byte 52 // DW_TAG_variable 452 .byte 0 // DW_CHILDREN_no 453 .byte 2 // DW_AT_location 454 .byte 24 // DW_FORM_exprloc 455 .ascii "\203|" // DW_AT_LLVM_tag_offset 456 .byte 11 // DW_FORM_data1 457 .byte 49 // DW_AT_abstract_origin 458 .byte 19 // DW_FORM_ref4 459 .byte 0 // EOM(1) 460 .byte 0 // EOM(2) 461 .byte 17 // Abbreviation Code 462 .byte 29 // DW_TAG_inlined_subroutine 463 .byte 1 // DW_CHILDREN_yes 464 .byte 49 // DW_AT_abstract_origin 465 .byte 19 // DW_FORM_ref4 466 .byte 17 // DW_AT_low_pc 467 .byte 1 // DW_FORM_addr 468 .byte 18 // DW_AT_high_pc 469 .byte 6 // DW_FORM_data4 470 .byte 88 // DW_AT_call_file 471 .byte 11 // DW_FORM_data1 472 .byte 89 // DW_AT_call_line 473 .byte 11 // DW_FORM_data1 474 .byte 0 // EOM(1) 475 .byte 0 // EOM(2) 476 .byte 0 // EOM(3) 477 .section .debug_info,"",@progbits 478.Lcu_begin0: 479 .word .Ldebug_info_end0-.Ldebug_info_start0 // Length of Unit 480.Ldebug_info_start0: 481 .hword 4 // DWARF version number 482 .word .debug_abbrev // Offset Into Abbrev. Section 483 .byte 8 // Address Size (in bytes) 484 .byte 1 // Abbrev [1] 0xb:0x146 DW_TAG_compile_unit 485 .word .Linfo_string0 // DW_AT_producer 486 .hword 12 // DW_AT_language 487 .word .Linfo_string1 // DW_AT_name 488 .word .Lline_table_start0 // DW_AT_stmt_list 489 .word .Linfo_string2 // DW_AT_comp_dir 490 .xword .Lfunc_begin0 // DW_AT_low_pc 491 .word .Lfunc_end0-.Lfunc_begin0 // DW_AT_high_pc 492 .byte 2 // Abbrev [2] 0x2a:0x2a DW_TAG_subprogram 493 .word .Linfo_string3 // DW_AT_name 494 .byte 1 // DW_AT_decl_file 495 .byte 3 // DW_AT_decl_line 496 // DW_AT_prototyped 497 .byte 1 // DW_AT_inline 498 .byte 3 // Abbrev [3] 0x32:0xb DW_TAG_formal_parameter 499 .word .Linfo_string4 // DW_AT_name 500 .byte 1 // DW_AT_decl_file 501 .byte 3 // DW_AT_decl_line 502 .word 84 // DW_AT_type 503 .byte 3 // Abbrev [3] 0x3d:0xb DW_TAG_formal_parameter 504 .word .Linfo_string5 // DW_AT_name 505 .byte 1 // DW_AT_decl_file 506 .byte 3 // DW_AT_decl_line 507 .word 84 // DW_AT_type 508 .byte 4 // Abbrev [4] 0x48:0xb DW_TAG_variable 509 .word .Linfo_string6 // DW_AT_name 510 .byte 1 // DW_AT_decl_file 511 .byte 4 // DW_AT_decl_line 512 .word 85 // DW_AT_type 513 .byte 0 // End Of Children Mark 514 .byte 5 // Abbrev [5] 0x54:0x1 DW_TAG_pointer_type 515 .byte 6 // Abbrev [6] 0x55:0xc DW_TAG_array_type 516 .word 97 // DW_AT_type 517 .byte 7 // Abbrev [7] 0x5a:0x6 DW_TAG_subrange_type 518 .word 104 // DW_AT_type 519 .byte 32 // DW_AT_count 520 .byte 0 // End Of Children Mark 521 .byte 8 // Abbrev [8] 0x61:0x7 DW_TAG_base_type 522 .word .Linfo_string7 // DW_AT_name 523 .byte 8 // DW_AT_encoding 524 .byte 1 // DW_AT_byte_size 525 .byte 9 // Abbrev [9] 0x68:0x7 DW_TAG_base_type 526 .word .Linfo_string8 // DW_AT_name 527 .byte 8 // DW_AT_byte_size 528 .byte 7 // DW_AT_encoding 529 .byte 2 // Abbrev [2] 0x6f:0x2e DW_TAG_subprogram 530 .word .Linfo_string9 // DW_AT_name 531 .byte 1 // DW_AT_decl_file 532 .byte 8 // DW_AT_decl_line 533 // DW_AT_prototyped 534 .byte 1 // DW_AT_inline 535 .byte 3 // Abbrev [3] 0x77:0xb DW_TAG_formal_parameter 536 .word .Linfo_string10 // DW_AT_name 537 .byte 1 // DW_AT_decl_file 538 .byte 8 // DW_AT_decl_line 539 .word 84 // DW_AT_type 540 .byte 10 // Abbrev [10] 0x82:0xd DW_TAG_lexical_block 541 .byte 4 // Abbrev [4] 0x83:0xb DW_TAG_variable 542 .word .Linfo_string11 // DW_AT_name 543 .byte 1 // DW_AT_decl_file 544 .byte 10 // DW_AT_decl_line 545 .word 85 // DW_AT_type 546 .byte 0 // End Of Children Mark 547 .byte 10 // Abbrev [10] 0x8f:0xd DW_TAG_lexical_block 548 .byte 4 // Abbrev [4] 0x90:0xb DW_TAG_variable 549 .word .Linfo_string12 // DW_AT_name 550 .byte 1 // DW_AT_decl_file 551 .byte 14 // DW_AT_decl_line 552 .word 85 // DW_AT_type 553 .byte 0 // End Of Children Mark 554 .byte 0 // End Of Children Mark 555 .byte 11 // Abbrev [11] 0x9d:0xb3 DW_TAG_subprogram 556 .xword .Lfunc_begin0 // DW_AT_low_pc 557 .word .Lfunc_end0-.Lfunc_begin0 // DW_AT_high_pc 558 .byte 1 // DW_AT_frame_base 559 .byte 109 560 .word .Linfo_string13 // DW_AT_name 561 .byte 1 // DW_AT_decl_file 562 .byte 19 // DW_AT_decl_line 563 // DW_AT_external 564 .byte 12 // Abbrev [12] 0xb2:0x10 DW_TAG_variable 565 .byte 3 // DW_AT_location 566 .byte 145 567 .ascii "\300~" 568 .byte 192 // DW_AT_LLVM_tag_offset 569 .word .Linfo_string14 // DW_AT_name 570 .byte 1 // DW_AT_decl_file 571 .byte 20 // DW_AT_decl_line 572 .word 85 // DW_AT_type 573 .byte 13 // Abbrev [13] 0xc2:0x8d DW_TAG_inlined_subroutine 574 .word 111 // DW_AT_abstract_origin 575 .word .Ldebug_ranges0 // DW_AT_ranges 576 .byte 1 // DW_AT_call_file 577 .byte 21 // DW_AT_call_line 578 .byte 14 // Abbrev [14] 0xcd:0x9 DW_TAG_formal_parameter 579 .word .Ldebug_loc1 // DW_AT_location 580 .word 119 // DW_AT_abstract_origin 581 .byte 15 // Abbrev [15] 0xd6:0x38 DW_TAG_lexical_block 582 .word .Ldebug_ranges2 // DW_AT_ranges 583 .byte 16 // Abbrev [16] 0xdb:0xa DW_TAG_variable 584 .byte 3 // DW_AT_location 585 .byte 145 586 .ascii "\200\177" 587 .byte 128 // DW_AT_LLVM_tag_offset 588 .word 131 // DW_AT_abstract_origin 589 .byte 13 // Abbrev [13] 0xe5:0x28 DW_TAG_inlined_subroutine 590 .word 42 // DW_AT_abstract_origin 591 .word .Ldebug_ranges1 // DW_AT_ranges 592 .byte 1 // DW_AT_call_file 593 .byte 11 // DW_AT_call_line 594 .byte 14 // Abbrev [14] 0xf0:0x9 DW_TAG_formal_parameter 595 .word .Ldebug_loc0 // DW_AT_location 596 .word 50 // DW_AT_abstract_origin 597 .byte 14 // Abbrev [14] 0xf9:0x9 DW_TAG_formal_parameter 598 .word .Ldebug_loc2 // DW_AT_location 599 .word 61 // DW_AT_abstract_origin 600 .byte 16 // Abbrev [16] 0x102:0xa DW_TAG_variable 601 .byte 3 // DW_AT_location 602 .byte 145 603 .ascii "\240\177" 604 .byte 0 // DW_AT_LLVM_tag_offset 605 .word 72 // DW_AT_abstract_origin 606 .byte 0 // End Of Children Mark 607 .byte 0 // End Of Children Mark 608 .byte 15 // Abbrev [15] 0x10e:0x40 DW_TAG_lexical_block 609 .word .Ldebug_ranges3 // DW_AT_ranges 610 .byte 16 // Abbrev [16] 0x113:0xa DW_TAG_variable 611 .byte 3 // DW_AT_location 612 .byte 145 613 .ascii "\340~" 614 .byte 64 // DW_AT_LLVM_tag_offset 615 .word 144 // DW_AT_abstract_origin 616 .byte 17 // Abbrev [17] 0x11d:0x30 DW_TAG_inlined_subroutine 617 .word 42 // DW_AT_abstract_origin 618 .xword .Ltmp10 // DW_AT_low_pc 619 .word .Ltmp11-.Ltmp10 // DW_AT_high_pc 620 .byte 1 // DW_AT_call_file 621 .byte 15 // DW_AT_call_line 622 .byte 14 // Abbrev [14] 0x130:0x9 DW_TAG_formal_parameter 623 .word .Ldebug_loc4 // DW_AT_location 624 .word 50 // DW_AT_abstract_origin 625 .byte 14 // Abbrev [14] 0x139:0x9 DW_TAG_formal_parameter 626 .word .Ldebug_loc3 // DW_AT_location 627 .word 61 // DW_AT_abstract_origin 628 .byte 16 // Abbrev [16] 0x142:0xa DW_TAG_variable 629 .byte 3 // DW_AT_location 630 .byte 145 631 .ascii "\240\177" 632 .byte 0 // DW_AT_LLVM_tag_offset 633 .word 72 // DW_AT_abstract_origin 634 .byte 0 // End Of Children Mark 635 .byte 0 // End Of Children Mark 636 .byte 0 // End Of Children Mark 637 .byte 0 // End Of Children Mark 638 .byte 0 // End Of Children Mark 639.Ldebug_info_end0: 640 .section .debug_ranges,"",@progbits 641.Ldebug_ranges0: 642 .xword .Ltmp1-.Lfunc_begin0 643 .xword .Ltmp4-.Lfunc_begin0 644 .xword .Ltmp5-.Lfunc_begin0 645 .xword .Ltmp6-.Lfunc_begin0 646 .xword .Ltmp7-.Lfunc_begin0 647 .xword .Ltmp8-.Lfunc_begin0 648 .xword .Ltmp9-.Lfunc_begin0 649 .xword .Ltmp11-.Lfunc_begin0 650 .xword 0 651 .xword 0 652.Ldebug_ranges1: 653 .xword .Ltmp1-.Lfunc_begin0 654 .xword .Ltmp2-.Lfunc_begin0 655 .xword .Ltmp5-.Lfunc_begin0 656 .xword .Ltmp6-.Lfunc_begin0 657 .xword .Ltmp7-.Lfunc_begin0 658 .xword .Ltmp8-.Lfunc_begin0 659 .xword .Ltmp9-.Lfunc_begin0 660 .xword .Ltmp10-.Lfunc_begin0 661 .xword 0 662 .xword 0 663.Ldebug_ranges2: 664 .xword .Ltmp1-.Lfunc_begin0 665 .xword .Ltmp3-.Lfunc_begin0 666 .xword .Ltmp5-.Lfunc_begin0 667 .xword .Ltmp6-.Lfunc_begin0 668 .xword .Ltmp7-.Lfunc_begin0 669 .xword .Ltmp8-.Lfunc_begin0 670 .xword .Ltmp9-.Lfunc_begin0 671 .xword .Ltmp10-.Lfunc_begin0 672 .xword 0 673 .xword 0 674.Ldebug_ranges3: 675 .xword .Ltmp3-.Lfunc_begin0 676 .xword .Ltmp4-.Lfunc_begin0 677 .xword .Ltmp10-.Lfunc_begin0 678 .xword .Ltmp11-.Lfunc_begin0 679 .xword 0 680 .xword 0 681 .section .debug_macinfo,"",@progbits 682 .byte 0 // End Of Macro List Mark 683 684 .ident "clang version 9.0.0 " 685 .section ".note.GNU-stack","",@progbits 686 .section .debug_line,"",@progbits 687.Lline_table_start0: 688