1 /* { dg-do run { target { ! ia32 } } } */
2 /* { dg-options "-O2" } */
3
4 #include <stdarg.h>
5 #include <assert.h>
6
7 int n1 = 30;
8 double n2 = 324;
9 double n3 = 39494.94;
10 double n4 = 407;
11 double n5 = 32.304;
12 double n6 = 394.14;
13 double n7 = 4.07;
14 double n8 = 32.4;
15 double n9 = 314.194;
16 double n10 = 0.1407;
17
18 int e1;
19 double e2;
20 double e3;
21 double e4;
22 double e5;
23 double e6;
24 double e7;
25 double e8;
26 double e9;
27 double e10;
28
29 static void
30 __attribute__((noinline))
test(int a1,...)31 test (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
48 int
main()49 main ()
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