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