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.)

Reply via email to