1// { dg-do compile } 2class A 3{ 4protected: 5 A *m_fn2 (int) const; 6public: 7 virtual A *m_fn1 (int *) const = 0; 8}; 9class B : A 10{ 11 B (A *, int, A *); 12 A *m_fn1 (int *) const; 13}; 14A * 15B::m_fn1 (int *) const 16{ 17 new B (m_fn2 (0)->m_fn1 (0), 0, m_fn2 (0)->m_fn1 (0)); 18} 19 20