xref: /llvm-project/bolt/test/X86/dwarf4-deleted-range.s (revision 0acfe8483a1ab972a435bc551cc4a5c6c78be3f0)
1*0acfe848SMaksim Panchenko# REQUIRES: system-linux
2*0acfe848SMaksim Panchenko
3*0acfe848SMaksim Panchenko# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %s -o %tmain.o
4*0acfe848SMaksim Panchenko# RUN: %clang %cflags -no-pie %s -o %t.exe -Wl,-q
5*0acfe848SMaksim Panchenko# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
6*0acfe848SMaksim Panchenko# RUN: llvm-dwarfdump --show-children --name=main --debug-info %t.bolt \
7*0acfe848SMaksim Panchenko# RUN:   | FileCheck %s
8*0acfe848SMaksim Panchenko
9*0acfe848SMaksim Panchenko# CHECK: 		DW_TAG_inlined_subroutine
10*0acfe848SMaksim Panchenko# CHECK:      DW_AT_low_pc
11*0acfe848SMaksim Panchenko# CHECK-SAME: 0x0000000000000000
12*0acfe848SMaksim Panchenko
13*0acfe848SMaksim Panchenko# CHECK:    DW_TAG_GNU_call_site
14*0acfe848SMaksim Panchenko# CHECK:      DW_AT_low_pc
15*0acfe848SMaksim Panchenko# CHECK-SAME: 0x0000000000000000
16*0acfe848SMaksim Panchenko
17*0acfe848SMaksim Panchenko## Test that llvm-bolt correctly updates DIEs corresponding to deleted code.
18*0acfe848SMaksim Panchenko
19*0acfe848SMaksim Panchenko# Test case built from the following source using:
20*0acfe848SMaksim Panchenko#
21*0acfe848SMaksim Panchenko#   clang -O2 -g ...
22*0acfe848SMaksim Panchenko#
23*0acfe848SMaksim Panchenko# Assembly modified with "je" -> "jmp" to introduce unreachable block.
24*0acfe848SMaksim Panchenko#
25*0acfe848SMaksim Panchenko# extern void puts(const char *);
26*0acfe848SMaksim Panchenko#
27*0acfe848SMaksim Panchenko# static void foo() {
28*0acfe848SMaksim Panchenko#   puts("hi");
29*0acfe848SMaksim Panchenko# }
30*0acfe848SMaksim Panchenko#
31*0acfe848SMaksim Panchenko# int main(int argc, char **argv) {
32*0acfe848SMaksim Panchenko#   if (argc)
33*0acfe848SMaksim Panchenko#     foo();
34*0acfe848SMaksim Panchenko#   return 0;
35*0acfe848SMaksim Panchenko# }
36*0acfe848SMaksim Panchenko
37*0acfe848SMaksim Panchenko	.text
38*0acfe848SMaksim Panchenko	.file	"unreachable.c"
39*0acfe848SMaksim Panchenko	.file	1 "." "unreachable.c"
40*0acfe848SMaksim Panchenko	.globl	main                            # -- Begin function main
41*0acfe848SMaksim Panchenko	.p2align	4, 0x90
42*0acfe848SMaksim Panchenko	.type	main,@function
43*0acfe848SMaksim Panchenkomain:                                   # @main
44*0acfe848SMaksim Panchenko.Lfunc_begin0:
45*0acfe848SMaksim Panchenko	.loc	1 7 0                           # unreachable.c:7:0
46*0acfe848SMaksim Panchenko	.cfi_startproc
47*0acfe848SMaksim Panchenko# %bb.0:
48*0acfe848SMaksim Panchenko	#DEBUG_VALUE: main:argc <- $edi
49*0acfe848SMaksim Panchenko	#DEBUG_VALUE: main:argv <- $rsi
50*0acfe848SMaksim Panchenko	.loc	1 8 7 prologue_end              # unreachable.c:8:7
51*0acfe848SMaksim Panchenko	testl	%edi, %edi
52*0acfe848SMaksim Panchenko.Ltmp0:
53*0acfe848SMaksim Panchenko	.loc	1 8 7 is_stmt 0                 # unreachable.c:8:7
54*0acfe848SMaksim Panchenko	jmp	.LBB0_2
55*0acfe848SMaksim Panchenko.Ltmp1:
56*0acfe848SMaksim Panchenko# %bb.1:
57*0acfe848SMaksim Panchenko	#DEBUG_VALUE: main:argc <- $edi
58*0acfe848SMaksim Panchenko	#DEBUG_VALUE: main:argv <- $rsi
59*0acfe848SMaksim Panchenko	pushq	%rax
60*0acfe848SMaksim Panchenko	.cfi_def_cfa_offset 16
61*0acfe848SMaksim Panchenko.Ltmp2:
62*0acfe848SMaksim Panchenko	.loc	1 4 3 is_stmt 1                 # unreachable.c:4:3
63*0acfe848SMaksim Panchenko	movl	$.L.str, %edi
64*0acfe848SMaksim Panchenko.Ltmp3:
65*0acfe848SMaksim Panchenko	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi
66*0acfe848SMaksim Panchenko	callq	puts
67*0acfe848SMaksim Panchenko.Ltmp4:
68*0acfe848SMaksim Panchenko	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
69*0acfe848SMaksim Panchenko	.loc	1 0 3 is_stmt 0                 # unreachable.c:0:3
70*0acfe848SMaksim Panchenko	addq	$8, %rsp
71*0acfe848SMaksim Panchenko.Ltmp5:
72*0acfe848SMaksim Panchenko	.cfi_def_cfa_offset 8
73*0acfe848SMaksim Panchenko.LBB0_2:
74*0acfe848SMaksim Panchenko	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi
75*0acfe848SMaksim Panchenko	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
76*0acfe848SMaksim Panchenko	.loc	1 10 3 is_stmt 1                # unreachable.c:10:3
77*0acfe848SMaksim Panchenko	xorl	%eax, %eax
78*0acfe848SMaksim Panchenko	retq
79*0acfe848SMaksim Panchenko.Ltmp6:
80*0acfe848SMaksim Panchenko.Lfunc_end0:
81*0acfe848SMaksim Panchenko	.size	main, .Lfunc_end0-main
82*0acfe848SMaksim Panchenko	.cfi_endproc
83*0acfe848SMaksim Panchenko                                        # -- End function
84*0acfe848SMaksim Panchenko	.type	.L.str,@object                  # @.str
85*0acfe848SMaksim Panchenko	.section	.rodata.str1.1,"aMS",@progbits,1
86*0acfe848SMaksim Panchenko.L.str:
87*0acfe848SMaksim Panchenko	.asciz	"hi"
88*0acfe848SMaksim Panchenko	.size	.L.str, 3
89*0acfe848SMaksim Panchenko
90*0acfe848SMaksim Panchenko	.section	.debug_loc,"",@progbits
91*0acfe848SMaksim Panchenko.Ldebug_loc0:
92*0acfe848SMaksim Panchenko	.quad	.Lfunc_begin0-.Lfunc_begin0
93*0acfe848SMaksim Panchenko	.quad	.Ltmp3-.Lfunc_begin0
94*0acfe848SMaksim Panchenko	.short	1                               # Loc expr size
95*0acfe848SMaksim Panchenko	.byte	85                              # super-register DW_OP_reg5
96*0acfe848SMaksim Panchenko	.quad	.Ltmp3-.Lfunc_begin0
97*0acfe848SMaksim Panchenko	.quad	.Lfunc_end0-.Lfunc_begin0
98*0acfe848SMaksim Panchenko	.short	4                               # Loc expr size
99*0acfe848SMaksim Panchenko	.byte	243                             # DW_OP_GNU_entry_value
100*0acfe848SMaksim Panchenko	.byte	1                               # 1
101*0acfe848SMaksim Panchenko	.byte	85                              # super-register DW_OP_reg5
102*0acfe848SMaksim Panchenko	.byte	159                             # DW_OP_stack_value
103*0acfe848SMaksim Panchenko	.quad	0
104*0acfe848SMaksim Panchenko	.quad	0
105*0acfe848SMaksim Panchenko.Ldebug_loc1:
106*0acfe848SMaksim Panchenko	.quad	.Lfunc_begin0-.Lfunc_begin0
107*0acfe848SMaksim Panchenko	.quad	.Ltmp4-.Lfunc_begin0
108*0acfe848SMaksim Panchenko	.short	1                               # Loc expr size
109*0acfe848SMaksim Panchenko	.byte	84                              # DW_OP_reg4
110*0acfe848SMaksim Panchenko	.quad	.Ltmp4-.Lfunc_begin0
111*0acfe848SMaksim Panchenko	.quad	.Lfunc_end0-.Lfunc_begin0
112*0acfe848SMaksim Panchenko	.short	4                               # Loc expr size
113*0acfe848SMaksim Panchenko	.byte	243                             # DW_OP_GNU_entry_value
114*0acfe848SMaksim Panchenko	.byte	1                               # 1
115*0acfe848SMaksim Panchenko	.byte	84                              # DW_OP_reg4
116*0acfe848SMaksim Panchenko	.byte	159                             # DW_OP_stack_value
117*0acfe848SMaksim Panchenko	.quad	0
118*0acfe848SMaksim Panchenko	.quad	0
119*0acfe848SMaksim Panchenko	.section	.debug_abbrev,"",@progbits
120*0acfe848SMaksim Panchenko	.byte	1                               # Abbreviation Code
121*0acfe848SMaksim Panchenko	.byte	17                              # DW_TAG_compile_unit
122*0acfe848SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
123*0acfe848SMaksim Panchenko	.byte	37                              # DW_AT_producer
124*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
125*0acfe848SMaksim Panchenko	.byte	19                              # DW_AT_language
126*0acfe848SMaksim Panchenko	.byte	5                               # DW_FORM_data2
127*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_name
128*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
129*0acfe848SMaksim Panchenko	.byte	16                              # DW_AT_stmt_list
130*0acfe848SMaksim Panchenko	.byte	23                              # DW_FORM_sec_offset
131*0acfe848SMaksim Panchenko	.byte	27                              # DW_AT_comp_dir
132*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
133*0acfe848SMaksim Panchenko	.byte	17                              # DW_AT_low_pc
134*0acfe848SMaksim Panchenko	.byte	1                               # DW_FORM_addr
135*0acfe848SMaksim Panchenko	.byte	18                              # DW_AT_high_pc
136*0acfe848SMaksim Panchenko	.byte	6                               # DW_FORM_data4
137*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
138*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
139*0acfe848SMaksim Panchenko	.byte	2                               # Abbreviation Code
140*0acfe848SMaksim Panchenko	.byte	52                              # DW_TAG_variable
141*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
142*0acfe848SMaksim Panchenko	.byte	73                              # DW_AT_type
143*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
144*0acfe848SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
145*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
146*0acfe848SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
147*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
148*0acfe848SMaksim Panchenko	.byte	2                               # DW_AT_location
149*0acfe848SMaksim Panchenko	.byte	24                              # DW_FORM_exprloc
150*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
151*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
152*0acfe848SMaksim Panchenko	.byte	3                               # Abbreviation Code
153*0acfe848SMaksim Panchenko	.byte	1                               # DW_TAG_array_type
154*0acfe848SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
155*0acfe848SMaksim Panchenko	.byte	73                              # DW_AT_type
156*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
157*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
158*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
159*0acfe848SMaksim Panchenko	.byte	4                               # Abbreviation Code
160*0acfe848SMaksim Panchenko	.byte	33                              # DW_TAG_subrange_type
161*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
162*0acfe848SMaksim Panchenko	.byte	73                              # DW_AT_type
163*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
164*0acfe848SMaksim Panchenko	.byte	55                              # DW_AT_count
165*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
166*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
167*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
168*0acfe848SMaksim Panchenko	.byte	5                               # Abbreviation Code
169*0acfe848SMaksim Panchenko	.byte	36                              # DW_TAG_base_type
170*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
171*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_name
172*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
173*0acfe848SMaksim Panchenko	.byte	62                              # DW_AT_encoding
174*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
175*0acfe848SMaksim Panchenko	.byte	11                              # DW_AT_byte_size
176*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
177*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
178*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
179*0acfe848SMaksim Panchenko	.byte	6                               # Abbreviation Code
180*0acfe848SMaksim Panchenko	.byte	36                              # DW_TAG_base_type
181*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
182*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_name
183*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
184*0acfe848SMaksim Panchenko	.byte	11                              # DW_AT_byte_size
185*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
186*0acfe848SMaksim Panchenko	.byte	62                              # DW_AT_encoding
187*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
188*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
189*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
190*0acfe848SMaksim Panchenko	.byte	7                               # Abbreviation Code
191*0acfe848SMaksim Panchenko	.byte	46                              # DW_TAG_subprogram
192*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
193*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_name
194*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
195*0acfe848SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
196*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
197*0acfe848SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
198*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
199*0acfe848SMaksim Panchenko	.byte	32                              # DW_AT_inline
200*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
201*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
202*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
203*0acfe848SMaksim Panchenko	.byte	8                               # Abbreviation Code
204*0acfe848SMaksim Panchenko	.byte	46                              # DW_TAG_subprogram
205*0acfe848SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
206*0acfe848SMaksim Panchenko	.byte	17                              # DW_AT_low_pc
207*0acfe848SMaksim Panchenko	.byte	1                               # DW_FORM_addr
208*0acfe848SMaksim Panchenko	.byte	18                              # DW_AT_high_pc
209*0acfe848SMaksim Panchenko	.byte	6                               # DW_FORM_data4
210*0acfe848SMaksim Panchenko	.byte	64                              # DW_AT_frame_base
211*0acfe848SMaksim Panchenko	.byte	24                              # DW_FORM_exprloc
212*0acfe848SMaksim Panchenko	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites
213*0acfe848SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
214*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_name
215*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
216*0acfe848SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
217*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
218*0acfe848SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
219*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
220*0acfe848SMaksim Panchenko	.byte	39                              # DW_AT_prototyped
221*0acfe848SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
222*0acfe848SMaksim Panchenko	.byte	73                              # DW_AT_type
223*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
224*0acfe848SMaksim Panchenko	.byte	63                              # DW_AT_external
225*0acfe848SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
226*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
227*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
228*0acfe848SMaksim Panchenko	.byte	9                               # Abbreviation Code
229*0acfe848SMaksim Panchenko	.byte	5                               # DW_TAG_formal_parameter
230*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
231*0acfe848SMaksim Panchenko	.byte	2                               # DW_AT_location
232*0acfe848SMaksim Panchenko	.byte	23                              # DW_FORM_sec_offset
233*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_name
234*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
235*0acfe848SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
236*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
237*0acfe848SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
238*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
239*0acfe848SMaksim Panchenko	.byte	73                              # DW_AT_type
240*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
241*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
242*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
243*0acfe848SMaksim Panchenko	.byte	10                              # Abbreviation Code
244*0acfe848SMaksim Panchenko	.byte	29                              # DW_TAG_inlined_subroutine
245*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
246*0acfe848SMaksim Panchenko	.byte	49                              # DW_AT_abstract_origin
247*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
248*0acfe848SMaksim Panchenko	.byte	17                              # DW_AT_low_pc
249*0acfe848SMaksim Panchenko	.byte	1                               # DW_FORM_addr
250*0acfe848SMaksim Panchenko	.byte	18                              # DW_AT_high_pc
251*0acfe848SMaksim Panchenko	.byte	6                               # DW_FORM_data4
252*0acfe848SMaksim Panchenko	.byte	88                              # DW_AT_call_file
253*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
254*0acfe848SMaksim Panchenko	.byte	89                              # DW_AT_call_line
255*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
256*0acfe848SMaksim Panchenko	.byte	87                              # DW_AT_call_column
257*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
258*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
259*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
260*0acfe848SMaksim Panchenko	.byte	11                              # Abbreviation Code
261*0acfe848SMaksim Panchenko	.ascii	"\211\202\001"                  # DW_TAG_GNU_call_site
262*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
263*0acfe848SMaksim Panchenko	.byte	49                              # DW_AT_abstract_origin
264*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
265*0acfe848SMaksim Panchenko	.byte	17                              # DW_AT_low_pc
266*0acfe848SMaksim Panchenko	.byte	1                               # DW_FORM_addr
267*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
268*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
269*0acfe848SMaksim Panchenko	.byte	12                              # Abbreviation Code
270*0acfe848SMaksim Panchenko	.byte	46                              # DW_TAG_subprogram
271*0acfe848SMaksim Panchenko	.byte	1                               # DW_CHILDREN_yes
272*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_name
273*0acfe848SMaksim Panchenko	.byte	14                              # DW_FORM_strp
274*0acfe848SMaksim Panchenko	.byte	58                              # DW_AT_decl_file
275*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
276*0acfe848SMaksim Panchenko	.byte	59                              # DW_AT_decl_line
277*0acfe848SMaksim Panchenko	.byte	11                              # DW_FORM_data1
278*0acfe848SMaksim Panchenko	.byte	39                              # DW_AT_prototyped
279*0acfe848SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
280*0acfe848SMaksim Panchenko	.byte	60                              # DW_AT_declaration
281*0acfe848SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
282*0acfe848SMaksim Panchenko	.byte	63                              # DW_AT_external
283*0acfe848SMaksim Panchenko	.byte	25                              # DW_FORM_flag_present
284*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
285*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
286*0acfe848SMaksim Panchenko	.byte	13                              # Abbreviation Code
287*0acfe848SMaksim Panchenko	.byte	5                               # DW_TAG_formal_parameter
288*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
289*0acfe848SMaksim Panchenko	.byte	73                              # DW_AT_type
290*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
291*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
292*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
293*0acfe848SMaksim Panchenko	.byte	14                              # Abbreviation Code
294*0acfe848SMaksim Panchenko	.byte	15                              # DW_TAG_pointer_type
295*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
296*0acfe848SMaksim Panchenko	.byte	73                              # DW_AT_type
297*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
298*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
299*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
300*0acfe848SMaksim Panchenko	.byte	15                              # Abbreviation Code
301*0acfe848SMaksim Panchenko	.byte	38                              # DW_TAG_const_type
302*0acfe848SMaksim Panchenko	.byte	0                               # DW_CHILDREN_no
303*0acfe848SMaksim Panchenko	.byte	73                              # DW_AT_type
304*0acfe848SMaksim Panchenko	.byte	19                              # DW_FORM_ref4
305*0acfe848SMaksim Panchenko	.byte	0                               # EOM(1)
306*0acfe848SMaksim Panchenko	.byte	0                               # EOM(2)
307*0acfe848SMaksim Panchenko	.byte	0                               # EOM(3)
308*0acfe848SMaksim Panchenko	.section	.debug_info,"",@progbits
309*0acfe848SMaksim Panchenko.Lcu_begin0:
310*0acfe848SMaksim Panchenko	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
311*0acfe848SMaksim Panchenko.Ldebug_info_start0:
312*0acfe848SMaksim Panchenko	.short	4                               # DWARF version number
313*0acfe848SMaksim Panchenko	.long	.debug_abbrev                   # Offset Into Abbrev. Section
314*0acfe848SMaksim Panchenko	.byte	8                               # Address Size (in bytes)
315*0acfe848SMaksim Panchenko	.byte	1                               # Abbrev [1] 0xb:0xd4 DW_TAG_compile_unit
316*0acfe848SMaksim Panchenko	.long	.Linfo_string0                  # DW_AT_producer
317*0acfe848SMaksim Panchenko	.short	12                              # DW_AT_language
318*0acfe848SMaksim Panchenko	.long	.Linfo_string1                  # DW_AT_name
319*0acfe848SMaksim Panchenko	.long	.Lline_table_start0             # DW_AT_stmt_list
320*0acfe848SMaksim Panchenko	.long	.Linfo_string2                  # DW_AT_comp_dir
321*0acfe848SMaksim Panchenko	.quad	.Lfunc_begin0                   # DW_AT_low_pc
322*0acfe848SMaksim Panchenko	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
323*0acfe848SMaksim Panchenko	.byte	2                               # Abbrev [2] 0x2a:0x11 DW_TAG_variable
324*0acfe848SMaksim Panchenko	.long	59                              # DW_AT_type
325*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
326*0acfe848SMaksim Panchenko	.byte	4                               # DW_AT_decl_line
327*0acfe848SMaksim Panchenko	.byte	9                               # DW_AT_location
328*0acfe848SMaksim Panchenko	.byte	3
329*0acfe848SMaksim Panchenko	.quad	.L.str
330*0acfe848SMaksim Panchenko	.byte	3                               # Abbrev [3] 0x3b:0xc DW_TAG_array_type
331*0acfe848SMaksim Panchenko	.long	71                              # DW_AT_type
332*0acfe848SMaksim Panchenko	.byte	4                               # Abbrev [4] 0x40:0x6 DW_TAG_subrange_type
333*0acfe848SMaksim Panchenko	.long	78                              # DW_AT_type
334*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_count
335*0acfe848SMaksim Panchenko	.byte	0                               # End Of Children Mark
336*0acfe848SMaksim Panchenko	.byte	5                               # Abbrev [5] 0x47:0x7 DW_TAG_base_type
337*0acfe848SMaksim Panchenko	.long	.Linfo_string3                  # DW_AT_name
338*0acfe848SMaksim Panchenko	.byte	6                               # DW_AT_encoding
339*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_byte_size
340*0acfe848SMaksim Panchenko	.byte	6                               # Abbrev [6] 0x4e:0x7 DW_TAG_base_type
341*0acfe848SMaksim Panchenko	.long	.Linfo_string4                  # DW_AT_name
342*0acfe848SMaksim Panchenko	.byte	8                               # DW_AT_byte_size
343*0acfe848SMaksim Panchenko	.byte	7                               # DW_AT_encoding
344*0acfe848SMaksim Panchenko	.byte	7                               # Abbrev [7] 0x55:0x8 DW_TAG_subprogram
345*0acfe848SMaksim Panchenko	.long	.Linfo_string5                  # DW_AT_name
346*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
347*0acfe848SMaksim Panchenko	.byte	3                               # DW_AT_decl_line
348*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_inline
349*0acfe848SMaksim Panchenko	.byte	8                               # Abbrev [8] 0x5d:0x59 DW_TAG_subprogram
350*0acfe848SMaksim Panchenko	.quad	.Lfunc_begin0                   # DW_AT_low_pc
351*0acfe848SMaksim Panchenko	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
352*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_frame_base
353*0acfe848SMaksim Panchenko	.byte	87
354*0acfe848SMaksim Panchenko                                        # DW_AT_GNU_all_call_sites
355*0acfe848SMaksim Panchenko	.long	.Linfo_string7                  # DW_AT_name
356*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
357*0acfe848SMaksim Panchenko	.byte	7                               # DW_AT_decl_line
358*0acfe848SMaksim Panchenko                                        # DW_AT_prototyped
359*0acfe848SMaksim Panchenko	.long	205                             # DW_AT_type
360*0acfe848SMaksim Panchenko                                        # DW_AT_external
361*0acfe848SMaksim Panchenko	.byte	9                               # Abbrev [9] 0x76:0xf DW_TAG_formal_parameter
362*0acfe848SMaksim Panchenko	.long	.Ldebug_loc0                    # DW_AT_location
363*0acfe848SMaksim Panchenko	.long	.Linfo_string9                  # DW_AT_name
364*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
365*0acfe848SMaksim Panchenko	.byte	7                               # DW_AT_decl_line
366*0acfe848SMaksim Panchenko	.long	205                             # DW_AT_type
367*0acfe848SMaksim Panchenko	.byte	9                               # Abbrev [9] 0x85:0xf DW_TAG_formal_parameter
368*0acfe848SMaksim Panchenko	.long	.Ldebug_loc1                    # DW_AT_location
369*0acfe848SMaksim Panchenko	.long	.Linfo_string10                 # DW_AT_name
370*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
371*0acfe848SMaksim Panchenko	.byte	7                               # DW_AT_decl_line
372*0acfe848SMaksim Panchenko	.long	212                             # DW_AT_type
373*0acfe848SMaksim Panchenko	.byte	10                              # Abbrev [10] 0x94:0x14 DW_TAG_inlined_subroutine
374*0acfe848SMaksim Panchenko	.long	85                              # DW_AT_abstract_origin
375*0acfe848SMaksim Panchenko	.quad	.Ltmp2                          # DW_AT_low_pc
376*0acfe848SMaksim Panchenko	.long	.Ltmp5-.Ltmp2                   # DW_AT_high_pc
377*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_call_file
378*0acfe848SMaksim Panchenko	.byte	9                               # DW_AT_call_line
379*0acfe848SMaksim Panchenko	.byte	5                               # DW_AT_call_column
380*0acfe848SMaksim Panchenko	.byte	11                              # Abbrev [11] 0xa8:0xd DW_TAG_GNU_call_site
381*0acfe848SMaksim Panchenko	.long	182                             # DW_AT_abstract_origin
382*0acfe848SMaksim Panchenko	.quad	.Ltmp4                          # DW_AT_low_pc
383*0acfe848SMaksim Panchenko	.byte	0                               # End Of Children Mark
384*0acfe848SMaksim Panchenko	.byte	12                              # Abbrev [12] 0xb6:0xd DW_TAG_subprogram
385*0acfe848SMaksim Panchenko	.long	.Linfo_string6                  # DW_AT_name
386*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_decl_file
387*0acfe848SMaksim Panchenko	.byte	1                               # DW_AT_decl_line
388*0acfe848SMaksim Panchenko                                        # DW_AT_prototyped
389*0acfe848SMaksim Panchenko                                        # DW_AT_declaration
390*0acfe848SMaksim Panchenko                                        # DW_AT_external
391*0acfe848SMaksim Panchenko	.byte	13                              # Abbrev [13] 0xbd:0x5 DW_TAG_formal_parameter
392*0acfe848SMaksim Panchenko	.long	195                             # DW_AT_type
393*0acfe848SMaksim Panchenko	.byte	0                               # End Of Children Mark
394*0acfe848SMaksim Panchenko	.byte	14                              # Abbrev [14] 0xc3:0x5 DW_TAG_pointer_type
395*0acfe848SMaksim Panchenko	.long	200                             # DW_AT_type
396*0acfe848SMaksim Panchenko	.byte	15                              # Abbrev [15] 0xc8:0x5 DW_TAG_const_type
397*0acfe848SMaksim Panchenko	.long	71                              # DW_AT_type
398*0acfe848SMaksim Panchenko	.byte	5                               # Abbrev [5] 0xcd:0x7 DW_TAG_base_type
399*0acfe848SMaksim Panchenko	.long	.Linfo_string8                  # DW_AT_name
400*0acfe848SMaksim Panchenko	.byte	5                               # DW_AT_encoding
401*0acfe848SMaksim Panchenko	.byte	4                               # DW_AT_byte_size
402*0acfe848SMaksim Panchenko	.byte	14                              # Abbrev [14] 0xd4:0x5 DW_TAG_pointer_type
403*0acfe848SMaksim Panchenko	.long	217                             # DW_AT_type
404*0acfe848SMaksim Panchenko	.byte	14                              # Abbrev [14] 0xd9:0x5 DW_TAG_pointer_type
405*0acfe848SMaksim Panchenko	.long	71                              # DW_AT_type
406*0acfe848SMaksim Panchenko	.byte	0                               # End Of Children Mark
407*0acfe848SMaksim Panchenko.Ldebug_info_end0:
408*0acfe848SMaksim Panchenko	.section	.debug_str,"MS",@progbits,1
409*0acfe848SMaksim Panchenko.Linfo_string0:
410*0acfe848SMaksim Panchenko	.asciz	"clang version 15.0.7                                                " # string offset=0
411*0acfe848SMaksim Panchenko.Linfo_string1:
412*0acfe848SMaksim Panchenko	.asciz	"unreachable.c"                 # string offset=69
413*0acfe848SMaksim Panchenko.Linfo_string2:
414*0acfe848SMaksim Panchenko	.asciz	"."                             # string offset=83
415*0acfe848SMaksim Panchenko.Linfo_string3:
416*0acfe848SMaksim Panchenko	.asciz	"char"                          # string offset=85
417*0acfe848SMaksim Panchenko.Linfo_string4:
418*0acfe848SMaksim Panchenko	.asciz	"__ARRAY_SIZE_TYPE__"           # string offset=90
419*0acfe848SMaksim Panchenko.Linfo_string5:
420*0acfe848SMaksim Panchenko	.asciz	"foo"                           # string offset=110
421*0acfe848SMaksim Panchenko.Linfo_string6:
422*0acfe848SMaksim Panchenko	.asciz	"puts"                          # string offset=114
423*0acfe848SMaksim Panchenko.Linfo_string7:
424*0acfe848SMaksim Panchenko	.asciz	"main"                          # string offset=119
425*0acfe848SMaksim Panchenko.Linfo_string8:
426*0acfe848SMaksim Panchenko	.asciz	"int"                           # string offset=124
427*0acfe848SMaksim Panchenko.Linfo_string9:
428*0acfe848SMaksim Panchenko	.asciz	"argc"                          # string offset=128
429*0acfe848SMaksim Panchenko.Linfo_string10:
430*0acfe848SMaksim Panchenko	.asciz	"argv"                          # string offset=133
431*0acfe848SMaksim Panchenko	.section	.debug_line,"",@progbits
432*0acfe848SMaksim Panchenko.Lline_table_start0:
433