aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 8585288..dc29029 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -6063,6 +6063,7 @@ initialize_predefined_identifiers ()
{ "Java", &lang_name_java },
{ CTOR_NAME, &ctor_identifier },
{ "__base_ctor", &base_ctor_identifier },
+ { "__comp_ctor", &complete_ctor_identifier },
{ DTOR_NAME, &dtor_identifier },
{ "__base_dtor", &base_dtor_identifier },
{ "__deleting_dtor", &deleting_dtor_identifier },
@@ -13441,13 +13442,8 @@ start_function (declspecs, declarator, attrs, flags)
/* Constructors and destructors need to know whether they're "in
charge" of initializing virtual base classes. */
- if (DECL_DESTRUCTOR_P (decl1))
- current_in_charge_parm = TREE_CHAIN (t);
- else if (DECL_CONSTRUCTOR_P (decl1)
- && TREE_CHAIN (t)
- && DECL_ARTIFICIAL (TREE_CHAIN (t))
- && (DECL_NAME (TREE_CHAIN (t))
- == in_charge_identifier))
+ if (DECL_CONSTRUCTOR_FOR_VBASE_P (decl1)
+ || DECL_DESTRUCTOR_P (decl1))
current_in_charge_parm = TREE_CHAIN (t);
}