47 lines
465 B
C
47 lines
465 B
C
// { dg-do run }
|
|
// Source: Neil Booth, from PR #111.
|
|
|
|
class A
|
|
{
|
|
public :
|
|
int i;
|
|
};
|
|
|
|
class B : virtual public A
|
|
{
|
|
};
|
|
|
|
class C : virtual public A
|
|
{
|
|
};
|
|
|
|
class D : public B, public C
|
|
{
|
|
public :
|
|
int f(void);
|
|
int g(void);
|
|
};
|
|
|
|
int D::f(void)
|
|
{
|
|
return B::i;
|
|
}
|
|
|
|
int D::g(void)
|
|
{
|
|
return this->B::i;
|
|
}
|
|
|
|
D d;
|
|
extern "C" void abort (void);
|
|
|
|
int main(void)
|
|
{
|
|
d.C::i=325;
|
|
|
|
if (d.f() != d.B::i || d.f() != d.g())
|
|
abort ();
|
|
|
|
return 0;
|
|
}
|