Skip to content

Commit b1f4bd7

Browse files
committed
Refactorization: Reimplemented Settings::_enabled as a bitfeld instead of std::set (danmar#7995)
1 parent 4d1a643 commit b1f4bd7

32 files changed

+285
-248
lines changed

cli/cmdlineparser.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ bool CmdLineParser::ParseFromArgs(int argc, const char* const argv[])
325325
return false;
326326
}
327327
// when "style" is enabled, also enable "warning", "performance" and "portability"
328-
if (_settings->isEnabled("style")) {
328+
if (_settings->isEnabled(Settings::STYLE)) {
329329
_settings->addEnabled("warning");
330330
_settings->addEnabled("performance");
331331
_settings->addEnabled("portability");
@@ -759,7 +759,7 @@ bool CmdLineParser::ParseFromArgs(int argc, const char* const argv[])
759759
else if ((def || _settings->preprocessOnly) && !maxconfigs)
760760
_settings->maxConfigs = 1U;
761761

762-
if (_settings->isEnabled("unusedFunction") && _settings->jobs > 1) {
762+
if (_settings->isEnabled(Settings::UNUSED_FUNCTION) && _settings->jobs > 1) {
763763
PrintMessage("cppcheck: unusedFunction check can't be used with '-j' option. Disabling unusedFunction check.");
764764
}
765765

cli/cppcheckexecutor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ bool CppCheckExecutor::parseFromArgs(CppCheck *cppcheck, int argc, const char* c
119119
++iter;
120120
else {
121121
// If the include path is not found, warn user and remove the non-existing path from the list.
122-
if (settings.isEnabled("information"))
122+
if (settings.isEnabled(Settings::INFORMATION))
123123
std::cout << "(information) Couldn't find path given by -I '" << path << '\'' << std::endl;
124124
iter = settings.includePaths.erase(iter);
125125
}
@@ -864,7 +864,7 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck, int /*argc*/, const cha
864864

865865
cppcheck.analyseWholeProgram(_settings->buildDir, _files);
866866

867-
if (settings.isEnabled("information") || settings.checkConfiguration) {
867+
if (settings.isEnabled(Settings::INFORMATION) || settings.checkConfiguration) {
868868
const bool enableUnusedFunctionCheck = cppcheck.isUnusedFunctionCheckEnabled();
869869

870870
if (settings.jointSuppressionReport) {
@@ -879,7 +879,7 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck, int /*argc*/, const cha
879879
if (!settings.checkConfiguration) {
880880
cppcheck.tooManyConfigsError("",0U);
881881

882-
if (settings.isEnabled("missingInclude") && (Preprocessor::missingIncludeFlag || Preprocessor::missingSystemIncludeFlag)) {
882+
if (settings.isEnabled(Settings::MISSING_INCLUDE) && (Preprocessor::missingIncludeFlag || Preprocessor::missingSystemIncludeFlag)) {
883883
const std::list<ErrorLogger::ErrorMessage::FileLocation> callStack;
884884
ErrorLogger::ErrorMessage msg(callStack,
885885
emptyString,

lib/check64bit.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ namespace {
3636

3737
void Check64BitPortability::pointerassignment()
3838
{
39-
if (!_settings->isEnabled("portability"))
39+
if (!_settings->isEnabled(Settings::PORTABILITY))
4040
return;
4141

4242
const SymbolDatabase *symbolDatabase = _tokenizer->getSymbolDatabase();

lib/checkassert.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace {
3535

3636
void CheckAssert::assertWithSideEffects()
3737
{
38-
if (!_settings->isEnabled("warning"))
38+
if (!_settings->isEnabled(Settings::WARNING))
3939
return;
4040

4141
for (const Token* tok = _tokenizer->list.front(); tok; tok = tok->next()) {

lib/checkautovariables.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,8 @@ static bool variableIsUsedInScope(const Token* start, unsigned int varId, const
168168

169169
void CheckAutoVariables::assignFunctionArg()
170170
{
171-
const bool printStyle = _settings->isEnabled("style");
172-
const bool printWarning = _settings->isEnabled("warning");
171+
const bool printStyle = _settings->isEnabled(Settings::STYLE);
172+
const bool printWarning = _settings->isEnabled(Settings::WARNING);
173173
if (!printStyle && !printWarning)
174174
return;
175175

lib/checkbool.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ static bool isNonBoolStdType(const Variable* var)
4646
//---------------------------------------------------------------------------
4747
void CheckBool::checkIncrementBoolean()
4848
{
49-
if (!_settings->isEnabled("style"))
49+
if (!_settings->isEnabled(Settings::STYLE))
5050
return;
5151

5252
const SymbolDatabase *symbolDatabase = _tokenizer->getSymbolDatabase();
@@ -81,7 +81,7 @@ void CheckBool::incrementBooleanError(const Token *tok)
8181
//---------------------------------------------------------------------------
8282
void CheckBool::checkBitwiseOnBoolean()
8383
{
84-
if (!_settings->isEnabled("style"))
84+
if (!_settings->isEnabled(Settings::STYLE))
8585
return;
8686

8787
// danmar: this is inconclusive because I don't like that there are
@@ -125,7 +125,7 @@ void CheckBool::bitwiseOnBooleanError(const Token *tok, const std::string &varna
125125

126126
void CheckBool::checkComparisonOfBoolWithInt()
127127
{
128-
if (!_settings->isEnabled("warning") || !_tokenizer->isCPP())
128+
if (!_settings->isEnabled(Settings::WARNING) || !_tokenizer->isCPP())
129129
return;
130130

131131
const SymbolDatabase* const symbolDatabase = _tokenizer->getSymbolDatabase();
@@ -176,7 +176,7 @@ static bool tokenIsFunctionReturningBool(const Token* tok)
176176

177177
void CheckBool::checkComparisonOfFuncReturningBool()
178178
{
179-
if (!_settings->isEnabled("style"))
179+
if (!_settings->isEnabled(Settings::STYLE))
180180
return;
181181

182182
if (!_tokenizer->isCPP())
@@ -240,7 +240,7 @@ void CheckBool::checkComparisonOfBoolWithBool()
240240
if (!_settings->experimental)
241241
return;
242242

243-
if (!_settings->isEnabled("style"))
243+
if (!_settings->isEnabled(Settings::STYLE))
244244
return;
245245

246246
if (!_tokenizer->isCPP())
@@ -319,7 +319,7 @@ void CheckBool::assignBoolToPointerError(const Token *tok)
319319
//-----------------------------------------------------------------------------
320320
void CheckBool::checkComparisonOfBoolExpressionWithInt()
321321
{
322-
if (!_settings->isEnabled("warning"))
322+
if (!_settings->isEnabled(Settings::WARNING))
323323
return;
324324

325325
const SymbolDatabase* symbolDatabase = _tokenizer->getSymbolDatabase();
@@ -437,7 +437,7 @@ void CheckBool::checkAssignBoolToFloat()
437437
{
438438
if (!_tokenizer->isCPP())
439439
return;
440-
if (!_settings->isEnabled("style"))
440+
if (!_settings->isEnabled(Settings::STYLE))
441441
return;
442442
const SymbolDatabase *symbolDatabase = _tokenizer->getSymbolDatabase();
443443
const std::size_t functions = symbolDatabase->functionScopes.size();

lib/checkbufferoverrun.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void CheckBufferOverrun::arrayIndexOutOfBoundsError(const Token *tok, const Arra
8484
}
8585

8686
if (condition != nullptr) {
87-
if (!_settings->isEnabled("warning"))
87+
if (!_settings->isEnabled(Settings::WARNING))
8888
return;
8989

9090
std::ostringstream errmsg;
@@ -169,7 +169,7 @@ void CheckBufferOverrun::possibleBufferOverrunError(const Token *tok, const std:
169169

170170
void CheckBufferOverrun::strncatUsageError(const Token *tok)
171171
{
172-
if (_settings && !_settings->isEnabled("warning"))
172+
if (_settings && !_settings->isEnabled(Settings::WARNING))
173173
return;
174174

175175
reportError(tok, Severity::warning, "strncatUsage",
@@ -220,7 +220,7 @@ void CheckBufferOverrun::pointerOutOfBoundsError(const Token *tok, const Token *
220220

221221
void CheckBufferOverrun::sizeArgumentAsCharError(const Token *tok)
222222
{
223-
if (_settings && !_settings->isEnabled("warning"))
223+
if (_settings && !_settings->isEnabled(Settings::WARNING))
224224
return;
225225
reportError(tok, Severity::warning, "sizeArgumentAsChar", "The size argument is given as a char constant.", CWE682, false);
226226
}
@@ -474,7 +474,7 @@ void CheckBufferOverrun::checkFunctionParameter(const Token &ftok, unsigned int
474474
}
475475

476476
// Check 'float x[10]' arguments in declaration
477-
if (_settings->isEnabled("warning")) {
477+
if (_settings->isEnabled(Settings::WARNING)) {
478478
const Function* const func = ftok.function();
479479

480480
// If argument is '%type% a[num]' then check bounds against num
@@ -575,7 +575,7 @@ void CheckBufferOverrun::checkScope(const Token *tok, const std::vector<const st
575575
// out of bounds then this flag will be set.
576576
bool pointerIsOutOfBounds = false;
577577

578-
const bool printPortability = _settings->isEnabled("portability");
578+
const bool printPortability = _settings->isEnabled(Settings::PORTABILITY);
579579

580580
for (const Token* const end = tok->scope()->classEnd; tok && tok != end; tok = tok->next()) {
581581
if (declarationId != 0 && Token::Match(tok, "%varid% = new|malloc|realloc", declarationId)) {
@@ -905,8 +905,8 @@ void CheckBufferOverrun::checkScope(const Token *tok, std::map<unsigned int, Arr
905905

906906
void CheckBufferOverrun::checkScope_inner(const Token *tok, const ArrayInfo &arrayInfo)
907907
{
908-
const bool printPortability = _settings->isEnabled("portability");
909-
const bool printWarning = _settings->isEnabled("warning");
908+
const bool printPortability = _settings->isEnabled(Settings::PORTABILITY);
909+
const bool printWarning = _settings->isEnabled(Settings::WARNING);
910910
const bool printInconclusive = _settings->inconclusive;
911911

912912
if (tok->strAt(1) == "[") {
@@ -1853,7 +1853,7 @@ MathLib::bigint CheckBufferOverrun::ArrayInfo::totalIndex(const std::vector<Valu
18531853

18541854
void CheckBufferOverrun::arrayIndexThenCheck()
18551855
{
1856-
if (!_settings->isEnabled("style"))
1856+
if (!_settings->isEnabled(Settings::STYLE))
18571857
return;
18581858

18591859
const std::size_t functions = symbolDatabase->functionScopes.size();

lib/checkclass.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ CheckClass::CheckClass(const Tokenizer *tokenizer, const Settings *settings, Err
8080

8181
void CheckClass::constructors()
8282
{
83-
const bool printStyle = _settings->isEnabled("style");
84-
const bool printWarnings = _settings->isEnabled("warning");
83+
const bool printStyle = _settings->isEnabled(Settings::STYLE);
84+
const bool printWarnings = _settings->isEnabled(Settings::WARNING);
8585
if (!printStyle && !printWarnings)
8686
return;
8787

@@ -238,7 +238,7 @@ void CheckClass::constructors()
238238

239239
void CheckClass::checkExplicitConstructors()
240240
{
241-
if (!_settings->isEnabled("style"))
241+
if (!_settings->isEnabled(Settings::STYLE))
242242
return;
243243

244244
const std::size_t classes = symbolDatabase->classAndStructScopes.size();
@@ -286,7 +286,7 @@ void CheckClass::checkExplicitConstructors()
286286

287287
void CheckClass::copyconstructors()
288288
{
289-
if (!_settings->isEnabled("style"))
289+
if (!_settings->isEnabled(Settings::STYLE))
290290
return;
291291

292292
const std::size_t classes = symbolDatabase->classAndStructScopes.size();
@@ -833,7 +833,7 @@ void CheckClass::operatorEqVarError(const Token *tok, const std::string &classna
833833

834834
void CheckClass::initializationListUsage()
835835
{
836-
if (!_settings->isEnabled("performance"))
836+
if (!_settings->isEnabled(Settings::PERFORMANCE))
837837
return;
838838

839839
const std::size_t functions = symbolDatabase->functionScopes.size();
@@ -948,7 +948,7 @@ static bool checkFunctionUsage(const Function *privfunc, const Scope* scope)
948948

949949
void CheckClass::privateFunctions()
950950
{
951-
if (!_settings->isEnabled("style"))
951+
if (!_settings->isEnabled(Settings::STYLE))
952952
return;
953953

954954
const std::size_t classes = symbolDatabase->classAndStructScopes.size();
@@ -1018,7 +1018,7 @@ static const Scope* findFunctionOf(const Scope* scope)
10181018

10191019
void CheckClass::checkMemset()
10201020
{
1021-
const bool printWarnings = _settings->isEnabled("warning");
1021+
const bool printWarnings = _settings->isEnabled(Settings::WARNING);
10221022
const std::size_t functions = symbolDatabase->functionScopes.size();
10231023
for (std::size_t i = 0; i < functions; ++i) {
10241024
const Scope * scope = symbolDatabase->functionScopes[i];
@@ -1105,7 +1105,7 @@ void CheckClass::checkMemsetType(const Scope *start, const Token *tok, const Sco
11051105
return;
11061106
parsedTypes.insert(type);
11071107

1108-
const bool printPortability = _settings->isEnabled("portability");
1108+
const bool printPortability = _settings->isEnabled(Settings::PORTABILITY);
11091109

11101110
// recursively check all parent classes
11111111
for (std::size_t i = 0; i < type->definedType->derivedFrom.size(); i++) {
@@ -1209,7 +1209,7 @@ void CheckClass::memsetErrorFloat(const Token *tok, const std::string &type)
12091209

12101210
void CheckClass::operatorEq()
12111211
{
1212-
if (!_settings->isEnabled("style"))
1212+
if (!_settings->isEnabled(Settings::STYLE))
12131213
return;
12141214

12151215
const std::size_t classes = symbolDatabase->classAndStructScopes.size();
@@ -1263,7 +1263,7 @@ void CheckClass::operatorEqReturnError(const Token *tok, const std::string &clas
12631263

12641264
void CheckClass::operatorEqRetRefThis()
12651265
{
1266-
if (!_settings->isEnabled("style"))
1266+
if (!_settings->isEnabled(Settings::STYLE))
12671267
return;
12681268

12691269
const std::size_t classes = symbolDatabase->classAndStructScopes.size();
@@ -1399,7 +1399,7 @@ void CheckClass::operatorEqMissingReturnStatementError(const Token *tok, bool er
13991399

14001400
void CheckClass::operatorEqToSelf()
14011401
{
1402-
if (!_settings->isEnabled("warning"))
1402+
if (!_settings->isEnabled(Settings::WARNING))
14031403
return;
14041404

14051405
const std::size_t classes = symbolDatabase->classAndStructScopes.size();
@@ -1648,7 +1648,7 @@ void CheckClass::virtualDestructor()
16481648
void CheckClass::virtualDestructorError(const Token *tok, const std::string &Base, const std::string &Derived, bool inconclusive)
16491649
{
16501650
if (inconclusive) {
1651-
if (_settings->isEnabled("warning"))
1651+
if (_settings->isEnabled(Settings::WARNING))
16521652
reportError(tok, Severity::warning, "virtualDestructor", "Class '" + Base + "' which has virtual members does not have a virtual destructor.", CWE404, true);
16531653
} else {
16541654
reportError(tok, Severity::error, "virtualDestructor", "Class '" + Base + "' which is inherited by class '" + Derived + "' does not have a virtual destructor.\n"
@@ -1665,7 +1665,7 @@ void CheckClass::virtualDestructorError(const Token *tok, const std::string &Bas
16651665

16661666
void CheckClass::thisSubtraction()
16671667
{
1668-
if (!_settings->isEnabled("warning"))
1668+
if (!_settings->isEnabled(Settings::WARNING))
16691669
return;
16701670

16711671
const Token *tok = _tokenizer->tokens();
@@ -1696,7 +1696,7 @@ void CheckClass::checkConst()
16961696
if (!_settings->inconclusive)
16971697
return;
16981698

1699-
if (!_settings->isEnabled("style"))
1699+
if (!_settings->isEnabled(Settings::STYLE))
17001700
return;
17011701

17021702
const std::size_t classes = symbolDatabase->classAndStructScopes.size();
@@ -2075,7 +2075,7 @@ namespace { // avoid one-definition-rule violation
20752075

20762076
void CheckClass::initializerListOrder()
20772077
{
2078-
if (!_settings->isEnabled("style"))
2078+
if (!_settings->isEnabled(Settings::STYLE))
20792079
return;
20802080

20812081
// This check is not inconclusive. However it only determines if the initialization
@@ -2183,7 +2183,7 @@ void CheckClass::selfInitializationError(const Token* tok, const std::string& va
21832183

21842184
void CheckClass::checkPureVirtualFunctionCall()
21852185
{
2186-
if (! _settings->isEnabled("warning"))
2186+
if (! _settings->isEnabled(Settings::WARNING))
21872187
return;
21882188
const std::size_t functions = symbolDatabase->functionScopes.size();
21892189
std::map<const Function *, std::list<const Token *> > callsPureVirtualFunctionMap;
@@ -2305,7 +2305,7 @@ void CheckClass::callsPureVirtualFunctionError(
23052305

23062306
void CheckClass::checkDuplInheritedMembers()
23072307
{
2308-
if (!_settings->isEnabled("warning"))
2308+
if (!_settings->isEnabled(Settings::WARNING))
23092309
return;
23102310

23112311
// Iterate over all classes
@@ -2359,7 +2359,7 @@ void CheckClass::duplInheritedMembersError(const Token *tok1, const Token* tok2,
23592359

23602360
void CheckClass::checkCopyCtorAndEqOperator()
23612361
{
2362-
if (!_settings->isEnabled("warning"))
2362+
if (!_settings->isEnabled(Settings::WARNING))
23632363
return;
23642364

23652365
const std::size_t classes = symbolDatabase->classAndStructScopes.size();

0 commit comments

Comments
 (0)