void ambig() { struct A {}; struct B : A {}; struct C : A {}; struct D : B, C {}; D d; A* ap = static_cast (&d); D* db = static_cast (ap); // { dg-error "" } D& dr1 = static_cast (*ap); // { dg-error "" } A& ar = static_cast (d); D& dr = static_cast (ar); // { dg-error "" } }