From: Jason Merrill Date: Tue, 5 Dec 2000 13:32:35 +0000 (-0500) Subject: revert cloning patch X-Git-Tag: prereleases/libstdc++-2.92~2455 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=23bea145a468dba875d4788c768502c7f46ba923;p=thirdparty%2Fgcc.git revert cloning patch From-SVN: r38035 --- diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 8d7f33b32118..d975a7d0a04a 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -5786,7 +5786,6 @@ tsubst_decl (t, args, type, in_decl) maybe_retrofit_in_chrg (r); if (DECL_CONSTRUCTOR_P (r)) grok_ctor_properties (ctx, r); - clone_function_decl(r, /*update_method_vec_p=*/0); } else if (IDENTIFIER_OPNAME_P (DECL_NAME (r))) grok_op_properties (r, DECL_VIRTUAL_P (r), DECL_FRIEND_P (r)); @@ -9225,6 +9224,15 @@ do_decl_instantiation (declspecs, declarator, storage) cp_error ("storage class `%D' applied to template instantiation", storage); + /* Under the new ABI, we need to make sure to instantiate all the + cloned versions of constructors or destructors. */ + if (flag_new_abi && + (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (result) || + DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (result)) && + !(TREE_CHAIN (result) && + DECL_CLONED_FUNCTION (TREE_CHAIN (result)))) + clone_function_decl(result, /*update_method_vec_p=*/0); + SET_DECL_EXPLICIT_INSTANTIATION (result); mark_decl_instantiated (result, extern_p); repo_template_instantiated (result, extern_p);