[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