1 /* { dg-do run { target { ! ia32 } } } */ 2 /* { dg-options "-O2 -mno-sse" } */ 3 4 #include <stdarg.h> 5 #include <assert.h> 6 7 int n1 = 30; 8 int n2 = 324; 9 void *n3 = (void *) &n2; 10 int n4 = 407; 11 12 int e1; 13 int e2; 14 void *e3; 15 int e4; 16 17 static void 18 __attribute__((noinline)) foo(va_list va_arglist)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 26 static void 27 __attribute__((noinline)) test(int a1,...)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 37 int main()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