1/* { dg-do run { target { ! { ia32 } } } } */ 2/* { dg-options "-O2" } */ 3 4#include <stdarg.h> 5#include <assert.h> 6 7int n1 = 30; 8double n2 = 324; 9double n3 = 39494.94; 10double n4 = 407; 11double n5 = 32.304; 12double n6 = 394.14; 13double n7 = 4.07; 14double n8 = 32.4; 15double n9 = 314.194; 16double n10 = 0.1407; 17 18int e1; 19double e2; 20double e3; 21double e4; 22double e5; 23double e6; 24double e7; 25double e8; 26double e9; 27double e10; 28 29static void 30__attribute__((noinline)) 31test (int a1, ...) 32{ 33 e1 = a1; 34 va_list va_arglist; 35 va_start (va_arglist, a1); 36 e2 = va_arg (va_arglist, double); 37 e3 = va_arg (va_arglist, double); 38 e4 = va_arg (va_arglist, double); 39 e5 = va_arg (va_arglist, double); 40 e6 = va_arg (va_arglist, double); 41 e7 = va_arg (va_arglist, double); 42 e8 = va_arg (va_arglist, double); 43 e9 = va_arg (va_arglist, double); 44 e10 = va_arg (va_arglist, double); 45 va_end (va_arglist); 46} 47 48int 49main () 50{ 51 test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); 52 assert (n1 == e1); 53 assert (n2 == e2); 54 assert (n3 == e3); 55 assert (n4 == e4); 56 assert (n5 == e5); 57 assert (n6 == e6); 58 assert (n7 == e7); 59 assert (n8 == e8); 60 assert (n9 == e9); 61 assert (n10 == e10); 62 return 0; 63} 64