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