https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66804
--- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- You're invoking undefined behavior: test.c:34:12: runtime error: store to misaligned address 0x000000401c8c for type 'unsigned char *', which requires 8 byte alignment 0x000000401c8c: note: pointer points here 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ So your testcase is invalid.