http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28107
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- Yes, this is invalid, a member definition such as "union B b;" does not declare a nested type, that would be: struct A { union B; B b; };