/* { dg-do compile } */ /* { dg-options "-Wlogical-not-parentheses" } */ /* Test that we don't warn if rhs is 0 and comparison is == or !=. */ #ifndef __cplusplus #define bool _Bool #endif bool r; void f1 (int a) { r = !a == 0; r = !a != 0; r = !a == 1; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ r = !a != 1; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ } void f2 (int a) { r = !a > 0; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ r = !a >= 0; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ r = !a < 0; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ r = !a <= 0; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ r = !a > 1; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ r = !a >= 1; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ r = !a < 1; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ r = !a <= 1; /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ }