aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.law/visibility20.C
blob: 011abef44c92fbfc16cef0c11d3bc0c78610e1dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Build don't link: 
// 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() {} // 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// ERROR - .*
                                // since it is not called on 'this'
}

main() {
    Base b;
    Derived d;
    d.noticeThisFunction(&b);
    printf("gpptest run\n");// ERROR - .*
}