aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920908-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920908-1.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920908-1.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920908-1.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920908-1.c
new file mode 100644
index 000000000..98fbb5eaa
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/920908-1.c
@@ -0,0 +1,28 @@
+/* REPRODUCED:RUN:SIGNAL MACHINE:mips OPTIONS: */
+
+#include <stdarg.h>
+
+typedef struct{int A;}T;
+
+T f(int x,...)
+{
+va_list ap;
+T X;
+va_start(ap,x);
+X=va_arg(ap,T);
+if(X.A!=10)abort();
+X=va_arg(ap,T);
+if(X.A!=20)abort();
+va_end(ap);
+return X;
+}
+
+main()
+{
+T X,Y;
+int i;
+X.A=10;
+Y.A=20;
+f(2,X,Y);
+exit(0);
+}