diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.law/visibility20.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.law/visibility20.C | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility20.C b/gcc/testsuite/g++.old-deja/g++.law/visibility20.C new file mode 100644 index 000000000..0560523bf --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.law/visibility20.C @@ -0,0 +1,36 @@ +// { dg-do assemble } +// GROUPS passed visibility +// visibility file +// From: doug@foxtrot.ccmrc.ucsb.edu (Douglas Scott) +// Date: Tue, 10 Aug 93 10:06:33 PDT +// Subject: G++ 2.4.5 allows access to protected base members +// Message-ID: <9308101706.AA04485@foxtrot.ccmrc.ucsb.edu> + +class Base { +protected: + void protectedBaseFunction() {} // { dg-error "" } protected +public: + Base() {} +}; + + +class Derived : public Base { +public: + Derived() {} + void noticeThisFunction(Base *); +}; + + +void +Derived::noticeThisFunction(Base *b) { + b->protectedBaseFunction(); // ARM says this is not allowed// { dg-error "" } .* + // since it is not called on 'this' +} + +int main() { + Base b; + Derived d; + d.noticeThisFunction(&b); + printf("gpptest run\n");// { dg-error "" } .* +} + |