aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-lang.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-10-26 21:18:26 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2009-10-26 21:18:26 +0100
commitbde2d108c203ed057b7faa3daba72ecbe223c684 (patch)
treed897a3792fd374638d8f857ebbc1edebe9ae2500 /gcc/cp/cp-lang.c
parent20f2653ef0f7f2d33ec3e5ce389ab72d4216ec2a (diff)
downloadgcc-bde2d108c203ed057b7faa3daba72ecbe223c684.zip
gcc-bde2d108c203ed057b7faa3daba72ecbe223c684.tar.gz
gcc-bde2d108c203ed057b7faa3daba72ecbe223c684.tar.bz2
re PR debug/41828 (DW_AT_name should not be present for anonymous aggregates)
PR debug/41828 * cp-lang.c (cxx_dwarf_name): Return NULL instead of <anonymous ...> for anonymous aggregate names. * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die, add_name_and_src_coords_attributes, gen_namespace_die, dwarf2out_set_name): Handle dwarf2_name returning NULL. * g++.dg/debug/dwarf2/anonname1.C: New test. From-SVN: r153568
Diffstat (limited to 'gcc/cp/cp-lang.c')
-rw-r--r--gcc/cp/cp-lang.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index d84325d..8aa01e2 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -137,6 +137,9 @@ cxx_dwarf_name (tree t, int verbosity)
{
gcc_assert (DECL_P (t));
+ if (DECL_NAME (t)
+ && (ANON_AGGRNAME_P (DECL_NAME (t)) || LAMBDANAME_P (DECL_NAME (t))))
+ return NULL;
if (verbosity >= 2)
return decl_as_string (t,
TFF_DECL_SPECIFIERS | TFF_UNQUALIFIED_NAME