1/* This testcase is part of GDB, the GNU debugger.
2
3   Copyright 2008-2024 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/* Debug information */
19
20          .section  .debug_info
21.Lcu1_begin:
22          .4byte              .Lcu1_end - .Lcu1_start       /* Length of Compilation Unit */
23.Lcu1_start:
24          .2byte              2                             /* DWARF version number */
25          .4byte              .Ldebug_abbrev0               /* Offset Into Abbrev. Section */
26          .byte               4                             /* Pointer Size (in bytes) */
27
28          /* CU die */
29          .uleb128  1                             /* Abbrev: DW_TAG_compile_unit */
30          .4byte              .Lproducer                    /* DW_AT_producer */
31          /* Use C++ to exploit a bug in parsing DW_AT_name "".  */
32          .byte               4                             /* DW_AT_language (C++) -  */
33
34.Larray_type:
35          .uleb128  2                             /* Abbrev: DW_TAG_array_type */
36          .4byte              .Lchar_type-.Lcu1_begin       /* DW_AT_type */
37
38          .uleb128  3                             /* Abbrev: DW_TAG_subrange_type */
39          .4byte              .Luint_type-.Lcu1_begin       /* DW_AT_type */
40          .byte               0xd                           /* DW_AT_upper_bound */
41          .byte               0                             /* End of children of die */
42
43.Luint_type:
44          .uleb128  4                             /* Abbrev: DW_TAG_base_type */
45          .4byte              .Luint_str                    /* DW_AT_name */
46          .byte               4                             /* DW_AT_byte_size */
47          .byte               7                             /* DW_AT_encoding */
48
49.Lchar_type:
50          .uleb128  4                             /* Abbrev: DW_TAG_base_type */
51          .4byte              .Lchar_str                    /* DW_AT_name */
52          .byte               1                             /* DW_AT_byte_size */
53          .byte               6                             /* DW_AT_encoding */
54
55          .uleb128  5                             /* Abbrev: DW_TAG_variable DW_FORM_strp */
56          .4byte              .Lvarname           /* DW_AT_name */
57          .4byte              .Lconst_type-.Lcu1_begin/* DW_AT_type */
58          .4byte              .Lvarcontents                 /* DW_AT_const_value */
59          .byte               1                             /* DW_AT_external */
60
61          .uleb128  6                             /* Abbrev: DW_TAG_variable DW_FORM_string */
62          .string             "a_string2"                   /* DW_AT_name */
63          .4byte              .Lconst_type-.Lcu1_begin/* DW_AT_type */
64          .string             "hello world2\n"    /* DW_AT_const_value */
65          .byte               1                             /* DW_AT_external */
66
67.Lconst_type:
68          .uleb128  7                             /* Abbrev: DW_TAG_const_type */
69          .4byte              .Larray_type-.Lcu1_begin/* DW_AT_type */
70
71          .uleb128  8                             /* Abbrev: DW_TAG_variable (name "") */
72          .4byte              .Lemptyname                   /* DW_AT_name */
73
74          .byte               0                             /* End of children of CU */
75.Lcu1_end:
76
77          .section .debug_abbrev
78.Ldebug_abbrev0:
79          .uleb128  1                             /* Abbrev code */
80          .uleb128  0x11                          /* DW_TAG_compile_unit */
81          .byte               0x1                           /* has_children */
82          .uleb128  0x25                          /* DW_AT_producer */
83          .uleb128  0xe                           /* DW_FORM_strp */
84          .uleb128  0x13                          /* DW_AT_language */
85          .uleb128  0xb                           /* DW_FORM_data1 */
86          .byte               0x0                           /* Terminator */
87          .byte               0x0                           /* Terminator */
88
89          .uleb128  2                             /* Abbrev code */
90          .uleb128  0x1                           /* TAG: DW_TAG_array_type */
91          .byte               0x1                           /* DW_children_yes */
92          .uleb128  0x49                          /* DW_AT_type */
93          .uleb128  0x13                          /* DW_FORM_ref4 */
94          .byte               0x0                           /* Terminator */
95          .byte               0x0                           /* Terminator */
96
97          .uleb128  3                             /* Abbrev code */
98          .uleb128  0x21                          /* DW_TAG_subrange_type */
99          .byte               0x0                           /* no children */
100          .uleb128  0x49                          /* DW_AT_type */
101          .uleb128  0x13                          /* DW_FORM_ref4 */
102          .uleb128  0x2f                          /* DW_AT_upper_bound */
103          .uleb128  0xb                           /* DW_FORM_data1 */
104          .byte               0x0                           /* Terminator */
105          .byte               0x0                           /* Terminator */
106
107          .uleb128  4                             /* Abbrev code */
108          .uleb128  0x24                          /* DW_TAG_base_type */
109          .byte               0x0                           /* no_children */
110          .uleb128  0x3                           /* DW_AT_name */
111          .uleb128  0xe                           /* DW_FORM_strp */
112          .uleb128  0xb                           /* DW_AT_byte_size */
113          .uleb128  0xb                           /* DW_FORM_data1 */
114          .uleb128  0x3e                          /* DW_AT_encoding */
115          .uleb128  0xb                           /* DW_FORM_data1 */
116          .byte               0x0                           /* Terminator */
117          .byte               0x0                           /* Terminator */
118
119          .uleb128  5                             /* Abbrev code */
120          .uleb128  0x34                          /* DW_TAG_variable */
121          .byte               0x0                           /* no_children */
122          .uleb128  0x3                           /* DW_AT_name */
123          .uleb128  0xe                           /* DW_FORM_strp */
124          .uleb128  0x49                          /* DW_AT_type */
125          .uleb128  0x13                          /* DW_FORM_ref4 */
126          .uleb128  0x1c                          /* DW_AT_const_value */
127          .uleb128  0xe                           /* DW_FORM_strp */
128          .uleb128  0x3f                          /* DW_AT_external */
129          .uleb128  0xc                           /* DW_FORM_flag */
130          .byte               0x0                           /* Terminator */
131          .byte               0x0                           /* Terminator */
132
133          .uleb128  6                             /* Abbrev code */
134          .uleb128  0x34                          /* DW_TAG_variable */
135          .byte               0x0                           /* no_children */
136          .uleb128  0x3                           /* DW_AT_name */
137          .uleb128  0x8                           /* DW_FORM_string */
138          .uleb128  0x49                          /* DW_AT_type */
139          .uleb128  0x13                          /* DW_FORM_ref4 */
140          .uleb128  0x1c                          /* DW_AT_const_value */
141          .uleb128  0x8                           /* DW_FORM_string */
142          .uleb128  0x3f                          /* DW_AT_external */
143          .uleb128  0xc                           /* DW_FORM_flag */
144          .byte               0x0                           /* Terminator */
145          .byte               0x0                           /* Terminator */
146
147          .uleb128  7                             /* Abbrev code */
148          .uleb128  0x26                          /* DW_TAG_const_type */
149          .byte               0x0                           /* DW_children_no */
150          .uleb128  0x49                          /* DW_AT_type */
151          .uleb128  0x13                          /* DW_FORM_ref4 */
152          .byte               0x0                           /* Terminator */
153          .byte               0x0                           /* Terminator */
154
155          .uleb128  8                             /* Abbrev code */
156          .uleb128  0x34                          /* DW_TAG_variable */
157          .byte               0x0                           /* DW_children_no */
158          .uleb128  0x3                           /* DW_AT_name */
159          .uleb128  0xe                           /* DW_FORM_strp */
160          .byte               0x0                           /* Terminator */
161          .byte               0x0                           /* Terminator */
162
163          .byte               0x0                           /* Terminator */
164
165/* String table */
166          .section .debug_str
167.Lproducer:
168          .string             "GNU C 3.3.3"
169.Lchar_str:
170          .string             "char"
171.Luint_str:
172          .string             "unsigned int"
173.Lvarname:
174          .string             "a_string"
175.Lvarcontents:
176          .string             "hello world!\n"
177.Lemptyname:
178          .string             ""
179#ifdef __arm__
180          .section  .note.GNU-stack,"",%progbits
181#else
182          .section  .note.GNU-stack,"",@progbits
183#endif
184