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