mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-14 20:00:22 +08:00
* gcc.c-torture/execute/va-arg-10.c: New test.
From-SVN: r29691
This commit is contained in:
parent
8ebecc3b1c
commit
8bbcc7ce6b
@ -1,3 +1,7 @@
|
||||
Tue Sep 28 01:19:09 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||||
|
||||
* gcc.c-torture/execute/va-arg-10.c: New test.
|
||||
|
||||
Mon Sep 27 09:14:24 BST 1999 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* g++.old-deja/g++.pt/memtemp77.C: Adjust expected
|
||||
|
248
gcc/testsuite/gcc.c-torture/execute/va-arg-10.c
Normal file
248
gcc/testsuite/gcc.c-torture/execute/va-arg-10.c
Normal file
@ -0,0 +1,248 @@
|
||||
/* This is a modfied version of va-arg-9.c to test va_copy. */
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifndef va_copy
|
||||
#define va_copy __va_copy
|
||||
#endif
|
||||
|
||||
extern __SIZE_TYPE__ strlen (const char *);
|
||||
|
||||
int
|
||||
to_hex (unsigned int a)
|
||||
{
|
||||
static char hex[] = "0123456789abcdef";
|
||||
|
||||
if (a > 15)
|
||||
abort ();
|
||||
return hex[a];
|
||||
}
|
||||
|
||||
void
|
||||
fap (int i, char* format, va_list ap)
|
||||
{
|
||||
va_list apc;
|
||||
char *formatc;
|
||||
|
||||
va_copy (apc, ap);
|
||||
formatc = format;
|
||||
|
||||
if (strlen (format) != 16 - i)
|
||||
abort ();
|
||||
while (*format)
|
||||
if (*format++ != to_hex (va_arg (ap, int)))
|
||||
abort ();
|
||||
while (*formatc)
|
||||
if (*formatc++ != to_hex (va_arg (apc, int)))
|
||||
abort ();
|
||||
}
|
||||
|
||||
void
|
||||
f0 (char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, format);
|
||||
fap(0, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f1 (int a1, char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(1, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f2 (int a1, int a2, char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(2, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f3 (int a1, int a2, int a3, char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(3, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f4 (int a1, int a2, int a3, int a4, char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(4, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f5 (int a1, int a2, int a3, int a4, int a5,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(5, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f6 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(6, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f7 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(7, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f8 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7, int a8,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(8, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f9 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7, int a8, int a9,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(9, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f10 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7, int a8, int a9, int a10,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(10, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f11 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7, int a8, int a9, int a10,
|
||||
int a11,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(11, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f12 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7, int a8, int a9, int a10,
|
||||
int a11, int a12,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(12, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f13 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7, int a8, int a9, int a10,
|
||||
int a11, int a12, int a13,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(13, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f14 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7, int a8, int a9, int a10,
|
||||
int a11, int a12, int a13, int a14,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(14, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
f15 (int a1, int a2, int a3, int a4, int a5,
|
||||
int a6, int a7, int a8, int a9, int a10,
|
||||
int a11, int a12, int a13, int a14, int a15,
|
||||
char* format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, format);
|
||||
fap(15, format, ap);
|
||||
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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user