http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49413
--- Comment #7 from Matt Gattis <gattis at gmail dot com> 2011-06-15 01:19:57 UTC --- (In reply to comment #6) > The problem is: > double *v = (qp == &(t->q)) ? t->xyz->va : t->xyz->vb; > > the pointer v is a pointer to a 8 byte aligned data but you supply it with > something which is only 4 byte aligned. Silly me, I thought the whole point of a compiler was to make it so you didn't have to code to machine-specific byte alignments and instructions.