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)));
  }

Reply via email to