Daily bump.
[official-gcc.git] / libvtv / testsuite / libvtv.cc / test1.cc
blob9005826dff4464f6078b25b4e9c60667859aec28
1 // { dg-do run }
3 // Small test case from povray, see if it reproduces.
5 #include <stdio.h>
7 class POVMS_MessageReceiver
10 private:
11 int x;
12 class Handler
14 public:
15 virtual void print() = 0;
17 protected:
18 template<class T> class MemberHandler : public Handler
20 public:
21 MemberHandler(T *xx)
23 x = xx;
26 ~MemberHandler() {}
28 void print()
30 printf("In print\n");
32 private:
33 T *x;
36 private:
37 struct HandlerNode
39 Handler *handler;
42 HandlerNode *receiver;
43 public:
44 POVMS_MessageReceiver(int xx) : x(xx) {}
45 ~POVMS_MessageReceiver() {}
47 void foo(int *xx);
48 void try_call();
51 void POVMS_MessageReceiver::foo(int *xx)
53 receiver = new HandlerNode;
55 receiver->handler = new MemberHandler<int>(xx);
58 void POVMS_MessageReceiver::try_call()
60 receiver->handler->print();
64 int main()
66 int loc = 34;
67 POVMS_MessageReceiver a_test(100);
69 a_test.foo(&loc);
70 a_test.try_call();