diff --git a/lib/checkother.cpp b/lib/checkother.cpp index d2adeb0d3..054f1cdb5 100644 --- a/lib/checkother.cpp +++ b/lib/checkother.cpp @@ -2156,6 +2156,9 @@ void CheckOther::checkSignOfUnsignedVariable() const Scope * scope = symbolDatabase->functionScopes[i]; // check all the code in the function for (const Token *tok = scope->classStart->next(); tok != scope->classEnd; tok = tok->next()) { + // Quick check to see if any of the matches below have any chances + if (!tok->varId() && tok->str() != "0") + continue; if (Token::Match(tok, "%name% <|<= 0") && tok->varId() && !Token::Match(tok->tokAt(3), "+|-")) { // TODO: handle a[10].b , a::b , (unsigned int)x , etc const Token *prev = tok->previous();