xref: /llvm-project/bolt/test/X86/dwarf-inline-range.s (revision 11f52f783a64acef671a2b1648a40ba683ad4717)
1*11f52f78SMaksim Panchenko## Use llvm-dwarfdump to check the integrity of the inlined function "bar"
2*11f52f78SMaksim Panchenko## DWARF range after llvm-bolt removes a 6-byte nop instruction.
3*11f52f78SMaksim Panchenko##
4*11f52f78SMaksim Panchenko## If the range is not properly updated, it will exceed the range of the
5*11f52f78SMaksim Panchenko## containing function causing llvm-dwarfdump to issue an error.
6*11f52f78SMaksim Panchenko
7*11f52f78SMaksim Panchenko# CHECK-NOT: error: DIE address ranges are not contained in its parent's ranges
8*11f52f78SMaksim Panchenko
9*11f52f78SMaksim Panchenko# REQUIRES: system-linux
10*11f52f78SMaksim Panchenko
11*11f52f78SMaksim Panchenko# RUN: %clang++ %cflags -gdwarf-4 %s -o %t.exe -Wl,-q
12*11f52f78SMaksim Panchenko# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
13*11f52f78SMaksim Panchenko# RUN: llvm-dwarfdump --verify %t.bolt | FileCheck %s
14*11f52f78SMaksim Panchenko
15*11f52f78SMaksim Panchenko
16*11f52f78SMaksim Panchenko# Test compiled with "-O2 -g" from:
17*11f52f78SMaksim Panchenko#
18*11f52f78SMaksim Panchenko# unsigned long bar(unsigned long i) {
19*11f52f78SMaksim Panchenko#   asm volatile("nopw    %cs:(%rax,%rax)");
20*11f52f78SMaksim Panchenko#   return ++i;
21*11f52f78SMaksim Panchenko# }
22*11f52f78SMaksim Panchenko#
23*11f52f78SMaksim Panchenko# int main(int argc, char **argv) {
24*11f52f78SMaksim Panchenko#   bar(argc);
25*11f52f78SMaksim Panchenko#   return 0;
26*11f52f78SMaksim Panchenko# }
27*11f52f78SMaksim Panchenko
28*11f52f78SMaksim Panchenko	.text
29*11f52f78SMaksim Panchenko	.file	"dwarf-inline-range.cpp"
30*11f52f78SMaksim Panchenko	.globl	_Z3barm                         # -- Begin function _Z3barm
31*11f52f78SMaksim Panchenko	.p2align	4, 0x90
32*11f52f78SMaksim Panchenko	.type	_Z3barm,@function
33*11f52f78SMaksim Panchenko_Z3barm:                                # @_Z3barm
34*11f52f78SMaksim Panchenko.Lfunc_begin0:
35*11f52f78SMaksim Panchenko	.file	1 "." "dwarf-inline-range.cpp"
36*11f52f78SMaksim Panchenko	.loc	1 1 0                           # dwarf-inline-range.cpp:1:0
37*11f52f78SMaksim Panchenko	.cfi_startproc
38*11f52f78SMaksim Panchenko# %bb.0:
39*11f52f78SMaksim Panchenko	#DEBUG_VALUE: bar:i <- $rdi
40*11f52f78SMaksim Panchenko	.loc	1 2 3 prologue_end              # dwarf-inline-range.cpp:2:3
41*11f52f78SMaksim Panchenko	#APP
42*11f52f78SMaksim Panchenko	nopw	%cs:(%rax,%rax)
43*11f52f78SMaksim Panchenko	#NO_APP
44*11f52f78SMaksim Panchenko	.loc	1 3 10                          # dwarf-inline-range.cpp:3:10
45*11f52f78SMaksim Panchenko	leaq	1(%rdi), %rax
46*11f52f78SMaksim Panchenko.Ltmp0:
47*11f52f78SMaksim Panchenko	#DEBUG_VALUE: bar:i <- $rax
48*11f52f78SMaksim Panchenko	.loc	1 3 3 is_stmt 0                 # dwarf-inline-range.cpp:3:3
49*11f52f78SMaksim Panchenko	retq
50*11f52f78SMaksim Panchenko.Ltmp1:
51*11f52f78SMaksim Panchenko.Lfunc_end0:
52*11f52f78SMaksim Panchenko	.size	_Z3barm, .Lfunc_end0-_Z3barm
53*11f52f78SMaksim Panchenko	.cfi_endproc
54*11f52f78SMaksim Panchenko                                        # -- End function
55*11f52f78SMaksim Panchenko	.globl	main                            # -- Begin function main
56*11f52f78SMaksim Panchenko	.p2align	4, 0x90
57*11f52f78SMaksim Panchenko	.type	main,@function
58*11f52f78SMaksim Panchenkomain:                                   # @main
59*11f52f78SMaksim Panchenko.Lfunc_begin1:
60*11f52f78SMaksim Panchenko	.loc	1 6 0 is_stmt 1                 # dwarf-inline-range.cpp:6:0
61*11f52f78SMaksim Panchenko	.cfi_startproc
62*11f52f78SMaksim Panchenko# %bb.0:
63*11f52f78SMaksim Panchenko	#DEBUG_VALUE: main:argc <- $edi
64*11f52f78SMaksim Panchenko	#DEBUG_VALUE: main:argv <- $rsi
65*11f52f78SMaksim Panchenko	#DEBUG_VALUE: bar:i <- [DW_OP_LLVM_convert 32 5, DW_OP_LLVM_convert 64 5, DW_OP_stack_value] $edi
66*11f52f78SMaksim Panchenko	.loc	1 2 3 prologue_end              # dwarf-inline-range.cpp:2:3
67*11f52f78SMaksim Panchenko	#APP
68*11f52f78SMaksim Panchenko	nopw	%cs:(%rax,%rax)
69*11f52f78SMaksim Panchenko	#NO_APP
70*11f52f78SMaksim Panchenko.Ltmp2:
71*11f52f78SMaksim Panchenko	#DEBUG_VALUE: bar:i <- [DW_OP_LLVM_convert 32 5, DW_OP_LLVM_convert 64 5, DW_OP_plus_uconst 1, DW_OP_stack_value] undef
72*11f52f78SMaksim Panchenko	.loc	1 8 3                           # dwarf-inline-range.cpp:8:3
73*11f52f78SMaksim Panchenko	xorl	%eax, %eax
74*11f52f78SMaksim Panchenko	retq
75*11f52f78SMaksim Panchenko.Ltmp3:
76*11f52f78SMaksim Panchenko.Lfunc_end1:
77*11f52f78SMaksim Panchenko	.size	main, .Lfunc_end1-main
78*11f52f78SMaksim Panchenko	.cfi_endproc
79*11f52f78SMaksim Panchenko                                        # -- End function
80*11f52f78SMaksim Panchenko	.section	.debug_loc,"",@progbits
81*11f52f78SMaksim Panchenko.Ldebug_loc0:
82*11f52f78SMaksim Panchenko	.quad	.Lfunc_begin0-.Lfunc_begin0
83*11f52f78SMaksim Panchenko	.quad	.Ltmp0-.Lfunc_begin0
84*11f52f78SMaksim Panchenko	.short	1                               # Loc expr size
85*11f52f78SMaksim Panchenko	.byte	85                              # DW_OP_reg5
86*11f52f78SMaksim Panchenko	.quad	.Ltmp0-.Lfunc_begin0
87*11f52f78SMaksim Panchenko	.quad	.Lfunc_end0-.Lfunc_begin0
88*11f52f78SMaksim Panchenko	.short	1                               # Loc expr size
89*11f52f78SMaksim Panchenko	.byte	80                              # DW_OP_reg0
90*11f52f78SMaksim Panchenko	.quad	0
91*11f52f78SMaksim Panchenko	.quad	0
92*11f52f78SMaksim Panchenko.Ldebug_loc1:
93*11f52f78SMaksim Panchenko	.quad	.Lfunc_begin1-.Lfunc_begin0
94*11f52f78SMaksim Panchenko	.quad	.Ltmp2-.Lfunc_begin0
95*11f52f78SMaksim Panchenko	.short	21                              # Loc expr size
96*11f52f78SMaksim Panchenko	.byte	117                             # DW_OP_breg5
97*11f52f78SMaksim Panchenko	.byte	0                               # 0
98*11f52f78SMaksim Panchenko	.byte	16                              # DW_OP_constu
99*11f52f78SMaksim Panchenko	.byte	255                             # 4294967295
100*11f52f78SMaksim Panchenko	.byte	255                             #
101*11f52f78SMaksim Panchenko	.byte	255                             #
102*11f52f78SMaksim Panchenko	.byte	255                             #
103*11f52f78SMaksim Panchenko	.byte	15                              #
104*11f52f78SMaksim Panchenko	.byte	26                              # DW_OP_and
105*11f52f78SMaksim Panchenko	.byte	18                              # DW_OP_dup
106*11f52f78SMaksim Panchenko	.byte	16                              # DW_OP_constu
107*11f52f78SMaksim Panchenko	.byte	31                              # 31
108*11f52f78SMaksim Panchenko	.byte	37                              # DW_OP_shr
109*11f52f78SMaksim Panchenko	.byte	48                              # DW_OP_lit0
110*11f52f78SMaksim Panchenko	.byte	32                              # DW_OP_not
111*11f52f78SMaksim Panchenko	.byte	30                              # DW_OP_mul
112*11f52f78SMaksim Panchenko	.byte	16                              # DW_OP_constu
113*11f52f78SMaksim Panchenko	.byte	32                              # 32
114*11f52f78SMaksim Panchenko	.byte	36                              # DW_OP_shl
115*11f52f78SMaksim Panchenko	.byte	33                              # DW_OP_or
116*11f52f78SMaksim Panchenko	.byte	159                             # DW_OP_stack_value
117*11f52f78SMaksim Panchenko	.quad	0
118*11f52f78SMaksim Panchenko	.quad	0
119*11f52f78SMaksim Panchenko	.section	.debug_abbrev,"",@progbits
120*11f52f78SMaksim Panchenko	.byte	1                               # Abbreviation Code
121*11f52f78SMaksim Panchenko	.byte	17                              # DW_TAG_compile_unit
122*11f52f78SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
123*11f52f78SMaksim Panchenko	.byte	37                              # DW_AT_producer
124*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
125*11f52f78SMaksim Panchenko	.byte	19                              # DW_AT_language
126*11f52f78SMaksim Panchenko	.byte	5                               # DW_FORM_data2
127*11f52f78SMaksim Panchenko	.byte	3                               # DW_AT_name
128*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
129*11f52f78SMaksim Panchenko	.byte	16                              # DW_AT_stmt_list
130*11f52f78SMaksim Panchenko	.byte	23                              # DW_FORM_sec_offset
131*11f52f78SMaksim Panchenko	.byte	27                              # DW_AT_comp_dir
132*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
133*11f52f78SMaksim Panchenko	.byte	17                              # DW_AT_low_pc
134*11f52f78SMaksim Panchenko	.byte	1                               # DW_FORM_addr
135*11f52f78SMaksim Panchenko	.byte	18                              # DW_AT_high_pc
136*11f52f78SMaksim Panchenko	.byte	6                               # DW_FORM_data4
137*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
138*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
139*11f52f78SMaksim Panchenko	.byte	2                               # Abbreviation Code
140*11f52f78SMaksim Panchenko	.byte	46                              # DW_TAG_subprogram
141*11f52f78SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
142*11f52f78SMaksim Panchenko	.byte	17                              # DW_AT_low_pc
143*11f52f78SMaksim Panchenko	.byte	1                               # DW_FORM_addr
144*11f52f78SMaksim Panchenko	.byte	18                              # DW_AT_high_pc
145*11f52f78SMaksim Panchenko	.byte	6                               # DW_FORM_data4
146*11f52f78SMaksim Panchenko	.byte	64                              # DW_AT_frame_base
147*11f52f78SMaksim Panchenko	.byte	24                              # DW_FORM_exprloc
148*11f52f78SMaksim Panchenko	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites
149*11f52f78SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
150*11f52f78SMaksim Panchenko	.byte	49                              # DW_AT_abstract_origin
151*11f52f78SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
152*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
153*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
154*11f52f78SMaksim Panchenko	.byte	3                               # Abbreviation Code
155*11f52f78SMaksim Panchenko	.byte	5                               # DW_TAG_formal_parameter
156*11f52f78SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
157*11f52f78SMaksim Panchenko	.byte	2                               # DW_AT_location
158*11f52f78SMaksim Panchenko	.byte	23                              # DW_FORM_sec_offset
159*11f52f78SMaksim Panchenko	.byte	49                              # DW_AT_abstract_origin
160*11f52f78SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
161*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
162*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
163*11f52f78SMaksim Panchenko	.byte	4                               # Abbreviation Code
164*11f52f78SMaksim Panchenko	.byte	46                              # DW_TAG_subprogram
165*11f52f78SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
166*11f52f78SMaksim Panchenko	.byte	110                             # DW_AT_linkage_name
167*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
168*11f52f78SMaksim Panchenko	.byte	3                               # DW_AT_name
169*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
170*11f52f78SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
171*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
172*11f52f78SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
173*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
174*11f52f78SMaksim Panchenko	.byte	73                              # DW_AT_type
175*11f52f78SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
176*11f52f78SMaksim Panchenko	.byte	63                              # DW_AT_external
177*11f52f78SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
178*11f52f78SMaksim Panchenko	.byte	32                              # DW_AT_inline
179*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
180*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
181*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
182*11f52f78SMaksim Panchenko	.byte	5                               # Abbreviation Code
183*11f52f78SMaksim Panchenko	.byte	5                               # DW_TAG_formal_parameter
184*11f52f78SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
185*11f52f78SMaksim Panchenko	.byte	3                               # DW_AT_name
186*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
187*11f52f78SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
188*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
189*11f52f78SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
190*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
191*11f52f78SMaksim Panchenko	.byte	73                              # DW_AT_type
192*11f52f78SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
193*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
194*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
195*11f52f78SMaksim Panchenko	.byte	6                               # Abbreviation Code
196*11f52f78SMaksim Panchenko	.byte	36                              # DW_TAG_base_type
197*11f52f78SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
198*11f52f78SMaksim Panchenko	.byte	3                               # DW_AT_name
199*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
200*11f52f78SMaksim Panchenko	.byte	62                              # DW_AT_encoding
201*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
202*11f52f78SMaksim Panchenko	.byte	11                              # DW_AT_byte_size
203*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
204*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
205*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
206*11f52f78SMaksim Panchenko	.byte	7                               # Abbreviation Code
207*11f52f78SMaksim Panchenko	.byte	46                              # DW_TAG_subprogram
208*11f52f78SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
209*11f52f78SMaksim Panchenko	.byte	17                              # DW_AT_low_pc
210*11f52f78SMaksim Panchenko	.byte	1                               # DW_FORM_addr
211*11f52f78SMaksim Panchenko	.byte	18                              # DW_AT_high_pc
212*11f52f78SMaksim Panchenko	.byte	6                               # DW_FORM_data4
213*11f52f78SMaksim Panchenko	.byte	64                              # DW_AT_frame_base
214*11f52f78SMaksim Panchenko	.byte	24                              # DW_FORM_exprloc
215*11f52f78SMaksim Panchenko	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites
216*11f52f78SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
217*11f52f78SMaksim Panchenko	.byte	3                               # DW_AT_name
218*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
219*11f52f78SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
220*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
221*11f52f78SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
222*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
223*11f52f78SMaksim Panchenko	.byte	73                              # DW_AT_type
224*11f52f78SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
225*11f52f78SMaksim Panchenko	.byte	63                              # DW_AT_external
226*11f52f78SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
227*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
228*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
229*11f52f78SMaksim Panchenko	.byte	8                               # Abbreviation Code
230*11f52f78SMaksim Panchenko	.byte	5                               # DW_TAG_formal_parameter
231*11f52f78SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
232*11f52f78SMaksim Panchenko	.byte	2                               # DW_AT_location
233*11f52f78SMaksim Panchenko	.byte	24                              # DW_FORM_exprloc
234*11f52f78SMaksim Panchenko	.byte	3                               # DW_AT_name
235*11f52f78SMaksim Panchenko	.byte	14                              # DW_FORM_strp
236*11f52f78SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
237*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
238*11f52f78SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
239*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
240*11f52f78SMaksim Panchenko	.byte	73                              # DW_AT_type
241*11f52f78SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
242*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
243*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
244*11f52f78SMaksim Panchenko	.byte	9                               # Abbreviation Code
245*11f52f78SMaksim Panchenko	.byte	29                              # DW_TAG_inlined_subroutine
246*11f52f78SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
247*11f52f78SMaksim Panchenko	.byte	49                              # DW_AT_abstract_origin
248*11f52f78SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
249*11f52f78SMaksim Panchenko	.byte	17                              # DW_AT_low_pc
250*11f52f78SMaksim Panchenko	.byte	1                               # DW_FORM_addr
251*11f52f78SMaksim Panchenko	.byte	18                              # DW_AT_high_pc
252*11f52f78SMaksim Panchenko	.byte	6                               # DW_FORM_data4
253*11f52f78SMaksim Panchenko	.byte	88                              # DW_AT_call_file
254*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
255*11f52f78SMaksim Panchenko	.byte	89                              # DW_AT_call_line
256*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
257*11f52f78SMaksim Panchenko	.byte	87                              # DW_AT_call_column
258*11f52f78SMaksim Panchenko	.byte	11                              # DW_FORM_data1
259*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
260*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
261*11f52f78SMaksim Panchenko	.byte	10                              # Abbreviation Code
262*11f52f78SMaksim Panchenko	.byte	15                              # DW_TAG_pointer_type
263*11f52f78SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
264*11f52f78SMaksim Panchenko	.byte	73                              # DW_AT_type
265*11f52f78SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
266*11f52f78SMaksim Panchenko	.byte	0                               # EOM(1)
267*11f52f78SMaksim Panchenko	.byte	0                               # EOM(2)
268*11f52f78SMaksim Panchenko	.byte	0                               # EOM(3)
269*11f52f78SMaksim Panchenko	.section	.debug_info,"",@progbits
270*11f52f78SMaksim Panchenko.Lcu_begin0:
271*11f52f78SMaksim Panchenko	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
272*11f52f78SMaksim Panchenko.Ldebug_info_start0:
273*11f52f78SMaksim Panchenko	.short	4                               # DWARF version number
274*11f52f78SMaksim Panchenko	.long	.debug_abbrev                   # Offset Into Abbrev. Section
275*11f52f78SMaksim Panchenko	.byte	8                               # Address Size (in bytes)
276*11f52f78SMaksim Panchenko	.byte	1                               # Abbrev [1] 0xb:0xca DW_TAG_compile_unit
277*11f52f78SMaksim Panchenko	.long	.Linfo_string0                  # DW_AT_producer
278*11f52f78SMaksim Panchenko	.short	33                              # DW_AT_language
279*11f52f78SMaksim Panchenko	.long	.Linfo_string1                  # DW_AT_name
280*11f52f78SMaksim Panchenko	.long	.Lline_table_start0             # DW_AT_stmt_list
281*11f52f78SMaksim Panchenko	.long	.Linfo_string2                  # DW_AT_comp_dir
282*11f52f78SMaksim Panchenko	.quad	.Lfunc_begin0                   # DW_AT_low_pc
283*11f52f78SMaksim Panchenko	.long	.Lfunc_end1-.Lfunc_begin0       # DW_AT_high_pc
284*11f52f78SMaksim Panchenko	.byte	2                               # Abbrev [2] 0x2a:0x1d DW_TAG_subprogram
285*11f52f78SMaksim Panchenko	.quad	.Lfunc_begin0                   # DW_AT_low_pc
286*11f52f78SMaksim Panchenko	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
287*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_frame_base
288*11f52f78SMaksim Panchenko	.byte	87
289*11f52f78SMaksim Panchenko                                        # DW_AT_GNU_all_call_sites
290*11f52f78SMaksim Panchenko	.long	71                              # DW_AT_abstract_origin
291*11f52f78SMaksim Panchenko	.byte	3                               # Abbrev [3] 0x3d:0x9 DW_TAG_formal_parameter
292*11f52f78SMaksim Panchenko	.long	.Ldebug_loc0                    # DW_AT_location
293*11f52f78SMaksim Panchenko	.long	87                              # DW_AT_abstract_origin
294*11f52f78SMaksim Panchenko	.byte	0                               # End Of Children Mark
295*11f52f78SMaksim Panchenko	.byte	4                               # Abbrev [4] 0x47:0x1c DW_TAG_subprogram
296*11f52f78SMaksim Panchenko	.long	.Linfo_string3                  # DW_AT_linkage_name
297*11f52f78SMaksim Panchenko	.long	.Linfo_string4                  # DW_AT_name
298*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
299*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_decl_line
300*11f52f78SMaksim Panchenko	.long	99                              # DW_AT_type
301*11f52f78SMaksim Panchenko                                        # DW_AT_external
302*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_inline
303*11f52f78SMaksim Panchenko	.byte	5                               # Abbrev [5] 0x57:0xb DW_TAG_formal_parameter
304*11f52f78SMaksim Panchenko	.long	.Linfo_string6                  # DW_AT_name
305*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
306*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_decl_line
307*11f52f78SMaksim Panchenko	.long	99                              # DW_AT_type
308*11f52f78SMaksim Panchenko	.byte	0                               # End Of Children Mark
309*11f52f78SMaksim Panchenko	.byte	6                               # Abbrev [6] 0x63:0x7 DW_TAG_base_type
310*11f52f78SMaksim Panchenko	.long	.Linfo_string5                  # DW_AT_name
311*11f52f78SMaksim Panchenko	.byte	7                               # DW_AT_encoding
312*11f52f78SMaksim Panchenko	.byte	8                               # DW_AT_byte_size
313*11f52f78SMaksim Panchenko	.byte	7                               # Abbrev [7] 0x6a:0x52 DW_TAG_subprogram
314*11f52f78SMaksim Panchenko	.quad	.Lfunc_begin1                   # DW_AT_low_pc
315*11f52f78SMaksim Panchenko	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc
316*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_frame_base
317*11f52f78SMaksim Panchenko	.byte	87
318*11f52f78SMaksim Panchenko                                        # DW_AT_GNU_all_call_sites
319*11f52f78SMaksim Panchenko	.long	.Linfo_string7                  # DW_AT_name
320*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
321*11f52f78SMaksim Panchenko	.byte	6                               # DW_AT_decl_line
322*11f52f78SMaksim Panchenko	.long	188                             # DW_AT_type
323*11f52f78SMaksim Panchenko                                        # DW_AT_external
324*11f52f78SMaksim Panchenko	.byte	8                               # Abbrev [8] 0x83:0xd DW_TAG_formal_parameter
325*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_location
326*11f52f78SMaksim Panchenko	.byte	85
327*11f52f78SMaksim Panchenko	.long	.Linfo_string9                  # DW_AT_name
328*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
329*11f52f78SMaksim Panchenko	.byte	6                               # DW_AT_decl_line
330*11f52f78SMaksim Panchenko	.long	188                             # DW_AT_type
331*11f52f78SMaksim Panchenko	.byte	8                               # Abbrev [8] 0x90:0xd DW_TAG_formal_parameter
332*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_location
333*11f52f78SMaksim Panchenko	.byte	84
334*11f52f78SMaksim Panchenko	.long	.Linfo_string10                 # DW_AT_name
335*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
336*11f52f78SMaksim Panchenko	.byte	6                               # DW_AT_decl_line
337*11f52f78SMaksim Panchenko	.long	195                             # DW_AT_type
338*11f52f78SMaksim Panchenko	.byte	9                               # Abbrev [9] 0x9d:0x1e DW_TAG_inlined_subroutine
339*11f52f78SMaksim Panchenko	.long	71                              # DW_AT_abstract_origin
340*11f52f78SMaksim Panchenko	.quad	.Lfunc_begin1                   # DW_AT_low_pc
341*11f52f78SMaksim Panchenko	.long	.Ltmp2-.Lfunc_begin1            # DW_AT_high_pc
342*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_call_file
343*11f52f78SMaksim Panchenko	.byte	7                               # DW_AT_call_line
344*11f52f78SMaksim Panchenko	.byte	3                               # DW_AT_call_column
345*11f52f78SMaksim Panchenko	.byte	3                               # Abbrev [3] 0xb1:0x9 DW_TAG_formal_parameter
346*11f52f78SMaksim Panchenko	.long	.Ldebug_loc1                    # DW_AT_location
347*11f52f78SMaksim Panchenko	.long	87                              # DW_AT_abstract_origin
348*11f52f78SMaksim Panchenko	.byte	0                               # End Of Children Mark
349*11f52f78SMaksim Panchenko	.byte	0                               # End Of Children Mark
350*11f52f78SMaksim Panchenko	.byte	6                               # Abbrev [6] 0xbc:0x7 DW_TAG_base_type
351*11f52f78SMaksim Panchenko	.long	.Linfo_string8                  # DW_AT_name
352*11f52f78SMaksim Panchenko	.byte	5                               # DW_AT_encoding
353*11f52f78SMaksim Panchenko	.byte	4                               # DW_AT_byte_size
354*11f52f78SMaksim Panchenko	.byte	10                              # Abbrev [10] 0xc3:0x5 DW_TAG_pointer_type
355*11f52f78SMaksim Panchenko	.long	200                             # DW_AT_type
356*11f52f78SMaksim Panchenko	.byte	10                              # Abbrev [10] 0xc8:0x5 DW_TAG_pointer_type
357*11f52f78SMaksim Panchenko	.long	205                             # DW_AT_type
358*11f52f78SMaksim Panchenko	.byte	6                               # Abbrev [6] 0xcd:0x7 DW_TAG_base_type
359*11f52f78SMaksim Panchenko	.long	.Linfo_string11                 # DW_AT_name
360*11f52f78SMaksim Panchenko	.byte	6                               # DW_AT_encoding
361*11f52f78SMaksim Panchenko	.byte	1                               # DW_AT_byte_size
362*11f52f78SMaksim Panchenko	.byte	0                               # End Of Children Mark
363*11f52f78SMaksim Panchenko.Ldebug_info_end0:
364*11f52f78SMaksim Panchenko	.section	.debug_str,"MS",@progbits,1
365*11f52f78SMaksim Panchenko.Linfo_string0:
366*11f52f78SMaksim Panchenko	.asciz	"clang version 15"
367*11f52f78SMaksim Panchenko.Linfo_string1:
368*11f52f78SMaksim Panchenko	.asciz	"dwarf-inline-range.cpp"        # string offset=69
369*11f52f78SMaksim Panchenko.Linfo_string2:
370*11f52f78SMaksim Panchenko	.asciz	"."           # string offset=92
371*11f52f78SMaksim Panchenko.Linfo_string3:
372*11f52f78SMaksim Panchenko	.asciz	"_Z3barm"                       # string offset=112
373*11f52f78SMaksim Panchenko.Linfo_string4:
374*11f52f78SMaksim Panchenko	.asciz	"bar"                           # string offset=120
375*11f52f78SMaksim Panchenko.Linfo_string5:
376*11f52f78SMaksim Panchenko	.asciz	"unsigned long"                 # string offset=124
377*11f52f78SMaksim Panchenko.Linfo_string6:
378*11f52f78SMaksim Panchenko	.asciz	"i"                             # string offset=138
379*11f52f78SMaksim Panchenko.Linfo_string7:
380*11f52f78SMaksim Panchenko	.asciz	"main"                          # string offset=140
381*11f52f78SMaksim Panchenko.Linfo_string8:
382*11f52f78SMaksim Panchenko	.asciz	"int"                           # string offset=145
383*11f52f78SMaksim Panchenko.Linfo_string9:
384*11f52f78SMaksim Panchenko	.asciz	"argc"                          # string offset=149
385*11f52f78SMaksim Panchenko.Linfo_string10:
386*11f52f78SMaksim Panchenko	.asciz	"argv"                          # string offset=154
387*11f52f78SMaksim Panchenko.Linfo_string11:
388*11f52f78SMaksim Panchenko	.asciz	"char"                          # string offset=159
389*11f52f78SMaksim Panchenko	.ident	"clang version 15"
390*11f52f78SMaksim Panchenko	.section	".note.GNU-stack","",@progbits
391*11f52f78SMaksim Panchenko	.addrsig
392*11f52f78SMaksim Panchenko	.section	.debug_line,"",@progbits
393*11f52f78SMaksim Panchenko.Lline_table_start0:
394