190223Sdes/* { dg-do run { target { ! { ia32 } } } } */ 290223Sdes/* { dg-options "-O2" } */ 390223Sdes 490223Sdes#include <stdarg.h> 590223Sdes#include <assert.h> 6149231Syar 7149231Syarint n1 = 30; 890223Sdesdouble n2 = 324; 990223Sdesdouble n3 = 39494.94; 1090223Sdesdouble n4 = 407; 1190223Sdesdouble n5 = 32.304; 1290223Sdesdouble n6 = 394.14; 1390223Sdesdouble n7 = 4.07; 1490223Sdesdouble n8 = 32.4; 1590223Sdesdouble n9 = 314.194; 16197428Skibdouble n10 = 0.1407; 1790223Sdes 1890223Sdesint e1; 1990223Sdesdouble e2; 2090223Sdesdouble e3; 2190223Sdesdouble e4; 2290223Sdesdouble e5; 2390223Sdesdouble e6; 2490223Sdesdouble e7; 2590223Sdesdouble e8; 2690223Sdesdouble e9; 2790223Sdesdouble e10; 2890223Sdes 2990223Sdesstatic void 3090223Sdes__attribute__((noinline)) 31149234Syarfoo (va_list va_arglist) 32148960Syar{ 33148960Syar e2 = va_arg (va_arglist, double); 34149234Syar e3 = va_arg (va_arglist, double); 35149234Syar e4 = va_arg (va_arglist, double); 36162711Sru e5 = va_arg (va_arglist, double); 37148960Syar e6 = va_arg (va_arglist, double); 38148960Syar e7 = va_arg (va_arglist, double); 39149234Syar e8 = va_arg (va_arglist, double); 40148960Syar e9 = va_arg (va_arglist, double); 41149234Syar e10 = va_arg (va_arglist, double); 42148960Syar} 4390223Sdes 44static void 45__attribute__((noinline)) 46test (int a1, ...) 47{ 48 va_list va_arglist; 49 e1 = a1; 50 va_start (va_arglist, a1); 51 foo (va_arglist); 52 va_end (va_arglist); 53} 54 55int 56main () 57{ 58 test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); 59 assert (n1 == e1); 60 assert (n2 == e2); 61 assert (n3 == e3); 62 assert (n4 == e4); 63 assert (n5 == e5); 64 assert (n6 == e6); 65 assert (n7 == e7); 66 assert (n8 == e8); 67 assert (n9 == e9); 68 assert (n10 == e10); 69 return 0; 70} 71