Merge pull request #666 from Dmitry-Me/omitUselessMatches

Quick check to omit useless heavy matches
This commit is contained in:
orbitcowboy 2015-09-03 14:38:25 +02:00
commit 9f4a70a31e
1 changed files with 3 additions and 0 deletions

View File

@ -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();