blob: 06fcc8922b43712dd36ce84600203427477ff69d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
/* Copyright 2017-2018 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* DWARF will describe these contents as being inside a D module. */
typedef struct tstruct
{
} tstruct;
tstruct my_data;
int _Dmain (void)
{
asm ("_Dmain_label: .globl _Dmain_label");
return 0;
}
int
main (void)
{
return _Dmain ();
}
/* The .debug_names-based index support depends on .debug_aranges
generated by GCC. (.gdb_index includes a gdb-generated map
instead.) */
asm (
" .pushsection .debug_aranges,\"\",@progbits \n"
" .4byte .Laranges_end - .Laranges_start \n" // Length of Address Ranges Info
".Laranges_start: \n"
" .2byte 0x2 \n" // DWARF Version
" .4byte 0 \n" // .Ldebug_info0 - Offset of Compilation Unit Info
" .byte 4 \n" // Size of Address
" .byte 0 \n" // Size of Segment Descriptor
" .2byte 0 \n" // Pad to 16 byte boundary
" .2byte 0 \n"
" .4byte _Dmain \n" // Address
" .4byte 0x1000 \n" // Length
" .4byte 0 \n"
" .4byte 0 \n"
".Laranges_end: \n"
" .popsection \n"
);
|