merge from gcc
[external/binutils.git] / gdb / testsuite / gdb.dwarf2 / dw2-noloc.S
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18         .data
19
20         .globl  file_locaddr_resolvable
21 file_locaddr_resolvable:
22         .globl  file_locempty_resolvable
23 file_locempty_resolvable:
24         .globl  file_locno_resolvable
25 file_locno_resolvable:
26         .globl  file_extern_locaddr_resolvable
27 file_extern_locaddr_resolvable:
28         .globl  file_extern_locempty_resolvable
29 file_extern_locempty_resolvable:
30         .globl  file_extern_locno_resolvable
31 file_extern_locno_resolvable:
32         .globl  main_local_locaddr_resolvable
33 main_local_locaddr_resolvable:
34         .globl  main_local_locempty_resolvable
35 main_local_locempty_resolvable:
36         .globl  main_local_locno_resolvable
37 main_local_locno_resolvable:
38         .globl  main_extern_locaddr_resolvable
39 main_extern_locaddr_resolvable:
40         .globl  main_extern_locno_resolvable
41 main_extern_locno_resolvable:
42         .globl  main_extern_locempty_resolvable
43 main_extern_locempty_resolvable:
44
45 resolvable:
46         .4byte  1234567890
47
48 /* Debug information */
49
50         .section .debug_info
51 .Lcu1_begin:
52         /* CU header */
53         .4byte  .Lcu1_end - .Lcu1_start         /* Length of Compilation Unit */
54 .Lcu1_start:
55         .2byte  2                               /* DWARF Version */
56         .4byte  .Labbrev1_begin                 /* Offset into abbrev section */
57         .byte   4                               /* Pointer size */
58
59         /* CU die */
60         .uleb128 1                              /* Abbrev: DW_TAG_compile_unit */
61         .4byte  cu_text_end                     /* DW_AT_high_pc */
62         .4byte  cu_text_start                   /* DW_AT_low_pc */
63         .ascii  "file1.txt\0"                   /* DW_AT_name */
64         .ascii  "GNU C 3.3.3\0"                 /* DW_AT_producer */
65         .byte   1                               /* DW_AT_language (C) */
66
67 .Ltype_int:
68         .uleb128        3                       /* Abbrev: DW_TAG_base_type */
69         .ascii          "int\0"                 /* DW_AT_name */
70         .byte           4                       /* DW_AT_byte_size */
71         .byte           5                       /* DW_AT_encoding */
72
73         .uleb128        7                       /* Abbrev: DW_TAG_variable (location) */
74         .ascii          "file_locaddr_resolvable\0"     /* DW_AT_name */
75         .byte           2f - 1f                 /* DW_AT_location */
76 1:      .byte           3                       /*   DW_OP_addr */
77         .4byte          resolvable              /*   <addr> */
78 2:      .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
79
80         .uleb128        7                       /* Abbrev: DW_TAG_variable (location) */
81         .ascii          "file_locaddr_unresolvable\0"   /* DW_AT_name */
82         .byte           2f - 1f                 /* DW_AT_location */
83 1:      .byte           3                       /*   DW_OP_addr */
84         .4byte          resolvable              /*   <addr> */
85 2:      .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
86
87         .uleb128        7                       /* Abbrev: DW_TAG_variable (location) */
88         .ascii          "file_locempty_resolvable\0"    /* DW_AT_name */
89         .byte           0                       /* DW_AT_location */
90         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
91
92         .uleb128        7                       /* Abbrev: DW_TAG_variable (location) */
93         .ascii          "file_locempty_unresolvable\0"  /* DW_AT_name */
94         .byte           0                       /* DW_AT_location */
95         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
96
97         .uleb128        5                       /* Abbrev: DW_TAG_variable (bare) */
98         .ascii          "file_locno_resolvable\0"       /* DW_AT_name */
99         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
100
101         .uleb128        5                       /* Abbrev: DW_TAG_variable (bare) */
102         .ascii          "file_locno_unresolvable\0"     /* DW_AT_name */
103         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
104
105         .uleb128        8                       /* Abbrev: DW_TAG_variable (location+extern) */
106         .ascii          "file_extern_locaddr_resolvable\0"      /* DW_AT_name */
107         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
108         .byte           2f - 1f                 /* DW_AT_location */
109 1:      .byte           3                       /*   DW_OP_addr */
110         .4byte          resolvable              /*   <addr> */
111 2:      .byte           1                       /* DW_AT_external */
112
113         .uleb128        8                       /* Abbrev: DW_TAG_variable (location+extern) */
114         .ascii          "file_extern_locaddr_unresolvable\0"    /* DW_AT_name */
115         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
116         .byte           2f - 1f                 /* DW_AT_location */
117 1:      .byte           3                       /*   DW_OP_addr */
118         .4byte          resolvable              /*   <addr> */
119 2:      .byte           1                       /* DW_AT_external */
120
121         .uleb128        8                       /* Abbrev: DW_TAG_variable (location+extern) */
122         .ascii          "file_extern_locempty_resolvable\0"     /* DW_AT_name */
123         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
124         .byte           0                       /* DW_AT_location */
125         .byte           1                       /* DW_AT_external */
126
127         .uleb128        8                       /* Abbrev: DW_TAG_variable (location+extern) */
128         .ascii          "file_extern_locempty_unresolvable\0"   /* DW_AT_name */
129         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
130         .byte           0                       /* DW_AT_location */
131         .byte           1                       /* DW_AT_external */
132
133         .uleb128        4                       /* Abbrev: DW_TAG_variable (extern) */
134         .ascii          "file_extern_locno_resolvable\0"        /* DW_AT_name */
135         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
136         .byte           1                       /* DW_AT_external */
137
138         .uleb128        4                       /* Abbrev: DW_TAG_variable (extern) */
139         .ascii          "file_extern_locno_unresolvable\0"      /* DW_AT_name */
140         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
141         .byte           1                       /* DW_AT_external */
142
143         /* main */
144         .uleb128        6                       /* Abbrev: DW_TAG_subprogram */
145         .byte           1                       /* DW_AT_decl_file */
146         .byte           2                       /* DW_AT_decl_line */
147         .ascii          "main\0"                /* DW_AT_name */
148         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
149         .4byte          cu_text_start           /* DW_AT_low_pc */
150         .4byte          cu_text_end             /* DW_AT_high_pc */
151
152         .uleb128        7                       /* Abbrev: DW_TAG_variable (location) */
153         .ascii          "main_local_locaddr_resolvable\0"       /* DW_AT_name */
154         .byte           2f - 1f                 /* DW_AT_location */
155 1:      .byte           3                       /*   DW_OP_addr */
156         .4byte          resolvable              /*   <addr> */
157 2:      .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
158
159         .uleb128        7                       /* Abbrev: DW_TAG_variable (location) */
160         .ascii          "main_local_locaddr_unresolvable\0"     /* DW_AT_name */
161         .byte           2f - 1f                 /* DW_AT_location */
162 1:      .byte           3                       /*   DW_OP_addr */
163         .4byte          resolvable              /*   <addr> */
164 2:      .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
165
166         .uleb128        7                       /* Abbrev: DW_TAG_variable (location) */
167         .ascii          "main_local_locempty_resolvable\0"      /* DW_AT_name */
168         .byte           0                       /* DW_AT_location */
169         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
170
171         .uleb128        7                       /* Abbrev: DW_TAG_variable (location) */
172         .ascii          "main_local_locempty_unresolvable\0"    /* DW_AT_name */
173         .byte           0                       /* DW_AT_location */
174         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
175
176         .uleb128        5                       /* Abbrev: DW_TAG_variable (bare) */
177         .ascii          "main_local_locno_resolvable\0" /* DW_AT_name */
178         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
179
180         .uleb128        5                       /* Abbrev: DW_TAG_variable (bare) */
181         .ascii          "main_local_locno_unresolvable\0"       /* DW_AT_name */
182         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
183
184         .uleb128        8                       /* Abbrev: DW_TAG_variable (location+extern) */
185         .ascii          "main_extern_locaddr_resolvable\0"      /* DW_AT_name */
186         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
187         .byte           2f - 1f                 /* DW_AT_location */
188 1:      .byte           3                       /*   DW_OP_addr */
189         .4byte          resolvable              /*   <addr> */
190 2:      .byte           1                       /* DW_AT_external */
191
192         .uleb128        8                       /* Abbrev: DW_TAG_variable (location+extern) */
193         .ascii          "main_extern_locaddr_unresolvable\0"    /* DW_AT_name */
194         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
195         .byte           2f - 1f                 /* DW_AT_location */
196 1:      .byte           3                       /*   DW_OP_addr */
197         .4byte          resolvable              /*   <addr> */
198 2:      .byte           1                       /* DW_AT_external */
199
200         .uleb128        8                       /* Abbrev: DW_TAG_variable (location+extern) */
201         .ascii          "main_extern_locempty_resolvable\0"     /* DW_AT_name */
202         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
203         .byte           0                       /* DW_AT_location */
204         .byte           1                       /* DW_AT_external */
205
206         .uleb128        8                       /* Abbrev: DW_TAG_variable (location+extern) */
207         .ascii          "main_extern_locempty_unresolvable\0"   /* DW_AT_name */
208         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
209         .byte           0                       /* DW_AT_location */
210         .byte           1                       /* DW_AT_external */
211
212         .uleb128        4                       /* Abbrev: DW_TAG_variable (extern) */
213         .ascii          "main_extern_locno_resolvable\0"        /* DW_AT_name */
214         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
215         .byte           1                       /* DW_AT_external */
216
217         .uleb128        4                       /* Abbrev: DW_TAG_variable (extern) */
218         .ascii          "main_extern_locno_unresolvable\0"      /* DW_AT_name */
219         .4byte          .Ltype_int-.Lcu1_begin  /* DW_AT_type */
220         .byte           1                       /* DW_AT_external */
221
222         .byte           0                       /* End of children of main */
223
224         .byte           0                       /* End of children of CU */
225
226 .Lcu1_end:
227
228 /* Abbrev table */
229         .section .debug_abbrev
230 .Labbrev1_begin:
231         .uleb128        1                       /* Abbrev code */
232         .uleb128        0x11                    /* DW_TAG_compile_unit */
233         .byte           1                       /* has_children */
234         .uleb128        0x12                    /* DW_AT_high_pc */
235         .uleb128        0x1                     /* DW_FORM_addr */
236         .uleb128        0x11                    /* DW_AT_low_pc */
237         .uleb128        0x1                     /* DW_FORM_addr */
238         .uleb128        0x3                     /* DW_AT_name */
239         .uleb128        0x8                     /* DW_FORM_string */
240         .uleb128        0x25                    /* DW_AT_producer */
241         .uleb128        0x8                     /* DW_FORM_string */
242         .uleb128        0x13                    /* DW_AT_language */
243         .uleb128        0xb                     /* DW_FORM_data1 */
244         .byte           0x0                     /* Terminator */
245         .byte           0x0                     /* Terminator */
246
247         .uleb128        3                       /* Abbrev code */
248         .uleb128        0x24                    /* DW_TAG_base_type */
249         .byte           0                       /* has_children */
250         .uleb128        0x3                     /* DW_AT_name */
251         .uleb128        0x8                     /* DW_FORM_string */
252         .uleb128        0xb                     /* DW_AT_byte_size */
253         .uleb128        0xb                     /* DW_FORM_data1 */
254         .uleb128        0x3e                    /* DW_AT_encoding */
255         .uleb128        0xb                     /* DW_FORM_data1 */
256         .byte           0x0                     /* Terminator */
257         .byte           0x0                     /* Terminator */
258
259         .uleb128        4                       /* Abbrev code (extern) */
260         .uleb128        0x34                    /* DW_TAG_variable */
261         .byte           0                       /* has_children */
262         .uleb128        0x3                     /* DW_AT_name */
263         .uleb128        0x8                     /* DW_FORM_string */
264         .uleb128        0x49                    /* DW_AT_type */
265         .uleb128        0x13                    /* DW_FORM_ref4 */
266         .uleb128        0x3f                    /* DW_AT_external */
267         .uleb128        0xc                     /* DW_FORM_flag */
268         .byte           0x0                     /* Terminator */
269         .byte           0x0                     /* Terminator */
270
271         .uleb128        5                       /* Abbrev code (bare) */
272         .uleb128        0x34                    /* DW_TAG_variable */
273         .byte           0                       /* has_children */
274         .uleb128        0x3                     /* DW_AT_name */
275         .uleb128        0x8                     /* DW_FORM_string */
276         .uleb128        0x49                    /* DW_AT_type */
277         .uleb128        0x13                    /* DW_FORM_ref4 */
278         .byte           0x0                     /* Terminator */
279         .byte           0x0                     /* Terminator */
280
281         .uleb128        6                       /* Abbrev code */
282         .uleb128        0x2e                    /* DW_TAG_subprogram */
283         .byte           1                       /* has_children */
284         .uleb128        0x3a                    /* DW_AT_decl_file */
285         .uleb128        0xb                     /* DW_FORM_data1 */
286         .uleb128        0x3b                    /* DW_AT_decl_line */
287         .uleb128        0xb                     /* DW_FORM_data1 */
288         .uleb128        0x3                     /* DW_AT_name */
289         .uleb128        0x8                     /* DW_FORM_string */
290         .uleb128        0x49                    /* DW_AT_type */
291         .uleb128        0x13                    /* DW_FORM_ref4 */
292         .uleb128        0x11                    /* DW_AT_low_pc */
293         .uleb128        0x1                     /* DW_FORM_addr */
294         .uleb128        0x12                    /* DW_AT_high_pc */
295         .uleb128        0x1                     /* DW_FORM_addr */
296         .byte           0x0                     /* Terminator */
297         .byte           0x0                     /* Terminator */
298
299         .uleb128        7                       /* Abbrev code (location) */
300         .uleb128        0x34                    /* DW_TAG_variable */
301         .byte           0                       /* has_children */
302         .uleb128        0x3                     /* DW_AT_name */
303         .uleb128        0x8                     /* DW_FORM_string */
304         .uleb128        0x2                     /* DW_AT_location */
305         .uleb128        0xa                     /* DW_FORM_block1 */
306         .uleb128        0x49                    /* DW_AT_type */
307         .uleb128        0x13                    /* DW_FORM_ref4 */
308         .byte           0x0                     /* Terminator */
309         .byte           0x0                     /* Terminator */
310
311         .uleb128        8                       /* Abbrev code (location+extern) */
312         .uleb128        0x34                    /* DW_TAG_variable */
313         .byte           0                       /* has_children */
314         .uleb128        0x3                     /* DW_AT_name */
315         .uleb128        0x8                     /* DW_FORM_string */
316         .uleb128        0x49                    /* DW_AT_type */
317         .uleb128        0x13                    /* DW_FORM_ref4 */
318         .uleb128        0x2                     /* DW_AT_location */
319         .uleb128        0xa                     /* DW_FORM_block1 */
320         .uleb128        0x3f                    /* DW_AT_external */
321         .uleb128        0xc                     /* DW_FORM_flag */
322         .byte           0x0                     /* Terminator */
323         .byte           0x0                     /* Terminator */
324
325         .byte           0x0                     /* Terminator */
326         .byte           0x0                     /* Terminator */