Skip to content

Commit dbcd363

Browse files
committed
do not report unmatched inline suppressions until the whole program analysis has been run
1 parent c8405e5 commit dbcd363

File tree

4 files changed

+3
-19
lines changed

4 files changed

+3
-19
lines changed

cli/cppcheckexecutor.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ bool CppCheckExecutor::reportSuppressions(const Settings &settings, const Suppre
413413
if (settings.inlineSuppressions) {
414414
// report unmatched unusedFunction suppressions
415415
err |= SuppressionList::reportUnmatchedSuppressions(
416-
suppressions.getUnmatchedInlineSuppressions(SuppressionList::UnusedFunction::Only), errorLogger);
416+
suppressions.getUnmatchedInlineSuppressions(), errorLogger);
417417
}
418418

419419
err |= SuppressionList::reportUnmatchedSuppressions(suppressions.getUnmatchedGlobalSuppressions(unusedFunctionCheckEnabled), errorLogger);

lib/cppcheck.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -1275,13 +1275,6 @@ unsigned int CppCheck::checkFile(const FileWithDetails& file, const std::string
12751275

12761276
// TODO: this is done too early causing the whole program analysis suppressions to be reported as unmatched
12771277
if (mSettings.severity.isEnabled(Severity::information) || mSettings.checkConfiguration) {
1278-
if (mSettings.inlineSuppressions)
1279-
{
1280-
// TODO: check result?
1281-
// defer reporting of unusedFunction to later
1282-
SuppressionList::reportUnmatchedSuppressions(mSettings.supprs.nomsg.getUnmatchedInlineSuppressions(SuppressionList::UnusedFunction::Exclude), mErrorLogger);
1283-
}
1284-
12851278
// In jointSuppressionReport mode, unmatched suppressions are
12861279
// collected after all files are processed
12871280
if (!mSettings.useSingleJob()) {

lib/suppressions.cpp

+1-5
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ std::list<SuppressionList::Suppression> SuppressionList::getUnmatchedGlobalSuppr
542542
return result;
543543
}
544544

545-
std::list<SuppressionList::Suppression> SuppressionList::getUnmatchedInlineSuppressions(const UnusedFunction unusedFunction) const
545+
std::list<SuppressionList::Suppression> SuppressionList::getUnmatchedInlineSuppressions() const
546546
{
547547
std::list<SuppressionList::Suppression> result;
548548
for (const SuppressionList::Suppression &s : SuppressionList::mSuppressions) {
@@ -554,10 +554,6 @@ std::list<SuppressionList::Suppression> SuppressionList::getUnmatchedInlineSuppr
554554
continue;
555555
if (s.hash > 0)
556556
continue;
557-
if (unusedFunction == UnusedFunction::Only && s.errorId != ID_UNUSEDFUNCTION)
558-
continue;
559-
if (unusedFunction == UnusedFunction::Exclude && s.errorId == ID_UNUSEDFUNCTION)
560-
continue;
561557
result.push_back(s);
562558
}
563559
return result;

lib/suppressions.h

+1-6
Original file line numberDiff line numberDiff line change
@@ -249,16 +249,11 @@ class CPPCHECKLIB SuppressionList {
249249
*/
250250
std::list<Suppression> getUnmatchedGlobalSuppressions(bool includeUnusedFunction) const;
251251

252-
enum UnusedFunction : std::uint8_t {
253-
Exclude,
254-
Only
255-
};
256-
257252
/**
258253
* @brief Returns list of unmatched inline suppressions.
259254
* @return list of unmatched suppressions
260255
*/
261-
std::list<Suppression> getUnmatchedInlineSuppressions(const UnusedFunction unusedFunction) const;
256+
std::list<Suppression> getUnmatchedInlineSuppressions() const;
262257

263258
/**
264259
* @brief Returns list of all suppressions.

0 commit comments

Comments
 (0)