2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.law / visibility19.C
blobf2bb302ca5122e83858f8d84722be78f8bbf6761
1 // { dg-do assemble  }
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; // { dg-error "" } protected
13 class D1 : public B {
16 class D2 : public B {
17     friend void fr(B*,D1*,D2*);
18     void mem(B*,D1*);
21 void fr(B* pb, D1* p1, D2* p2)
23     pb->i = 1;  // illegal// { dg-error "" } .*
24     p1->i = 2;  // illegal// { dg-error "" } .*
25     p2->i = 3;  // ok (access through D2)
28 void D2::mem(B* pb, D1* p1)
30     pb->i = 1;  // illegal// { dg-error "" } .*
31     p1->i = 2;  // illegal// { dg-error "" } .*
32     i = 3;      // ok (access through `this')
35 void g(B* pb, D1* p1, D2* p2)
37     pb->i = 1;  // illegal// { dg-error "" } .*
38     p1->i = 2;  // illegal// { dg-error "" } .*
39     p2->i = 3;  // illegal// { dg-error "" } .*