From fa4a66d152dad4a1f08bc6119cba3c6922310dce Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 18 Jul 2012 21:36:58 -0400 Subject: [PATCH] * pt.c (instantiate_decl): Don't recheck substitutions. From-SVN: r189640 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/pt.c | 29 ----------------------------- 2 files changed, 4 insertions(+), 29 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5cc6ccd2f8e..9a3c65604ad 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2012-07-18 Jason Merrill + + * pt.c (instantiate_decl): Don't recheck substitutions. + 2012-07-18 Paolo Carlini Jason Merrill diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 65eb2cc103d..0d253982233 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -18248,35 +18248,6 @@ instantiate_decl (tree d, int defer_ok, if (TREE_CODE (d) == FUNCTION_DECL) maybe_instantiate_noexcept (d); - /* Recheck the substitutions to obtain any warning messages - about ignoring cv qualifiers. Don't do this for artificial decls, - as it breaks the context-sensitive substitution for lambda op(). */ - if (!defer_ok && !DECL_ARTIFICIAL (d)) - { - tree gen = DECL_TEMPLATE_RESULT (gen_tmpl); - tree type = TREE_TYPE (gen); - - /* Make sure that we can see identifiers, and compute access - correctly. D is already the target FUNCTION_DECL with the - right context. */ - push_access_scope (d); - - if (TREE_CODE (gen) == FUNCTION_DECL) - { - tsubst (DECL_ARGUMENTS (gen), gen_args, tf_warning_or_error, d); - tsubst_exception_specification (type, gen_args, tf_warning_or_error, - d, /*defer_ok*/true); - /* Don't simply tsubst the function type, as that will give - duplicate warnings about poor parameter qualifications. - The function arguments are the same as the decl_arguments - without the top level cv qualifiers. */ - type = TREE_TYPE (type); - } - tsubst (type, gen_args, tf_warning_or_error, d); - - pop_access_scope (d); - } - /* Defer all other templates, unless we have been explicitly forbidden from doing so. */ if (/* If there is no definition, we cannot instantiate the