https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67701
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- As said in another bug GCC tries to be conservative (QOI) and fixes up programmer mistakes in case it can see that the alignment of some memory is clearly _not_ according to the language requirement (as here, dereferencing a int *). In this case it sees the global 'unsigned char[]' and concludes its alignment does not have to be larger than to 1 byte. We could change that behavior with a flag if people like (-fstrict-alignment?).