https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94609
--- Comment #6 from H.J. Lu <hjl.tools at gmail dot com> --- (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?