12c784f7dSAlexander Yermolovich# REQUIRES: system-linux
22c784f7dSAlexander Yermolovich
32c784f7dSAlexander Yermolovich# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %s -o %t1.o
42c784f7dSAlexander Yermolovich# RUN: %clang %cflags -dwarf-4 %t1.o -o %t.exe -Wl,-q
52c784f7dSAlexander Yermolovich# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections -v 1 &> %tlog.txt
62c784f7dSAlexander Yermolovich# RUN: cat %tlog.txt | FileCheck --check-prefix=CHECKBOLT %s
72c784f7dSAlexander Yermolovich# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=CHECK %s
82c784f7dSAlexander Yermolovich
9*11791ae7SSayhaan Siddiqui## Tests BOLT does not assert when DIE reference is invalid.
102c784f7dSAlexander Yermolovich
112c784f7dSAlexander Yermolovich# CHECKBOLT: BOLT-WARNING: [internal-dwarf-error]: invalid referenced DIE at offset:
122c784f7dSAlexander Yermolovich# CHECKBOLT-NOT: Referenced DIE offsets not in .debug_info
132c784f7dSAlexander Yermolovich# CHECK: DW_TAG_variable
142c784f7dSAlexander Yermolovich# CHECK-NEXT: DW_AT_name
152c784f7dSAlexander Yermolovich# CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x008f => {0x0000008f})
162c784f7dSAlexander Yermolovich
172c784f7dSAlexander Yermolovich# Assembly manually modified
182c784f7dSAlexander Yermolovich# struct pair {int i; int j; };
192c784f7dSAlexander Yermolovich# static pair p;
202c784f7dSAlexander Yermolovich# int load() {
212c784f7dSAlexander Yermolovich#     return p.i + p.j;
222c784f7dSAlexander Yermolovich# }
232c784f7dSAlexander Yermolovich# void store(int i, int j) {
242c784f7dSAlexander Yermolovich#     p.i = i;
252c784f7dSAlexander Yermolovich#     p.j = j;
262c784f7dSAlexander Yermolovich# }
272c784f7dSAlexander Yermolovich# int main() {
282c784f7dSAlexander Yermolovich# return 0;
292c784f7dSAlexander Yermolovich# }
302c784f7dSAlexander Yermolovich
312c784f7dSAlexander Yermolovich	.text
322c784f7dSAlexander Yermolovich	.file	"main.cpp"
332c784f7dSAlexander Yermolovich	.file	1 "/invalidWithin" "main.cpp"
342c784f7dSAlexander Yermolovich	.section	.text._Z4loadv,"ax",@progbits
352c784f7dSAlexander Yermolovich	.globl	_Z4loadv                        # -- Begin function _Z4loadv
362c784f7dSAlexander Yermolovich	.p2align	4, 0x90
372c784f7dSAlexander Yermolovich	.type	_Z4loadv,@function
382c784f7dSAlexander Yermolovich_Z4loadv:                               # @_Z4loadv
392c784f7dSAlexander Yermolovich.Lfunc_begin0:
402c784f7dSAlexander Yermolovich	.cfi_startproc
412c784f7dSAlexander Yermolovich# %bb.0:                                # %entry
422c784f7dSAlexander Yermolovich	.loc	1 4 20 prologue_end             # main.cpp:4:20
432c784f7dSAlexander Yermolovich	movl	_ZL1p.1(%rip), %eax
442c784f7dSAlexander Yermolovich	.loc	1 4 16 is_stmt 0                # main.cpp:4:16
452c784f7dSAlexander Yermolovich	addl	_ZL1p.0(%rip), %eax
462c784f7dSAlexander Yermolovich	.loc	1 4 5                           # main.cpp:4:5
472c784f7dSAlexander Yermolovich	retq
482c784f7dSAlexander Yermolovich.Ltmp0:
492c784f7dSAlexander Yermolovich.Lfunc_end0:
502c784f7dSAlexander Yermolovich	.size	_Z4loadv, .Lfunc_end0-_Z4loadv
512c784f7dSAlexander Yermolovich	.cfi_endproc
522c784f7dSAlexander Yermolovich                                        # -- End function
532c784f7dSAlexander Yermolovich	.section	.text._Z5storeii,"ax",@progbits
542c784f7dSAlexander Yermolovich	.globl	_Z5storeii                      # -- Begin function _Z5storeii
552c784f7dSAlexander Yermolovich	.p2align	4, 0x90
562c784f7dSAlexander Yermolovich	.type	_Z5storeii,@function
572c784f7dSAlexander Yermolovich_Z5storeii:                             # @_Z5storeii
582c784f7dSAlexander Yermolovich.Lfunc_begin1:
592c784f7dSAlexander Yermolovich	.cfi_startproc
602c784f7dSAlexander Yermolovich# %bb.0:                                # %entry
612c784f7dSAlexander Yermolovich	#DEBUG_VALUE: store:i <- $edi
622c784f7dSAlexander Yermolovich	#DEBUG_VALUE: store:j <- $esi
632c784f7dSAlexander Yermolovich	.loc	1 7 9 prologue_end is_stmt 1    # main.cpp:7:9
642c784f7dSAlexander Yermolovich	movl	%edi, _ZL1p.0(%rip)
652c784f7dSAlexander Yermolovich	.loc	1 8 9                           # main.cpp:8:9
662c784f7dSAlexander Yermolovich	movl	%esi, _ZL1p.1(%rip)
672c784f7dSAlexander Yermolovich	.loc	1 9 1                           # main.cpp:9:1
682c784f7dSAlexander Yermolovich	retq
692c784f7dSAlexander Yermolovich.Ltmp1:
702c784f7dSAlexander Yermolovich.Lfunc_end1:
712c784f7dSAlexander Yermolovich	.size	_Z5storeii, .Lfunc_end1-_Z5storeii
722c784f7dSAlexander Yermolovich	.cfi_endproc
732c784f7dSAlexander Yermolovich                                        # -- End function
742c784f7dSAlexander Yermolovich	.section	.text.main,"ax",@progbits
752c784f7dSAlexander Yermolovich	.globl	main                            # -- Begin function main
762c784f7dSAlexander Yermolovich	.p2align	4, 0x90
772c784f7dSAlexander Yermolovich	.type	main,@function
782c784f7dSAlexander Yermolovichmain:                                   # @main
792c784f7dSAlexander Yermolovich.Lfunc_begin2:
802c784f7dSAlexander Yermolovich	.cfi_startproc
812c784f7dSAlexander Yermolovich# %bb.0:                                # %entry
822c784f7dSAlexander Yermolovich	.loc	1 11 1 prologue_end             # main.cpp:11:1
832c784f7dSAlexander Yermolovich	xorl	%eax, %eax
842c784f7dSAlexander Yermolovich	retq
852c784f7dSAlexander Yermolovich.Ltmp2:
862c784f7dSAlexander Yermolovich.Lfunc_end2:
872c784f7dSAlexander Yermolovich	.size	main, .Lfunc_end2-main
882c784f7dSAlexander Yermolovich	.cfi_endproc
892c784f7dSAlexander Yermolovich                                        # -- End function
902c784f7dSAlexander Yermolovich	.type	_ZL1p.0,@object                 # @_ZL1p.0
912c784f7dSAlexander Yermolovich	.local	_ZL1p.0
922c784f7dSAlexander Yermolovich	.comm	_ZL1p.0,4,4
932c784f7dSAlexander Yermolovich	.type	_ZL1p.1,@object                 # @_ZL1p.1
942c784f7dSAlexander Yermolovich	.local	_ZL1p.1
952c784f7dSAlexander Yermolovich	.comm	_ZL1p.1,4,4
962c784f7dSAlexander Yermolovich	.section	.debug_abbrev,"",@progbits
972c784f7dSAlexander Yermolovich	.byte	1                               # Abbreviation Code
982c784f7dSAlexander Yermolovich	.byte	17                              # DW_TAG_compile_unit
992c784f7dSAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
1002c784f7dSAlexander Yermolovich	.byte	37                              # DW_AT_producer
1012c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1022c784f7dSAlexander Yermolovich	.byte	19                              # DW_AT_language
1032c784f7dSAlexander Yermolovich	.byte	5                               # DW_FORM_data2
1042c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
1052c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1062c784f7dSAlexander Yermolovich	.byte	16                              # DW_AT_stmt_list
1072c784f7dSAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
1082c784f7dSAlexander Yermolovich	.byte	27                              # DW_AT_comp_dir
1092c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1102c784f7dSAlexander Yermolovich	.byte	17                              # DW_AT_low_pc
1112c784f7dSAlexander Yermolovich	.byte	1                               # DW_FORM_addr
1122c784f7dSAlexander Yermolovich	.byte	85                              # DW_AT_ranges
1132c784f7dSAlexander Yermolovich	.byte	23                              # DW_FORM_sec_offset
1142c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
1152c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
1162c784f7dSAlexander Yermolovich	.byte	2                               # Abbreviation Code
1172c784f7dSAlexander Yermolovich	.byte	52                              # DW_TAG_variable
1182c784f7dSAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
1192c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
1202c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1212c784f7dSAlexander Yermolovich	.byte	73                              # DW_AT_type
1222c784f7dSAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
1232c784f7dSAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
1242c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1252c784f7dSAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
1262c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1272c784f7dSAlexander Yermolovich	.byte	2                               # DW_AT_location
1282c784f7dSAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
1292c784f7dSAlexander Yermolovich	.byte	110                             # DW_AT_linkage_name
1302c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1312c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
1322c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
1332c784f7dSAlexander Yermolovich	.byte	3                               # Abbreviation Code
1342c784f7dSAlexander Yermolovich	.byte	19                              # DW_TAG_structure_type
1352c784f7dSAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
1362c784f7dSAlexander Yermolovich	.byte	54                              # DW_AT_calling_convention
1372c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1382c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
1392c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1402c784f7dSAlexander Yermolovich	.byte	11                              # DW_AT_byte_size
1412c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1422c784f7dSAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
1432c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1442c784f7dSAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
1452c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1462c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
1472c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
1482c784f7dSAlexander Yermolovich	.byte	4                               # Abbreviation Code
1492c784f7dSAlexander Yermolovich	.byte	13                              # DW_TAG_member
1502c784f7dSAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
1512c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
1522c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1532c784f7dSAlexander Yermolovich	.byte	73                              # DW_AT_type
1542c784f7dSAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
1552c784f7dSAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
1562c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1572c784f7dSAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
1582c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1592c784f7dSAlexander Yermolovich	.byte	56                              # DW_AT_data_member_location
1602c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1612c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
1622c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
1632c784f7dSAlexander Yermolovich	.byte	5                               # Abbreviation Code
1642c784f7dSAlexander Yermolovich	.byte	36                              # DW_TAG_base_type
1652c784f7dSAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
1662c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
1672c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1682c784f7dSAlexander Yermolovich	.byte	62                              # DW_AT_encoding
1692c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1702c784f7dSAlexander Yermolovich	.byte	11                              # DW_AT_byte_size
1712c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1722c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
1732c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
1742c784f7dSAlexander Yermolovich	.byte	6                               # Abbreviation Code
1752c784f7dSAlexander Yermolovich	.byte	46                              # DW_TAG_subprogram
1762c784f7dSAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
1772c784f7dSAlexander Yermolovich	.byte	17                              # DW_AT_low_pc
1782c784f7dSAlexander Yermolovich	.byte	1                               # DW_FORM_addr
1792c784f7dSAlexander Yermolovich	.byte	18                              # DW_AT_high_pc
1802c784f7dSAlexander Yermolovich	.byte	6                               # DW_FORM_data4
1812c784f7dSAlexander Yermolovich	.byte	64                              # DW_AT_frame_base
1822c784f7dSAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
1832c784f7dSAlexander Yermolovich	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites
1842c784f7dSAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
1852c784f7dSAlexander Yermolovich	.byte	110                             # DW_AT_linkage_name
1862c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1872c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
1882c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
1892c784f7dSAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
1902c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1912c784f7dSAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
1922c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
1932c784f7dSAlexander Yermolovich	.byte	73                              # DW_AT_type
1942c784f7dSAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
1952c784f7dSAlexander Yermolovich	.byte	63                              # DW_AT_external
1962c784f7dSAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
1972c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
1982c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
1992c784f7dSAlexander Yermolovich	.byte	7                               # Abbreviation Code
2002c784f7dSAlexander Yermolovich	.byte	46                              # DW_TAG_subprogram
2012c784f7dSAlexander Yermolovich	.byte	1                               # DW_CHILDREN_yes
2022c784f7dSAlexander Yermolovich	.byte	17                              # DW_AT_low_pc
2032c784f7dSAlexander Yermolovich	.byte	1                               # DW_FORM_addr
2042c784f7dSAlexander Yermolovich	.byte	18                              # DW_AT_high_pc
2052c784f7dSAlexander Yermolovich	.byte	6                               # DW_FORM_data4
2062c784f7dSAlexander Yermolovich	.byte	64                              # DW_AT_frame_base
2072c784f7dSAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
2082c784f7dSAlexander Yermolovich	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites
2092c784f7dSAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
2102c784f7dSAlexander Yermolovich	.byte	110                             # DW_AT_linkage_name
2112c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
2122c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
2132c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
2142c784f7dSAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
2152c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
2162c784f7dSAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
2172c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
2182c784f7dSAlexander Yermolovich	.byte	63                              # DW_AT_external
2192c784f7dSAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
2202c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
2212c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
2222c784f7dSAlexander Yermolovich	.byte	8                               # Abbreviation Code
2232c784f7dSAlexander Yermolovich	.byte	5                               # DW_TAG_formal_parameter
2242c784f7dSAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
2252c784f7dSAlexander Yermolovich	.byte	2                               # DW_AT_location
2262c784f7dSAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
2272c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
2282c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
2292c784f7dSAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
2302c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
2312c784f7dSAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
2322c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
2332c784f7dSAlexander Yermolovich	.byte	73                              # DW_AT_type
2342c784f7dSAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
2352c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
2362c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
2372c784f7dSAlexander Yermolovich	.byte	9                               # Abbreviation Code
2382c784f7dSAlexander Yermolovich	.byte	46                              # DW_TAG_subprogram
2392c784f7dSAlexander Yermolovich	.byte	0                               # DW_CHILDREN_no
2402c784f7dSAlexander Yermolovich	.byte	17                              # DW_AT_low_pc
2412c784f7dSAlexander Yermolovich	.byte	1                               # DW_FORM_addr
2422c784f7dSAlexander Yermolovich	.byte	18                              # DW_AT_high_pc
2432c784f7dSAlexander Yermolovich	.byte	6                               # DW_FORM_data4
2442c784f7dSAlexander Yermolovich	.byte	64                              # DW_AT_frame_base
2452c784f7dSAlexander Yermolovich	.byte	24                              # DW_FORM_exprloc
2462c784f7dSAlexander Yermolovich	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites
2472c784f7dSAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
2482c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_name
2492c784f7dSAlexander Yermolovich	.byte	14                              # DW_FORM_strp
2502c784f7dSAlexander Yermolovich	.byte	58                              # DW_AT_decl_file
2512c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
2522c784f7dSAlexander Yermolovich	.byte	59                              # DW_AT_decl_line
2532c784f7dSAlexander Yermolovich	.byte	11                              # DW_FORM_data1
2542c784f7dSAlexander Yermolovich	.byte	73                              # DW_AT_type
2552c784f7dSAlexander Yermolovich	.byte	19                              # DW_FORM_ref4
2562c784f7dSAlexander Yermolovich	.byte	63                              # DW_AT_external
2572c784f7dSAlexander Yermolovich	.byte	25                              # DW_FORM_flag_present
2582c784f7dSAlexander Yermolovich	.byte	0                               # EOM(1)
2592c784f7dSAlexander Yermolovich	.byte	0                               # EOM(2)
2602c784f7dSAlexander Yermolovich	.byte	0                               # EOM(3)
2612c784f7dSAlexander Yermolovich	.section	.debug_info,"",@progbits
2622c784f7dSAlexander Yermolovich.Lcu_begin0:
2632c784f7dSAlexander Yermolovich	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
2642c784f7dSAlexander Yermolovich.Ldebug_info_start0:
2652c784f7dSAlexander Yermolovich	.short	4                               # DWARF version number
2662c784f7dSAlexander Yermolovich	.long	.debug_abbrev                   # Offset Into Abbrev. Section
2672c784f7dSAlexander Yermolovich	.byte	8                               # Address Size (in bytes)
2682c784f7dSAlexander Yermolovich	.byte	1                               # Abbrev [1] 0xb:0xd9 DW_TAG_compile_unit
2692c784f7dSAlexander Yermolovich	.long	.Linfo_string0                  # DW_AT_producer
2702c784f7dSAlexander Yermolovich	.short	33                              # DW_AT_language
2712c784f7dSAlexander Yermolovich	.long	.Linfo_string1                  # DW_AT_name
2722c784f7dSAlexander Yermolovich	.long	.Lline_table_start0             # DW_AT_stmt_list
2732c784f7dSAlexander Yermolovich	.long	.Linfo_string2                  # DW_AT_comp_dir
2742c784f7dSAlexander Yermolovich	.quad	0                               # DW_AT_low_pc
2752c784f7dSAlexander Yermolovich	.long	.Ldebug_ranges0                 # DW_AT_ranges
2762c784f7dSAlexander Yermolovich	.byte	2                               # Abbrev [2] 0x2a:0x26 DW_TAG_variable
2772c784f7dSAlexander Yermolovich	.long	.Linfo_string3                  # DW_AT_name
2782c784f7dSAlexander Yermolovich	.long	143                              # DW_AT_type --> Modified manually s/80/143
2792c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
2802c784f7dSAlexander Yermolovich	.byte	2                               # DW_AT_decl_line
2812c784f7dSAlexander Yermolovich	.byte	22                              # DW_AT_location
2822c784f7dSAlexander Yermolovich	.byte	3
2832c784f7dSAlexander Yermolovich	.quad	_ZL1p.0
2842c784f7dSAlexander Yermolovich	.byte	147
2852c784f7dSAlexander Yermolovich	.byte	4
2862c784f7dSAlexander Yermolovich	.byte	3
2872c784f7dSAlexander Yermolovich	.quad	_ZL1p.1
2882c784f7dSAlexander Yermolovich	.byte	147
2892c784f7dSAlexander Yermolovich	.byte	4
2902c784f7dSAlexander Yermolovich	.long	.Linfo_string8                  # DW_AT_linkage_name
2912c784f7dSAlexander Yermolovich	.byte	3                               # Abbrev [3] 0x50:0x22 DW_TAG_structure_type
2922c784f7dSAlexander Yermolovich	.byte	5                               # DW_AT_calling_convention
2932c784f7dSAlexander Yermolovich	.long	.Linfo_string7                  # DW_AT_name
2942c784f7dSAlexander Yermolovich	.byte	8                               # DW_AT_byte_size
2952c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
2962c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_line
2972c784f7dSAlexander Yermolovich	.byte	4                               # Abbrev [4] 0x59:0xc DW_TAG_member
2982c784f7dSAlexander Yermolovich	.long	.Linfo_string4                  # DW_AT_name
2992c784f7dSAlexander Yermolovich	.long	114                             # DW_AT_type
3002c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
3012c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_line
3022c784f7dSAlexander Yermolovich	.byte	0                               # DW_AT_data_member_location
3032c784f7dSAlexander Yermolovich	.byte	4                               # Abbrev [4] 0x65:0xc DW_TAG_member
3042c784f7dSAlexander Yermolovich	.long	.Linfo_string6                  # DW_AT_name
3052c784f7dSAlexander Yermolovich	.long	114                             # DW_AT_type
3062c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
3072c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_line
3082c784f7dSAlexander Yermolovich	.byte	4                               # DW_AT_data_member_location
3092c784f7dSAlexander Yermolovich	.byte	0                               # End Of Children Mark
3102c784f7dSAlexander Yermolovich	.byte	5                               # Abbrev [5] 0x72:0x7 DW_TAG_base_type
3112c784f7dSAlexander Yermolovich	.long	.Linfo_string5                  # DW_AT_name
3122c784f7dSAlexander Yermolovich	.byte	5                               # DW_AT_encoding
3132c784f7dSAlexander Yermolovich	.byte	4                               # DW_AT_byte_size
3142c784f7dSAlexander Yermolovich	.byte	6                               # Abbrev [6] 0x79:0x1d DW_TAG_subprogram
3152c784f7dSAlexander Yermolovich	.quad	.Lfunc_begin0                   # DW_AT_low_pc
3162c784f7dSAlexander Yermolovich	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
3172c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_frame_base
3182c784f7dSAlexander Yermolovich	.byte	87
3192c784f7dSAlexander Yermolovich                                        # DW_AT_GNU_all_call_sites
3202c784f7dSAlexander Yermolovich	.long	.Linfo_string9                  # DW_AT_linkage_name
3212c784f7dSAlexander Yermolovich	.long	.Linfo_string10                 # DW_AT_name
3222c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
3232c784f7dSAlexander Yermolovich	.byte	3                               # DW_AT_decl_line
3242c784f7dSAlexander Yermolovich	.long	114                             # DW_AT_type
3252c784f7dSAlexander Yermolovich                                        # DW_AT_external
3262c784f7dSAlexander Yermolovich	.byte	7                               # Abbrev [7] 0x96:0x34 DW_TAG_subprogram
3272c784f7dSAlexander Yermolovich	.quad	.Lfunc_begin1                   # DW_AT_low_pc
3282c784f7dSAlexander Yermolovich	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
3292c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_frame_base
3302c784f7dSAlexander Yermolovich	.byte	87
3312c784f7dSAlexander Yermolovich                                        # DW_AT_GNU_all_call_sites
3322c784f7dSAlexander Yermolovich	.long	.Linfo_string11                 # DW_AT_linkage_name
3332c784f7dSAlexander Yermolovich	.long	.Linfo_string12                 # DW_AT_name
3342c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
3352c784f7dSAlexander Yermolovich	.byte	6                               # DW_AT_decl_line
3362c784f7dSAlexander Yermolovich                                        # DW_AT_external
3372c784f7dSAlexander Yermolovich	.byte	8                               # Abbrev [8] 0xaf:0xd DW_TAG_formal_parameter
3382c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_location
3392c784f7dSAlexander Yermolovich	.byte	85
3402c784f7dSAlexander Yermolovich	.long	.Linfo_string4                  # DW_AT_name
3412c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
3422c784f7dSAlexander Yermolovich	.byte	6                               # DW_AT_decl_line
3432c784f7dSAlexander Yermolovich	.long	114                             # DW_AT_type
3442c784f7dSAlexander Yermolovich	.byte	8                               # Abbrev [8] 0xbc:0xd DW_TAG_formal_parameter
3452c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_location
3462c784f7dSAlexander Yermolovich	.byte	84
3472c784f7dSAlexander Yermolovich	.long	.Linfo_string6                  # DW_AT_name
3482c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
3492c784f7dSAlexander Yermolovich	.byte	6                               # DW_AT_decl_line
3502c784f7dSAlexander Yermolovich	.long	114                             # DW_AT_type
3512c784f7dSAlexander Yermolovich	.byte	0                               # End Of Children Mark
3522c784f7dSAlexander Yermolovich	.byte	9                               # Abbrev [9] 0xca:0x19 DW_TAG_subprogram
3532c784f7dSAlexander Yermolovich	.quad	.Lfunc_begin2                   # DW_AT_low_pc
3542c784f7dSAlexander Yermolovich	.long	.Lfunc_end2-.Lfunc_begin2       # DW_AT_high_pc
3552c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_frame_base
3562c784f7dSAlexander Yermolovich	.byte	87
3572c784f7dSAlexander Yermolovich                                        # DW_AT_GNU_all_call_sites
3582c784f7dSAlexander Yermolovich	.long	.Linfo_string13                 # DW_AT_name
3592c784f7dSAlexander Yermolovich	.byte	1                               # DW_AT_decl_file
3602c784f7dSAlexander Yermolovich	.byte	10                              # DW_AT_decl_line
3612c784f7dSAlexander Yermolovich	.long	114                             # DW_AT_type
3622c784f7dSAlexander Yermolovich                                        # DW_AT_external
3632c784f7dSAlexander Yermolovich	.byte	0                               # End Of Children Mark
3642c784f7dSAlexander Yermolovich.Ldebug_info_end0:
3652c784f7dSAlexander Yermolovich	.section	.debug_ranges,"",@progbits
3662c784f7dSAlexander Yermolovich.Ldebug_ranges0:
3672c784f7dSAlexander Yermolovich	.quad	.Lfunc_begin0
3682c784f7dSAlexander Yermolovich	.quad	.Lfunc_end0
3692c784f7dSAlexander Yermolovich	.quad	.Lfunc_begin1
3702c784f7dSAlexander Yermolovich	.quad	.Lfunc_end1
3712c784f7dSAlexander Yermolovich	.quad	.Lfunc_begin2
3722c784f7dSAlexander Yermolovich	.quad	.Lfunc_end2
3732c784f7dSAlexander Yermolovich	.quad	0
3742c784f7dSAlexander Yermolovich	.quad	0
3752c784f7dSAlexander Yermolovich	.section	.debug_str,"MS",@progbits,1
3762c784f7dSAlexander Yermolovich.Linfo_string0:
3772c784f7dSAlexander Yermolovich	.asciz	"clang version 18.0.0 (git@github.com:llvm/llvm-project.git 37d6c1cc7d4dd3a8a47ba62254bc88521bd50d66)" # string offset=0
3782c784f7dSAlexander Yermolovich.Linfo_string1:
3792c784f7dSAlexander Yermolovich	.asciz	"main.cpp"                      # string offset=101
3802c784f7dSAlexander Yermolovich.Linfo_string2:
3812c784f7dSAlexander Yermolovich	.asciz	"/invalidWithin" # string offset=110
3822c784f7dSAlexander Yermolovich.Linfo_string3:
3832c784f7dSAlexander Yermolovich	.asciz	"p"                             # string offset=162
3842c784f7dSAlexander Yermolovich.Linfo_string4:
3852c784f7dSAlexander Yermolovich	.asciz	"i"                             # string offset=164
3862c784f7dSAlexander Yermolovich.Linfo_string5:
3872c784f7dSAlexander Yermolovich	.asciz	"int"                           # string offset=166
3882c784f7dSAlexander Yermolovich.Linfo_string6:
3892c784f7dSAlexander Yermolovich	.asciz	"j"                             # string offset=170
3902c784f7dSAlexander Yermolovich.Linfo_string7:
3912c784f7dSAlexander Yermolovich	.asciz	"pair"                          # string offset=172
3922c784f7dSAlexander Yermolovich.Linfo_string8:
3932c784f7dSAlexander Yermolovich	.asciz	"_ZL1p"                         # string offset=177
3942c784f7dSAlexander Yermolovich.Linfo_string9:
3952c784f7dSAlexander Yermolovich	.asciz	"_Z4loadv"                      # string offset=183
3962c784f7dSAlexander Yermolovich.Linfo_string10:
3972c784f7dSAlexander Yermolovich	.asciz	"load"                          # string offset=192
3982c784f7dSAlexander Yermolovich.Linfo_string11:
3992c784f7dSAlexander Yermolovich	.asciz	"_Z5storeii"                    # string offset=197
4002c784f7dSAlexander Yermolovich.Linfo_string12:
4012c784f7dSAlexander Yermolovich	.asciz	"store"                         # string offset=208
4022c784f7dSAlexander Yermolovich.Linfo_string13:
4032c784f7dSAlexander Yermolovich	.asciz	"main"                          # string offset=214
4042c784f7dSAlexander Yermolovich	.ident	"clang version 18.0.0 (git@github.com:llvm/llvm-project.git 37d6c1cc7d4dd3a8a47ba62254bc88521bd50d66)"
4052c784f7dSAlexander Yermolovich	.section	".note.GNU-stack","",@progbits
4062c784f7dSAlexander Yermolovich	.addrsig
4072c784f7dSAlexander Yermolovich	.section	.debug_line,"",@progbits
4082c784f7dSAlexander Yermolovich.Lline_table_start0:
409