* execute/va-arg-13.c: New test.
authorsirl <sirl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Feb 2000 23:16:36 +0000 (23:16 +0000)
committersirl <sirl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Feb 2000 23:16:36 +0000 (23:16 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32127 138bc75d-0d04-0410-961f-82ee72b054a4

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

index ae8e531..e7fdd99 100644 (file)
@@ -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 (file)
index 0000000..65caf2b
--- /dev/null
@@ -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);
+}