Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/c-c++-common/Wlogical-not-parentheses-1.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/c-c++-common/Wlogical-not-parentheses-1.c Fri Oct 27 22:46:09 2017 +0900 @@ -0,0 +1,26 @@ +/* PR c/77292 */ +/* { dg-do compile } */ +/* { dg-options "-Wlogical-not-parentheses" } */ + + /* Test that we don't warn if rhs is a comparison or a logical op. */ + +int +foo (int a, int b) +{ + int r = 0; + r += !a == (a < b); + r += !a == (a > b); + r += !a == (a >= b); + r += !a == (a <= b); + r += !a == (a != b); + r += !a == (a == b); + r += !a == (a || b); + r += !a == (a && b); + r += !a == (!b); + + r += !a == (a ^ b); /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ + r += !a == (a | b); /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ + r += !a == (a & b); /* { dg-warning "logical not is only applied to the left hand side of comparison" } */ + + return r; +}