aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2021-02-23 09:40:03 -0500
committerPatrick Palka <ppalka@redhat.com>2021-02-23 09:40:03 -0500
commitcac960a3ec450377ebeea9a2ea563a545e54f2d6 (patch)
tree7f9e4c08bc579648e5124bae1ff0b39c2f9c19f9
parente03e58c1844d04678f95b278f3eff2a5fbaeff75 (diff)
downloadgcc-cac960a3ec450377ebeea9a2ea563a545e54f2d6.zip
gcc-cac960a3ec450377ebeea9a2ea563a545e54f2d6.tar.gz
gcc-cac960a3ec450377ebeea9a2ea563a545e54f2d6.tar.bz2
c++: Micro-optimize instantiation_dependent_expression_p
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.
-rw-r--r--gcc/cp/pt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 60de8e9..0393531 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)));
}