http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49444
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-06-16 20:08:43 UTC --- Well, I'm 100% sure this is just the age-old bug that GCC can't expand misaligned indirect-refs (or nowadays mem-refs and target-mem-refs) on strict-align targets properly. Try the following on any GCC version: typedef int myint __attribute__((aligned(1))); int foo(myint *p) { return *p; } int main() { char c[5] = {}; return foo(&c[1]); } it'll fault on any strict-align target since forever. Now it would indeed be nice if _finally_ somebody would go and fix that ... Dup of ....