Test for not using results of va_arg calls.
authorUlrich Drepper <drepper@gcc.gnu.org>
Mon, 4 Oct 1999 22:12:37 +0000 (22:12 +0000)
committerUlrich Drepper <drepper@gcc.gnu.org>
Mon, 4 Oct 1999 22:12:37 +0000 (22:12 +0000)
From-SVN: r29814

gcc/testsuite/gcc.c-torture/execute/va-arg-11.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-11.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-11.c
new file mode 100644 (file)
index 0000000..349c125
--- /dev/null
@@ -0,0 +1,29 @@
+/* Test va_arg when the result is ignored and only the pointer increment
+   side effect is used.  */
+#include <stdarg.h>
+
+static int
+foo (int a, ...)
+{
+  va_list va;
+  int i, res;
+
+  va_start (va, a);
+
+  for (i = 0; i < 4; ++i)
+    (void) va_arg (va, int);
+
+  res = va_arg (va, int);
+
+  va_end (va);
+
+  return res;
+}
+
+int
+main (void)
+{
+  if (foo (5, 4, 3, 2, 1, 0))
+    abort ();
+  return 0;
+}