569 lines · plain
1# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %s -o %tmain.o2# RUN: %clang %cflags -gdwarf-5 %tmain.o -o %tmain.exe3# RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections4# RUN: llvm-dwarfdump --debug-names %tmain.exe.bolt > %tlog.txt5# RUN: cat %tlog.txt | FileCheck -check-prefix=BOLT %s6 7## Tests that bolt can correctly generate debug_names when there is an DW_TAG_inlined_subroutine8## with DW_AT_abstract_origin that points to DW_TAG_subprogram that only has DW_AT_linkage_name.9 10# BOLT: Name Index @ 0x0 {11# BOLT-NEXT: Header {12# BOLT-NEXT: Length: 0xA213# BOLT-NEXT: Format: DWARF3214# BOLT-NEXT: Version: 515# BOLT-NEXT: CU count: 116# BOLT-NEXT: Local TU count: 017# BOLT-NEXT: Foreign TU count: 018# BOLT-NEXT: Bucket count: 419# BOLT-NEXT: Name count: 420# BOLT-NEXT: Abbreviations table size: 0x1921# BOLT-NEXT: Augmentation: 'BOLT'22# BOLT-NEXT: }23# BOLT-NEXT: Compilation Unit offsets [24# BOLT-NEXT: CU[0]: 0x0000000025# BOLT-NEXT: ]26# BOLT-NEXT: Abbreviations [27# BOLT-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] {28# BOLT-NEXT: Tag: DW_TAG_base_type29# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref430# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present31# BOLT-NEXT: }32# BOLT-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] {33# BOLT-NEXT: Tag: DW_TAG_subprogram34# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref435# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present36# BOLT-NEXT: }37# BOLT-NEXT: Abbreviation [[ABBREV3:0x[0-9a-f]*]] {38# BOLT-NEXT: Tag: DW_TAG_inlined_subroutine39# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref440# BOLT-NEXT: DW_IDX_parent: DW_FORM_ref441# BOLT-NEXT: }42# BOLT-NEXT: ]43# BOLT-NEXT: Bucket 0 [44# BOLT-NEXT: Name 1 {45# BOLT-NEXT: Hash: 0xB88803046# BOLT-NEXT: String: {{.+}} "int"47# BOLT-NEXT: Entry @ {{.+}} {48# BOLT-NEXT: Abbrev: 0x149# BOLT-NEXT: Tag: DW_TAG_base_type50# BOLT-NEXT: DW_IDX_die_offset: 0x0000004a51# BOLT-NEXT: DW_IDX_parent: <parent not indexed>52# BOLT-NEXT: }53# BOLT-NEXT: }54# BOLT-NEXT: ]55# BOLT-NEXT: Bucket 1 [56# BOLT-NEXT: EMPTY57# BOLT-NEXT: ]58# BOLT-NEXT: Bucket 2 [59# BOLT-NEXT: Name 2 {60# BOLT-NEXT: Hash: 0x7C9A7F6A61# BOLT-NEXT: String: {{.+}} "main"62# BOLT-NEXT: Entry @ [[REF1:0x[0-9a-f]*]] {63# BOLT-NEXT: Abbrev: [[ABBREV2]]64# BOLT-NEXT: Tag: DW_TAG_subprogram65# BOLT-NEXT: DW_IDX_die_offset: 0x0000004e66# BOLT-NEXT: DW_IDX_parent: <parent not indexed>67# BOLT-NEXT: }68# BOLT-NEXT: }69# BOLT-NEXT: Name 3 {70# BOLT-NEXT: Hash: 0xB5063CFE71# BOLT-NEXT: String: {{.+}} "_Z3fooi"72# BOLT-NEXT: Entry @ {{.+}} {73# BOLT-NEXT: Abbrev: [[ABBREV2]]74# BOLT-NEXT: Tag: DW_TAG_subprogram75# BOLT-NEXT: DW_IDX_die_offset: 0x0000002476# BOLT-NEXT: DW_IDX_parent: <parent not indexed>77# BOLT-NEXT: }78# BOLT-NEXT: Entry @ 0x96 {79# BOLT-NEXT: Abbrev: [[ABBREV3]]80# BOLT-NEXT: Tag: DW_TAG_inlined_subroutine81# BOLT-NEXT: DW_IDX_die_offset: 0x0000007e82# BOLT-NEXT: DW_IDX_parent: Entry @ [[REF1]]83# BOLT-NEXT: }84# BOLT-NEXT: }85# BOLT-NEXT: ]86# BOLT-NEXT: Bucket 3 [87# BOLT-NEXT: Name 4 {88# BOLT-NEXT: Hash: 0x7C95206389# BOLT-NEXT: String: {{.+}} "char"90# BOLT-NEXT: Entry @ {{.+}} {91# BOLT-NEXT: Abbrev: [[ABBREV1]]92# BOLT-NEXT: Tag: DW_TAG_base_type93# BOLT-NEXT: DW_IDX_die_offset: 0x0000009f94# BOLT-NEXT: DW_IDX_parent: <parent not indexed>95 96## int foo(int i) {97## return i ++;98## }99## int main(int argc, char* argv[]) {100## int i = 0;101## [[clang::always_inline]] i = foo(argc);102## return i;103## }104## Test was manually modified so that DW_TAG_subprogram only had DW_AT_linkage_name.105 106 .text107 .file "main.cpp"108 .globl _Z3fooi109 .p2align 4, 0x90110 .type _Z3fooi,@function111_Z3fooi:112.Lfunc_begin0:113 .file 0 "/abstractChain" "main.cpp" md5 0x2e29d55fc1320801a8057a4c50643ea1114 .loc 0 1 0115 .loc 0 2 12 prologue_end116 .loc 0 2 3 epilogue_begin is_stmt 0117 retq118.Lfunc_end0:119 .size _Z3fooi, .Lfunc_end0-_Z3fooi120 121 .globl main122 .p2align 4, 0x90123 .type main,@function124main:125.Lfunc_begin1:126 .loc 0 4 0 is_stmt 1127.Ltmp2:128 .loc 0 5 7 prologue_end129 .loc 0 6 36130 movl -12(%rbp), %eax131.Ltmp3:132 .loc 0 2 12133.Ltmp4:134 .loc 0 6 30135 .loc 0 7 10136 .loc 0 7 3 epilogue_begin is_stmt 0137 retq138.Ltmp5:139.Lfunc_end1:140 .size main, .Lfunc_end1-main141 # -- End function142 .section .debug_abbrev,"",@progbits143 .byte 1 # Abbreviation Code144 .byte 17 # DW_TAG_compile_unit145 .byte 1 # DW_CHILDREN_yes146 .byte 37 # DW_AT_producer147 .byte 37 # DW_FORM_strx1148 .byte 19 # DW_AT_language149 .byte 5 # DW_FORM_data2150 .byte 3 # DW_AT_name151 .byte 37 # DW_FORM_strx1152 .byte 114 # DW_AT_str_offsets_base153 .byte 23 # DW_FORM_sec_offset154 .byte 16 # DW_AT_stmt_list155 .byte 23 # DW_FORM_sec_offset156 .byte 27 # DW_AT_comp_dir157 .byte 37 # DW_FORM_strx1158 .byte 17 # DW_AT_low_pc159 .byte 27 # DW_FORM_addrx160 .byte 18 # DW_AT_high_pc161 .byte 6 # DW_FORM_data4162 .byte 115 # DW_AT_addr_base163 .byte 23 # DW_FORM_sec_offset164 .byte 0 # EOM(1)165 .byte 0 # EOM(2)166 .byte 2 # Abbreviation Code167 .byte 46 # DW_TAG_subprogram168 .byte 1 # DW_CHILDREN_yes169 .byte 17 # DW_AT_low_pc170 .byte 27 # DW_FORM_addrx171 .byte 18 # DW_AT_high_pc172 .byte 6 # DW_FORM_data4173 .byte 64 # DW_AT_frame_base174 .byte 24 # DW_FORM_exprloc175 .byte 49 # DW_AT_abstract_origin176 .byte 19 # DW_FORM_ref4177 .byte 0 # EOM(1)178 .byte 0 # EOM(2)179 .byte 3 # Abbreviation Code180 .byte 5 # DW_TAG_formal_parameter181 .byte 0 # DW_CHILDREN_no182 .byte 2 # DW_AT_location183 .byte 24 # DW_FORM_exprloc184 .byte 49 # DW_AT_abstract_origin185 .byte 19 # DW_FORM_ref4186 .byte 0 # EOM(1)187 .byte 0 # EOM(2)188 .byte 4 # Abbreviation Code189 .byte 46 # DW_TAG_subprogram190 .byte 1 # DW_CHILDREN_yes191 .byte 110 # DW_AT_linkage_name192 .byte 37 # DW_FORM_strx1193 #.byte 3 # DW_AT_name194 #.byte 37 # DW_FORM_strx1195 .byte 58 # DW_AT_decl_file196 .byte 11 # DW_FORM_data1197 .byte 59 # DW_AT_decl_line198 .byte 11 # DW_FORM_data1199 .byte 73 # DW_AT_type200 .byte 19 # DW_FORM_ref4201 .byte 63 # DW_AT_external202 .byte 25 # DW_FORM_flag_present203 .byte 32 # DW_AT_inline204 .byte 33 # DW_FORM_implicit_const205 .byte 1206 .byte 0 # EOM(1)207 .byte 0 # EOM(2)208 .byte 5 # Abbreviation Code209 .byte 5 # DW_TAG_formal_parameter210 .byte 0 # DW_CHILDREN_no211 .byte 3 # DW_AT_name212 .byte 37 # DW_FORM_strx1213 .byte 58 # DW_AT_decl_file214 .byte 11 # DW_FORM_data1215 .byte 59 # DW_AT_decl_line216 .byte 11 # DW_FORM_data1217 .byte 73 # DW_AT_type218 .byte 19 # DW_FORM_ref4219 .byte 0 # EOM(1)220 .byte 0 # EOM(2)221 .byte 6 # Abbreviation Code222 .byte 36 # DW_TAG_base_type223 .byte 0 # DW_CHILDREN_no224 .byte 3 # DW_AT_name225 .byte 37 # DW_FORM_strx1226 .byte 62 # DW_AT_encoding227 .byte 11 # DW_FORM_data1228 .byte 11 # DW_AT_byte_size229 .byte 11 # DW_FORM_data1230 .byte 0 # EOM(1)231 .byte 0 # EOM(2)232 .byte 7 # Abbreviation Code233 .byte 46 # DW_TAG_subprogram234 .byte 1 # DW_CHILDREN_yes235 .byte 17 # DW_AT_low_pc236 .byte 27 # DW_FORM_addrx237 .byte 18 # DW_AT_high_pc238 .byte 6 # DW_FORM_data4239 .byte 64 # DW_AT_frame_base240 .byte 24 # DW_FORM_exprloc241 .byte 3 # DW_AT_name242 .byte 37 # DW_FORM_strx1243 .byte 58 # DW_AT_decl_file244 .byte 11 # DW_FORM_data1245 .byte 59 # DW_AT_decl_line246 .byte 11 # DW_FORM_data1247 .byte 73 # DW_AT_type248 .byte 19 # DW_FORM_ref4249 .byte 63 # DW_AT_external250 .byte 25 # DW_FORM_flag_present251 .byte 0 # EOM(1)252 .byte 0 # EOM(2)253 .byte 8 # Abbreviation Code254 .byte 5 # DW_TAG_formal_parameter255 .byte 0 # DW_CHILDREN_no256 .byte 2 # DW_AT_location257 .byte 24 # DW_FORM_exprloc258 .byte 3 # DW_AT_name259 .byte 37 # DW_FORM_strx1260 .byte 58 # DW_AT_decl_file261 .byte 11 # DW_FORM_data1262 .byte 59 # DW_AT_decl_line263 .byte 11 # DW_FORM_data1264 .byte 73 # DW_AT_type265 .byte 19 # DW_FORM_ref4266 .byte 0 # EOM(1)267 .byte 0 # EOM(2)268 .byte 9 # Abbreviation Code269 .byte 52 # DW_TAG_variable270 .byte 0 # DW_CHILDREN_no271 .byte 2 # DW_AT_location272 .byte 24 # DW_FORM_exprloc273 .byte 3 # DW_AT_name274 .byte 37 # DW_FORM_strx1275 .byte 58 # DW_AT_decl_file276 .byte 11 # DW_FORM_data1277 .byte 59 # DW_AT_decl_line278 .byte 11 # DW_FORM_data1279 .byte 73 # DW_AT_type280 .byte 19 # DW_FORM_ref4281 .byte 0 # EOM(1)282 .byte 0 # EOM(2)283 .byte 10 # Abbreviation Code284 .byte 29 # DW_TAG_inlined_subroutine285 .byte 1 # DW_CHILDREN_yes286 .byte 49 # DW_AT_abstract_origin287 .byte 19 # DW_FORM_ref4288 .byte 17 # DW_AT_low_pc289 .byte 27 # DW_FORM_addrx290 .byte 18 # DW_AT_high_pc291 .byte 6 # DW_FORM_data4292 .byte 88 # DW_AT_call_file293 .byte 11 # DW_FORM_data1294 .byte 89 # DW_AT_call_line295 .byte 11 # DW_FORM_data1296 .byte 87 # DW_AT_call_column297 .byte 11 # DW_FORM_data1298 .byte 0 # EOM(1)299 .byte 0 # EOM(2)300 .byte 11 # Abbreviation Code301 .byte 15 # DW_TAG_pointer_type302 .byte 0 # DW_CHILDREN_no303 .byte 73 # DW_AT_type304 .byte 19 # DW_FORM_ref4305 .byte 0 # EOM(1)306 .byte 0 # EOM(2)307 .byte 0 # EOM(3)308 .section .debug_info,"",@progbits309.Lcu_begin0:310 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit311.Ldebug_info_start0:312 .short 5 # DWARF version number313 .byte 1 # DWARF Unit Type314 .byte 8 # Address Size (in bytes)315 .long .debug_abbrev # Offset Into Abbrev. Section316 .byte 1 # Abbrev [1] 0xc:0x98 DW_TAG_compile_unit317 .byte 0 # DW_AT_producer318 .short 33 # DW_AT_language319 .byte 1 # DW_AT_name320 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base321 .long .Lline_table_start0 # DW_AT_stmt_list322 .byte 2 # DW_AT_comp_dir323 .byte 0 # DW_AT_low_pc324 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc325 .long .Laddr_table_base0 # DW_AT_addr_base326 .byte 2 # Abbrev [2] 0x23:0x15 DW_TAG_subprogram327 .byte 0 # DW_AT_low_pc328 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc329 .byte 1 # DW_AT_frame_base330 .byte 86331 .long 56 # DW_AT_abstract_origin332 .byte 3 # Abbrev [3] 0x2f:0x8 DW_TAG_formal_parameter333 .byte 2 # DW_AT_location334 .byte 145335 .byte 124336 .long 64 # DW_AT_abstract_origin Manually Modified337 .byte 0 # End Of Children Mark338 .byte 4 # Abbrev [4] 0x38:0x12 DW_TAG_subprogram339 .byte 3 # DW_AT_linkage_name340 #.byte 4 # DW_AT_name341 .byte 0 # DW_AT_decl_file342 .byte 1 # DW_AT_decl_line343 .long 74 # DW_AT_type344 # DW_AT_external345 # DW_AT_inline346 .byte 5 # Abbrev [5] 0x41:0x8 DW_TAG_formal_parameter347 .byte 6 # DW_AT_name348 .byte 0 # DW_AT_decl_file349 .byte 1 # DW_AT_decl_line350 .long 74 # DW_AT_type351 .byte 0 # End Of Children Mark352 .byte 6 # Abbrev [6] 0x4a:0x4 DW_TAG_base_type353 .byte 5 # DW_AT_name354 .byte 5 # DW_AT_encoding355 .byte 4 # DW_AT_byte_size356 .byte 7 # Abbrev [7] 0x4e:0x47 DW_TAG_subprogram357 .byte 1 # DW_AT_low_pc358 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc359 .byte 1 # DW_AT_frame_base360 .byte 86361 .byte 7 # DW_AT_name362 .byte 0 # DW_AT_decl_file363 .byte 4 # DW_AT_decl_line364 .long 73 # DW_AT_type Manually Modified365 # DW_AT_external366 .byte 8 # Abbrev [8] 0x5d:0xb DW_TAG_formal_parameter367 .byte 2 # DW_AT_location368 .byte 145369 .byte 116370 .byte 8 # DW_AT_name371 .byte 0 # DW_AT_decl_file372 .byte 4 # DW_AT_decl_line373 .long 73 # DW_AT_type Manually Modified374 .byte 8 # Abbrev [8] 0x68:0xb DW_TAG_formal_parameter375 .byte 2 # DW_AT_location376 .byte 145377 .byte 104378 .byte 9 # DW_AT_name379 .byte 0 # DW_AT_decl_file380 .byte 4 # DW_AT_decl_line381 .long 148 # DW_AT_type Manually Modified382 .byte 9 # Abbrev [9] 0x73:0xb DW_TAG_variable383 .byte 2 # DW_AT_location384 .byte 145385 .byte 100386 .byte 6 # DW_AT_name387 .byte 0 # DW_AT_decl_file388 .byte 5 # DW_AT_decl_line389 .long 73 # DW_AT_type Manually Modified390 .byte 10 # Abbrev [10] 0x7e:0x16 DW_TAG_inlined_subroutine391 .long 56 # DW_AT_abstract_origin392 .byte 2 # DW_AT_low_pc393 .long .Ltmp4-.Ltmp3 # DW_AT_high_pc394 .byte 0 # DW_AT_call_file395 .byte 6 # DW_AT_call_line396 .byte 32 # DW_AT_call_column397 .byte 3 # Abbrev [3] 0x8b:0x8 DW_TAG_formal_parameter398 .byte 2 # DW_AT_location399 .byte 145400 .byte 124401 .long 64 # DW_AT_abstract_origin Manually Modified402 .byte 0 # End Of Children Mark403 .byte 0 # End Of Children Mark404 .byte 11 # Abbrev [11] 0x95:0x5 DW_TAG_pointer_type405 .long 153 # DW_AT_type Manually Modified406 .byte 11 # Abbrev [11] 0x9a:0x5 DW_TAG_pointer_type407 .long 158 # DW_AT_type Manually Modified408 .byte 6 # Abbrev [6] 0x9f:0x4 DW_TAG_base_type409 .byte 10 # DW_AT_name410 .byte 6 # DW_AT_encoding411 .byte 1 # DW_AT_byte_size412 .byte 0 # End Of Children Mark413.Ldebug_info_end0:414 .section .debug_str_offsets,"",@progbits415 .long 48 # Length of String Offsets Set416 .short 5417 .short 0418.Lstr_offsets_base0:419 .section .debug_str,"MS",@progbits,1420.Linfo_string0:421 .asciz "clang version 20.0.0git" # string offset=0422.Linfo_string1:423 .asciz "main.cpp" # string offset=24424.Linfo_string2:425 .asciz "/abstractChain" # string offset=33426.Linfo_string3:427 .asciz "foo" # string offset=85428.Linfo_string4:429 .asciz "_Z3fooi" # string offset=89430.Linfo_string5:431 .asciz "int" # string offset=97432.Linfo_string6:433 .asciz "i" # string offset=101434.Linfo_string7:435 .asciz "main" # string offset=103436.Linfo_string8:437 .asciz "argc" # string offset=108438.Linfo_string9:439 .asciz "argv" # string offset=113440.Linfo_string10:441 .asciz "char" # string offset=118442 .section .debug_str_offsets,"",@progbits443 .long .Linfo_string0444 .long .Linfo_string1445 .long .Linfo_string2446 .long .Linfo_string4447 .long .Linfo_string3448 .long .Linfo_string5449 .long .Linfo_string6450 .long .Linfo_string7451 .long .Linfo_string8452 .long .Linfo_string9453 .long .Linfo_string10454 .section .debug_addr,"",@progbits455 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution456.Ldebug_addr_start0:457 .short 5 # DWARF version number458 .byte 8 # Address size459 .byte 0 # Segment selector size460.Laddr_table_base0:461 .quad .Lfunc_begin0462 .quad .Lfunc_begin1463 .quad .Ltmp3464.Ldebug_addr_end0:465 .section .debug_names,"",@progbits466 .long .Lnames_end0-.Lnames_start0 # Header: unit length467.Lnames_start0:468 .short 5 # Header: version469 .short 0 # Header: padding470 .long 1 # Header: compilation unit count471 .long 0 # Header: local type unit count472 .long 0 # Header: foreign type unit count473 .long 5 # Header: bucket count474 .long 5 # Header: name count475 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size476 .long 8 # Header: augmentation string size477 .ascii "LLVM0700" # Header: augmentation string478 .long .Lcu_begin0 # Compilation unit 0479 .long 0 # Bucket 0480 .long 1 # Bucket 1481 .long 0 # Bucket 2482 .long 3 # Bucket 3483 .long 4 # Bucket 4484 .long 2090499946 # Hash in Bucket 1485 .long -1257882370 # Hash in Bucket 1486 .long 193495088 # Hash in Bucket 3487 .long 193491849 # Hash in Bucket 4488 .long 2090147939 # Hash in Bucket 4489 .long .Linfo_string7 # String in Bucket 1: main490 .long .Linfo_string4 # String in Bucket 1: _Z3fooi491 .long .Linfo_string5 # String in Bucket 3: int492 .long .Linfo_string3 # String in Bucket 4: foo493 .long .Linfo_string10 # String in Bucket 4: char494 .long .Lnames3-.Lnames_entries0 # Offset in Bucket 1495 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 1496 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 3497 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 4498 .long .Lnames4-.Lnames_entries0 # Offset in Bucket 4499.Lnames_abbrev_start0:500 .byte 1 # Abbrev code501 .byte 46 # DW_TAG_subprogram502 .byte 3 # DW_IDX_die_offset503 .byte 19 # DW_FORM_ref4504 .byte 4 # DW_IDX_parent505 .byte 25 # DW_FORM_flag_present506 .byte 0 # End of abbrev507 .byte 0 # End of abbrev508 .byte 2 # Abbrev code509 .byte 29 # DW_TAG_inlined_subroutine510 .byte 3 # DW_IDX_die_offset511 .byte 19 # DW_FORM_ref4512 .byte 4 # DW_IDX_parent513 .byte 19 # DW_FORM_ref4514 .byte 0 # End of abbrev515 .byte 0 # End of abbrev516 .byte 3 # Abbrev code517 .byte 36 # DW_TAG_base_type518 .byte 3 # DW_IDX_die_offset519 .byte 19 # DW_FORM_ref4520 .byte 4 # DW_IDX_parent521 .byte 25 # DW_FORM_flag_present522 .byte 0 # End of abbrev523 .byte 0 # End of abbrev524 .byte 0 # End of abbrev list525.Lnames_abbrev_end0:526.Lnames_entries0:527.Lnames3:528.L2:529 .byte 1 # Abbreviation code530 .long 78 # DW_IDX_die_offset531 .byte 0 # DW_IDX_parent532 # End of list: main533.Lnames1:534.L0:535 .byte 1 # Abbreviation code536 .long 35 # DW_IDX_die_offset537.L3: # DW_IDX_parent538 .byte 2 # Abbreviation code539 .long 126 # DW_IDX_die_offset540 .long .L2-.Lnames_entries0 # DW_IDX_parent541 .byte 0 # End of list: _Z3fooi542.Lnames2:543.L1:544 .byte 3 # Abbreviation code545 .long 74 # DW_IDX_die_offset546 .byte 0 # DW_IDX_parent547 # End of list: int548.Lnames0:549 .byte 1 # Abbreviation code550 .long 35 # DW_IDX_die_offset551 .byte 2 # DW_IDX_parent552 # Abbreviation code553 .long 126 # DW_IDX_die_offset554 .long .L2-.Lnames_entries0 # DW_IDX_parent555 .byte 0 # End of list: foo556.Lnames4:557.L4:558 .byte 3 # Abbreviation code559 .long 159 # DW_IDX_die_offset560 .byte 0 # DW_IDX_parent561 # End of list: char562 .p2align 2, 0x0563.Lnames_end0:564 .ident "clang version 20.0.0git"565 .section ".note.GNU-stack","",@progbits566 .addrsig567 .section .debug_line,"",@progbits568.Lline_table_start0:569