Nested types, anonymous unions, and functions
shall not be declared within an anonymous union.
The names of the members of an anonymous union shall be distinct from
the names of any other entity in the scope in which the anonymous union
is declared.
For the purpose of name lookup, after the anonymous union
definition, the members of the anonymous union are considered to have
been defined in the scope in which the anonymous union is declared.
The assignment to plain aa is ill-formed since the member name
is not visible outside the union, and even if it were visible, it is not
associated with any particular object.