1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
void ambig() { struct A {}; struct B : A {}; struct C : A {}; struct D : B, C {}; D d; A* ap = static_cast<B*> (&d); D* db = static_cast<D*> (ap); // { dg-error "" } D& dr1 = static_cast<D&> (*ap); // { dg-error "" } A& ar = static_cast<C&> (d); D& dr = static_cast<D&> (ar); // { dg-error "" } }