Skip to content

Commit 65517e1

Browse files
firewavedzid26
andauthored
fixed #12839 - generate ctu-info files for FileSettings before executing whole program analysis for addons (#6525)
Co-authored-by: dzid26 <dzid26@users.noreply.github.com>
1 parent dadabbb commit 65517e1

3 files changed

Lines changed: 8 additions & 4 deletions

File tree

lib/cppcheck.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1463,7 +1463,7 @@ void CppCheck::executeAddons(const std::vector<std::string>& files, const std::s
14631463
}
14641464
}
14651465

1466-
void CppCheck::executeAddonsWholeProgram(const std::list<FileWithDetails> &files)
1466+
void CppCheck::executeAddonsWholeProgram(const std::list<FileWithDetails> &files, const std::list<FileSettings>& fileSettings)
14671467
{
14681468
if (mSettings.addons.empty())
14691469
return;
@@ -1474,6 +1474,11 @@ void CppCheck::executeAddonsWholeProgram(const std::list<FileWithDetails> &files
14741474
ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName));
14751475
}
14761476

1477+
for (const auto &f: fileSettings) {
1478+
const std::string &dumpFileName = getDumpFileName(mSettings, f.filename());
1479+
ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName));
1480+
}
1481+
14771482
try {
14781483
executeAddons(ctuInfoFiles, "");
14791484
} catch (const InternalError& e) {
@@ -1779,7 +1784,7 @@ bool CppCheck::analyseWholeProgram()
17791784

17801785
unsigned int CppCheck::analyseWholeProgram(const std::string &buildDir, const std::list<FileWithDetails> &files, const std::list<FileSettings>& fileSettings)
17811786
{
1782-
executeAddonsWholeProgram(files); // TODO: pass FileSettings
1787+
executeAddonsWholeProgram(files, fileSettings);
17831788
if (buildDir.empty()) {
17841789
removeCtuInfoFiles(files, fileSettings);
17851790
return mExitCode;

lib/cppcheck.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ class CPPCHECKLIB CppCheck : ErrorLogger {
195195
/**
196196
* Execute addons
197197
*/
198-
void executeAddonsWholeProgram(const std::list<FileWithDetails> &files);
198+
void executeAddonsWholeProgram(const std::list<FileWithDetails> &files, const std::list<FileSettings>& fileSettings);
199199

200200
#ifdef HAVE_RULES
201201
/**

test/cli/whole-program_test.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ def __test_addon_suppress_inline_project(tmpdir, extra_args):
7878
assert ret == 0, stdout
7979

8080

81-
@pytest.mark.xfail(strict=True)
8281
def test_addon_suppress_inline_project(tmpdir):
8382
__test_addon_suppress_inline_project(tmpdir, ['-j1'])
8483

0 commit comments

Comments
 (0)