* pt.c (instantiate_decl): Don't recheck substitutions.

From-SVN: r189640
This commit is contained in:
Jason Merrill 2012-07-18 21:36:58 -04:00 committed by Jason Merrill
parent 0e69fdf016
commit fa4a66d152
2 changed files with 4 additions and 29 deletions

View File

@ -1,3 +1,7 @@
2012-07-18 Jason Merrill <jason@redhat.com>
* pt.c (instantiate_decl): Don't recheck substitutions.
2012-07-18 Paolo Carlini <paolo.carlini@oracle.com>
Jason Merrill <jason@redhat.com>

View File

@ -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