| // { 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 "" } .* |
| } |
| |