From 23bea145a468dba875d4788c768502c7f46ba923 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 5 Dec 2000 08:32:35 -0500 Subject: revert cloning patch From-SVN: r38035 --- gcc/cp/pt.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 8d7f33b..d975a7d 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); -- cgit v1.1