http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50569
--- Comment #5 from Paul Koning <pkoning at gcc dot gnu.org> 2011-09-29 20:55:15 UTC --- If the memcpy actually happens, that is the expected result. The issue in the MIPS case is that the memcpy is optimized away, and the source data accessed instead, which would be ok if GCC hadn't lost track of the fact that it's a char* pointer (and, in addition, that all the fields of the struct in question are defined as "packed").