https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33514
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This is correct, the other two cases (h4 and h8) are overflows that happen at runtime rather than compile time. If you change l4 (and l8) to be const, you get the compile time warning and it makes it more like the ones inside ones inside the struct.