Suppress diagnostics substituting into a requires-expression (PR c++/92403).

gcc/cp/
	* pt.c (tsubst_copy_and_build): Perform the first substitution without
	diagnostics and a second only if tsubst_requries_expr returns an error.

From-SVN: r278449
This commit is contained in:
Andrew Sutton 2019-11-19 15:11:14 +00:00 committed by Andrew Sutton
parent 8b24d594fe
commit 7aabd67f18
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2019-11-19 Andrew Sutton <asutton@lock3software.com>
PR c++/92403
Suppress diagnostics substituting into a requires-expression.
* pt.c (tsubst_copy_and_build): Perform the first substitution without
diagnostics and a second only if tsubst_requries_expr returns an error.
2019-11-19 Jakub Jelinek <jakub@redhat.com>
PR c++/92504

View File

@ -20139,7 +20139,12 @@ tsubst_copy_and_build (tree t,
}
case REQUIRES_EXPR:
RETURN (tsubst_requires_expr (t, args, complain, in_decl));
{
tree r = tsubst_requires_expr (t, args, tf_none, in_decl);
if (r == error_mark_node && (complain & tf_error))
tsubst_requires_expr (t, args, complain, in_decl);
RETURN (r);
}
case RANGE_EXPR:
/* No need to substitute further, a RANGE_EXPR will always be built