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