OSDN Git Service

* cp-tree.h (flag_access_control): Declare.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.law / visibility19.C
1 // Build don't link: 
2 // GROUPS passed visibility
3 // visibility file
4 // From: mclaugh@tnt.acsys.com (Mark A. McLaughlin)
5 // Date:     Wed, 25 Aug 93 14:30:47 MDT
6 // Subject:  g++ bug
7 // Message-ID: <9308252030.AA02352@tnt.acsys.com>
8 class B {
9 protected:
10     int i; // ERROR - protected
11 };
12
13 class D1 : public B {
14 };
15
16 class D2 : public B {
17     friend void fr(B*,D1*,D2*);
18     void mem(B*,D1*);
19 };
20
21 void fr(B* pb, D1* p1, D2* p2)
22 {
23     pb->i = 1;  // illegal// ERROR - .*
24     p1->i = 2;  // illegal// ERROR - .*
25     p2->i = 3;  // ok (access through D2)
26 }
27
28 void D2::mem(B* pb, D1* p1)
29 {
30     pb->i = 1;  // illegal// ERROR - .*
31     p1->i = 2;  // illegal// ERROR - .*
32     i = 3;      // ok (access through `this')
33 }
34
35 void g(B* pb, D1* p1, D2* p2)
36 {
37     pb->i = 1;  // illegal// ERROR - .*
38     p1->i = 2;  // illegal// ERROR - .*
39     p2->i = 3;  // illegal// ERROR - .*
40 }