https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68462
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- With N_domains non-static GCC has to assume it has its address taken and thus it thinks that the stores to ->next, .lol and .size can alias it. So the issue that -fno-strict-aliasing is not "respected" is that type-based aliasing only matters for memory accesses via pointers and GCC can independelty prove that N_domains is not pointed-to if it is static.