Tokenizer::simplifyKnownVariables: Fixed TODO testcase (better handling of |)

This commit is contained in:
Daniel Marjamäki 2011-02-13 22:09:04 +01:00
parent 467c984cd1
commit 472d8154ca
2 changed files with 12 additions and 19 deletions

View File

@ -6618,10 +6618,10 @@ bool Tokenizer::simplifyKnownVariablesSimplify(Token **tok2, Token *tok3, unsign
// Variable is used in calculation.. // Variable is used in calculation..
if (((tok3->previous()->varId() > 0) && Token::Match(tok3, ("& " + structname + " %varid%").c_str(), varid)) || if (((tok3->previous()->varId() > 0) && Token::Match(tok3, ("& " + structname + " %varid%").c_str(), varid)) ||
Token::Match(tok3, ("[=+-*/%[] " + structname + " %varid% [=?+-*/%;])]").c_str(), varid) || Token::Match(tok3, ("[=+-*/%|[] " + structname + " %varid% [=?+-*/%|;])]").c_str(), varid) ||
Token::Match(tok3, ("[(=+-*/%[] " + structname + " %varid% <<|>>").c_str(), varid) || Token::Match(tok3, ("[(=+-*/%|[] " + structname + " %varid% <<|>>").c_str(), varid) ||
Token::Match(tok3, ("<<|>> " + structname + " %varid% [+-*/%;])]").c_str(), varid) || Token::Match(tok3, ("<<|>> " + structname + " %varid% [+-*/%|;])]").c_str(), varid) ||
Token::Match(tok3->previous(), ("[=+-*/%[] ( " + structname + " %varid%").c_str(), varid)) Token::Match(tok3->previous(), ("[=+-*/%|[] ( " + structname + " %varid%").c_str(), varid))
{ {
if (!structname.empty()) if (!structname.empty())
{ {

View File

@ -1637,21 +1637,14 @@ private:
" int i = v;\n" " int i = v;\n"
" return h | i;\n" " return h | i;\n"
"}\n"; "}\n";
const char wanted[] = "\n\n##file 0\n" const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n" "1: int foo ( int u@1 , int v@2 )\n"
"2: {\n" "2: {\n"
"3: ;\n" "3: ;\n"
"4:\n" "4:\n"
"5: return u@1 | v@2 ;\n" "5: return u@1 | v@2 ;\n"
"6: }\n"; "6: }\n";
const char current[] = "\n\n##file 0\n" ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ;\n"
"4: int i@4 ; i@4 = v@2 ;\n"
"5: return u@1 | i@4 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(wanted, current, tokenizeDebugListing(code, true));
} }
{ {