rt_gccstream/gcc/testsuite/g++.old-deja/g++.other/virtual9.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;
}