It is defined.
6.5.7. An object shall have its stored value accessed only by an lvalue expression that has one of the following types:
- an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union)
This means Derived is allowed to alias Base.