[patch] Fix PR C++/90448

Richard Biener richard.guenther@gmail.com
Tue Mar 9 08:52:38 GMT 2021


On Mon, Mar 8, 2021 at 6:19 PM Eric Botcazou <botcazou@adacore.com> wrote:
>
> Hi,
>
> this is a regression present on the mainline and 10 branch for architectures
> that pass all structure types by reference, e.g. 32-bit PowerPC or SPARC.
>
> Jakub posted a detailed analysis in the audit trail and this boils down to
> the RTL expander trying to take the address of a DECL whose RTX is a register.
>
> Bootstrapped/regtested on x86-64/Linux, PowerPC64/Linux and SPARC/Solaris,
> OK for the mainline and 10 branch?

The whole point of thunks is that they do not require things like copying ... is
this case somehow IPA-SRA/CPed in an odd way?  Otherwise it seems like
the passed through reference was mishandled on the GIMPLE level?

Honza?

>
> 2021-03-08  Eric Botcazou  <ebotcazou@adacore.com>
>
>         PR C++/90448
>         * calls.c (initialize_argument_information): When the argument
>         is passed by reference, do not make a copy in a thunk only if
>         the argument is already in memory.  Remove redundant test for
>         the case of callee copy.
>
> --
> Eric Botcazou


More information about the Gcc-patches mailing list