From: Jason Merrill Date: Thu, 19 Jul 2012 01:36:58 +0000 (-0400) Subject: * pt.c (instantiate_decl): Don't recheck substitutions. X-Git-Tag: releases/gcc-4.8.0~4401 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fa4a66d152dad4a1f08bc6119cba3c6922310dce;p=thirdparty%2Fgcc.git * pt.c (instantiate_decl): Don't recheck substitutions. From-SVN: r189640 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5cc6ccd2f8ec..9a3c65604ad2 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 65eb2cc103d2..0d253982233e 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