annotate gcc/testsuite/gcc.dg/Wcxx-compat-3.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
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 extern void f2 (enum E1);
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 void
kono
parents:
diff changeset
8 f1 ()
kono
parents:
diff changeset
9 {
kono
parents:
diff changeset
10 int a = A;
kono
parents:
diff changeset
11 enum E1 e1;
kono
parents:
diff changeset
12 enum E2 e2;
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 f2 (0); /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
15 f2 (A);
kono
parents:
diff changeset
16 f2 (D); /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
17 f2 (a); /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
18 f2 (e1);
kono
parents:
diff changeset
19 f2 (e2); /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
20 f2 ((A));
kono
parents:
diff changeset
21 f2 (a ? A : B);
kono
parents:
diff changeset
22 f2 ((enum E1) 0);
kono
parents:
diff changeset
23 f2 ((enum E1) D);
kono
parents:
diff changeset
24 f2 ((enum E1) a);
kono
parents:
diff changeset
25 f2 ((enum E1) e2);
kono
parents:
diff changeset
26 }
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 struct s1 { enum E1 e1 : 3; };
kono
parents:
diff changeset
29 struct s2 { enum E2 e2 : 3; };
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 void
kono
parents:
diff changeset
32 f3 (struct s1 sv1, struct s2 sv2)
kono
parents:
diff changeset
33 {
kono
parents:
diff changeset
34 f2 (sv1.e1);
kono
parents:
diff changeset
35 f2 (sv2.e2); /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
36 }
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 void
kono
parents:
diff changeset
39 f4 (struct s1 *pv1, struct s2 *pv2)
kono
parents:
diff changeset
40 {
kono
parents:
diff changeset
41 f2 (pv1->e1);
kono
parents:
diff changeset
42 f2 (pv2->e2); /* { dg-warning "invalid in C\[+\]\[+\]" } */
kono
parents:
diff changeset
43 }
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 /* Match all extra informative notes. */
kono
parents:
diff changeset
46 /* { dg-message "note: expected '\[^\n'\]*' but argument is of type '\[^\n'\]*'" "note: expected" { target *-*-* } 0 } */