Merge -r 127928:132243 from trunk
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 20071213-1.c
blobcbdfaa56c2333857cbc2111ce06828e22bf226d8
1 /* PR target/34281 */
3 #include <stdarg.h>
5 extern void abort (void);
7 void
8 h (int x, va_list ap)
10 switch (x)
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 ();
25 void
26 f1 (int i, long long int j, ...)
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);
36 void
37 f2 (int i, int j, int k, long long int l, ...)
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);
47 int
48 main ()
50 f1 (1, 2, 3, 4);
51 f2 (5, 6, 7, 8, 9, 10);
52 return 0;