Skip to content

Commit

Permalink
generate ctu-info from FileSettings for whole project analysis
Browse files Browse the repository at this point in the history
  • Loading branch information
dzid26 committed Jun 9, 2024
1 parent 7cb8f2b commit 8983636
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
13 changes: 11 additions & 2 deletions lib/cppcheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1461,7 +1461,7 @@ void CppCheck::executeAddons(const std::vector<std::string>& files, const std::s
}
}

void CppCheck::executeAddonsWholeProgram(const std::list<std::pair<std::string, std::size_t>> &files)
void CppCheck::executeAddonsWholeProgram(const std::list<std::pair<std::string, std::size_t>> &files, const std::list<FileSettings>& fileSettings)
{
if (mSettings.addons.empty())
return;
Expand All @@ -1472,6 +1472,15 @@ void CppCheck::executeAddonsWholeProgram(const std::list<std::pair<std::string,
ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName));
}

for (const auto &f: fileSettings) { // --project
const std::string &dumpFileName = getDumpFileName(mSettings, f.filename);

// ignore duplciates
auto it = std::find(ctuInfoFiles.begin(), ctuInfoFiles.end(), getCtuInfoFileName(dumpFileName));
if (it == ctuInfoFiles.end())
ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName));
}

try {
executeAddons(ctuInfoFiles, "");
} catch (const InternalError& e) {
Expand Down Expand Up @@ -1758,7 +1767,7 @@ bool CppCheck::analyseWholeProgram()

unsigned int CppCheck::analyseWholeProgram(const std::string &buildDir, const std::list<std::pair<std::string, std::size_t>> &files, const std::list<FileSettings>& fileSettings)
{
executeAddonsWholeProgram(files); // TODO: pass FileSettings
executeAddonsWholeProgram(files, fileSettings);
if (buildDir.empty()) {
removeCtuInfoFiles(files, fileSettings);
return mExitCode;
Expand Down
2 changes: 1 addition & 1 deletion lib/cppcheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ class CPPCHECKLIB CppCheck : ErrorLogger {
/**
* Execute addons
*/
void executeAddonsWholeProgram(const std::list<std::pair<std::string, std::size_t>> &files);
void executeAddonsWholeProgram(const std::list<std::pair<std::string, std::size_t>> &files, const std::list<FileSettings>& fileSettings);

#ifdef HAVE_RULES
/**
Expand Down

0 comments on commit 8983636

Please sign in to comment.