Skip to content

Commit 6bbfee2

Browse files
authored
pass TokenList to SuppressionList::markUnmatchedInlineSuppressionsAsChecked() (danmar#8391)
1 parent 8a12e57 commit 6bbfee2

File tree

5 files changed

+10
-11
lines changed

5 files changed

+10
-11
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ $(libcppdir)/standards.o: lib/standards.cpp externals/simplecpp/simplecpp.h lib/
656656
$(libcppdir)/summaries.o: lib/summaries.cpp lib/addoninfo.h lib/analyzerinfo.h lib/checkers.h lib/config.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/regex.h lib/settings.h lib/smallvector.h lib/sourcelocation.h lib/standards.h lib/summaries.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h
657657
$(CXX) ${INCLUDE_FOR_LIB} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/summaries.cpp
658658

659-
$(libcppdir)/suppressions.o: lib/suppressions.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/checkers.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/pathmatch.h lib/platform.h lib/regex.h lib/settings.h lib/smallvector.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h lib/xml.h
659+
$(libcppdir)/suppressions.o: lib/suppressions.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/checkers.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/pathmatch.h lib/platform.h lib/regex.h lib/settings.h lib/smallvector.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenlist.h lib/utils.h lib/vfvalue.h lib/xml.h
660660
$(CXX) ${INCLUDE_FOR_LIB} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/suppressions.cpp
661661

662662
$(libcppdir)/templatesimplifier.o: lib/templatesimplifier.cpp lib/addoninfo.h lib/checkers.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/regex.h lib/settings.h lib/smallvector.h lib/standards.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h

lib/cppcheck.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1222,7 +1222,7 @@ unsigned int CppCheck::checkInternal(const FileWithDetails& file, const std::str
12221222

12231223
if (mSettings.inlineSuppressions) {
12241224
// Need to call this even if the hash will skip this configuration
1225-
mSuppressions.nomsg.markUnmatchedInlineSuppressionsAsChecked(tokenizer);
1225+
mSuppressions.nomsg.markUnmatchedInlineSuppressionsAsChecked(tokenizer.list);
12261226
}
12271227

12281228
// Skip if we already met the same simplified token list

lib/suppressions.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
#include "pathmatch.h"
2626
#include "utils.h"
2727
#include "token.h"
28-
#include "tokenize.h"
2928
#include "tokenlist.h"
3029
#include "settings.h"
3130

@@ -629,25 +628,25 @@ std::list<SuppressionList::Suppression> SuppressionList::getSuppressions() const
629628
return mSuppressions;
630629
}
631630

632-
void SuppressionList::markUnmatchedInlineSuppressionsAsChecked(const Tokenizer &tokenizer) {
631+
void SuppressionList::markUnmatchedInlineSuppressionsAsChecked(const TokenList &tokenlist) {
633632
std::lock_guard<std::mutex> lg(mSuppressionsSync);
634633

635634
int currLineNr = -1;
636635
int currFileIdx = -1;
637-
for (const Token *tok = tokenizer.tokens(); tok; tok = tok->next()) {
636+
for (const Token *tok = tokenlist.front(); tok; tok = tok->next()) {
638637
if (currFileIdx != tok->fileIndex() || currLineNr != tok->linenr()) {
639638
currLineNr = tok->linenr();
640639
currFileIdx = tok->fileIndex();
641640
for (auto &suppression : mSuppressions) {
642641
if (suppression.type == SuppressionList::Type::unique) {
643-
if (!suppression.checked && (suppression.lineNumber == currLineNr) && (suppression.fileName == tokenizer.list.file(tok))) {
642+
if (!suppression.checked && (suppression.lineNumber == currLineNr) && (suppression.fileName == tokenlist.file(tok))) {
644643
suppression.checked = true;
645644
}
646645
} else if (suppression.type == SuppressionList::Type::block) {
647-
if ((!suppression.checked && (suppression.lineBegin <= currLineNr) && (suppression.lineEnd >= currLineNr) && (suppression.fileName == tokenizer.list.file(tok)))) {
646+
if ((!suppression.checked && (suppression.lineBegin <= currLineNr) && (suppression.lineEnd >= currLineNr) && (suppression.fileName == tokenlist.file(tok)))) {
648647
suppression.checked = true;
649648
}
650-
} else if (!suppression.checked && suppression.fileName == tokenizer.list.file(tok)) {
649+
} else if (!suppression.checked && suppression.fileName == tokenlist.file(tok)) {
651650
suppression.checked = true;
652651
}
653652
}

lib/suppressions.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
#include <vector>
3434
#include <map>
3535

36-
class Tokenizer;
36+
class TokenList;
3737
class ErrorMessage;
3838
enum class Certainty : std::uint8_t;
3939
class FileWithDetails;
@@ -285,7 +285,7 @@ class CPPCHECKLIB SuppressionList {
285285
/**
286286
* @brief Marks Inline Suppressions as checked if source line is in the token stream
287287
*/
288-
void markUnmatchedInlineSuppressionsAsChecked(const Tokenizer &tokenizer);
288+
void markUnmatchedInlineSuppressionsAsChecked(const TokenList &tokenlist);
289289

290290
private:
291291
mutable std::mutex mSuppressionsSync;

oss-fuzz/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ $(libcppdir)/standards.o: ../lib/standards.cpp ../externals/simplecpp/simplecpp.
332332
$(libcppdir)/summaries.o: ../lib/summaries.cpp ../lib/addoninfo.h ../lib/analyzerinfo.h ../lib/checkers.h ../lib/config.h ../lib/errortypes.h ../lib/library.h ../lib/mathlib.h ../lib/path.h ../lib/platform.h ../lib/regex.h ../lib/settings.h ../lib/smallvector.h ../lib/sourcelocation.h ../lib/standards.h ../lib/summaries.h ../lib/symboldatabase.h ../lib/templatesimplifier.h ../lib/token.h ../lib/tokenize.h ../lib/tokenlist.h ../lib/utils.h ../lib/vfvalue.h
333333
$(CXX) ${LIB_FUZZING_ENGINE} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/summaries.cpp
334334

335-
$(libcppdir)/suppressions.o: ../lib/suppressions.cpp ../externals/tinyxml2/tinyxml2.h ../lib/addoninfo.h ../lib/checkers.h ../lib/config.h ../lib/errorlogger.h ../lib/errortypes.h ../lib/filesettings.h ../lib/library.h ../lib/mathlib.h ../lib/path.h ../lib/pathmatch.h ../lib/platform.h ../lib/regex.h ../lib/settings.h ../lib/smallvector.h ../lib/standards.h ../lib/suppressions.h ../lib/templatesimplifier.h ../lib/token.h ../lib/tokenize.h ../lib/tokenlist.h ../lib/utils.h ../lib/vfvalue.h ../lib/xml.h
335+
$(libcppdir)/suppressions.o: ../lib/suppressions.cpp ../externals/tinyxml2/tinyxml2.h ../lib/addoninfo.h ../lib/checkers.h ../lib/config.h ../lib/errorlogger.h ../lib/errortypes.h ../lib/filesettings.h ../lib/library.h ../lib/mathlib.h ../lib/path.h ../lib/pathmatch.h ../lib/platform.h ../lib/regex.h ../lib/settings.h ../lib/smallvector.h ../lib/standards.h ../lib/suppressions.h ../lib/templatesimplifier.h ../lib/token.h ../lib/tokenlist.h ../lib/utils.h ../lib/vfvalue.h ../lib/xml.h
336336
$(CXX) ${LIB_FUZZING_ENGINE} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(libcppdir)/suppressions.cpp
337337

338338
$(libcppdir)/templatesimplifier.o: ../lib/templatesimplifier.cpp ../lib/addoninfo.h ../lib/checkers.h ../lib/config.h ../lib/errorlogger.h ../lib/errortypes.h ../lib/library.h ../lib/mathlib.h ../lib/platform.h ../lib/regex.h ../lib/settings.h ../lib/smallvector.h ../lib/standards.h ../lib/templatesimplifier.h ../lib/token.h ../lib/tokenize.h ../lib/tokenlist.h ../lib/utils.h ../lib/vfvalue.h

0 commit comments

Comments
 (0)