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.

>

Reply via email to