use nullptr in lib/checkother.cpp
This commit is contained in:
parent
720bd48a98
commit
fb5c2d4b48
|
@ -64,9 +64,9 @@ static bool isConstExpression(const Token *tok, const std::set<std::string> &con
|
||||||
|
|
||||||
static bool isSameExpression(const Token *tok1, const Token *tok2, const std::set<std::string> &constFunctions)
|
static bool isSameExpression(const Token *tok1, const Token *tok2, const std::set<std::string> &constFunctions)
|
||||||
{
|
{
|
||||||
if (tok1 == NULL && tok2 == NULL)
|
if (tok1 == nullptr && tok2 == nullptr)
|
||||||
return true;
|
return true;
|
||||||
if (tok1 == NULL || tok2 == NULL)
|
if (tok1 == nullptr || tok2 == nullptr)
|
||||||
return false;
|
return false;
|
||||||
if (tok1->str() != tok2->str())
|
if (tok1->str() != tok2->str())
|
||||||
return false;
|
return false;
|
||||||
|
@ -949,7 +949,7 @@ void CheckOther::checkSwitchCaseFallThrough()
|
||||||
for (const Token *tok2 = i->classStart; tok2 != i->classEnd; tok2 = tok2->next()) {
|
for (const Token *tok2 = i->classStart; tok2 != i->classEnd; tok2 = tok2->next()) {
|
||||||
if (Token::simpleMatch(tok2, "if (")) {
|
if (Token::simpleMatch(tok2, "if (")) {
|
||||||
tok2 = tok2->next()->link()->next();
|
tok2 = tok2->next()->link()->next();
|
||||||
if (tok2->link() == NULL) {
|
if (tok2->link() == nullptr) {
|
||||||
std::ostringstream errmsg;
|
std::ostringstream errmsg;
|
||||||
errmsg << "unmatched if in switch: " << tok2->linenr();
|
errmsg << "unmatched if in switch: " << tok2->linenr();
|
||||||
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
||||||
|
@ -961,7 +961,7 @@ void CheckOther::checkSwitchCaseFallThrough()
|
||||||
tok2 = tok2->next()->link()->next();
|
tok2 = tok2->next()->link()->next();
|
||||||
// skip over "do { } while ( ) ;" case
|
// skip over "do { } while ( ) ;" case
|
||||||
if (tok2->str() == "{") {
|
if (tok2->str() == "{") {
|
||||||
if (tok2->link() == NULL) {
|
if (tok2->link() == nullptr) {
|
||||||
std::ostringstream errmsg;
|
std::ostringstream errmsg;
|
||||||
errmsg << "unmatched while in switch: " << tok2->linenr();
|
errmsg << "unmatched while in switch: " << tok2->linenr();
|
||||||
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
||||||
|
@ -972,7 +972,7 @@ void CheckOther::checkSwitchCaseFallThrough()
|
||||||
justbreak = false;
|
justbreak = false;
|
||||||
} else if (Token::simpleMatch(tok2, "do {")) {
|
} else if (Token::simpleMatch(tok2, "do {")) {
|
||||||
tok2 = tok2->next();
|
tok2 = tok2->next();
|
||||||
if (tok2->link() == NULL) {
|
if (tok2->link() == nullptr) {
|
||||||
std::ostringstream errmsg;
|
std::ostringstream errmsg;
|
||||||
errmsg << "unmatched do in switch: " << tok2->linenr();
|
errmsg << "unmatched do in switch: " << tok2->linenr();
|
||||||
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
||||||
|
@ -982,7 +982,7 @@ void CheckOther::checkSwitchCaseFallThrough()
|
||||||
justbreak = false;
|
justbreak = false;
|
||||||
} else if (Token::simpleMatch(tok2, "for (")) {
|
} else if (Token::simpleMatch(tok2, "for (")) {
|
||||||
tok2 = tok2->next()->link()->next();
|
tok2 = tok2->next()->link()->next();
|
||||||
if (tok2->link() == NULL) {
|
if (tok2->link() == nullptr) {
|
||||||
std::ostringstream errmsg;
|
std::ostringstream errmsg;
|
||||||
errmsg << "unmatched for in switch: " << tok2->linenr();
|
errmsg << "unmatched for in switch: " << tok2->linenr();
|
||||||
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
||||||
|
@ -1012,7 +1012,7 @@ void CheckOther::checkSwitchCaseFallThrough()
|
||||||
if (tok2->next()->str() == "else") {
|
if (tok2->next()->str() == "else") {
|
||||||
tok2 = tok2->tokAt(2);
|
tok2 = tok2->tokAt(2);
|
||||||
ifnest.pop();
|
ifnest.pop();
|
||||||
if (tok2->link() == NULL) {
|
if (tok2->link() == nullptr) {
|
||||||
std::ostringstream errmsg;
|
std::ostringstream errmsg;
|
||||||
errmsg << "unmatched if in switch: " << tok2->linenr();
|
errmsg << "unmatched if in switch: " << tok2->linenr();
|
||||||
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str());
|
||||||
|
@ -1530,7 +1530,7 @@ void CheckOther::invalidFunctionUsage()
|
||||||
sprintfOverlappingDataError(tok2, tok2->str());
|
sprintfOverlappingDataError(tok2, tok2->str());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} while (NULL != (tok2 = tok2->nextArgument()));
|
} while (nullptr != (tok2 = tok2->nextArgument()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2198,7 +2198,7 @@ void CheckOther::checkZeroDivision()
|
||||||
// Value flow..
|
// Value flow..
|
||||||
const ValueFlow::Value *value = tok->astOperand2()->getValue(0LL);
|
const ValueFlow::Value *value = tok->astOperand2()->getValue(0LL);
|
||||||
if (value) {
|
if (value) {
|
||||||
if (value->condition == NULL)
|
if (value->condition == nullptr)
|
||||||
zerodivError(tok);
|
zerodivError(tok);
|
||||||
else if (_settings->isEnabled("warning"))
|
else if (_settings->isEnabled("warning"))
|
||||||
zerodivcondError(value->condition,tok);
|
zerodivcondError(value->condition,tok);
|
||||||
|
@ -2628,7 +2628,7 @@ void CheckOther::checkInvalidFree()
|
||||||
// if it is later used to free memory
|
// if it is later used to free memory
|
||||||
else if (Token::Match(tok, "%var% (")) {
|
else if (Token::Match(tok, "%var% (")) {
|
||||||
const Token* tok2 = Token::findmatch(tok->next(), "%var%", tok->linkAt(1));
|
const Token* tok2 = Token::findmatch(tok->next(), "%var%", tok->linkAt(1));
|
||||||
while (tok2 != NULL) {
|
while (tok2 != nullptr) {
|
||||||
allocatedVariables.erase(tok2->varId());
|
allocatedVariables.erase(tok2->varId());
|
||||||
tok2 = Token::findmatch(tok2->next(), "%var%", tok->linkAt(1));
|
tok2 = Token::findmatch(tok2->next(), "%var%", tok->linkAt(1));
|
||||||
}
|
}
|
||||||
|
@ -2698,7 +2698,7 @@ void CheckOther::checkDoubleFree()
|
||||||
else if (tok->str() == "}" && tok->link() && tok->link()->previous() &&
|
else if (tok->str() == "}" && tok->link() && tok->link()->previous() &&
|
||||||
tok->link()->linkAt(-1) &&
|
tok->link()->linkAt(-1) &&
|
||||||
Token::Match(tok->link()->linkAt(-1)->previous(), "while|for") &&
|
Token::Match(tok->link()->linkAt(-1)->previous(), "while|for") &&
|
||||||
Token::findmatch(tok->link()->linkAt(-1), "break|continue ;", tok) != NULL) {
|
Token::findmatch(tok->link()->linkAt(-1), "break|continue ;", tok) != nullptr) {
|
||||||
freedVariables.clear();
|
freedVariables.clear();
|
||||||
closeDirVariables.clear();
|
closeDirVariables.clear();
|
||||||
}
|
}
|
||||||
|
@ -2855,7 +2855,7 @@ void CheckOther::checkAlwaysTrueOrFalseStringCompare()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const Token *tok = _tokenizer->tokens();
|
const Token *tok = _tokenizer->tokens();
|
||||||
while (tok && (tok = Token::findmatch(tok, "strncmp|strcmp|stricmp|strcmpi|strcasecmp|wcscmp|wcsncmp ( %str% , %str% ")) != NULL) {
|
while (tok && (tok = Token::findmatch(tok, "strncmp|strcmp|stricmp|strcmpi|strcasecmp|wcscmp|wcsncmp ( %str% , %str% ")) != nullptr) {
|
||||||
const std::string &str1 = tok->strAt(2);
|
const std::string &str1 = tok->strAt(2);
|
||||||
const std::string &str2 = tok->strAt(4);
|
const std::string &str2 = tok->strAt(4);
|
||||||
alwaysTrueFalseStringCompareError(tok, str1, str2);
|
alwaysTrueFalseStringCompareError(tok, str1, str2);
|
||||||
|
@ -2863,7 +2863,7 @@ void CheckOther::checkAlwaysTrueOrFalseStringCompare()
|
||||||
}
|
}
|
||||||
|
|
||||||
tok = _tokenizer->tokens();
|
tok = _tokenizer->tokens();
|
||||||
while (tok && (tok = Token::findmatch(tok, "QString :: compare ( %str% , %str% )")) != NULL) {
|
while (tok && (tok = Token::findmatch(tok, "QString :: compare ( %str% , %str% )")) != nullptr) {
|
||||||
const std::string &str1 = tok->strAt(4);
|
const std::string &str1 = tok->strAt(4);
|
||||||
const std::string &str2 = tok->strAt(6);
|
const std::string &str2 = tok->strAt(6);
|
||||||
alwaysTrueFalseStringCompareError(tok, str1, str2);
|
alwaysTrueFalseStringCompareError(tok, str1, str2);
|
||||||
|
@ -2871,7 +2871,7 @@ void CheckOther::checkAlwaysTrueOrFalseStringCompare()
|
||||||
}
|
}
|
||||||
|
|
||||||
tok = _tokenizer->tokens();
|
tok = _tokenizer->tokens();
|
||||||
while (tok && (tok = Token::findmatch(tok, "strncmp|strcmp|stricmp|strcmpi|strcasecmp|wcscmp|wcsncmp ( %var% , %var% ")) != NULL) {
|
while (tok && (tok = Token::findmatch(tok, "strncmp|strcmp|stricmp|strcmpi|strcasecmp|wcscmp|wcsncmp ( %var% , %var% ")) != nullptr) {
|
||||||
const std::string &str1 = tok->strAt(2);
|
const std::string &str1 = tok->strAt(2);
|
||||||
const std::string &str2 = tok->strAt(4);
|
const std::string &str2 = tok->strAt(4);
|
||||||
if (str1 == str2)
|
if (str1 == str2)
|
||||||
|
@ -2880,7 +2880,7 @@ void CheckOther::checkAlwaysTrueOrFalseStringCompare()
|
||||||
}
|
}
|
||||||
|
|
||||||
tok = _tokenizer->tokens();
|
tok = _tokenizer->tokens();
|
||||||
while (tok && (tok = Token::findmatch(tok, "!!+ %str% ==|!= %str% !!+")) != NULL) {
|
while (tok && (tok = Token::findmatch(tok, "!!+ %str% ==|!= %str% !!+")) != nullptr) {
|
||||||
const std::string &str1 = tok->strAt(1);
|
const std::string &str1 = tok->strAt(1);
|
||||||
const std::string &str2 = tok->strAt(3);
|
const std::string &str2 = tok->strAt(3);
|
||||||
alwaysTrueFalseStringCompareError(tok, str1, str2);
|
alwaysTrueFalseStringCompareError(tok, str1, str2);
|
||||||
|
@ -3318,7 +3318,7 @@ void CheckOther::oppositeInnerCondition()
|
||||||
|
|
||||||
if (scope->classDef->strAt(6) == "{") {
|
if (scope->classDef->strAt(6) == "{") {
|
||||||
|
|
||||||
const char *oppositeCondition = NULL;
|
const char *oppositeCondition = nullptr;
|
||||||
|
|
||||||
if (scope->classDef->strAt(3) == "==")
|
if (scope->classDef->strAt(3) == "==")
|
||||||
oppositeCondition = "if ( %any% !=|<|>|<=|>= %any% )";
|
oppositeCondition = "if ( %any% !=|<|>|<=|>= %any% )";
|
||||||
|
@ -3388,13 +3388,13 @@ void CheckOther::checkVarFuncNullUB()
|
||||||
++argnr;
|
++argnr;
|
||||||
ftok = ftok->previous();
|
ftok = ftok->previous();
|
||||||
}
|
}
|
||||||
ftok = ftok ? ftok->previous() : NULL;
|
ftok = ftok ? ftok->previous() : nullptr;
|
||||||
if (ftok && ftok->isName()) {
|
if (ftok && ftok->isName()) {
|
||||||
// If this is a variadic function then report error
|
// If this is a variadic function then report error
|
||||||
const Function *f = ftok->function();
|
const Function *f = ftok->function();
|
||||||
if (f && f->argCount() <= argnr) {
|
if (f && f->argCount() <= argnr) {
|
||||||
const Token *tok2 = f->argDef;
|
const Token *tok2 = f->argDef;
|
||||||
tok2 = tok2 ? tok2->link() : NULL; // goto ')'
|
tok2 = tok2 ? tok2->link() : nullptr; // goto ')'
|
||||||
if (Token::simpleMatch(tok2->tokAt(-3), ". . ."))
|
if (Token::simpleMatch(tok2->tokAt(-3), ". . ."))
|
||||||
varFuncNullUBError(tok);
|
varFuncNullUBError(tok);
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,7 +133,7 @@ void CheckStl::iterators()
|
||||||
if (container && tok2->varId() != container->declarationId()) {
|
if (container && tok2->varId() != container->declarationId()) {
|
||||||
// skip error message if container is a set..
|
// skip error message if container is a set..
|
||||||
const Variable *variableInfo = tok2->variable();
|
const Variable *variableInfo = tok2->variable();
|
||||||
const Token *decltok = variableInfo ? variableInfo->typeStartToken() : NULL;
|
const Token *decltok = variableInfo ? variableInfo->typeStartToken() : nullptr;
|
||||||
|
|
||||||
if (Token::simpleMatch(decltok, "std :: set"))
|
if (Token::simpleMatch(decltok, "std :: set"))
|
||||||
continue; // No warning
|
continue; // No warning
|
||||||
|
@ -434,7 +434,7 @@ private:
|
||||||
// check if there is a "it = ints.erase(it);" pattern. if so
|
// check if there is a "it = ints.erase(it);" pattern. if so
|
||||||
// the it is not invalidated.
|
// the it is not invalidated.
|
||||||
const Token *token = &tok;
|
const Token *token = &tok;
|
||||||
while (NULL != (token = token ? token->previous() : 0)) {
|
while (nullptr != (token = token ? token->previous() : 0)) {
|
||||||
if (Token::Match(token, "[;{}]"))
|
if (Token::Match(token, "[;{}]"))
|
||||||
break;
|
break;
|
||||||
else if (token->str() == "=")
|
else if (token->str() == "=")
|
||||||
|
@ -506,7 +506,7 @@ void CheckStl::erase()
|
||||||
if (Token::Match(tok2, "; %var% !=")) {
|
if (Token::Match(tok2, "; %var% !=")) {
|
||||||
// Get declaration token for var..
|
// Get declaration token for var..
|
||||||
const Variable *variableInfo = tok2->next()->variable();
|
const Variable *variableInfo = tok2->next()->variable();
|
||||||
const Token *decltok = variableInfo ? variableInfo->typeEndToken() : NULL;
|
const Token *decltok = variableInfo ? variableInfo->typeEndToken() : nullptr;
|
||||||
|
|
||||||
// Is variable an iterator?
|
// Is variable an iterator?
|
||||||
bool isIterator = false;
|
bool isIterator = false;
|
||||||
|
|
|
@ -368,7 +368,7 @@ private:
|
||||||
*/
|
*/
|
||||||
static void parserhs(const Token *tok2, std::list<ExecutionPath *> &checks) {
|
static void parserhs(const Token *tok2, std::list<ExecutionPath *> &checks) {
|
||||||
// check variable usages in rhs/index
|
// check variable usages in rhs/index
|
||||||
while (NULL != (tok2 = tok2->next())) {
|
while (nullptr != (tok2 = tok2->next())) {
|
||||||
if (Token::Match(tok2, "[;)=]"))
|
if (Token::Match(tok2, "[;)=]"))
|
||||||
break;
|
break;
|
||||||
if (Token::Match(tok2, "%var% ("))
|
if (Token::Match(tok2, "%var% ("))
|
||||||
|
@ -713,7 +713,7 @@ private:
|
||||||
if (Token::Match(tok2->tokAt(-2), "[(,] *") || Token::Match(tok2->next(), ". %var%")) {
|
if (Token::Match(tok2->tokAt(-2), "[(,] *") || Token::Match(tok2->next(), ". %var%")) {
|
||||||
// find function call..
|
// find function call..
|
||||||
const Token *functionCall = tok2;
|
const Token *functionCall = tok2;
|
||||||
while (NULL != (functionCall = functionCall ? functionCall->previous() : 0)) {
|
while (nullptr != (functionCall = functionCall ? functionCall->previous() : 0)) {
|
||||||
if (functionCall->str() == "(")
|
if (functionCall->str() == "(")
|
||||||
break;
|
break;
|
||||||
if (functionCall->str() == ")")
|
if (functionCall->str() == ")")
|
||||||
|
@ -1097,7 +1097,7 @@ void CheckUninitVar::checkScope(const Scope* scope)
|
||||||
}
|
}
|
||||||
if (stdtype || i->isPointer()) {
|
if (stdtype || i->isPointer()) {
|
||||||
bool alloc = false;
|
bool alloc = false;
|
||||||
checkScopeForVariable(scope, tok, *i, NULL, NULL, &alloc, "");
|
checkScopeForVariable(scope, tok, *i, nullptr, nullptr, &alloc, "");
|
||||||
}
|
}
|
||||||
if (Token::Match(i->typeStartToken(), "struct %type% *| %var% ;"))
|
if (Token::Match(i->typeStartToken(), "struct %type% *| %var% ;"))
|
||||||
checkStruct(scope, tok, *i);
|
checkStruct(scope, tok, *i);
|
||||||
|
@ -1115,7 +1115,7 @@ void CheckUninitVar::checkScope(const Scope* scope)
|
||||||
checkStruct(scope, tok, *arg);
|
checkStruct(scope, tok, *arg);
|
||||||
else if (arg->typeStartToken()->isStandardType()) {
|
else if (arg->typeStartToken()->isStandardType()) {
|
||||||
bool alloc = false;
|
bool alloc = false;
|
||||||
checkScopeForVariable(scope, tok->next(), *arg, NULL, NULL, &alloc, "");
|
checkScopeForVariable(scope, tok->next(), *arg, nullptr, nullptr, &alloc, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1156,7 +1156,7 @@ void CheckUninitVar::checkStruct(const Scope* scope, const Token *tok, const Var
|
||||||
const Token *tok2 = tok;
|
const Token *tok2 = tok;
|
||||||
if (tok->str() == "}")
|
if (tok->str() == "}")
|
||||||
tok2 = tok2->next();
|
tok2 = tok2->next();
|
||||||
checkScopeForVariable(scope, tok2, structvar, NULL, NULL, &alloc, var.name());
|
checkScopeForVariable(scope, tok2, structvar, nullptr, nullptr, &alloc, var.name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1239,7 +1239,7 @@ bool CheckUninitVar::checkScopeForVariable(const Scope* scope, const Token *tok,
|
||||||
|
|
||||||
// Unconditional inner scope..
|
// Unconditional inner scope..
|
||||||
if (tok->str() == "{" && Token::Match(tok->previous(), "[;{}]")) {
|
if (tok->str() == "{" && Token::Match(tok->previous(), "[;{}]")) {
|
||||||
if (checkScopeForVariable(scope, tok->next(), var, possibleInit, NULL, alloc, membervar))
|
if (checkScopeForVariable(scope, tok->next(), var, possibleInit, nullptr, alloc, membervar))
|
||||||
return true;
|
return true;
|
||||||
tok = tok->link();
|
tok = tok->link();
|
||||||
continue;
|
continue;
|
||||||
|
@ -1330,7 +1330,7 @@ bool CheckUninitVar::checkScopeForVariable(const Scope* scope, const Token *tok,
|
||||||
|
|
||||||
bool possibleInitElse(number_of_if > 0 || suppressErrors);
|
bool possibleInitElse(number_of_if > 0 || suppressErrors);
|
||||||
bool noreturnElse = false;
|
bool noreturnElse = false;
|
||||||
const bool initelse = !alwaysTrue && checkScopeForVariable(scope, tok->next(), var, &possibleInitElse, NULL, alloc, membervar);
|
const bool initelse = !alwaysTrue && checkScopeForVariable(scope, tok->next(), var, &possibleInitElse, nullptr, alloc, membervar);
|
||||||
|
|
||||||
std::map<unsigned int, int> varValueElse;
|
std::map<unsigned int, int> varValueElse;
|
||||||
if (!alwaysTrue && !initelse && !noreturnElse) {
|
if (!alwaysTrue && !initelse && !noreturnElse) {
|
||||||
|
@ -1479,7 +1479,7 @@ bool CheckUninitVar::checkScopeForVariable(const Scope* scope, const Token *tok,
|
||||||
tok = tok->next();
|
tok = tok->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
return bool(noreturn==NULL);
|
return bool(noreturn==nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// variable is seen..
|
// variable is seen..
|
||||||
|
@ -1564,7 +1564,7 @@ bool CheckUninitVar::checkIfForWhileHead(const Token *startparentheses, const Va
|
||||||
|
|
||||||
bool CheckUninitVar::checkLoopBody(const Token *tok, const Variable& var, const bool alloc, const std::string &membervar, const bool suppressErrors)
|
bool CheckUninitVar::checkLoopBody(const Token *tok, const Variable& var, const bool alloc, const std::string &membervar, const bool suppressErrors)
|
||||||
{
|
{
|
||||||
const Token *usetok = NULL;
|
const Token *usetok = nullptr;
|
||||||
|
|
||||||
assert(tok->str() == "{");
|
assert(tok->str() == "{");
|
||||||
|
|
||||||
|
@ -1643,7 +1643,7 @@ void CheckUninitVar::checkRhs(const Token *tok, const Variable &var, bool alloc,
|
||||||
{
|
{
|
||||||
bool rhs = false;
|
bool rhs = false;
|
||||||
unsigned int indent = 0;
|
unsigned int indent = 0;
|
||||||
while (NULL != (tok = tok->next())) {
|
while (nullptr != (tok = tok->next())) {
|
||||||
if (tok->str() == "=")
|
if (tok->str() == "=")
|
||||||
rhs = true;
|
rhs = true;
|
||||||
else if (rhs && tok->varId() == var.declarationId()) {
|
else if (rhs && tok->varId() == var.declarationId()) {
|
||||||
|
|
|
@ -381,7 +381,7 @@ void Variables::leaveScope(bool insideLoop)
|
||||||
for (std::set<unsigned int>::const_iterator readIter = currentVarReadInScope.begin();
|
for (std::set<unsigned int>::const_iterator readIter = currentVarReadInScope.begin();
|
||||||
readIter != currentVarReadInScope.end();
|
readIter != currentVarReadInScope.end();
|
||||||
++readIter) {
|
++readIter) {
|
||||||
read(*readIter, NULL);
|
read(*readIter, nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1192,7 +1192,7 @@ void CheckUnusedVar::checkStructMemberUsage()
|
||||||
if (!structname.empty()) {
|
if (!structname.empty()) {
|
||||||
const std::string pattern1(structname + " %var% ;");
|
const std::string pattern1(structname + " %var% ;");
|
||||||
const Token *tok2 = tok;
|
const Token *tok2 = tok;
|
||||||
while (NULL != (tok2 = Token::findmatch(tok2->next(), pattern1.c_str()))) {
|
while (nullptr != (tok2 = Token::findmatch(tok2->next(), pattern1.c_str()))) {
|
||||||
if (Token::simpleMatch(tok2->tokAt(3), (tok2->strAt(1) + " = {").c_str())) {
|
if (Token::simpleMatch(tok2->tokAt(3), (tok2->strAt(1) + " = {").c_str())) {
|
||||||
structname.clear();
|
structname.clear();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -451,7 +451,7 @@ void CppCheck::executeRules(const std::string &tokenlist, const Tokenizer &token
|
||||||
|
|
||||||
const char *error = 0;
|
const char *error = 0;
|
||||||
int erroffset = 0;
|
int erroffset = 0;
|
||||||
pcre *re = pcre_compile(rule.pattern.c_str(),0,&error,&erroffset,NULL);
|
pcre *re = pcre_compile(rule.pattern.c_str(),0,&error,&erroffset,nullptr);
|
||||||
if (!re) {
|
if (!re) {
|
||||||
if (error) {
|
if (error) {
|
||||||
ErrorLogger::ErrorMessage errmsg(std::list<ErrorLogger::ErrorMessage::FileLocation>(),
|
ErrorLogger::ErrorMessage errmsg(std::list<ErrorLogger::ErrorMessage::FileLocation>(),
|
||||||
|
@ -467,7 +467,7 @@ void CppCheck::executeRules(const std::string &tokenlist, const Tokenizer &token
|
||||||
|
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
int ovector[30];
|
int ovector[30];
|
||||||
while (pos < (int)str.size() && 0 <= pcre_exec(re, NULL, str.c_str(), (int)str.size(), pos, 0, ovector, 30)) {
|
while (pos < (int)str.size() && 0 <= pcre_exec(re, nullptr, str.c_str(), (int)str.size(), pos, 0, ovector, 30)) {
|
||||||
unsigned int pos1 = (unsigned int)ovector[0];
|
unsigned int pos1 = (unsigned int)ovector[0];
|
||||||
unsigned int pos2 = (unsigned int)ovector[1];
|
unsigned int pos2 = (unsigned int)ovector[1];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue