comparison gcc/testsuite/g++.dg/abi/pr60336-12.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
2 // { dg-options "-O2" }
3
4 #include <stdarg.h>
5
6 struct dummy0
7 {
8 };
9 struct dummy1
10 {
11 unsigned : 15;
12 };
13 struct dummy : dummy0, dummy1
14 {
15 };
16
17 void
18 test (struct dummy a, int m, ...)
19 {
20 va_list va_arglist;
21 int i;
22 int count = 0;
23
24 if (m == 0)
25 count++;
26 va_start (va_arglist, m);
27 i = va_arg (va_arglist, int);
28 if (i == 1)
29 count++;
30 i = va_arg (va_arglist, int);
31 if (i == 2)
32 i = va_arg (va_arglist, int);
33 count++;
34 if (i == 3)
35 count++;
36 i = va_arg (va_arglist, int);
37 if (i == 4)
38 count++;
39 i = va_arg (va_arglist, int);
40 if (i == 5)
41 count++;
42 i = va_arg (va_arglist, int);
43 if (i == 6)
44 count++;
45 va_end (va_arglist);
46 if (count != 7)
47 __builtin_abort ();
48 }
49
50 struct dummy a0;
51
52 int
53 main ()
54 {
55 test (a0, 0, 1, 2, 3, 4, 5, 6);
56 return 0;
57 }