https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83465
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |WONTFIX --- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- Here I admit it's confusing, but it's related how GCC emits variable initiation for scalars and arrays with -O0: While for the scalar we do: struct S * const ss; ss = &g; movq $g, -8(%rbp) In case of the array we use default value in assembly: .type sa.1804, @object .size sa.1804, 16 sa.1804: .quad g .quad g