aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranz Sirl <Franz.Sirl-kernel@lauterbach.com>2000-02-23 23:16:36 +0000
committerFranz Sirl <sirl@gcc.gnu.org>2000-02-23 23:16:36 +0000
commit1e59bcc3071d8909494146db844644a9d4129b18 (patch)
tree7f22de4271d53f135c776b57fa056e554fc8990e
parent8706d596acb864e3ff10aba804f5d98b7ac76c4a (diff)
downloadgcc-1e59bcc3071d8909494146db844644a9d4129b18.zip
gcc-1e59bcc3071d8909494146db844644a9d4129b18.tar.gz
gcc-1e59bcc3071d8909494146db844644a9d4129b18.tar.bz2
* execute/va-arg-13.c: New test.
From-SVN: r32127
-rw-r--r--gcc/testsuite/gcc.c-torture/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/va-arg-13.c38
2 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/ChangeLog b/gcc/testsuite/gcc.c-torture/ChangeLog
index ae8e531..e7fdd99 100644
--- a/gcc/testsuite/gcc.c-torture/ChangeLog
+++ b/gcc/testsuite/gcc.c-torture/ChangeLog
@@ -1,3 +1,7 @@
+2000-02-23 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * execute/va-arg-13.c: New test.
+
Wed Feb 23 14:16:06 2000 Donald Lindsay <dlindsay@cygnus.com>
* execute/va-arg-12.c: New test.
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-13.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-13.c
new file mode 100644
index 0000000..65caf2b
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-13.c
@@ -0,0 +1,38 @@
+/* derived from mozilla source code */
+
+#include <stdarg.h>
+
+typedef struct {
+ void *stream;
+ va_list ap;
+ int nChar;
+} ScanfState;
+
+void dummy (va_list vap)
+{
+ if (va_arg (vap, int) != 1234) abort();
+ return;
+}
+
+void test (int fmt, ...)
+{
+ ScanfState state, *statep;
+
+ statep = &state;
+
+ va_start (statep->ap, fmt);
+ dummy (statep->ap);
+ va_end (statep->ap);
+
+ va_start (state.ap, fmt);
+ dummy (state.ap);
+ va_end (state.ap);
+
+ return;
+}
+
+int main (void)
+{
+ test (456, 1234);
+ exit (0);
+}