binutils-gdb/gdb/testsuite/gdb.dwarf2/anon-ns-fn.cc
Tom de Vries 8ba677d356 [gdb/symtab] Don't complain about function decls
[ Requires "[gdb/symtab] Don't complain about inlined functions" as
submitted here (
https://sourceware.org/pipermail/gdb-patches/2022-September/191762.html ). ]

With the test-case included in this patch, we get:
...
(gdb) ptype main^M
During symbol reading: cannot get low and high bounds for subprogram DIE \
  at 0xc1^M
type = int (void)^M
(gdb) FAIL: gdb.dwarf2/anon-ns-fn.exp: ptype main without complaints
...

The DIE causing the complaint is a function declaration:
...
 <2><c1>: Abbrev Number: 3 (DW_TAG_subprogram)
    <c2>   DW_AT_name        : foo
    <c8>   DW_AT_declaration : 1
...
which is referred to from the DIE representing the function definition:
...
 <1><f4>: Abbrev Number: 7 (DW_TAG_subprogram)
    <f5>   DW_AT_specification: <0xc1>
    <f9>   DW_AT_low_pc      : 0x4004c7
    <101>   DW_AT_high_pc     : 0x7
...
which does contain the low and high bounds.

Fix this by not complaining about function declarations.

Tested on x86_64-linux.
2022-10-04 16:51:03 +02:00

32 lines
834 B
C++

/* This testcase is part of GDB, the GNU debugger.
Copyright 2022 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/>. */
namespace
{
void
foo (void)
{
}
}
int
main (void)
{
foo ();
return 0;
}