https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101353
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > ??? In some situations (when the struct is returned in memory via > invisible argument) we could deal with this, e.g. by passing 'p' > itself as that argument to foo, but it's too early to do this here, > and expand_call() will not handle it anyway. If it ever can, then > we need to revisit this here, to allow that situation. */ > > > So Adding FIXME. Note for RSO (which is forced invisible argument), we should be able to do it always if the LHS is global variable (or an offset from a global variable).