1da0c48c4Sopenharmony_ci#! /bin/sh
2da0c48c4Sopenharmony_ci# Copyright (C) 2012, 2013 Red Hat, Inc.
3da0c48c4Sopenharmony_ci# This file is part of elfutils.
4da0c48c4Sopenharmony_ci#
5da0c48c4Sopenharmony_ci# This file is free software; you can redistribute it and/or modify
6da0c48c4Sopenharmony_ci# it under the terms of the GNU General Public License as published by
7da0c48c4Sopenharmony_ci# the Free Software Foundation; either version 3 of the License, or
8da0c48c4Sopenharmony_ci# (at your option) any later version.
9da0c48c4Sopenharmony_ci#
10da0c48c4Sopenharmony_ci# elfutils is distributed in the hope that it will be useful, but
11da0c48c4Sopenharmony_ci# WITHOUT ANY WARRANTY; without even the implied warranty of
12da0c48c4Sopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13da0c48c4Sopenharmony_ci# GNU General Public License for more details.
14da0c48c4Sopenharmony_ci#
15da0c48c4Sopenharmony_ci# You should have received a copy of the GNU General Public License
16da0c48c4Sopenharmony_ci# along with this program.  If not, see <http://www.gnu.org/licenses/>.
17da0c48c4Sopenharmony_ci
18da0c48c4Sopenharmony_ci. $srcdir/test-subr.sh
19da0c48c4Sopenharmony_ci
20da0c48c4Sopenharmony_ci# common.h
21da0c48c4Sopenharmony_ci#
22da0c48c4Sopenharmony_ci# #include <stdio.h>
23da0c48c4Sopenharmony_ci#
24da0c48c4Sopenharmony_ci# struct foobar
25da0c48c4Sopenharmony_ci# {
26da0c48c4Sopenharmony_ci#   int foo;
27da0c48c4Sopenharmony_ci#   struct foobar *bar;
28da0c48c4Sopenharmony_ci# };
29da0c48c4Sopenharmony_ci#
30da0c48c4Sopenharmony_ci# extern int call_foo(struct foobar *foobar_struct_ptr);
31da0c48c4Sopenharmony_ci
32da0c48c4Sopenharmony_ci# main.c
33da0c48c4Sopenharmony_ci#
34da0c48c4Sopenharmony_ci# #include "common.h"
35da0c48c4Sopenharmony_ci#
36da0c48c4Sopenharmony_ci# int main(int argc, char ** argv)
37da0c48c4Sopenharmony_ci# {
38da0c48c4Sopenharmony_ci#   struct foobar b;
39da0c48c4Sopenharmony_ci#   b.foo = 42;
40da0c48c4Sopenharmony_ci#   b.bar = &b;
41da0c48c4Sopenharmony_ci#
42da0c48c4Sopenharmony_ci#   return call_foo(b.bar);
43da0c48c4Sopenharmony_ci# }
44da0c48c4Sopenharmony_ci
45da0c48c4Sopenharmony_ci# shared.c
46da0c48c4Sopenharmony_ci#
47da0c48c4Sopenharmony_ci# #include "common.h"
48da0c48c4Sopenharmony_ci#
49da0c48c4Sopenharmony_ci# int call_foo(struct foobar *fb)
50da0c48c4Sopenharmony_ci# {
51da0c48c4Sopenharmony_ci#   return fb->bar->foo - 42;
52da0c48c4Sopenharmony_ci# }
53da0c48c4Sopenharmony_ci
54da0c48c4Sopenharmony_ci# gcc -fPIC -g -c -Wall shared.c
55da0c48c4Sopenharmony_ci# gcc -shared -o libtestfile_multi_shared.so shared.o
56da0c48c4Sopenharmony_ci# gcc -g -o testfile_multi_main -L. -ltestfile_multi_shared main.c -Wl,-rpath,.
57da0c48c4Sopenharmony_ci# dwz -m testfile_multi.dwz testfile_multi_main libtestfile_multi_shared.so
58da0c48c4Sopenharmony_ci
59da0c48c4Sopenharmony_ci# main.c
60da0c48c4Sopenharmony_ci#
61da0c48c4Sopenharmony_ci# struct foobarbaz
62da0c48c4Sopenharmony_ci# {
63da0c48c4Sopenharmony_ci#   int counter;
64da0c48c4Sopenharmony_ci#   char *bookstore;
65da0c48c4Sopenharmony_ci# };
66da0c48c4Sopenharmony_ci#
67da0c48c4Sopenharmony_ci# int
68da0c48c4Sopenharmony_ci# main (int argc, char **argv)
69da0c48c4Sopenharmony_ci# {
70da0c48c4Sopenharmony_ci#   struct foobarbaz fbb;
71da0c48c4Sopenharmony_ci#   return 0;
72da0c48c4Sopenharmony_ci# }
73da0c48c4Sopenharmony_ci
74da0c48c4Sopenharmony_ci# gcc -g -o testfile-dwzstr main.c
75da0c48c4Sopenharmony_ci# cp testfile-dwzstr testfile-dwzstr.alt
76da0c48c4Sopenharmony_ci# dwz -m testfile-dwzstr.multi testfile-dwzstr testfile-dwzstr.alt
77da0c48c4Sopenharmony_ci
78da0c48c4Sopenharmony_citestfiles libtestfile_multi_shared.so testfile_multi_main testfile_multi.dwz
79da0c48c4Sopenharmony_citestfiles testfile-dwzstr testfile-dwzstr.multi
80da0c48c4Sopenharmony_ci
81da0c48c4Sopenharmony_citestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=info testfile_multi_main <<\EOF
82da0c48c4Sopenharmony_ci
83da0c48c4Sopenharmony_ciDWARF section [28] '.debug_info' at offset 0x1078:
84da0c48c4Sopenharmony_ci [Offset]
85da0c48c4Sopenharmony_ci Compilation unit at offset 0:
86da0c48c4Sopenharmony_ci Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
87da0c48c4Sopenharmony_ci [     b]  compile_unit         abbrev: 6
88da0c48c4Sopenharmony_ci           producer             (strp) "GNU C 4.7.0 20120507 (Red Hat 4.7.0-5) -mtune=generic -march=x86-64 -g"
89da0c48c4Sopenharmony_ci           language             (data1) C89 (1)
90da0c48c4Sopenharmony_ci           name                 (strp) "main.c"
91da0c48c4Sopenharmony_ci           comp_dir             (GNU_strp_alt) "/home/mark/src/tests/dwz"
92da0c48c4Sopenharmony_ci           low_pc               (addr) 0x00000000004006ac <main>
93da0c48c4Sopenharmony_ci           high_pc              (udata) 44 (0x00000000004006d8)
94da0c48c4Sopenharmony_ci           stmt_list            (sec_offset) 0
95da0c48c4Sopenharmony_ci [    26]    imported_unit        abbrev: 5
96da0c48c4Sopenharmony_ci             import               (GNU_ref_alt) [     b]
97da0c48c4Sopenharmony_ci [    2b]    pointer_type         abbrev: 1
98da0c48c4Sopenharmony_ci             byte_size            (data1) 8
99da0c48c4Sopenharmony_ci             type                 (GNU_ref_alt) [    53]
100da0c48c4Sopenharmony_ci [    31]    subprogram           abbrev: 3
101da0c48c4Sopenharmony_ci             external             (flag_present) yes
102da0c48c4Sopenharmony_ci             name                 (strp) "main"
103da0c48c4Sopenharmony_ci             decl_file            (data1) main.c (1)
104da0c48c4Sopenharmony_ci             decl_line            (data1) 3
105da0c48c4Sopenharmony_ci             prototyped           (flag_present) yes
106da0c48c4Sopenharmony_ci             type                 (GNU_ref_alt) [    3e]
107da0c48c4Sopenharmony_ci             low_pc               (addr) 0x00000000004006ac <main>
108da0c48c4Sopenharmony_ci             high_pc              (udata) 44 (0x00000000004006d8)
109da0c48c4Sopenharmony_ci             frame_base           (exprloc) 
110da0c48c4Sopenharmony_ci              [ 0] call_frame_cfa
111da0c48c4Sopenharmony_ci             GNU_all_tail_call_sites (flag_present) yes
112da0c48c4Sopenharmony_ci             sibling              (ref_udata) [    6e]
113da0c48c4Sopenharmony_ci [    48]      formal_parameter     abbrev: 8
114da0c48c4Sopenharmony_ci               name                 (strp) "argc"
115da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
116da0c48c4Sopenharmony_ci               decl_line            (data1) 3
117da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    3e]
118da0c48c4Sopenharmony_ci               location             (exprloc) 
119da0c48c4Sopenharmony_ci                [ 0] fbreg -36
120da0c48c4Sopenharmony_ci [    56]      formal_parameter     abbrev: 4
121da0c48c4Sopenharmony_ci               name                 (strp) "argv"
122da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
123da0c48c4Sopenharmony_ci               decl_line            (data1) 3
124da0c48c4Sopenharmony_ci               type                 (ref_udata) [    6e]
125da0c48c4Sopenharmony_ci               location             (exprloc) 
126da0c48c4Sopenharmony_ci                [ 0] fbreg -48
127da0c48c4Sopenharmony_ci [    61]      variable             abbrev: 7
128da0c48c4Sopenharmony_ci               name                 (string) "b"
129da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
130da0c48c4Sopenharmony_ci               decl_line            (data1) 5
131da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    5a]
132da0c48c4Sopenharmony_ci               location             (exprloc) 
133da0c48c4Sopenharmony_ci                [ 0] fbreg -32
134da0c48c4Sopenharmony_ci [    6e]    pointer_type         abbrev: 2
135da0c48c4Sopenharmony_ci             byte_size            (data1) 8
136da0c48c4Sopenharmony_ci             type                 (ref_udata) [    2b]
137da0c48c4Sopenharmony_ciEOF
138da0c48c4Sopenharmony_ci
139da0c48c4Sopenharmony_ci# Same as above, but find alt debug file in a .dwz subdir.
140da0c48c4Sopenharmony_cimkdir .dwz
141da0c48c4Sopenharmony_cimv testfile_multi.dwz .dwz
142da0c48c4Sopenharmony_citestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=info testfile_multi_main <<\EOF
143da0c48c4Sopenharmony_ci
144da0c48c4Sopenharmony_ciDWARF section [28] '.debug_info' at offset 0x1078:
145da0c48c4Sopenharmony_ci [Offset]
146da0c48c4Sopenharmony_ci Compilation unit at offset 0:
147da0c48c4Sopenharmony_ci Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
148da0c48c4Sopenharmony_ci [     b]  compile_unit         abbrev: 6
149da0c48c4Sopenharmony_ci           producer             (strp) "GNU C 4.7.0 20120507 (Red Hat 4.7.0-5) -mtune=generic -march=x86-64 -g"
150da0c48c4Sopenharmony_ci           language             (data1) C89 (1)
151da0c48c4Sopenharmony_ci           name                 (strp) "main.c"
152da0c48c4Sopenharmony_ci           comp_dir             (GNU_strp_alt) "/home/mark/src/tests/dwz"
153da0c48c4Sopenharmony_ci           low_pc               (addr) 0x00000000004006ac <main>
154da0c48c4Sopenharmony_ci           high_pc              (udata) 44 (0x00000000004006d8)
155da0c48c4Sopenharmony_ci           stmt_list            (sec_offset) 0
156da0c48c4Sopenharmony_ci [    26]    imported_unit        abbrev: 5
157da0c48c4Sopenharmony_ci             import               (GNU_ref_alt) [     b]
158da0c48c4Sopenharmony_ci [    2b]    pointer_type         abbrev: 1
159da0c48c4Sopenharmony_ci             byte_size            (data1) 8
160da0c48c4Sopenharmony_ci             type                 (GNU_ref_alt) [    53]
161da0c48c4Sopenharmony_ci [    31]    subprogram           abbrev: 3
162da0c48c4Sopenharmony_ci             external             (flag_present) yes
163da0c48c4Sopenharmony_ci             name                 (strp) "main"
164da0c48c4Sopenharmony_ci             decl_file            (data1) main.c (1)
165da0c48c4Sopenharmony_ci             decl_line            (data1) 3
166da0c48c4Sopenharmony_ci             prototyped           (flag_present) yes
167da0c48c4Sopenharmony_ci             type                 (GNU_ref_alt) [    3e]
168da0c48c4Sopenharmony_ci             low_pc               (addr) 0x00000000004006ac <main>
169da0c48c4Sopenharmony_ci             high_pc              (udata) 44 (0x00000000004006d8)
170da0c48c4Sopenharmony_ci             frame_base           (exprloc) 
171da0c48c4Sopenharmony_ci              [ 0] call_frame_cfa
172da0c48c4Sopenharmony_ci             GNU_all_tail_call_sites (flag_present) yes
173da0c48c4Sopenharmony_ci             sibling              (ref_udata) [    6e]
174da0c48c4Sopenharmony_ci [    48]      formal_parameter     abbrev: 8
175da0c48c4Sopenharmony_ci               name                 (strp) "argc"
176da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
177da0c48c4Sopenharmony_ci               decl_line            (data1) 3
178da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    3e]
179da0c48c4Sopenharmony_ci               location             (exprloc) 
180da0c48c4Sopenharmony_ci                [ 0] fbreg -36
181da0c48c4Sopenharmony_ci [    56]      formal_parameter     abbrev: 4
182da0c48c4Sopenharmony_ci               name                 (strp) "argv"
183da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
184da0c48c4Sopenharmony_ci               decl_line            (data1) 3
185da0c48c4Sopenharmony_ci               type                 (ref_udata) [    6e]
186da0c48c4Sopenharmony_ci               location             (exprloc) 
187da0c48c4Sopenharmony_ci                [ 0] fbreg -48
188da0c48c4Sopenharmony_ci [    61]      variable             abbrev: 7
189da0c48c4Sopenharmony_ci               name                 (string) "b"
190da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
191da0c48c4Sopenharmony_ci               decl_line            (data1) 5
192da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    5a]
193da0c48c4Sopenharmony_ci               location             (exprloc) 
194da0c48c4Sopenharmony_ci                [ 0] fbreg -32
195da0c48c4Sopenharmony_ci [    6e]    pointer_type         abbrev: 2
196da0c48c4Sopenharmony_ci             byte_size            (data1) 8
197da0c48c4Sopenharmony_ci             type                 (ref_udata) [    2b]
198da0c48c4Sopenharmony_ciEOF
199da0c48c4Sopenharmony_cimv .dwz/testfile_multi.dwz .
200da0c48c4Sopenharmony_cirmdir .dwz
201da0c48c4Sopenharmony_ci
202da0c48c4Sopenharmony_citestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=info libtestfile_multi_shared.so <<\EOF
203da0c48c4Sopenharmony_ci
204da0c48c4Sopenharmony_ciDWARF section [25] '.debug_info' at offset 0x106c:
205da0c48c4Sopenharmony_ci [Offset]
206da0c48c4Sopenharmony_ci Compilation unit at offset 0:
207da0c48c4Sopenharmony_ci Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
208da0c48c4Sopenharmony_ci [     b]  compile_unit         abbrev: 3
209da0c48c4Sopenharmony_ci           producer             (strp) "GNU C 4.7.0 20120507 (Red Hat 4.7.0-5) -fpreprocessed -mtune=generic -march=x86-64 -g -fPIC"
210da0c48c4Sopenharmony_ci           language             (data1) C89 (1)
211da0c48c4Sopenharmony_ci           name                 (strp) "shared.c"
212da0c48c4Sopenharmony_ci           comp_dir             (GNU_strp_alt) "/home/mark/src/tests/dwz"
213da0c48c4Sopenharmony_ci           low_pc               (addr) +0x0000000000000670 <call_foo>
214da0c48c4Sopenharmony_ci           high_pc              (udata) 23 (+0x0000000000000687)
215da0c48c4Sopenharmony_ci           stmt_list            (sec_offset) 0
216da0c48c4Sopenharmony_ci [    26]    imported_unit        abbrev: 2
217da0c48c4Sopenharmony_ci             import               (GNU_ref_alt) [     b]
218da0c48c4Sopenharmony_ci [    2b]    subprogram           abbrev: 1
219da0c48c4Sopenharmony_ci             external             (flag_present) yes
220da0c48c4Sopenharmony_ci             name                 (strp) "call_foo"
221da0c48c4Sopenharmony_ci             decl_file            (data1) shared.c (1)
222da0c48c4Sopenharmony_ci             decl_line            (data1) 3
223da0c48c4Sopenharmony_ci             prototyped           (flag_present) yes
224da0c48c4Sopenharmony_ci             type                 (GNU_ref_alt) [    3e]
225da0c48c4Sopenharmony_ci             low_pc               (addr) +0x0000000000000670 <call_foo>
226da0c48c4Sopenharmony_ci             high_pc              (udata) 23 (+0x0000000000000687)
227da0c48c4Sopenharmony_ci             frame_base           (exprloc) 
228da0c48c4Sopenharmony_ci              [ 0] call_frame_cfa
229da0c48c4Sopenharmony_ci             GNU_all_call_sites   (flag_present) yes
230da0c48c4Sopenharmony_ci [    41]      formal_parameter     abbrev: 4
231da0c48c4Sopenharmony_ci               name                 (string) "fb"
232da0c48c4Sopenharmony_ci               decl_file            (data1) shared.c (1)
233da0c48c4Sopenharmony_ci               decl_line            (data1) 3
234da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    76]
235da0c48c4Sopenharmony_ci               location             (exprloc) 
236da0c48c4Sopenharmony_ci                [ 0] fbreg -24
237da0c48c4Sopenharmony_ciEOF
238da0c48c4Sopenharmony_ci
239da0c48c4Sopenharmony_ci# Same as above, but find alt debug file in a .dwz subdir.
240da0c48c4Sopenharmony_cimkdir .dwz
241da0c48c4Sopenharmony_cimv testfile_multi.dwz .dwz
242da0c48c4Sopenharmony_citestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=info libtestfile_multi_shared.so <<\EOF
243da0c48c4Sopenharmony_ci
244da0c48c4Sopenharmony_ciDWARF section [25] '.debug_info' at offset 0x106c:
245da0c48c4Sopenharmony_ci [Offset]
246da0c48c4Sopenharmony_ci Compilation unit at offset 0:
247da0c48c4Sopenharmony_ci Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
248da0c48c4Sopenharmony_ci [     b]  compile_unit         abbrev: 3
249da0c48c4Sopenharmony_ci           producer             (strp) "GNU C 4.7.0 20120507 (Red Hat 4.7.0-5) -fpreprocessed -mtune=generic -march=x86-64 -g -fPIC"
250da0c48c4Sopenharmony_ci           language             (data1) C89 (1)
251da0c48c4Sopenharmony_ci           name                 (strp) "shared.c"
252da0c48c4Sopenharmony_ci           comp_dir             (GNU_strp_alt) "/home/mark/src/tests/dwz"
253da0c48c4Sopenharmony_ci           low_pc               (addr) +0x0000000000000670 <call_foo>
254da0c48c4Sopenharmony_ci           high_pc              (udata) 23 (+0x0000000000000687)
255da0c48c4Sopenharmony_ci           stmt_list            (sec_offset) 0
256da0c48c4Sopenharmony_ci [    26]    imported_unit        abbrev: 2
257da0c48c4Sopenharmony_ci             import               (GNU_ref_alt) [     b]
258da0c48c4Sopenharmony_ci [    2b]    subprogram           abbrev: 1
259da0c48c4Sopenharmony_ci             external             (flag_present) yes
260da0c48c4Sopenharmony_ci             name                 (strp) "call_foo"
261da0c48c4Sopenharmony_ci             decl_file            (data1) shared.c (1)
262da0c48c4Sopenharmony_ci             decl_line            (data1) 3
263da0c48c4Sopenharmony_ci             prototyped           (flag_present) yes
264da0c48c4Sopenharmony_ci             type                 (GNU_ref_alt) [    3e]
265da0c48c4Sopenharmony_ci             low_pc               (addr) +0x0000000000000670 <call_foo>
266da0c48c4Sopenharmony_ci             high_pc              (udata) 23 (+0x0000000000000687)
267da0c48c4Sopenharmony_ci             frame_base           (exprloc) 
268da0c48c4Sopenharmony_ci              [ 0] call_frame_cfa
269da0c48c4Sopenharmony_ci             GNU_all_call_sites   (flag_present) yes
270da0c48c4Sopenharmony_ci [    41]      formal_parameter     abbrev: 4
271da0c48c4Sopenharmony_ci               name                 (string) "fb"
272da0c48c4Sopenharmony_ci               decl_file            (data1) shared.c (1)
273da0c48c4Sopenharmony_ci               decl_line            (data1) 3
274da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    76]
275da0c48c4Sopenharmony_ci               location             (exprloc) 
276da0c48c4Sopenharmony_ci                [ 0] fbreg -24
277da0c48c4Sopenharmony_ciEOF
278da0c48c4Sopenharmony_cimv .dwz/testfile_multi.dwz .
279da0c48c4Sopenharmony_cirmdir .dwz
280da0c48c4Sopenharmony_ci
281da0c48c4Sopenharmony_citestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=info testfile-dwzstr <<\EOF
282da0c48c4Sopenharmony_ci
283da0c48c4Sopenharmony_ciDWARF section [28] '.debug_info' at offset 0x1088:
284da0c48c4Sopenharmony_ci [Offset]
285da0c48c4Sopenharmony_ci Compilation unit at offset 0:
286da0c48c4Sopenharmony_ci Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
287da0c48c4Sopenharmony_ci [     b]  compile_unit         abbrev: 5
288da0c48c4Sopenharmony_ci           producer             (GNU_strp_alt) "GNU C 4.7.2 20121109 (Red Hat 4.7.2-8) -mtune=generic -march=x86-64 -g"
289da0c48c4Sopenharmony_ci           language             (data1) C89 (1)
290da0c48c4Sopenharmony_ci           name                 (GNU_strp_alt) "main.c"
291da0c48c4Sopenharmony_ci           comp_dir             (GNU_strp_alt) "/home/mark/src/tests"
292da0c48c4Sopenharmony_ci           low_pc               (addr) 0x00000000004004ec <main>
293da0c48c4Sopenharmony_ci           high_pc              (udata) 18 (0x00000000004004fe)
294da0c48c4Sopenharmony_ci           stmt_list            (sec_offset) 0
295da0c48c4Sopenharmony_ci [    26]    imported_unit        abbrev: 2
296da0c48c4Sopenharmony_ci             import               (GNU_ref_alt) [     b]
297da0c48c4Sopenharmony_ci [    2b]    subprogram           abbrev: 4
298da0c48c4Sopenharmony_ci             external             (flag_present) yes
299da0c48c4Sopenharmony_ci             name                 (GNU_strp_alt) "main"
300da0c48c4Sopenharmony_ci             decl_file            (data1) main.c (1)
301da0c48c4Sopenharmony_ci             decl_line            (data1) 8
302da0c48c4Sopenharmony_ci             prototyped           (flag_present) yes
303da0c48c4Sopenharmony_ci             type                 (GNU_ref_alt) [    30]
304da0c48c4Sopenharmony_ci             low_pc               (addr) 0x00000000004004ec <main>
305da0c48c4Sopenharmony_ci             high_pc              (udata) 18 (0x00000000004004fe)
306da0c48c4Sopenharmony_ci             frame_base           (exprloc) 
307da0c48c4Sopenharmony_ci              [ 0] call_frame_cfa
308da0c48c4Sopenharmony_ci             GNU_all_call_sites   (flag_present) yes
309da0c48c4Sopenharmony_ci [    41]      formal_parameter     abbrev: 1
310da0c48c4Sopenharmony_ci               name                 (GNU_strp_alt) "argc"
311da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
312da0c48c4Sopenharmony_ci               decl_line            (data1) 8
313da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    30]
314da0c48c4Sopenharmony_ci               location             (exprloc) 
315da0c48c4Sopenharmony_ci                [ 0] fbreg -36
316da0c48c4Sopenharmony_ci [    4f]      formal_parameter     abbrev: 1
317da0c48c4Sopenharmony_ci               name                 (GNU_strp_alt) "argv"
318da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
319da0c48c4Sopenharmony_ci               decl_line            (data1) 8
320da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    41]
321da0c48c4Sopenharmony_ci               location             (exprloc) 
322da0c48c4Sopenharmony_ci                [ 0] fbreg -48
323da0c48c4Sopenharmony_ci [    5d]      variable             abbrev: 3
324da0c48c4Sopenharmony_ci               name                 (string) "fbb"
325da0c48c4Sopenharmony_ci               decl_file            (data1) main.c (1)
326da0c48c4Sopenharmony_ci               decl_line            (data1) 10
327da0c48c4Sopenharmony_ci               type                 (GNU_ref_alt) [    14]
328da0c48c4Sopenharmony_ci               location             (exprloc) 
329da0c48c4Sopenharmony_ci                [ 0] fbreg -32
330da0c48c4Sopenharmony_ciEOF
331da0c48c4Sopenharmony_ci
332da0c48c4Sopenharmony_ciexit 0
333