brintos

brintos / llvm-project-archived public Read only

0
0
Text · 32.3 KiB · 73c50d6 Raw
713 lines · plain
1 2# REQUIRES: system-linux3 4# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %s -o %tmain.o5# RUN: %clang %cflags -dwarf-5 %tmain.o -o %t.exe -Wl,-q6# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections7# RUN: llvm-dwarfdump --debug-info -r 0 --debug-names %t.bolt > %t.txt8# RUN: cat %t.txt | FileCheck --check-prefix=CHECK %s9 10## This test checks that BOLT generates Entries for DW_AT_abstract_origin when it has cross cu reference.11 12# CHECK: [[OFFSET1:0x[0-9a-f]*]]: Compile Unit13# CHECK: [[OFFSET2:0x[0-9a-f]*]]: Compile Unit14# CHECK:        Name Index @ 0x0 {15# CHECK-NEXT:     Header {16# CHECK-NEXT:       Length: 0xD217# CHECK-NEXT:       Format: DWARF3218# CHECK-NEXT:       Version: 519# CHECK-NEXT:       CU count: 220# CHECK-NEXT:       Local TU count: 021# CHECK-NEXT:       Foreign TU count: 022# CHECK-NEXT:       Bucket count: 523# CHECK-NEXT:       Name count: 524# CHECK-NEXT:       Abbreviations table size: 0x1F25# CHECK-NEXT:       Augmentation: 'BOLT'26# CHECK-NEXT:     }27# CHECK-NEXT:     Compilation Unit offsets [28# CHECK-NEXT:       CU[0]: [[OFFSET1]]29# CHECK-NEXT:       CU[1]: [[OFFSET2]]30# CHECK-NEXT:     ]31# CHECK-NEXT:     Abbreviations [32# CHECK-NEXT:       Abbreviation [[ABBREV1:0x[0-9a-f]*]] {33# CHECK-NEXT:         Tag: DW_TAG_subprogram34# CHECK-NEXT:         DW_IDX_compile_unit: DW_FORM_data135# CHECK-NEXT:         DW_IDX_die_offset: DW_FORM_ref436# CHECK-NEXT:         DW_IDX_parent: DW_FORM_flag_present37# CHECK-NEXT:       }38# CHECK-NEXT:       Abbreviation [[ABBREV2:0x[0-9a-f]*]] {39# CHECK-NEXT:         Tag: DW_TAG_inlined_subroutine40# CHECK-NEXT:         DW_IDX_compile_unit: DW_FORM_data141# CHECK-NEXT:         DW_IDX_die_offset: DW_FORM_ref442# CHECK-NEXT:         DW_IDX_parent: DW_FORM_ref443# CHECK-NEXT:       }44# CHECK-NEXT:       Abbreviation [[ABBREV3:0x[0-9a-f]*]] {45# CHECK-NEXT:         Tag: DW_TAG_base_type46# CHECK-NEXT:         DW_IDX_compile_unit: DW_FORM_data147# CHECK-NEXT:         DW_IDX_die_offset: DW_FORM_ref448# CHECK-NEXT:         DW_IDX_parent: DW_FORM_flag_present49# CHECK-NEXT:       }50# CHECK-NEXT:     ]51# CHECK-NEXT:     Bucket 0 [52# CHECK-NEXT:       EMPTY53# CHECK-NEXT:     ]54# CHECK-NEXT:     Bucket 1 [55# CHECK-NEXT:       Name 1 {56# CHECK-NEXT:         Hash: 0x7C9A7F6A57# CHECK-NEXT:         String: {{.+}} "main"58# CHECK-NEXT:         Entry @ [[ENTRY:0x[0-9a-f]*]] {59# CHECK-NEXT:           Abbrev: [[ABBREV1]]60# CHECK-NEXT:           Tag: DW_TAG_subprogram61# CHECK-NEXT:           DW_IDX_compile_unit: 0x0062# CHECK-NEXT:           DW_IDX_die_offset: 0x0000002463# CHECK-NEXT:           DW_IDX_parent: <parent not indexed>64# CHECK-NEXT:         }65# CHECK-NEXT:       }66# CHECK-NEXT:       Name 2 {67# CHECK-NEXT:         Hash: 0xB5063CFE68# CHECK-NEXT:         String: {{.+}} "_Z3fooi"69# CHECK-NEXT:         Entry @ {{.+}} {70# CHECK-NEXT:           Abbrev: [[ABBREV1]]71# CHECK-NEXT:           Tag: DW_TAG_subprogram72# CHECK-NEXT:           DW_IDX_compile_unit: 0x0173# CHECK-NEXT:           DW_IDX_die_offset: 0x0000003a74# CHECK-NEXT:           DW_IDX_parent: <parent not indexed>75# CHECK-NEXT:         }76# CHECK-NEXT:         Entry @ {{.+}} {77# CHECK-NEXT:           Abbrev: [[ABBREV2]]78# CHECK-NEXT:           Tag: DW_TAG_inlined_subroutine79# CHECK-NEXT:           DW_IDX_compile_unit: 0x0080# CHECK-NEXT:           DW_IDX_die_offset: 0x0000005481# CHECK-NEXT:           DW_IDX_parent: Entry @ [[ENTRY]]82# CHECK-NEXT:         }83# CHECK-NEXT:       }84# CHECK-NEXT:     ]85# CHECK-NEXT:     Bucket 2 [86# CHECK-NEXT:       EMPTY87# CHECK-NEXT:     ]88# CHECK-NEXT:     Bucket 3 [89# CHECK-NEXT:       Name 3 {90# CHECK-NEXT:         Hash: 0xB88803091# CHECK-NEXT:         String: {{.+}} "int"92# CHECK-NEXT:         Entry @ {{.+}} {93# CHECK-NEXT:           Abbrev: [[ABBREV3]]94# CHECK-NEXT:           Tag: DW_TAG_base_type95# CHECK-NEXT:           DW_IDX_compile_unit: 0x0196# CHECK-NEXT:           DW_IDX_die_offset: 0x0000003697# CHECK-NEXT:           DW_IDX_parent: <parent not indexed>98# CHECK-NEXT:         }99# CHECK-NEXT:       }100# CHECK-NEXT:     ]101# CHECK-NEXT:     Bucket 4 [102# CHECK-NEXT:       Name 4 {103# CHECK-NEXT:         Hash: 0xB887389104# CHECK-NEXT:         String: {{.+}} "foo"105# CHECK-NEXT:         Entry @ {{.+}} {106# CHECK-NEXT:           Abbrev: [[ABBREV1]]107# CHECK-NEXT:           Tag: DW_TAG_subprogram108# CHECK-NEXT:           DW_IDX_compile_unit: 0x01109# CHECK-NEXT:           DW_IDX_die_offset: 0x0000003a110# CHECK-NEXT:           DW_IDX_parent: <parent not indexed>111# CHECK-NEXT:         }112# CHECK-NEXT:         Entry @ 0xc4 {113# CHECK-NEXT:           Abbrev: [[ABBREV2]]114# CHECK-NEXT:           Tag: DW_TAG_inlined_subroutine115# CHECK-NEXT:           DW_IDX_compile_unit: 0x00116# CHECK-NEXT:           DW_IDX_die_offset: 0x00000054117# CHECK-NEXT:           DW_IDX_parent: Entry @ [[ENTRY]]118# CHECK-NEXT:         }119# CHECK-NEXT:       }120# CHECK-NEXT:       Name 5 {121# CHECK-NEXT:         Hash: 0x7C952063122# CHECK-NEXT:         String: {{.+}} "char"123# CHECK-NEXT:         Entry @ {{.+}} {124# CHECK-NEXT:           Abbrev: [[ABBREV3]]125# CHECK-NEXT:           Tag: DW_TAG_base_type126# CHECK-NEXT:           DW_IDX_compile_unit: 0x00127# CHECK-NEXT:           DW_IDX_die_offset: 0x00000075128# CHECK-NEXT:           DW_IDX_parent: <parent not indexed>129# CHECK-NEXT:         }130# CHECK-NEXT:       }131# CHECK-NEXT:     ]132# CHECK-NEXT:   }133 134## clang++ -g2 -gpubnames -S -emit-llvm main.cpp -o main.ll135## clang++ -g2 -gpubnames -S -emit-llvm helper.cpp -o helper.ll136## llvm-link main.ll helper.ll -o combined.ll137## clang++ -g2 -gpubnames combined.ll -emit-llvm -S -o combined.opt.ll138## llc -dwarf-version=5 -filetype=asm -mtriple x86_64-unknown-linux combined.opt.ll -o combined.s139## main.cpp140## extern int foo(int);141## int main(int argc, char* argv[]) {142##   int i = 0;143##   [[clang::always_inline]] i = foo(argc);144##   return i;145## }146## helper.cpp147## int foo(int i) {148##   return i ++;149## }150 151	.text152	.file	"llvm-link"153	.globl	main                            # -- Begin function main154	.p2align	4, 0x90155	.type	main,@function156main:                                   # @main157.Lfunc_begin0:158	.file	1 "/home" "main.cpp" md5 0x24fb0b4c3900e91fece1ac87ed73ff3b159	.loc	1 2 0                           # main.cpp:2:0160	.cfi_startproc161# %bb.0:                                # %entry162	pushq	%rbp163	.cfi_def_cfa_offset 16164	.cfi_offset %rbp, -16165	movq	%rsp, %rbp166	.cfi_def_cfa_register %rbp167	movl	$0, -16(%rbp)168	movl	%edi, -12(%rbp)169	movq	%rsi, -24(%rbp)170.Ltmp0:171	.loc	1 3 7 prologue_end              # main.cpp:3:7172	movl	$0, -4(%rbp)173	.loc	1 4 36                          # main.cpp:4:36174	movl	-12(%rbp), %eax175	movl	%eax, -8(%rbp)176.Ltmp1:177	.file	2 "/home" "helper.cpp" md5 0x7d4429e24d8c74d7ee22c1889ad46d6b178	.loc	2 2 12                          # helper.cpp:2:12179	movl	-8(%rbp), %eax180	movl	%eax, %ecx181	addl	$1, %ecx182	movl	%ecx, -8(%rbp)183.Ltmp2:184	.loc	1 4 30                          # main.cpp:4:30185	movl	%eax, -4(%rbp)186	.loc	1 5 10                          # main.cpp:5:10187	movl	-4(%rbp), %eax188	.loc	1 5 3 epilogue_begin is_stmt 0  # main.cpp:5:3189	popq	%rbp190	.cfi_def_cfa %rsp, 8191	retq192.Ltmp3:193.Lfunc_end0:194	.size	main, .Lfunc_end0-main195	.cfi_endproc196                                        # -- End function197	.globl	_Z3fooi                         # -- Begin function _Z3fooi198	.p2align	4, 0x90199	.type	_Z3fooi,@function200_Z3fooi:                                # @_Z3fooi201.Lfunc_begin1:202	.loc	2 1 0 is_stmt 1                 # helper.cpp:1:0203	.cfi_startproc204# %bb.0:                                # %entry205	pushq	%rbp206	.cfi_def_cfa_offset 16207	.cfi_offset %rbp, -16208	movq	%rsp, %rbp209	.cfi_def_cfa_register %rbp210	movl	%edi, -4(%rbp)211.Ltmp4:212	.loc	2 2 12 prologue_end             # helper.cpp:2:12213	movl	-4(%rbp), %eax214	movl	%eax, %ecx215	addl	$1, %ecx216	movl	%ecx, -4(%rbp)217	.loc	2 2 3 epilogue_begin is_stmt 0  # helper.cpp:2:3218	popq	%rbp219	.cfi_def_cfa %rsp, 8220	retq221.Ltmp5:222.Lfunc_end1:223	.size	_Z3fooi, .Lfunc_end1-_Z3fooi224	.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	27                              # DW_FORM_addrx244	.byte	18                              # DW_AT_high_pc245	.byte	6                               # DW_FORM_data4246	.byte	115                             # DW_AT_addr_base247	.byte	23                              # DW_FORM_sec_offset248	.byte	0                               # EOM(1)249	.byte	0                               # EOM(2)250	.byte	2                               # Abbreviation Code251	.byte	46                              # DW_TAG_subprogram252	.byte	1                               # DW_CHILDREN_yes253	.byte	17                              # DW_AT_low_pc254	.byte	27                              # DW_FORM_addrx255	.byte	18                              # DW_AT_high_pc256	.byte	6                               # DW_FORM_data4257	.byte	64                              # DW_AT_frame_base258	.byte	24                              # DW_FORM_exprloc259	.byte	3                               # DW_AT_name260	.byte	37                              # DW_FORM_strx1261	.byte	58                              # DW_AT_decl_file262	.byte	11                              # DW_FORM_data1263	.byte	59                              # DW_AT_decl_line264	.byte	11                              # DW_FORM_data1265	.byte	73                              # DW_AT_type266	.byte	16                              # DW_FORM_ref_addr267	.byte	63                              # DW_AT_external268	.byte	25                              # DW_FORM_flag_present269	.byte	0                               # EOM(1)270	.byte	0                               # EOM(2)271	.byte	3                               # Abbreviation Code272	.byte	5                               # DW_TAG_formal_parameter273	.byte	0                               # DW_CHILDREN_no274	.byte	2                               # DW_AT_location275	.byte	24                              # DW_FORM_exprloc276	.byte	3                               # DW_AT_name277	.byte	37                              # DW_FORM_strx1278	.byte	58                              # DW_AT_decl_file279	.byte	11                              # DW_FORM_data1280	.byte	59                              # DW_AT_decl_line281	.byte	11                              # DW_FORM_data1282	.byte	73                              # DW_AT_type283	.byte	16                              # DW_FORM_ref_addr284	.byte	0                               # EOM(1)285	.byte	0                               # EOM(2)286	.byte	4                               # Abbreviation Code287	.byte	5                               # DW_TAG_formal_parameter288	.byte	0                               # DW_CHILDREN_no289	.byte	2                               # DW_AT_location290	.byte	24                              # DW_FORM_exprloc291	.byte	3                               # DW_AT_name292	.byte	37                              # DW_FORM_strx1293	.byte	58                              # DW_AT_decl_file294	.byte	11                              # DW_FORM_data1295	.byte	59                              # DW_AT_decl_line296	.byte	11                              # DW_FORM_data1297	.byte	73                              # DW_AT_type298	.byte	19                              # DW_FORM_ref4299	.byte	0                               # EOM(1)300	.byte	0                               # EOM(2)301	.byte	5                               # Abbreviation Code302	.byte	52                              # DW_TAG_variable303	.byte	0                               # DW_CHILDREN_no304	.byte	2                               # DW_AT_location305	.byte	24                              # DW_FORM_exprloc306	.byte	3                               # DW_AT_name307	.byte	37                              # DW_FORM_strx1308	.byte	58                              # DW_AT_decl_file309	.byte	11                              # DW_FORM_data1310	.byte	59                              # DW_AT_decl_line311	.byte	11                              # DW_FORM_data1312	.byte	73                              # DW_AT_type313	.byte	16                              # DW_FORM_ref_addr314	.byte	0                               # EOM(1)315	.byte	0                               # EOM(2)316	.byte	6                               # Abbreviation Code317	.byte	29                              # DW_TAG_inlined_subroutine318	.byte	1                               # DW_CHILDREN_yes319	.byte	49                              # DW_AT_abstract_origin320	.byte	16                              # DW_FORM_ref_addr321	.byte	17                              # DW_AT_low_pc322	.byte	27                              # DW_FORM_addrx323	.byte	18                              # DW_AT_high_pc324	.byte	6                               # DW_FORM_data4325	.byte	88                              # DW_AT_call_file326	.byte	11                              # DW_FORM_data1327	.byte	89                              # DW_AT_call_line328	.byte	11                              # DW_FORM_data1329	.byte	87                              # DW_AT_call_column330	.byte	11                              # DW_FORM_data1331	.byte	0                               # EOM(1)332	.byte	0                               # EOM(2)333	.byte	7                               # Abbreviation Code334	.byte	5                               # DW_TAG_formal_parameter335	.byte	0                               # DW_CHILDREN_no336	.byte	2                               # DW_AT_location337	.byte	24                              # DW_FORM_exprloc338	.byte	49                              # DW_AT_abstract_origin339	.byte	16                              # DW_FORM_ref_addr340	.byte	0                               # EOM(1)341	.byte	0                               # EOM(2)342	.byte	8                               # Abbreviation Code343	.byte	15                              # DW_TAG_pointer_type344	.byte	0                               # DW_CHILDREN_no345	.byte	73                              # DW_AT_type346	.byte	19                              # DW_FORM_ref4347	.byte	0                               # EOM(1)348	.byte	0                               # EOM(2)349	.byte	9                               # Abbreviation Code350	.byte	36                              # DW_TAG_base_type351	.byte	0                               # DW_CHILDREN_no352	.byte	3                               # DW_AT_name353	.byte	37                              # DW_FORM_strx1354	.byte	62                              # DW_AT_encoding355	.byte	11                              # DW_FORM_data1356	.byte	11                              # DW_AT_byte_size357	.byte	11                              # DW_FORM_data1358	.byte	0                               # EOM(1)359	.byte	0                               # EOM(2)360	.byte	10                              # Abbreviation Code361	.byte	46                              # DW_TAG_subprogram362	.byte	1                               # DW_CHILDREN_yes363	.byte	110                             # DW_AT_linkage_name364	.byte	37                              # DW_FORM_strx1365	.byte	3                               # DW_AT_name366	.byte	37                              # DW_FORM_strx1367	.byte	58                              # DW_AT_decl_file368	.byte	11                              # DW_FORM_data1369	.byte	59                              # DW_AT_decl_line370	.byte	11                              # DW_FORM_data1371	.byte	73                              # DW_AT_type372	.byte	19                              # DW_FORM_ref4373	.byte	63                              # DW_AT_external374	.byte	25                              # DW_FORM_flag_present375	.byte	32                              # DW_AT_inline376	.byte	33                              # DW_FORM_implicit_const377	.byte	1378	.byte	0                               # EOM(1)379	.byte	0                               # EOM(2)380	.byte	11                              # Abbreviation Code381	.byte	5                               # DW_TAG_formal_parameter382	.byte	0                               # DW_CHILDREN_no383	.byte	3                               # DW_AT_name384	.byte	37                              # DW_FORM_strx1385	.byte	58                              # DW_AT_decl_file386	.byte	11                              # DW_FORM_data1387	.byte	59                              # DW_AT_decl_line388	.byte	11                              # DW_FORM_data1389	.byte	73                              # DW_AT_type390	.byte	19                              # DW_FORM_ref4391	.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	49                              # DW_AT_abstract_origin403	.byte	19                              # DW_FORM_ref4404	.byte	0                               # EOM(1)405	.byte	0                               # EOM(2)406	.byte	13                              # Abbreviation Code407	.byte	5                               # DW_TAG_formal_parameter408	.byte	0                               # DW_CHILDREN_no409	.byte	2                               # DW_AT_location410	.byte	24                              # DW_FORM_exprloc411	.byte	49                              # DW_AT_abstract_origin412	.byte	19                              # DW_FORM_ref4413	.byte	0                               # EOM(1)414	.byte	0                               # EOM(2)415	.byte	0                               # EOM(3)416	.section	.debug_info,"",@progbits417.Lcu_begin0:418	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit419.Ldebug_info_start0:420	.short	5                               # DWARF version number421	.byte	1                               # DWARF Unit Type422	.byte	8                               # Address Size (in bytes)423	.long	.debug_abbrev                   # Offset Into Abbrev. Section424	.byte	1                               # Abbrev [1] 0xc:0x6d DW_TAG_compile_unit425	.byte	0                               # DW_AT_producer426	.short	33                              # DW_AT_language427	.byte	1                               # DW_AT_name428	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base429	.long	.Lline_table_start0             # DW_AT_stmt_list430	.byte	2                               # DW_AT_comp_dir431	.byte	0                               # DW_AT_low_pc432	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc433	.long	.Laddr_table_base0              # DW_AT_addr_base434	.byte	2                               # Abbrev [2] 0x23:0x47 DW_TAG_subprogram435	.byte	0                               # DW_AT_low_pc436	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc437	.byte	1                               # DW_AT_frame_base438	.byte	86439	.byte	8                               # DW_AT_name440	.byte	1                               # DW_AT_decl_file441	.byte	2                               # DW_AT_decl_line442	.long	.debug_info+174                 # DW_AT_type443                                        # DW_AT_external444	.byte	3                               # Abbrev [3] 0x32:0xb DW_TAG_formal_parameter445	.byte	2                               # DW_AT_location446	.byte	145447	.byte	116448	.byte	9                               # DW_AT_name449	.byte	1                               # DW_AT_decl_file450	.byte	2                               # DW_AT_decl_line451	.long	.debug_info+174                 # DW_AT_type452	.byte	4                               # Abbrev [4] 0x3d:0xb DW_TAG_formal_parameter453	.byte	2                               # DW_AT_location454	.byte	145455	.byte	104456	.byte	10                              # DW_AT_name457	.byte	1                               # DW_AT_decl_file458	.byte	2                               # DW_AT_decl_line459	.long	106                             # DW_AT_type460	.byte	5                               # Abbrev [5] 0x48:0xb DW_TAG_variable461	.byte	2                               # DW_AT_location462	.byte	145463	.byte	124464	.byte	7                               # DW_AT_name465	.byte	1                               # DW_AT_decl_file466	.byte	3                               # DW_AT_decl_line467	.long	.debug_info+174                 # DW_AT_type468	.byte	6                               # Abbrev [6] 0x53:0x16 DW_TAG_inlined_subroutine469	.long	.debug_info+156                 # DW_AT_abstract_origin470	.byte	1                               # DW_AT_low_pc471	.long	.Ltmp2-.Ltmp1                   # DW_AT_high_pc472	.byte	1                               # DW_AT_call_file473	.byte	4                               # DW_AT_call_line474	.byte	32                              # DW_AT_call_column475	.byte	7                               # Abbrev [7] 0x60:0x8 DW_TAG_formal_parameter476	.byte	2                               # DW_AT_location477	.byte	145478	.byte	120479	.long	.debug_info+165                 # DW_AT_abstract_origin480	.byte	0                               # End Of Children Mark481	.byte	0                               # End Of Children Mark482	.byte	8                               # Abbrev [8] 0x6a:0x5 DW_TAG_pointer_type483	.long	111                             # DW_AT_type484	.byte	8                               # Abbrev [8] 0x6f:0x5 DW_TAG_pointer_type485	.long	116                             # DW_AT_type486	.byte	9                               # Abbrev [9] 0x74:0x4 DW_TAG_base_type487	.byte	11                              # DW_AT_name488	.byte	6                               # DW_AT_encoding489	.byte	1                               # DW_AT_byte_size490	.byte	0                               # End Of Children Mark491.Ldebug_info_end0:492.Lcu_begin1:493	.long	.Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit494.Ldebug_info_start1:495	.short	5                               # DWARF version number496	.byte	1                               # DWARF Unit Type497	.byte	8                               # Address Size (in bytes)498	.long	.debug_abbrev                   # Offset Into Abbrev. Section499	.byte	1                               # Abbrev [1] 0xc:0x43 DW_TAG_compile_unit500	.byte	0                               # DW_AT_producer501	.short	33                              # DW_AT_language502	.byte	3                               # DW_AT_name503	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base504	.long	.Lline_table_start0             # DW_AT_stmt_list505	.byte	2                               # DW_AT_comp_dir506	.byte	2                               # DW_AT_low_pc507	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc508	.long	.Laddr_table_base0              # DW_AT_addr_base509	.byte	10                              # Abbrev [10] 0x23:0x12 DW_TAG_subprogram510	.byte	4                               # DW_AT_linkage_name511	.byte	5                               # DW_AT_name512	.byte	2                               # DW_AT_decl_file513	.byte	1                               # DW_AT_decl_line514	.long	53                              # DW_AT_type515                                        # DW_AT_external516                                        # DW_AT_inline517	.byte	11                              # Abbrev [11] 0x2c:0x8 DW_TAG_formal_parameter518	.byte	7                               # DW_AT_name519	.byte	2                               # DW_AT_decl_file520	.byte	1                               # DW_AT_decl_line521	.long	53                              # DW_AT_type522	.byte	0                               # End Of Children Mark523	.byte	9                               # Abbrev [9] 0x35:0x4 DW_TAG_base_type524	.byte	6                               # DW_AT_name525	.byte	5                               # DW_AT_encoding526	.byte	4                               # DW_AT_byte_size527	.byte	12                              # Abbrev [12] 0x39:0x15 DW_TAG_subprogram528	.byte	2                               # DW_AT_low_pc529	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc530	.byte	1                               # DW_AT_frame_base531	.byte	86532	.long	35                              # DW_AT_abstract_origin533	.byte	13                              # Abbrev [13] 0x45:0x8 DW_TAG_formal_parameter534	.byte	2                               # DW_AT_location535	.byte	145536	.byte	124537	.long	44                              # DW_AT_abstract_origin538	.byte	0                               # End Of Children Mark539	.byte	0                               # End Of Children Mark540.Ldebug_info_end1:541	.section	.debug_str_offsets,"",@progbits542	.long	52                              # Length of String Offsets Set543	.short	5544	.short	0545.Lstr_offsets_base0:546	.section	.debug_str,"MS",@progbits,1547.Linfo_string0:548	.asciz	"clang version 19.0.0git"       # string offset=0549.Linfo_string1:550	.asciz	"main.cpp"                      # string offset=24551.Linfo_string2:552	.asciz	"/home/ayermolo/local/tasks/T182867349" # string offset=33553.Linfo_string3:554	.asciz	"helper.cpp"                    # string offset=71555.Linfo_string4:556	.asciz	"_Z3fooi"                       # string offset=82557.Linfo_string5:558	.asciz	"foo"                           # string offset=90559.Linfo_string6:560	.asciz	"int"                           # string offset=94561.Linfo_string7:562	.asciz	"i"                             # string offset=98563.Linfo_string8:564	.asciz	"main"                          # string offset=100565.Linfo_string9:566	.asciz	"argc"                          # string offset=105567.Linfo_string10:568	.asciz	"argv"                          # string offset=110569.Linfo_string11:570	.asciz	"char"                          # string offset=115571	.section	.debug_str_offsets,"",@progbits572	.long	.Linfo_string0573	.long	.Linfo_string1574	.long	.Linfo_string2575	.long	.Linfo_string3576	.long	.Linfo_string4577	.long	.Linfo_string5578	.long	.Linfo_string6579	.long	.Linfo_string7580	.long	.Linfo_string8581	.long	.Linfo_string9582	.long	.Linfo_string10583	.long	.Linfo_string11584	.section	.debug_addr,"",@progbits585	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution586.Ldebug_addr_start0:587	.short	5                               # DWARF version number588	.byte	8                               # Address size589	.byte	0                               # Segment selector size590.Laddr_table_base0:591	.quad	.Lfunc_begin0592	.quad	.Ltmp1593	.quad	.Lfunc_begin1594.Ldebug_addr_end0:595	.section	.debug_names,"",@progbits596	.long	.Lnames_end0-.Lnames_start0     # Header: unit length597.Lnames_start0:598	.short	5                               # Header: version599	.short	0                               # Header: padding600	.long	2                               # Header: compilation unit count601	.long	0                               # Header: local type unit count602	.long	0                               # Header: foreign type unit count603	.long	5                               # Header: bucket count604	.long	5                               # Header: name count605	.long	.Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size606	.long	8                               # Header: augmentation string size607	.ascii	"LLVM0700"                      # Header: augmentation string608	.long	.Lcu_begin0                     # Compilation unit 0609	.long	.Lcu_begin1                     # Compilation unit 1610	.long	0                               # Bucket 0611	.long	1                               # Bucket 1612	.long	0                               # Bucket 2613	.long	3                               # Bucket 3614	.long	4                               # Bucket 4615	.long	2090499946                      # Hash in Bucket 1616	.long	-1257882370                     # Hash in Bucket 1617	.long	193495088                       # Hash in Bucket 3618	.long	193491849                       # Hash in Bucket 4619	.long	2090147939                      # Hash in Bucket 4620	.long	.Linfo_string8                  # String in Bucket 1: main621	.long	.Linfo_string4                  # String in Bucket 1: _Z3fooi622	.long	.Linfo_string6                  # String in Bucket 3: int623	.long	.Linfo_string5                  # String in Bucket 4: foo624	.long	.Linfo_string11                 # String in Bucket 4: char625	.long	.Lnames1-.Lnames_entries0       # Offset in Bucket 1626	.long	.Lnames3-.Lnames_entries0       # Offset in Bucket 1627	.long	.Lnames0-.Lnames_entries0       # Offset in Bucket 3628	.long	.Lnames2-.Lnames_entries0       # Offset in Bucket 4629	.long	.Lnames4-.Lnames_entries0       # Offset in Bucket 4630.Lnames_abbrev_start0:631	.byte	1                               # Abbrev code632	.byte	46                              # DW_TAG_subprogram633	.byte	1                               # DW_IDX_compile_unit634	.byte	11                              # DW_FORM_data1635	.byte	3                               # DW_IDX_die_offset636	.byte	19                              # DW_FORM_ref4637	.byte	4                               # DW_IDX_parent638	.byte	25                              # DW_FORM_flag_present639	.byte	0                               # End of abbrev640	.byte	0                               # End of abbrev641	.byte	2                               # Abbrev code642	.byte	29                              # DW_TAG_inlined_subroutine643	.byte	1                               # DW_IDX_compile_unit644	.byte	11                              # DW_FORM_data1645	.byte	3                               # DW_IDX_die_offset646	.byte	19                              # DW_FORM_ref4647	.byte	4                               # DW_IDX_parent648	.byte	19                              # DW_FORM_ref4649	.byte	0                               # End of abbrev650	.byte	0                               # End of abbrev651	.byte	3                               # Abbrev code652	.byte	36                              # DW_TAG_base_type653	.byte	1                               # DW_IDX_compile_unit654	.byte	11                              # DW_FORM_data1655	.byte	3                               # DW_IDX_die_offset656	.byte	19                              # DW_FORM_ref4657	.byte	4                               # DW_IDX_parent658	.byte	25                              # DW_FORM_flag_present659	.byte	0                               # End of abbrev660	.byte	0                               # End of abbrev661	.byte	0                               # End of abbrev list662.Lnames_abbrev_end0:663.Lnames_entries0:664.Lnames1:665.L3:666	.byte	1                               # Abbreviation code667	.byte	0                               # DW_IDX_compile_unit668	.long	35                              # DW_IDX_die_offset669	.byte	0                               # DW_IDX_parent670                                        # End of list: main671.Lnames3:672.L0:673	.byte	1                               # Abbreviation code674	.byte	1                               # DW_IDX_compile_unit675	.long	57                              # DW_IDX_die_offset676.L2:                                    # DW_IDX_parent677	.byte	2                               # Abbreviation code678	.byte	0                               # DW_IDX_compile_unit679	.long	83                              # DW_IDX_die_offset680	.long	.L3-.Lnames_entries0            # DW_IDX_parent681	.byte	0                               # End of list: _Z3fooi682.Lnames0:683.L4:684	.byte	3                               # Abbreviation code685	.byte	1                               # DW_IDX_compile_unit686	.long	53                              # DW_IDX_die_offset687	.byte	0                               # DW_IDX_parent688                                        # End of list: int689.Lnames2:690	.byte	1                               # Abbreviation code691	.byte	1                               # DW_IDX_compile_unit692	.long	57                              # DW_IDX_die_offset693	.byte	2                               # DW_IDX_parent694                                        # Abbreviation code695	.byte	0                               # DW_IDX_compile_unit696	.long	83                              # DW_IDX_die_offset697	.long	.L3-.Lnames_entries0            # DW_IDX_parent698	.byte	0                               # End of list: foo699.Lnames4:700.L1:701	.byte	3                               # Abbreviation code702	.byte	0                               # DW_IDX_compile_unit703	.long	116                             # DW_IDX_die_offset704	.byte	0                               # DW_IDX_parent705                                        # End of list: char706	.p2align	2, 0x0707.Lnames_end0:708	.ident	"clang version 19.0.0git"709	.ident	"clang version 19.0.0git"710	.section	".note.GNU-stack","",@progbits711	.section	.debug_line,"",@progbits712.Lline_table_start0:713