diff --git a/lib/checkassignif.cpp b/lib/checkassignif.cpp index 24da97272..433456979 100644 --- a/lib/checkassignif.cpp +++ b/lib/checkassignif.cpp @@ -136,8 +136,11 @@ void CheckAssignIf::multiCondition() if (!_settings->isEnabled("style")) return; - for (const Token *tok = _tokenizer->tokens(); tok; tok = tok->next()) { - if (Token::Match(tok, "if ( %var% & %num% ) {")) { + const SymbolDatabase* const symbolDatabase = _tokenizer->getSymbolDatabase(); + + for (std::list::const_iterator i = symbolDatabase->scopeList.begin(); i != symbolDatabase->scopeList.end(); ++i) { + if (i->type == Scope::eIf && Token::Match(i->classDef, "if ( %var% & %num% ) {")) { + const Token* const tok = i->classDef; const unsigned int varid(tok->tokAt(2)->varId()); if (varid == 0) continue; diff --git a/test/test64bit.cpp b/test/test64bit.cpp index cf96635e2..975d6d7b0 100644 --- a/test/test64bit.cpp +++ b/test/test64bit.cpp @@ -51,7 +51,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); // Check char variable usage.. Check64BitPortability check64BitPortability(&tokenizer, &settings, this); diff --git a/test/testassignif.cpp b/test/testassignif.cpp index aee94dafd..788d3e8e1 100644 --- a/test/testassignif.cpp +++ b/test/testassignif.cpp @@ -49,7 +49,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); tokenizer.simplifyTokenList(); // Check char variable usage.. diff --git a/test/testautovariables.cpp b/test/testautovariables.cpp index 24e365420..b353700dc 100644 --- a/test/testautovariables.cpp +++ b/test/testautovariables.cpp @@ -51,9 +51,6 @@ private: tokenizer.simplifyTokenList(); - // Assign variable ids - tokenizer.setVarId(); - // Check auto variables checkAutoVariables.autoVariables(); checkAutoVariables.returnPointerToLocalArray(); diff --git a/test/testcharvar.cpp b/test/testcharvar.cpp index 908fe4779..534dcf693 100644 --- a/test/testcharvar.cpp +++ b/test/testcharvar.cpp @@ -54,7 +54,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); // Check char variable usage.. CheckOther checkOther(&tokenizer, &settings, this); diff --git a/test/testmemleak.cpp b/test/testmemleak.cpp index 49930842f..b39a8d7c5 100644 --- a/test/testmemleak.cpp +++ b/test/testmemleak.cpp @@ -48,7 +48,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); return ((const CheckMemoryLeak *)0)->functionReturnType(tokenizer.tokens()); } @@ -132,7 +131,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); tokenizer.simplifyTokenList(); // Check for memory leaks.. @@ -3077,7 +3075,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); tokenizer.simplifyTokenList(); // Check for memory leaks.. @@ -3784,7 +3781,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); tokenizer.simplifyTokenList(); // Check for memory leaks.. diff --git a/test/testnonreentrantfunctions.cpp b/test/testnonreentrantfunctions.cpp index 0b0699a2c..63357ba40 100644 --- a/test/testnonreentrantfunctions.cpp +++ b/test/testnonreentrantfunctions.cpp @@ -51,9 +51,6 @@ private: tokenizer.tokenize(istr, "test.cpp"); tokenizer.simplifyTokenList(); - // Assign variable ids - tokenizer.setVarId(); - // Check for non reentrant functions.. CheckNonReentrantFunctions checkNonReentrantFunctions(&tokenizer, &settings, this); checkNonReentrantFunctions.nonReentrantFunctions(); diff --git a/test/testobsoletefunctions.cpp b/test/testobsoletefunctions.cpp index bc8bba85f..8dc7e699b 100644 --- a/test/testobsoletefunctions.cpp +++ b/test/testobsoletefunctions.cpp @@ -38,7 +38,7 @@ private: TEST_CASE(testgethostbyaddr); TEST_CASE(testusleep); TEST_CASE(testindex); - TEST_CASE(test_qt_index); // FP when using the Qt function 'index'? + TEST_CASE(test_qt_index); // FP when using the Qt function 'index'? TEST_CASE(testrindex); // no false positives for variables @@ -83,9 +83,6 @@ private: tokenizer.tokenize(istr, "test.cpp"); tokenizer.simplifyTokenList(); - // Assign variable ids - tokenizer.setVarId(); - // Check for obsolete functions.. CheckObsoleteFunctions checkObsoleteFunctions(&tokenizer, &settings, this); checkObsoleteFunctions.obsoleteFunctions(); diff --git a/test/testother.cpp b/test/testother.cpp index 765478419..cfacb6094 100644 --- a/test/testother.cpp +++ b/test/testother.cpp @@ -371,7 +371,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); //tokenizer.tokens()->printOut( "tokens" ); @@ -437,7 +436,6 @@ private: Tokenizer tokenizer(&settings, this); std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); // Check for redundant code.. CheckOther checkOther(&tokenizer, &settings, this); @@ -718,12 +716,10 @@ private: Tokenizer tokenizerCpp(&settings, this); std::istringstream istr(code); tokenizerCpp.tokenize(istr, "test.cpp"); - tokenizerCpp.setVarId(); Tokenizer tokenizerC(&settings, this); std::istringstream istr2(code); tokenizerC.tokenize(istr2, "test.c"); - tokenizerC.setVarId(); CheckOther checkOtherCpp(&tokenizerCpp, &settings, this); checkOtherCpp.warningOldStylePointerCast(); diff --git a/test/testpostfixoperator.cpp b/test/testpostfixoperator.cpp index 17eaea16e..b8b3de118 100644 --- a/test/testpostfixoperator.cpp +++ b/test/testpostfixoperator.cpp @@ -48,9 +48,6 @@ private: tokenizer.tokenize(istr, "test.cpp"); tokenizer.simplifyTokenList(); - // Assign variable ids - tokenizer.setVarId(); - // Check for postfix operators.. CheckPostfixOperator checkPostfixOperator(&tokenizer, &settings, this); checkPostfixOperator.postfixOperator(); diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index 51cc9ddcb..c128e0ca7 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -873,7 +873,6 @@ private: std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); if (simplify) tokenizer.simplifyTokenList(); diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 683d671dc..09eead795 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -1048,7 +1048,6 @@ private: std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); tokenizer.simplifyKnownVariables(); std::ostringstream ostr; @@ -4151,7 +4150,6 @@ private: std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); tokenizer.simplifyTokenList(); std::ostringstream ostr; @@ -4178,7 +4176,6 @@ private: std::istringstream istr(code); tokenizer.tokenize(istr, "test.cpp"); - tokenizer.setVarId(); tokenizer.simplifyTokenList(); std::ostringstream ostr;