111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-Wsign-compare -Werror=sign-compare -Werror=switch-enum" } */
|
|
3 /* { dg-message "warnings being treated as errors" "" {target "*-*-*"} 0 } */
|
|
4
|
|
5 int bar()
|
|
6 {
|
|
7 unsigned x = 0;
|
|
8 int y = 1;
|
|
9
|
|
10 /* generates an error - ok */
|
|
11 x += x < y ? 1 : 0; /* { dg-error "comparison" } */
|
|
12
|
|
13 #pragma GCC diagnostic push
|
|
14 #pragma GCC diagnostic ignored "-Wsign-compare"
|
|
15 /* generates no diagnostic - ok */
|
|
16 x += x < y ? 1 : 0;
|
|
17 #pragma GCC diagnostic pop
|
|
18
|
|
19 x += x < y ? 1 : 0; /* { dg-error "comparison" } */
|
|
20
|
|
21 return x;
|
|
22 }
|
|
23
|
|
24 enum EE { ONE, TWO };
|
|
25
|
|
26 int f (enum EE e)
|
|
27 {
|
|
28 int r = 0;
|
|
29
|
|
30 #pragma GCC diagnostic push
|
|
31 #pragma GCC diagnostic ignored "-Wswitch-enum"
|
|
32
|
|
33 switch (e)
|
|
34 {
|
|
35 case ONE:
|
|
36 r = 1;
|
|
37 break;
|
|
38 }
|
|
39 #pragma GCC diagnostic pop
|
|
40
|
|
41 switch (e) /* { dg-error "switch" } */
|
|
42 {
|
|
43 case ONE:
|
|
44 r = 1;
|
|
45 break;
|
|
46 }
|
|
47 return r;
|
|
48 }
|