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;
};