1 // { dg-do assemble  }
2 // GROUPS passed visibility
3 // visibility file
4 // From: joe@consolve.com (Joe Shapiro)
5 // Date:     Fri, 20 Aug 93 17:18:18 EDT
6 // Subject:  Template classes seem to allow users to get at private members
7 // Message-ID: <9308202118.AA25599@ghana.consolve>
8 /*
9  * private.cc
10  */
11 extern "C" int printf (const char *, ...);
12 
13 template <class T>
14 class A
15 {
16 public:
Fun()17       void Fun() { printf( "Fun fun fun!\n" ); } // { dg-message "" } private
18 };
19 
20 
21 template <class T>
22 class B: private A<T>
23 {
24 };
25 
26 
27 class C
28 {
29 public:
C()30     C() { _b.Fun(); }// { dg-error "" } .*
31 
32 private:
33     B<int> _b;
34 };
35 
36 
main()37 int main()
38 {
39     C c;
40 }
41