diff options
author | Patrick Palka <ppalka@redhat.com> | 2021-02-23 09:40:03 -0500 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2021-02-23 09:40:03 -0500 |
commit | cac960a3ec450377ebeea9a2ea563a545e54f2d6 (patch) | |
tree | 7f9e4c08bc579648e5124bae1ff0b39c2f9c19f9 | |
parent | e03e58c1844d04678f95b278f3eff2a5fbaeff75 (diff) | |
download | gcc-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.c | 3 |
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))); } |