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.

Reply via email to