diff --git a/lib/checkersidmapping.cpp b/lib/checkersidmapping.cpp index 51776bb058d..ed5e0aa4ec5 100644 --- a/lib/checkersidmapping.cpp +++ b/lib/checkersidmapping.cpp @@ -52,6 +52,7 @@ std::vector checkers::idMappingAutosar{ {"a8-4-2", "missingReturn"}, {"a8-5-0", "uninitdata"}, {"m9-3-3", "functionConst,functionStatic"}, + {"m10-2-1", "duplInheritedMember"}, {"a12-1-1", "uninitMemberVar"}, {"m12-1-1", "virtualCallInConstructor"}, {"a12-1-4", "noExplicitConstructor"}, @@ -120,7 +121,7 @@ std::vector checkers::idMappingMisraC{ {"1.1", "syntaxError"}, {"1.3", "error"}, {"2.1", "duplicateBreak,unreachableCode"}, - {"2.2", "redundantCondition,redundantAssignment,redundantAssignInSwitch,unreadVariable"}, + {"2.2", "constStatement,redundantCondition,redundantAssignment,redundantAssignInSwitch,unreadVariable"}, {"2.6", "unusedLabel"}, {"2.8", "unusedVariable"}, {"5.3", "shadowVariable"}, @@ -167,6 +168,7 @@ std::vector checkers::idMappingMisraCpp2008{ {"5-2-4", "cstyleCast"}, {"5-3-4", "sizeofFunctionCall"}, {"5-8-1", "shiftTooManyBits"}, + {"6-6-5", "missingReturn"}, {"7-1-1", "constVariable,constParameter"}, {"7-1-2", "constParameter"}, {"7-5-1", "autoVariables,returnReference,returnTempReference"}, @@ -175,6 +177,7 @@ std::vector checkers::idMappingMisraCpp2008{ {"8-4-3", "missingReturn"}, {"8-5-1", "uninitvar,uninitdata,uninitStructMember,uninitMemberVar,uninitMemberVarPrivate,uninitDerivedMemberVar,uninitDerivedMemberVarPrivate"}, {"9-3-3", "functionConst,functionStatic"}, + {"10-2-1", "duplInheritedMember"}, {"12-1-1", "virtualCallInConstructor"}, {"12-1-3", "noExplicitConstructor"}, {"15-3-1", "exceptThrowInDestructor"}, @@ -190,6 +193,7 @@ std::vector checkers::idMappingMisraCpp2023{ {"Dir 0.3.2", "invalidFunctionArg,invalidFunctionArgBool,invalidFunctionArgStr"}, {"4.1.3", "error"}, {"4.6.1", "unknownEvaluationOrder"}, + {"5.10.1", "syntaxError"}, {"6.2.1", "ctuOneDefinitionRuleViolation"}, {"6.4.1", "shadowVariable"}, {"6.8.1", "danglingLifetime"}, @@ -202,6 +206,7 @@ std::vector checkers::idMappingMisraCpp2023{ {"10.1.1", "constParameter,constParameterReference"}, {"11.6.2", "uninitvar"}, {"15.1.1", "virtualCallInConstructor"}, + {"15.1.3", "noExplicitConstructor"}, {"15.1.4", "uninitMemberVar"}, {"Dir 15.8.1", "operatorEqToSelf"}, {"19.3.5", "preprocessorErrorDirective"}, diff --git a/lib/checkother.cpp b/lib/checkother.cpp index 73c9f03e7e2..7b4ad1238be 100644 --- a/lib/checkother.cpp +++ b/lib/checkother.cpp @@ -2087,7 +2087,8 @@ static bool isConstTop(const Token *tok) void CheckOther::checkIncompleteStatement() { - if (!mSettings->severity.isEnabled(Severity::warning)) + if (!mSettings->severity.isEnabled(Severity::warning) && + !mSettings->isPremiumEnabled("constStatement")) return; logChecker("CheckOther::checkIncompleteStatement"); // warning @@ -2139,7 +2140,7 @@ void CheckOther::checkIncompleteStatement() if (tok->isCpp() && tok->str() == "&" && !(tok->astOperand1() && tok->astOperand1()->valueType() && tok->astOperand1()->valueType()->isIntegral())) // Possible archive continue; - const bool inconclusive = tok->isConstOp(); + const bool inconclusive = tok->isConstOp() && !mSettings->isPremiumEnabled("constStatement"); if (mSettings->certainty.isEnabled(Certainty::inconclusive) || !inconclusive) constStatementError(tok, tok->isNumber() ? "numeric" : "string", inconclusive); } diff --git a/lib/settings.cpp b/lib/settings.cpp index cb828598ff4..65186f9cbe1 100644 --- a/lib/settings.cpp +++ b/lib/settings.cpp @@ -465,6 +465,7 @@ static const std::set misrac2012Checkers{ "comparePointers", "compareValueOutOfTypeRangeError", "constParameterPointer", + "constStatement", "danglingLifetime", "danglingTemporaryLifetime", "duplicateBreak", @@ -507,6 +508,7 @@ static const std::set misrac2023Checkers{ "comparePointers", "compareValueOutOfTypeRangeError", "constParameterPointer", + "constStatement", "danglingLifetime", "danglingTemporaryLifetime", "duplicateBreak",