annotate gcc/testsuite/gcc.dg/Wcxx-compat-4.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-do compile } */
kono
parents:
diff changeset
2 /* { dg-options "-Wc++-compat" } */
kono
parents:
diff changeset
3 enum E1 { A, B, C };
kono
parents:
diff changeset
4 enum E2 { D, E, F };
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 enum E1 g1;
kono
parents:
diff changeset
7 enum E2 g2;
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 void
kono
parents:
diff changeset
10 f1 ()
kono
parents:
diff changeset
11 {
kono
parents:
diff changeset
12 int a;
kono
parents:
diff changeset
13 int d;
kono
parents:
diff changeset
14 enum E1 e1;
kono
parents:
diff changeset
15 enum E2 e2;
kono
parents:
diff changeset
16 a = A;
kono
parents:
diff changeset
17 a = !B;
kono
parents:
diff changeset
18 d = E;
kono
parents:
diff changeset
19 e1 = A;
kono
parents:
diff changeset
20 e1 = D; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
21 e1 = 0; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
22 e1 = (enum E1) 0;
kono
parents:
diff changeset
23 e1 = (enum E2) 0; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
24 e1 = e2; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
25 e1 = g1;
kono
parents:
diff changeset
26 e1 = g2; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
27 e2 = A; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
28 e2 = D;
kono
parents:
diff changeset
29 }
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 struct s { enum E1 e1 : 3; };
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 void
kono
parents:
diff changeset
34 f2 (struct s sv)
kono
parents:
diff changeset
35 {
kono
parents:
diff changeset
36 sv.e1 = A;
kono
parents:
diff changeset
37 sv.e1 = D; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
38 g1 = sv.e1;
kono
parents:
diff changeset
39 g2 = sv.e1; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
40 }
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 void
kono
parents:
diff changeset
43 f3 (struct s *pv)
kono
parents:
diff changeset
44 {
kono
parents:
diff changeset
45 pv->e1 = A;
kono
parents:
diff changeset
46 pv->e1 = D; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
47 g1 = pv->e1;
kono
parents:
diff changeset
48 g2 = pv->e1; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
49 }