830 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## This test checks that BOLT correctly generates .debug_names section when there is transative8## DW_AT_name/DW_AT_linkage_name resolution.9 10# BOLT: Abbreviations [11# BOLT-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] {12# BOLT-NEXT: Tag: DW_TAG_subprogram13# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref414# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present15# BOLT-NEXT: }16# BOLT-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] {17# BOLT-NEXT: Tag: DW_TAG_class_type18# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref419# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present20# BOLT-NEXT: }21# BOLT-NEXT: Abbreviation [[ABBREV3:0x[0-9a-f]*]] {22# BOLT-NEXT: Tag: DW_TAG_inlined_subroutine23# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref424# BOLT-NEXT: DW_IDX_parent: DW_FORM_ref425# BOLT-NEXT: }26# BOLT-NEXT: Abbreviation [[ABBREV4:0x[0-9a-f]*]] {27# BOLT-NEXT: Tag: DW_TAG_base_type28# BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref429# BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present30# BOLT-NEXT: }31# BOLT-NEXT: ]32# BOLT-NEXT: Bucket 0 [33# BOLT-NEXT: Name 1 {34# BOLT-NEXT: Hash: 0xD72418AA35# BOLT-NEXT: String: {{.+}} "_ZL3fooi"36# BOLT-NEXT: Entry @ {{.+}} {37# BOLT-NEXT: Abbrev: [[ABBREV1]]38# BOLT-NEXT: Tag: DW_TAG_subprogram39# BOLT-NEXT: DW_IDX_die_offset: 0x000000ba40# BOLT-NEXT: DW_IDX_parent: <parent not indexed>41# BOLT-NEXT: }42# BOLT-NEXT: }43# BOLT-NEXT: ]44# BOLT-NEXT: Bucket 1 [45# BOLT-NEXT: Name 2 {46# BOLT-NEXT: Hash: 0x10614A0647# BOLT-NEXT: String: {{.+}} "State"48# BOLT-NEXT: Entry @ {{.+}} {49# BOLT-NEXT: Abbrev: [[ABBREV2]]50# BOLT-NEXT: Tag: DW_TAG_class_type51# BOLT-NEXT: DW_IDX_die_offset: 0x0000002b52# BOLT-NEXT: DW_IDX_parent: <parent not indexed>53# BOLT-NEXT: }54# BOLT-NEXT: Entry @ [[REF1:0x[0-9a-f]*]] {55# BOLT-NEXT: Abbrev: [[ABBREV1]]56# BOLT-NEXT: Tag: DW_TAG_subprogram57# BOLT-NEXT: DW_IDX_die_offset: 0x0000008958# BOLT-NEXT: DW_IDX_parent: <parent not indexed>59# BOLT-NEXT: }60# BOLT-NEXT: Entry @ {{.+}} {61# BOLT-NEXT: Abbrev: [[ABBREV3]]62# BOLT-NEXT: Tag: DW_TAG_inlined_subroutine63# BOLT-NEXT: DW_IDX_die_offset: 0x000000a364# BOLT-NEXT: DW_IDX_parent: Entry @ [[REF1]]65# BOLT-NEXT: }66# BOLT-NEXT: }67# BOLT-NEXT: ]68# BOLT-NEXT: Bucket 2 [69# BOLT-NEXT: EMPTY70# BOLT-NEXT: ]71# BOLT-NEXT: Bucket 3 [72# BOLT-NEXT: Name 3 {73# BOLT-NEXT: Hash: 0xB88803074# BOLT-NEXT: String: {{.+}} "int"75# BOLT-NEXT: Entry @ {{.+}} {76# BOLT-NEXT: Abbrev: [[ABBREV4]]77# BOLT-NEXT: Tag: DW_TAG_base_type78# BOLT-NEXT: DW_IDX_die_offset: 0x0000008579# BOLT-NEXT: DW_IDX_parent: <parent not indexed>80# BOLT-NEXT: }81# BOLT-NEXT: }82# BOLT-NEXT: Name 4 {83# BOLT-NEXT: Hash: 0x7C9A7F6A84# BOLT-NEXT: String: {{.+}} "main"85# BOLT-NEXT: Entry @ {{.+}} {86# BOLT-NEXT: Abbrev: [[ABBREV1]]87# BOLT-NEXT: Tag: DW_TAG_subprogram88# BOLT-NEXT: DW_IDX_die_offset: 0x0000004289# BOLT-NEXT: DW_IDX_parent: <parent not indexed>90# BOLT-NEXT: }91# BOLT-NEXT: }92# BOLT-NEXT: ]93# BOLT-NEXT: Bucket 4 [94# BOLT-NEXT: EMPTY95# BOLT-NEXT: ]96# BOLT-NEXT: Bucket 5 [97# BOLT-NEXT: Name 5 {98# BOLT-NEXT: Hash: 0xB88738999# BOLT-NEXT: String: {{.+}} "foo"100# BOLT-NEXT: Entry @ {{.+}} {101# BOLT-NEXT: Abbrev: [[ABBREV1]]102# BOLT-NEXT: Tag: DW_TAG_subprogram103# BOLT-NEXT: DW_IDX_die_offset: 0x000000ba104# BOLT-NEXT: DW_IDX_parent: <parent not indexed>105# BOLT-NEXT: }106# BOLT-NEXT: }107# BOLT-NEXT: Name 6 {108# BOLT-NEXT: Hash: 0x7C952063109# BOLT-NEXT: String: {{.+}} "char"110# BOLT-NEXT: Entry @ {{.+}} {111# BOLT-NEXT: Abbrev: [[ABBREV4]]112# BOLT-NEXT: Tag: DW_TAG_base_type113# BOLT-NEXT: DW_IDX_die_offset: 0x000000d9114# BOLT-NEXT: DW_IDX_parent: <parent not indexed>115# BOLT-NEXT: }116# BOLT-NEXT: }117# BOLT-NEXT: Name 7 {118# BOLT-NEXT: Hash: 0xFBBDC812119# BOLT-NEXT: String: {{.+}} "_ZN5StateC2Ev"120# BOLT-NEXT: Entry @ {{.+}} {121# BOLT-NEXT: Abbrev: [[ABBREV1]]122# BOLT-NEXT: Tag: DW_TAG_subprogram123# BOLT-NEXT: DW_IDX_die_offset: 0x00000089124# BOLT-NEXT: DW_IDX_parent: <parent not indexed>125# BOLT-NEXT: }126# BOLT-NEXT: Entry @ {{.+}} {127# BOLT-NEXT: Abbrev: [[ABBREV3]]128# BOLT-NEXT: Tag: DW_TAG_inlined_subroutine129# BOLT-NEXT: DW_IDX_die_offset: 0x000000a3130# BOLT-NEXT: DW_IDX_parent: Entry @ [[REF1]]131 132## static int foo(int i) {133## return i ++;134## }135## class State {136## public:137## State() {[[clang::always_inline]] foo(3);}138## };139##140## int main(int argc, char* argv[]) {141## State S;142## return 0;143## }144 145## Test manually modified to redirect DW_TAG_inlined_subroutine to DW_TAG_subprogram with DW_AT_specification.146 147 .text148 .file "main.cpp"149 .file 0 "abstractChainTwo" "main.cpp" md5 0x17ad726b6a1fd49ee59559a1302da539150 .globl main # -- Begin function main151 .p2align 4, 0x90152 .type main,@function153main: # @main154.Lfunc_begin0:155 .loc 0 9 0 # main.cpp:9:0156.Ltmp0:157 .loc 0 10 9 prologue_end # main.cpp:10:9158 callq _ZN5StateC2Ev159 .loc 0 11 3 # main.cpp:11:3160 .loc 0 11 3 epilogue_begin is_stmt 0 # main.cpp:11:3161 retq162.Ltmp1:163.Lfunc_end0:164 .size main, .Lfunc_end0-main165 # -- End function166 .section .text._ZN5StateC2Ev,"axG",@progbits,_ZN5StateC2Ev,comdat167 .weak _ZN5StateC2Ev # -- Begin function _ZN5StateC2Ev168 .p2align 4, 0x90169 .type _ZN5StateC2Ev,@function170_ZN5StateC2Ev: # @_ZN5StateC2Ev171.Lfunc_begin1:172 .loc 0 6 0 is_stmt 1 # main.cpp:6:0173 .cfi_startproc174# %bb.0:175 pushq %rbp176 .cfi_def_cfa_offset 16177 .cfi_offset %rbp, -16178 movq %rsp, %rbp179 .cfi_def_cfa_register %rbp180 movq %rdi, -16(%rbp)181 movl $3, -4(%rbp)182.Ltmp2:183 .loc 0 2 12 prologue_end # main.cpp:2:12184 movl -4(%rbp), %eax185 addl $1, %eax186 movl %eax, -4(%rbp)187.Ltmp3:188 .loc 0 6 44 epilogue_begin # main.cpp:6:44189 popq %rbp190 .cfi_def_cfa %rsp, 8191 retq192.Ltmp4:193.Lfunc_end1:194 .size _ZN5StateC2Ev, .Lfunc_end1-_ZN5StateC2Ev195 .cfi_endproc196 # -- End function197 .text198 .p2align 4, 0x90 # -- Begin function _ZL3fooi199 .type _ZL3fooi,@function200_ZL3fooi: # @_ZL3fooi201.Lfunc_begin2:202 .loc 0 1 0 # main.cpp:1:0203 .cfi_startproc204# %bb.0:205 pushq %rbp206 .cfi_def_cfa_offset 16207 .cfi_offset %rbp, -16208 movq %rsp, %rbp209 .cfi_def_cfa_register %rbp210 movl %edi, -4(%rbp)211.Ltmp5:212 .loc 0 2 12 prologue_end # main.cpp:2:12213 movl -4(%rbp), %eax214 movl %eax, %ecx215 addl $1, %ecx216 movl %ecx, -4(%rbp)217 .loc 0 2 3 epilogue_begin is_stmt 0 # main.cpp:2:3218 popq %rbp219 .cfi_def_cfa %rsp, 8220 retq221.Ltmp6:222.Lfunc_end2:223 .size _ZL3fooi, .Lfunc_end2-_ZL3fooi224 .cfi_endproc225 # -- End function226 .section .debug_abbrev,"",@progbits227 .byte 1 # Abbreviation Code228 .byte 17 # DW_TAG_compile_unit229 .byte 1 # DW_CHILDREN_yes230 .byte 37 # DW_AT_producer231 .byte 37 # DW_FORM_strx1232 .byte 19 # DW_AT_language233 .byte 5 # DW_FORM_data2234 .byte 3 # DW_AT_name235 .byte 37 # DW_FORM_strx1236 .byte 114 # DW_AT_str_offsets_base237 .byte 23 # DW_FORM_sec_offset238 .byte 16 # DW_AT_stmt_list239 .byte 23 # DW_FORM_sec_offset240 .byte 27 # DW_AT_comp_dir241 .byte 37 # DW_FORM_strx1242 .byte 17 # DW_AT_low_pc243 .byte 1 # DW_FORM_addr244 .byte 85 # DW_AT_ranges245 .byte 35 # DW_FORM_rnglistx246 .byte 115 # DW_AT_addr_base247 .byte 23 # DW_FORM_sec_offset248 .byte 116 # DW_AT_rnglists_base249 .byte 23 # DW_FORM_sec_offset250 .byte 0 # EOM(1)251 .byte 0 # EOM(2)252 .byte 2 # Abbreviation Code253 .byte 2 # DW_TAG_class_type254 .byte 1 # DW_CHILDREN_yes255 .byte 54 # DW_AT_calling_convention256 .byte 11 # DW_FORM_data1257 .byte 3 # DW_AT_name258 .byte 37 # DW_FORM_strx1259 .byte 11 # DW_AT_byte_size260 .byte 11 # DW_FORM_data1261 .byte 58 # DW_AT_decl_file262 .byte 11 # DW_FORM_data1263 .byte 59 # DW_AT_decl_line264 .byte 11 # DW_FORM_data1265 .byte 0 # EOM(1)266 .byte 0 # EOM(2)267 .byte 3 # Abbreviation Code268 .byte 46 # DW_TAG_subprogram269 .byte 1 # DW_CHILDREN_yes270 .byte 3 # DW_AT_name271 .byte 37 # DW_FORM_strx1272 .byte 58 # DW_AT_decl_file273 .byte 11 # DW_FORM_data1274 .byte 59 # DW_AT_decl_line275 .byte 11 # DW_FORM_data1276 .byte 60 # DW_AT_declaration277 .byte 25 # DW_FORM_flag_present278 .byte 63 # DW_AT_external279 .byte 25 # DW_FORM_flag_present280 .byte 50 # DW_AT_accessibility281 .byte 11 # DW_FORM_data1282 .byte 0 # EOM(1)283 .byte 0 # EOM(2)284 .byte 4 # Abbreviation Code285 .byte 5 # DW_TAG_formal_parameter286 .byte 0 # DW_CHILDREN_no287 .byte 73 # DW_AT_type288 .byte 19 # DW_FORM_ref4289 .byte 52 # DW_AT_artificial290 .byte 25 # DW_FORM_flag_present291 .byte 0 # EOM(1)292 .byte 0 # EOM(2)293 .byte 5 # Abbreviation Code294 .byte 15 # DW_TAG_pointer_type295 .byte 0 # DW_CHILDREN_no296 .byte 73 # DW_AT_type297 .byte 19 # DW_FORM_ref4298 .byte 0 # EOM(1)299 .byte 0 # EOM(2)300 .byte 6 # Abbreviation Code301 .byte 46 # DW_TAG_subprogram302 .byte 1 # DW_CHILDREN_yes303 .byte 17 # DW_AT_low_pc304 .byte 27 # DW_FORM_addrx305 .byte 18 # DW_AT_high_pc306 .byte 6 # DW_FORM_data4307 .byte 64 # DW_AT_frame_base308 .byte 24 # DW_FORM_exprloc309 .byte 3 # DW_AT_name310 .byte 37 # DW_FORM_strx1311 .byte 58 # DW_AT_decl_file312 .byte 11 # DW_FORM_data1313 .byte 59 # DW_AT_decl_line314 .byte 11 # DW_FORM_data1315 .byte 73 # DW_AT_type316 .byte 19 # DW_FORM_ref4317 .byte 63 # DW_AT_external318 .byte 25 # DW_FORM_flag_present319 .byte 0 # EOM(1)320 .byte 0 # EOM(2)321 .byte 7 # Abbreviation Code322 .byte 5 # DW_TAG_formal_parameter323 .byte 0 # DW_CHILDREN_no324 .byte 2 # DW_AT_location325 .byte 24 # DW_FORM_exprloc326 .byte 3 # DW_AT_name327 .byte 37 # DW_FORM_strx1328 .byte 58 # DW_AT_decl_file329 .byte 11 # DW_FORM_data1330 .byte 59 # DW_AT_decl_line331 .byte 11 # DW_FORM_data1332 .byte 73 # DW_AT_type333 .byte 19 # DW_FORM_ref4334 .byte 0 # EOM(1)335 .byte 0 # EOM(2)336 .byte 8 # Abbreviation Code337 .byte 52 # DW_TAG_variable338 .byte 0 # DW_CHILDREN_no339 .byte 2 # DW_AT_location340 .byte 24 # DW_FORM_exprloc341 .byte 3 # DW_AT_name342 .byte 37 # DW_FORM_strx1343 .byte 58 # DW_AT_decl_file344 .byte 11 # DW_FORM_data1345 .byte 59 # DW_AT_decl_line346 .byte 11 # DW_FORM_data1347 .byte 73 # DW_AT_type348 .byte 19 # DW_FORM_ref4349 .byte 0 # EOM(1)350 .byte 0 # EOM(2)351 .byte 9 # Abbreviation Code352 .byte 46 # DW_TAG_subprogram353 .byte 1 # DW_CHILDREN_yes354 .byte 110 # DW_AT_linkage_name355 .byte 37 # DW_FORM_strx1356 .byte 3 # DW_AT_name357 .byte 37 # DW_FORM_strx1358 .byte 58 # DW_AT_decl_file359 .byte 11 # DW_FORM_data1360 .byte 59 # DW_AT_decl_line361 .byte 11 # DW_FORM_data1362 .byte 73 # DW_AT_type363 .byte 19 # DW_FORM_ref4364 .byte 32 # DW_AT_inline365 .byte 33 # DW_FORM_implicit_const366 .byte 1367 .byte 0 # EOM(1)368 .byte 0 # EOM(2)369 .byte 10 # Abbreviation Code370 .byte 5 # DW_TAG_formal_parameter371 .byte 0 # DW_CHILDREN_no372 .byte 3 # DW_AT_name373 .byte 37 # DW_FORM_strx1374 .byte 58 # DW_AT_decl_file375 .byte 11 # DW_FORM_data1376 .byte 59 # DW_AT_decl_line377 .byte 11 # DW_FORM_data1378 .byte 73 # DW_AT_type379 .byte 19 # DW_FORM_ref4380 .byte 0 # EOM(1)381 .byte 0 # EOM(2)382 .byte 11 # Abbreviation Code383 .byte 36 # DW_TAG_base_type384 .byte 0 # DW_CHILDREN_no385 .byte 3 # DW_AT_name386 .byte 37 # DW_FORM_strx1387 .byte 62 # DW_AT_encoding388 .byte 11 # DW_FORM_data1389 .byte 11 # DW_AT_byte_size390 .byte 11 # DW_FORM_data1391 .byte 0 # EOM(1)392 .byte 0 # EOM(2)393 .byte 12 # Abbreviation Code394 .byte 46 # DW_TAG_subprogram395 .byte 1 # DW_CHILDREN_yes396 .byte 17 # DW_AT_low_pc397 .byte 27 # DW_FORM_addrx398 .byte 18 # DW_AT_high_pc399 .byte 6 # DW_FORM_data4400 .byte 64 # DW_AT_frame_base401 .byte 24 # DW_FORM_exprloc402 .byte 100 # DW_AT_object_pointer403 .byte 19 # DW_FORM_ref4404 .byte 110 # DW_AT_linkage_name405 .byte 37 # DW_FORM_strx1406 .byte 71 # DW_AT_specification407 .byte 19 # DW_FORM_ref4408 .byte 0 # EOM(1)409 .byte 0 # EOM(2)410 .byte 13 # Abbreviation Code411 .byte 5 # DW_TAG_formal_parameter412 .byte 0 # DW_CHILDREN_no413 .byte 2 # DW_AT_location414 .byte 24 # DW_FORM_exprloc415 .byte 3 # DW_AT_name416 .byte 37 # DW_FORM_strx1417 .byte 73 # DW_AT_type418 .byte 19 # DW_FORM_ref4419 .byte 52 # DW_AT_artificial420 .byte 25 # DW_FORM_flag_present421 .byte 0 # EOM(1)422 .byte 0 # EOM(2)423 .byte 14 # Abbreviation Code424 .byte 29 # DW_TAG_inlined_subroutine425 .byte 1 # DW_CHILDREN_yes426 .byte 49 # DW_AT_abstract_origin427 .byte 19 # DW_FORM_ref4428 .byte 17 # DW_AT_low_pc429 .byte 27 # DW_FORM_addrx430 .byte 18 # DW_AT_high_pc431 .byte 6 # DW_FORM_data4432 .byte 88 # DW_AT_call_file433 .byte 11 # DW_FORM_data1434 .byte 89 # DW_AT_call_line435 .byte 11 # DW_FORM_data1436 .byte 87 # DW_AT_call_column437 .byte 11 # DW_FORM_data1438 .byte 0 # EOM(1)439 .byte 0 # EOM(2)440 .byte 15 # Abbreviation Code441 .byte 5 # DW_TAG_formal_parameter442 .byte 0 # DW_CHILDREN_no443 .byte 2 # DW_AT_location444 .byte 24 # DW_FORM_exprloc445 .byte 49 # DW_AT_abstract_origin446 .byte 19 # DW_FORM_ref4447 .byte 0 # EOM(1)448 .byte 0 # EOM(2)449 .byte 16 # Abbreviation Code450 .byte 46 # DW_TAG_subprogram451 .byte 1 # DW_CHILDREN_yes452 .byte 17 # DW_AT_low_pc453 .byte 27 # DW_FORM_addrx454 .byte 18 # DW_AT_high_pc455 .byte 6 # DW_FORM_data4456 .byte 64 # DW_AT_frame_base457 .byte 24 # DW_FORM_exprloc458 .byte 49 # DW_AT_abstract_origin459 .byte 19 # DW_FORM_ref4460 .byte 0 # EOM(1)461 .byte 0 # EOM(2)462 .byte 0 # EOM(3)463 .section .debug_info,"",@progbits464.Lcu_begin0:465 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit466.Ldebug_info_start0:467 .short 5 # DWARF version number468 .byte 1 # DWARF Unit Type469 .byte 8 # Address Size (in bytes)470 .long .debug_abbrev # Offset Into Abbrev. Section471 .byte 1 # Abbrev [1] 0xc:0xd7 DW_TAG_compile_unit472 .byte 0 # DW_AT_producer473 .short 33 # DW_AT_language474 .byte 1 # DW_AT_name475 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base476 .long .Lline_table_start0 # DW_AT_stmt_list477 .byte 2 # DW_AT_comp_dir478 .quad 0 # DW_AT_low_pc479 .byte 0 # DW_AT_ranges480 .long .Laddr_table_base0 # DW_AT_addr_base481 .long .Lrnglists_table_base0 # DW_AT_rnglists_base482 .byte 2 # Abbrev [2] 0x2b:0x12 DW_TAG_class_type483 .byte 5 # DW_AT_calling_convention484 .byte 3 # DW_AT_name485 .byte 1 # DW_AT_byte_size486 .byte 0 # DW_AT_decl_file487 .byte 4 # DW_AT_decl_line488 .byte 3 # Abbrev [3] 0x31:0xb DW_TAG_subprogram489 .byte 3 # DW_AT_name490 .byte 0 # DW_AT_decl_file491 .byte 6 # DW_AT_decl_line492 # DW_AT_declaration493 # DW_AT_external494 .byte 1 # DW_AT_accessibility495 # DW_ACCESS_public496 .byte 4 # Abbrev [4] 0x36:0x5 DW_TAG_formal_parameter497 .long 61 # DW_AT_type498 # DW_AT_artificial499 .byte 0 # End Of Children Mark500 .byte 0 # End Of Children Mark501 .byte 5 # Abbrev [5] 0x3d:0x5 DW_TAG_pointer_type502 .long 43 # DW_AT_type503 .byte 6 # Abbrev [6] 0x42:0x31 DW_TAG_subprogram504 .byte 0 # DW_AT_low_pc505 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc506 .byte 1 # DW_AT_frame_base507 .byte 86508 .byte 8 # DW_AT_name509 .byte 0 # DW_AT_decl_file510 .byte 9 # DW_AT_decl_line511 .long 133 # DW_AT_type512 # DW_AT_external513 .byte 7 # Abbrev [7] 0x51:0xb DW_TAG_formal_parameter514 .byte 2 # DW_AT_location515 .byte 145516 .byte 120517 .byte 10 # DW_AT_name518 .byte 0 # DW_AT_decl_file519 .byte 9 # DW_AT_decl_line520 .long 133 # DW_AT_type521 .byte 7 # Abbrev [7] 0x5c:0xb DW_TAG_formal_parameter522 .byte 2 # DW_AT_location523 .byte 145524 .byte 112525 .byte 11 # DW_AT_name526 .byte 0 # DW_AT_decl_file527 .byte 9 # DW_AT_decl_line528 .long 207 # DW_AT_type529 .byte 8 # Abbrev [8] 0x67:0xb DW_TAG_variable530 .byte 2 # DW_AT_location531 .byte 145532 .byte 111533 .byte 13 # DW_AT_name534 .byte 0 # DW_AT_decl_file535 .byte 10 # DW_AT_decl_line536 .long 43 # DW_AT_type537 .byte 0 # End Of Children Mark538 .byte 9 # Abbrev [9] 0x73:0x12 DW_TAG_subprogram539 .byte 4 # DW_AT_linkage_name540 .byte 5 # DW_AT_name541 .byte 0 # DW_AT_decl_file542 .byte 1 # DW_AT_decl_line543 .long 133 # DW_AT_type544 # DW_AT_inline545 .byte 10 # Abbrev [10] 0x7c:0x8 DW_TAG_formal_parameter546 .byte 7 # DW_AT_name547 .byte 0 # DW_AT_decl_file548 .byte 1 # DW_AT_decl_line549 .long 133 # DW_AT_type550 .byte 0 # End Of Children Mark551 .byte 11 # Abbrev [11] 0x85:0x4 DW_TAG_base_type552 .byte 6 # DW_AT_name553 .byte 5 # DW_AT_encoding554 .byte 4 # DW_AT_byte_size555 .byte 12 # Abbrev [12] 0x89:0x31 DW_TAG_subprogram556 .byte 1 # DW_AT_low_pc557 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc558 .byte 1 # DW_AT_frame_base559 .byte 86560 .long 154 # DW_AT_object_pointer561 .byte 9 # DW_AT_linkage_name562 .long 49 # DW_AT_specification563 .byte 13 # Abbrev [13] 0x9a:0x9 DW_TAG_formal_parameter564 .byte 2 # DW_AT_location565 .byte 145566 .byte 112567 .byte 14 # DW_AT_name568 .long 221 # DW_AT_type569 # DW_AT_artificial570 .byte 14 # Abbrev [14] 0xa3:0x16 DW_TAG_inlined_subroutine571 .long 137 # DW_AT_abstract_origin Manually Modified572 .byte 2 # DW_AT_low_pc573 .long .Ltmp3-.Ltmp2 # DW_AT_high_pc574 .byte 0 # DW_AT_call_file575 .byte 6 # DW_AT_call_line576 .byte 37 # DW_AT_call_column577 .byte 15 # Abbrev [15] 0xb0:0x8 DW_TAG_formal_parameter578 .byte 2 # DW_AT_location579 .byte 145580 .byte 124581 .long 124 # DW_AT_abstract_origin582 .byte 0 # End Of Children Mark583 .byte 0 # End Of Children Mark584 .byte 16 # Abbrev [16] 0xba:0x15 DW_TAG_subprogram585 .byte 3 # DW_AT_low_pc586 .long .Lfunc_end2-.Lfunc_begin2 # DW_AT_high_pc587 .byte 1 # DW_AT_frame_base588 .byte 86589 .long 115 # DW_AT_abstract_origin590 .byte 15 # Abbrev [15] 0xc6:0x8 DW_TAG_formal_parameter591 .byte 2 # DW_AT_location592 .byte 145593 .byte 124594 .long 124 # DW_AT_abstract_origin595 .byte 0 # End Of Children Mark596 .byte 5 # Abbrev [5] 0xcf:0x5 DW_TAG_pointer_type597 .long 212 # DW_AT_type598 .byte 5 # Abbrev [5] 0xd4:0x5 DW_TAG_pointer_type599 .long 217 # DW_AT_type600 .byte 11 # Abbrev [11] 0xd9:0x4 DW_TAG_base_type601 .byte 12 # DW_AT_name602 .byte 6 # DW_AT_encoding603 .byte 1 # DW_AT_byte_size604 .byte 5 # Abbrev [5] 0xdd:0x5 DW_TAG_pointer_type605 .long 43 # DW_AT_type606 .byte 0 # End Of Children Mark607.Ldebug_info_end0:608 .section .debug_rnglists,"",@progbits609 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length610.Ldebug_list_header_start0:611 .short 5 # Version612 .byte 8 # Address size613 .byte 0 # Segment selector size614 .long 1 # Offset entry count615.Lrnglists_table_base0:616 .long .Ldebug_ranges0-.Lrnglists_table_base0617.Ldebug_ranges0:618 .byte 1 # DW_RLE_base_addressx619 .byte 0 # base address index620 .byte 4 # DW_RLE_offset_pair621 .uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset622 .uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset623 .byte 4 # DW_RLE_offset_pair624 .uleb128 .Lfunc_begin2-.Lfunc_begin0 # starting offset625 .uleb128 .Lfunc_end2-.Lfunc_begin0 # ending offset626 .byte 3 # DW_RLE_startx_length627 .byte 1 # start index628 .uleb128 .Lfunc_end1-.Lfunc_begin1 # length629 .byte 0 # DW_RLE_end_of_list630.Ldebug_list_header_end0:631 .section .debug_str_offsets,"",@progbits632 .long 64 # Length of String Offsets Set633 .short 5634 .short 0635.Lstr_offsets_base0:636 .section .debug_str,"MS",@progbits,1637.Linfo_string0:638 .asciz "clang version 20.0.0git" # string offset=0639.Linfo_string1:640 .asciz "main.cpp" # string offset=24641.Linfo_string2:642 .asciz "abstractChainTwo" # string offset=33643.Linfo_string3:644 .asciz "State" # string offset=88645.Linfo_string4:646 .asciz "main" # string offset=94647.Linfo_string5:648 .asciz "_ZL3fooi" # string offset=99649.Linfo_string6:650 .asciz "foo" # string offset=108651.Linfo_string7:652 .asciz "int" # string offset=112653.Linfo_string8:654 .asciz "i" # string offset=116655.Linfo_string9:656 .asciz "_ZN5StateC2Ev" # string offset=118657.Linfo_string10:658 .asciz "argc" # string offset=132659.Linfo_string11:660 .asciz "argv" # string offset=137661.Linfo_string12:662 .asciz "char" # string offset=142663.Linfo_string13:664 .asciz "S" # string offset=147665.Linfo_string14:666 .asciz "this" # string offset=149667 .section .debug_str_offsets,"",@progbits668 .long .Linfo_string0669 .long .Linfo_string1670 .long .Linfo_string2671 .long .Linfo_string3672 .long .Linfo_string5673 .long .Linfo_string6674 .long .Linfo_string7675 .long .Linfo_string8676 .long .Linfo_string4677 .long .Linfo_string9678 .long .Linfo_string10679 .long .Linfo_string11680 .long .Linfo_string12681 .long .Linfo_string13682 .long .Linfo_string14683 .section .debug_addr,"",@progbits684 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution685.Ldebug_addr_start0:686 .short 5 # DWARF version number687 .byte 8 # Address size688 .byte 0 # Segment selector size689.Laddr_table_base0:690 .quad .Lfunc_begin0691 .quad .Lfunc_begin1692 .quad .Ltmp2693 .quad .Lfunc_begin2694.Ldebug_addr_end0:695 .section .debug_names,"",@progbits696 .long .Lnames_end0-.Lnames_start0 # Header: unit length697.Lnames_start0:698 .short 5 # Header: version699 .short 0 # Header: padding700 .long 1 # Header: compilation unit count701 .long 0 # Header: local type unit count702 .long 0 # Header: foreign type unit count703 .long 7 # Header: bucket count704 .long 7 # Header: name count705 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size706 .long 8 # Header: augmentation string size707 .ascii "LLVM0700" # Header: augmentation string708 .long .Lcu_begin0 # Compilation unit 0709 .long 1 # Bucket 0710 .long 2 # Bucket 1711 .long 0 # Bucket 2712 .long 3 # Bucket 3713 .long 0 # Bucket 4714 .long 5 # Bucket 5715 .long 0 # Bucket 6716 .long -685500246 # Hash in Bucket 0717 .long 274811398 # Hash in Bucket 1718 .long 193495088 # Hash in Bucket 3719 .long 2090499946 # Hash in Bucket 3720 .long 193491849 # Hash in Bucket 5721 .long 2090147939 # Hash in Bucket 5722 .long -71448558 # Hash in Bucket 5723 .long .Linfo_string5 # String in Bucket 0: _ZL3fooi724 .long .Linfo_string3 # String in Bucket 1: State725 .long .Linfo_string7 # String in Bucket 3: int726 .long .Linfo_string4 # String in Bucket 3: main727 .long .Linfo_string6 # String in Bucket 5: foo728 .long .Linfo_string12 # String in Bucket 5: char729 .long .Linfo_string9 # String in Bucket 5: _ZN5StateC2Ev730 .long .Lnames5-.Lnames_entries0 # Offset in Bucket 0731 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 1732 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 3733 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 3734 .long .Lnames4-.Lnames_entries0 # Offset in Bucket 5735 .long .Lnames6-.Lnames_entries0 # Offset in Bucket 5736 .long .Lnames3-.Lnames_entries0 # Offset in Bucket 5737.Lnames_abbrev_start0:738 .byte 1 # Abbrev code739 .byte 29 # DW_TAG_inlined_subroutine740 .byte 3 # DW_IDX_die_offset741 .byte 19 # DW_FORM_ref4742 .byte 4 # DW_IDX_parent743 .byte 19 # DW_FORM_ref4744 .byte 0 # End of abbrev745 .byte 0 # End of abbrev746 .byte 2 # Abbrev code747 .byte 46 # DW_TAG_subprogram748 .byte 3 # DW_IDX_die_offset749 .byte 19 # DW_FORM_ref4750 .byte 4 # DW_IDX_parent751 .byte 25 # DW_FORM_flag_present752 .byte 0 # End of abbrev753 .byte 0 # End of abbrev754 .byte 3 # Abbrev code755 .byte 2 # DW_TAG_class_type756 .byte 3 # DW_IDX_die_offset757 .byte 19 # DW_FORM_ref4758 .byte 4 # DW_IDX_parent759 .byte 25 # DW_FORM_flag_present760 .byte 0 # End of abbrev761 .byte 0 # End of abbrev762 .byte 4 # Abbrev code763 .byte 36 # DW_TAG_base_type764 .byte 3 # DW_IDX_die_offset765 .byte 19 # DW_FORM_ref4766 .byte 4 # DW_IDX_parent767 .byte 25 # DW_FORM_flag_present768 .byte 0 # End of abbrev769 .byte 0 # End of abbrev770 .byte 0 # End of abbrev list771.Lnames_abbrev_end0:772.Lnames_entries0:773.Lnames5:774.L1:775 .byte 1 # Abbreviation code776 .long 163 # DW_IDX_die_offset777 .long .L2-.Lnames_entries0 # DW_IDX_parent778.L0:779 .byte 2 # Abbreviation code780 .long 186 # DW_IDX_die_offset781 .byte 0 # DW_IDX_parent782 # End of list: _ZL3fooi783.Lnames0:784.L5:785 .byte 3 # Abbreviation code786 .long 43 # DW_IDX_die_offset787.L2: # DW_IDX_parent788 .byte 2 # Abbreviation code789 .long 137 # DW_IDX_die_offset790 .byte 0 # DW_IDX_parent791 # End of list: State792.Lnames2:793.L4:794 .byte 4 # Abbreviation code795 .long 133 # DW_IDX_die_offset796 .byte 0 # DW_IDX_parent797 # End of list: int798.Lnames1:799.L6:800 .byte 2 # Abbreviation code801 .long 66 # DW_IDX_die_offset802 .byte 0 # DW_IDX_parent803 # End of list: main804.Lnames4:805 .byte 1 # Abbreviation code806 .long 163 # DW_IDX_die_offset807 .long .L2-.Lnames_entries0 # DW_IDX_parent808 .byte 2 # Abbreviation code809 .long 186 # DW_IDX_die_offset810 .byte 0 # DW_IDX_parent811 # End of list: foo812.Lnames6:813.L3:814 .byte 4 # Abbreviation code815 .long 217 # DW_IDX_die_offset816 .byte 0 # DW_IDX_parent817 # End of list: char818.Lnames3:819 .byte 2 # Abbreviation code820 .long 137 # DW_IDX_die_offset821 .byte 0 # DW_IDX_parent822 # End of list: _ZN5StateC2Ev823 .p2align 2, 0x0824.Lnames_end0:825 .ident "clang version 20.0.0git"826 .section ".note.GNU-stack","",@progbits827 .addrsig828 .section .debug_line,"",@progbits829.Lline_table_start0:830