// { dg-do assemble } | |
// The standard sez that a use of a name gets the most access it can through | |
// the various paths that can reach it. Here, the access decl in B gives | |
// us access. | |
struct A | |
{ | |
void f (); | |
}; | |
struct B: private virtual A | |
{ | |
A::f; | |
}; | |
struct C: private virtual A, public B | |
{ | |
}; | |
int | |
main () | |
{ | |
C c; | |
c.f (); | |
} |