/* PR target/34281 */ #include extern void abort (void); void h (int x, va_list ap) { switch (x) { case 1: if (va_arg (ap, int) != 3 || va_arg (ap, int) != 4) abort (); return; case 5: if (va_arg (ap, int) != 9 || va_arg (ap, int) != 10) abort (); return; default: abort (); } } void f1 (int i, long long int j, ...) { va_list ap; va_start (ap, j); h (i, ap); if (i != 1 || j != 2) abort (); va_end (ap); } void f2 (int i, int j, int k, long long int l, ...) { va_list ap; va_start (ap, l); h (i, ap); if (i != 5 || j != 6 || k != 7 || l != 8) abort (); va_end (ap); } int main () { f1 (1, 2, 3, 4); f2 (5, 6, 7, 8, 9, 10); return 0; }