// { 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); | |
} |