diff --git a/Makefile b/Makefile index 3fef3103d96..e10ddfbcede 100644 --- a/Makefile +++ b/Makefile @@ -649,7 +649,7 @@ $(libcppdir)/settings.o: lib/settings.cpp externals/picojson/picojson.h lib/addo $(libcppdir)/standards.o: lib/standards.cpp externals/simplecpp/simplecpp.h lib/config.h lib/standards.h lib/utils.h $(CXX) ${INCLUDE_FOR_LIB} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/standards.cpp -$(libcppdir)/summaries.o: lib/summaries.cpp lib/addoninfo.h lib/analyzerinfo.h lib/checkers.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/summaries.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h +$(libcppdir)/summaries.o: lib/summaries.cpp lib/addoninfo.h lib/analyzerinfo.h lib/checkers.h lib/config.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/smallvector.h lib/sourcelocation.h lib/standards.h lib/summaries.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h $(CXX) ${INCLUDE_FOR_LIB} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/summaries.cpp $(libcppdir)/suppressions.o: lib/suppressions.cpp externals/tinyxml2/tinyxml2.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/mathlib.h lib/path.h lib/pathmatch.h lib/platform.h lib/smallvector.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 lib/xml.h diff --git a/gui/checkthread.cpp b/gui/checkthread.cpp index 090b698a6e7..e2cbd77dc51 100644 --- a/gui/checkthread.cpp +++ b/gui/checkthread.cpp @@ -238,7 +238,7 @@ void CheckThread::runAddonsAndTools(const Settings& settings, const FileSettings const std::string &buildDir = settings.buildDir; if (!buildDir.empty()) { - analyzerInfoFile = QString::fromStdString(AnalyzerInformation::getAnalyzerInfoFile(buildDir, fileSettings->filename(), fileSettings->cfg, fileSettings->fileIndex)); + analyzerInfoFile = QString::fromStdString(AnalyzerInformation::getAnalyzerInfoFile(buildDir, fileSettings->sfilename(), fileSettings->cfg, fileSettings->file.fsFileId())); QStringList args2(args); args2.insert(0,"-E"); diff --git a/lib/analyzerinfo.cpp b/lib/analyzerinfo.cpp index 6d5ac9a9b15..a278ad76ee6 100644 --- a/lib/analyzerinfo.cpp +++ b/lib/analyzerinfo.cpp @@ -69,7 +69,7 @@ std::string AnalyzerInformation::getFilesTxt(const std::list &sourc for (const FileSettings &fs : fileSettings) { const std::string afile = getFilename(fs.filename()); - const std::string id = fs.fileIndex > 0 ? std::to_string(fs.fileIndex) : ""; + const std::string id = fs.file.fsFileId() > 0 ? std::to_string(fs.file.fsFileId()) : ""; ret << afile << ".a" << (++fileCount[afile]) << sep << fs.cfg << sep << id << sep << Path::simplifyPath(fs.filename()) << std::endl; } @@ -128,11 +128,11 @@ std::string AnalyzerInformation::getAnalyzerInfoFileFromFilesTxt(std::istream& f return ""; } -std::string AnalyzerInformation::getAnalyzerInfoFile(const std::string &buildDir, const std::string &sourcefile, const std::string &cfg, int fileIndex) +std::string AnalyzerInformation::getAnalyzerInfoFile(const std::string &buildDir, const std::string &sourcefile, const std::string &cfg, std::size_t fsFileId) { std::ifstream fin(Path::join(buildDir, "files.txt")); if (fin.is_open()) { - const std::string& ret = getAnalyzerInfoFileFromFilesTxt(fin, sourcefile, cfg, fileIndex); + const std::string& ret = getAnalyzerInfoFileFromFilesTxt(fin, sourcefile, cfg, fsFileId); if (!ret.empty()) return Path::join(buildDir, ret); } @@ -146,13 +146,13 @@ std::string AnalyzerInformation::getAnalyzerInfoFile(const std::string &buildDir return Path::join(buildDir, std::move(filename)) + ".analyzerinfo"; } -bool AnalyzerInformation::analyzeFile(const std::string &buildDir, const std::string &sourcefile, const std::string &cfg, int fileIndex, std::size_t hash, std::list &errors) +bool AnalyzerInformation::analyzeFile(const std::string &buildDir, const std::string &sourcefile, const std::string &cfg, std::size_t fsFileId, std::size_t hash, std::list &errors) { if (buildDir.empty() || sourcefile.empty()) return true; close(); - mAnalyzerInfoFile = AnalyzerInformation::getAnalyzerInfoFile(buildDir,sourcefile,cfg,fileIndex); + mAnalyzerInfoFile = AnalyzerInformation::getAnalyzerInfoFile(buildDir,sourcefile,cfg,fsFileId); tinyxml2::XMLDocument analyzerInfoDoc; const tinyxml2::XMLError xmlError = analyzerInfoDoc.LoadFile(mAnalyzerInfoFile.c_str()); @@ -194,10 +194,10 @@ bool AnalyzerInformation::Info::parse(const std::string& filesTxtLine) { return false; if (sep3 == sep2 + 1) - fileIndex = 0; + fsFileId = 0; else { try { - fileIndex = std::stoi(filesTxtLine.substr(sep2+1, sep3-sep2-1)); + fsFileId = std::stoi(filesTxtLine.substr(sep2+1, sep3-sep2-1)); } catch (const std::exception&) { return false; } diff --git a/lib/analyzerinfo.h b/lib/analyzerinfo.h index 04ea1a5b339..d28a82c514c 100644 --- a/lib/analyzerinfo.h +++ b/lib/analyzerinfo.h @@ -61,10 +61,10 @@ class CPPCHECKLIB AnalyzerInformation { /** Close current TU.analyzerinfo file */ void close(); - bool analyzeFile(const std::string &buildDir, const std::string &sourcefile, const std::string &cfg, int fileIndex, std::size_t hash, std::list &errors); + bool analyzeFile(const std::string &buildDir, const std::string &sourcefile, const std::string &cfg, std::size_t fsFileId, std::size_t hash, std::list &errors); void reportErr(const ErrorMessage &msg); void setFileInfo(const std::string &check, const std::string &fileInfo); - static std::string getAnalyzerInfoFile(const std::string &buildDir, const std::string &sourcefile, const std::string &cfg, int fileIndex); + static std::string getAnalyzerInfoFile(const std::string &buildDir, const std::string &sourcefile, const std::string &cfg, std::size_t fsFileId); static const char sep = ':'; @@ -73,7 +73,7 @@ class CPPCHECKLIB AnalyzerInformation { bool parse(const std::string& filesTxtLine); std::string afile; std::string cfg; - int fileIndex = 0; + std::size_t fsFileId = 0; std::string sourceFile; }; diff --git a/lib/cppcheck.cpp b/lib/cppcheck.cpp index c7c6ea65dfc..615ddd4e213 100644 --- a/lib/cppcheck.cpp +++ b/lib/cppcheck.cpp @@ -332,17 +332,17 @@ static std::vector split(const std::string &str, const std::string return ret; } -static std::string getDumpFileName(const Settings& settings, const std::string& filename, int fileIndex) +static std::string getDumpFileName(const Settings& settings, const FileWithDetails& file) { std::string extension = ".dump"; - if (fileIndex > 0) - extension = "." + std::to_string(fileIndex) + extension; + if (file.fsFileId() > 0) + extension = "." + std::to_string(file.fsFileId()) + extension; if (!settings.dump && settings.buildDir.empty()) extension = "." + std::to_string(settings.pid) + extension; if (!settings.dump && !settings.buildDir.empty()) - return AnalyzerInformation::getAnalyzerInfoFile(settings.buildDir, filename, "", fileIndex) + extension; - return filename + extension; + return AnalyzerInformation::getAnalyzerInfoFile(settings.buildDir, file.spath(), "", file.fsFileId()) + extension; + return file.spath() + extension; } static std::string getCtuInfoFileName(const std::string &dumpFile) @@ -352,13 +352,12 @@ static std::string getCtuInfoFileName(const std::string &dumpFile) static void createDumpFile(const Settings& settings, const FileWithDetails& file, - int fileIndex, std::ofstream& fdump, std::string& dumpFile) { if (!settings.dump && settings.addons.empty()) return; - dumpFile = getDumpFileName(settings, file.spath(), fileIndex); + dumpFile = getDumpFileName(settings, file); fdump.open(dumpFile); if (!fdump.is_open()) @@ -660,7 +659,7 @@ static std::string getClangFlags(const Settings& setting, Standards::Language la } // TODO: clear error list before returning -unsigned int CppCheck::checkClang(const FileWithDetails &file, int fileIndex) +unsigned int CppCheck::checkClang(const FileWithDetails &file) { // TODO: clear exitcode @@ -673,7 +672,7 @@ unsigned int CppCheck::checkClang(const FileWithDetails &file, int fileIndex) // TODO: get language from FileWithDetails object std::string clangStderr; if (!mSettings.buildDir.empty()) - clangStderr = AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, file.spath(), "", fileIndex) + ".clang-stderr"; + clangStderr = AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, file.spath(), "", file.fsFileId()) + ".clang-stderr"; std::string exe = mSettings.clangExecutable; #ifdef _WIN32 @@ -747,7 +746,7 @@ unsigned int CppCheck::checkClang(const FileWithDetails &file, int fileIndex) // create dumpfile std::ofstream fdump; std::string dumpFile; - createDumpFile(mSettings, file, fileIndex, fdump, dumpFile); + createDumpFile(mSettings, file, fdump, dumpFile); if (fdump.is_open()) { fdump << getLibraryDumpData(); // TODO: use tinyxml2 to create XML @@ -791,9 +790,9 @@ unsigned int CppCheck::check(const FileWithDetails &file) unsigned int returnValue; if (mSettings.clang) - returnValue = checkClang(file, 0); + returnValue = checkClang(file); else - returnValue = checkFile(file, "", 0); + returnValue = checkFile(file, ""); // TODO: call analyseClangTidy() @@ -802,7 +801,7 @@ unsigned int CppCheck::check(const FileWithDetails &file) unsigned int CppCheck::checkBuffer(const FileWithDetails &file, const char* data, std::size_t size) { - return checkBuffer(file, "", 0, data, size); + return checkBuffer(file, "", data, size); } unsigned int CppCheck::check(const FileSettings &fs) @@ -838,7 +837,7 @@ unsigned int CppCheck::check(const FileSettings &fs) } // need to pass the externally provided ErrorLogger instead of our internal wrapper CppCheck temp(tempSettings, mSuppressions, mErrorLoggerDirect, mUseGlobalSuppressions, mExecuteCommand); - const unsigned int returnValue = temp.checkFile(fs.file, fs.cfg, fs.fileIndex); + const unsigned int returnValue = temp.checkFile(fs.file, fs.cfg); if (mUnusedFunctionsCheck) mUnusedFunctionsCheck->updateFunctionData(*temp.mUnusedFunctionsCheck); while (!temp.mFileInfo.empty()) { @@ -875,20 +874,20 @@ std::size_t CppCheck::calculateHash(const Preprocessor& preprocessor, const std: return preprocessor.calculateHash(toolinfo.str()); } -unsigned int CppCheck::checkBuffer(const FileWithDetails &file, const std::string &cfgname, int fileIndex, const char* data, std::size_t size) +unsigned int CppCheck::checkBuffer(const FileWithDetails &file, const std::string &cfgname, const char* data, std::size_t size) { const auto f = [&file, data, size](std::vector& files, simplecpp::OutputList* outputList) { return simplecpp::TokenList{{data, size}, files, file.spath(), outputList}; }; - return checkInternal(file, cfgname, fileIndex, f); + return checkInternal(file, cfgname, f); } -unsigned int CppCheck::checkFile(const FileWithDetails& file, const std::string &cfgname, int fileIndex) +unsigned int CppCheck::checkFile(const FileWithDetails& file, const std::string &cfgname) { const auto f = [&file](std::vector& files, simplecpp::OutputList* outputList) { return simplecpp::TokenList{file.spath(), files, outputList}; }; - return checkInternal(file, cfgname, fileIndex, f); + return checkInternal(file, cfgname, f); } void CppCheck::checkPlistOutput(const FileWithDetails& file, const std::vector& files) @@ -906,7 +905,7 @@ void CppCheck::checkPlistOutput(const FileWithDetails& file, const std::vectorsetAnalyzerInfo(nullptr); std::list errors; - analyzerInformation->analyzeFile(mSettings.buildDir, file.spath(), cfgname, fileIndex, hash, errors); + analyzerInformation->analyzeFile(mSettings.buildDir, file.spath(), cfgname, file.fsFileId(), hash, errors); analyzerInformation->setFileInfo("CheckUnusedFunctions", mUnusedFunctionsCheck->analyzerInfo(tokenizer)); analyzerInformation->close(); } @@ -1020,7 +1019,7 @@ unsigned int CppCheck::checkInternal(const FileWithDetails& file, const std::str // Calculate hash so it can be compared with old hash / future hashes const std::size_t hash = calculateHash(preprocessor, file.spath()); std::list errors; - if (!analyzerInformation->analyzeFile(mSettings.buildDir, file.spath(), cfgname, fileIndex, hash, errors)) { + if (!analyzerInformation->analyzeFile(mSettings.buildDir, file.spath(), cfgname, file.fsFileId(), hash, errors)) { while (!errors.empty()) { mErrorLogger.reportErr(errors.front()); errors.pop_front(); @@ -1077,7 +1076,7 @@ unsigned int CppCheck::checkInternal(const FileWithDetails& file, const std::str // write dump file xml prolog std::ofstream fdump; std::string dumpFile; - createDumpFile(mSettings, file, fileIndex, fdump, dumpFile); + createDumpFile(mSettings, file, fdump, dumpFile); if (fdump.is_open()) { fdump << getLibraryDumpData(); fdump << dumpProlog; @@ -1201,7 +1200,7 @@ unsigned int CppCheck::checkInternal(const FileWithDetails& file, const std::str #endif // Simplify tokens into normal form, skip rest of iteration if failed - if (!tokenizer.simplifyTokens1(currentConfig, fileIndex)) + if (!tokenizer.simplifyTokens1(currentConfig, file.fsFileId())) continue; // dump xml if --dump @@ -1641,12 +1640,12 @@ void CppCheck::executeAddonsWholeProgram(const std::list &files std::vector ctuInfoFiles; for (const auto &f: files) { - const std::string &dumpFileName = getDumpFileName(mSettings, f.path(), 0); + const std::string &dumpFileName = getDumpFileName(mSettings, f); ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName)); } - for (const auto &f: fileSettings) { - const std::string &dumpFileName = getDumpFileName(mSettings, f.filename(), f.fileIndex); + for (const auto &fs: fileSettings) { + const std::string &dumpFileName = getDumpFileName(mSettings, fs.file); ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName)); } @@ -1758,7 +1757,7 @@ void CppCheck::analyseClangTidy(const FileSettings &fileSettings) std::string line; if (!mSettings.buildDir.empty()) { - const std::string analyzerInfoFile = AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, fileSettings.filename(), "", fileSettings.fileIndex); + const std::string analyzerInfoFile = AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, fileSettings.sfilename(), "", fileSettings.file.fsFileId()); std::ofstream fcmd(analyzerInfoFile + ".clang-tidy-cmd"); fcmd << istr.str(); } diff --git a/lib/cppcheck.h b/lib/cppcheck.h index 44286c294d2..06d0a992577 100644 --- a/lib/cppcheck.h +++ b/lib/cppcheck.h @@ -182,7 +182,7 @@ class CPPCHECKLIB CppCheck { * @param cfgname cfg name * @return number of errors found */ - unsigned int checkFile(const FileWithDetails& file, const std::string &cfgname, int fileIndex); + unsigned int checkFile(const FileWithDetails& file, const std::string &cfgname); void checkPlistOutput(const FileWithDetails& file, const std::vector& files); @@ -194,7 +194,7 @@ class CPPCHECKLIB CppCheck { * @param size the size of the data to be read * @return number of errors found */ - unsigned int checkBuffer(const FileWithDetails& file, const std::string &cfgname, int fileIndex, const char* data, std::size_t size); + unsigned int checkBuffer(const FileWithDetails& file, const std::string &cfgname, const char* data, std::size_t size); // TODO: should use simplecpp::OutputList using CreateTokenListFn = std::function&, std::list*)>; @@ -206,7 +206,7 @@ class CPPCHECKLIB CppCheck { * @param createTokenList a function to create the simplecpp::TokenList with * @return number of errors found */ - unsigned int checkInternal(const FileWithDetails& file, const std::string &cfgname, int fileIndex, const CreateTokenListFn& createTokenList); + unsigned int checkInternal(const FileWithDetails& file, const std::string &cfgname, const CreateTokenListFn& createTokenList); /** * @brief Check normal tokens @@ -235,7 +235,7 @@ class CPPCHECKLIB CppCheck { void executeRules(const std::string &tokenlist, const TokenList &list); #endif - unsigned int checkClang(const FileWithDetails &file, int fileIndex); + unsigned int checkClang(const FileWithDetails &file); const Settings& mSettings; Suppressions& mSuppressions; diff --git a/lib/filesettings.h b/lib/filesettings.h index 3149421c629..5a5ece9366b 100644 --- a/lib/filesettings.h +++ b/lib/filesettings.h @@ -35,15 +35,20 @@ class FileWithDetails { public: FileWithDetails(std::string path, Standards::Language lang, std::size_t size) - : mPath(std::move(path)) - , mPathSimplified(Path::simplifyPath(mPath)) - , mLang(lang) + : mLang(lang) , mSize(size) { + setPath(std::move(path)); if (mPath.empty()) throw std::runtime_error("empty path specified"); } + void setPath(std::string path) + { + mPath = std::move(path); + mPathSimplified = Path::simplifyPath(mPath); + } + const std::string& path() const { return mPath; @@ -68,11 +73,22 @@ class FileWithDetails { return mLang; } + + std::size_t fsFileId() const + { + return mFsFileId; + } + + void setFsFileId(std::size_t fsFileId) + { + mFsFileId = fsFileId; + } private: std::string mPath; std::string mPathSimplified; Standards::Language mLang = Standards::Language::None; std::size_t mSize; + std::size_t mFsFileId{0}; }; /** File settings. Multiple configurations for a file is allowed. */ @@ -81,14 +97,12 @@ struct CPPCHECKLIB FileSettings { : file(std::move(path), lang, size) {} - int fileIndex = 0; std::string cfg; FileWithDetails file; const std::string& filename() const { return file.path(); } - // cppcheck-suppress unusedFunction const std::string& sfilename() const { return file.spath(); diff --git a/lib/importproject.cpp b/lib/importproject.cpp index acd7842224f..dcf0631685d 100644 --- a/lib/importproject.cpp +++ b/lib/importproject.cpp @@ -347,7 +347,7 @@ bool ImportProject::importCompileCommands(std::istream &istr) return false; } - std::map fileIndex; + std::map fsFileIds; for (const picojson::value &fileInfo : compileCommands.get()) { picojson::object obj = fileInfo.get(); @@ -430,7 +430,7 @@ bool ImportProject::importCompileCommands(std::istream &istr) fsSetIncludePaths(fs, directory, fs.includePaths, variables); // Assign a unique index to each file path. If the file path already exists in the map, // increment the index to handle duplicate file entries. - fs.fileIndex = fileIndex[path]++; + fs.file.setFsFileId(fsFileIds[path]++); fileSettings.push_back(std::move(fs)); } @@ -1548,7 +1548,7 @@ void ImportProject::setRelativePaths(const std::string &filename) return; const std::vector basePaths{Path::fromNativeSeparators(Path::getCurrentPath())}; for (auto &fs: fileSettings) { - fs.file = FileWithDetails{Path::getRelativePath(fs.filename(), basePaths), Standards::Language::None, 0}; // file will be identified later on + fs.file.setPath(Path::getRelativePath(fs.filename(), basePaths)); for (auto &includePath: fs.includePaths) includePath = Path::getRelativePath(includePath, basePaths); } diff --git a/lib/summaries.cpp b/lib/summaries.cpp index a543fcc7065..52a5d06b141 100644 --- a/lib/summaries.cpp +++ b/lib/summaries.cpp @@ -19,6 +19,7 @@ #include "summaries.h" #include "analyzerinfo.h" +#include "path.h" #include "settings.h" #include "symboldatabase.h" #include "token.h" @@ -34,7 +35,7 @@ -std::string Summaries::create(const Tokenizer &tokenizer, const std::string &cfg, int fileIndex) +std::string Summaries::create(const Tokenizer &tokenizer, const std::string &cfg, std::size_t fsFileId) { const SymbolDatabase *symbolDatabase = tokenizer.getSymbolDatabase(); const Settings &settings = tokenizer.getSettings(); @@ -82,7 +83,7 @@ std::string Summaries::create(const Tokenizer &tokenizer, const std::string &cfg } if (!settings.buildDir.empty()) { - std::string filename = AnalyzerInformation::getAnalyzerInfoFile(settings.buildDir, tokenizer.list.getSourceFilePath(), cfg, fileIndex); + std::string filename = AnalyzerInformation::getAnalyzerInfoFile(settings.buildDir, Path::simplifyPath(tokenizer.list.getSourceFilePath()), cfg, fsFileId); const std::string::size_type pos = filename.rfind(".a"); if (pos != std::string::npos) { filename[pos+1] = 's'; diff --git a/lib/summaries.h b/lib/summaries.h index ac3d40d840f..a7a314da9a8 100644 --- a/lib/summaries.h +++ b/lib/summaries.h @@ -29,7 +29,7 @@ class Tokenizer; namespace Summaries { - CPPCHECKLIB std::string create(const Tokenizer &tokenizer, const std::string &cfg, int fileIndex); + CPPCHECKLIB std::string create(const Tokenizer &tokenizer, const std::string &cfg, std::size_t fsFileId); CPPCHECKLIB void loadReturn(const std::string &buildDir, std::set &summaryReturn); } diff --git a/oss-fuzz/Makefile b/oss-fuzz/Makefile index ad7fb641024..195dcf50b70 100644 --- a/oss-fuzz/Makefile +++ b/oss-fuzz/Makefile @@ -329,7 +329,7 @@ $(libcppdir)/settings.o: ../lib/settings.cpp ../externals/picojson/picojson.h .. $(libcppdir)/standards.o: ../lib/standards.cpp ../externals/simplecpp/simplecpp.h ../lib/config.h ../lib/standards.h ../lib/utils.h $(CXX) ${LIB_FUZZING_ENGINE} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/standards.cpp -$(libcppdir)/summaries.o: ../lib/summaries.cpp ../lib/addoninfo.h ../lib/analyzerinfo.h ../lib/checkers.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/summaries.h ../lib/symboldatabase.h ../lib/templatesimplifier.h ../lib/token.h ../lib/tokenize.h ../lib/tokenlist.h ../lib/utils.h ../lib/vfvalue.h +$(libcppdir)/summaries.o: ../lib/summaries.cpp ../lib/addoninfo.h ../lib/analyzerinfo.h ../lib/checkers.h ../lib/config.h ../lib/errortypes.h ../lib/library.h ../lib/mathlib.h ../lib/path.h ../lib/platform.h ../lib/settings.h ../lib/smallvector.h ../lib/sourcelocation.h ../lib/standards.h ../lib/summaries.h ../lib/symboldatabase.h ../lib/templatesimplifier.h ../lib/token.h ../lib/tokenize.h ../lib/tokenlist.h ../lib/utils.h ../lib/vfvalue.h $(CXX) ${LIB_FUZZING_ENGINE} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/summaries.cpp $(libcppdir)/suppressions.o: ../lib/suppressions.cpp ../externals/tinyxml2/tinyxml2.h ../lib/config.h ../lib/errorlogger.h ../lib/errortypes.h ../lib/filesettings.h ../lib/mathlib.h ../lib/path.h ../lib/pathmatch.h ../lib/platform.h ../lib/smallvector.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 ../lib/xml.h diff --git a/test/testanalyzerinformation.cpp b/test/testanalyzerinformation.cpp index 35e86e0dbb8..6f85cd2a882 100644 --- a/test/testanalyzerinformation.cpp +++ b/test/testanalyzerinformation.cpp @@ -59,9 +59,9 @@ class TestAnalyzerInformation : public TestFixture { void filesTextDuplicateFile() const { std::list fileSettings; fileSettings.emplace_back("a.c", Standards::Language::C, 10); - fileSettings.back().fileIndex = 0; + fileSettings.back().file.setFsFileId(0); fileSettings.emplace_back("a.c", Standards::Language::C, 10); - fileSettings.back().fileIndex = 1; + fileSettings.back().file.setFsFileId(1); const char expected[] = "a.a1:::a.c\n" "a.a2::1:a.c\n"; @@ -90,19 +90,19 @@ class TestAnalyzerInformation : public TestFixture { ASSERT_EQUALS(true, info.parse("a:b::d")); ASSERT_EQUALS("a", info.afile); ASSERT_EQUALS("b", info.cfg); - ASSERT_EQUALS(0, info.fileIndex); + ASSERT_EQUALS(0, info.fsFileId); ASSERT_EQUALS("d", info.sourceFile); ASSERT_EQUALS(true, info.parse("e:f:12:g")); ASSERT_EQUALS("e", info.afile); ASSERT_EQUALS("f", info.cfg); - ASSERT_EQUALS(12, info.fileIndex); + ASSERT_EQUALS(12, info.fsFileId); ASSERT_EQUALS("g", info.sourceFile); ASSERT_EQUALS(true, info.parse("odr1.a1:::C:/dm/cppcheck-fix-13333/test/cli/whole-program/odr1.cpp")); ASSERT_EQUALS("odr1.a1", info.afile); ASSERT_EQUALS("", info.cfg); - ASSERT_EQUALS(0, info.fileIndex); + ASSERT_EQUALS(0, info.fsFileId); ASSERT_EQUALS("C:/dm/cppcheck-fix-13333/test/cli/whole-program/odr1.cpp", info.sourceFile); } diff --git a/test/testimportproject.cpp b/test/testimportproject.cpp index 5e6db0163c8..9534ee58277 100644 --- a/test/testimportproject.cpp +++ b/test/testimportproject.cpp @@ -363,8 +363,8 @@ class TestImportProject : public TestFixture { ASSERT_EQUALS(2, importer.fileSettings.size()); const FileSettings &fs1 = importer.fileSettings.front(); const FileSettings &fs2 = importer.fileSettings.back(); - ASSERT_EQUALS(0, fs1.fileIndex); - ASSERT_EQUALS(1, fs2.fileIndex); + ASSERT_EQUALS(0, fs1.file.fsFileId()); + ASSERT_EQUALS(1, fs2.file.fsFileId()); } void importCompileCommands14() const { // #14156