optimized suppression lookups a bit when no suppressions exist (#4839)
This commit is contained in:
parent
5af6ca6637
commit
0ec2d84f1a
|
@ -169,7 +169,7 @@ int ProcessExecutor::handleRead(int rpipe, unsigned int &result)
|
||||||
std::exit(EXIT_FAILURE);
|
std::exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mSettings.nomsg.isSuppressed(msg.toSuppressionsErrorMessage())) {
|
if (!mSettings.nomsg.isSuppressed(msg)) {
|
||||||
// Alert only about unique errors
|
// Alert only about unique errors
|
||||||
std::string errmsg = msg.toString(mSettings.verbose);
|
std::string errmsg = msg.toString(mSettings.verbose);
|
||||||
if (std::find(mErrorList.cbegin(), mErrorList.cend(), errmsg) == mErrorList.cend()) {
|
if (std::find(mErrorList.cbegin(), mErrorList.cend(), errmsg) == mErrorList.cend()) {
|
||||||
|
@ -376,7 +376,7 @@ void ProcessExecutor::reportInternalChildErr(const std::string &childname, const
|
||||||
"cppcheckError",
|
"cppcheckError",
|
||||||
Certainty::normal);
|
Certainty::normal);
|
||||||
|
|
||||||
if (!mSettings.nomsg.isSuppressed(errmsg.toSuppressionsErrorMessage()))
|
if (!mSettings.nomsg.isSuppressed(errmsg))
|
||||||
mErrorLogger.reportErr(errmsg);
|
mErrorLogger.reportErr(errmsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ private:
|
||||||
|
|
||||||
void report(const ErrorMessage &msg, MessageType msgType)
|
void report(const ErrorMessage &msg, MessageType msgType)
|
||||||
{
|
{
|
||||||
if (mThreadExecutor.mSettings.nomsg.isSuppressed(msg.toSuppressionsErrorMessage()))
|
if (mThreadExecutor.mSettings.nomsg.isSuppressed(msg))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Alert only about unique errors
|
// Alert only about unique errors
|
||||||
|
|
|
@ -1615,6 +1615,7 @@ void CppCheck::reportErr(const ErrorMessage &msg)
|
||||||
if (!mSettings.buildDir.empty())
|
if (!mSettings.buildDir.empty())
|
||||||
mAnalyzerInformation.reportErr(msg);
|
mAnalyzerInformation.reportErr(msg);
|
||||||
|
|
||||||
|
// TODO: only convert if necessary
|
||||||
const Suppressions::ErrorMessage errorMessage = msg.toSuppressionsErrorMessage();
|
const Suppressions::ErrorMessage errorMessage = msg.toSuppressionsErrorMessage();
|
||||||
|
|
||||||
if (mUseGlobalSuppressions) {
|
if (mUseGlobalSuppressions) {
|
||||||
|
@ -1653,8 +1654,7 @@ void CppCheck::reportProgress(const std::string &filename, const char stage[], c
|
||||||
|
|
||||||
void CppCheck::reportInfo(const ErrorMessage &msg)
|
void CppCheck::reportInfo(const ErrorMessage &msg)
|
||||||
{
|
{
|
||||||
const Suppressions::ErrorMessage &errorMessage = msg.toSuppressionsErrorMessage();
|
if (!mSettings.nomsg.isSuppressed(msg))
|
||||||
if (!mSettings.nomsg.isSuppressed(errorMessage))
|
|
||||||
mErrorLogger.reportInfo(msg);
|
mErrorLogger.reportInfo(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -379,6 +379,13 @@ bool Suppressions::isSuppressed(const Suppressions::ErrorMessage &errmsg)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Suppressions::isSuppressed(const ::ErrorMessage &errmsg)
|
||||||
|
{
|
||||||
|
if (mSuppressions.empty())
|
||||||
|
return false;
|
||||||
|
return isSuppressed(errmsg.toSuppressionsErrorMessage());
|
||||||
|
}
|
||||||
|
|
||||||
bool Suppressions::isSuppressedLocal(const Suppressions::ErrorMessage &errmsg)
|
bool Suppressions::isSuppressedLocal(const Suppressions::ErrorMessage &errmsg)
|
||||||
{
|
{
|
||||||
const bool unmatchedSuppression(errmsg.errorId == "unmatchedSuppression");
|
const bool unmatchedSuppression(errmsg.errorId == "unmatchedSuppression");
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
class Tokenizer;
|
class Tokenizer;
|
||||||
|
class ErrorMessage;
|
||||||
|
|
||||||
/** @brief class for handling suppressions */
|
/** @brief class for handling suppressions */
|
||||||
class CPPCHECKLIB Suppressions {
|
class CPPCHECKLIB Suppressions {
|
||||||
|
@ -178,6 +179,13 @@ public:
|
||||||
*/
|
*/
|
||||||
bool isSuppressed(const ErrorMessage &errmsg);
|
bool isSuppressed(const ErrorMessage &errmsg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns true if this message should not be shown to the user.
|
||||||
|
* @param errmsg error message
|
||||||
|
* @return true if this error is suppressed.
|
||||||
|
*/
|
||||||
|
bool isSuppressed(const ::ErrorMessage &errmsg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns true if this message should not be shown to the user, only uses local suppressions.
|
* @brief Returns true if this message should not be shown to the user, only uses local suppressions.
|
||||||
* @param errmsg error message
|
* @param errmsg error message
|
||||||
|
|
|
@ -63,7 +63,7 @@ public:
|
||||||
next->reportOut(outmsg);
|
next->reportOut(outmsg);
|
||||||
}
|
}
|
||||||
void reportErr(const ErrorMessage &msg) override {
|
void reportErr(const ErrorMessage &msg) override {
|
||||||
if (!msg.callStack.empty() && !settings.nomsg.isSuppressed(msg.toSuppressionsErrorMessage()))
|
if (!msg.callStack.empty() && !settings.nomsg.isSuppressed(msg))
|
||||||
next->reportErr(msg);
|
next->reportErr(msg);
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue