https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112442
Xi Ruoyao <xry111 at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED CC| |xry111 at gcc dot gnu.org --- Comment #6 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- It's definitely an aliasing rule violation. And it's still wrong even if you use a void pointer. The void pointer "workaround" just happens to work by luck.