/* { dg-do run { target { ! { ia32 } } } } */ /* { dg-options "-O2" } */ #include #include int n1 = 30; double n2 = 324; double n3 = 39494.94; double n4 = 407; double n5 = 32.304; double n6 = 394.14; double n7 = 4.07; double n8 = 32.4; double n9 = 314.194; double n10 = 0.1407; int e1; double e2; double e3; double e4; double e5; double e6; double e7; double e8; double e9; double e10; static void __attribute__((noinline)) test (int a1, ...) { e1 = a1; va_list va_arglist; va_start (va_arglist, a1); e2 = va_arg (va_arglist, double); e3 = va_arg (va_arglist, double); e4 = va_arg (va_arglist, double); e5 = va_arg (va_arglist, double); e6 = va_arg (va_arglist, double); e7 = va_arg (va_arglist, double); e8 = va_arg (va_arglist, double); e9 = va_arg (va_arglist, double); e10 = va_arg (va_arglist, double); va_end (va_arglist); } int main () { test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); assert (n1 == e1); assert (n2 == e2); assert (n3 == e3); assert (n4 == e4); assert (n5 == e5); assert (n6 == e6); assert (n7 == e7); assert (n8 == e8); assert (n9 == e9); assert (n10 == e10); return 0; }