// g++ ought to warn about casting a base pointer to a derived reference. // Build don't link: struct A { virtual void f () = 0; }; struct B: public A { void f () { } }; int main() { B* bp; A& ar = (A&)bp; // WARNING - }