c++: Micro-optimize instantiation_dependent_expression_p
authorPatrick Palka <ppalka@redhat.com>
Tue, 23 Feb 2021 14:40:03 +0000 (09:40 -0500)
committerPatrick Palka <ppalka@redhat.com>
Tue, 23 Feb 2021 14:40:03 +0000 (09:40 -0500)
This makes instantiation_dependent_expression_p avoid calling
potential_constant_expression when processing_template_decl isn't set
(and hence when value_dependent_expression_p is definitely false).

gcc/cp/ChangeLog:

* pt.c (instantiation_dependent_expression_p): Check
processing_template_decl before calling
potential_constant_expression.

gcc/cp/pt.c

index 60de8e9..0393531 100644 (file)
@@ -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)));
 }