ā² | seritools a day ago | |
> If the size of the new type is larger than the size of the last-written type, the contents of the excess bytes are unspecified (and may be a trap representation). Before C99 TC3 (DR 283) this behavior was undefined, but commonly implemented this way. https://en.cppreference.com/w/c/language/union > 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). https://en.cppreference.com/w/c/language/struct_initializati... ā = {0} initializes the first union variant, and bytes outside of that first variant are unspecified. Seems like GCC 15.1 follows the 26 year old standard correctly. (not sure how much has changed from C89 here) |