I think an anon union or struct ought to work at top level or in any block. It's nice for data layout, to reduce cache footprint, page faults, etc.
Here is a silly example: union { int i; float f; }; int foo(arg){ f = arg; return i; } -- Summary: anon union/struct at top level Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: acahalan at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26370