summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/va-arg-5.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/va-arg-5.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/va-arg-5.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-5.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-5.c
new file mode 100644
index 000000000..3d8b1a79a
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-5.c
@@ -0,0 +1,44 @@
+#include <stdarg.h>
+
+va_double (int n, ...)
+{
+ va_list args;
+
+ va_start (args, n);
+
+ if (va_arg (args, double) != 3.141592)
+ abort ();
+ if (va_arg (args, double) != 2.71827)
+ abort ();
+ if (va_arg (args, double) != 2.2360679)
+ abort ();
+ if (va_arg (args, double) != 2.1474836)
+ abort ();
+
+ va_end (args);
+}
+
+va_long_double (int n, ...)
+{
+ va_list args;
+
+ va_start (args, n);
+
+ if (va_arg (args, long double) != 3.141592L)
+ abort ();
+ if (va_arg (args, long double) != 2.71827L)
+ abort ();
+ if (va_arg (args, long double) != 2.2360679L)
+ abort ();
+ if (va_arg (args, long double) != 2.1474836L)
+ abort ();
+
+ va_end (args);
+}
+
+main ()
+{
+ va_double (4, 3.141592, 2.71827, 2.2360679, 2.1474836);
+ va_long_double (4, 3.141592L, 2.71827L, 2.2360679L, 2.1474836L);
+ exit (0);
+}