https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71372
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I've seen a similar bug being reported recently and was not able to confirm on x86_64 so I made it target specific (IIRC it was mingw or cygwin). GCC certainly honors volatile here (on x86_64-linux). I can only guess that alignment and bitfield expansion may play a role.