Ref T488 Update cppcheck suppressions.

This commit is contained in:
Mat Sutcliffe
2018-12-26 20:52:27 +00:00
parent 84a5349c6c
commit 5a17f43a5b
10 changed files with 18 additions and 26 deletions

2
Jenkinsfile vendored
View File

@@ -26,7 +26,7 @@ builders['Build swift Linux'] = {
} }
stage('Linux Checks') { stage('Linux Checks') {
sh 'cppcheck --xml --xml-version=2 --inline-suppr --std=c++11 -ibuild --enable=style,unusedFunction -i externals ' + sh 'cppcheck --xml --xml-version=2 --inline-suppr --std=c++14 -ibuild --enable=style,unusedFunction -i externals ' +
'--suppressions-list=cppcheck.supp --library=qt.cfg --library=posix.cfg . 2> cppcheck.xml' '--suppressions-list=cppcheck.supp --library=qt.cfg --library=posix.cfg . 2> cppcheck.xml'
publishCppcheck allowNoReport: true, pattern: 'cppcheck.xml' publishCppcheck allowNoReport: true, pattern: 'cppcheck.xml'

View File

@@ -5,33 +5,17 @@
// [error id]:[filename2] // [error id]:[filename2]
// [error id] // [error id]
// False positive caused by missing support for C++11 feature
unusedPrivateFunction:src/blackmisc/lockfree.h
// Ignore noExplicitConstructor for now. // Ignore noExplicitConstructor for now.
noExplicitConstructor noExplicitConstructor
// Ignore useStlAlgorithm for now (consider designing our own useBlackMiscAlgorithm checks)
useStlAlgorithm
// Internal errors
cppcheckError
// Ignore style issues in g2clib // Ignore style issues in g2clib
variableScope:src/plugins/weatherdata/gfs/g2clib/*.c variableScope:src/plugins/weatherdata/gfs/g2clib/*.c
// Shared pointers should be passed by value
passedByValue:src/blackmisc/lockfree.h
// Passing std::function by value is acceptable
passedByValue:src/xswiftbus/libxplanemp/src/ResourceManager.h
passedByValue:tests/blackcore/vatsim/testnetwork/expect.h
passedByValue:src/xswiftbus/command.h
// Unique pointers should be passed by value
passedByValue:src/xswiftbus/menus.h
passedByValue:src/xswiftbus/menus.cpp
// cppcheck cannot handle the advanced workaround in use
operatorEqRetRefThis:src/blackmisc/iterator.h
// Ignore unusedFunction as it has too many false positives (especially in tests) // Ignore unusedFunction as it has too many false positives (especially in tests)
unusedFunction unusedFunction
// Return value of those functions is not required.
ignoredReturnValue:src/blackmisc/dbusserver.cpp
ignoredReturnValue:src/blackmisc/simplecommandparser.cpp

View File

@@ -318,6 +318,7 @@ namespace BlackGui
ui->le_SimulatorDirectory->setPlaceholderText(simDir.isEmpty() ? "Simulator directory" : simDir); ui->le_SimulatorDirectory->setPlaceholderText(simDir.isEmpty() ? "Simulator directory" : simDir);
//! \fixme correct version when Qt multiline placeholder is fixed https://bugreports.qt.io/browse/QTBUG-43817 //! \fixme correct version when Qt multiline placeholder is fixed https://bugreports.qt.io/browse/QTBUG-43817
// cppcheck-suppress knownConditionTrueFalse
constexpr bool BrokenMultilinePlaceholder = true; // last checked with Qt 5.10 constexpr bool BrokenMultilinePlaceholder = true; // last checked with Qt 5.10
// we take the settings and update to latest sim.directory // we take the settings and update to latest sim.directory
@@ -332,6 +333,7 @@ namespace BlackGui
else else
{ {
const QString ms = m.join("<br>"); const QString ms = m.join("<br>");
// cppcheck-suppress knownConditionTrueFalse
if (BrokenMultilinePlaceholder && m.size() > 1) if (BrokenMultilinePlaceholder && m.size() > 1)
{ {
ui->pte_ModelDirectories->setToolTip(unwrappedTooltip(ms)); ui->pte_ModelDirectories->setToolTip(unwrappedTooltip(ms));

View File

@@ -367,6 +367,7 @@ namespace BlackMisc
QString p = port.toLower().trimmed(); QString p = port.toLower().trimmed();
if (!p.isEmpty()) if (!p.isEmpty())
{ {
// cppcheck-suppress ignoredReturnValue
p.toShort(&ok); p.toShort(&ok);
if (!ok) if (!ok)
{ {

View File

@@ -55,7 +55,8 @@ namespace BlackMisc
{ {
// Work around lambda's deleted copy assignment operator // Work around lambda's deleted copy assignment operator
this->~OutputIterator(); this->~OutputIterator();
return *new (this) OutputIterator(other); new (this) OutputIterator(other);
return *this;
} }
//! Destructor. //! Destructor.

View File

@@ -431,6 +431,7 @@ namespace BlackMisc
if (value.isUndefined()) if (value.isUndefined())
{ {
constexpr bool required = false; //! \fixme add RequiredForJson flag in metaclass system constexpr bool required = false; //! \fixme add RequiredForJson flag in metaclass system
// cppcheck-suppress knownConditionTrueFalse
if (required) { throw CJsonException(QStringLiteral("Missing required member '%1'").arg(member.latin1Name())); } if (required) { throw CJsonException(QStringLiteral("Missing required member '%1'").arg(member.latin1Name())); }
} }
else else

View File

@@ -87,6 +87,7 @@ namespace BlackMisc
const QString p = this->part(index); const QString p = this->part(index);
if (p.isEmpty()) { return false; } if (p.isEmpty()) { return false; }
bool ok = false; bool ok = false;
// cppcheck-suppress ignoredReturnValue
p.toInt(&ok); p.toInt(&ok);
return ok; return ok;
} }

View File

@@ -2391,6 +2391,7 @@ namespace BlackSimPlugin
void CSimulatorFsxCommon::traceSendId(const CSimConnectObject &simObject, const QString &functionName, const QString &details, bool forceTrace) void CSimulatorFsxCommon::traceSendId(const CSimConnectObject &simObject, const QString &functionName, const QString &details, bool forceTrace)
{ {
if (!forceTrace && !this->isTracingSendId()) { return; } if (!forceTrace && !this->isTracingSendId()) { return; }
// cppcheck-suppress knownConditionTrueFalse
if (MaxSendIdTraces < 1) { return; } if (MaxSendIdTraces < 1) { return; }
DWORD dwLastId = 0; DWORD dwLastId = 0;
const HRESULT hr = SimConnect_GetLastSentPacketID(m_hSimConnect, &dwLastId); const HRESULT hr = SimConnect_GetLastSentPacketID(m_hSimConnect, &dwLastId);

View File

@@ -36,7 +36,7 @@ namespace XSwiftBus
CDBusConnection::~CDBusConnection() CDBusConnection::~CDBusConnection()
{ {
close(); close();
if (m_connection) { dispatch(); } if (m_connection) { dispatch(); } // dispatch is virtual, but safe to call in dtor, as it's declared final
if (m_dispatcher) { m_dispatcher->remove(this); } if (m_dispatcher) { m_dispatcher->remove(this); }
} }

View File

@@ -85,7 +85,8 @@ namespace XSwiftBus
CDBusError lastError() const { return m_lastError; } CDBusError lastError() const { return m_lastError; }
protected: protected:
virtual void dispatch() override; // cppcheck-suppress virtualCallInConstructor
virtual void dispatch() override final;
private: private:
void setDispatchStatus(DBusConnection *connection, DBusDispatchStatus status); void setDispatchStatus(DBusConnection *connection, DBusDispatchStatus status);