https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94692
Bug ID: 94692 Summary: Zero-sized arrays shouldn't require a complete element type Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: sasho648 at gmail dot com Target Milestone: --- Because they don't reserve any storage. union db { union dd dd[0]; unsigned char udb; signed char sdb; } *ptr; union dd { union db db[0]; unsigned long udd; signed long sdd; } data = *(ptr+0x3B)->dd;