xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.dlang/watch-loc.c (revision b5c47949a45ac972130c38cf13dfd8afb1f09285)
1 /* Copyright 2017-2019 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 );
57