annotate gcc/testsuite/gcc.dg/Wcxx-compat-5.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 int f1() { return A; }
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 struct s { enum E1 e1 : 3; enum E2 e2 : 4; };
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 enum E1
kono
parents:
diff changeset
11 f2 (int i, struct s sv, struct s *pv)
kono
parents:
diff changeset
12 {
kono
parents:
diff changeset
13 int a;
kono
parents:
diff changeset
14 enum E1 e1 = B;
kono
parents:
diff changeset
15 enum E2 e2 = E;
kono
parents:
diff changeset
16 switch (i)
kono
parents:
diff changeset
17 {
kono
parents:
diff changeset
18 case 0:
kono
parents:
diff changeset
19 return A;
kono
parents:
diff changeset
20 case 1:
kono
parents:
diff changeset
21 return D; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
22 case 2:
kono
parents:
diff changeset
23 return 0; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
24 case 3:
kono
parents:
diff changeset
25 return (enum E1) 1;
kono
parents:
diff changeset
26 case 4:
kono
parents:
diff changeset
27 return (enum E2) 2; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
28 case 5:
kono
parents:
diff changeset
29 return e1;
kono
parents:
diff changeset
30 case 6:
kono
parents:
diff changeset
31 return e2; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
32 case 7:
kono
parents:
diff changeset
33 return pv->e1;
kono
parents:
diff changeset
34 case 8:
kono
parents:
diff changeset
35 return sv.e1;
kono
parents:
diff changeset
36 case 9:
kono
parents:
diff changeset
37 return pv->e2; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
38 case 10:
kono
parents:
diff changeset
39 return sv.e2; /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
40 case 11:
kono
parents:
diff changeset
41 return 1, A;
kono
parents:
diff changeset
42 default:
kono
parents:
diff changeset
43 return C;
kono
parents:
diff changeset
44 }
kono
parents:
diff changeset
45 }