gcc-4.0 gives operator== higher precedence than operator<, which is against 5.10 paragraph 1: "Note: a<b == c<d is true whenever a<b and c<d have the same truth value"
$ cat t.cpp int main() { if ( 2 < 0 == false) return 0; // should return here return 1; } $ /home/veksler/gcc-4.0-20041017/bin/g++ t.cpp $ ./a.out ; echo status=$? status=1 -- Summary: Wrong precedence between equality (==, !=) and < operators Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: veksler at il dot ibm dot com CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18047