[class.mem.general] p3 explicitly says
A data member is a non-function member introduced by a member-declarator.
While [class.union.anon] p1 says
A union of the form union { member-specification } ; is called an anonymous union; it defines an unnamed type and an unnamed object of that type called an anonymous union member if it is a non-static data member or an anonymous union variable otherwise.
Such two rules contradict each other. Maybe, we should say
An anonymous union behaves as if it were replaced by
union { member-specification } unnamed;