2 /* { dg-do compile } */
8 extern bool foo (void);
13 switch (b
) /* { dg-warning "switch condition has" } */
20 switch (a
&& b
) /* { dg-warning "switch condition has" } */
22 switch ((bool) (a
&& b
)) /* { dg-warning "switch condition has" } */
24 switch ((a
&& b
) || a
) /* { dg-warning "switch condition has" } */
26 /* No warnings on following. */
27 switch ((int) (a
&& b
))
29 switch ((unsigned int) (a
&& b
))
31 switch ((unsigned short int) (a
&& b
))
33 switch ((char) (a
&& b
))
40 switch (!!a
) /* { dg-warning "switch condition has" } */
42 switch (!a
) /* { dg-warning "switch condition has" } */
49 switch (foo ()) /* { dg-warning "switch condition has" } */
56 switch (a
== 3) /* { dg-warning "switch condition has" } */
58 switch (a
!= 3) /* { dg-warning "switch condition has" } */
60 switch (a
> 3) /* { dg-warning "switch condition has" } */
62 switch (a
< 3) /* { dg-warning "switch condition has" } */
64 switch (a
<= 3) /* { dg-warning "switch condition has" } */
66 switch (a
>= 3) /* { dg-warning "switch condition has" } */
68 switch (foo (), foo (), a
>= 42) /* { dg-warning "switch condition has" } */
70 switch (a
== 3, a
& 4, a
^ 5, a
)
72 switch ((int) (a
== 3))
74 switch ((int) (a
!= 3))
81 switch (b
) /* { dg-warning "switch condition has" } */
83 switch (!b
) /* { dg-warning "switch condition has" } */
85 switch (b
++) /* { dg-warning "switch condition has" } */
93 switch (b
= 1) /* { dg-warning "switch condition has" } */
104 switch ((unsigned int) i
)
106 switch ((bool) i
) /* { dg-warning "switch condition has" } */