1/* Copyright 2010-2020 Free Software Foundation, Inc.
2
3   This program is free software; you can redistribute it and/or modify
4   it under the terms of the GNU General Public License as published by
5   the Free Software Foundation; either version 3 of the License, or
6   (at your option) any later version.
7
8   This program is distributed in the hope that it will be useful,
9   but WITHOUT ANY WARRANTY; without even the implied warranty of
10   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11   GNU General Public License for more details.
12
13   You should have received a copy of the GNU General Public License
14   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
15
16/* Compiled from:
17
18    namespace N
19    {
20      class C
21      {
22      public:
23        typedef void (*t) (C);
24        C (t) {}
25      };
26      typedef C::t u;
27      u f;
28      C c (f);
29    };
30
31    int
32    main ()
33    {
34      return 0;
35    }
36*/
37
38	.text
39text_start:
40_ZN1N1cE:
41	/* Valid function must have non-empty PC range.  */
42	.4byte	0
43text_end:
44
45	.section	.debug_info
46d:
47	.4byte	.Ldebug_info_end - 1f /* Length of CU info */
481:
49	.2byte	0x2		/* DWARF version number */
50	.4byte	.Ldebug_abbrev0	/* Abbrev offset */
51	.byte	0x4		/* Pointer size */
52dieb:	.uleb128 0x1		/* DW_TAG_compile_unit */
53	.4byte	.LASF4		/* DW_AT_producer */
54	.byte	0x4		/* DW_AT_language */
55	.4byte	.LASF5		/* DW_AT_name */
56	.4byte	.LASF6		/* DW_AT_comp_dir */
57	.4byte	text_start	/* DW_AT_low_pc */
58	.4byte	text_end	/* DW_AT_high_pc */
59	.4byte	text_start	/* DW_AT_entry_pc */
60die29:	.uleb128 0x2		/* DW_TAG_namespace */
61	.string	"N"		/* DW_AT_name */
62die32:	.uleb128 0x3		/* DW_TAG_class_type */
63	.string	"C"		/* DW_AT_name */
64	.byte	0x1		/* DW_AT_declaration */
65die36:	.uleb128 0x4		/* DW_TAG_typedef */
66	.string	"u"		/* DW_AT_name */
67	.4byte	die7e-d		/* DW_AT_type */
68die3f:	.uleb128 0x5		/* DW_TAG_variable */
69	.string	"f"		/* DW_AT_name */
70	.4byte	.LASF0		/* DW_AT_MIPS_linkage_name */
71	.4byte	die36-d		/* DW_AT_type */
72	.byte	0x1		/* DW_AT_external */
73	.byte	0x1		/* DW_AT_declaration */
74die4e:	.uleb128 0x5		/* DW_TAG_variable */
75	.string	"c"		/* DW_AT_name */
76	.4byte	.LASF1		/* DW_AT_MIPS_linkage_name */
77	.4byte	die5e-d		/* DW_AT_type */
78	.byte	0x1		/* DW_AT_external */
79	.byte	0x1		/* DW_AT_declaration */
80	.byte	0x0
81die5e:	.uleb128 0x6		/* DW_TAG_class_type */
82	.4byte	die32-d		/* DW_AT_specification */
83	.byte	0x1		/* DW_AT_byte_size */
84die6a:	.uleb128 0x7		/* DW_TAG_subprogram */
85	.byte	0x1		/* DW_AT_external */
86	.string	"C"		/* DW_AT_name */
87	.byte	0x1		/* DW_AT_declaration */
88die71:	.uleb128 0x8		/* DW_TAG_formal_parameter */
89	.4byte	die8f-d		/* DW_AT_type */
90	.byte	0x1		/* DW_AT_artificial */
91die77:	.uleb128 0x9		/* DW_TAG_formal_parameter */
92	.4byte	die7e-d		/* DW_AT_type */
93	.byte	0x0
94	.byte	0x0
95die7e:	.uleb128 0xa		/* DW_TAG_pointer_type */
96	.byte	PTRBITS / 8	/* DW_AT_byte_size */
97	.4byte	die84-d		/* DW_AT_type */
98die84:	.uleb128 0xb		/* DW_TAG_subroutine_type */
99die89:	.uleb128 0x9		/* DW_TAG_formal_parameter */
100	.4byte	die5e-d		/* DW_AT_type */
101	.byte	0x0
102die8f:	.uleb128 0xa		/* DW_TAG_pointer_type */
103	.byte	PTRBITS / 8	/* DW_AT_byte_size */
104	.4byte	die5e-d		/* DW_AT_type */
105die95:	.uleb128 0xc		/* DW_TAG_subprogram */
106	.4byte	die6a-d		/* DW_AT_specification */
107	.byte	0x2		/* DW_AT_inline */
108die9f:	.uleb128 0xd		/* DW_TAG_formal_parameter */
109	.4byte	.LASF7		/* DW_AT_name */
110	.4byte	dieaf-d		/* DW_AT_type */
111	.byte	0x1		/* DW_AT_artificial */
112diea9:	.uleb128 0x9		/* DW_TAG_formal_parameter */
113	.4byte	die7e-d		/* DW_AT_type */
114	.byte	0x0
115dieaf:	.uleb128 0xe		/* DW_TAG_const_type */
116	.4byte	die8f-d		/* DW_AT_type */
117dieb4:	.uleb128 0xf		/* DW_TAG_subprogram */
118	.4byte	die95-d		/* DW_AT_abstract_origin */
119	.4byte	_ZN1N1cE	/* DW_AT_low_pc */
120	.4byte	_ZN1N1cE + (text_end - text_start)
121				/* DW_AT_high_pc */
122diec9:	.uleb128 0x10		/* DW_TAG_subprogram */
123	.4byte	die9f-d		/* DW_AT_abstract_origin */
124	.byte	2f-1f		/* DW_AT_location */
1251:
126	.byte	0x50		/* DW_OP_reg0 */
1272:
128died1:	.uleb128 0x10		/* DW_TAG_formal_parameter */
129	.4byte	diea9-d		/* DW_AT_abstract_origin */
130	.byte	2f-1f		/* DW_AT_location */
1311:
132	.byte	0x51		/* DW_OP_reg1 */
1332:
134	.byte	0x0
135dieda:	.uleb128 0x11		/* DW_TAG_subprogram */
136	.byte	0x1		/* DW_AT_external */
137	.4byte	.LASF8		/* DW_AT_name */
138	.4byte	dief2-d		/* DW_AT_type */
139	.4byte	_ZN1N1cE	/* DW_AT_low_pc */
140	.4byte	_ZN1N1cE + (text_end - text_start)
141				/* DW_AT_high_pc */
142dief2:	.uleb128 0x12		/* DW_TAG_base_type */
143	.byte	0x4		/* DW_AT_byte_size */
144	.byte	0x5		/* DW_AT_encoding */
145	.string	"int"		/* DW_AT_name */
146die149:	.uleb128 0x16		/* DW_TAG_variable */
147	.4byte	die4e-d		/* DW_AT_specification */
148	.byte	0x5		/* DW_AT_location */
149	.byte	0x3
150	.4byte	_ZN1N1cE
151	.byte	0x0
152.Ldebug_info_end:
153	.section	.debug_abbrev
154.Ldebug_abbrev0:
155	.uleb128 0x1		/* abbrev code*/
156	.uleb128 0x11		/* DW_TAG_compile_unit */
157	.byte	0x1		/* DW_children_yes */
158	.uleb128 0x25		/* DW_AT_producer*/
159	.uleb128 0xe		/* DW_FORM_strp */
160	.uleb128 0x13		/* DW_AT_language */
161	.uleb128 0xb		/* DW_FORM_data1 */
162	.uleb128 0x3		/* DW_AT_name */
163	.uleb128 0xe		/* DW_FORM_strp */
164	.uleb128 0x1b		/* DW_AT_comp_dir */
165	.uleb128 0xe		/* DW_FORM_strp */
166	.uleb128 0x11		/* DW_AT_low_pc */
167	.uleb128 0x1		/* DW_FORM_addr */
168	.uleb128 0x12		/* DW_AT_high_pc */
169	.uleb128 0x1		/* DW_FORM_addr */
170	.uleb128 0x52		/* DW_AT_entry_pc */
171	.uleb128 0x1		/* DW_FORM_addr */
172	.byte	0x0
173	.byte	0x0
174	.uleb128 0x2		/* abbrev code */
175	.uleb128 0x39		/* DW_TAG_namespace */
176	.byte	0x1		/* DW_children_yes */
177	.uleb128 0x3		/* DW_AT_name */
178	.uleb128 0x8		/* DW_FORM_string */
179	.byte	0x0
180	.byte	0x0
181	.uleb128 0x3		/* abbrev code */
182	.uleb128 0x2		/* DW_TAG_class_type */
183	.byte	0x0		/* DW_has_children_no */
184	.uleb128 0x3		/* DW_AT_name */
185	.uleb128 0x8		/* DW_FORM_string */
186	.uleb128 0x3c		/* DW_AT_declaration */
187	.uleb128 0xc		/* DW_FORM_flag */
188	.byte	0x0
189	.byte	0x0
190	.uleb128 0x4		/* abbrev code */
191	.uleb128 0x16		/* DW_TAG_typedef */
192	.byte	0x0		/* DW_has_children_no */
193	.uleb128 0x3		/* DW_AT_name */
194	.uleb128 0x8		/* DW_FORM_string */
195	.uleb128 0x49		/* DW_AT_type */
196	.uleb128 0x13		/* DW_FORM_ref4 */
197	.byte	0x0
198	.byte	0x0
199	.uleb128 0x5		/* abbrev code */
200	.uleb128 0x34		/* DW_TAG_variable */
201	.byte	0x0		/* DW_has_children_no */
202	.uleb128 0x3		/* DW_AT_name */
203	.uleb128 0x8		/* DW_FORM_string */
204	.uleb128 0x2007		/* DW_AT_MIPS_linkage_name */
205	.uleb128 0xe		/* DW_FORM_strp */
206	.uleb128 0x49		/* DW_AT_TYPE */
207	.uleb128 0x13		/* DW_FORM_ref4 */
208	.uleb128 0x3f		/* DW_AT_external */
209	.uleb128 0xc		/* DW_FORM_flag */
210	.uleb128 0x3c		/* DW_AT_declaration */
211	.uleb128 0xc		/* DW_FORM_flag */
212	.byte	0x0
213	.byte	0x0
214	.uleb128 0x6		/* abbrev code */
215	.uleb128 0x2		/* DW_TAG_class_type */
216	.byte	0x1		/* DW_has_children_yes */
217	.uleb128 0x47		/* DW_AT_specification */
218	.uleb128 0x13		/* DW_FORM_ref4 */
219	.uleb128 0xb		/* DW_AT_byte_size */
220	.uleb128 0xb		/* DW_FORM_data1 */
221	.byte	0x0
222	.byte	0x0
223	.uleb128 0x7		/* abbrev code */
224	.uleb128 0x2e		/* DW_TAG_subprogra */
225	.byte	0x1		/* DW_has_children_yes */
226	.uleb128 0x3f		/* DW_AT_external */
227	.uleb128 0xc		/* DW_FORM_flag */
228	.uleb128 0x3		/* DW_AT_name */
229	.uleb128 0x8		/* DW_FORM_string */
230	.uleb128 0x3c		/* DW_AT_declaration */
231	.uleb128 0xc		/* DW_FORM_flag */
232	.byte	0x0
233	.byte	0x0
234	.uleb128 0x8		/* abbrev code */
235	.uleb128 0x5		/* DW_TAG_formal_parameter */
236	.byte	0x0		/* DW_has_children_no */
237	.uleb128 0x49		/* DW_AT_type */
238	.uleb128 0x13		/* DW_FORM_ref4 */
239	.uleb128 0x34		/* DW_AT_artificial */
240	.uleb128 0xc		/* DW_FORM_flag */
241	.byte	0x0
242	.byte	0x0
243	.uleb128 0x9		/* abbrev code */
244	.uleb128 0x5		/* DW_TAG_formal_parameter */
245	.byte	0x0		/* DW_has_children_no */
246	.uleb128 0x49		/* DW_AT_type */
247	.uleb128 0x13		/* DW_FORM_ref4 */
248	.byte	0x0
249	.byte	0x0
250	.uleb128 0xa		/* abbrev code */
251	.uleb128 0xf		/* DW_TAG_pointer_type */
252	.byte	0x0		/* DW_has_children_no */
253	.uleb128 0xb		/* DW_AT_byte_size */
254	.uleb128 0xb		/* DW_FORM_data1 */
255	.uleb128 0x49		/* DW_AT_type */
256	.uleb128 0x13		/* DW_FORM_ref4 */
257	.byte	0x0
258	.byte	0x0
259	.uleb128 0xb		/* abbrev code */
260	.uleb128 0x15		/* DW_TAG_subroutine_type */
261	.byte	0x1		/* DW_has_children_yes */
262	.byte	0x0
263	.byte	0x0
264	.uleb128 0xc		/* abbrev code */
265	.uleb128 0x2e		/* DW_TAG_subprogram */
266	.byte	0x1		/* DW_has_children_yes */
267	.uleb128 0x47		/* DW_AT_specification */
268	.uleb128 0x13		/* DW_FORM_ref4 */
269	.uleb128 0x20		/* DW_AT_inline */
270	.uleb128 0xb		/* DW_FORM_data1 */
271	.byte	0x0
272	.byte	0x0
273	.uleb128 0xd		/* abbrev code */
274	.uleb128 0x5		/* DW_TAG_formal_parameter */
275	.byte	0x0		/* DW_has_children_no */
276	.uleb128 0x3		/* DW_AT_name */
277	.uleb128 0xe		/* DW_FORM_strp */
278	.uleb128 0x49		/* DW_AT_type */
279	.uleb128 0x13		/* DW_FORM_ref4 */
280	.uleb128 0x34		/* DW_AT_artificial */
281	.uleb128 0xc		/* DW_FORM_flag */
282	.byte	0x0
283	.byte	0x0
284	.uleb128 0xe		/* abbrev code */
285	.uleb128 0x26		/* DW_TAG_const_type */
286	.byte	0x0		/* DW_has_children_no */
287	.uleb128 0x49		/* DW_AT_type */
288	.uleb128 0x13		/* DW_FORM_ref4 */
289	.byte	0x0
290	.byte	0x0
291	.uleb128 0xf		/* abbrev code */
292	.uleb128 0x2e		/* DW_TAG_subprogram */
293	.byte	0x1		/* DW_has_children_yes */
294	.uleb128 0x31		/* DW_AT_abstract_origin */
295	.uleb128 0x13		/* DW_FORM_ref4 */
296	.uleb128 0x11		/* DW_AT_low_pc */
297	.uleb128 0x1		/* DW_FORM_addr */
298	.uleb128 0x12		/* DW_AT_high_pc */
299	.uleb128 0x1		/* DW_FORM_addr */
300	.byte	0x0
301	.byte	0x0
302	.uleb128 0x10		/* abbrev code */
303	.uleb128 0x5		/* DW_TAG_formal_parameter */
304	.byte	0x0		/* DW_has_children_no */
305	.uleb128 0x31		/* DW_AT_abstract_origin */
306	.uleb128 0x13		/* DW_FORM_ref4 */
307	.uleb128 0x2		/* DW_AT_location */
308	.uleb128 0xa		/* DW_FORM_block1 */
309	.byte	0x0
310	.byte	0x0
311	.uleb128 0x11		/* abbrev code */
312	.uleb128 0x2e		/* DW_TAG_subprogram */
313	.byte	0x0		/* DW_has_children_no */
314	.uleb128 0x3f		/* DW_AT_external */
315	.uleb128 0xc		/* DW_FORM_flag */
316	.uleb128 0x3		/* DW_AT_name */
317	.uleb128 0xe		/* DW_FORM_strp */
318	.uleb128 0x49		/* DW_AT_type */
319	.uleb128 0x13		/* DW_FORM_ref4 */
320	.uleb128 0x11		/* DW_AT_low_pc */
321	.uleb128 0x1		/* DW_FORM_addr */
322	.uleb128 0x12		/* DW_AT_high_pc */
323	.uleb128 0x1		/* DW_FORM_addr */
324	.byte	0x0
325	.byte	0x0
326	.uleb128 0x12		/* abbrev code */
327	.uleb128 0x24		/* DW_TAG_base_type */
328	.byte	0x0		/* DW_has_children_no */
329	.uleb128 0xb		/* DW_AT_byte_size */
330	.uleb128 0xb		/* DW_FORM_data1 */
331	.uleb128 0x3e		/* DW_AT_encoding */
332	.uleb128 0xb		/* DW_FORM_data1 */
333	.uleb128 0x3		/* DW_AT_name */
334	.uleb128 0x8		/* DW_FORM_string */
335	.byte	0x0
336	.byte	0x0
337	.uleb128 0x16		/* abbrev code */
338	.uleb128 0x34		/* DW_TAG_variable */
339	.byte	0x0		/* DW_has_children_no */
340	.uleb128 0x47		/* DW_AT_specification */
341	.uleb128 0x13		/* DW_FORM_ref4 */
342	.uleb128 0x2		/* DW_AT_location */
343	.uleb128 0xa		/* DW_FORM_block1 */
344	.byte	0x0
345	.byte	0x0
346	.byte	0x0
347	.section	.debug_str
348.LASF0:
349	.string	"_ZN1N1fE"
350.LASF7:
351	.string	"this"
352.LASF6:
353	.string	""
354.LASF8:
355	.string	"main"
356.LASF1:
357	.string	"_ZN1N1cE"
358.LASF5:
359	.string	"pr11465.cc"
360.LASF4:
361	.string	"GNU C++ 4.4.2"
362	.ident	"GCC: (GNU) 4.4.2"
363