1/* PR target/34281 */ 2 3#include <stdarg.h> 4 5extern void abort (void); 6 7void 8h (int x, va_list ap) 9{ 10 switch (x) 11 { 12 case 1: 13 if (va_arg (ap, int) != 3 || va_arg (ap, int) != 4) 14 abort (); 15 return; 16 case 5: 17 if (va_arg (ap, int) != 9 || va_arg (ap, int) != 10) 18 abort (); 19 return; 20 default: 21 abort (); 22 } 23} 24 25void 26f1 (int i, long long int j, ...) 27{ 28 va_list ap; 29 va_start (ap, j); 30 h (i, ap); 31 if (i != 1 || j != 2) 32 abort (); 33 va_end (ap); 34} 35 36void 37f2 (int i, int j, int k, long long int l, ...) 38{ 39 va_list ap; 40 va_start (ap, l); 41 h (i, ap); 42 if (i != 5 || j != 6 || k != 7 || l != 8) 43 abort (); 44 va_end (ap); 45} 46 47int 48main () 49{ 50 f1 (1, 2, 3, 4); 51 f2 (5, 6, 7, 8, 9, 10); 52 return 0; 53} 54