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