https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89052
--- Comment #2 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I'd say it's a bug for GCC to need to allocate memory for the trailing zero-initialized part of such an object at all; it should only need to allocate memory for the initial part and remember that the rest is zero (and then tell the assembler that the rest is zero, leaving it to the assembler to fail / try to produce a huge object file / ...).