OSDN Git Service

2003-01-08 Larin Hennessey <larin@science.oregonstate.edu>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.mike / p2960.C
1 // prms-id: 2960
2
3 extern "C" int printf(const char *, ...);
4
5 class Test0 {
6 public:
7   virtual void f0() { }      // works fine if this virtual removed
8 };
9
10 class Test1 : public Test0 {
11 public:
12   void f1() { f2(); }           // generates bus error here
13   virtual void f2() { printf("Test1::f2\n"); }
14 };
15
16 class Test2 {
17 public:
18   virtual void f3() { }
19 };
20
21 class Test3 : public Test2, public Test1 {    // works fine if Test1 first
22 public:
23   virtual ~Test3() { f1(); }                       // calling f2 directly works
24   virtual void f2() { printf("Test3::f2\n"); }
25 };
26
27 int main() {
28     Test3 t3;
29     return 0;
30 }