On 2/12/21 6:36 PM, Patrick Palka wrote:
This makes instantiation_dependent_expression_p avoid checking potential_constant_expression when processing_template_decl isn't set (and hence when value_dependent_expression_p is definitely false).
OK.
gcc/cp/ChangeLog: * pt.c (instantiation_dependent_expression_p): Check processing_template_decl before checking potential_constant_expression. --- gcc/cp/pt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index dd89dd6f896..5102bf02d0f 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -27519,7 +27519,8 @@ bool instantiation_dependent_expression_p (tree expression) { return (instantiation_dependent_uneval_expression_p (expression) - || (potential_constant_expression (expression) + || (processing_template_decl + && potential_constant_expression (expression) && value_dependent_expression_p (expression))); }