It is fine GCC is either right/more helpful (it sticks to the standard VERY strongly)
It can't see why the definition would be ambiguous because you're talking about a type not a member, and type are equal if their names are equal in C++ (names being some mangled form of types involved and such)
Addendum:
It'd be wrong if "nested" and "nested" in the other base were different. It is a struct, not a typedef or using (which are scoped)
GCC will whine if something is ambiguous, try with -pedantic if you want to make it bitch even where it is not. I see no reason why this should be rejected even if GCC is just being permissive.