brintos

brintos / llvm-project-archived public Read only

0
0
Text · 37.8 KiB · 2075640 Raw
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