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# } 7# 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 100main: # @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 183x: 184 .long 0 # 0x0 185 .size x, 4 186 187 .type y,@object # @y 188 .data 189 .globl y 190 .p2align 2, 0x0 191y: 192 .long 1 # 0x1 193 .size y, 4 194 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: 775