aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/va-arg-3.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/va-arg-3.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/va-arg-3.c339
1 files changed, 0 insertions, 339 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-3.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-3.c
deleted file mode 100644
index 7b0a0b0cf36..00000000000
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-3.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/* Same as va-arg-2.c but using varargs.h. */
-/* The purpose of this test is to catch edge cases when arguments are passed
- in regs and on the stack. We test 16 cases, trying to catch multiple
- targets (some use 3 regs for argument passing, some use 12, etc.).
- We test both the arguments and the `lastarg' (the argument to va_start). */
-
-#ifdef NO_VARARGS
-int main()
-{
- exit (0);
-}
-
-#else
-#include <varargs.h>
-
-extern __SIZE_TYPE__ strlen ();
-
-int
-to_hex (unsigned int a)
-{
- static char hex[] = "0123456789abcdef";
-
- if (a > 15)
- abort ();
- return hex[a];
-}
-
-void
-f0 (va_alist)
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 0)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f1 (a1, va_alist)
- int a1;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 1)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f2 (a1, a2, va_alist)
- int a1, a2;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 2)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f3 (a1, a2, a3, va_alist)
- int a1, a2, a3;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 3)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f4 (a1, a2, a3, a4, va_alist)
- int a1, a2, a3, a4;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 4)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f5 (a1, a2, a3, a4, a5, va_alist)
- int a1, a2, a3, a4, a5;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 5)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f6 (a1, a2, a3, a4, a5, a6, va_alist)
- int a1, a2, a3, a4, a5, a6;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 6)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f7 (a1, a2, a3, a4, a5, a6, a7, va_alist)
- int a1, a2, a3, a4, a5, a6, a7;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 7)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f8 (a1, a2, a3, a4, a5, a6, a7, a8, va_alist)
- int a1, a2, a3, a4, a5, a6, a7, a8;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 8)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f9 (a1, a2, a3, a4, a5, a6, a7, a8, a9, va_alist)
- int a1, a2, a3, a4, a5, a6, a7, a8, a9;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 9)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f10 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, va_alist)
- int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 10)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f11 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
- va_alist)
- int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 11)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f12 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, va_alist)
- int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 12)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f13 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, va_alist)
- int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 13)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f14 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, va_alist)
- int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 14)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-void
-f15 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, va_alist)
- int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15;
- va_dcl
-{
- va_list ap;
- char *format;
-
- va_start (ap);
- format = va_arg (ap, char *);
- if (strlen (format) != 16 - 15)
- abort ();
- while (*format)
- if (*format++ != to_hex (va_arg (ap, int)))
- abort ();
- va_end(ap);
-}
-
-main ()
-{
- char *f = "0123456789abcdef";
-
- f0 (f+0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
- f1 (0, f+1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
- f2 (0, 1, f+2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
- f3 (0, 1, 2, f+3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
- f4 (0, 1, 2, 3, f+4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
- f5 (0, 1, 2, 3, 4, f+5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
- f6 (0, 1, 2, 3, 4, 5, f+6, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
- f7 (0, 1, 2, 3, 4, 5, 6, f+7, 7, 8, 9, 10, 11, 12, 13, 14, 15);
- f8 (0, 1, 2, 3, 4, 5, 6, 7, f+8, 8, 9, 10, 11, 12, 13, 14, 15);
- f9 (0, 1, 2, 3, 4, 5, 6, 7, 8, f+9, 9, 10, 11, 12, 13, 14, 15);
- f10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, f+10, 10, 11, 12, 13, 14, 15);
- f11 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, f+11, 11, 12, 13, 14, 15);
- f12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, f+12, 12, 13, 14, 15);
- f13 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, f+13, 13, 14, 15);
- f14 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, f+14, 14, 15);
- f15 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, f+15, 15);
-
- exit (0);
-}
-#endif /* ! NO_VARARGS */