1# debug-names-parent-idx.s generated with: 2 3# clang++ -g -O0 -gpubnames -fdebug-compilation-dir='/proc/self/cwd' -S \ 4# a.cpp -o a.s 5 6# foo.h contents: 7 8# int foo(); 9 10# struct foo { 11# int x; 12# char y; 13# struct foo *foo_ptr; 14# }; 15 16# namespace parent_test { 17# int foo(); 18# } 19 20# a.cpp contents: 21 22# #include "foo.h" 23# void bar (struct foo &foo, int junk) { 24# foo.x = foo.x * junk; 25# } 26# int main (int argc, char** argv) { 27# struct foo my_struct; 28# my_struct.x = 10; 29# my_struct.y = 'q'; 30# my_struct.foo_ptr = nullptr; 31# int junk = foo(); 32# bar(my_struct, junk); 33# int junk2 = parent_test::foo(); 34# return 0; 35# } 36 37# REQUIRES: x86 38# RUN: rm -rf %t && split-file %s %t && cd %t 39# RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o 40# RUN: llvm-mc -filetype=obj -triple=x86_64 b.s -o b.o 41# RUN: ld.lld --debug-names a.o b.o -o out 42 43# RUN: llvm-dwarfdump -debug-names out | FileCheck %s --check-prefix=DWARF 44 45# DWARF: .debug_names contents: 46# DWARF: Name Index @ 0x0 { 47# DWARF-NEXT: Header { 48# DWARF-NEXT: Length: 0x158 49# DWARF-NEXT: Format: DWARF32 50# DWARF-NEXT: Version: 5 51# DWARF-NEXT: CU count: 2 52# DWARF-NEXT: Local TU count: 0 53# DWARF-NEXT: Foreign TU count: 0 54# DWARF-NEXT: Bucket count: 9 55# DWARF-NEXT: Name count: 9 56# DWARF-NEXT: Abbreviations table size: 0x33 57# DWARF-NEXT: Augmentation: 'LLVM0700' 58# DWARF: Compilation Unit offsets [ 59# DWARF-NEXT: CU[0]: 0x00000000 60# DWARF-NEXT: CU[1]: 0x0000000c 61# DWARF: Abbreviations [ 62# DWARF-NEXT: Abbreviation 0x1 { 63# DWARF-NEXT: Tag: DW_TAG_base_type 64# DWARF-NEXT: DW_IDX_die_offset: DW_FORM_ref4 65# DWARF-NEXT: DW_IDX_parent: DW_FORM_flag_present 66# DWARF-NEXT: DW_IDX_compile_unit: DW_FORM_data1 67# DWARF: Abbreviation 0x2 { 68# DWARF-NEXT: Tag: DW_TAG_subprogram 69# DWARF-NEXT: DW_IDX_die_offset: DW_FORM_ref4 70# DWARF-NEXT: DW_IDX_parent: DW_FORM_flag_present 71# DWARF-NEXT: DW_IDX_compile_unit: DW_FORM_data1 72# DWARF: Abbreviation 0x3 { 73# DWARF-NEXT: Tag: DW_TAG_structure_type 74# DWARF-NEXT: DW_IDX_die_offset: DW_FORM_ref4 75# DWARF-NEXT: DW_IDX_parent: DW_FORM_flag_present 76# DWARF-NEXT: DW_IDX_compile_unit: DW_FORM_data1 77# DWARF: Abbreviation 0x4 { 78# DWARF-NEXT: Tag: DW_TAG_subprogram 79# DWARF-NEXT: DW_IDX_die_offset: DW_FORM_ref4 80# DWARF-NEXT: DW_IDX_parent: DW_FORM_ref4 81# DWARF-NEXT: DW_IDX_compile_unit: DW_FORM_data1 82# DWARF: Abbreviation 0x5 { 83# DWARF-NEXT: Tag: DW_TAG_namespace 84# DWARF-NEXT: DW_IDX_die_offset: DW_FORM_ref4 85# DWARF-NEXT: DW_IDX_parent: DW_FORM_flag_present 86# DWARF-NEXT: DW_IDX_compile_unit: DW_FORM_data1 87# DWARF: Bucket 0 [ 88# DWARF-NEXT: EMPTY 89# DWARF-NEXT: ] 90# DWARF-NEXT: Bucket 1 [ 91# DWARF-NEXT: Name 1 { 92# DWARF-NEXT: Hash: 0xA974AA29 93# DWARF-NEXT: String: 0x00000174 "_ZN11parent_test3fooEv" 94# DWARF-NEXT: Entry @ 0x14a { 95# DWARF-NEXT: Abbrev: 0x4 96# DWARF-NEXT: Tag: DW_TAG_subprogram 97# DWARF-NEXT: DW_IDX_die_offset: 0x00000045 98# DWARF-NEXT: DW_IDX_parent: Entry @ 0x128 99# DWARF-NEXT: DW_IDX_compile_unit: 0x01 100# DWARF-NEXT: } 101# DWARF-NEXT: } 102# DWARF-NEXT: Name 2 { 103# DWARF-NEXT: Hash: 0xB5063D0B 104# DWARF-NEXT: String: 0x00000160 "_Z3foov" 105# DWARF-NEXT: Entry @ 0x155 { 106# DWARF-NEXT: Abbrev: 0x2 107# DWARF-NEXT: Tag: DW_TAG_subprogram 108# DWARF-NEXT: DW_IDX_die_offset: 0x00000027 109# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 110# DWARF-NEXT: DW_IDX_compile_unit: 0x01 111# DWARF-NEXT: } 112# DWARF-NEXT: } 113# DWARF-NEXT: ] 114# DWARF-NEXT: Bucket 2 [ 115# DWARF-NEXT: Name 3 { 116# DWARF-NEXT: Hash: 0xB888030 117# DWARF-NEXT: String: 0x00000093 "int" 118# DWARF-NEXT: Entry @ 0xfe { 119# DWARF-NEXT: Abbrev: 0x1 120# DWARF-NEXT: Tag: DW_TAG_base_type 121# DWARF-NEXT: DW_IDX_die_offset: 0x0000008d 122# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 123# DWARF-NEXT: DW_IDX_compile_unit: 0x00 124# DWARF-NEXT: } 125# DWARF-NEXT: Entry @ 0x104 { 126# DWARF-NEXT: Abbrev: 0x1 127# DWARF-NEXT: Tag: DW_TAG_base_type 128# DWARF-NEXT: DW_IDX_die_offset: 0x00000023 129# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 130# DWARF-NEXT: DW_IDX_compile_unit: 0x01 131# DWARF-NEXT: } 132# DWARF-NEXT: } 133# DWARF-NEXT: ] 134# DWARF-NEXT: Bucket 3 [ 135# DWARF-NEXT: Name 4 { 136# DWARF-NEXT: Hash: 0xB8860BA 137# DWARF-NEXT: String: 0x0000007d "bar" 138# DWARF-NEXT: Entry @ 0xf7 { 139# DWARF-NEXT: Abbrev: 0x2 140# DWARF-NEXT: Tag: DW_TAG_subprogram 141# DWARF-NEXT: DW_IDX_die_offset: 0x00000023 142# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 143# DWARF-NEXT: DW_IDX_compile_unit: 0x00 144# DWARF-NEXT: } 145# DWARF-NEXT: } 146# DWARF-NEXT: Name 5 { 147# DWARF-NEXT: Hash: 0xB887389 148# DWARF-NEXT: String: 0x00000097 "foo" 149# DWARF-NEXT: Entry @ 0x10b { 150# DWARF-NEXT: Abbrev: 0x3 151# DWARF-NEXT: Tag: DW_TAG_structure_type 152# DWARF-NEXT: DW_IDX_die_offset: 0x00000096 153# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 154# DWARF-NEXT: DW_IDX_compile_unit: 0x00 155# DWARF-NEXT: } 156# DWARF-NEXT: Entry @ 0x111 { 157# DWARF-NEXT: Abbrev: 0x2 158# DWARF-NEXT: Tag: DW_TAG_subprogram 159# DWARF-NEXT: DW_IDX_die_offset: 0x00000027 160# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 161# DWARF-NEXT: DW_IDX_compile_unit: 0x01 162# DWARF-NEXT: } 163# DWARF-NEXT: Entry @ 0x117 { 164# DWARF-NEXT: Abbrev: 0x4 165# DWARF-NEXT: Tag: DW_TAG_subprogram 166# DWARF-NEXT: DW_IDX_die_offset: 0x00000045 167# DWARF-NEXT: DW_IDX_parent: Entry @ 0x128 168# DWARF-NEXT: DW_IDX_compile_unit: 0x01 169# DWARF-NEXT: } 170# DWARF-NEXT: Entry @ 0x121 { 171# DWARF-NEXT: Abbrev: 0x3 172# DWARF-NEXT: Tag: DW_TAG_structure_type 173# DWARF-NEXT: DW_IDX_die_offset: 0x00000056 174# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 175# DWARF-NEXT: DW_IDX_compile_unit: 0x01 176# DWARF-NEXT: } 177# DWARF-NEXT: } 178# DWARF-NEXT: ] 179# DWARF-NEXT: Bucket 4 [ 180# DWARF-NEXT: EMPTY 181# DWARF-NEXT: ] 182# DWARF-NEXT: Bucket 5 [ 183# DWARF-NEXT: EMPTY 184# DWARF-NEXT: ] 185# DWARF-NEXT: Bucket 6 [ 186# DWARF-NEXT: EMPTY 187# DWARF-NEXT: ] 188# DWARF-NEXT: Bucket 7 [ 189# DWARF-NEXT: Name 6 { 190# DWARF-NEXT: Hash: 0x7C9A7F6A 191# DWARF-NEXT: String: 0x0000008e "main" 192# DWARF-NEXT: Entry @ 0x136 { 193# DWARF-NEXT: Abbrev: 0x2 194# DWARF-NEXT: Tag: DW_TAG_subprogram 195# DWARF-NEXT: DW_IDX_die_offset: 0x00000046 196# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 197# DWARF-NEXT: DW_IDX_compile_unit: 0x00 198# DWARF-NEXT: } 199# DWARF-NEXT: } 200# DWARF-NEXT: ] 201# DWARF-NEXT: Bucket 8 [ 202# DWARF-NEXT: Name 7 { 203# DWARF-NEXT: Hash: 0xA7255AE 204# DWARF-NEXT: String: 0x00000168 "parent_test" 205# DWARF-NEXT: Entry @ 0x128 { 206# DWARF-NEXT: Abbrev: 0x5 207# DWARF-NEXT: Tag: DW_TAG_namespace 208# DWARF-NEXT: DW_IDX_die_offset: 0x00000043 209# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 210# DWARF-NEXT: DW_IDX_compile_unit: 0x01 211# DWARF-NEXT: } 212# DWARF-NEXT: } 213# DWARF-NEXT: Name 8 { 214# DWARF-NEXT: Hash: 0x51007E98 215# DWARF-NEXT: String: 0x00000081 "_Z3barR3fooi" 216# DWARF-NEXT: Entry @ 0x12f { 217# DWARF-NEXT: Abbrev: 0x2 218# DWARF-NEXT: Tag: DW_TAG_subprogram 219# DWARF-NEXT: DW_IDX_die_offset: 0x00000023 220# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 221# DWARF-NEXT: DW_IDX_compile_unit: 0x00 222# DWARF-NEXT: } 223# DWARF-NEXT: } 224# DWARF-NEXT: Name 9 { 225# DWARF-NEXT: Hash: 0x7C952063 226# DWARF-NEXT: String: 0x0000009f "char" 227# DWARF-NEXT: Entry @ 0x13d { 228# DWARF-NEXT: Abbrev: 0x1 229# DWARF-NEXT: Tag: DW_TAG_base_type 230# DWARF-NEXT: DW_IDX_die_offset: 0x000000b8 231# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 232# DWARF-NEXT: DW_IDX_compile_unit: 0x00 233# DWARF-NEXT: } 234# DWARF-NEXT: Entry @ 0x143 { 235# DWARF-NEXT: Abbrev: 0x1 236# DWARF-NEXT: Tag: DW_TAG_base_type 237# DWARF-NEXT: DW_IDX_die_offset: 0x00000078 238# DWARF-NEXT: DW_IDX_parent: <parent not indexed> 239# DWARF-NEXT: DW_IDX_compile_unit: 0x01 240# DWARF-NEXT: } 241# DWARF-NEXT: } 242# DWARF-NEXT: ] 243 244#--- a.s 245 .text 246 .globl _Z3barR3fooi # -- Begin function _Z3barR3fooi 247 .p2align 4, 0x90 248 .type _Z3barR3fooi,@function 249_Z3barR3fooi: # @_Z3barR3fooi 250.Lfunc_begin0: 251 .cfi_startproc 252# %bb.0: # %entry 253 pushq %rbp 254 .cfi_def_cfa_offset 16 255 .cfi_offset %rbp, -16 256 movq %rsp, %rbp 257 .cfi_def_cfa_register %rbp 258 movq %rdi, -8(%rbp) 259 movl %esi, -12(%rbp) 260.Ltmp0: 261 movq -8(%rbp), %rax 262 movl (%rax), %ecx 263 imull -12(%rbp), %ecx 264 movq -8(%rbp), %rax 265 movl %ecx, (%rax) 266 popq %rbp 267 .cfi_def_cfa %rsp, 8 268 retq 269.Ltmp1: 270.Lfunc_end0: 271 .size _Z3barR3fooi, .Lfunc_end0-_Z3barR3fooi 272 .cfi_endproc 273 # -- End function 274 .globl main # -- Begin function main 275 .p2align 4, 0x90 276 .type main,@function 277main: # @main 278.Lfunc_begin1: 279 .cfi_startproc 280# %bb.0: # %entry 281 pushq %rbp 282 .cfi_def_cfa_offset 16 283 .cfi_offset %rbp, -16 284 movq %rsp, %rbp 285 .cfi_def_cfa_register %rbp 286 subq $48, %rsp 287 movl $0, -4(%rbp) 288 movl %edi, -8(%rbp) 289 movq %rsi, -16(%rbp) 290.Ltmp2: 291 movl $10, -32(%rbp) 292 movb $113, -28(%rbp) 293 movq $0, -24(%rbp) 294 callq _Z3foov@PLT 295 movl %eax, -36(%rbp) 296 movl -36(%rbp), %esi 297 leaq -32(%rbp), %rdi 298 callq _Z3barR3fooi 299 callq _ZN11parent_test3fooEv@PLT 300 movl %eax, -40(%rbp) 301 xorl %eax, %eax 302 addq $48, %rsp 303 popq %rbp 304 .cfi_def_cfa %rsp, 8 305 retq 306.Ltmp3: 307.Lfunc_end1: 308 .size main, .Lfunc_end1-main 309 .cfi_endproc 310 # -- End function 311 .section .debug_abbrev,"",@progbits 312 .byte 0 # EOM(1) 313 .byte 0 # EOM(2) 314 .byte 0 # EOM(3) 315 .section .debug_info,"",@progbits 316.Lcu_begin0: 317 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 318.Ldebug_info_start0: 319 .short 5 # DWARF version number 320 .byte 1 # DWARF Unit Type 321 .byte 8 # Address Size (in bytes) 322 .long .debug_abbrev # Offset Into Abbrev. Section 323.Ldebug_info_end0: 324 .section .debug_str_offsets,"",@progbits 325 .long 72 # Length of String Offsets Set 326 .short 5 327 .short 0 328.Lstr_offsets_base0: 329 .section .debug_str,"MS",@progbits,1 330.Linfo_string0: 331 .asciz "clang version 19.0.0git (git@github.com:llvm/llvm-project.git 53b14cd9ce2b57da73d173fc876d2e9e199f5640)" # string offset=0 332.Linfo_string1: 333 .asciz "a.cpp" # string offset=104 334.Linfo_string2: 335 .asciz "/proc/self/cwd" # string offset=110 336.Linfo_string3: 337 .asciz "bar" # string offset=125 338.Linfo_string4: 339 .asciz "_Z3barR3fooi" # string offset=129 340.Linfo_string5: 341 .asciz "main" # string offset=142 342.Linfo_string6: 343 .asciz "int" # string offset=147 344.Linfo_string7: 345 .asciz "foo" # string offset=151 346.Linfo_string8: 347 .asciz "x" # string offset=155 348.Linfo_string9: 349 .asciz "y" # string offset=157 350.Linfo_string10: 351 .asciz "char" # string offset=159 352.Linfo_string11: 353 .asciz "foo_ptr" # string offset=164 354.Linfo_string12: 355 .asciz "junk" # string offset=172 356.Linfo_string13: 357 .asciz "argc" # string offset=177 358.Linfo_string14: 359 .asciz "argv" # string offset=182 360.Linfo_string15: 361 .asciz "my_struct" # string offset=187 362.Linfo_string16: 363 .asciz "junk2" # string offset=197 364.Laddr_table_base0: 365 .quad .Lfunc_begin0 366 .quad .Lfunc_begin1 367.Ldebug_addr_end0: 368 .section .debug_names,"",@progbits 369 .long .Lnames_end0-.Lnames_start0 # Header: unit length 370.Lnames_start0: 371 .short 5 # Header: version 372 .short 0 # Header: padding 373 .long 1 # Header: compilation unit count 374 .long 0 # Header: local type unit count 375 .long 0 # Header: foreign type unit count 376 .long 6 # Header: bucket count 377 .long 6 # Header: name count 378 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 379 .long 8 # Header: augmentation string size 380 .ascii "LLVM0700" # Header: augmentation string 381 .long .Lcu_begin0 # Compilation unit 0 382 .long 1 # Bucket 0 383 .long 0 # Bucket 1 384 .long 2 # Bucket 2 385 .long 4 # Bucket 3 386 .long 5 # Bucket 4 387 .long 6 # Bucket 5 388 .long 193487034 # Hash in Bucket 0 389 .long 193495088 # Hash in Bucket 2 390 .long 1358986904 # Hash in Bucket 2 391 .long 193491849 # Hash in Bucket 3 392 .long 2090499946 # Hash in Bucket 4 393 .long 2090147939 # Hash in Bucket 5 394 .long .Linfo_string3 # String in Bucket 0: bar 395 .long .Linfo_string6 # String in Bucket 2: int 396 .long .Linfo_string4 # String in Bucket 2: _Z3barR3fooi 397 .long .Linfo_string7 # String in Bucket 3: foo 398 .long .Linfo_string5 # String in Bucket 4: main 399 .long .Linfo_string10 # String in Bucket 5: char 400 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0 401 .long .Lnames3-.Lnames_entries0 # Offset in Bucket 2 402 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 2 403 .long .Lnames4-.Lnames_entries0 # Offset in Bucket 3 404 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 4 405 .long .Lnames5-.Lnames_entries0 # Offset in Bucket 5 406.Lnames_abbrev_start0: 407 .byte 1 # Abbrev code 408 .byte 46 # DW_TAG_subprogram 409 .byte 3 # DW_IDX_die_offset 410 .byte 19 # DW_FORM_ref4 411 .byte 4 # DW_IDX_parent 412 .byte 25 # DW_FORM_flag_present 413 .byte 0 # End of abbrev 414 .byte 0 # End of abbrev 415 .byte 2 # Abbrev code 416 .byte 36 # DW_TAG_base_type 417 .byte 3 # DW_IDX_die_offset 418 .byte 19 # DW_FORM_ref4 419 .byte 4 # DW_IDX_parent 420 .byte 25 # DW_FORM_flag_present 421 .byte 0 # End of abbrev 422 .byte 0 # End of abbrev 423 .byte 3 # Abbrev code 424 .byte 19 # DW_TAG_structure_type 425 .byte 3 # DW_IDX_die_offset 426 .byte 19 # DW_FORM_ref4 427 .byte 4 # DW_IDX_parent 428 .byte 25 # DW_FORM_flag_present 429 .byte 0 # End of abbrev 430 .byte 0 # End of abbrev 431 .byte 0 # End of abbrev list 432.Lnames_abbrev_end0: 433.Lnames_entries0: 434.Lnames0: 435.L2: 436 .byte 1 # Abbreviation code 437 .long 35 # DW_IDX_die_offset 438 .byte 0 # DW_IDX_parent 439 # End of list: bar 440.Lnames3: 441.L1: 442 .byte 2 # Abbreviation code 443 .long 141 # DW_IDX_die_offset 444 .byte 0 # DW_IDX_parent 445 # End of list: int 446.Lnames1: 447 .byte 1 # Abbreviation code 448 .long 35 # DW_IDX_die_offset 449 .byte 0 # DW_IDX_parent 450 # End of list: _Z3barR3fooi 451.Lnames4: 452.L4: 453 .byte 3 # Abbreviation code 454 .long 150 # DW_IDX_die_offset 455 .byte 0 # DW_IDX_parent 456 # End of list: foo 457.Lnames2: 458.L0: 459 .byte 1 # Abbreviation code 460 .long 70 # DW_IDX_die_offset 461 .byte 0 # DW_IDX_parent 462 # End of list: main 463.Lnames5: 464.L3: 465 .byte 2 # Abbreviation code 466 .long 184 # DW_IDX_die_offset 467 .byte 0 # DW_IDX_parent 468 # End of list: char 469 .p2align 2, 0x0 470.Lnames_end0: 471 .ident "clang version 19.0.0git (git@github.com:llvm/llvm-project.git 53b14cd9ce2b57da73d173fc876d2e9e199f5640)" 472 .section ".note.GNU-stack","",@progbits 473 .addrsig 474 .addrsig_sym _Z3barR3fooi 475 .addrsig_sym _Z3foov 476 .addrsig_sym _ZN11parent_test3fooEv 477 .section .debug_line,"",@progbits 478.Lline_table_start0: 479 480#--- b.s 481# Generated with: 482 483# clang++ -g -O0 -gpubnames -fdebug-compilation-dir='/proc/self/cwd' -S \ 484# b.cpp -o b.s 485 486# foo.h contents: 487 488# int foo(); 489 490#struct foo { 491# int x; 492# char y; 493# struct foo *foo_ptr; 494# }; 495 496# namespace parent_test { 497# int foo(); 498# } 499 500# b.cpp contents: 501 502# #include "foo.h" 503# int foo () { 504# struct foo struct2; 505# struct2.x = 1024; 506# struct2.y = 'r'; 507# struct2.foo_ptr = nullptr; 508# return struct2.x * (int) struct2.y; 509# } 510 511# namespace parent_test { 512# int foo () { 513# return 25; 514# } 515# } 516 517 .text 518 .globl _Z3foov # -- Begin function _Z3foov 519 .p2align 4, 0x90 520 .type _Z3foov,@function 521_Z3foov: # @_Z3foov 522.Lfunc_begin0: 523 .cfi_startproc 524# %bb.0: # %entry 525 pushq %rbp 526 .cfi_def_cfa_offset 16 527 .cfi_offset %rbp, -16 528 movq %rsp, %rbp 529 .cfi_def_cfa_register %rbp 530.Ltmp0: 531 movl $1024, -16(%rbp) # imm = 0x400 532 movb $114, -12(%rbp) 533 movq $0, -8(%rbp) 534 movl -16(%rbp), %eax 535 movsbl -12(%rbp), %ecx 536 imull %ecx, %eax 537 popq %rbp 538 .cfi_def_cfa %rsp, 8 539 retq 540.Ltmp1: 541.Lfunc_end0: 542 .size _Z3foov, .Lfunc_end0-_Z3foov 543 .cfi_endproc 544 # -- End function 545 .globl _ZN11parent_test3fooEv # -- Begin function _ZN11parent_test3fooEv 546 .p2align 4, 0x90 547 .type _ZN11parent_test3fooEv,@function 548_ZN11parent_test3fooEv: # @_ZN11parent_test3fooEv 549.Lfunc_begin1: 550 .cfi_startproc 551# %bb.0: # %entry 552 pushq %rbp 553 .cfi_def_cfa_offset 16 554 .cfi_offset %rbp, -16 555 movq %rsp, %rbp 556 .cfi_def_cfa_register %rbp 557.Ltmp2: 558 movl $25, %eax 559 popq %rbp 560 .cfi_def_cfa %rsp, 8 561 retq 562.Ltmp3: 563.Lfunc_end1: 564 .size _ZN11parent_test3fooEv, .Lfunc_end1-_ZN11parent_test3fooEv 565 .cfi_endproc 566 # -- End function 567 .section .debug_abbrev,"",@progbits 568 .byte 0 # EOM(1) 569 .byte 0 # EOM(2) 570 .byte 0 # EOM(3) 571 .section .debug_info,"",@progbits 572.Lcu_begin0: 573 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 574.Ldebug_info_start0: 575 .short 5 # DWARF version number 576 .byte 1 # DWARF Unit Type 577 .byte 8 # Address Size (in bytes) 578 .long .debug_abbrev # Offset Into Abbrev. Section 579.Ldebug_info_end0: 580 .section .debug_str_offsets,"",@progbits 581 .long 56 # Length of String Offsets Set 582 .short 5 583 .short 0 584.Lstr_offsets_base0: 585 .section .debug_str,"MS",@progbits,1 586.Linfo_string0: 587 .asciz "clang version 19.0.0git (git@github.com:llvm/llvm-project.git 53b14cd9ce2b57da73d173fc876d2e9e199f5640)" # string offset=0 588.Linfo_string1: 589 .asciz "b.cpp" # string offset=104 590.Linfo_string2: 591 .asciz "/proc/self/cwd" # string offset=110 592.Linfo_string3: 593 .asciz "int" # string offset=125 594.Linfo_string4: 595 .asciz "foo" # string offset=129 596.Linfo_string5: 597 .asciz "_Z3foov" # string offset=133 598.Linfo_string6: 599 .asciz "parent_test" # string offset=141 600.Linfo_string7: 601 .asciz "_ZN11parent_test3fooEv" # string offset=153 602.Linfo_string8: 603 .asciz "struct2" # string offset=176 604.Linfo_string9: 605 .asciz "x" # string offset=184 606.Linfo_string10: 607 .asciz "y" # string offset=186 608.Linfo_string11: 609 .asciz "char" # string offset=188 610.Linfo_string12: 611 .asciz "foo_ptr" # string offset=193 612.Laddr_table_base0: 613 .quad .Lfunc_begin0 614 .quad .Lfunc_begin1 615.Ldebug_addr_end0: 616 .section .debug_names,"",@progbits 617 .long .Lnames_end0-.Lnames_start0 # Header: unit length 618.Lnames_start0: 619 .short 5 # Header: version 620 .short 0 # Header: padding 621 .long 1 # Header: compilation unit count 622 .long 0 # Header: local type unit count 623 .long 0 # Header: foreign type unit count 624 .long 6 # Header: bucket count 625 .long 6 # Header: name count 626 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 627 .long 8 # Header: augmentation string size 628 .ascii "LLVM0700" # Header: augmentation string 629 .long .Lcu_begin0 # Compilation unit 0 630 .long 0 # Bucket 0 631 .long 1 # Bucket 1 632 .long 3 # Bucket 2 633 .long 5 # Bucket 3 634 .long 0 # Bucket 4 635 .long 6 # Bucket 5 636 .long -1451972055 # Hash in Bucket 1 637 .long -1257882357 # Hash in Bucket 1 638 .long 175265198 # Hash in Bucket 2 639 .long 193495088 # Hash in Bucket 2 640 .long 193491849 # Hash in Bucket 3 641 .long 2090147939 # Hash in Bucket 5 642 .long .Linfo_string7 # String in Bucket 1: _ZN11parent_test3fooEv 643 .long .Linfo_string5 # String in Bucket 1: _Z3foov 644 .long .Linfo_string6 # String in Bucket 2: parent_test 645 .long .Linfo_string3 # String in Bucket 2: int 646 .long .Linfo_string4 # String in Bucket 3: foo 647 .long .Linfo_string11 # String in Bucket 5: char 648 .long .Lnames4-.Lnames_entries0 # Offset in Bucket 1 649 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 1 650 .long .Lnames3-.Lnames_entries0 # Offset in Bucket 2 651 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 2 652 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 3 653 .long .Lnames5-.Lnames_entries0 # Offset in Bucket 5 654.Lnames_abbrev_start0: 655 .byte 1 # Abbrev code 656 .byte 46 # DW_TAG_subprogram 657 .byte 3 # DW_IDX_die_offset 658 .byte 19 # DW_FORM_ref4 659 .byte 4 # DW_IDX_parent 660 .byte 19 # DW_FORM_ref4 661 .byte 0 # End of abbrev 662 .byte 0 # End of abbrev 663 .byte 2 # Abbrev code 664 .byte 46 # DW_TAG_subprogram 665 .byte 3 # DW_IDX_die_offset 666 .byte 19 # DW_FORM_ref4 667 .byte 4 # DW_IDX_parent 668 .byte 25 # DW_FORM_flag_present 669 .byte 0 # End of abbrev 670 .byte 0 # End of abbrev 671 .byte 3 # Abbrev code 672 .byte 57 # DW_TAG_namespace 673 .byte 3 # DW_IDX_die_offset 674 .byte 19 # DW_FORM_ref4 675 .byte 4 # DW_IDX_parent 676 .byte 25 # DW_FORM_flag_present 677 .byte 0 # End of abbrev 678 .byte 0 # End of abbrev 679 .byte 4 # Abbrev code 680 .byte 36 # DW_TAG_base_type 681 .byte 3 # DW_IDX_die_offset 682 .byte 19 # DW_FORM_ref4 683 .byte 4 # DW_IDX_parent 684 .byte 25 # DW_FORM_flag_present 685 .byte 0 # End of abbrev 686 .byte 0 # End of abbrev 687 .byte 5 # Abbrev code 688 .byte 19 # DW_TAG_structure_type 689 .byte 3 # DW_IDX_die_offset 690 .byte 19 # DW_FORM_ref4 691 .byte 4 # DW_IDX_parent 692 .byte 25 # DW_FORM_flag_present 693 .byte 0 # End of abbrev 694 .byte 0 # End of abbrev 695 .byte 0 # End of abbrev list 696.Lnames_abbrev_end0: 697.Lnames_entries0: 698.Lnames4: 699.L3: 700 .byte 1 # Abbreviation code 701 .long 69 # DW_IDX_die_offset 702 .long .L5-.Lnames_entries0 # DW_IDX_parent 703 .byte 0 # End of list: _ZN11parent_test3fooEv 704.Lnames2: 705.L0: 706 .byte 2 # Abbreviation code 707 .long 39 # DW_IDX_die_offset 708 .byte 0 # DW_IDX_parent 709 # End of list: _Z3foov 710.Lnames3: 711.L5: 712 .byte 3 # Abbreviation code 713 .long 67 # DW_IDX_die_offset 714 .byte 0 # DW_IDX_parent 715 # End of list: parent_test 716.Lnames0: 717.L2: 718 .byte 4 # Abbreviation code 719 .long 35 # DW_IDX_die_offset 720 .byte 0 # DW_IDX_parent 721 # End of list: int 722.Lnames1: 723 .byte 2 # Abbreviation code 724 .long 39 # DW_IDX_die_offset 725 .byte 1 # DW_IDX_parent 726 # Abbreviation code 727 .long 69 # DW_IDX_die_offset 728 .long .L5-.Lnames_entries0 # DW_IDX_parent 729.L4: 730 .byte 5 # Abbreviation code 731 .long 86 # DW_IDX_die_offset 732 .byte 0 # DW_IDX_parent 733 # End of list: foo 734.Lnames5: 735.L1: 736 .byte 4 # Abbreviation code 737 .long 120 # DW_IDX_die_offset 738 .byte 0 # DW_IDX_parent 739 # End of list: char 740 .p2align 2, 0x0 741.Lnames_end0: 742 .ident "clang version 19.0.0git (git@github.com:llvm/llvm-project.git 53b14cd9ce2b57da73d173fc876d2e9e199f5640)" 743 .section ".note.GNU-stack","",@progbits 744 .addrsig 745 .section .debug_line,"",@progbits 746.Lline_table_start0: 747