diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/va-arg-15.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/va-arg-15.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-15.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-15.c new file mode 100644 index 000000000..24411f8c4 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-15.c @@ -0,0 +1,44 @@ +#include <stdarg.h> + +void vafunction (char *dummy, ...) +{ + double darg; + int iarg; + int flag = 0; + int i; + va_list ap; + + va_start(ap, dummy); + 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; +} |