1/* Copyright 2017-2020 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
19typedef struct tstruct
20{
21} tstruct;
22
23tstruct my_data;
24
25int _Dmain (void)
26{
27  asm ("_Dmain_label: .globl _Dmain_label");
28  return 0;
29}
30
31asm ("_Dmain_end: .globl _Dmain_end");
32
33int
34main (void)
35{
36  return _Dmain ();
37}
38
39/* The .debug_names-based index support depends on .debug_aranges
40   generated by GCC.  (.gdb_index includes a gdb-generated map
41   instead.)  */
42asm (
43"	.pushsection	.debug_info,\"\",%progbits \n"
44".Lcu1_begin:"
45"	.popsection \n"
46"	.pushsection	.debug_aranges,\"\",%progbits \n"
47"	.4byte	.Laranges_end - .Laranges_start \n"	// Length of Address Ranges Info
48".Laranges_start: \n"
49"	.2byte	0x2 \n"	// DWARF Version
50"	.4byte	.Lcu1_begin\n" // .Ldebug_info0 - Offset of Compilation Unit Info
51"	.byte	4 \n"	// Size of Address
52"	.byte	0 \n"	// Size of Segment Descriptor
53"	.2byte	0 \n"	// Pad to 16 byte boundary
54"	.2byte	0 \n"
55"	.4byte	_Dmain \n"	// Address
56"	.4byte	_Dmain_end - _Dmain \n"	// Length
57"	.4byte	0 \n"
58"	.4byte	0 \n"
59".Laranges_end: \n"
60"	.popsection \n"
61);
62