pr11465.S revision 1.1
1/* Copyright 2010-2014 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	.byte 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 + 1	/* DW_AT_high_pc */
121diec9:	.uleb128 0x10		/* DW_TAG_subprogram */
122	.4byte	die9f-d		/* DW_AT_abstract_origin */
123	.byte	2f-1f		/* DW_AT_location */
1241:
125	.byte	0x50		/* DW_OP_reg0 */
1262:
127died1:	.uleb128 0x10		/* DW_TAG_formal_parameter */
128	.4byte	diea9-d		/* DW_AT_abstract_origin */
129	.byte	2f-1f		/* DW_AT_location */
1301:
131	.byte	0x51		/* DW_OP_reg1 */
1322:
133	.byte	0x0
134dieda:	.uleb128 0x11		/* DW_TAG_subprogram */
135	.byte	0x1		/* DW_AT_external */
136	.4byte	.LASF8		/* DW_AT_name */
137	.4byte	dief2-d		/* DW_AT_type */
138	.4byte	_ZN1N1cE	/* DW_AT_low_pc */
139	.4byte	_ZN1N1cE + 1	/* DW_AT_high_pc */
140dief2:	.uleb128 0x12		/* DW_TAG_base_type */
141	.byte	0x4		/* DW_AT_byte_size */
142	.byte	0x5		/* DW_AT_encoding */
143	.string	"int"		/* DW_AT_name */
144die149:	.uleb128 0x16		/* DW_TAG_variable */
145	.4byte	die4e-d		/* DW_AT_specification */
146	.byte	0x5		/* DW_AT_location */
147	.byte	0x3
148	.4byte	_ZN1N1cE
149	.byte	0x0
150.Ldebug_info_end:
151	.section	.debug_abbrev
152.Ldebug_abbrev0:
153	.uleb128 0x1		/* abbrev code*/
154	.uleb128 0x11		/* DW_TAG_compile_unit */
155	.byte	0x1		/* DW_children_yes */
156	.uleb128 0x25		/* DW_AT_producer*/
157	.uleb128 0xe		/* DW_FORM_strp */
158	.uleb128 0x13		/* DW_AT_language */
159	.uleb128 0xb		/* DW_FORM_data1 */
160	.uleb128 0x3		/* DW_AT_name */
161	.uleb128 0xe		/* DW_FORM_strp */
162	.uleb128 0x1b		/* DW_AT_comp_dir */
163	.uleb128 0xe		/* DW_FORM_strp */
164	.uleb128 0x11		/* DW_AT_low_pc */
165	.uleb128 0x1		/* DW_FORM_addr */
166	.uleb128 0x12		/* DW_AT_high_pc */
167	.uleb128 0x1		/* DW_FORM_addr */
168	.uleb128 0x52		/* DW_AT_entry_pc */
169	.uleb128 0x1		/* DW_FORM_addr */
170	.byte	0x0
171	.byte	0x0
172	.uleb128 0x2		/* abbrev code */
173	.uleb128 0x39		/* DW_TAG_namespace */
174	.byte	0x1		/* DW_children_yes */
175	.uleb128 0x3		/* DW_AT_name */
176	.uleb128 0x8		/* DW_FORM_string */
177	.byte	0x0
178	.byte	0x0
179	.uleb128 0x3		/* abbrev code */
180	.uleb128 0x2		/* DW_TAG_class_type */
181	.byte	0x0		/* DW_has_children_no */
182	.uleb128 0x3		/* DW_AT_name */
183	.uleb128 0x8		/* DW_FORM_string */
184	.uleb128 0x3c		/* DW_AT_declaration */
185	.uleb128 0xc		/* DW_FORM_flag */
186	.byte	0x0
187	.byte	0x0
188	.uleb128 0x4		/* abbrev code */
189	.uleb128 0x16		/* DW_TAG_typedef */
190	.byte	0x0		/* DW_has_children_no */
191	.uleb128 0x3		/* DW_AT_name */
192	.uleb128 0x8		/* DW_FORM_string */
193	.uleb128 0x49		/* DW_AT_type */
194	.uleb128 0x13		/* DW_FORM_ref4 */
195	.byte	0x0
196	.byte	0x0
197	.uleb128 0x5		/* abbrev code */
198	.uleb128 0x34		/* DW_TAG_variable */
199	.byte	0x0		/* DW_has_children_no */
200	.uleb128 0x3		/* DW_AT_name */
201	.uleb128 0x8		/* DW_FORM_string */
202	.uleb128 0x2007		/* DW_AT_MIPS_linkage_name */
203	.uleb128 0xe		/* DW_FORM_strp */
204	.uleb128 0x49		/* DW_AT_TYPE */
205	.uleb128 0x13		/* DW_FORM_ref4 */
206	.uleb128 0x3f		/* DW_AT_external */
207	.uleb128 0xc		/* DW_FORM_flag */
208	.uleb128 0x3c		/* DW_AT_declaration */
209	.uleb128 0xc		/* DW_FORM_flag */
210	.byte	0x0
211	.byte	0x0
212	.uleb128 0x6		/* abbrev code */
213	.uleb128 0x2		/* DW_TAG_class_type */
214	.byte	0x1		/* DW_has_children_yes */
215	.uleb128 0x47		/* DW_AT_specification */
216	.uleb128 0x13		/* DW_FORM_ref4 */
217	.uleb128 0xb		/* DW_AT_byte_size */
218	.uleb128 0xb		/* DW_FORM_data1 */
219	.byte	0x0
220	.byte	0x0
221	.uleb128 0x7		/* abbrev code */
222	.uleb128 0x2e		/* DW_TAG_subprogra */
223	.byte	0x1		/* DW_has_children_yes */
224	.uleb128 0x3f		/* DW_AT_external */
225	.uleb128 0xc		/* DW_FORM_flag */
226	.uleb128 0x3		/* DW_AT_name */
227	.uleb128 0x8		/* DW_FORM_string */
228	.uleb128 0x3c		/* DW_AT_declaration */
229	.uleb128 0xc		/* DW_FORM_flag */
230	.byte	0x0
231	.byte	0x0
232	.uleb128 0x8		/* abbrev code */
233	.uleb128 0x5		/* DW_TAG_formal_parameter */
234	.byte	0x0		/* DW_has_children_no */
235	.uleb128 0x49		/* DW_AT_type */
236	.uleb128 0x13		/* DW_FORM_ref4 */
237	.uleb128 0x34		/* DW_AT_artificial */
238	.uleb128 0xc		/* DW_FORM_flag */
239	.byte	0x0
240	.byte	0x0
241	.uleb128 0x9		/* abbrev code */
242	.uleb128 0x5		/* DW_TAG_formal_parameter */
243	.byte	0x0		/* DW_has_children_no */
244	.uleb128 0x49		/* DW_AT_type */
245	.uleb128 0x13		/* DW_FORM_ref4 */
246	.byte	0x0
247	.byte	0x0
248	.uleb128 0xa		/* abbrev code */
249	.uleb128 0xf		/* DW_TAG_pointer_type */
250	.byte	0x0		/* DW_has_children_no */
251	.uleb128 0xb		/* DW_AT_byte_size */
252	.uleb128 0xb		/* DW_FORM_data1 */
253	.uleb128 0x49		/* DW_AT_type */
254	.uleb128 0x13		/* DW_FORM_ref4 */
255	.byte	0x0
256	.byte	0x0
257	.uleb128 0xb		/* abbrev code */
258	.uleb128 0x15		/* DW_TAG_subroutine_type */
259	.byte	0x1		/* DW_has_children_yes */
260	.byte	0x0
261	.byte	0x0
262	.uleb128 0xc		/* abbrev code */
263	.uleb128 0x2e		/* DW_TAG_subprogram */
264	.byte	0x1		/* DW_has_children_yes */
265	.uleb128 0x47		/* DW_AT_specification */
266	.uleb128 0x13		/* DW_FORM_ref4 */
267	.uleb128 0x20		/* DW_AT_inline */
268	.uleb128 0xb		/* DW_FORM_data1 */
269	.byte	0x0
270	.byte	0x0
271	.uleb128 0xd		/* abbrev code */
272	.uleb128 0x5		/* DW_TAG_formal_parameter */
273	.byte	0x0		/* DW_has_children_no */
274	.uleb128 0x3		/* DW_AT_name */
275	.uleb128 0xe		/* DW_FORM_strp */
276	.uleb128 0x49		/* DW_AT_type */
277	.uleb128 0x13		/* DW_FORM_ref4 */
278	.uleb128 0x34		/* DW_AT_artificial */
279	.uleb128 0xc		/* DW_FORM_flag */
280	.byte	0x0
281	.byte	0x0
282	.uleb128 0xe		/* abbrev code */
283	.uleb128 0x26		/* DW_TAG_const_type */
284	.byte	0x0		/* DW_has_children_no */
285	.uleb128 0x49		/* DW_AT_type */
286	.uleb128 0x13		/* DW_FORM_ref4 */
287	.byte	0x0
288	.byte	0x0
289	.uleb128 0xf		/* abbrev code */
290	.uleb128 0x2e		/* DW_TAG_subprogram */
291	.byte	0x1		/* DW_has_children_yes */
292	.uleb128 0x31		/* DW_AT_abstract_origin */
293	.uleb128 0x13		/* DW_FORM_ref4 */
294	.uleb128 0x11		/* DW_AT_low_pc */
295	.uleb128 0x1		/* DW_FORM_addr */
296	.uleb128 0x12		/* DW_AT_high_pc */
297	.uleb128 0x1		/* DW_FORM_addr */
298	.byte	0x0
299	.byte	0x0
300	.uleb128 0x10		/* abbrev code */
301	.uleb128 0x5		/* DW_TAG_formal_parameter */
302	.byte	0x0		/* DW_has_children_no */
303	.uleb128 0x31		/* DW_AT_abstract_origin */
304	.uleb128 0x13		/* DW_FORM_ref4 */
305	.uleb128 0x2		/* DW_AT_location */
306	.uleb128 0xa		/* DW_FORM_block1 */
307	.byte	0x0
308	.byte	0x0
309	.uleb128 0x11		/* abbrev code */
310	.uleb128 0x2e		/* DW_TAG_subprogram */
311	.byte	0x0		/* DW_has_children_no */
312	.uleb128 0x3f		/* DW_AT_external */
313	.uleb128 0xc		/* DW_FORM_flag */
314	.uleb128 0x3		/* DW_AT_name */
315	.uleb128 0xe		/* DW_FORM_strp */
316	.uleb128 0x49		/* DW_AT_type */
317	.uleb128 0x13		/* DW_FORM_ref4 */
318	.uleb128 0x11		/* DW_AT_low_pc */
319	.uleb128 0x1		/* DW_FORM_addr */
320	.uleb128 0x12		/* DW_AT_high_pc */
321	.uleb128 0x1		/* DW_FORM_addr */
322	.byte	0x0
323	.byte	0x0
324	.uleb128 0x12		/* abbrev code */
325	.uleb128 0x24		/* DW_TAG_base_type */
326	.byte	0x0		/* DW_has_children_no */
327	.uleb128 0xb		/* DW_AT_byte_size */
328	.uleb128 0xb		/* DW_FORM_data1 */
329	.uleb128 0x3e		/* DW_AT_encoding */
330	.uleb128 0xb		/* DW_FORM_data1 */
331	.uleb128 0x3		/* DW_AT_name */
332	.uleb128 0x8		/* DW_FORM_string */
333	.byte	0x0
334	.byte	0x0
335	.uleb128 0x16		/* abbrev code */
336	.uleb128 0x34		/* DW_TAG_variable */
337	.byte	0x0		/* DW_has_children_no */
338	.uleb128 0x47		/* DW_AT_specification */
339	.uleb128 0x13		/* DW_FORM_ref4 */
340	.uleb128 0x2		/* DW_AT_location */
341	.uleb128 0xa		/* DW_FORM_block1 */
342	.byte	0x0
343	.byte	0x0
344	.byte	0x0
345	.section	.debug_str
346.LASF0:
347	.string	"_ZN1N1fE"
348.LASF7:
349	.string	"this"
350.LASF6:
351	.string	""
352.LASF8:
353	.string	"main"
354.LASF1:
355	.string	"_ZN1N1cE"
356.LASF5:
357	.string	"pr11465.cc"
358.LASF4:
359	.string	"GNU C++ 4.4.2"
360	.ident	"GCC: (GNU) 4.4.2"
361