1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/* { dg-do compile } */
class A {
public:
A(int, int);
};
class B {
public:
void m_fn1(bool, const int *, int &);
unsigned m_fn2();
};
namespace {
class C {
B &VTables;
void m_fn3(A, unsigned, const int *, int &);
public:
int VFTableBuilder_VisitedBases;
B VFTableBuilder_VTables;
C() : VTables(VFTableBuilder_VTables) {
m_fn3(A(0, 0), 0, 0, VFTableBuilder_VisitedBases);
}
};
}
int a;
void C::m_fn3(A, unsigned, const int *, int &) {
for (;;)
1 ? VTables.m_fn2() : 0;
}
void B::m_fn1(bool, const int *, int &) { C(); }
unsigned B::m_fn2() { m_fn1(0, 0, a); }
|