| // { dg-do compile } | |
| class A { | |
| virtual unsigned long m_fn1() const; | |
| virtual int &m_fn2(unsigned long) const; | |
| }; | |
| class C : A { | |
| public: | |
| int &m_fn2(unsigned long) const; | |
| unsigned long m_fn1() const; | |
| }; | |
| class B { | |
| void m_fn3(const A &, const int &, const C &, int &) const; | |
| }; | |
| void B::m_fn3(const A &, const int &, const C &, int &) const { | |
| C &a(a); | |
| for (long b = 0; a.m_fn1(); b++) | |
| a.m_fn2(0); | |
| } |