131
|
1 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
|
|
2 // { dg-options "-O2" }
|
|
3
|
|
4 #include <stdarg.h>
|
|
5
|
|
6 struct dummy0 { };
|
|
7 struct dummy1 { };
|
|
8 struct dummy : dummy0, dummy1 { };
|
|
9
|
|
10 void
|
|
11 test (struct dummy a, int m, ...)
|
|
12 {
|
|
13 va_list va_arglist;
|
|
14 int i;
|
|
15 int count = 0;
|
|
16
|
|
17 if (m == 0)
|
|
18 count++;
|
|
19 va_start (va_arglist, m);
|
|
20 i = va_arg (va_arglist, int);
|
|
21 if (i == 1)
|
|
22 count++;
|
|
23 i = va_arg (va_arglist, int);
|
|
24 if (i == 2)
|
|
25 i = va_arg (va_arglist, int);
|
|
26 count++;
|
|
27 if (i == 3)
|
|
28 count++;
|
|
29 i = va_arg (va_arglist, int);
|
|
30 if (i == 4)
|
|
31 count++;
|
|
32 i = va_arg (va_arglist, int);
|
|
33 if (i == 5)
|
|
34 count++;
|
|
35 i = va_arg (va_arglist, int);
|
|
36 if (i == 6)
|
|
37 count++;
|
|
38 va_end (va_arglist);
|
|
39 if (count != 7)
|
|
40 __builtin_abort ();
|
|
41 }
|
|
42
|
|
43 struct dummy a0;
|
|
44
|
|
45 int
|
|
46 main ()
|
|
47 {
|
|
48 test (a0, 0, 1, 2, 3, 4, 5, 6);
|
|
49 return 0;
|
|
50 }
|