static_cast5.C   [plain text]


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 "" }
}