diff --git a/cli/cppcheckexecutor.cpp b/cli/cppcheckexecutor.cpp index 832684c967f..4320c020f0f 100644 --- a/cli/cppcheckexecutor.cpp +++ b/cli/cppcheckexecutor.cpp @@ -183,10 +183,13 @@ int CppCheckExecutor::check(int argc, const char* const argv[]) return EXIT_SUCCESS; } + settings.loadSummaries(); + mFiles = parser.getFiles(); mFileSettings = parser.getFileSettings(); mStdLogger = new StdLogger(settings); + CppCheck cppCheck(*mStdLogger, true, executeCommand); cppCheck.settings() = settings; @@ -230,9 +233,10 @@ bool CppCheckExecutor::reportSuppressions(const Settings &settings, bool unusedF /* * That is a method which gets called from check_wrapper * */ -int CppCheckExecutor::check_internal(CppCheck& cppcheck) +int CppCheckExecutor::check_internal(CppCheck& cppcheck) const { - Settings& settings = cppcheck.settings(); + const auto& settings = cppcheck.settings(); + auto& suppressions = cppcheck.settings().nomsg; if (settings.reportProgress >= 0) mStdLogger->resetLatestProgressOutputTime(); @@ -242,8 +246,6 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck) } if (!settings.buildDir.empty()) { - settings.loadSummaries(); - std::list fileNames; for (std::list>::const_iterator i = mFiles.cbegin(); i != mFiles.cend(); ++i) fileNames.emplace_back(i->first); @@ -256,13 +258,13 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck) unsigned int returnValue; if (settings.useSingleJob()) { // Single process - SingleExecutor executor(cppcheck, mFiles, mFileSettings, settings, settings.nomsg, *mStdLogger); + SingleExecutor executor(cppcheck, mFiles, mFileSettings, settings, suppressions, *mStdLogger); returnValue = executor.check(); } else { #if defined(THREADING_MODEL_THREAD) - ThreadExecutor executor(mFiles, mFileSettings, settings, settings.nomsg, *mStdLogger, CppCheckExecutor::executeCommand); + ThreadExecutor executor(mFiles, mFileSettings, settings, suppressions, *mStdLogger, CppCheckExecutor::executeCommand); #elif defined(THREADING_MODEL_FORK) - ProcessExecutor executor(mFiles, mFileSettings, settings, settings.nomsg, *mStdLogger, CppCheckExecutor::executeCommand); + ProcessExecutor executor(mFiles, mFileSettings, settings, suppressions, *mStdLogger, CppCheckExecutor::executeCommand); #endif returnValue = executor.check(); } diff --git a/cli/cppcheckexecutor.h b/cli/cppcheckexecutor.h index 34157ddfbd0..f54e49dee2e 100644 --- a/cli/cppcheckexecutor.h +++ b/cli/cppcheckexecutor.h @@ -101,7 +101,7 @@ class CppCheckExecutor { * given value is returned instead of default 0. * If no errors are found, 0 is returned. */ - int check_internal(CppCheck& cppcheck); + int check_internal(CppCheck& cppcheck) const; /** * Filename associated with size of file diff --git a/cli/cppcheckexecutorseh.cpp b/cli/cppcheckexecutorseh.cpp index 7f571bd53a6..9ec2df0a2b5 100644 --- a/cli/cppcheckexecutorseh.cpp +++ b/cli/cppcheckexecutorseh.cpp @@ -253,7 +253,7 @@ namespace { * TODO Check for multi-threading issues! * */ -int check_wrapper_seh(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(CppCheck&), CppCheck& cppcheck) +int check_wrapper_seh(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(CppCheck&) const, CppCheck& cppcheck) { FILE *outputFile = CppCheckExecutor::getExceptionOutput(); __try { diff --git a/cli/cppcheckexecutorseh.h b/cli/cppcheckexecutorseh.h index 56616d95af9..93f51456cde 100644 --- a/cli/cppcheckexecutorseh.h +++ b/cli/cppcheckexecutorseh.h @@ -26,7 +26,7 @@ class CppCheckExecutor; class CppCheck; -int check_wrapper_seh(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(CppCheck&), CppCheck& cppcheck); +int check_wrapper_seh(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(CppCheck&) const, CppCheck& cppcheck); #endif diff --git a/cli/cppcheckexecutorsig.cpp b/cli/cppcheckexecutorsig.cpp index 0d1156e0ae7..279a95633c9 100644 --- a/cli/cppcheckexecutorsig.cpp +++ b/cli/cppcheckexecutorsig.cpp @@ -298,7 +298,7 @@ static void CppcheckSignalHandler(int signo, siginfo_t * info, void * context) } } -int check_wrapper_sig(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(CppCheck&), CppCheck& cppcheck) +int check_wrapper_sig(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(CppCheck&) const, CppCheck& cppcheck) { // determine stack vs. heap char stackVariable; diff --git a/cli/cppcheckexecutorsig.h b/cli/cppcheckexecutorsig.h index 4279378e4b1..5c8c161d2ff 100644 --- a/cli/cppcheckexecutorsig.h +++ b/cli/cppcheckexecutorsig.h @@ -26,7 +26,7 @@ class CppCheckExecutor; class CppCheck; -int check_wrapper_sig(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(CppCheck&), CppCheck& cppcheck); +int check_wrapper_sig(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(CppCheck&) const, CppCheck& cppcheck); #endif // CPPCHECKEXECUTORSIG_H