modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20071213-1.c (about) 1 /* PR target/34281 */ 2 3 #include <stdarg.h> 4 5 extern void abort (void); 6 7 void 8 h (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 25 void 26 f1 (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 36 void 37 f2 (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 47 int 48 main () 49 { 50 f1 (1, 2, 3, 4); 51 f2 (5, 6, 7, 8, 9, 10); 52 return 0; 53 }