diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/tc1/dr52.C')
-rw-r--r-- | gcc/testsuite/g++.dg/tc1/dr52.C | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/tc1/dr52.C b/gcc/testsuite/g++.dg/tc1/dr52.C new file mode 100644 index 000000000..4f4015dc9 --- /dev/null +++ b/gcc/testsuite/g++.dg/tc1/dr52.C @@ -0,0 +1,34 @@ +// { dg-do compile } +// Origin: Giovanni Bajo <giovannibajo at gcc dot gnu dot org> +// DR52: Non-static members, member selection and access checking + +struct A +{ + void foo(void); +}; + +struct B +{ +private: + void foo(void); +}; + +struct B1 : B {}; +struct B2 : B {}; + +struct C +{ // { dg-error "C" } + void foo(void); +}; + +struct D : private C {}; + +struct X: A, B1, B2, D +{ +public: + void bar(void) + { + this->B::foo(); // { dg-error "" } + this->C::foo(); // { dg-error "inaccessible|context" } + } +}; |