http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52979
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-04-24 10:47:04 UTC --- Doesn't apparently need a loop, the following fails on 4.7 branch and older trunk with -O2 -ftree-vectorize as well. The dummy foo function is important to reproduce it, apparently otherwise notice_global_symbol is called on a and creates DECL_RTL for it while it still has DECL_ALIGN 8. Later on vect_compute_data_ref_alignment increases the alignment of a to 128 and sets DECL_USER_ALIGN. extern void abort (void); int c, d, e; void foo (void) { } struct __attribute__((packed)) S { int g : 31; int h : 6; }; struct S a = { 1 }; static struct S b = { 1 }; void bar (void) { a.h = 1; struct S f = { }; b = f; e = 0; if (d) c = a.g; } void baz (void) { bar (); a = b; } int main () { baz (); if (a.g) abort (); return 0; }