1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// { dg-do run } struct A { virtual void f() { } }; struct B { virtual void g() { } }; struct C : public A, public B { }; int main () { C* cp = 0; B* bp = 0; if (dynamic_cast <B*> (cp) != 0) return 1; if (dynamic_cast <void *> (bp) != 0) return 1; if (dynamic_cast <C*> (bp) != 0) return 1; }