https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679
--- Comment #20 from rguenther at suse dot de <rguenther at suse dot de> --- On Mon, 24 Nov 2014, jgreenhalgh at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679 > > --- Comment #19 from jgreenhalgh at gcc dot gnu.org --- > (In reply to rguent...@suse.de from comment #16) > > Certainly removing the alignment is not going to fly - we'd generate > > very bad code for strict-align targets for initializing packed > > structs by pieces for example. > > Surely this is already true? > > The alignment here is what we can assume for the entire aggregate - the > previous check was can_move_by_pieces, which doesn't check the components of > the aggregate. > > For a well-aligned aggreagate of the appropriate size, can_move_by_pieces will > return true, and we'll initialize the packed struct by its components > regardless of the component alignment. > > Or am I missing something? I thought that AARCH64 fails to do the init by pieces exactly because can_move_by_pieces_p say so. Adding another condition that may also reject it won't help, no? Richard. >