Skip to content

Commit 6f3ecc2

Browse files
committed
generate ctu-info from FileSettings for whole project analysis
1 parent 7cb8f2b commit 6f3ecc2

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

Diff for: lib/cppcheck.cpp

+10-1
Original file line numberDiff line numberDiff line change
@@ -1461,7 +1461,7 @@ void CppCheck::executeAddons(const std::vector<std::string>& files, const std::s
14611461
}
14621462
}
14631463

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

1475+
for (const auto &f: fileSettings) { // --project
1476+
const std::string &dumpFileName = getDumpFileName(mSettings, f.filename);
1477+
1478+
// ignore duplciates
1479+
auto it = std::find(ctuInfoFiles.begin(), ctuInfoFiles.end(), getCtuInfoFileName(dumpFileName));
1480+
if (it == ctuInfoFiles.end())
1481+
ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName));
1482+
}
1483+
14751484
try {
14761485
executeAddons(ctuInfoFiles, "");
14771486
} catch (const InternalError& e) {

Diff for: lib/cppcheck.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ class CPPCHECKLIB CppCheck : ErrorLogger {
192192
/**
193193
* Execute addons
194194
*/
195-
void executeAddonsWholeProgram(const std::list<std::pair<std::string, std::size_t>> &files);
195+
void executeAddonsWholeProgram(const std::list<std::pair<std::string, std::size_t>> &files, const std::list<FileSettings>& fileSettings);
196196

197197
#ifdef HAVE_RULES
198198
/**

0 commit comments

Comments
 (0)