https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97161
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Note type punning through a union only works when the union type is visible but you are using int * and short * for accesses. So you indeed do GCCs view on C strict aliasing rules.