------- Comment #2 from richard-gccbugzilla at metafoo dot co dot uk 2007-06-05 17:21 ------- Points worthy of note:
1) The OP's code is legal (to my reading of the standard) but meaningless. Private members in unnamed classes are legal, while private members in anonymous unions are not. So technically this should be tagged as rejects-valid. 2) If the code is made meaningful by defining a variable whose type is the unnamed class, the incorrect diagnostic goes away: struct A { class { static int i; int j; } k; }; 3) In my opinion, it would be valuable to produce a diagnostic in the situation of the code in comment#0, as a quality of implementation issue. I'm not sure whether the standard requires a diagnostic here. Comeau produces an error in this case ("declaration does not declare anything"). -- richard-gccbugzilla at metafoo dot co dot uk changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |richard-gccbugzilla at | |metafoo dot co dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30300