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

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 // { dg-do run { target { { i?86-*-* x86_64-*-* } && { ! { ia32 } } } } }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 // { dg-options "-O2 -Wabi=11" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 #include <stdarg.h>
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 struct dummy { };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 void
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 test (struct dummy a, int m, ...) // { dg-warning "empty" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 va_list va_arglist;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 int i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 int count = 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 if (m == 0)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 count++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 va_start (va_arglist, m);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 i = va_arg (va_arglist, int);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 if (i == 1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 count++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 i = va_arg (va_arglist, int);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 if (i == 2)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 i = va_arg (va_arglist, int);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 count++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 if (i == 3)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 count++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 i = va_arg (va_arglist, int);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 if (i == 4)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 count++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 i = va_arg (va_arglist, int);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 if (i == 5)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 count++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 i = va_arg (va_arglist, int);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 if (i == 6)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 count++;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 va_end (va_arglist);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 if (count != 7)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 struct dummy a0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 int
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 main ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 test (a0, 0, 1, 2, 3, 4, 5, 6); // { dg-warning "empty" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 }