Dead
[official-gcc.git] / gomp-20050608-branch / gcc / testsuite / g++.old-deja / g++.jason / thunk1.C
blob7de3c93e7f2435b1eaf9b5faab6059830a0b0145
1 // { dg-do run  }
2 // Test that non-variadic function calls using thunks work right.
4 struct A {
5   void* p;
6   A (void* q): p (q) { }
7   A (const A& a): p (a.p) { }
8 };
10 class CBase {
11 public:
12   virtual void BaseFunc();
15 class MMixin {
16 public:
17    virtual A MixinFunc(int arg, A arg2) = 0;
20 class CExample : public CBase, public MMixin {
21 public:
22    A MixinFunc(int arg, A arg2);
25 void CBase::BaseFunc()
29 A CExample::MixinFunc(int arg, A arg2)
31   if (arg != 1 || arg2.p != 0)
32     return 0;
33   return this;
36 void* test(MMixin& anExample)
38   return anExample.MixinFunc(1,A(0)).p;
41 int main ()
43   CExample c;
45   if (test(c) != &c)
46     return 1;