Looking at this a little closer, I'm not sure why this is related to
alignment in first place. Whether a structure is returned in a register
should be controlled by -fpcc-struct-return/-freg-struct-return and the
DEFAULT_PCC_STRUCT_RETURN value in the config. In
function.c:aggregate_value_p there is shortly after the return_in_memory
hook the following test:
if (flag_pcc_struct_return && AGGREGATE_TYPE_P (type))
return 1;
IMO the alignment should have no influence here, so where is this coming
from?