Use Token::simpleMatch where no special patterns are needed

This commit is contained in:
Raphael Geissert 2011-02-02 10:12:46 -06:00
parent 45e5dc20a2
commit f8e2d50e6f
8 changed files with 28 additions and 28 deletions

View File

@ -828,7 +828,7 @@ void CheckBufferOverrun::checkScope(const Token *tok, const std::vector<std::str
const MathLib::bigint index = MathLib::toLongNumber(tok->strAt(3));
if (index < 0 || index >= size)
{
if (index > size || !Token::Match(tok->previous(), "& ("))
if (index > size || !Token::simpleMatch(tok->previous(), "& ("))
{
arrayIndexOutOfBounds(tok->next(), size, index);
}

View File

@ -799,7 +799,7 @@ void CheckClass::noMemset()
if (Token::Match(tstruct->next(), "std :: %type% %var% ;"))
memsetStructError(tok, tok->str(), tstruct->strAt(3));
else if (Token::Match(tstruct->next(), "std :: %type% < "))
else if (Token::Match(tstruct->next(), "std :: %type% <"))
{
// backup the type
const std::string typestr(tstruct->strAt(3));
@ -1132,7 +1132,7 @@ bool CheckClass::hasAssignSelf(const Token *first, const Token *last, const Toke
{
for (const Token *tok = first; tok && tok != last; tok = tok->next())
{
if (Token::Match(tok, "if ("))
if (Token::simpleMatch(tok, "if ("))
{
const Token *tok1 = tok->tokAt(2);
const Token *tok2 = tok->tokAt(1)->link();
@ -1412,7 +1412,7 @@ bool CheckClass::isMemberVar(const Scope *scope, const Token *tok)
while (tok->previous() && !Token::Match(tok->previous(), "}|{|;|public:|protected:|private:|return|:|?"))
{
if (Token::Match(tok->previous(), "* this"))
if (Token::simpleMatch(tok->previous(), "* this"))
return true;
tok = tok->previous();

View File

@ -1445,7 +1445,7 @@ Token *CheckMemoryLeakInFunction::getcode(const Token *tok, std::list<const Toke
// Assignment..
if (varid)
{
if (Token::Match(tok, "= {"))
if (Token::simpleMatch(tok, "= {"))
{
unsigned int indentlevel2 = 0;
bool use = false;
@ -1754,7 +1754,7 @@ void CheckMemoryLeakInFunction::simplifycode(Token *tok)
}
}
if (Token::Match(tok2, "while1 { if { dealloc ; return ; } }"))
if (Token::simpleMatch(tok2, "while1 { if { dealloc ; return ; } }"))
{
tok2->str(";");
Token::eraseTokens(tok2, tok2->tokAt(4));
@ -1820,7 +1820,7 @@ void CheckMemoryLeakInFunction::simplifycode(Token *tok)
}
// Reduce "if continue ; if continue ;" => "if continue ;"
else if (Token::Match(tok2->next(), "if continue ; if continue ;"))
else if (Token::simpleMatch(tok2->next(), "if continue ; if continue ;"))
{
Token::eraseTokens(tok2, tok2->tokAt(4));
done = false;

View File

@ -617,7 +617,7 @@ void CheckNullPointer::nullPointerByCheckAndDeRef()
if (null && indentlevel == 0)
{
// skip all "else" blocks because they are not executed in this execution path
while (Token::Match(tok2, "} else {"))
while (Token::simpleMatch(tok2, "} else {"))
tok2 = tok2->tokAt(2)->link();
null = false;
}

View File

@ -2705,7 +2705,7 @@ void CheckOther::checkMisusedScopedObject()
}
if (Token::Match(tok, "[;{}] %var% (")
&& Token::Match(tok->tokAt(2)->link(), ") ;")
&& Token::simpleMatch(tok->tokAt(2)->link(), ") ;")
&& symbolDatabase->isClassOrStruct(tok->next()->str())
)
{

View File

@ -1038,7 +1038,7 @@ void CheckStl::string_c_str()
string_c_strError(tok);
}
else if (Token::Match(tok, "[;{}] %var% = %var% (") &&
Token::Match(tok->tokAt(4)->link(), ") . c_str ( ) ;") &&
Token::simpleMatch(tok->tokAt(4)->link(), ") . c_str ( ) ;") &&
tok->next()->varId() > 0 &&
pointers.find(tok->next()->varId()) != pointers.end() &&
Token::findmatch(_tokenizer->tokens(), ("std :: string " + tok->strAt(3) + " (").c_str()))

View File

@ -1238,7 +1238,7 @@ bool Scope::isVariableDeclaration(const Token* tok, const Token*& vartok, const
const Token* localTypeTok = skipScopeIdentifiers(tok);
const Token* localVarTok = NULL;
if (Token::Match(localTypeTok, "%type% < "))
if (Token::Match(localTypeTok, "%type% <"))
{
const Token* closeTok = NULL;
bool found = findClosingBracket(localTypeTok->next(), closeTok);

View File

@ -588,7 +588,7 @@ bool Tokenizer::duplicateTypedef(Token **tokPtr, const Token *name)
(tok->previous()->str() == "*" && tok->next()->str() != "(") ||
(Token::Match(tok->previous(), "%type%") &&
(!Token::Match(tok->previous(), "return|new|const|friend|public|private|protected|throw|extern") &&
!Token::Match(tok->tokAt(-2), "friend class"))))
!Token::simpleMatch(tok->tokAt(-2), "friend class"))))
{
// scan backwards for the end of the previous statement
int level = (tok->previous()->str() == "}") ? 1 : 0;
@ -926,7 +926,7 @@ void Tokenizer::simplifyTypedef()
Token *namespaceStart = 0;
Token *namespaceEnd = 0;
if (Token::Match(tok->next(), "::") ||
if (Token::simpleMatch(tok->next(), "::") ||
Token::Match(tok->next(), "%type%"))
{
typeStart = tok->next();
@ -940,13 +940,13 @@ void Tokenizer::simplifyTypedef()
bool atEnd = false;
while (!atEnd)
{
if (Token::Match(tok->tokAt(offset), "::"))
if (Token::simpleMatch(tok->tokAt(offset), "::"))
typeEnd = tok->tokAt(offset++);
if (Token::Match(tok->tokAt(offset), "%type%") &&
tok->tokAt(offset + 1) && !Token::Match(tok->tokAt(offset + 1), "[|;|,|("))
typeEnd = tok->tokAt(offset++);
else if (Token::Match(tok->tokAt(offset), "const ("))
else if (Token::simpleMatch(tok->tokAt(offset), "const ("))
{
typeEnd = tok->tokAt(offset++);
atEnd = true;
@ -1040,7 +1040,7 @@ void Tokenizer::simplifyTypedef()
tok = tok->tokAt(offset);
// or a function typedef
else if (Token::Match(tok->tokAt(offset), "("))
else if (Token::simpleMatch(tok->tokAt(offset), "("))
{
// unhandled typedef, skip it and continue
if (typeName->str() == "void")
@ -1143,7 +1143,7 @@ void Tokenizer::simplifyTypedef()
// function returning pointer to function
else if (Token::Match(tok->tokAt(offset), "( * %type% (") &&
Token::Match(tok->tokAt(offset + 3)->link(), ") ) ("))
Token::simpleMatch(tok->tokAt(offset + 3)->link(), ") ) ("))
{
functionRetFuncPtr = true;
@ -1397,8 +1397,8 @@ void Tokenizer::simplifyTypedef()
inTemplate = true;
// check for operator
if (Token::Match(tok2->previous(), "operator") ||
Token::Match(tok2->tokAt(-2), "operator const"))
if (Token::simpleMatch(tok2->previous(), "operator") ||
Token::simpleMatch(tok2->tokAt(-2), "operator const"))
inOperator = true;
// skip over class or struct in derived class declaration
@ -2717,7 +2717,7 @@ void Tokenizer::simplifyTemplates()
ostr << " ";
ostr << tok3->str();
}
if (!Token::Match(tok3, "> ("))
if (!Token::simpleMatch(tok3, "> ("))
continue;
s = ostr.str();
}
@ -3999,7 +3999,7 @@ void Tokenizer::simplifySizeof()
tok->next()->deleteNext();
}
if (Token::Match(tok->next(), "( * )"))
if (Token::simpleMatch(tok->next(), "( * )"))
{
tok->str(MathLib::toString<unsigned long>(sizeOfType(tok->tokAt(2))));
Token::eraseTokens(tok, tok->tokAt(4));
@ -4711,7 +4711,7 @@ void Tokenizer::simplifyIfAddBraces()
if (!innerIf)
break;
if (Token::Match(tempToken, "; else if"))
if (Token::simpleMatch(tempToken, "; else if"))
;
else if (Token::Match(tempToken, "; else"))
innerIf = false;
@ -4754,7 +4754,7 @@ bool Tokenizer::simplifyDoWhileAddBracesHelper(Token *tok)
tok2 = tok3;
break;
}
else if (Token::Match(tok3, "do {"))
else if (Token::simpleMatch(tok3, "do {"))
{
// Skip do{}while inside the current "do"
tok3 = tok3->next()->link();
@ -5758,7 +5758,7 @@ void Tokenizer::simplifyStdType()
tok->isSigned(!isUnsigned);
}
if (Token::Match(tok, "__int8"))
if (Token::simpleMatch(tok, "__int8"))
tok->str("char");
else if (Token::Match(tok, "__int16"))
tok->str("short");
@ -7492,7 +7492,7 @@ bool Tokenizer::duplicateDefinition(Token ** tokPtr, const Token * name)
if (end)
{
if (Token::Match(end, ") {")) // function parameter ?
if (Token::simpleMatch(end, ") {")) // function parameter ?
{
// look backwards
if (tok->previous()->str() == "enum" ||
@ -7908,7 +7908,7 @@ void Tokenizer::simplifyEnum()
}
else if (tok2->str() == "{")
++level;
else if (!pattern.empty() && ((Token::Match(tok2, "enum") && Token::Match(tok2->next(), pattern.c_str())) || Token::Match(tok2, pattern.c_str())))
else if (!pattern.empty() && ((Token::simpleMatch(tok2, "enum") && Token::Match(tok2->next(), pattern.c_str())) || Token::Match(tok2, pattern.c_str())))
{
simplify = true;
hasClass = true;
@ -8243,7 +8243,7 @@ void Tokenizer::simplifyComma()
// We must not accept just any keyword, e.g. accepting int
// would cause function parameters to corrupt.
if (Token::Match(tok->next(), "delete"))
if (Token::simpleMatch(tok->next(), "delete"))
{
// Handle "delete a, delete b;"
tok->str(";");
@ -8566,7 +8566,7 @@ void Tokenizer::simplifyStructInit()
if (Token::simpleMatch(tok2, ", ."))
tok2 = tok2->next();
}
if (!Token::Match(tok2, "} ;"))
if (!Token::simpleMatch(tok2, "} ;"))
continue;
// Known expression format => Perform simplification