1 /* PR target/34281 */
2
3 #include <stdarg.h>
4
5 extern void abort (void);
6
7 void
h(int x,va_list ap)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
f1(int i,long long int j,...)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
f2(int i,int j,int k,long long int l,...)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
main()48 main ()
49 {
50 f1 (1, 2, 3, 4);
51 f2 (5, 6, 7, 8, 9, 10);
52 return 0;
53 }
54