https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71460
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Richard Biener from comment #3) > It looks like RTL expansion uses DFmode to copy the aggregate which is likely > because the backend (or stor-layout.c) assigns DFmode to struct s. A similar > issue should exist on Itanium. > > This means the x86 target, to fix this particular case, should implement > targetm.member_type_forces_blk for x87 modes (and -fsignalling-nans?). We already have this hook defined for XFmode. IMO, we just have to use IS_STACK_MODE macro instead (and perhaps flag_signaling_nans).