Dead
[official-gcc.git] / gomp-20050608-branch / gcc / testsuite / g++.old-deja / g++.mike / p2846.C
blobbce20bb0048849919b9e0cb35d227c5b1aaa77e8
1 // { dg-do run  }
2 // prms-id: 2846
4 extern "C" int printf(const char *, ...);
5 extern "C" void exit(int);
7 class A;
8 class B;
10 int c;
12 class A {
13 public:
15   A(void){}
16   A(const A&){}
17   A(const B&);
19   virtual ~A(void){}
21   virtual void print(void) const {
22     printf("A::print\n");
23     printf("FAIL\n");
24     exit(1);
25   }
26   B compute(void) const;
29 class B : private A {
30 friend class A;
31 public:
33   virtual ~B(void){}
35   void print(void) const {
36     ++c;
37     printf("B::print\n");
38   }
40 private:
41   B(const A& x, int){}
44 A::A(const B& s) {
45   s.print();
48 B A::compute(void) const {
49   B sub(*this, 1);
50   return sub;
53 int main ()
55   A titi;
56   A toto = titi.compute();
57   if (c != 1)
58     {
59       printf ("FAIL\n");
60       return 1;
61     }
62   else
63     {
64       printf("PASS\n");
65       return 0;
66     }