https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71560
vries at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|wrong-code |documentation --- Comment #1 from vries at gcc dot gnu.org --- Here ( http://en.cppreference.com/w/c/language/struct_initialization ) I read: ... When initializing a union, the initializer list must have only one member, which initializes the first member of the union unless a designated initializer is used (since C99). ... That sound like the behaviour I'm observing. In that case, it's not wrong-code, but the gcc documentation is misleading.