// { dg-do assemble } // Copyright (C) 2000 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 23 June 2000 // Origin GNATS bug report 69 from Glenn Ammons // // A base which derives a virtual base hides declarations in the virtual base, // even if that virtual base is accessible via another path [10.2]/6. Make // sure that non-virtual bases of the virtual base are also hidden, not matter // what order bases are declared in. struct A {int a;}; struct B : A {}; struct L1 : virtual B { int a; }; struct L2 : virtual A { int a; }; struct R1 : virtual B {}; struct R2 : virtual A {}; struct C1 : R1, L1 {}; struct C2 : R2, L2 {}; struct D1 : L1, R1 {}; struct D2 : L2, R2 {}; void fn (C1 *c1, D1 *d1, C2 *c2, D2 *d2) { c1->a = 1; d1->a = 1; c2->a = 1; d2->a = 1; }