Skip to content

Commit b901fbe

Browse files
authored
small Check::analyseWholeProgram() related cleanup (danmar#7203)
1 parent 11aef93 commit b901fbe

15 files changed

+48
-39
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -734,7 +734,7 @@ test/testcheck.o: test/testcheck.cpp lib/addoninfo.h lib/check.h lib/color.h lib
734734
test/testclangimport.o: test/testclangimport.cpp lib/addoninfo.h lib/check.h lib/clangimport.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h
735735
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testclangimport.cpp
736736

737-
test/testclass.o: test/testclass.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
737+
test/testclass.o: test/testclass.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
738738
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testclass.cpp
739739

740740
test/testcmdlineparser.o: test/testcmdlineparser.cpp cli/cmdlinelogger.h cli/cmdlineparser.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h

lib/check.h

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,7 @@ class CPPCHECKLIB Check {
120120
}
121121

122122
// Return true if an error is reported.
123-
virtual bool analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<FileInfo*> &fileInfo, const Settings& /*settings*/, ErrorLogger & /*errorLogger*/) {
124-
(void)ctu;
125-
(void)fileInfo;
126-
//(void)settings;
127-
//(void)errorLogger;
123+
virtual bool analyseWholeProgram(const CTU::FileInfo& /*ctu*/, const std::list<FileInfo*>& /*fileInfo*/, const Settings& /*settings*/, ErrorLogger & /*errorLogger*/) {
128124
return false;
129125
}
130126

lib/checkbufferoverrun.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -982,17 +982,18 @@ Check::FileInfo * CheckBufferOverrun::loadFileInfoFromXml(const tinyxml2::XMLEle
982982
}
983983

984984
/** @brief Analyse all file infos for all TU */
985-
bool CheckBufferOverrun::analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger)
985+
bool CheckBufferOverrun::analyseWholeProgram(const CTU::FileInfo &ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger)
986986
{
987-
if (!ctu)
988-
return false;
989-
bool foundErrors = false;
990-
991987
CheckBufferOverrun dummy(nullptr, &settings, &errorLogger);
992988
dummy.
993989
logChecker("CheckBufferOverrun::analyseWholeProgram");
994990

995-
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu->getCallsMap();
991+
if (fileInfo.empty())
992+
return false;
993+
994+
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu.getCallsMap();
995+
996+
bool foundErrors = false;
996997

997998
for (const Check::FileInfo* fi1 : fileInfo) {
998999
const auto *fi = dynamic_cast<const MyFileInfo*>(fi1);

lib/checkbufferoverrun.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class CPPCHECKLIB CheckBufferOverrun : public Check {
7272
Check::FileInfo *getFileInfo(const Tokenizer &tokenizer, const Settings &settings) const override;
7373

7474
/** @brief Analyse all file infos for all TU */
75-
bool analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger) override;
75+
bool analyseWholeProgram(const CTU::FileInfo &ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger) override;
7676

7777
void arrayIndex();
7878
void arrayIndexError(const Token* tok,

lib/checkclass.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3696,18 +3696,22 @@ Check::FileInfo * CheckClass::loadFileInfoFromXml(const tinyxml2::XMLElement *xm
36963696
return fileInfo;
36973697
}
36983698

3699-
bool CheckClass::analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger)
3699+
bool CheckClass::analyseWholeProgram(const CTU::FileInfo &ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger)
37003700
{
3701-
bool foundErrors = false;
3702-
(void)ctu; // This argument is unused
3703-
(void)settings; // This argument is unused
3704-
3705-
std::unordered_map<std::string, MyFileInfo::NameLoc> all;
3701+
(void)ctu;
3702+
(void)settings;
37063703

37073704
CheckClass dummy(nullptr, &settings, &errorLogger);
37083705
dummy.
37093706
logChecker("CheckClass::analyseWholeProgram");
37103707

3708+
if (fileInfo.empty())
3709+
return false;
3710+
3711+
bool foundErrors = false;
3712+
3713+
std::unordered_map<std::string, MyFileInfo::NameLoc> all;
3714+
37113715
for (const Check::FileInfo* fi1 : fileInfo) {
37123716
const auto *fi = dynamic_cast<const MyFileInfo*>(fi1);
37133717
if (!fi)

lib/checkclass.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ class CPPCHECKLIB CheckClass : public Check {
138138
Check::FileInfo * loadFileInfoFromXml(const tinyxml2::XMLElement *xmlElement) const override;
139139

140140
/** @brief Analyse all file infos for all TU */
141-
bool analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger) override;
141+
bool analyseWholeProgram(const CTU::FileInfo &ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger) override;
142142

143143
const SymbolDatabase* mSymbolDatabase{};
144144

lib/checknullpointer.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -634,18 +634,20 @@ Check::FileInfo * CheckNullPointer::loadFileInfoFromXml(const tinyxml2::XMLEleme
634634
return fileInfo;
635635
}
636636

637-
bool CheckNullPointer::analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger)
637+
bool CheckNullPointer::analyseWholeProgram(const CTU::FileInfo &ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger)
638638
{
639-
if (!ctu)
640-
return false;
641-
bool foundErrors = false;
642-
(void)settings; // This argument is unused
639+
(void)settings;
643640

644641
CheckNullPointer dummy(nullptr, &settings, &errorLogger);
645642
dummy.
646643
logChecker("CheckNullPointer::analyseWholeProgram"); // unusedfunctions
647644

648-
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu->getCallsMap();
645+
if (fileInfo.empty())
646+
return false;
647+
648+
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu.getCallsMap();
649+
650+
bool foundErrors = false;
649651

650652
for (const Check::FileInfo* fi1 : fileInfo) {
651653
const auto *fi = dynamic_cast<const MyFileInfo*>(fi1);

lib/checknullpointer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ class CPPCHECKLIB CheckNullPointer : public Check {
9898
Check::FileInfo * loadFileInfoFromXml(const tinyxml2::XMLElement *xmlElement) const override;
9999

100100
/** @brief Analyse all file infos for all TU */
101-
bool analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger) override;
101+
bool analyseWholeProgram(const CTU::FileInfo &ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger) override;
102102

103103
/** Get error messages. Used by --errorlist */
104104
void getErrorMessages(ErrorLogger *errorLogger, const Settings *settings) const override;

lib/checkuninitvar.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1742,14 +1742,18 @@ Check::FileInfo * CheckUninitVar::loadFileInfoFromXml(const tinyxml2::XMLElement
17421742
return fileInfo;
17431743
}
17441744

1745-
bool CheckUninitVar::analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger)
1745+
bool CheckUninitVar::analyseWholeProgram(const CTU::FileInfo &ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger)
17461746
{
1747-
if (!ctu)
1747+
(void)settings;
1748+
1749+
// TODO: logChecker
1750+
1751+
if (fileInfo.empty())
17481752
return false;
1749-
bool foundErrors = false;
1750-
(void)settings; // This argument is unused
17511753

1752-
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu->getCallsMap();
1754+
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu.getCallsMap();
1755+
1756+
bool foundErrors = false;
17531757

17541758
for (const Check::FileInfo* fi1 : fileInfo) {
17551759
const auto *fi = dynamic_cast<const MyFileInfo*>(fi1);

lib/checkuninitvar.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class CPPCHECKLIB CheckUninitVar : public Check {
101101
Check::FileInfo * loadFileInfoFromXml(const tinyxml2::XMLElement *xmlElement) const override;
102102

103103
/** @brief Analyse all file infos for all TU */
104-
bool analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger) override;
104+
bool analyseWholeProgram(const CTU::FileInfo &ctu, const std::list<Check::FileInfo*> &fileInfo, const Settings& settings, ErrorLogger &errorLogger) override;
105105

106106
void uninitvarError(const Token* tok, const ValueFlow::Value& v);
107107
void uninitdataError(const Token *tok, const std::string &varname);

0 commit comments

Comments
 (0)