Tokenize: Fixed bug in Tokenize::simplifyKnownVariables
This commit is contained in:
parent
f427fdb856
commit
81aed3fbd7
|
@ -5855,19 +5855,6 @@ bool Tokenizer::simplifyKnownVariables()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tok3->next()->varId() == varid)
|
|
||||||
{
|
|
||||||
tok3->next()->str(value);
|
|
||||||
tok3->next()->varId(valueVarId);
|
|
||||||
ret = true;
|
|
||||||
}
|
|
||||||
else if (tok3->tokAt(3)->varId() == varid)
|
|
||||||
{
|
|
||||||
tok3->tokAt(3)->str(value);
|
|
||||||
tok3->tokAt(3)->varId(valueVarId);
|
|
||||||
ret = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (indentlevel == indentlevel3 && Token::Match(tok3->next(), "%varid% ++|--", varid) && MathLib::isInt(value))
|
if (indentlevel == indentlevel3 && Token::Match(tok3->next(), "%varid% ++|--", varid) && MathLib::isInt(value))
|
||||||
|
|
|
@ -98,7 +98,6 @@ private:
|
||||||
TEST_CASE(missingInnerComparison1);
|
TEST_CASE(missingInnerComparison1);
|
||||||
TEST_CASE(missingInnerComparison2); // no FP when there is comparison
|
TEST_CASE(missingInnerComparison2); // no FP when there is comparison
|
||||||
TEST_CASE(missingInnerComparison3); // no FP when there is iterator shadowing
|
TEST_CASE(missingInnerComparison3); // no FP when there is iterator shadowing
|
||||||
TEST_CASE(missingInnerComparison4); // no FP when the iterator is incremented in inner for loop
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void check(const std::string &code)
|
void check(const std::string &code)
|
||||||
|
@ -1081,18 +1080,6 @@ private:
|
||||||
"}\n");
|
"}\n");
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void missingInnerComparison4()
|
|
||||||
{
|
|
||||||
check("void f(std::list<int> &ints) {\n"
|
|
||||||
" for (std::list<int>::iterator it1 = ints.begin(); it1 != ints.end(); ++it1) {\n"
|
|
||||||
" std::list<int>::iterator it2 = it1;\n"
|
|
||||||
" for (++it2; it2 != ints.end(); ++it2)\n"
|
|
||||||
" { }\n"
|
|
||||||
" }\n"
|
|
||||||
"}\n");
|
|
||||||
TODO_ASSERT_EQUALS("", errout.str());
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
REGISTER_TEST(TestStl)
|
REGISTER_TEST(TestStl)
|
||||||
|
|
|
@ -118,6 +118,7 @@ private:
|
||||||
TEST_CASE(simplifyKnownVariables27);
|
TEST_CASE(simplifyKnownVariables27);
|
||||||
TEST_CASE(simplifyKnownVariables28);
|
TEST_CASE(simplifyKnownVariables28);
|
||||||
TEST_CASE(simplifyKnownVariables29); // ticket #1811
|
TEST_CASE(simplifyKnownVariables29); // ticket #1811
|
||||||
|
TEST_CASE(simplifyKnownVariables30);
|
||||||
|
|
||||||
TEST_CASE(varid1);
|
TEST_CASE(varid1);
|
||||||
TEST_CASE(varid2);
|
TEST_CASE(varid2);
|
||||||
|
@ -1785,6 +1786,21 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void simplifyKnownVariables30()
|
||||||
|
{
|
||||||
|
const char code[] = "int foo() {\n"
|
||||||
|
" iterator it1 = ints.begin();\n"
|
||||||
|
" iterator it2 = it1;\n"
|
||||||
|
" for (++it2;it2!=ints.end();++it2);\n"
|
||||||
|
"}\n";
|
||||||
|
const char expected[] = "int foo ( ) {\n"
|
||||||
|
"iterator it1 ; it1 = ints . begin ( ) ;\n"
|
||||||
|
"iterator it2 ; it2 = it1 ;\n"
|
||||||
|
"for ( ++ it2 ; it2 != ints . end ( ) ; ++ it2 ) { ; }\n"
|
||||||
|
"}";
|
||||||
|
ASSERT_EQUALS(expected, tokenizeAndStringify(code, true));
|
||||||
|
}
|
||||||
|
|
||||||
std::string tokenizeDebugListing(const std::string &code, bool simplify = false)
|
std::string tokenizeDebugListing(const std::string &code, bool simplify = false)
|
||||||
{
|
{
|
||||||
Tokenizer tokenizer;
|
Tokenizer tokenizer;
|
||||||
|
|
Loading…
Reference in New Issue