/* { dg-do compile } */ /* { dg-options "-Wlogical-op" } */ void fn1 (int a) { const int x = a; if (x && x) {} /* { dg-warning "logical .and. of equal expressions" } */ if (x && (int) x) {} /* { dg-warning "logical .and. of equal expressions" } */ if ((int) x && x) {} /* { dg-warning "logical .and. of equal expressions" } */ if ((int) x && (int) x) {} /* { dg-warning "logical .and. of equal expressions" } */ } void fn2 (int a) { const int x = a; if (x || x) {} /* { dg-warning "logical .or. of equal expressions" } */ if (x || (int) x) {} /* { dg-warning "logical .or. of equal expressions" } */ if ((int) x || x) {} /* { dg-warning "logical .or. of equal expressions" } */ if ((int) x || (int) x) {} /* { dg-warning "logical .or. of equal expressions" } */ }