Skip to content

Commit 8d7b56f

Browse files
danmarfirewave
andcommitted
Fix #13401 (cppcheck-addon-ctu-file-list filename should be unique for each process) (#7082)
Co-authored-by: Oliver Stöneberg <[email protected]>
1 parent 15c2e5b commit 8d7b56f

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

lib/cppcheck.cpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -1414,12 +1414,14 @@ void CppCheck::executeAddons(const std::vector<std::string>& files, const std::s
14141414
if (mSettings.addons.empty() || files.empty())
14151415
return;
14161416

1417-
FilesDeleter filesDeleter;
1417+
const bool isCtuInfo = endsWith(files[0], ".ctu-info");
14181418

1419+
FilesDeleter filesDeleter;
14191420
std::string fileList;
14201421

1421-
if (files.size() >= 2 || endsWith(files[0], ".ctu-info")) {
1422-
fileList = Path::getPathFromFilename(files[0]) + FILELIST;
1422+
if (files.size() >= 2) {
1423+
fileList = Path::getPathFromFilename(files[0]) + FILELIST + ("-" + std::to_string(mSettings.pid)) + ".txt";
1424+
filesDeleter.addFile(fileList);
14231425
std::ofstream fout(fileList);
14241426
for (const std::string& f: files)
14251427
fout << f << std::endl;
@@ -1431,7 +1433,7 @@ void CppCheck::executeAddons(const std::vector<std::string>& files, const std::s
14311433
std::string ctuInfo;
14321434

14331435
for (const AddonInfo &addonInfo : mSettings.addonInfos) {
1434-
if (addonInfo.name != "misra" && !addonInfo.ctu && endsWith(files.back(), ".ctu-info"))
1436+
if (isCtuInfo && addonInfo.name != "misra" && !addonInfo.ctu)
14351437
continue;
14361438

14371439
const std::vector<picojson::value> results =
@@ -1497,7 +1499,7 @@ void CppCheck::executeAddons(const std::vector<std::string>& files, const std::s
14971499
}
14981500
}
14991501

1500-
if (!mSettings.buildDir.empty() && fileList.empty()) {
1502+
if (!mSettings.buildDir.empty() && !isCtuInfo) {
15011503
const std::string& ctuInfoFile = getCtuInfoFileName(files[0]);
15021504
std::ofstream fout(ctuInfoFile);
15031505
fout << ctuInfo;

0 commit comments

Comments
 (0)