On Apr 6, 2022, Marek Polacek <pola...@redhat.com> wrote: > On Wed, Apr 06, 2022 at 04:36:49PM -0300, Alexandre Oliva via Gcc-patches > wrote: >> else >> { >> result = *ctx->global->values.get (res); >> - if (result == NULL_TREE && !*non_constant_p) >> + if (result == NULL_TREE && !*non_constant_p >> + && !DECL_DESTRUCTOR_P (fun))
> Would it make sense to use > && !(DECL_DESTRUCTOR_P (fun) && targetm.cxx.cdtor_returns_this ()) > instead? Just before the 'else' above, there's a test for a void result type, which covers the '!targetm.cxx.cdtor_returns_this ()' case, so IMHO that would be excessive. And then, avoiding that error for dtors is not something that should be done only on some targets: no dtor should ever trigger that error. -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>