https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105510
--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- We have a documented extension: As a GNU extension, GCC allows initialization of objects with static storage duration by compound literals (which is not possible in ISO C99 because the initializer is not a constant). It is handled as if the object were initialized only with the brace-enclosed list if the types of the compound literal and the object match. The elements of the compound literal must be constant. If the object being initialized has array type of unknown size, the size is determined by the size of the compound literal. So the question is whether this extension should also allow the case where a compound literal is used to initialize a sub-object.