7 This file is part of the Public Domain C Library (PDCLib).
8 Permission is granted to use, modify, and / or redistribute at will.
15 #include <_PDCLIB_test.h>
17 typedef int (*intfunc_t)( void );
32 static int test( enum tag_t s, ... )
43 TESTCASE( va_arg( ap, int ) == INT_MAX );
44 tag = va_arg( ap, enum tag_t );
49 TESTCASE( va_arg( ap, long ) == LONG_MAX );
50 tag = va_arg( ap, enum tag_t );
55 TESTCASE( va_arg( ap, long long ) == LLONG_MAX );
56 tag = va_arg( ap, enum tag_t );
61 TESTCASE( va_arg( ap, double ) == DBL_MAX );
62 tag = va_arg( ap, enum tag_t );
67 TESTCASE( va_arg( ap, long double ) == LDBL_MAX );
68 tag = va_arg( ap, enum tag_t );
73 TESTCASE( *( va_arg( ap, int * ) ) == INT_MAX );
74 tag = va_arg( ap, enum tag_t );
79 TESTCASE( *( va_arg( ap, long double * ) ) == LDBL_MAX );
80 tag = va_arg( ap, enum tag_t );
85 TESTCASE( (va_arg( ap, intfunc_t ))() == INT_MAX );
86 tag = va_arg( ap, enum tag_t );
98 static int dummy( void )
106 long double d = LDBL_MAX;
108 test( TAG_INT, INT_MAX, TAG_END );
109 test( TAG_LONG, LONG_MAX, TAG_LLONG, LLONG_MAX, TAG_END );
110 test( TAG_DBL, DBL_MAX, TAG_LDBL, LDBL_MAX, TAG_END );
111 test( TAG_INTPTR, &x, TAG_LDBLPTR, &d, TAG_FUNCPTR, dummy, TAG_END );