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