http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53598
Bug #: 53598 Summary: missed diagnostics / equality comparison result unused. Classification: Unclassified Product: gcc Version: 4.7.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassig...@gcc.gnu.org ReportedBy: pl...@agmk.net i've found in my codebase a hidden typo bug. #include <list> void foo( std::list<int>::const_iterator& i, std::list<int> const& l ) { if ( ++i == l.end() ) i == l.begin(); <=== here } g++ with -Wall -Wextra doesn't warn about this while clang++ wins: noop-if.cpp:5:5: warning: equality comparison result unused [-Wunused-comparison] i == l.begin(); ~~^~~~~~~~~~~~ noop-if.cpp:5:5: note: use '=' to turn this equality comparison into an assignment i == l.begin(); ^~ = 1 warning generated.