1/* { dg-do run { target { ! { ia32 } } } } */
2/* { dg-options "-O2 -mno-sse" } */
3
4#include <stdarg.h>
5#include <assert.h>
6
7int n1 = 30;
8int n2 = 324;
9void *n3 = (void *) &n2;
10int n4 = 407;
11
12int e1;
13int e2;
14void *e3;
15int e4;
16
17static void
18__attribute__((noinline))
19foo (va_list va_arglist)
20{
21  e2 = va_arg (va_arglist, int);
22  e3 = va_arg (va_arglist, void *);
23  e4 = va_arg (va_arglist, int);
24}
25
26static void
27__attribute__((noinline))
28test (int a1, ...)
29{
30  e1 = a1;
31  va_list va_arglist;
32  va_start (va_arglist, a1);
33  foo (va_arglist);
34  va_end (va_arglist);
35}
36
37int
38main ()
39{
40  test (n1, n2, n3, n4);
41  assert (n1 == e1);
42  assert (n2 == e2);
43  assert (n3 == e3);
44  assert (n4 == e4);
45  return 0;
46}
47