From fb5c2d4b48c2b6aa98e732b2fa7dbebef3aaeb90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sat, 15 Feb 2014 08:46:28 +0100 Subject: [PATCH] use nullptr in lib/checkother.cpp --- lib/checkother.cpp | 36 ++++++++++++++++++------------------ lib/checkstl.cpp | 6 +++--- lib/checkuninitvar.cpp | 20 ++++++++++---------- lib/checkunusedvar.cpp | 4 ++-- lib/cppcheck.cpp | 4 ++-- 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/lib/checkother.cpp b/lib/checkother.cpp index cfdc12d6d..aa4b57bd3 100644 --- a/lib/checkother.cpp +++ b/lib/checkother.cpp @@ -64,9 +64,9 @@ static bool isConstExpression(const Token *tok, const std::set &con static bool isSameExpression(const Token *tok1, const Token *tok2, const std::set &constFunctions) { - if (tok1 == NULL && tok2 == NULL) + if (tok1 == nullptr && tok2 == nullptr) return true; - if (tok1 == NULL || tok2 == NULL) + if (tok1 == nullptr || tok2 == nullptr) return false; if (tok1->str() != tok2->str()) return false; @@ -949,7 +949,7 @@ void CheckOther::checkSwitchCaseFallThrough() for (const Token *tok2 = i->classStart; tok2 != i->classEnd; tok2 = tok2->next()) { if (Token::simpleMatch(tok2, "if (")) { tok2 = tok2->next()->link()->next(); - if (tok2->link() == NULL) { + if (tok2->link() == nullptr) { std::ostringstream errmsg; errmsg << "unmatched if in switch: " << tok2->linenr(); reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str()); @@ -961,7 +961,7 @@ void CheckOther::checkSwitchCaseFallThrough() tok2 = tok2->next()->link()->next(); // skip over "do { } while ( ) ;" case if (tok2->str() == "{") { - if (tok2->link() == NULL) { + if (tok2->link() == nullptr) { std::ostringstream errmsg; errmsg << "unmatched while in switch: " << tok2->linenr(); reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str()); @@ -972,7 +972,7 @@ void CheckOther::checkSwitchCaseFallThrough() justbreak = false; } else if (Token::simpleMatch(tok2, "do {")) { tok2 = tok2->next(); - if (tok2->link() == NULL) { + if (tok2->link() == nullptr) { std::ostringstream errmsg; errmsg << "unmatched do in switch: " << tok2->linenr(); reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str()); @@ -982,7 +982,7 @@ void CheckOther::checkSwitchCaseFallThrough() justbreak = false; } else if (Token::simpleMatch(tok2, "for (")) { tok2 = tok2->next()->link()->next(); - if (tok2->link() == NULL) { + if (tok2->link() == nullptr) { std::ostringstream errmsg; errmsg << "unmatched for in switch: " << tok2->linenr(); reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str()); @@ -1012,7 +1012,7 @@ void CheckOther::checkSwitchCaseFallThrough() if (tok2->next()->str() == "else") { tok2 = tok2->tokAt(2); ifnest.pop(); - if (tok2->link() == NULL) { + if (tok2->link() == nullptr) { std::ostringstream errmsg; errmsg << "unmatched if in switch: " << tok2->linenr(); reportError(_tokenizer->tokens(), Severity::debug, "debug", errmsg.str()); @@ -1530,7 +1530,7 @@ void CheckOther::invalidFunctionUsage() sprintfOverlappingDataError(tok2, tok2->str()); break; } - } while (NULL != (tok2 = tok2->nextArgument())); + } while (nullptr != (tok2 = tok2->nextArgument())); } } @@ -2198,7 +2198,7 @@ void CheckOther::checkZeroDivision() // Value flow.. const ValueFlow::Value *value = tok->astOperand2()->getValue(0LL); if (value) { - if (value->condition == NULL) + if (value->condition == nullptr) zerodivError(tok); else if (_settings->isEnabled("warning")) zerodivcondError(value->condition,tok); @@ -2628,7 +2628,7 @@ void CheckOther::checkInvalidFree() // if it is later used to free memory else if (Token::Match(tok, "%var% (")) { const Token* tok2 = Token::findmatch(tok->next(), "%var%", tok->linkAt(1)); - while (tok2 != NULL) { + while (tok2 != nullptr) { allocatedVariables.erase(tok2->varId()); 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() && tok->link()->linkAt(-1) && 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(); closeDirVariables.clear(); } @@ -2855,7 +2855,7 @@ void CheckOther::checkAlwaysTrueOrFalseStringCompare() return; 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 &str2 = tok->strAt(4); alwaysTrueFalseStringCompareError(tok, str1, str2); @@ -2863,7 +2863,7 @@ void CheckOther::checkAlwaysTrueOrFalseStringCompare() } 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 &str2 = tok->strAt(6); alwaysTrueFalseStringCompareError(tok, str1, str2); @@ -2871,7 +2871,7 @@ void CheckOther::checkAlwaysTrueOrFalseStringCompare() } 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 &str2 = tok->strAt(4); if (str1 == str2) @@ -2880,7 +2880,7 @@ void CheckOther::checkAlwaysTrueOrFalseStringCompare() } 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 &str2 = tok->strAt(3); alwaysTrueFalseStringCompareError(tok, str1, str2); @@ -3318,7 +3318,7 @@ void CheckOther::oppositeInnerCondition() if (scope->classDef->strAt(6) == "{") { - const char *oppositeCondition = NULL; + const char *oppositeCondition = nullptr; if (scope->classDef->strAt(3) == "==") oppositeCondition = "if ( %any% !=|<|>|<=|>= %any% )"; @@ -3388,13 +3388,13 @@ void CheckOther::checkVarFuncNullUB() ++argnr; ftok = ftok->previous(); } - ftok = ftok ? ftok->previous() : NULL; + ftok = ftok ? ftok->previous() : nullptr; if (ftok && ftok->isName()) { // If this is a variadic function then report error const Function *f = ftok->function(); if (f && f->argCount() <= argnr) { const Token *tok2 = f->argDef; - tok2 = tok2 ? tok2->link() : NULL; // goto ')' + tok2 = tok2 ? tok2->link() : nullptr; // goto ')' if (Token::simpleMatch(tok2->tokAt(-3), ". . .")) varFuncNullUBError(tok); } diff --git a/lib/checkstl.cpp b/lib/checkstl.cpp index f77f7fce5..7aec06541 100644 --- a/lib/checkstl.cpp +++ b/lib/checkstl.cpp @@ -133,7 +133,7 @@ void CheckStl::iterators() if (container && tok2->varId() != container->declarationId()) { // skip error message if container is a set.. 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")) continue; // No warning @@ -434,7 +434,7 @@ private: // check if there is a "it = ints.erase(it);" pattern. if so // the it is not invalidated. const Token *token = &tok; - while (NULL != (token = token ? token->previous() : 0)) { + while (nullptr != (token = token ? token->previous() : 0)) { if (Token::Match(token, "[;{}]")) break; else if (token->str() == "=") @@ -506,7 +506,7 @@ void CheckStl::erase() if (Token::Match(tok2, "; %var% !=")) { // Get declaration token for var.. const Variable *variableInfo = tok2->next()->variable(); - const Token *decltok = variableInfo ? variableInfo->typeEndToken() : NULL; + const Token *decltok = variableInfo ? variableInfo->typeEndToken() : nullptr; // Is variable an iterator? bool isIterator = false; diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index 341b2f6b4..9b0f57939 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -368,7 +368,7 @@ private: */ static void parserhs(const Token *tok2, std::list &checks) { // check variable usages in rhs/index - while (NULL != (tok2 = tok2->next())) { + while (nullptr != (tok2 = tok2->next())) { if (Token::Match(tok2, "[;)=]")) break; if (Token::Match(tok2, "%var% (")) @@ -713,7 +713,7 @@ private: if (Token::Match(tok2->tokAt(-2), "[(,] *") || Token::Match(tok2->next(), ". %var%")) { // find function call.. const Token *functionCall = tok2; - while (NULL != (functionCall = functionCall ? functionCall->previous() : 0)) { + while (nullptr != (functionCall = functionCall ? functionCall->previous() : 0)) { if (functionCall->str() == "(") break; if (functionCall->str() == ")") @@ -1097,7 +1097,7 @@ void CheckUninitVar::checkScope(const Scope* scope) } if (stdtype || i->isPointer()) { 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% ;")) checkStruct(scope, tok, *i); @@ -1115,7 +1115,7 @@ void CheckUninitVar::checkScope(const Scope* scope) checkStruct(scope, tok, *arg); else if (arg->typeStartToken()->isStandardType()) { 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; if (tok->str() == "}") 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.. 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; tok = tok->link(); continue; @@ -1330,7 +1330,7 @@ bool CheckUninitVar::checkScopeForVariable(const Scope* scope, const Token *tok, bool possibleInitElse(number_of_if > 0 || suppressErrors); 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 varValueElse; if (!alwaysTrue && !initelse && !noreturnElse) { @@ -1479,7 +1479,7 @@ bool CheckUninitVar::checkScopeForVariable(const Scope* scope, const Token *tok, tok = tok->next(); } - return bool(noreturn==NULL); + return bool(noreturn==nullptr); } // 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) { - const Token *usetok = NULL; + const Token *usetok = nullptr; assert(tok->str() == "{"); @@ -1643,7 +1643,7 @@ void CheckUninitVar::checkRhs(const Token *tok, const Variable &var, bool alloc, { bool rhs = false; unsigned int indent = 0; - while (NULL != (tok = tok->next())) { + while (nullptr != (tok = tok->next())) { if (tok->str() == "=") rhs = true; else if (rhs && tok->varId() == var.declarationId()) { diff --git a/lib/checkunusedvar.cpp b/lib/checkunusedvar.cpp index 0ea4055ea..89ab17db6 100644 --- a/lib/checkunusedvar.cpp +++ b/lib/checkunusedvar.cpp @@ -381,7 +381,7 @@ void Variables::leaveScope(bool insideLoop) for (std::set::const_iterator readIter = currentVarReadInScope.begin(); readIter != currentVarReadInScope.end(); ++readIter) { - read(*readIter, NULL); + read(*readIter, nullptr); } } @@ -1192,7 +1192,7 @@ void CheckUnusedVar::checkStructMemberUsage() if (!structname.empty()) { const std::string pattern1(structname + " %var% ;"); 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())) { structname.clear(); break; diff --git a/lib/cppcheck.cpp b/lib/cppcheck.cpp index 086c15737..389064426 100644 --- a/lib/cppcheck.cpp +++ b/lib/cppcheck.cpp @@ -451,7 +451,7 @@ void CppCheck::executeRules(const std::string &tokenlist, const Tokenizer &token const char *error = 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 (error) { ErrorLogger::ErrorMessage errmsg(std::list(), @@ -467,7 +467,7 @@ void CppCheck::executeRules(const std::string &tokenlist, const Tokenizer &token int pos = 0; 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 pos2 = (unsigned int)ovector[1];