Message ID | 20210212233617.475042-1-ppalka@redhat.com |
---|---|
State | New |
Headers | show |
Series | c++: Micro-optimize instantiation_dependent_expression_p | expand |
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))); > } > >
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))); }