summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/thunk3.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/thunk3.C59
1 files changed, 0 insertions, 59 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C b/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
deleted file mode 100644
index 66ac8f9529c..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
+++ /dev/null
@@ -1,59 +0,0 @@
-// Test that variadic function calls using thunks work right.
-// Note that this will break on any target that uses the generic thunk
-// support, because it doesn't support variadic functions.
-
-// Special g++ Options: -fvtable-thunks
-// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3
-
-#include <stdarg.h>
-
-struct A {
- void* p;
- A (void* q): p (q) { }
- A (const A& a): p (a.p) { }
-};
-
-class CBase {
-public:
- void BaseFunc();
-};
-
-class MMixin {
-public:
- virtual A MixinFunc(int arg, ...) = 0;
-};
-
-class CExample : public CBase, public MMixin {
-public:
- A MixinFunc(int arg, ...);
-};
-
-void CBase::BaseFunc()
-{
-}
-
-A CExample::MixinFunc(int arg, ...)
-{
- va_list ap;
- va_start (ap, arg);
-
- if (arg != 1 || va_arg (ap, int) != 2 || va_arg (ap, int) != 3
- || va_arg (ap, int) != 4 || va_arg (ap, int) != 5
- || va_arg (ap, int) != 6 || va_arg (ap, int) != 7
- || va_arg (ap, int) != 8 || va_arg (ap, int) != 9)
- return 0;
- return this;
-}
-
-void* test(MMixin& anExample)
-{
- return anExample.MixinFunc(1,2,3,4,5,6,7,8,9).p;
-}
-
-main ()
-{
- CExample c;
-
- if (test(c) != &c)
- return 1;
-}