blob: c3159ce107975ea2a9964f7c94ed26e2eb73bffa [file] [log] [blame]
/* Copyright 2017-2020 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_info,\"\",%progbits \n"
".Lcu1_begin:"
" .popsection \n"
" .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 .Lcu1_begin\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"
);