tizen 2.4 release
[external/binutils.git] / gdb / testsuite / gdb.dwarf2 / pr11465.S
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
39 text_start:
40 _ZN1N1cE:
41         /* Valid function must have non-empty PC range.  */
42         .byte 0
43 text_end:
44
45         .section        .debug_info
46 d:
47         .4byte  .Ldebug_info_end - 1f /* Length of CU info */
48 1:
49         .2byte  0x2             /* DWARF version number */
50         .4byte  .Ldebug_abbrev0 /* Abbrev offset */
51         .byte   0x4             /* Pointer size */
52 dieb:   .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 */
60 die29:  .uleb128 0x2            /* DW_TAG_namespace */
61         .string "N"             /* DW_AT_name */
62 die32:  .uleb128 0x3            /* DW_TAG_class_type */
63         .string "C"             /* DW_AT_name */
64         .byte   0x1             /* DW_AT_declaration */
65 die36:  .uleb128 0x4            /* DW_TAG_typedef */
66         .string "u"             /* DW_AT_name */
67         .4byte  die7e-d         /* DW_AT_type */
68 die3f:  .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 */
74 die4e:  .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
81 die5e:  .uleb128 0x6            /* DW_TAG_class_type */
82         .4byte  die32-d         /* DW_AT_specification */
83         .byte   0x1             /* DW_AT_byte_size */
84 die6a:  .uleb128 0x7            /* DW_TAG_subprogram */
85         .byte   0x1             /* DW_AT_external */
86         .string "C"             /* DW_AT_name */
87         .byte   0x1             /* DW_AT_declaration */
88 die71:  .uleb128 0x8            /* DW_TAG_formal_parameter */
89         .4byte  die8f-d         /* DW_AT_type */
90         .byte   0x1             /* DW_AT_artificial */
91 die77:  .uleb128 0x9            /* DW_TAG_formal_parameter */
92         .4byte  die7e-d         /* DW_AT_type */
93         .byte   0x0
94         .byte   0x0
95 die7e:  .uleb128 0xa            /* DW_TAG_pointer_type */
96         .byte   PTRBITS / 8     /* DW_AT_byte_size */
97         .4byte  die84-d         /* DW_AT_type */
98 die84:  .uleb128 0xb            /* DW_TAG_subroutine_type */
99 die89:  .uleb128 0x9            /* DW_TAG_formal_parameter */
100         .4byte  die5e-d         /* DW_AT_type */
101         .byte   0x0
102 die8f:  .uleb128 0xa            /* DW_TAG_pointer_type */
103         .byte   PTRBITS / 8     /* DW_AT_byte_size */
104         .4byte  die5e-d         /* DW_AT_type */
105 die95:  .uleb128 0xc            /* DW_TAG_subprogram */
106         .4byte  die6a-d         /* DW_AT_specification */
107         .byte   0x2             /* DW_AT_inline */
108 die9f:  .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 */
112 diea9:  .uleb128 0x9            /* DW_TAG_formal_parameter */
113         .4byte  die7e-d         /* DW_AT_type */
114         .byte   0x0
115 dieaf:  .uleb128 0xe            /* DW_TAG_const_type */
116         .4byte  die8f-d         /* DW_AT_type */
117 dieb4:  .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 */
121 diec9:  .uleb128 0x10           /* DW_TAG_subprogram */
122         .4byte  die9f-d         /* DW_AT_abstract_origin */
123         .byte   2f-1f           /* DW_AT_location */
124 1:
125         .byte   0x50            /* DW_OP_reg0 */
126 2:
127 died1:  .uleb128 0x10           /* DW_TAG_formal_parameter */
128         .4byte  diea9-d         /* DW_AT_abstract_origin */
129         .byte   2f-1f           /* DW_AT_location */
130 1:
131         .byte   0x51            /* DW_OP_reg1 */
132 2:
133         .byte   0x0
134 dieda:  .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 */
140 dief2:  .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 */
144 die149: .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"