http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52182
Bug #: 52182 Summary: unnamed structs/unions are supported by ISO C99 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: jan.kratoch...@redhat.com http://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html#Unnamed-Fields says "As permitted by ISO C11" and also: echo 'struct { int a; struct { int b; }; } s;'|gcc -c -x c - -Wall -std=c99 -pedantic <stdin>:1:34: warning: ISO C99 doesn’t support unnamed structs/unions [-pedantic] FAIL: gcc (GCC) 4.6.3 20120209 (prerelease) FAIL: gcc (GCC) 4.7.0 20120209 (experimental) plus FAIL: gcc (GCC) 4.4.7 20120209 (prerelease) FAIL: gcc (GCC) 4.5.4 20120209 (prerelease) print <stdin>:1:34: warning: declaration does not declare anything But ISO C99 says: A structure type describes a sequentially allocated nonempty set of member objects (and, in certain circumstances, an incomplete array), each of which has an optionally specified name and possibly distinct type. ^^^^^^^^^^^^^^^^^^^^^^^^^ A union type describes an overlapping nonempty set of member objects, each of which has an optionally specified name and possibly distinct type. ^^^^^^^^^^^^^^^^^^^^^^^^^ (I agree ISO C90 spec still did not support unnamed fields.)