summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/va-arg-6.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/va-arg-6.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/va-arg-6.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-6.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-6.c
new file mode 100644
index 000000000..e8d495d66
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-6.c
@@ -0,0 +1,35 @@
+#include <stdarg.h>
+
+f (int n, ...)
+{
+ va_list args;
+
+ va_start (args, n);
+
+ if (va_arg (args, int) != 10)
+ abort ();
+ if (va_arg (args, long long) != 10000000000LL)
+ abort ();
+ if (va_arg (args, int) != 11)
+ abort ();
+ if (va_arg (args, long double) != 3.14L)
+ abort ();
+ if (va_arg (args, int) != 12)
+ abort ();
+ if (va_arg (args, int) != 13)
+ abort ();
+ if (va_arg (args, long long) != 20000000000LL)
+ abort ();
+ if (va_arg (args, int) != 14)
+ abort ();
+ if (va_arg (args, double) != 2.72)
+ abort ();
+
+ va_end(args);
+}
+
+main ()
+{
+ f (4, 10, 10000000000LL, 11, 3.14L, 12, 13, 20000000000LL, 14, 2.72);
+ exit (0);
+}