Fix gdb.cp/anon-struct.cc with -std=c++11.

gcc/
	* dwarf2out.c (gen_member_die): Don't emit anything for an
	anonymous class constructor.
gcc/cp/
	* decl2.c (reset_type_linkage_2): Update the DECL_NAME of a
	maybe-in-charge constructor.

From-SVN: r222839
This commit is contained in:
Jason Merrill 2015-05-05 22:24:38 -04:00 committed by Jason Merrill
parent f8aa3dd388
commit 15ed2619b2
4 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2015-05-05 Jason Merrill <jason@redhat.com>
* dwarf2out.c (gen_member_die): Don't emit anything for an
anonymous class constructor.
2015-05-05 David Malcolm <dmalcolm@redhat.com>
* auto-profile.c (afdo_find_equiv_class): Fix indentation so

View File

@ -1,5 +1,8 @@
2015-05-05 Jason Merrill <jason@redhat.com>
* decl2.c (reset_type_linkage_2): Update the DECL_NAME of a
maybe-in-charge constructor.
* decl.c (start_decl): Don't push the plain VAR_DECL for a
variable template.

View File

@ -2648,7 +2648,12 @@ reset_type_linkage_2 (tree type)
if (TREE_CODE (m) == VAR_DECL)
reset_decl_linkage (m);
for (tree m = TYPE_METHODS (type); m; m = DECL_CHAIN (m))
reset_decl_linkage (m);
{
reset_decl_linkage (m);
if (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (m))
/* Also update its name, for cxx_dwarf_name. */
DECL_NAME (m) = TYPE_IDENTIFIER (type);
}
binding_table_foreach (CLASSTYPE_NESTED_UTDS (type),
bt_reset_linkage_2, NULL);
}

View File

@ -19951,6 +19951,10 @@ gen_member_die (tree type, dw_die_ref context_die)
/* Don't include clones in the member list. */
if (DECL_ABSTRACT_ORIGIN (member))
continue;
/* Nor constructors for anonymous classes. */
if (DECL_ARTIFICIAL (member)
&& dwarf2_name (member, 0) == NULL)
continue;
child = lookup_decl_die (member);
if (child)