mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-07 20:40:37 +08:00
More va-arg variations. OKed by Jeff Law.
From-SVN: r32887
This commit is contained in:
parent
c7b95850fb
commit
87e2376db3
46
gcc/testsuite/gcc.c-torture/execute/va-arg-15.c
Normal file
46
gcc/testsuite/gcc.c-torture/execute/va-arg-15.c
Normal file
@ -0,0 +1,46 @@
|
||||
#include <varargs.h>
|
||||
|
||||
void vafunction (dummy, va_alist)
|
||||
char *dummy;
|
||||
va_dcl
|
||||
{
|
||||
double darg;
|
||||
int iarg;
|
||||
int flag = 0;
|
||||
int i;
|
||||
va_list ap;
|
||||
|
||||
va_start(ap);
|
||||
for (i = 1; i <= 18; i++, flag++)
|
||||
{
|
||||
if (flag & 1)
|
||||
{
|
||||
darg = va_arg (ap, double);
|
||||
if (darg != (double)i)
|
||||
abort();
|
||||
}
|
||||
else
|
||||
{
|
||||
iarg = va_arg (ap, int);
|
||||
if (iarg != i)
|
||||
abort();
|
||||
}
|
||||
}
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
int main (void)
|
||||
{
|
||||
vafunction( "",
|
||||
1, 2.,
|
||||
3, 4.,
|
||||
5, 6.,
|
||||
7, 8.,
|
||||
9, 10.,
|
||||
11, 12.,
|
||||
13, 14.,
|
||||
15, 16.,
|
||||
17, 18. );
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
43
gcc/testsuite/gcc.c-torture/execute/va-arg-16.c
Normal file
43
gcc/testsuite/gcc.c-torture/execute/va-arg-16.c
Normal file
@ -0,0 +1,43 @@
|
||||
#include <varargs.h>
|
||||
|
||||
typedef double TYPE;
|
||||
|
||||
void vafunction (dummy1, dummy2, va_alist)
|
||||
TYPE dummy1, dummy2;
|
||||
va_dcl
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap);
|
||||
if (dummy1 != 888.)
|
||||
abort();
|
||||
if (dummy2 != 999.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 1.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 2.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 3.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 4.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 5.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 6.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 7.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 8.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 9.)
|
||||
abort();
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
||||
int main (void)
|
||||
{
|
||||
vafunction( 888., 999., 1., 2., 3., 4., 5., 6., 7., 8., 9. );
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
39
gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
Normal file
39
gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
Normal file
@ -0,0 +1,39 @@
|
||||
#include <varargs.h>
|
||||
|
||||
typedef double TYPE;
|
||||
|
||||
void vafunction (dummy, va_alist)
|
||||
char *dummy;
|
||||
va_dcl
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap);
|
||||
if (va_arg (ap, TYPE) != 1.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 2.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 3.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 4.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 5.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 6.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 7.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 8.)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 9.)
|
||||
abort();
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
||||
int main (void)
|
||||
{
|
||||
vafunction( "", 1., 2., 3., 4., 5., 6., 7., 8., 9. );
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
24
gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
Normal file
24
gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
Normal file
@ -0,0 +1,24 @@
|
||||
#include <stdarg.h>
|
||||
|
||||
typedef double L;
|
||||
void f (L p0, L p1, L p2, L p3, L p4, L p5, L p6, L p7, L p8, ...)
|
||||
{
|
||||
va_list select;
|
||||
|
||||
va_start (select, p8);
|
||||
|
||||
if (va_arg (select, int) != 10)
|
||||
abort ();
|
||||
if (va_arg (select, int) != 11)
|
||||
abort ();
|
||||
if (va_arg (select, int) != 12)
|
||||
abort ();
|
||||
|
||||
va_end (select);
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
f (1., 2., 3., 4., 5., 6., 7., 8., 9., 10, 11, 12);
|
||||
exit (0);
|
||||
}
|
39
gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
Normal file
39
gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
Normal file
@ -0,0 +1,39 @@
|
||||
#include <varargs.h>
|
||||
|
||||
typedef int TYPE;
|
||||
|
||||
void vafunction (dummy, va_alist)
|
||||
char *dummy;
|
||||
va_dcl
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap);
|
||||
if (va_arg (ap, TYPE) != 1)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 2)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 3)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 4)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 5)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 6)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 7)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 8)
|
||||
abort();
|
||||
if (va_arg (ap, TYPE) != 9)
|
||||
abort();
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
||||
int main (void)
|
||||
{
|
||||
vafunction( "", 1, 2, 3, 4, 5, 6, 7, 8, 9 );
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user