http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51315
--- Comment #8 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-12-06 16:41:38 UTC --- > Note that in the end it's always us transforming > > a->b.c > > to (effectively) > > T *tem = &a->b.c; > *tem > > which expand unfortunately handles differently. So whenever we do that > we have to either avoid doing that if expand would have a different > idea about the results alignment (there is currently no way that computes > just expands idea of an expressions alignment - one piece of a good > solution would provide that, not only SRA has this "issue"), or, stick > that information somewhere AFAICS that's what the memcpy folder does if STRICT_ALIGNMENT, so the generated GIMPLE is perfectly valid. But SRA isn't as cautious as the folder and, in particular, doesn't compare the alignments of source and destination. In any case, I don't think that we want to patch outside SRA on the 4.6 branch.