DWARF-5: .debug_names index consumer
[external/binutils.git] / gdb / testsuite / gdb.dlang / watch-loc.c
1 /* Copyright 2017 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
17 /* DWARF will describe these contents as being inside a D module.  */
18
19 typedef struct tstruct
20 {
21 } tstruct;
22
23 tstruct my_data;
24
25 int _Dmain (void)
26 {
27   asm ("_Dmain_label: .globl _Dmain_label");
28   return 0;
29 }
30
31 int
32 main (void)
33 {
34   return _Dmain ();
35 }
36
37 /* The .debug_names-based index support depends on .debug_aranges
38    generated by GCC.  (.gdb_index includes a gdb-generated map
39    instead.)  */
40 asm (
41 "       .pushsection    .debug_aranges,\"\",@progbits \n"
42 "       .4byte  .Laranges_end - .Laranges_start \n"     // Length of Address Ranges Info
43 ".Laranges_start: \n"
44 "       .2byte  0x2 \n" // DWARF Version
45 "       .4byte  0 \n" // .Ldebug_info0 - Offset of Compilation Unit Info
46 "       .byte   4 \n"   // Size of Address
47 "       .byte   0 \n"   // Size of Segment Descriptor
48 "       .2byte  0 \n"   // Pad to 16 byte boundary
49 "       .2byte  0 \n"
50 "       .4byte  _Dmain \n"      // Address
51 "       .4byte  0x1000 \n"      // Length
52 "       .4byte  0 \n"
53 "       .4byte  0 \n"
54 ".Laranges_end: \n"
55 "       .popsection \n"
56 );