================ @@ -85,7 +85,7 @@ void f(int x, int y, int z) { if ((a<y) != -1) {}// expected-warning {{comparison of constant -1 with boolean expression is always true}} if ((a<y) == z) {} // no warning - if (a>y<z) {} // no warning + if (a>y<z) {} // expected-warning {{comparisons like 'X<=Y<=Z' don't have their mathematical meaning}} ---------------- erichkeane wrote:
I realize this is GCC's diagnostic, but I think it isn't particularly good of a diag. I would prefer we: 1- At least match operators. I REALLY wish we could print the actual expression (unless the expression complicated, at which point we print `<expr>` or something). So something like: `comparison 'a>y<z' does not have its mathematical meaning`. 2- I REALLY wish we had a note after it with the range of the LHS here that says something like `Left comparison operator evaluates to `bool` before 'less-than' comparison with 'z'`. https://github.com/llvm/llvm-project/pull/92200 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits