/* PR target/44942 */ /* { dg-do run { target { ! { ia32 } } } } */ #include #include void test1 (double a, double b, double c, double d, double e, double f, double g, __m128d h, ...) { double i; va_list ap; va_start (ap, h); i = va_arg (ap, double); if (i != 1234.0) __builtin_abort (); va_end (ap); } void test2 (double a, double b, double c, double d, double e, double f, double g, __m128d h, double i, __m128d j, double k, __m128d l, double m, __m128d n, ...) { double o; va_list ap; va_start (ap, n); o = va_arg (ap, double); if (o != 1234.0) __builtin_abort (); va_end (ap); } int main () { __m128d m = _mm_set1_pd (7.0); test1 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, m, 1234.0); test2 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, m, 0.0, m, 0.0, m, 0.0, m, 1234.0); return 0; }