https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99859

--- Comment #5 from Patrick Palka <ppalka at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #4)
> So, on the #c3 testcase, if I put a breakpoint before and after
> fold_nondependent_expr in finish_static_assert and temporarily in between
> those two breakpoints put a breakpoint on cxx_eval_call_expression and
> cxx_eval_increment_expression, it is clear that while
> cxx_eval_call_expression is called on
> ...
> intrusive_ptr<Foo>::~intrusive_ptr (&D.2255);
> Foo::dec (NON_LVALUE_EXPR <((struct intrusive_ptr *) this)->ptr>);
> intrusive_ptr<Foo>::~intrusive_ptr (&a);
> Foo::dec (NON_LVALUE_EXPR <((struct intrusive_ptr *) this)->ptr>);

Shouldn't cxx_bind_parameters_in_call have noticed that the argument to these
Foo::dec calls is non-constant, which would inhibit their caching?

Reply via email to