diff --git a/.clang-tidy b/.clang-tidy index ea453a81ee9..c554570ef5a 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -48,7 +48,6 @@ Checks: > -modernize-replace-auto-ptr, -modernize-return-braced-init-list, -modernize-type-traits, - -modernize-use-auto, -modernize-use-designated-initializers, -modernize-use-nodiscard, -modernize-use-trailing-return-type, diff --git a/Makefile b/Makefile index fc2c7974770..7b018b2d679 100644 --- a/Makefile +++ b/Makefile @@ -509,7 +509,7 @@ $(libcppdir)/checkers.o: lib/checkers.cpp lib/checkers.h lib/config.h $(libcppdir)/checkersidmapping.o: lib/checkersidmapping.cpp lib/checkers.h lib/config.h $(CXX) ${INCLUDE_FOR_LIB} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/checkersidmapping.cpp -$(libcppdir)/checkersreport.o: lib/checkersreport.cpp lib/addoninfo.h lib/checkers.h lib/checkersreport.h lib/config.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h +$(libcppdir)/checkersreport.o: lib/checkersreport.cpp lib/addoninfo.h lib/checkers.h lib/checkersreport.h lib/config.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h $(CXX) ${INCLUDE_FOR_LIB} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/checkersreport.cpp $(libcppdir)/checkexceptionsafety.o: lib/checkexceptionsafety.cpp lib/addoninfo.h lib/astutils.h lib/check.h lib/checkexceptionsafety.h lib/config.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/smallvector.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h @@ -623,7 +623,7 @@ $(libcppdir)/programmemory.o: lib/programmemory.cpp lib/addoninfo.h lib/astutils $(libcppdir)/reverseanalyzer.o: lib/reverseanalyzer.cpp lib/addoninfo.h lib/analyzer.h lib/astutils.h lib/config.h lib/errortypes.h lib/forwardanalyzer.h lib/library.h lib/mathlib.h lib/platform.h lib/reverseanalyzer.h lib/settings.h lib/smallvector.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/utils.h lib/valueptr.h lib/vfvalue.h $(CXX) ${INCLUDE_FOR_LIB} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/reverseanalyzer.cpp -$(libcppdir)/settings.o: lib/settings.cpp externals/picojson/picojson.h lib/addoninfo.h lib/config.h lib/errortypes.h lib/json.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/summaries.h lib/suppressions.h lib/vfvalue.h +$(libcppdir)/settings.o: lib/settings.cpp externals/picojson/picojson.h lib/addoninfo.h lib/config.h lib/errortypes.h lib/json.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/summaries.h lib/suppressions.h lib/utils.h lib/vfvalue.h $(CXX) ${INCLUDE_FOR_LIB} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/settings.cpp $(libcppdir)/standards.o: lib/standards.cpp externals/simplecpp/simplecpp.h lib/config.h lib/standards.h lib/utils.h @@ -671,7 +671,7 @@ cli/cppcheckexecutor.o: cli/cppcheckexecutor.cpp cli/cmdlinelogger.h cli/cmdline cli/cppcheckexecutorseh.o: cli/cppcheckexecutorseh.cpp cli/cppcheckexecutor.h cli/cppcheckexecutorseh.h lib/config.h lib/filesettings.h lib/path.h lib/platform.h lib/standards.h lib/utils.h $(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/cppcheckexecutorseh.cpp -cli/executor.o: cli/executor.cpp cli/executor.h lib/addoninfo.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h +cli/executor.o: cli/executor.cpp cli/executor.h lib/addoninfo.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h $(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/executor.cpp cli/filelister.o: cli/filelister.cpp cli/filelister.h lib/config.h lib/filesettings.h lib/path.h lib/pathmatch.h lib/platform.h lib/standards.h lib/utils.h @@ -680,61 +680,61 @@ cli/filelister.o: cli/filelister.cpp cli/filelister.h lib/config.h lib/filesetti cli/main.o: cli/main.cpp cli/cppcheckexecutor.h lib/config.h lib/errortypes.h lib/filesettings.h lib/path.h lib/platform.h lib/standards.h $(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/main.cpp -cli/processexecutor.o: cli/processexecutor.cpp cli/executor.h cli/processexecutor.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h +cli/processexecutor.o: cli/processexecutor.cpp cli/executor.h cli/processexecutor.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/utils.h $(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/processexecutor.cpp -cli/signalhandler.o: cli/signalhandler.cpp cli/signalhandler.h cli/stacktrace.h lib/config.h +cli/signalhandler.o: cli/signalhandler.cpp cli/signalhandler.h cli/stacktrace.h lib/config.h lib/utils.h $(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/signalhandler.cpp -cli/singleexecutor.o: cli/singleexecutor.cpp cli/executor.h cli/singleexecutor.h lib/addoninfo.h lib/check.h lib/config.h lib/cppcheck.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h +cli/singleexecutor.o: cli/singleexecutor.cpp cli/executor.h cli/singleexecutor.h lib/addoninfo.h lib/check.h lib/config.h lib/cppcheck.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/utils.h $(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/singleexecutor.cpp cli/stacktrace.o: cli/stacktrace.cpp cli/stacktrace.h lib/config.h lib/utils.h $(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/stacktrace.cpp -cli/threadexecutor.o: cli/threadexecutor.cpp cli/executor.h cli/threadexecutor.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h +cli/threadexecutor.o: cli/threadexecutor.cpp cli/executor.h cli/threadexecutor.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/utils.h $(CXX) ${INCLUDE_FOR_CLI} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ cli/threadexecutor.cpp -test/fixture.o: test/fixture.cpp externals/simplecpp/simplecpp.h externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/xml.h test/fixture.h test/helpers.h test/options.h test/redirect.h +test/fixture.o: test/fixture.cpp externals/simplecpp/simplecpp.h externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/xml.h test/fixture.h test/helpers.h test/options.h test/redirect.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/fixture.cpp -test/helpers.o: test/helpers.cpp cli/filelister.h externals/simplecpp/simplecpp.h externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/config.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/pathmatch.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/xml.h test/helpers.h +test/helpers.o: test/helpers.cpp cli/filelister.h externals/simplecpp/simplecpp.h externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/config.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/pathmatch.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/xml.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/helpers.cpp -test/main.o: test/main.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h test/options.h +test/main.o: test/main.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h test/options.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/main.cpp test/options.o: test/options.cpp test/options.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/options.cpp -test/test64bit.o: test/test64bit.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/check64bit.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/test64bit.o: test/test64bit.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/check64bit.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/test64bit.cpp -test/testanalyzerinformation.o: test/testanalyzerinformation.cpp lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h +test/testanalyzerinformation.o: test/testanalyzerinformation.cpp lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testanalyzerinformation.cpp -test/testassert.o: test/testassert.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkassert.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testassert.o: test/testassert.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkassert.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testassert.cpp test/testastutils.o: test/testastutils.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/astutils.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/smallvector.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testastutils.cpp -test/testautovariables.o: test/testautovariables.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkautovariables.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testautovariables.o: test/testautovariables.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkautovariables.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testautovariables.cpp -test/testbool.o: test/testbool.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkbool.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testbool.o: test/testbool.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkbool.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testbool.cpp -test/testboost.o: test/testboost.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkboost.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testboost.o: test/testboost.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkboost.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testboost.cpp test/testbufferoverrun.o: test/testbufferoverrun.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkbufferoverrun.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testbufferoverrun.cpp -test/testcharvar.o: test/testcharvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testcharvar.o: test/testcharvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcharvar.cpp -test/testcheck.o: test/testcheck.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h +test/testcheck.o: test/testcheck.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcheck.cpp test/testclangimport.o: test/testclangimport.cpp lib/addoninfo.h lib/check.h lib/clangimport.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h @@ -746,31 +746,31 @@ test/testclass.o: test/testclass.cpp externals/simplecpp/simplecpp.h lib/addonin test/testcmdlineparser.o: test/testcmdlineparser.cpp cli/cmdlinelogger.h cli/cmdlineparser.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcmdlineparser.cpp -test/testcolor.o: test/testcolor.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h +test/testcolor.o: test/testcolor.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcolor.cpp -test/testcondition.o: test/testcondition.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkcondition.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testcondition.o: test/testcondition.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkcondition.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcondition.cpp test/testconstructors.o: test/testconstructors.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testconstructors.cpp -test/testcppcheck.o: test/testcppcheck.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testcppcheck.o: test/testcppcheck.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcppcheck.cpp -test/testerrorlogger.o: test/testerrorlogger.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/xml.h test/fixture.h +test/testerrorlogger.o: test/testerrorlogger.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h lib/xml.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testerrorlogger.cpp -test/testexceptionsafety.o: test/testexceptionsafety.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkexceptionsafety.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testexceptionsafety.o: test/testexceptionsafety.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkexceptionsafety.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testexceptionsafety.cpp -test/testfilelister.o: test/testfilelister.cpp cli/filelister.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/pathmatch.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h +test/testfilelister.o: test/testfilelister.cpp cli/filelister.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/pathmatch.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testfilelister.cpp -test/testfilesettings.o: test/testfilesettings.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h +test/testfilesettings.o: test/testfilesettings.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testfilesettings.cpp -test/testfunctions.o: test/testfunctions.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkfunctions.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testfunctions.o: test/testfunctions.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkfunctions.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testfunctions.cpp test/testgarbage.o: test/testgarbage.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h @@ -779,22 +779,22 @@ test/testgarbage.o: test/testgarbage.cpp externals/simplecpp/simplecpp.h lib/add test/testimportproject.o: test/testimportproject.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/importproject.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h test/redirect.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testimportproject.cpp -test/testincompletestatement.o: test/testincompletestatement.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testincompletestatement.o: test/testincompletestatement.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testincompletestatement.cpp -test/testinternal.o: test/testinternal.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkinternal.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testinternal.o: test/testinternal.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkinternal.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testinternal.cpp -test/testio.o: test/testio.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkio.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testio.o: test/testio.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkio.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testio.cpp -test/testleakautovar.o: test/testleakautovar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkleakautovar.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testleakautovar.o: test/testleakautovar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkleakautovar.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testleakautovar.cpp test/testlibrary.o: test/testlibrary.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testlibrary.cpp -test/testmathlib.o: test/testmathlib.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h +test/testmathlib.o: test/testmathlib.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testmathlib.cpp test/testmemleak.o: test/testmemleak.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkmemoryleak.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h @@ -803,34 +803,34 @@ test/testmemleak.o: test/testmemleak.cpp externals/simplecpp/simplecpp.h lib/add test/testnullpointer.o: test/testnullpointer.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checknullpointer.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testnullpointer.cpp -test/testoptions.o: test/testoptions.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h test/options.h +test/testoptions.o: test/testoptions.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h test/options.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testoptions.cpp -test/testother.o: test/testother.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testother.o: test/testother.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testother.cpp -test/testpath.o: test/testpath.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testpath.o: test/testpath.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testpath.cpp -test/testpathmatch.o: test/testpathmatch.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/pathmatch.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h +test/testpathmatch.o: test/testpathmatch.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/pathmatch.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testpathmatch.cpp -test/testplatform.o: test/testplatform.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/xml.h test/fixture.h +test/testplatform.o: test/testplatform.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h lib/xml.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testplatform.cpp -test/testpostfixoperator.o: test/testpostfixoperator.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkpostfixoperator.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testpostfixoperator.o: test/testpostfixoperator.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkpostfixoperator.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testpostfixoperator.cpp -test/testpreprocessor.o: test/testpreprocessor.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testpreprocessor.o: test/testpreprocessor.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testpreprocessor.cpp -test/testprocessexecutor.o: test/testprocessexecutor.cpp cli/executor.h cli/processexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h test/redirect.h +test/testprocessexecutor.o: test/testprocessexecutor.cpp cli/executor.h cli/processexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testprocessexecutor.cpp test/testprogrammemory.o: test/testprogrammemory.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/programmemory.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testprogrammemory.cpp -test/testsettings.o: test/testsettings.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testsettings.o: test/testsettings.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsettings.cpp test/testsimplifytemplate.o: test/testsimplifytemplate.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h @@ -845,34 +845,34 @@ test/testsimplifytypedef.o: test/testsimplifytypedef.cpp externals/simplecpp/sim test/testsimplifyusing.o: test/testsimplifyusing.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsimplifyusing.cpp -test/testsingleexecutor.o: test/testsingleexecutor.cpp cli/executor.h cli/singleexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h test/redirect.h +test/testsingleexecutor.o: test/testsingleexecutor.cpp cli/executor.h cli/singleexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsingleexecutor.cpp -test/testsizeof.o: test/testsizeof.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checksizeof.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testsizeof.o: test/testsizeof.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checksizeof.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsizeof.cpp -test/teststandards.o: test/teststandards.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h test/fixture.h +test/teststandards.o: test/teststandards.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/teststandards.cpp test/teststl.o: test/teststl.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkstl.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/teststl.cpp -test/teststring.o: test/teststring.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkstring.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/teststring.o: test/teststring.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkstring.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/teststring.cpp -test/testsummaries.o: test/testsummaries.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/summaries.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testsummaries.o: test/testsummaries.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/summaries.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsummaries.cpp -test/testsuppressions.o: test/testsuppressions.cpp cli/cppcheckexecutor.h cli/executor.h cli/processexecutor.h cli/singleexecutor.h cli/threadexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testsuppressions.o: test/testsuppressions.cpp cli/cppcheckexecutor.h cli/executor.h cli/processexecutor.h cli/singleexecutor.h cli/threadexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsuppressions.cpp test/testsymboldatabase.o: test/testsymboldatabase.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsymboldatabase.cpp -test/testthreadexecutor.o: test/testthreadexecutor.cpp cli/executor.h cli/threadexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h test/redirect.h +test/testthreadexecutor.o: test/testthreadexecutor.cpp cli/executor.h cli/threadexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testthreadexecutor.cpp -test/testtimer.o: test/testtimer.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h test/fixture.h +test/testtimer.o: test/testtimer.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtimer.cpp test/testtoken.o: test/testtoken.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h @@ -887,25 +887,25 @@ test/testtokenlist.o: test/testtokenlist.cpp externals/simplecpp/simplecpp.h lib test/testtokenrange.o: test/testtokenrange.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/tokenrange.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtokenrange.cpp -test/testtype.o: test/testtype.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checktype.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/vfvalue.h test/fixture.h test/helpers.h +test/testtype.o: test/testtype.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checktype.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtype.cpp -test/testuninitvar.o: test/testuninitvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkuninitvar.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/vfvalue.h test/fixture.h test/helpers.h +test/testuninitvar.o: test/testuninitvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkuninitvar.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testuninitvar.cpp -test/testunusedfunctions.o: test/testunusedfunctions.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkunusedfunctions.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testunusedfunctions.o: test/testunusedfunctions.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkunusedfunctions.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testunusedfunctions.cpp test/testunusedprivfunc.o: test/testunusedprivfunc.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testunusedprivfunc.cpp -test/testunusedvar.o: test/testunusedvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkunusedvar.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testunusedvar.o: test/testunusedvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkunusedvar.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testunusedvar.cpp test/testutils.o: test/testutils.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testutils.cpp -test/testvaarg.o: test/testvaarg.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkvaarg.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h test/fixture.h test/helpers.h +test/testvaarg.o: test/testvaarg.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkvaarg.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testvaarg.cpp test/testvalueflow.o: test/testvalueflow.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h diff --git a/clang-tidy.md b/clang-tidy.md index 05b4225fc43..59d28dbaa3d 100644 --- a/clang-tidy.md +++ b/clang-tidy.md @@ -147,10 +147,6 @@ To be evaluated (need to enable explicitly). These apply to codebases which use later standards then C++11 (C++17 is used when building with Qt6) so we cannot simply apply them. -`modernize-use-auto`
- -This cannot be enabled as it might lead to changes in the constness of iterators - see https://github.com/llvm/llvm-project/issues/84324. - ### Disabled for performance reasons `portability-std-allocator-const`
diff --git a/cli/cmdlineparser.cpp b/cli/cmdlineparser.cpp index 748031e443e..8964cfcd1a6 100644 --- a/cli/cmdlineparser.cpp +++ b/cli/cmdlineparser.cpp @@ -162,7 +162,7 @@ bool CmdLineParser::fillSettingsFromArgs(int argc, const char* const argv[]) // Check that all include paths exist { - for (std::list::const_iterator iter = mSettings.includePaths.cbegin(); + for (auto iter = mSettings.includePaths.cbegin(); iter != mSettings.includePaths.cend(); ) { const std::string path(Path::toNativeSeparators(*iter)); diff --git a/cli/cppcheckexecutor.cpp b/cli/cppcheckexecutor.cpp index d70a1145f31..99c21dcdb4c 100644 --- a/cli/cppcheckexecutor.cpp +++ b/cli/cppcheckexecutor.cpp @@ -389,12 +389,12 @@ bool CppCheckExecutor::reportSuppressions(const Settings &settings, const Suppre // the two inputs may only be used exclusively assert(!(!files.empty() && !fileSettings.empty())); - for (std::list::const_iterator i = files.cbegin(); i != files.cend(); ++i) { + for (auto i = files.cbegin(); i != files.cend(); ++i) { err |= SuppressionList::reportUnmatchedSuppressions( suppressions.getUnmatchedLocalSuppressions(*i, unusedFunctionCheckEnabled), errorLogger); } - for (std::list::const_iterator i = fileSettings.cbegin(); i != fileSettings.cend(); ++i) { + for (auto i = fileSettings.cbegin(); i != fileSettings.cend(); ++i) { err |= SuppressionList::reportUnmatchedSuppressions( suppressions.getUnmatchedLocalSuppressions(i->file, unusedFunctionCheckEnabled), errorLogger); } @@ -419,7 +419,7 @@ int CppCheckExecutor::check_internal(const Settings& settings) const if (!settings.buildDir.empty()) { std::list fileNames; - for (std::list::const_iterator i = mFiles.cbegin(); i != mFiles.cend(); ++i) + for (auto i = mFiles.cbegin(); i != mFiles.cend(); ++i) fileNames.emplace_back(i->path()); AnalyzerInformation::writeFilesTxt(settings.buildDir, fileNames, settings.userDefines, mFileSettings); } diff --git a/cli/processexecutor.cpp b/cli/processexecutor.cpp index c242eb426f8..b9cf174687b 100644 --- a/cli/processexecutor.cpp +++ b/cli/processexecutor.cpp @@ -28,6 +28,7 @@ #include "settings.h" #include "suppressions.h" #include "timer.h" +#include "utils.h" #include #include @@ -242,8 +243,8 @@ unsigned int ProcessExecutor::check() std::map childFile; std::map pipeFile; std::size_t processedsize = 0; - std::list::const_iterator iFile = mFiles.cbegin(); - std::list::const_iterator iFileSettings = mFileSettings.cbegin(); + auto iFile = mFiles.cbegin(); + auto iFileSettings = mFileSettings.cbegin(); for (;;) { // Start a new child const size_t nchildren = childFile.size(); @@ -310,7 +311,7 @@ unsigned int ProcessExecutor::check() if (!rpipes.empty()) { fd_set rfds; FD_ZERO(&rfds); - for (std::list::const_iterator rp = rpipes.cbegin(); rp != rpipes.cend(); ++rp) + for (auto rp = rpipes.cbegin(); rp != rpipes.cend(); ++rp) FD_SET(*rp, &rfds); timeval tv; // for every second polling of load average condition tv.tv_sec = 1; @@ -318,11 +319,11 @@ unsigned int ProcessExecutor::check() const int r = select(*std::max_element(rpipes.cbegin(), rpipes.cend()) + 1, &rfds, nullptr, nullptr, &tv); if (r > 0) { - std::list::const_iterator rp = rpipes.cbegin(); + auto rp = rpipes.cbegin(); while (rp != rpipes.cend()) { if (FD_ISSET(*rp, &rfds)) { std::string name; - const std::map::const_iterator p = pipeFile.find(*rp); + const auto p = utils::as_const(pipeFile).find(*rp); if (p != pipeFile.cend()) { name = p->second; } @@ -358,7 +359,7 @@ unsigned int ProcessExecutor::check() const pid_t child = waitpid(0, &stat, WNOHANG); if (child > 0) { std::string childname; - const std::map::const_iterator c = childFile.find(child); + const auto c = utils::as_const(childFile).find(child); if (c != childFile.cend()) { childname = c->second; childFile.erase(c); diff --git a/cli/signalhandler.cpp b/cli/signalhandler.cpp index faf324f52d4..0f52a8fa78a 100644 --- a/cli/signalhandler.cpp +++ b/cli/signalhandler.cpp @@ -20,6 +20,8 @@ #if defined(USE_UNIX_SIGNAL_HANDLING) +#include "utils.h" + #ifdef USE_UNIX_BACKTRACE_SUPPORT #include "stacktrace.h" #endif @@ -119,7 +121,7 @@ static void CppcheckSignalHandler(int signo, siginfo_t * info, void * context) killid = getpid(); #endif - const Signalmap_t::const_iterator it=listofsignals.find(signo); + const auto it = utils::as_const(listofsignals).find(signo); const char * const signame = (it==listofsignals.end()) ? "unknown" : it->second.c_str(); bool unexpectedSignal=true; // unexpected indicates program failure bool terminate=true; // exit process/thread @@ -320,7 +322,7 @@ void register_signal_handler(FILE * const output) memset(&act, 0, sizeof(act)); act.sa_flags=SA_SIGINFO|SA_ONSTACK; act.sa_sigaction=CppcheckSignalHandler; - for (std::map::const_iterator sig=listofsignals.cbegin(); sig!=listofsignals.cend(); ++sig) { + for (auto sig=listofsignals.cbegin(); sig!=listofsignals.cend(); ++sig) { sigaction(sig->first, &act, nullptr); } } diff --git a/cli/singleexecutor.cpp b/cli/singleexecutor.cpp index 1c24b968b73..216fe1fec48 100644 --- a/cli/singleexecutor.cpp +++ b/cli/singleexecutor.cpp @@ -49,7 +49,7 @@ unsigned int SingleExecutor::check() std::size_t processedsize = 0; unsigned int c = 0; - for (std::list::const_iterator i = mFiles.cbegin(); i != mFiles.cend(); ++i) { + for (auto i = mFiles.cbegin(); i != mFiles.cend(); ++i) { result += mCppcheck.check(*i); processedsize += i->size(); ++c; diff --git a/gui/checkthread.cpp b/gui/checkthread.cpp index cc93b5c81c3..09161fbe752 100644 --- a/gui/checkthread.cpp +++ b/gui/checkthread.cpp @@ -190,9 +190,9 @@ void CheckThread::runAddonsAndTools(const Settings& settings, const FileSettings continue; QStringList args; - for (std::list::const_iterator incIt = fileSettings->includePaths.cbegin(); incIt != fileSettings->includePaths.cend(); ++incIt) + for (auto incIt = fileSettings->includePaths.cbegin(); incIt != fileSettings->includePaths.cend(); ++incIt) args << ("-I" + QString::fromStdString(*incIt)); - for (std::list::const_iterator i = fileSettings->systemIncludePaths.cbegin(); i != fileSettings->systemIncludePaths.cend(); ++i) + for (auto i = fileSettings->systemIncludePaths.cbegin(); i != fileSettings->systemIncludePaths.cend(); ++i) args << "-isystem" << QString::fromStdString(*i); for (const QString& def : QString::fromStdString(fileSettings->defines).split(";")) { args << ("-D" + def); diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index 12137dd169d..d146551aac1 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -780,7 +780,7 @@ void MainWindow::analyzeFiles() if (file0.endsWith(".sln")) { QStringList configs; - for (std::list::const_iterator it = p.fileSettings.cbegin(); it != p.fileSettings.cend(); ++it) { + for (auto it = p.fileSettings.cbegin(); it != p.fileSettings.cend(); ++it) { const QString cfg(QString::fromStdString(it->cfg)); if (!configs.contains(cfg)) configs.push_back(cfg); diff --git a/gui/platforms.cpp b/gui/platforms.cpp index ed7ad88023c..9c0c3cbe8f2 100644 --- a/gui/platforms.cpp +++ b/gui/platforms.cpp @@ -50,7 +50,7 @@ int Platforms::getCount() const PlatformData& Platforms::get(Platform::Type platform) { - QList::iterator iter = mPlatforms.begin(); + auto iter = mPlatforms.begin(); while (iter != mPlatforms.end()) { if (iter->mType == platform) { return *iter; diff --git a/lib/checkautovariables.cpp b/lib/checkautovariables.cpp index 4c4b9e69135..7366cd1bd5a 100644 --- a/lib/checkautovariables.cpp +++ b/lib/checkautovariables.cpp @@ -133,7 +133,7 @@ static bool isAutoVarArray(const Token *tok) // ValueFlow if (var->isPointer() && !var->isArgument()) { - for (std::list::const_iterator it = tok->values().cbegin(); it != tok->values().cend(); ++it) { + for (auto it = tok->values().cbegin(); it != tok->values().cend(); ++it) { const ValueFlow::Value &val = *it; if (val.isTokValue() && isAutoVarArray(val.tokvalue)) return true; diff --git a/lib/checkclass.cpp b/lib/checkclass.cpp index fa4583440c0..12488f02f41 100644 --- a/lib/checkclass.cpp +++ b/lib/checkclass.cpp @@ -457,7 +457,7 @@ void CheckClass::copyconstructors() } if (!funcDestructor || funcDestructor->isDefault()) { const Token * mustDealloc = nullptr; - for (std::map::const_iterator it = allocatedVars.cbegin(); it != allocatedVars.cend(); ++it) { + for (auto it = allocatedVars.cbegin(); it != allocatedVars.cend(); ++it) { if (!Token::Match(it->second, "%var% [(=] new %type%")) { mustDealloc = it->second; break; @@ -515,7 +515,7 @@ void CheckClass::copyconstructors() copyConstructorShallowCopyError(cv, cv->str()); // throw error if count mismatch /* FIXME: This doesn't work. See #4154 - for (std::map::const_iterator i = allocatedVars.begin(); i != allocatedVars.end(); ++i) { + for (auto i = allocatedVars.cbegin(); i != allocatedVars.end(); ++i) { copyConstructorMallocError(copyCtor, i->second, i->second->str()); } */ @@ -1232,7 +1232,7 @@ static bool checkFunctionUsage(const Function *privfunc, const Scope* scope) if (!scope) return true; // Assume it is used, if scope is not seen - for (std::list::const_iterator func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { + for (auto func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { if (func->functionScope) { if (Token::Match(func->tokenDef, "%name% (")) { for (const Token *ftok = func->tokenDef->tokAt(2); ftok && ftok->str() != ")"; ftok = ftok->next()) { @@ -1254,8 +1254,7 @@ static bool checkFunctionUsage(const Function *privfunc, const Scope* scope) return true; } - const std::map::const_iterator end = scope->definedTypesMap.cend(); - for (std::map::const_iterator iter = scope->definedTypesMap.cbegin(); iter != end; ++iter) { + for (auto iter = scope->definedTypesMap.cbegin(); iter != scope->definedTypesMap.cend(); ++iter) { const Type *type = iter->second; if (type->enclosingScope == scope && checkFunctionUsage(privfunc, type->classScope)) return true; @@ -1300,7 +1299,7 @@ void CheckClass::privateFunctions() // Bailout for overridden virtual functions of base classes if (!scope->definedType->derivedFrom.empty()) { // Check virtual functions - for (std::list::const_iterator it = privateFuncs.cbegin(); it != privateFuncs.cend();) { + for (auto it = privateFuncs.cbegin(); it != privateFuncs.cend();) { if ((*it)->isImplicitlyVirtual(true)) // Give true as default value to be returned if we don't see all base classes it = privateFuncs.erase(it); else @@ -1578,7 +1577,7 @@ void CheckClass::operatorEqRetRefThis() logChecker("CheckClass::operatorEqRetRefThis"); // style for (const Scope * scope : mSymbolDatabase->classAndStructScopes) { - for (std::list::const_iterator func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { + for (auto func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { if (func->type == Function::eOperatorEqual && func->hasBody()) { // make sure return signature is correct if (func->retType == func->nestedIn->definedType && func->tokenDef->strAt(-1) == "&") { @@ -1626,7 +1625,7 @@ void CheckClass::checkReturnPtrThis(const Scope *scope, const Function *func, co if (tok->strAt(2) == "(" && tok->linkAt(2)->strAt(1) == ";") { // check if it is a member function - for (std::list::const_iterator it = scope->functionList.cbegin(); it != scope->functionList.cend(); ++it) { + for (auto it = scope->functionList.cbegin(); it != scope->functionList.cend(); ++it) { // check for a regular function with the same name and a body if (it->type == Function::eFunction && it->hasBody() && it->token->str() == tok->strAt(1)) { @@ -2028,7 +2027,7 @@ void CheckClass::virtualDestructor() if (baseDestructor->access == AccessControl::Public) { virtualDestructorError(baseDestructor->token, derivedFrom->name(), derivedClass->str(), false); // check for duplicate error and remove it if found - const std::list::const_iterator found = std::find(inconclusiveErrors.cbegin(), inconclusiveErrors.cend(), baseDestructor); + const auto found = std::find(inconclusiveErrors.cbegin(), inconclusiveErrors.cend(), baseDestructor); if (found != inconclusiveErrors.cend()) inconclusiveErrors.erase(found); } @@ -2701,7 +2700,7 @@ void CheckClass::initializerListOrder() for (const Scope * scope : mSymbolDatabase->classAndStructScopes) { // iterate through all member functions looking for constructors - for (std::list::const_iterator func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { + for (auto func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { if (func->isConstructor() && func->hasBody()) { // check for initializer list const Token *tok = func->arg->link()->next(); @@ -2854,7 +2853,7 @@ void CheckClass::checkVirtualFunctionCallInConstructor() const std::list & CheckClass::getVirtualFunctionCalls(const Function & function, std::map> & virtualFunctionCallsMap) { - const std::map>::const_iterator found = virtualFunctionCallsMap.find(&function); + const auto found = utils::as_const(virtualFunctionCallsMap).find(&function); if (found != virtualFunctionCallsMap.end()) return found->second; @@ -2919,7 +2918,7 @@ void CheckClass::getFirstVirtualFunctionCallStack( pureFuncStack.push_back(callFunction->tokenDef); return; } - std::map>::const_iterator found = virtualFunctionCallsMap.find(callFunction); + auto found = utils::as_const(virtualFunctionCallsMap).find(callFunction); if (found == virtualFunctionCallsMap.cend() || found->second.empty()) { pureFuncStack.clear(); return; diff --git a/lib/checkfunctions.h b/lib/checkfunctions.h index c42b2a8ac83..e1e96f53fa4 100644 --- a/lib/checkfunctions.h +++ b/lib/checkfunctions.h @@ -129,7 +129,7 @@ class CPPCHECKLIB CheckFunctions : public Check { void getErrorMessages(ErrorLogger *errorLogger, const Settings *settings) const override { CheckFunctions c(nullptr, settings, errorLogger); - for (std::map::const_iterator i = settings->library.functionwarn().cbegin(); i != settings->library.functionwarn().cend(); ++i) { + for (auto i = settings->library.functionwarn().cbegin(); i != settings->library.functionwarn().cend(); ++i) { c.reportError(nullptr, Severity::style, i->first+"Called", i->second.message); } diff --git a/lib/checkinternal.cpp b/lib/checkinternal.cpp index d38a591199e..7983126f538 100644 --- a/lib/checkinternal.cpp +++ b/lib/checkinternal.cpp @@ -228,8 +228,7 @@ void CheckInternal::checkMissingPercentCharacter() const std::string pattern = patternTok->strValue(); - std::set::const_iterator knownPattern, knownPatternsEnd = knownPatterns.cend(); - for (knownPattern = knownPatterns.cbegin(); knownPattern != knownPatternsEnd; ++knownPattern) { + for (auto knownPattern = knownPatterns.cbegin(); knownPattern != knownPatterns.cend(); ++knownPattern) { const std::string brokenPattern = knownPattern->substr(0, knownPattern->size() - 1); std::string::size_type pos = 0; diff --git a/lib/checkio.cpp b/lib/checkio.cpp index 6e2267ef934..7808f2ddf4b 100644 --- a/lib/checkio.cpp +++ b/lib/checkio.cpp @@ -181,7 +181,7 @@ void CheckIO::checkFileUsage() } else if (Token::Match(tok, "%var% =") && (tok->strAt(2) != "fopen" && tok->strAt(2) != "freopen" && tok->strAt(2) != "tmpfile" && (windows ? (tok->str() != "_wfopen" && tok->str() != "_wfreopen") : true))) { - const std::map::iterator i = filepointers.find(tok->varId()); + const auto i = filepointers.find(tok->varId()); if (i != filepointers.end()) { i->second.mode = OpenMode::UNKNOWN_OM; i->second.lastOperation = Filepointer::Operation::UNKNOWN_OP; @@ -289,7 +289,7 @@ void CheckIO::checkFileUsage() switch (operation) { case Filepointer::Operation::OPEN: if (fileNameTok) { - for (std::map::const_iterator it = filepointers.cbegin(); it != filepointers.cend(); ++it) { + for (auto it = filepointers.cbegin(); it != filepointers.cend(); ++it) { const Filepointer &fptr = it->second; if (fptr.filename == fileNameTok->str() && (fptr.mode == OpenMode::RW_MODE || fptr.mode == OpenMode::WRITE_MODE)) incompatibleFileOpenError(tok, fileNameTok->str()); @@ -509,7 +509,7 @@ static bool findFormat(nonneg int arg, const Token *firstArg, argTok->variable()->dimension(0) != 0))) { formatArgTok = argTok->nextArgument(); if (!argTok->values().empty()) { - const std::list::const_iterator value = std::find_if( + const auto value = std::find_if( argTok->values().cbegin(), argTok->values().cend(), std::mem_fn(&ValueFlow::Value::isTokValue)); if (value != argTok->values().cend() && value->isTokValue() && value->tokvalue && value->tokvalue->tokType() == Token::eString) { @@ -615,7 +615,7 @@ void CheckIO::checkFormatString(const Token * const tok, bool percent = false; const Token* argListTok2 = argListTok; std::set parameterPositionsUsed; - for (std::string::const_iterator i = formatString.cbegin(); i != formatString.cend(); ++i) { + for (auto i = formatString.cbegin(); i != formatString.cend(); ++i) { if (*i == '%') { percent = !percent; } else if (percent && *i == '[') { diff --git a/lib/checkleakautovar.cpp b/lib/checkleakautovar.cpp index 1bdeb6af431..ad91eb3e383 100644 --- a/lib/checkleakautovar.cpp +++ b/lib/checkleakautovar.cpp @@ -106,7 +106,7 @@ static bool isVarTokComparison(const Token * tok, const Token ** vartok, void VarInfo::possibleUsageAll(const std::pair& functionUsage) { possibleUsage.clear(); - for (std::map::const_iterator it = alloctype.cbegin(); it != alloctype.cend(); ++it) + for (auto it = alloctype.cbegin(); it != alloctype.cend(); ++it) possibleUsage[it->first] = functionUsage; } @@ -627,9 +627,7 @@ bool CheckLeakAutoVar::checkScope(const Token * const startToken, VarInfo old; old.swap(varInfo); - std::map::const_iterator it; - - for (it = old.alloctype.cbegin(); it != old.alloctype.cend(); ++it) { + for (auto it = old.alloctype.cbegin(); it != old.alloctype.cend(); ++it) { const int varId = it->first; if (old.conditionalAlloc.find(varId) == old.conditionalAlloc.end()) continue; @@ -641,7 +639,7 @@ bool CheckLeakAutoVar::checkScope(const Token * const startToken, } // Conditional allocation in varInfo1 - for (it = varInfo1.alloctype.cbegin(); it != varInfo1.alloctype.cend(); ++it) { + for (auto it = varInfo1.alloctype.cbegin(); it != varInfo1.alloctype.cend(); ++it) { if (varInfo2.alloctype.find(it->first) == varInfo2.alloctype.end() && old.alloctype.find(it->first) == old.alloctype.end()) { varInfo.conditionalAlloc.insert(it->first); @@ -649,7 +647,7 @@ bool CheckLeakAutoVar::checkScope(const Token * const startToken, } // Conditional allocation in varInfo2 - for (it = varInfo2.alloctype.cbegin(); it != varInfo2.alloctype.cend(); ++it) { + for (auto it = varInfo2.alloctype.cbegin(); it != varInfo2.alloctype.cend(); ++it) { if (varInfo1.alloctype.find(it->first) == varInfo1.alloctype.end() && old.alloctype.find(it->first) == old.alloctype.end()) { varInfo.conditionalAlloc.insert(it->first); @@ -657,13 +655,13 @@ bool CheckLeakAutoVar::checkScope(const Token * const startToken, } // Conditional allocation/deallocation - for (it = varInfo1.alloctype.cbegin(); it != varInfo1.alloctype.cend(); ++it) { + for (auto it = varInfo1.alloctype.cbegin(); it != varInfo1.alloctype.cend(); ++it) { if (it->second.managed() && conditionalAlloc.find(it->first) != conditionalAlloc.end()) { varInfo.conditionalAlloc.erase(it->first); varInfo2.erase(it->first); } } - for (it = varInfo2.alloctype.cbegin(); it != varInfo2.alloctype.cend(); ++it) { + for (auto it = varInfo2.alloctype.cbegin(); it != varInfo2.alloctype.cend(); ++it) { if (it->second.managed() && conditionalAlloc.find(it->first) != conditionalAlloc.end()) { varInfo.conditionalAlloc.erase(it->first); varInfo1.erase(it->first); @@ -867,7 +865,7 @@ const Token * CheckLeakAutoVar::checkTokenInsideExpression(const Token * const t // Deallocation and then dereferencing pointer.. if (tok->varId() > 0) { // TODO : Write a separate checker for this that uses valueFlowForward. - const std::map::const_iterator var = varInfo.alloctype.find(tok->varId()); + const auto var = utils::as_const(varInfo.alloctype).find(tok->varId()); if (var != varInfo.alloctype.end()) { bool unknown = false; if (var->second.status == VarInfo::DEALLOC && tok->valueType() && tok->valueType()->pointer && @@ -955,7 +953,7 @@ void CheckLeakAutoVar::changeAllocStatusIfRealloc(std::map &alloctype = varInfo.alloctype; - const std::map::iterator var = alloctype.find(arg->varId()); + const auto var = alloctype.find(arg->varId()); if (var != alloctype.end()) { // bailout if function is also allocating, since the argument might be moved // to the return value, such as in fdopen @@ -1131,7 +1129,7 @@ void CheckLeakAutoVar::leakIfAllocated(const Token *vartok, const std::map &alloctype = varInfo.alloctype; const auto& possibleUsage = varInfo.possibleUsage; - const std::map::const_iterator var = alloctype.find(vartok->varId()); + const auto var = utils::as_const(alloctype).find(vartok->varId()); if (var != alloctype.cend() && var->second.status == VarInfo::ALLOC) { const auto use = possibleUsage.find(vartok->varId()); if (use == possibleUsage.end()) { @@ -1149,7 +1147,7 @@ void CheckLeakAutoVar::ret(const Token *tok, VarInfo &varInfo, const bool isEndO std::vector toRemove; const SymbolDatabase *symbolDatabase = mTokenizer->getSymbolDatabase(); - for (std::map::const_iterator it = alloctype.cbegin(); it != alloctype.cend(); ++it) { + for (auto it = alloctype.cbegin(); it != alloctype.cend(); ++it) { // don't warn if variable is conditionally allocated, unless it leaves the scope if (!isEndOfScope && !it->second.managed() && varInfo.conditionalAlloc.find(it->first) != varInfo.conditionalAlloc.end()) continue; diff --git a/lib/checkleakautovar.h b/lib/checkleakautovar.h index ab22aae93bc..c5060065ed9 100644 --- a/lib/checkleakautovar.h +++ b/lib/checkleakautovar.h @@ -86,7 +86,7 @@ class CPPCHECKLIB VarInfo { void reallocToAlloc(nonneg int varid) { const AllocInfo& alloc = alloctype[varid]; if (alloc.reallocedFromType >= 0) { - const std::map::iterator it = alloctype.find(alloc.reallocedFromType); + const auto it = alloctype.find(alloc.reallocedFromType); if (it != alloctype.end() && it->second.status == REALLOC) { it->second.status = ALLOC; } diff --git a/lib/checknullpointer.cpp b/lib/checknullpointer.cpp index 331133d43bf..d6f5a3ea9a7 100644 --- a/lib/checknullpointer.cpp +++ b/lib/checknullpointer.cpp @@ -98,7 +98,7 @@ void CheckNullPointer::parseFunctionCall(const Token &tok, std::liststrAt(1) == "|=" || tok2->strAt(1) == "&=") && Token::Match(tok2->next()->astOperand2(), "%num%")) { const std::string bitOp = tok2->strAt(1)[0] + tok2->strAt(2); - const std::map::const_iterator i2 = varsWithBitsSet.find(tok2->varId()); + const auto i2 = utils::as_const(varsWithBitsSet).find(tok2->varId()); // This variable has not had a bit operation performed on it yet, so just make a note of it if (i2 == varsWithBitsSet.end()) { @@ -761,7 +761,7 @@ void CheckOther::redundantBitwiseOperationInSwitchError() else if (Token::Match(tok2->previous(), ";|{|}|: %var% = %name% %or%|& %num% ;") && tok2->varId() == tok2->tokAt(2)->varId()) { const std::string bitOp = tok2->strAt(3) + tok2->strAt(4); - const std::map::const_iterator i2 = varsWithBitsSet.find(tok2->varId()); + const auto i2 = utils::as_const(varsWithBitsSet).find(tok2->varId()); // This variable has not had a bit operation performed on it yet, so just make a note of it if (i2 == varsWithBitsSet.end()) { @@ -2507,8 +2507,8 @@ void CheckOther::checkInvalidFree() tok->strAt(3) == "(" ? 4 : 1; const int var1 = tok->tokAt(varIndex)->varId(); const int var2 = tok->tokAt(varIndex + 2)->varId(); - const std::map::const_iterator alloc1 = inconclusive.find(var1); - const std::map::const_iterator alloc2 = inconclusive.find(var2); + const auto alloc1 = utils::as_const(inconclusive).find(var1); + const auto alloc2 = utils::as_const(inconclusive).find(var2); if (alloc1 != inconclusive.end()) { invalidFreeError(tok, allocation[var1], alloc1->second); } else if (alloc2 != inconclusive.end()) { @@ -2564,7 +2564,7 @@ namespace { functionsByName[func.tokenDef->str()].push_back(&func); } for (std::pair>& it : functionsByName) { - const std::list::const_iterator nc = std::find_if(it.second.cbegin(), it.second.cend(), notconst); + const auto nc = std::find_if(it.second.cbegin(), it.second.cend(), notconst); if (nc == it.second.cend()) { // ok to add all of them constFunctions.splice(constFunctions.end(), it.second); diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index 07f2f64611e..72a34bfc896 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -300,7 +300,7 @@ static void conditionAlwaysTrueOrFalse(const Token *tok, const std::mapisName() || tok->str() == ".") { while (tok && tok->str() == ".") tok = tok->astOperand2(); - const std::map::const_iterator it = variableValue.find(tok ? tok->varId() : ~0U); + const auto it = utils::as_const(variableValue).find(tok ? tok->varId() : ~0U); if (it != variableValue.end()) { *alwaysTrue = (it->second != 0LL); *alwaysFalse = (it->second == 0LL); @@ -326,7 +326,7 @@ static void conditionAlwaysTrueOrFalse(const Token *tok, const std::mapstr() == ".") vartok = vartok->astOperand2(); - const std::map::const_iterator it = variableValue.find(vartok ? vartok->varId() : ~0U); + const auto it = utils::as_const(variableValue).find(vartok ? vartok->varId() : ~0U); if (it == variableValue.end()) return; @@ -472,7 +472,7 @@ bool CheckUninitVar::checkScopeForVariable(const Token *tok, const Variable& var if (alwaysFalse) ; else if (astIsVariableComparison(tok->next()->astOperand2(), "!=", "0", &condVarTok)) { - const std::map::const_iterator it = variableValue.find(condVarTok->varId()); + const auto it = utils::as_const(variableValue).find(condVarTok->varId()); if (it != variableValue.cend() && it->second != 0) return true; // this scope is not fully analysed => return true @@ -487,7 +487,7 @@ bool CheckUninitVar::checkScopeForVariable(const Token *tok, const Variable& var while (Token::simpleMatch(vartok, ".")) vartok = vartok->astOperand2(); if (vartok && vartok->varId() && numtok && numtok->hasKnownIntValue()) { - const std::map::const_iterator it = variableValue.find(vartok->varId()); + const auto it = utils::as_const(variableValue).find(vartok->varId()); if (it != variableValue.cend() && it->second != numtok->getKnownIntValue()) return true; // this scope is not fully analysed => return true condVarId = vartok->varId(); diff --git a/lib/checkunusedfunctions.cpp b/lib/checkunusedfunctions.cpp index a582503c2b3..593299dc129 100644 --- a/lib/checkunusedfunctions.cpp +++ b/lib/checkunusedfunctions.cpp @@ -347,7 +347,7 @@ bool CheckUnusedFunctions::check(const Settings& settings, ErrorLogger& errorLog using ErrorParams = std::tuple; std::vector errors; // ensure well-defined order - for (std::unordered_map::const_iterator it = mFunctions.cbegin(); it != mFunctions.cend(); ++it) { + for (auto it = mFunctions.cbegin(); it != mFunctions.cend(); ++it) { const FunctionUsage &func = it->second; if (func.usedOtherFile || func.filename.empty()) continue; @@ -472,7 +472,7 @@ void CheckUnusedFunctions::analyseWholeProgram(const Settings &settings, ErrorLo } } - for (std::map::const_iterator decl = decls.cbegin(); decl != decls.cend(); ++decl) { + for (auto decl = decls.cbegin(); decl != decls.cend(); ++decl) { const std::string &functionName = stripTemplateParameters(decl->first); if (settings.library.isentrypoint(functionName)) diff --git a/lib/checkunusedvar.cpp b/lib/checkunusedvar.cpp index c52017a0951..194356652e1 100644 --- a/lib/checkunusedvar.cpp +++ b/lib/checkunusedvar.cpp @@ -387,7 +387,7 @@ void Variables::modified(nonneg int varid, const Token* tok) Variables::VariableUsage *Variables::find(nonneg int varid) { if (varid) { - const std::map::iterator i = mVarUsage.find(varid); + const auto i = mVarUsage.find(varid); if (i != mVarUsage.end()) return &i->second; } diff --git a/lib/clangimport.cpp b/lib/clangimport.cpp index 09e2b99e402..16563dc8929 100644 --- a/lib/clangimport.cpp +++ b/lib/clangimport.cpp @@ -722,7 +722,7 @@ Scope *clangimport::AstNode::createScope(TokenList &tokenList, Scope::ScopeType const_cast(vartok)->variable(replaceVar[vartok->variable()]); } std::list &varlist = const_cast(def->scope())->varlist; - for (std::list::const_iterator var = varlist.cbegin(); var != varlist.cend();) { + for (auto var = varlist.cbegin(); var != varlist.cend();) { if (replaceVar.find(&(*var)) != replaceVar.end()) var = varlist.erase(var); else diff --git a/lib/cppcheck.cpp b/lib/cppcheck.cpp index d84f526c9ea..8ab61ca74d0 100644 --- a/lib/cppcheck.cpp +++ b/lib/cppcheck.cpp @@ -1876,7 +1876,7 @@ void CppCheck::getErrorMessages(ErrorLogger &errorlogger) // TODO: add functions to get remaining error messages // call all "getErrorMessages" in all registered Check classes - for (std::list::const_iterator it = Check::instances().cbegin(); it != Check::instances().cend(); ++it) + for (auto it = Check::instances().cbegin(); it != Check::instances().cend(); ++it) (*it)->getErrorMessages(&errorlogger, &s); CheckUnusedFunctions::getErrorMessages(errorlogger); diff --git a/lib/ctu.cpp b/lib/ctu.cpp index d2387f4045e..949980cc6e4 100644 --- a/lib/ctu.cpp +++ b/lib/ctu.cpp @@ -506,7 +506,7 @@ static bool findPath(const std::string &callId, if (index >= maxCtuDepth) return false; // TODO: add bailout message? - const std::map>::const_iterator it = callsMap.find(callId); + const auto it = utils::as_const(callsMap).find(callId); if (it == callsMap.end()) return false; diff --git a/lib/errorlogger.cpp b/lib/errorlogger.cpp index 11616b362fd..fd65bb71ed8 100644 --- a/lib/errorlogger.cpp +++ b/lib/errorlogger.cpp @@ -92,7 +92,7 @@ ErrorMessage::ErrorMessage(const std::list& callstack, const Token : id(std::move(id)), severity(severity), cwe(0U), certainty(certainty), hash(0) { // Format callstack - for (std::list::const_iterator it = callstack.cbegin(); it != callstack.cend(); ++it) { + for (auto it = callstack.cbegin(); it != callstack.cend(); ++it) { // --errorlist can provide null values here if (!(*it)) continue; @@ -287,7 +287,7 @@ std::string ErrorMessage::serialize() const oss += std::to_string(callStack.size()); oss += " "; - for (std::list::const_iterator loc = callStack.cbegin(); loc != callStack.cend(); ++loc) { + for (auto loc = callStack.cbegin(); loc != callStack.cend(); ++loc) { std::string frame; frame += std::to_string(loc->line); frame += '\t'; @@ -459,7 +459,7 @@ std::string ErrorMessage::fixInvalidChars(const std::string& raw) { std::string result; result.reserve(raw.length()); - std::string::const_iterator from=raw.cbegin(); + auto from=raw.cbegin(); while (from!=raw.cend()) { if (std::isprint(static_cast(*from))) { result.push_back(*from); @@ -496,7 +496,7 @@ std::string ErrorMessage::toXML() const if (!remark.empty()) printer.PushAttribute("remark", fixInvalidChars(remark).c_str()); - for (std::list::const_reverse_iterator it = callStack.crbegin(); it != callStack.crend(); ++it) { + for (auto it = callStack.crbegin(); it != callStack.crend(); ++it) { printer.OpenElement("location", false); printer.PushAttribute("file", it->getfile().c_str()); printer.PushAttribute("line", std::max(it->line,0)); @@ -700,7 +700,7 @@ std::string ErrorMessage::toString(bool verbose, const std::string &templateForm std::string ErrorLogger::callStackToString(const std::list &callStack) { std::string str; - for (std::list::const_iterator tok = callStack.cbegin(); tok != callStack.cend(); ++tok) { + for (auto tok = callStack.cbegin(); tok != callStack.cend(); ++tok) { str += (tok == callStack.cbegin() ? "" : " -> "); str += tok->stringify(); } @@ -819,9 +819,9 @@ std::string ErrorLogger::plistData(const ErrorMessage &msg) << " path\r\n" << " \r\n"; - std::list::const_iterator prev = msg.callStack.cbegin(); + auto prev = msg.callStack.cbegin(); - for (std::list::const_iterator it = msg.callStack.cbegin(); it != msg.callStack.cend(); ++it) { + for (auto it = msg.callStack.cbegin(); it != msg.callStack.cend(); ++it) { if (prev != it) { plist << " \r\n" << " kindcontrol\r\n" @@ -844,7 +844,7 @@ std::string ErrorLogger::plistData(const ErrorMessage &msg) prev = it; } - std::list::const_iterator next = it; + auto next = it; ++next; const std::string message = (it->getinfo().empty() && next == msg.callStack.cend() ? msg.shortMessage() : it->getinfo()); diff --git a/lib/importproject.cpp b/lib/importproject.cpp index 0a38c938f31..1802fbfa82a 100644 --- a/lib/importproject.cpp +++ b/lib/importproject.cpp @@ -44,7 +44,7 @@ // TODO: align the exclusion logic with PathMatch void ImportProject::ignorePaths(const std::vector &ipaths) { - for (std::list::const_iterator it = fileSettings.cbegin(); it != fileSettings.cend();) { + for (auto it = fileSettings.cbegin(); it != fileSettings.cend();) { bool ignore = false; for (std::string i : ipaths) { if (it->filename().size() > i.size() && it->filename().compare(0,i.size(),i)==0) { @@ -72,7 +72,7 @@ void ImportProject::ignorePaths(const std::vector &ipaths) void ImportProject::ignoreOtherConfigs(const std::string &cfg) { - for (std::list::const_iterator it = fileSettings.cbegin(); it != fileSettings.cend();) { + for (auto it = fileSettings.cbegin(); it != fileSettings.cend();) { if (it->cfg != cfg) it = fileSettings.erase(it); else @@ -123,7 +123,7 @@ static bool simplifyPathWithVariables(std::string &s, std::map::const_iterator it1 = variables.find(var); + auto it1 = utils::as_const(variables).find(var); // variable was not found within defined variables if (it1 == variables.end()) { const char *envValue = std::getenv(var.c_str()); @@ -1033,7 +1033,7 @@ bool ImportProject::importBcb6Prj(const std::string &projectFilename) { "-tWV","-WV" } }; - for (std::map::const_iterator i = synonyms.cbegin(); i != synonyms.cend(); ++i) { + for (auto i = synonyms.cbegin(); i != synonyms.cend(); ++i) { if (cflags.erase(i->first) > 0) { cflags.insert(i->second); } @@ -1419,7 +1419,7 @@ bool ImportProject::importCppcheckGuiProject(std::istream &istr, Settings *setti void ImportProject::selectOneVsConfig(Platform::Type platform) { std::set filenames; - for (std::list::const_iterator it = fileSettings.cbegin(); it != fileSettings.cend();) { + for (auto it = fileSettings.cbegin(); it != fileSettings.cend();) { if (it->cfg.empty()) { ++it; continue; @@ -1446,7 +1446,7 @@ void ImportProject::selectOneVsConfig(Platform::Type platform) // cppcheck-suppress unusedFunction - used by GUI only void ImportProject::selectVsConfigurations(Platform::Type platform, const std::vector &configurations) { - for (std::list::const_iterator it = fileSettings.cbegin(); it != fileSettings.cend();) { + for (auto it = fileSettings.cbegin(); it != fileSettings.cend();) { if (it->cfg.empty()) { ++it; continue; diff --git a/lib/library.cpp b/lib/library.cpp index 3b242417a22..c26ea1e22b9 100644 --- a/lib/library.cpp +++ b/lib/library.cpp @@ -46,7 +46,7 @@ struct Library::LibraryData { struct Platform { const PlatformType *platform_type(const std::string &name) const { - const std::map::const_iterator it = mPlatformTypes.find(name); + const auto it = utils::as_const(mPlatformTypes).find(name); return (it != mPlatformTypes.end()) ? &(it->second) : nullptr; } std::map mPlatformTypes; @@ -336,7 +336,7 @@ Library::Error Library::load(const tinyxml2::XMLDocument &doc) if (strcmp(memorynode->Name(),"dealloc")==0) { const auto names = getnames(memorynode->GetText()); for (const auto& n : names) { - const std::map::const_iterator it = mData->mDealloc.find(n); + const auto it = utils::as_const(mData->mDealloc).find(n); if (it != mData->mDealloc.end()) { allocationId = it->second.groupId; break; @@ -544,7 +544,7 @@ Library::Error Library::load(const tinyxml2::XMLDocument &doc) const char* const inherits = node->Attribute("inherits"); if (inherits) { - const std::unordered_map::const_iterator i = mData->mContainers.find(inherits); + const auto i = utils::as_const(mData->mContainers).find(inherits); if (i != mData->mContainers.end()) container = i->second; // Take values from parent and overwrite them if necessary else @@ -783,7 +783,7 @@ Library::Error Library::load(const tinyxml2::XMLDocument &doc) } if (!unknown_elements.empty()) { std::string str; - for (std::set::const_iterator i = unknown_elements.cbegin(); i != unknown_elements.cend();) { + for (auto i = unknown_elements.cbegin(); i != unknown_elements.cend();) { str += *i; if (++i != unknown_elements.end()) str += ", "; @@ -1177,7 +1177,7 @@ bool Library::isnullargbad(const Token *ftok, int argnr) const if (!arg) { // scan format string argument should not be null const std::string funcname = getFunctionName(ftok); - const std::unordered_map::const_iterator it = mData->mFunctions.find(funcname); + const auto it = utils::as_const(mData->mFunctions).find(funcname); if (it != mData->mFunctions.cend() && it->second.formatstr && it->second.formatstr_scan) return true; } @@ -1190,7 +1190,7 @@ bool Library::isuninitargbad(const Token *ftok, int argnr, int indirect, bool *h if (!arg) { // non-scan format string argument should not be uninitialized const std::string funcname = getFunctionName(ftok); - const std::unordered_map::const_iterator it = mData->mFunctions.find(funcname); + const auto it = utils::as_const(mData->mFunctions).find(funcname); if (it != mData->mFunctions.cend() && it->second.formatstr && !it->second.formatstr_scan) return true; } @@ -1260,10 +1260,10 @@ const Library::ArgumentChecks * Library::getarg(const Token *ftok, int argnr) co const Function* func = nullptr; if (isNotLibraryFunction(ftok, &func)) return nullptr; - const std::map::const_iterator it2 = func->argumentChecks.find(argnr); + const auto it2 = utils::as_const(func->argumentChecks).find(argnr); if (it2 != func->argumentChecks.cend()) return &it2->second; - const std::map::const_iterator it3 = func->argumentChecks.find(-1); + const auto it3 = utils::as_const(func->argumentChecks).find(-1); if (it3 != func->argumentChecks.cend()) return &it3->second; return nullptr; @@ -1443,7 +1443,7 @@ bool Library::matchArguments(const Token *ftok, const std::string &functionName, { if (functionName.empty()) return false; - const std::unordered_map::const_iterator it = mData->mFunctions.find(functionName); + const auto it = utils::as_const(mData->mFunctions).find(functionName); if (it == mData->mFunctions.cend()) return false; const int callargs = numberOfArgumentsWithoutAst(ftok); @@ -1476,7 +1476,7 @@ const Library::WarnInfo* Library::getWarnInfo(const Token* ftok) const { if (isNotLibraryFunction(ftok)) return nullptr; - const std::map::const_iterator i = mData->mFunctionwarn.find(getFunctionName(ftok)); + const auto i = utils::as_const(mData->mFunctionwarn).find(getFunctionName(ftok)); if (i == mData->mFunctionwarn.cend()) return nullptr; return &i->second; @@ -1532,7 +1532,7 @@ bool Library::formatstr_function(const Token* ftok) const if (isNotLibraryFunction(ftok)) return false; - const std::unordered_map::const_iterator it = mData->mFunctions.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mFunctions).find(getFunctionName(ftok)); if (it != mData->mFunctions.cend()) return it->second.formatstr; return false; @@ -1561,7 +1561,7 @@ const Library::NonOverlappingData* Library::getNonOverlappingData(const Token *f { if (isNotLibraryFunction(ftok)) return nullptr; - const std::unordered_map::const_iterator it = mData->mNonOverlappingData.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mNonOverlappingData).find(getFunctionName(ftok)); return (it != mData->mNonOverlappingData.cend()) ? &it->second : nullptr; } @@ -1579,7 +1579,7 @@ Library::UseRetValType Library::getUseRetValType(const Token *ftok) const } return Library::UseRetValType::NONE; } - const std::unordered_map::const_iterator it = mData->mFunctions.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mFunctions).find(getFunctionName(ftok)); if (it != mData->mFunctions.cend()) return it->second.useretval; return Library::UseRetValType::NONE; @@ -1589,7 +1589,7 @@ const std::string& Library::returnValue(const Token *ftok) const { if (isNotLibraryFunction(ftok)) return emptyString; - const std::map::const_iterator it = mData->mReturnValue.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mReturnValue).find(getFunctionName(ftok)); return it != mData->mReturnValue.cend() ? it->second : emptyString; } @@ -1603,7 +1603,7 @@ const std::string& Library::returnValueType(const Token *ftok) const } return emptyString; } - const std::map::const_iterator it = mData->mReturnValueType.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mReturnValueType).find(getFunctionName(ftok)); return it != mData->mReturnValueType.cend() ? it->second : emptyString; } @@ -1611,7 +1611,7 @@ int Library::returnValueContainer(const Token *ftok) const { if (isNotLibraryFunction(ftok)) return -1; - const std::map::const_iterator it = mData->mReturnValueContainer.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mReturnValueContainer).find(getFunctionName(ftok)); return it != mData->mReturnValueContainer.cend() ? it->second : -1; } @@ -1619,7 +1619,7 @@ std::vector Library::unknownReturnValues(const Token *ftok) con { if (isNotLibraryFunction(ftok)) return std::vector(); - const std::map>::const_iterator it = mData->mUnknownReturnValues.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mUnknownReturnValues).find(getFunctionName(ftok)); return (it == mData->mUnknownReturnValues.cend()) ? std::vector() : it->second; } @@ -1627,7 +1627,7 @@ const Library::Function *Library::getFunction(const Token *ftok) const { if (isNotLibraryFunction(ftok)) return nullptr; - const std::unordered_map::const_iterator it1 = mData->mFunctions.find(getFunctionName(ftok)); + const auto it1 = utils::as_const(mData->mFunctions).find(getFunctionName(ftok)); if (it1 == mData->mFunctions.cend()) return nullptr; return &it1->second; @@ -1638,7 +1638,7 @@ bool Library::hasminsize(const Token *ftok) const { if (isNotLibraryFunction(ftok)) return false; - const std::unordered_map::const_iterator it = mData->mFunctions.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mFunctions).find(getFunctionName(ftok)); if (it == mData->mFunctions.cend()) return false; return std::any_of(it->second.argumentChecks.cbegin(), it->second.argumentChecks.cend(), [](const std::pair& a) { @@ -1667,7 +1667,7 @@ Library::ArgumentChecks::Direction Library::getArgDirection(const Token* ftok, i bool Library::ignorefunction(const std::string& functionName) const { - const std::unordered_map::const_iterator it = mData->mFunctions.find(functionName); + const auto it = utils::as_const(mData->mFunctions).find(functionName); if (it != mData->mFunctions.cend()) return it->second.ignore; return false; @@ -1678,21 +1678,21 @@ const std::unordered_map& Library::functions() c } bool Library::isUse(const std::string& functionName) const { - const std::unordered_map::const_iterator it = mData->mFunctions.find(functionName); + const auto it = utils::as_const(mData->mFunctions).find(functionName); if (it != mData->mFunctions.cend()) return it->second.use; return false; } bool Library::isLeakIgnore(const std::string& functionName) const { - const std::unordered_map::const_iterator it = mData->mFunctions.find(functionName); + const auto it = utils::as_const(mData->mFunctions).find(functionName); if (it != mData->mFunctions.cend()) return it->second.leakignore; return false; } bool Library::isFunctionConst(const std::string& functionName, bool pure) const { - const std::unordered_map::const_iterator it = mData->mFunctions.find(functionName); + const auto it = utils::as_const(mData->mFunctions).find(functionName); if (it != mData->mFunctions.cend()) return pure ? it->second.ispure : it->second.isconst; return false; @@ -1710,7 +1710,7 @@ bool Library::isFunctionConst(const Token *ftok) const } return false; } - const std::unordered_map::const_iterator it = mData->mFunctions.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mFunctions).find(getFunctionName(ftok)); return (it != mData->mFunctions.cend() && it->second.isconst); } @@ -1729,7 +1729,7 @@ bool Library::isnoreturn(const Token *ftok) const } return false; } - const std::unordered_map::const_iterator it = mData->mNoReturn.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mNoReturn).find(getFunctionName(ftok)); if (it == mData->mNoReturn.end()) return false; if (it->second == LibraryData::FalseTrueMaybe::Maybe) @@ -1743,7 +1743,7 @@ bool Library::isnotnoreturn(const Token *ftok) const return false; if (isNotLibraryFunction(ftok)) return hasAnyTypeCheck(getFunctionName(ftok)); - const std::unordered_map::const_iterator it = mData->mNoReturn.find(getFunctionName(ftok)); + const auto it = utils::as_const(mData->mNoReturn).find(getFunctionName(ftok)); if (it == mData->mNoReturn.end()) return false; if (it->second == LibraryData::FalseTrueMaybe::Maybe) @@ -1758,27 +1758,27 @@ bool Library::markupFile(const std::string &path) const bool Library::processMarkupAfterCode(const std::string &path) const { - const std::map::const_iterator it = mData->mProcessAfterCode.find(Path::getFilenameExtensionInLowerCase(path)); + const auto it = utils::as_const(mData->mProcessAfterCode).find(Path::getFilenameExtensionInLowerCase(path)); return (it == mData->mProcessAfterCode.cend() || it->second); } bool Library::reportErrors(const std::string &path) const { - const std::map::const_iterator it = mData->mReportErrors.find(Path::getFilenameExtensionInLowerCase(path)); + const auto it = utils::as_const(mData->mReportErrors).find(Path::getFilenameExtensionInLowerCase(path)); return (it == mData->mReportErrors.cend() || it->second); } bool Library::isexecutableblock(const std::string &file, const std::string &token) const { - const std::unordered_map::const_iterator it = mData->mExecutableBlocks.find(Path::getFilenameExtensionInLowerCase(file)); + const auto it = utils::as_const(mData->mExecutableBlocks).find(Path::getFilenameExtensionInLowerCase(file)); return (it != mData->mExecutableBlocks.cend() && it->second.isBlock(token)); } int Library::blockstartoffset(const std::string &file) const { int offset = -1; - const std::unordered_map::const_iterator map_it - = mData->mExecutableBlocks.find(Path::getFilenameExtensionInLowerCase(file)); + const auto map_it + = utils::as_const(mData->mExecutableBlocks).find(Path::getFilenameExtensionInLowerCase(file)); if (map_it != mData->mExecutableBlocks.end()) { offset = map_it->second.offset(); @@ -1788,8 +1788,8 @@ int Library::blockstartoffset(const std::string &file) const const std::string& Library::blockstart(const std::string &file) const { - const std::unordered_map::const_iterator map_it - = mData->mExecutableBlocks.find(Path::getFilenameExtensionInLowerCase(file)); + const auto map_it + = utils::as_const(mData->mExecutableBlocks).find(Path::getFilenameExtensionInLowerCase(file)); if (map_it != mData->mExecutableBlocks.end()) { return map_it->second.start(); @@ -1799,8 +1799,8 @@ const std::string& Library::blockstart(const std::string &file) const const std::string& Library::blockend(const std::string &file) const { - const std::unordered_map::const_iterator map_it - = mData->mExecutableBlocks.find(Path::getFilenameExtensionInLowerCase(file)); + const auto map_it + = utils::as_const(mData->mExecutableBlocks).find(Path::getFilenameExtensionInLowerCase(file)); if (map_it != mData->mExecutableBlocks.end()) { return map_it->second.end(); @@ -1810,15 +1810,15 @@ const std::string& Library::blockend(const std::string &file) const bool Library::iskeyword(const std::string &file, const std::string &keyword) const { - const std::map>::const_iterator it = - mData->mKeywords.find(Path::getFilenameExtensionInLowerCase(file)); + const auto it = + utils::as_const(mData->mKeywords).find(Path::getFilenameExtensionInLowerCase(file)); return (it != mData->mKeywords.end() && it->second.count(keyword)); } bool Library::isimporter(const std::string& file, const std::string &importer) const { - const std::map>::const_iterator it = - mData->mImporters.find(Path::getFilenameExtensionInLowerCase(file)); + const auto it = + utils::as_const(mData->mImporters).find(Path::getFilenameExtensionInLowerCase(file)); return (it != mData->mImporters.end() && it->second.count(importer) > 0); } @@ -1962,13 +1962,13 @@ bool Library::isexporter(const std::string &prefix) const bool Library::isexportedprefix(const std::string &prefix, const std::string &token) const { - const std::map::const_iterator it = mData->mExporters.find(prefix); + const auto it = utils::as_const(mData->mExporters).find(prefix); return (it != mData->mExporters.end() && it->second.isPrefix(token)); } bool Library::isexportedsuffix(const std::string &prefix, const std::string &token) const { - const std::map::const_iterator it = mData->mExporters.find(prefix); + const auto it = utils::as_const(mData->mExporters).find(prefix); return (it != mData->mExporters.end() && it->second.isSuffix(token)); } @@ -1979,7 +1979,7 @@ bool Library::isreflection(const std::string &token) const int Library::reflectionArgument(const std::string &token) const { - const std::map::const_iterator it = mData->mReflection.find(token); + const auto it = utils::as_const(mData->mReflection).find(token); if (it != mData->mReflection.end()) return it->second; return -1; @@ -1997,19 +1997,19 @@ const std::set& Library::defines() const const Library::PodType *Library::podtype(const std::string &name) const { - const std::unordered_map::const_iterator it = mData->mPodTypes.find(name); + const auto it = utils::as_const(mData->mPodTypes).find(name); return (it != mData->mPodTypes.end()) ? &(it->second) : nullptr; } const Library::PlatformType *Library::platform_type(const std::string &name, const std::string & platform) const { - const std::map::const_iterator it = mData->mPlatforms.find(platform); + const auto it = utils::as_const(mData->mPlatforms).find(platform); if (it != mData->mPlatforms.end()) { const PlatformType * const type = it->second.platform_type(name); if (type) return type; } - const std::map::const_iterator it2 = mData->mPlatformTypes.find(name); + const auto it2 = utils::as_const(mData->mPlatformTypes).find(name); return (it2 != mData->mPlatformTypes.end()) ? &(it2->second) : nullptr; } diff --git a/lib/library.h b/lib/library.h index f1fe368d85f..6f51e684252 100644 --- a/lib/library.h +++ b/lib/library.h @@ -24,6 +24,7 @@ #include "config.h" #include "mathlib.h" #include "standards.h" +#include "utils.h" #include #include @@ -236,21 +237,21 @@ class CPPCHECKLIB Library { bool view{}; Action getAction(const std::string& function) const { - const std::map::const_iterator i = functions.find(function); + const auto i = utils::as_const(functions).find(function); if (i != functions.end()) return i->second.action; return Action::NO_ACTION; } Yield getYield(const std::string& function) const { - const std::map::const_iterator i = functions.find(function); + const auto i = utils::as_const(functions).find(function); if (i != functions.end()) return i->second.yield; return Yield::NO_YIELD; } const std::string& getReturnType(const std::string& function) const { - auto i = functions.find(function); + const auto i = utils::as_const(functions).find(function); return (i != functions.end()) ? i->second.returnType : emptyString; } @@ -474,7 +475,7 @@ class CPPCHECKLIB Library { std::string getFunctionName(const Token *ftok, bool &error) const; static const AllocFunc* getAllocDealloc(const std::map &data, const std::string &name) { - const std::map::const_iterator it = data.find(name); + const auto it = utils::as_const(data).find(name); return (it == data.end()) ? nullptr : &it->second; } diff --git a/lib/mathlib.cpp b/lib/mathlib.cpp index a878d303857..601463cab9c 100644 --- a/lib/mathlib.cpp +++ b/lib/mathlib.cpp @@ -544,7 +544,7 @@ bool MathLib::isDecimalFloat(const std::string &str) enum class State : std::uint8_t { START, BASE_DIGITS1, LEADING_DECIMAL, TRAILING_DECIMAL, BASE_DIGITS2, E, MANTISSA_PLUSMINUS, MANTISSA_DIGITS, SUFFIX_F, SUFFIX_L, SUFFIX_LITERAL_LEADER, SUFFIX_LITERAL } state = State::START; - std::string::const_iterator it = str.cbegin(); + auto it = str.cbegin(); if ('+' == *it || '-' == *it) ++it; for (; it != str.cend(); ++it) { @@ -775,7 +775,7 @@ bool MathLib::isOct(const std::string& str) } state = Status::START; if (str.empty()) return false; - std::string::const_iterator it = str.cbegin(); + auto it = str.cbegin(); if ('+' == *it || '-' == *it) ++it; for (; it != str.cend(); ++it) { @@ -810,7 +810,7 @@ bool MathLib::isIntHex(const std::string& str) } state = Status::START; if (str.empty()) return false; - std::string::const_iterator it = str.cbegin(); + auto it = str.cbegin(); if ('+' == *it || '-' == *it) ++it; for (; it != str.cend(); ++it) { @@ -851,7 +851,7 @@ bool MathLib::isFloatHex(const std::string& str) } state = Status::START; if (str.empty()) return false; - std::string::const_iterator it = str.cbegin(); + auto it = str.cbegin(); if ('+' == *it || '-' == *it) ++it; for (; it != str.cend(); ++it) { @@ -941,7 +941,7 @@ bool MathLib::isBin(const std::string& str) } state = Status::START; if (str.empty()) return false; - std::string::const_iterator it = str.cbegin(); + auto it = str.cbegin(); if ('+' == *it || '-' == *it) ++it; for (; it != str.cend(); ++it) { @@ -982,7 +982,7 @@ bool MathLib::isDec(const std::string & str) } state = Status::START; if (str.empty()) return false; - std::string::const_iterator it = str.cbegin(); + auto it = str.cbegin(); if ('+' == *it || '-' == *it) ++it; for (; it != str.cend(); ++it) { diff --git a/lib/pathmatch.cpp b/lib/pathmatch.cpp index 6e7d3866db9..caf121608ed 100644 --- a/lib/pathmatch.cpp +++ b/lib/pathmatch.cpp @@ -49,7 +49,7 @@ bool PathMatch::match(const std::string &path) const const bool is_absolute = Path::isAbsolute(path); // TODO: align the match logic with ImportProject::ignorePaths() - for (std::vector::const_iterator i = mPaths.cbegin(); i != mPaths.cend(); ++i) { + for (auto i = mPaths.cbegin(); i != mPaths.cend(); ++i) { const std::string pathToMatch((!is_absolute && Path::isAbsolute(*i)) ? Path::getRelativePath(*i, mWorkingDirectory) : *i); // Filtering directory name diff --git a/lib/preprocessor.cpp b/lib/preprocessor.cpp index 4088a1d30db..cb98d33f7bb 100644 --- a/lib/preprocessor.cpp +++ b/lib/preprocessor.cpp @@ -302,7 +302,7 @@ void Preprocessor::inlineSuppressions(const simplecpp::TokenList &tokens, Suppre return; std::list err; ::addInlineSuppressions(tokens, mSettings, suppressions, err); - for (std::map::const_iterator it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { + for (auto it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { if (it->second) ::addInlineSuppressions(*it->second, mSettings, suppressions, err); } @@ -315,7 +315,7 @@ std::vector Preprocessor::getRemarkComments(const simplecpp::Toke { std::vector ret; addRemarkComments(tokens, ret); - for (std::map::const_iterator it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { + for (auto it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { if (it->second) addRemarkComments(*it->second, ret); } @@ -330,7 +330,7 @@ std::list Preprocessor::createDirectives(const simplecpp::TokenList & std::vector list; list.reserve(1U + mTokenLists.size()); list.push_back(&tokens); - for (std::map::const_iterator it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { + for (auto it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { list.push_back(it->second); } @@ -662,7 +662,7 @@ std::set Preprocessor::getConfigs(const simplecpp::TokenList &token ::getConfigs(tokens, defined, mSettings.userDefines, mSettings.userUndefs, ret); - for (std::map::const_iterator it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { + for (auto it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { if (!mSettings.configurationExcluded(it->first)) ::getConfigs(*(it->second), defined, mSettings.userDefines, mSettings.userUndefs, ret); } @@ -975,7 +975,7 @@ std::size_t Preprocessor::calculateHash(const simplecpp::TokenList &tokens1, con hashData += static_cast(tok->location.col); } } - for (std::map::const_iterator it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { + for (auto it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) { for (const simplecpp::Token *tok = it->second->cfront(); tok; tok = tok->next) { if (!tok->comment) { hashData += tok->str(); diff --git a/lib/programmemory.cpp b/lib/programmemory.cpp index 20e212b8409..26c3c1f0671 100644 --- a/lib/programmemory.cpp +++ b/lib/programmemory.cpp @@ -77,7 +77,7 @@ void ProgramMemory::setValue(const Token* expr, const ValueFlow::Value& value) { } const ValueFlow::Value* ProgramMemory::getValue(nonneg int exprid, bool impossible) const { - const ProgramMemory::Map::const_iterator it = mValues->find(exprid); + const auto it = utils::as_const(*mValues).find(exprid); const bool found = it != mValues->cend() && (impossible || !it->second.isImpossible()); if (found) return &it->second; diff --git a/lib/settings.cpp b/lib/settings.cpp index 9d71b472805..cb828598ff4 100644 --- a/lib/settings.cpp +++ b/lib/settings.cpp @@ -103,7 +103,7 @@ std::string Settings::loadCppcheckCfg(Settings& settings, Suppressions& suppress } const picojson::object& obj = json.get(); { - const picojson::object::const_iterator it = obj.find("productName"); + const auto it = utils::as_const(obj).find("productName"); if (it != obj.cend()) { const auto& v = it->second; if (!v.is()) @@ -112,7 +112,7 @@ std::string Settings::loadCppcheckCfg(Settings& settings, Suppressions& suppress } } { - const picojson::object::const_iterator it = obj.find("about"); + const auto it = utils::as_const(obj).find("about"); if (it != obj.cend()) { const auto& v = it->second; if (!v.is()) @@ -121,7 +121,7 @@ std::string Settings::loadCppcheckCfg(Settings& settings, Suppressions& suppress } } { - const picojson::object::const_iterator it = obj.find("addons"); + const auto it = utils::as_const(obj).find("addons"); if (it != obj.cend()) { const auto& entry = it->second; if (!entry.is()) @@ -139,7 +139,7 @@ std::string Settings::loadCppcheckCfg(Settings& settings, Suppressions& suppress } } { - const picojson::object::const_iterator it = obj.find("suppressions"); + const auto it = utils::as_const(obj).find("suppressions"); if (it != obj.cend()) { const auto& entry = it->second; if (!entry.is()) @@ -156,7 +156,7 @@ std::string Settings::loadCppcheckCfg(Settings& settings, Suppressions& suppress } } { - const picojson::object::const_iterator it = obj.find("safety"); + const auto it = utils::as_const(obj).find("safety"); if (it != obj.cend()) { const auto& v = it->second; if (!v.is()) diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 291b2a8ed0e..5bd2226475c 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -850,9 +850,7 @@ void SymbolDatabase::createSymbolDatabaseVariableInfo() // fill in function arguments for (Scope& scope : scopeList) { - std::list::iterator func; - - for (func = scope.functionList.begin(); func != scope.functionList.end(); ++func) { + for (auto func = scope.functionList.begin(); func != scope.functionList.end(); ++func) { // add arguments func->addArguments(this, &scope); } @@ -866,8 +864,7 @@ void SymbolDatabase::createSymbolDatabaseCopyAndMoveConstructors() if (!scope.isClassOrStruct()) continue; - std::list::iterator func; - for (func = scope.functionList.begin(); func != scope.functionList.end(); ++func) { + for (auto func = scope.functionList.begin(); func != scope.functionList.end(); ++func) { if (!func->isConstructor() || func->minArgCount() != 1) continue; @@ -908,9 +905,7 @@ void SymbolDatabase::createSymbolDatabaseFunctionReturnTypes() { // fill in function return types for (Scope& scope : scopeList) { - std::list::iterator func; - - for (func = scope.functionList.begin(); func != scope.functionList.end(); ++func) { + for (auto func = scope.functionList.begin(); func != scope.functionList.end(); ++func) { // add return types if (func->retDef) { const Token *type = func->retDef; @@ -1242,7 +1237,7 @@ void SymbolDatabase::createSymbolDatabaseSetSmartPointerType() void SymbolDatabase::fixVarId(VarIdMap & varIds, const Token * vartok, Token * membertok, const Variable * membervar) { - VarIdMap::iterator varId = varIds.find(vartok->varId()); + auto varId = varIds.find(vartok->varId()); if (varId == varIds.end()) { MemberIdMap memberId; if (membertok->varId() == 0) { @@ -1253,7 +1248,7 @@ void SymbolDatabase::fixVarId(VarIdMap & varIds, const Token * vartok, Token * m varIds.emplace(vartok->varId(), memberId); varId = varIds.find(vartok->varId()); } - MemberIdMap::const_iterator memberId = varId->second.find(membervar->nameToken()->varId()); + auto memberId = utils::as_const(varId->second).find(membervar->nameToken()->varId()); if (memberId == varId->second.cend()) { if (membertok->varId() == 0) { varId->second.emplace(membervar->nameToken()->varId(), mTokenizer.newVarId()); @@ -3308,15 +3303,14 @@ void SymbolDatabase::addClassFunction(Scope *&scope, const Token *&tok, const To } // search for match - for (std::list::iterator it1 = scopeList.begin(); it1 != scopeList.end(); ++it1) { + for (auto it1 = scopeList.begin(); it1 != scopeList.end(); ++it1) { Scope *scope1 = &(*it1); bool match = false; // check in namespace if using found if (scope == scope1 && !scope1->usingList.empty()) { - std::vector::const_iterator it2; - for (it2 = scope1->usingList.cbegin(); it2 != scope1->usingList.cend(); ++it2) { + for (auto it2 = scope1->usingList.cbegin(); it2 != scope1->usingList.cend(); ++it2) { if (it2->scope) { Function * func = findFunctionInScope(tok1, it2->scope, path, path_length); if (func) { @@ -3632,8 +3626,7 @@ void SymbolDatabase::returnImplicitIntError(const Token *tok) const const Function* Type::getFunction(const std::string& funcName) const { if (classScope) { - const std::multimap::const_iterator it = classScope->functionMap.find(funcName); - + const auto it = utils::as_const(classScope->functionMap).find(funcName); if (it != classScope->functionMap.end()) return it->second; } @@ -3678,7 +3671,7 @@ bool Type::findDependency(const Type* ancestor) const bool Type::isDerivedFrom(const std::string & ancestor) const { - for (std::vector::const_iterator parent=derivedFrom.cbegin(); parent!=derivedFrom.cend(); ++parent) { + for (auto parent=derivedFrom.cbegin(); parent!=derivedFrom.cend(); ++parent) { if (parent->name == ancestor) return true; if (parent->type && parent->type->isDerivedFrom(ancestor)) @@ -3958,7 +3951,7 @@ void SymbolDatabase::printOut(const char *title) const if (title) std::cout << "\n### " << title << " ###\n"; - for (std::list::const_iterator scope = scopeList.cbegin(); scope != scopeList.cend(); ++scope) { + for (auto scope = scopeList.cbegin(); scope != scopeList.cend(); ++scope) { std::cout << "Scope: " << &*scope << " " << scope->type << std::endl; std::cout << " className: " << scope->className << std::endl; std::cout << " classDef: " << tokenToString(scope->classDef, mTokenizer) << std::endl; @@ -4087,7 +4080,7 @@ void SymbolDatabase::printOut(const char *title) const std::cout << " nestedList[" << scope->nestedList.size() << "] = ("; std::size_t count = scope->nestedList.size(); - for (std::vector::const_iterator nsi = scope->nestedList.cbegin(); nsi != scope->nestedList.cend(); ++nsi) { + for (auto nsi = scope->nestedList.cbegin(); nsi != scope->nestedList.cend(); ++nsi) { std::cout << " " << (*nsi) << " " << (*nsi)->type << " " << (*nsi)->className; if (count-- > 1) std::cout << ","; @@ -4113,7 +4106,7 @@ void SymbolDatabase::printOut(const char *title) const std::cout << std::endl; } - for (std::list::const_iterator type = typeList.cbegin(); type != typeList.cend(); ++type) { + for (auto type = typeList.cbegin(); type != typeList.cend(); ++type) { std::cout << "Type: " << &(*type) << std::endl; std::cout << " name: " << type->name() << std::endl; std::cout << " classDef: " << tokenToString(type->classDef, mTokenizer) << std::endl; @@ -4188,7 +4181,7 @@ void SymbolDatabase::printXml(std::ostream &out) const // Scopes.. outs += " \n"; - for (std::list::const_iterator scope = scopeList.cbegin(); scope != scopeList.cend(); ++scope) { + for (auto scope = scopeList.cbegin(); scope != scopeList.cend(); ++scope) { outs += " functionList.empty()) { outs += " \n"; - for (std::list::const_iterator function = scope->functionList.cbegin(); function != scope->functionList.cend(); ++function) { + for (auto function = scope->functionList.cbegin(); function != scope->functionList.cend(); ++function) { outs += " varlist.empty()) { outs += " \n"; - for (std::list::const_iterator var = scope->varlist.cbegin(); var != scope->varlist.cend(); ++var) { + for (auto var = scope->varlist.cbegin(); var != scope->varlist.cend(); ++var) { outs += " \n"; @@ -4597,7 +4590,7 @@ std::vector Function::getOverloadedFunctions() const while (scope) { const bool isMemberFunction = scope->isClassOrStruct() && !isStatic(); - for (std::multimap::const_iterator it = scope->functionMap.find(tokenDef->str()); + for (auto it = utils::as_const(scope->functionMap).find(tokenDef->str()); it != scope->functionMap.end() && it->first == tokenDef->str(); ++it) { const Function* func = it->second; @@ -4648,8 +4641,8 @@ const Function * Function::getOverriddenFunctionRecursive(const ::Type* baseType const Scope *parent = derivedFromType->classScope; // check if function defined in base class - auto range = parent->functionMap.equal_range(tokenDef->str()); - for (std::multimap::const_iterator it = range.first; it != range.second; ++it) { + auto range = utils::as_const(parent->functionMap).equal_range(tokenDef->str()); + for (auto it = range.first; it != range.second; ++it) { const Function * func = it->second; if (func->isImplicitlyVirtual()) { // Base is virtual and of same name const Token *temp1 = func->tokenDef->previous(); @@ -5279,7 +5272,7 @@ const Enumerator * SymbolDatabase::findEnumerator(const Token * tok, std::set::const_iterator it = scope->nestedList.cbegin(), end = scope->nestedList.cend(); it != end; ++it) { + for (auto it = scope->nestedList.cbegin(), end = scope->nestedList.cend(); it != end; ++it) { enumerator = (*it)->findEnumerator(tokStr); if (enumerator && !(enumerator->scope && enumerator->scope->enumClass)) @@ -5318,7 +5311,7 @@ const Enumerator * SymbolDatabase::findEnumerator(const Token * tok, std::setvariable()->scope(); } - for (std::vector::const_iterator s = scope->nestedList.cbegin(); s != scope->nestedList.cend(); ++s) { + for (auto s = scope->nestedList.cbegin(); s != scope->nestedList.cend(); ++s) { enumerator = (*s)->findEnumerator(tokStr); if (enumerator && !(enumerator->scope && enumerator->scope->enumClass)) @@ -5351,7 +5344,7 @@ const Enumerator * SymbolDatabase::findEnumerator(const Token * tok, std::setscope && enumerator->scope->enumClass)) return enumerator; - for (std::vector::const_iterator s = scope->nestedList.cbegin(); s != scope->nestedList.cend(); ++s) { + for (auto s = scope->nestedList.cbegin(); s != scope->nestedList.cend(); ++s) { enumerator = (*s)->findEnumerator(tokStr); if (enumerator && !(enumerator->scope && enumerator->scope->enumClass)) @@ -5556,8 +5549,8 @@ void Scope::findFunctionInBase(const std::string & name, nonneg int args, std::v if (base->classScope == this) // Ticket #5120, #5125: Recursive class; tok should have been found already continue; - auto range = base->classScope->functionMap.equal_range(name); - for (std::multimap::const_iterator it = range.first; it != range.second; ++it) { + auto range = utils::as_const(base->classScope->functionMap).equal_range(name); + for (auto it = range.first; it != range.second; ++it) { const Function *func = it->second; if ((func->isVariadic() && args >= (func->argCount() - 1)) || (args == func->argCount() || (args < func->argCount() && args >= func->minArgCount()))) { @@ -5716,8 +5709,8 @@ const Function* Scope::findFunction(const Token *tok, bool requireConst, Referen const std::size_t args = arguments.size(); auto addMatchingFunctions = [&](const Scope *scope) { - auto range = scope->functionMap.equal_range(tok->str()); - for (std::multimap::const_iterator it = range.first; it != range.second; ++it) { + auto range = utils::as_const(scope->functionMap).equal_range(tok->str()); + for (auto it = range.first; it != range.second; ++it) { const Function *func = it->second; if (ref == Reference::LValue && func->hasRvalRefQualifier()) continue; @@ -6369,7 +6362,7 @@ const Type* SymbolDatabase::findType(const Token *startTok, const Scope *startSc // check using namespaces while (startScope) { - for (std::vector::const_iterator it = startScope->usingList.cbegin(); + for (auto it = startScope->usingList.cbegin(); it != startScope->usingList.cend(); ++it) { tok = startTok; scope = it->scope; @@ -6486,8 +6479,8 @@ Function * SymbolDatabase::findFunctionInScope(const Token *func, const Scope *n const Function * function = nullptr; const bool destructor = func->strAt(-1) == "~"; - auto range = ns->functionMap.equal_range(func->str()); - for (std::multimap::const_iterator it = range.first; it != range.second; ++it) { + auto range = utils::as_const(ns->functionMap).equal_range(func->str()); + for (auto it = range.first; it != range.second; ++it) { if (it->second->argsMatch(ns, it->second->argDef, func->next(), path, path_length) && it->second->isDestructor() == destructor) { function = it->second; @@ -7388,18 +7381,17 @@ static const Scope *getClassScope(const Token *tok) static const Function *getOperatorFunction(const Token * const tok) { const std::string functionName("operator" + tok->str()); - std::multimap::const_iterator it; const Scope *classScope = getClassScope(tok->astOperand1()); if (classScope) { - it = classScope->functionMap.find(functionName); + auto it = utils::as_const(classScope->functionMap).find(functionName); if (it != classScope->functionMap.end()) return it->second; } classScope = getClassScope(tok->astOperand2()); if (classScope) { - it = classScope->functionMap.find(functionName); + auto it = utils::as_const(classScope->functionMap).find(functionName); if (it != classScope->functionMap.end()) return it->second; } diff --git a/lib/templatesimplifier.cpp b/lib/templatesimplifier.cpp index f3bdb05cc14..a3db163aa9e 100644 --- a/lib/templatesimplifier.cpp +++ b/lib/templatesimplifier.cpp @@ -716,9 +716,9 @@ void TemplateSimplifier::addInstantiation(Token *token, const std::string &scope TokenAndName instantiation(token, scope); // check if instantiation already exists before adding it - const std::list::const_iterator it = std::find(mTemplateInstantiations.cbegin(), - mTemplateInstantiations.cend(), - instantiation); + const auto it = std::find(mTemplateInstantiations.cbegin(), + mTemplateInstantiations.cend(), + instantiation); if (it == mTemplateInstantiations.cend()) mTemplateInstantiations.emplace_back(std::move(instantiation)); @@ -984,7 +984,7 @@ void TemplateSimplifier::getTemplateInstantiations() while (true) { const std::string fullName = scopeName + (scopeName.empty()?"":" :: ") + qualification + (qualification.empty()?"":" :: ") + tok->str(); - const std::list::const_iterator it = std::find_if(mTemplateDeclarations.cbegin(), mTemplateDeclarations.cend(), FindFullName(fullName)); + const auto it = std::find_if(mTemplateDeclarations.cbegin(), mTemplateDeclarations.cend(), FindFullName(fullName)); if (it != mTemplateDeclarations.end()) { // full name matches addInstantiation(tok, it->scope()); @@ -996,7 +996,7 @@ void TemplateSimplifier::getTemplateInstantiations() std::string fullNameSpace = scopeName + (scopeName.empty()?"":" :: ") + nameSpace + (qualification.empty()?"":" :: ") + qualification; std::string newFullName = fullNameSpace + " :: " + tok->str(); - const std::list::const_iterator it1 = std::find_if(mTemplateDeclarations.cbegin(), mTemplateDeclarations.cend(), FindFullName(std::move(newFullName))); + const auto it1 = std::find_if(mTemplateDeclarations.cbegin(), mTemplateDeclarations.cend(), FindFullName(std::move(newFullName))); if (it1 != mTemplateDeclarations.end()) { // insert using namespace into token stream std::string::size_type offset = 0; @@ -1165,7 +1165,7 @@ void TemplateSimplifier::useDefaultArgumentValues(TokenAndName &declaration) if (tok && tok->str() == ">") { tok = tok->previous(); - std::list::const_iterator it = eq.cbegin(); + auto it = eq.cbegin(); for (std::size_t i = (templatepar - eq.size()); it != eq.cend() && i < usedpar; ++i) ++it; int count = 0; @@ -1236,9 +1236,9 @@ void TemplateSimplifier::useDefaultArgumentValues(TokenAndName &declaration) if (Token::Match(tok2, "(|{|[")) tok2 = tok2->link(); else if (Token::Match(tok2, "%type% <") && (tok2->strAt(2) == ">" || templateParameters(tok2->next()))) { - const std::list::const_iterator ti = std::find_if(mTemplateInstantiations.cbegin(), - mTemplateInstantiations.cend(), - FindToken(tok2)); + const auto ti = std::find_if(mTemplateInstantiations.cbegin(), + mTemplateInstantiations.cend(), + FindToken(tok2)); if (ti != mTemplateInstantiations.end()) mTemplateInstantiations.erase(ti); ++indentlevel; @@ -1255,9 +1255,9 @@ void TemplateSimplifier::useDefaultArgumentValues(TokenAndName &declaration) continue; // don't strip args from uninstantiated templates - const std::list::const_iterator ti2 = std::find_if(mTemplateInstantiations.cbegin(), - mTemplateInstantiations.cend(), - FindName(declaration.name())); + const auto ti2 = std::find_if(mTemplateInstantiations.cbegin(), + mTemplateInstantiations.cend(), + FindName(declaration.name())); if (ti2 == mTemplateInstantiations.end()) continue; @@ -1272,7 +1272,7 @@ void TemplateSimplifier::useDefaultArgumentValues(TokenAndName &declaration) void TemplateSimplifier::simplifyTemplateAliases() { - for (std::list::const_iterator it1 = mTemplateDeclarations.cbegin(); it1 != mTemplateDeclarations.cend();) { + for (auto it1 = mTemplateDeclarations.cbegin(); it1 != mTemplateDeclarations.cend();) { const TokenAndName &aliasDeclaration = *it1; if (!aliasDeclaration.isAlias()) { @@ -1289,7 +1289,7 @@ void TemplateSimplifier::simplifyTemplateAliases() // Look for alias usages.. bool found = false; - for (std::list::const_iterator it2 = mTemplateInstantiations.cbegin(); it2 != mTemplateInstantiations.cend();) { + for (auto it2 = mTemplateInstantiations.cbegin(); it2 != mTemplateInstantiations.cend();) { const TokenAndName &aliasUsage = *it2; if (!aliasUsage.token() || aliasUsage.fullName() != aliasDeclaration.fullName()) { ++it2; @@ -1361,9 +1361,9 @@ void TemplateSimplifier::simplifyTemplateAliases() if (aliasParameterNames.find(tok2->str()) == aliasParameterNames.end()) { // Create template instance.. if (Token::Match(tok1, "%name% <")) { - const std::list::const_iterator it = std::find_if(mTemplateInstantiations.cbegin(), - mTemplateInstantiations.cend(), - FindToken(tok1)); + const auto it = std::find_if(mTemplateInstantiations.cbegin(), + mTemplateInstantiations.cend(), + FindToken(tok1)); if (it != mTemplateInstantiations.cend()) addInstantiation(tok2, it->scope()); } @@ -1660,9 +1660,9 @@ void TemplateSimplifier::expandTemplate( end = temp2->linkAt(1)->next(); } else { if (it != mTemplateForwardDeclarationsMap.end()) { - const std::list::const_iterator it1 = std::find_if(mTemplateForwardDeclarations.cbegin(), - mTemplateForwardDeclarations.cend(), - FindToken(it->second)); + const auto it1 = std::find_if(mTemplateForwardDeclarations.cbegin(), + mTemplateForwardDeclarations.cend(), + FindToken(it->second)); if (it1 != mTemplateForwardDeclarations.cend()) mMemberFunctionsToDelete.push_back(*it1); } @@ -1849,7 +1849,7 @@ void TemplateSimplifier::expandTemplate( if (Token::Match(start, "[|{|(")) { links[start->link()] = dst->previous(); } else if (Token::Match(start, "]|}|)")) { - std::map::const_iterator link = links.find(start); + const auto link = utils::as_const(links).find(start); // make sure link is valid if (link != links.cend()) { Token::createMutualLinks(link->second, dst->previous()); @@ -2044,9 +2044,9 @@ void TemplateSimplifier::expandTemplate( while (tok3 && tok3->str() != "::") tok3 = tok3->next(); - const std::list::const_iterator it = std::find_if(mTemplateDeclarations.cbegin(), - mTemplateDeclarations.cend(), - FindToken(startOfTemplateDeclaration)); + const auto it = std::find_if(mTemplateDeclarations.cbegin(), + mTemplateDeclarations.cend(), + FindToken(startOfTemplateDeclaration)); if (it != mTemplateDeclarations.cend()) mMemberFunctionsToDelete.push_back(*it); } @@ -2948,7 +2948,7 @@ bool TemplateSimplifier::matchSpecialization( const std::list & specializations) { // Is there a matching specialization? - for (std::list::const_iterator it = specializations.cbegin(); it != specializations.cend(); ++it) { + for (auto it = specializations.cbegin(); it != specializations.cend(); ++it) { if (!Token::Match(*it, "%name% <")) continue; const Token *startToken = (*it); @@ -3308,11 +3308,11 @@ bool TemplateSimplifier::simplifyTemplateInstantiations( static bool matchTemplateParameters(const Token *nameTok, const std::list &strings) { - std::list::const_iterator it = strings.cbegin(); const Token *tok = nameTok->tokAt(2); const Token *end = nameTok->next()->findClosingBracket(); if (!end) return false; + auto it = strings.cbegin(); while (tok && tok != end && it != strings.cend()) { if (tok->isUnsigned()) { if (*it != "unsigned") @@ -3389,10 +3389,9 @@ void TemplateSimplifier::replaceTemplateUsage( // Foo < int > => Foo for (const Token *tok = nameTok1->next(); tok != tok2; tok = tok->next()) { if (tok->isName() && tok->templateSimplifierPointers() && !tok->templateSimplifierPointers()->empty()) { - std::list::const_iterator ti; - for (ti = mTemplateInstantiations.cbegin(); ti != mTemplateInstantiations.cend();) { + for (auto ti = mTemplateInstantiations.cbegin(); ti != mTemplateInstantiations.cend();) { if (ti->token() == tok) { - ti = mTemplateInstantiations.erase(ti); + mTemplateInstantiations.erase(ti); break; } ++ti; @@ -3889,13 +3888,13 @@ void TemplateSimplifier::simplifyTemplates(const std::time_t maxtime) std::set expandedtemplates; - for (std::list::const_reverse_iterator iter1 = mTemplateDeclarations.crbegin(); iter1 != mTemplateDeclarations.crend(); ++iter1) { + for (auto iter1 = mTemplateDeclarations.crbegin(); iter1 != mTemplateDeclarations.crend(); ++iter1) { if (iter1->isAlias() || iter1->isFriend()) continue; // get specializations.. std::list specializations; - for (std::list::const_iterator iter2 = mTemplateDeclarations.cbegin(); iter2 != mTemplateDeclarations.cend(); ++iter2) { + for (auto iter2 = mTemplateDeclarations.cbegin(); iter2 != mTemplateDeclarations.cend(); ++iter2) { if (iter2->isAlias() || iter2->isFriend()) continue; @@ -3914,7 +3913,7 @@ void TemplateSimplifier::simplifyTemplates(const std::time_t maxtime) } } - for (std::list::const_iterator it = mInstantiatedTemplates.cbegin(); it != mInstantiatedTemplates.cend(); ++it) { + for (auto it = mInstantiatedTemplates.cbegin(); it != mInstantiatedTemplates.cend(); ++it) { auto decl = std::find_if(mTemplateDeclarations.begin(), mTemplateDeclarations.end(), [&it](const TokenAndName& decl) { return decl.token() == it->token(); }); @@ -3937,17 +3936,17 @@ void TemplateSimplifier::simplifyTemplates(const std::time_t maxtime) // remove out of line member functions while (!mMemberFunctionsToDelete.empty()) { - const std::list::iterator it = std::find_if(mTemplateDeclarations.begin(), - mTemplateDeclarations.end(), - FindToken(mMemberFunctionsToDelete.cbegin()->token())); + const auto it = std::find_if(mTemplateDeclarations.begin(), + mTemplateDeclarations.end(), + FindToken(mMemberFunctionsToDelete.cbegin()->token())); // multiple functions can share the same declaration so make sure it hasn't already been deleted if (it != mTemplateDeclarations.end()) { removeTemplate(it->token()); mTemplateDeclarations.erase(it); } else { - const std::list::iterator it1 = std::find_if(mTemplateForwardDeclarations.begin(), - mTemplateForwardDeclarations.end(), - FindToken(mMemberFunctionsToDelete.cbegin()->token())); + const auto it1 = std::find_if(mTemplateForwardDeclarations.begin(), + mTemplateForwardDeclarations.end(), + FindToken(mMemberFunctionsToDelete.cbegin()->token())); // multiple functions can share the same declaration so make sure it hasn't already been deleted if (it1 != mTemplateForwardDeclarations.end()) { removeTemplate(it1->token()); diff --git a/lib/timer.cpp b/lib/timer.cpp index 78a176e9e5f..bd148e6403e 100644 --- a/lib/timer.cpp +++ b/lib/timer.cpp @@ -60,7 +60,7 @@ void TimerResults::showResults(SHOWTIME_MODES mode) const std::cout << std::endl; size_t ordinal = 1; // maybe it would be nice to have an ordinal in output later! - for (std::vector::const_iterator iter=data.cbegin(); iter!=data.cend(); ++iter) { + for (auto iter=data.cbegin(); iter!=data.cend(); ++iter) { const double sec = iter->second.seconds(); const double secAverage = sec / (double)(iter->second.mNumberOfResults); bool hasParent = false; diff --git a/lib/token.cpp b/lib/token.cpp index fb600a8f28e..fd1d9f78ddc 100644 --- a/lib/token.cpp +++ b/lib/token.cpp @@ -1909,7 +1909,7 @@ const ValueFlow::Value * Token::getInvalidValue(const Token *ftok, nonneg int ar if (!mImpl->mValues) return nullptr; const ValueFlow::Value *ret = nullptr; - for (std::list::const_iterator it = mImpl->mValues->begin(); it != mImpl->mValues->end(); ++it) { + for (auto it = mImpl->mValues->begin(); it != mImpl->mValues->end(); ++it) { if (it->isImpossible()) continue; if ((it->isIntValue() && !settings.library.isIntArgValid(ftok, argnr, it->intvalue)) || @@ -1935,7 +1935,7 @@ const Token *Token::getValueTokenMinStrSize(const Settings &settings, MathLib::b return nullptr; const Token *ret = nullptr; int minsize = INT_MAX; - for (std::list::const_iterator it = mImpl->mValues->begin(); it != mImpl->mValues->end(); ++it) { + for (auto it = mImpl->mValues->begin(); it != mImpl->mValues->end(); ++it) { if (it->isTokValue() && it->tokvalue && it->tokvalue->tokType() == Token::eString) { const int size = getStrSize(it->tokvalue, settings); if (!ret || size < minsize) { @@ -1955,7 +1955,7 @@ const Token *Token::getValueTokenMaxStrLength() const return nullptr; const Token *ret = nullptr; int maxlength = 0; - for (std::list::const_iterator it = mImpl->mValues->begin(); it != mImpl->mValues->end(); ++it) { + for (auto it = mImpl->mValues->cbegin(); it != mImpl->mValues->end(); ++it) { if (it->isTokValue() && it->tokvalue && it->tokvalue->tokType() == Token::eString) { const int length = getStrLength(it->tokvalue); if (!ret || length > maxlength) { @@ -2198,8 +2198,8 @@ bool Token::addValue(const ValueFlow::Value &value) return false; // if value already exists, don't add it again - std::list::iterator it; - for (it = mImpl->mValues->begin(); it != mImpl->mValues->end(); ++it) { + auto it = mImpl->mValues->begin(); + for (; it != mImpl->mValues->end(); ++it) { // different types => continue if (it->valueType != value.valueType) continue; diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 168f049e6d7..6b5e94973e4 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -191,7 +191,7 @@ Tokenizer::~Tokenizer() nonneg int Tokenizer::sizeOfType(const std::string& type) const { - const std::map::const_iterator it = mTypeSize.find(type); + const auto it = utils::as_const(mTypeSize).find(type); if (it == mTypeSize.end()) { const Library::PodType* podtype = mSettings.library.podtype(type); if (!podtype) @@ -210,7 +210,7 @@ nonneg int Tokenizer::sizeOfType(const Token *type) const if (type->tokType() == Token::eString) return Token::getStrLength(type) + 1U; - const std::map::const_iterator it = mTypeSize.find(type->str()); + const auto it = utils::as_const(mTypeSize).find(type->str()); if (it == mTypeSize.end()) { const Library::PodType* podtype = mSettings.library.podtype(type->str()); if (!podtype) @@ -2052,7 +2052,7 @@ void Tokenizer::simplifyTypedefCpp() if (idx != std::string::npos) removed1.resize(idx); if (removed1 == classPath && !removed1.empty()) { - for (std::vector::const_reverse_iterator it = spaceInfo.crbegin(); it != spaceInfo.crend(); ++it) { + for (auto it = spaceInfo.crbegin(); it != spaceInfo.crend(); ++it) { if (it->recordTypes.find(start->str()) != it->recordTypes.end()) { std::string::size_type spaceIdx = 0; std::string::size_type startIdx = 0; @@ -3382,7 +3382,7 @@ bool Tokenizer::simplifyUsing() } // delete all used type alias definitions - for (std::list::reverse_iterator it = usingList.rbegin(); it != usingList.rend(); ++it) { + for (auto it = usingList.rbegin(); it != usingList.rend(); ++it) { Token *usingStart = it->startTok; Token *usingEnd = it->endTok; if (usingStart->previous()) { @@ -4199,7 +4199,7 @@ void VariableMap::addVariable(const std::string& varname, bool globalNamespace) mVariableId_global[varname] = mVariableId[varname]; return; } - std::unordered_map::iterator it = mVariableId.find(varname); + const auto it = mVariableId.find(varname); if (it == mVariableId.end()) { mScopeInfo.top().emplace_back(varname, 0); mVariableId[varname] = ++mVarId; @@ -4372,7 +4372,7 @@ static void setVarIdStructMembers(Token *&tok1, tok = tok->link(); if (Token::Match(tok->previous(), "[,{] . %name% =|{")) { tok = tok->next(); - const std::map::const_iterator it = members.find(tok->str()); + const auto it = utils::as_const(members).find(tok->str()); if (it == members.cend()) { members[tok->str()] = ++varId; tok->varId(varId); @@ -4406,7 +4406,7 @@ static void setVarIdStructMembers(Token *&tok1, break; std::map& members = structMembers[struct_varid]; - const std::map::const_iterator it = members.find(tok->str()); + const auto it = utils::as_const(members).find(tok->str()); if (it == members.cend()) { members[tok->str()] = ++varId; tok->varId(varId); @@ -4462,7 +4462,7 @@ static bool setVarIdClassDeclaration(Token* const startToken, --indentlevel; inEnum = false; } else if (initList && indentlevel == 0 && Token::Match(tok->previous(), "[,:] %name% [({]")) { - const std::unordered_map::const_iterator it = variableMap.map(false).find(tok->str()); + const auto it = variableMap.map(false).find(tok->str()); if (it != variableMap.map(false).end()) { tok->varId(it->second); } @@ -4480,7 +4480,7 @@ static bool setVarIdClassDeclaration(Token* const startToken, } if (!inEnum) { - const std::unordered_map::const_iterator it = variableMap.map(false).find(tok->str()); + const auto it = variableMap.map(false).find(tok->str()); if (it != variableMap.map(false).end()) { tok->varId(it->second); setVarIdStructMembers(tok, structMembers, variableMap.getVarId()); @@ -4518,7 +4518,7 @@ void Tokenizer::setVarIdClassFunction(const std::string &classname, if (Token::Match(tok2, "%name% ::")) continue; - const std::map::const_iterator it = varlist.find(tok2->str()); + const auto it = utils::as_const(varlist).find(tok2->str()); if (it != varlist.end()) { tok2->varId(it->second); setVarIdStructMembers(tok2, structMembers, varId_); @@ -4832,7 +4832,7 @@ void Tokenizer::setVarIdPass1() while (tok != end) { if (tok->isName() && !(Token::simpleMatch(tok->next(), "<") && Token::Match(tok->tokAt(-1), ":: %name%"))) { - const std::unordered_map::const_iterator it = variableMap.map(false).find(tok->str()); + const auto it = variableMap.map(false).find(tok->str()); if (it != variableMap.map(false).end()) tok->varId(it->second); } @@ -4900,7 +4900,7 @@ void Tokenizer::setVarIdPass1() if (tok->varId() == 0 && (!scopeStack.top().isEnum || !(Token::Match(tok->previous(), "{|,") && Token::Match(tok->next(), ",|=|}"))) && !Token::simpleMatch(tok->next(), ": ;") && !(tok->tokAt(-1) && Token::Match(tok->tokAt(-2), "{|, ."))) { - const std::unordered_map::const_iterator it = variableMap.map(globalNamespace).find(tok->str()); + const auto it = variableMap.map(globalNamespace).find(tok->str()); if (it != variableMap.map(globalNamespace).end()) { tok->varId(it->second); setVarIdStructMembers(tok, structMembers, variableMap.getVarId()); @@ -4941,10 +4941,10 @@ static std::string getScopeName(const std::list &scopeInfo) static Token * matchMemberName(const std::list &scope, const Token *nsToken, Token *memberToken, const std::list &scopeInfo) { - std::list::const_iterator scopeIt = scopeInfo.cbegin(); + auto scopeIt = scopeInfo.cbegin(); // Current scope.. - for (std::list::const_iterator it = scope.cbegin(); it != scope.cend(); ++it) { + for (auto it = scope.cbegin(); it != scope.cend(); ++it) { if (scopeIt == scopeInfo.cend() || scopeIt->name != *it) return nullptr; ++scopeIt; @@ -5068,7 +5068,7 @@ void Tokenizer::setVarIdPass2() } if (tok->str() == "}") { - const std::map::const_iterator it = endOfScope.find(tok); + const auto it = utils::as_const(endOfScope).find(tok); if (it != endOfScope.cend()) scope.remove(it->second); } @@ -5268,7 +5268,7 @@ void Tokenizer::setVarIdPass2() break; // set varid - const std::map::const_iterator varpos = thisClassVars.find(tok3->str()); + const auto varpos = utils::as_const(thisClassVars).find(tok3->str()); if (varpos != thisClassVars.end()) tok3->varId(varpos->second); @@ -7621,7 +7621,7 @@ bool Tokenizer::simplifyCAlternativeTokens() if (!tok->isName()) continue; - const std::unordered_map::const_iterator cOpIt = cAlternativeTokens.find(tok->str()); + const auto cOpIt = utils::as_const(cAlternativeTokens).find(tok->str()); if (cOpIt != cAlternativeTokens.end()) { alt.push_back(tok); @@ -7663,7 +7663,7 @@ bool Tokenizer::simplifyCAlternativeTokens() return false; for (Token *tok: alt) { - const std::unordered_map::const_iterator cOpIt = cAlternativeTokens.find(tok->str()); + const auto cOpIt = utils::as_const(cAlternativeTokens).find(tok->str()); if (cOpIt != cAlternativeTokens.end()) tok->str(cOpIt->second); else if (tok->str() == "not") @@ -10113,7 +10113,7 @@ void Tokenizer::simplifyMicrosoftStringFunctions() if (tok->strAt(1) != "(") continue; - const std::map::const_iterator match = apis.find(tok->str()); + const auto match = utils::as_const(apis).find(tok->str()); if (match!=apis.end()) { tok->str(ansi ? match->second.mbcs : match->second.unicode); tok->originalName(match->first); diff --git a/lib/utils.cpp b/lib/utils.cpp index 746e4f44f8d..0288dffe25a 100644 --- a/lib/utils.cpp +++ b/lib/utils.cpp @@ -41,9 +41,9 @@ int caseInsensitiveStringCompare(const std::string &lhs, const std::string &rhs) bool isValidGlobPattern(const std::string& pattern) { - for (std::string::const_iterator i = pattern.cbegin(); i != pattern.cend(); ++i) { + for (auto i = pattern.cbegin(); i != pattern.cend(); ++i) { if (*i == '*' || *i == '?') { - const std::string::const_iterator j = i + 1; + const auto j = i + 1; if (j != pattern.cend() && (*j == '*' || *j == '?')) { return false; } diff --git a/lib/utils.h b/lib/utils.h index 3c9c78bca28..563f8fd57b0 100644 --- a/lib/utils.h +++ b/lib/utils.h @@ -409,6 +409,7 @@ namespace utils { template constexpr typename std::add_const::type & as_const(T& t) noexcept { + // NOLINTNEXTLINE(bugprone-return-const-ref-from-parameter) - potential false positive return t; } } diff --git a/lib/valueflow.cpp b/lib/valueflow.cpp index 21fd4b62879..fcb6da080d4 100644 --- a/lib/valueflow.cpp +++ b/lib/valueflow.cpp @@ -599,7 +599,7 @@ static void valueFlowArray(TokenList& tokenlist, const Settings& settings) for (Token* tok = tokenlist.front(); tok; tok = tok->next()) { if (tok->varId() > 0) { // array - const std::map::const_iterator it = constantArrays.find(tok->varId()); + const auto it = utils::as_const(constantArrays).find(tok->varId()); if (it != constantArrays.end()) { ValueFlow::Value value; value.valueType = ValueFlow::Value::ValueType::TOK; @@ -672,7 +672,7 @@ static void valueFlowArrayBool(TokenList& tokenlist, const Settings& settings) continue; const Variable* var = nullptr; bool known = false; - const std::list::const_iterator val = + const auto val = std::find_if(tok->values().cbegin(), tok->values().cend(), std::mem_fn(&ValueFlow::Value::isTokValue)); if (val == tok->values().end()) { var = tok->variable(); @@ -1185,7 +1185,7 @@ static void valueFlowGlobalConstVar(TokenList& tokenList, const Settings& settin for (Token* tok = tokenList.front(); tok; tok = tok->next()) { if (!tok->variable()) continue; - const std::map::const_iterator var = vars.find(tok->variable()); + const auto var = utils::as_const(vars).find(tok->variable()); if (var == vars.end()) continue; setTokenValue(tok, var->second, settings); @@ -1227,7 +1227,7 @@ static void valueFlowGlobalStaticVar(TokenList& tokenList, const Settings& setti for (Token* tok = tokenList.front(); tok; tok = tok->next()) { if (!tok->variable()) continue; - const std::map::const_iterator var = vars.find(tok->variable()); + const auto var = utils::as_const(vars).find(tok->variable()); if (var == vars.end()) continue; setTokenValue(tok, var->second, settings); diff --git a/oss-fuzz/Makefile b/oss-fuzz/Makefile index df1fabac918..ef3ba324bdb 100644 --- a/oss-fuzz/Makefile +++ b/oss-fuzz/Makefile @@ -195,7 +195,7 @@ $(libcppdir)/checkers.o: ../lib/checkers.cpp ../lib/checkers.h ../lib/config.h $(libcppdir)/checkersidmapping.o: ../lib/checkersidmapping.cpp ../lib/checkers.h ../lib/config.h $(CXX) ${LIB_FUZZING_ENGINE} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/checkersidmapping.cpp -$(libcppdir)/checkersreport.o: ../lib/checkersreport.cpp ../lib/addoninfo.h ../lib/checkers.h ../lib/checkersreport.h ../lib/config.h ../lib/errortypes.h ../lib/library.h ../lib/mathlib.h ../lib/platform.h ../lib/settings.h ../lib/standards.h ../lib/suppressions.h +$(libcppdir)/checkersreport.o: ../lib/checkersreport.cpp ../lib/addoninfo.h ../lib/checkers.h ../lib/checkersreport.h ../lib/config.h ../lib/errortypes.h ../lib/library.h ../lib/mathlib.h ../lib/platform.h ../lib/settings.h ../lib/standards.h ../lib/suppressions.h ../lib/utils.h $(CXX) ${LIB_FUZZING_ENGINE} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/checkersreport.cpp $(libcppdir)/checkexceptionsafety.o: ../lib/checkexceptionsafety.cpp ../lib/addoninfo.h ../lib/astutils.h ../lib/check.h ../lib/checkexceptionsafety.h ../lib/config.h ../lib/errortypes.h ../lib/library.h ../lib/mathlib.h ../lib/platform.h ../lib/settings.h ../lib/smallvector.h ../lib/sourcelocation.h ../lib/standards.h ../lib/suppressions.h ../lib/symboldatabase.h ../lib/templatesimplifier.h ../lib/token.h ../lib/tokenize.h ../lib/tokenlist.h ../lib/utils.h ../lib/vfvalue.h @@ -309,7 +309,7 @@ $(libcppdir)/programmemory.o: ../lib/programmemory.cpp ../lib/addoninfo.h ../lib $(libcppdir)/reverseanalyzer.o: ../lib/reverseanalyzer.cpp ../lib/addoninfo.h ../lib/analyzer.h ../lib/astutils.h ../lib/config.h ../lib/errortypes.h ../lib/forwardanalyzer.h ../lib/library.h ../lib/mathlib.h ../lib/platform.h ../lib/reverseanalyzer.h ../lib/settings.h ../lib/smallvector.h ../lib/sourcelocation.h ../lib/standards.h ../lib/suppressions.h ../lib/symboldatabase.h ../lib/templatesimplifier.h ../lib/token.h ../lib/utils.h ../lib/valueptr.h ../lib/vfvalue.h $(CXX) ${LIB_FUZZING_ENGINE} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/reverseanalyzer.cpp -$(libcppdir)/settings.o: ../lib/settings.cpp ../externals/picojson/picojson.h ../lib/addoninfo.h ../lib/config.h ../lib/errortypes.h ../lib/json.h ../lib/library.h ../lib/mathlib.h ../lib/path.h ../lib/platform.h ../lib/settings.h ../lib/standards.h ../lib/summaries.h ../lib/suppressions.h ../lib/vfvalue.h +$(libcppdir)/settings.o: ../lib/settings.cpp ../externals/picojson/picojson.h ../lib/addoninfo.h ../lib/config.h ../lib/errortypes.h ../lib/json.h ../lib/library.h ../lib/mathlib.h ../lib/path.h ../lib/platform.h ../lib/settings.h ../lib/standards.h ../lib/summaries.h ../lib/suppressions.h ../lib/utils.h ../lib/vfvalue.h $(CXX) ${LIB_FUZZING_ENGINE} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/settings.cpp $(libcppdir)/standards.o: ../lib/standards.cpp ../externals/simplecpp/simplecpp.h ../lib/config.h ../lib/standards.h ../lib/utils.h diff --git a/test/fixture.cpp b/test/fixture.cpp index aaa891917d4..2c56c737841 100644 --- a/test/fixture.cpp +++ b/test/fixture.cpp @@ -141,7 +141,7 @@ static std::string writestr(const std::string &str, bool gccStyle = false) std::ostringstream ostr; if (gccStyle) ostr << '\"'; - for (std::string::const_iterator i = str.cbegin(); i != str.cend(); ++i) { + for (auto i = str.cbegin(); i != str.cend(); ++i) { if (*i == '\n') { ostr << "\\n"; if ((i+1) != str.end() && !gccStyle) diff --git a/test/options.cpp b/test/options.cpp index c3667fcc1ef..efebe3a9cbc 100644 --- a/test/options.cpp +++ b/test/options.cpp @@ -24,7 +24,7 @@ options::options(int argc, const char* const argv[]) ,mDryRun(mWhichTests.count("-d") != 0) ,mExe(argv[0]) { - for (std::set::const_iterator it = mWhichTests.cbegin(); it != mWhichTests.cend();) { + for (auto it = mWhichTests.cbegin(); it != mWhichTests.cend();) { if (!it->empty() && (((*it)[0] == '-') || (it->find("::") != std::string::npos && mWhichTests.count(it->substr(0, it->find("::")))))) it = mWhichTests.erase(it); else diff --git a/test/testcheck.cpp b/test/testcheck.cpp index e05c5e8650f..2316df9301c 100644 --- a/test/testcheck.cpp +++ b/test/testcheck.cpp @@ -33,8 +33,8 @@ class TestCheck : public TestFixture { } void instancesSorted() const { - for (std::list::const_iterator i = Check::instances().cbegin(); i != Check::instances().cend(); ++i) { - std::list::const_iterator j = i; + for (auto i = Check::instances().cbegin(); i != Check::instances().cend(); ++i) { + auto j = i; ++j; if (j != Check::instances().cend()) { ASSERT_EQUALS(true, (*i)->name() < (*j)->name()); @@ -43,7 +43,7 @@ class TestCheck : public TestFixture { } void classInfoFormat() const { - for (std::list::const_iterator i = Check::instances().cbegin(); i != Check::instances().cend(); ++i) { + for (auto i = Check::instances().cbegin(); i != Check::instances().cend(); ++i) { const std::string info = (*i)->classInfo(); if (!info.empty()) { ASSERT('\n' != info[0]); // No \n in the beginning diff --git a/test/testcppcheck.cpp b/test/testcppcheck.cpp index 3377c3d31e8..f71b09aca0c 100644 --- a/test/testcppcheck.cpp +++ b/test/testcppcheck.cpp @@ -70,7 +70,7 @@ class TestCppcheck : public TestFixture { // Check if there are duplicate error ids in errorLogger.id std::string duplicate; - for (std::list::const_iterator it = errorLogger.ids.cbegin(); + for (auto it = errorLogger.ids.cbegin(); it != errorLogger.ids.cend(); ++it) { if (std::find(errorLogger.ids.cbegin(), it, *it) != it) { diff --git a/test/testprocessexecutor.cpp b/test/testprocessexecutor.cpp index 1892cd4252f..281a997cc32 100644 --- a/test/testprocessexecutor.cpp +++ b/test/testprocessexecutor.cpp @@ -108,7 +108,7 @@ class TestProcessExecutorBase : public TestFixture { std::vector> scopedfiles; scopedfiles.reserve(filelist.size()); - for (std::list::const_iterator i = filelist.cbegin(); i != filelist.cend(); ++i) + for (auto i = filelist.cbegin(); i != filelist.cend(); ++i) scopedfiles.emplace_back(new ScopedFile(i->path(), data)); // clear files list so only fileSettings are used diff --git a/test/testsingleexecutor.cpp b/test/testsingleexecutor.cpp index 1e9338fe1e7..981eecea339 100644 --- a/test/testsingleexecutor.cpp +++ b/test/testsingleexecutor.cpp @@ -115,7 +115,7 @@ class TestSingleExecutorBase : public TestFixture { std::vector> scopedfiles; scopedfiles.reserve(filelist.size()); - for (std::list::const_iterator i = filelist.cbegin(); i != filelist.cend(); ++i) + for (auto i = filelist.cbegin(); i != filelist.cend(); ++i) scopedfiles.emplace_back(new ScopedFile(i->path(), data)); // clear files list so only fileSettings are used diff --git a/test/testsuppressions.cpp b/test/testsuppressions.cpp index 1a24ce57566..76557a59ee8 100644 --- a/test/testsuppressions.cpp +++ b/test/testsuppressions.cpp @@ -229,7 +229,7 @@ class TestSuppressions : public TestFixture { std::list fileSettings; std::list filelist; - for (std::map::const_iterator i = f.cbegin(); i != f.cend(); ++i) { + for (auto i = f.cbegin(); i != f.cend(); ++i) { filelist.emplace_back(i->first, i->second.size()); if (useFS) { fileSettings.emplace_back(i->first, i->second.size()); @@ -250,7 +250,7 @@ class TestSuppressions : public TestFixture { std::vector> scopedfiles; scopedfiles.reserve(filelist.size()); - for (std::map::const_iterator i = f.cbegin(); i != f.cend(); ++i) + for (auto i = f.cbegin(); i != f.cend(); ++i) scopedfiles.emplace_back(new ScopedFile(i->first, i->second)); // clear files list so only fileSettings are used @@ -293,7 +293,7 @@ class TestSuppressions : public TestFixture { std::vector> scopedfiles; scopedfiles.reserve(filelist.size()); - for (std::list::const_iterator i = filelist.cbegin(); i != filelist.cend(); ++i) + for (auto i = filelist.cbegin(); i != filelist.cend(); ++i) scopedfiles.emplace_back(new ScopedFile(i->path(), code)); // clear files list so only fileSettings are used @@ -337,7 +337,7 @@ class TestSuppressions : public TestFixture { std::vector> scopedfiles; scopedfiles.reserve(filelist.size()); - for (std::list::const_iterator i = filelist.cbegin(); i != filelist.cend(); ++i) + for (auto i = filelist.cbegin(); i != filelist.cend(); ++i) scopedfiles.emplace_back(new ScopedFile(i->path(), code)); // clear files list so only fileSettings are used diff --git a/test/testsymboldatabase.cpp b/test/testsymboldatabase.cpp index 6e933fe383e..317c0f6ec23 100644 --- a/test/testsymboldatabase.cpp +++ b/test/testsymboldatabase.cpp @@ -135,9 +135,7 @@ class TestSymbolDatabase : public TestFixture { } static const Scope *findFunctionScopeByToken(const SymbolDatabase * db, const Token *tok) { - std::list::const_iterator scope; - - for (scope = db->scopeList.cbegin(); scope != db->scopeList.cend(); ++scope) { + for (auto scope = db->scopeList.cbegin(); scope != db->scopeList.cend(); ++scope) { if (scope->type == Scope::eFunction) { if (scope->classDef == tok) return &(*scope); @@ -2532,9 +2530,9 @@ class TestSymbolDatabase : public TestFixture { ASSERT(db && db->scopeList.size() == 1); - const std::list::const_iterator it = db->scopeList.cbegin(); + const auto it = db->scopeList.cbegin(); ASSERT(it->varlist.size() == 1); - const std::list::const_iterator var = it->varlist.cbegin(); + const auto var = it->varlist.cbegin(); ASSERT(var->name() == "i"); ASSERT(var->typeStartToken()->str() == "int"); } @@ -2544,10 +2542,10 @@ class TestSymbolDatabase : public TestFixture { ASSERT(db && db->scopeList.size() == 1); - const std::list::const_iterator it = db->scopeList.cbegin(); + const auto it = db->scopeList.cbegin(); ASSERT(it->varlist.size() == 1); - const std::list::const_iterator var = it->varlist.cbegin(); + const auto var = it->varlist.cbegin(); ASSERT(var->name() == "array"); ASSERT(var->typeStartToken()->str() == "int"); } @@ -2557,10 +2555,10 @@ class TestSymbolDatabase : public TestFixture { ASSERT(db && db->scopeList.size() == 1); - const std::list::const_iterator it = db->scopeList.cbegin(); + const auto it = db->scopeList.cbegin(); ASSERT(it->varlist.size() == 1); - const std::list::const_iterator var = it->varlist.cbegin(); + const auto var = it->varlist.cbegin(); ASSERT(var->name() == "array"); ASSERT(var->typeStartToken()->str() == "int"); } diff --git a/test/testthreadexecutor.cpp b/test/testthreadexecutor.cpp index 7e5f85d70fa..43a0fe21d2a 100644 --- a/test/testthreadexecutor.cpp +++ b/test/testthreadexecutor.cpp @@ -109,7 +109,7 @@ class TestThreadExecutorBase : public TestFixture { std::vector> scopedfiles; scopedfiles.reserve(filelist.size()); - for (std::list::const_iterator i = filelist.cbegin(); i != filelist.cend(); ++i) + for (auto i = filelist.cbegin(); i != filelist.cend(); ++i) scopedfiles.emplace_back(new ScopedFile(i->path(), data)); // clear files list so only fileSettings are used diff --git a/test/testtoken.cpp b/test/testtoken.cpp index bbc1c4f20b8..917b89900bf 100644 --- a/test/testtoken.cpp +++ b/test/testtoken.cpp @@ -815,8 +815,7 @@ class TestToken : public TestFixture { std::vector other_ops; append_vector(other_ops, extendedOps); - std::vector::const_iterator other_op, other_ops_end = other_ops.cend(); - for (other_op = other_ops.cbegin(); other_op != other_ops_end; ++other_op) { + for (auto other_op = other_ops.cbegin(); other_op != other_ops.cend(); ++other_op) { ASSERT_EQUALS_MSG(false, MatchCheck(*other_op, "%op%"), "Failing other operator: " + *other_op); } } @@ -837,16 +836,14 @@ class TestToken : public TestFixture { append_vector(other_ops, extendedOps); append_vector(other_ops, assignmentOps); - std::vector::const_iterator other_op, other_ops_end = other_ops.cend(); - for (other_op = other_ops.cbegin(); other_op != other_ops_end; ++other_op) { + for (auto other_op = other_ops.cbegin(); other_op != other_ops.cend(); ++other_op) { ASSERT_EQUALS_MSG(false, MatchCheck(*other_op, "%cop%"), "Failing other operator: " + *other_op); } } void isArithmeticalOp() const { - std::vector::const_iterator test_op, test_ops_end = arithmeticalOps.cend(); - for (test_op = arithmeticalOps.cbegin(); test_op != test_ops_end; ++test_op) { + for (auto test_op = arithmeticalOps.cbegin(); test_op != arithmeticalOps.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); @@ -861,8 +858,7 @@ class TestToken : public TestFixture { append_vector(other_ops, extendedOps); append_vector(other_ops, assignmentOps); - std::vector::const_iterator other_op, other_ops_end = other_ops.cend(); - for (other_op = other_ops.cbegin(); other_op != other_ops_end; ++other_op) { + for (auto other_op = other_ops.cbegin(); other_op != other_ops.cend(); ++other_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*other_op); @@ -878,8 +874,7 @@ class TestToken : public TestFixture { append_vector(test_ops, logicalOps); append_vector(test_ops, assignmentOps); - std::vector::const_iterator test_op, test_ops_end = test_ops.cend(); - for (test_op = test_ops.cbegin(); test_op != test_ops_end; ++test_op) { + for (auto test_op = test_ops.cbegin(); test_op != test_ops.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); @@ -890,8 +885,7 @@ class TestToken : public TestFixture { std::vector other_ops; append_vector(other_ops, extendedOps); - std::vector::const_iterator other_op, other_ops_end = other_ops.cend(); - for (other_op = other_ops.cbegin(); other_op != other_ops_end; ++other_op) { + for (auto other_op = other_ops.cbegin(); other_op != other_ops.cend(); ++other_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*other_op); @@ -906,8 +900,7 @@ class TestToken : public TestFixture { append_vector(test_ops, comparisonOps); append_vector(test_ops, logicalOps); - std::vector::const_iterator test_op, test_ops_end = test_ops.cend(); - for (test_op = test_ops.cbegin(); test_op != test_ops_end; ++test_op) { + for (auto test_op = test_ops.cbegin(); test_op != test_ops.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); @@ -919,8 +912,7 @@ class TestToken : public TestFixture { append_vector(other_ops, extendedOps); append_vector(other_ops, assignmentOps); - std::vector::const_iterator other_op, other_ops_end = other_ops.cend(); - for (other_op = other_ops.cbegin(); other_op != other_ops_end; ++other_op) { + for (auto other_op = other_ops.cbegin(); other_op != other_ops.cend(); ++other_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*other_op); @@ -936,8 +928,7 @@ class TestToken : public TestFixture { append_vector(test_ops, logicalOps); append_vector(test_ops, extendedOps); - std::vector::const_iterator test_op, test_ops_end = test_ops.cend(); - for (test_op = test_ops.cbegin(); test_op != test_ops_end; ++test_op) { + for (auto test_op = test_ops.cbegin(); test_op != test_ops.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); @@ -945,8 +936,7 @@ class TestToken : public TestFixture { } // Negative test against assignment operators - std::vector::const_iterator other_op, other_ops_end = assignmentOps.cend(); - for (other_op = assignmentOps.cbegin(); other_op != other_ops_end; ++other_op) { + for (auto other_op = assignmentOps.cbegin(); other_op != assignmentOps.cend(); ++other_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*other_op); @@ -955,8 +945,7 @@ class TestToken : public TestFixture { } void isAssignmentOp() const { - std::vector::const_iterator test_op, test_ops_end = assignmentOps.cend(); - for (test_op = assignmentOps.cbegin(); test_op != test_ops_end; ++test_op) { + for (auto test_op = assignmentOps.cbegin(); test_op != assignmentOps.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); @@ -971,8 +960,7 @@ class TestToken : public TestFixture { append_vector(other_ops, logicalOps); append_vector(other_ops, extendedOps); - std::vector::const_iterator other_op, other_ops_end = other_ops.cend(); - for (other_op = other_ops.cbegin(); other_op != other_ops_end; ++other_op) { + for (auto other_op = other_ops.cbegin(); other_op != other_ops.cend(); ++other_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*other_op); @@ -981,26 +969,25 @@ class TestToken : public TestFixture { } void operators() const { - std::vector::const_iterator test_op; - for (test_op = extendedOps.cbegin(); test_op != extendedOps.cend(); ++test_op) { + for (auto test_op = extendedOps.cbegin(); test_op != extendedOps.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); ASSERT_EQUALS(Token::eExtendedOp, tok.tokType()); } - for (test_op = logicalOps.cbegin(); test_op != logicalOps.cend(); ++test_op) { + for (auto test_op = logicalOps.cbegin(); test_op != logicalOps.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); ASSERT_EQUALS(Token::eLogicalOp, tok.tokType()); } - for (test_op = bitOps.cbegin(); test_op != bitOps.cend(); ++test_op) { + for (auto test_op = bitOps.cbegin(); test_op != bitOps.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); ASSERT_EQUALS(Token::eBitOp, tok.tokType()); } - for (test_op = comparisonOps.cbegin(); test_op != comparisonOps.cend(); ++test_op) { + for (auto test_op = comparisonOps.cbegin(); test_op != comparisonOps.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op); @@ -1045,8 +1032,7 @@ class TestToken : public TestFixture { standard_types.emplace_back("double"); standard_types.emplace_back("size_t"); - std::vector::const_iterator test_op, test_ops_end = standard_types.cend(); - for (test_op = standard_types.cbegin(); test_op != test_ops_end; ++test_op) { + for (auto test_op = standard_types.cbegin(); test_op != standard_types.cend(); ++test_op) { TokensFrontBack tokensFrontBack(list); Token tok(tokensFrontBack); tok.str(*test_op);