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

--- Comment #8 from Iain Buclaw <ibuclaw at gdcproject dot org> ---
(In reply to H.J. Lu from comment #6)
> (In reply to Iain Buclaw from comment #5)
> > The struct is built as a POD type.  As the struct is nested, it should be
> > considered non-POD, otherwise it gets left up to aggregate_value_p to decide
> > how to pass it around.
> > 
> > i386 returns true from aggregate_value_p because flag_pcc_struct_return=1.
> > 
> > x86_64 returns true from aggregate_value_p because
> > targetm.calls.return_in_memory returns true.
> > 
> > x32 returns false from aggregate_value_p because the halved size makes it
> > small enough to pass around in registers.
> 
> Does x32 return it in a single 64-bit register?

Two 64-bit registers.  The size of struct Scoped is 32 bytes on x86_64, 16
bytes on x32.

Reply via email to