/* * Cppcheck - A tool for static C/C++ code analysis * Copyright (C) 2007-2026 Cppcheck team. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ // This file is auto-generated by tools/get_checkers.py: // python3 tools/get_checkers.py > lib/checkers.cpp #include "checkers.h" namespace checkers { const std::map allCheckers{ {"Check64BitPortability::pointerassignment","portability"}, {"CheckAssert::assertWithSideEffects","warning"}, {"CheckAutoVariables::assignFunctionArg","style,warning"}, {"CheckAutoVariables::autoVariables",""}, {"CheckAutoVariables::checkVarLifetime",""}, {"CheckBool::checkAssignBoolToFloat","style,c++"}, {"CheckBool::checkAssignBoolToPointer",""}, {"CheckBool::checkBitwiseOnBoolean","style,inconclusive"}, {"CheckBool::checkComparisonOfBoolExpressionWithInt","warning"}, {"CheckBool::checkComparisonOfBoolWithBool","style,c++"}, {"CheckBool::checkComparisonOfBoolWithInt","warning,c++"}, {"CheckBool::checkComparisonOfFuncReturningBool","style,c++"}, {"CheckBool::checkIncrementBoolean","style"}, {"CheckBool::pointerArithBool",""}, {"CheckBool::returnValueOfFunctionReturningBool","style"}, {"CheckBufferOverrun::analyseWholeProgram",""}, {"CheckBufferOverrun::argumentSize","warning"}, {"CheckBufferOverrun::arrayIndex",""}, {"CheckBufferOverrun::arrayIndexThenCheck","style"}, {"CheckBufferOverrun::bufferOverflow",""}, {"CheckBufferOverrun::negativeArraySize",""}, {"CheckBufferOverrun::objectIndex",""}, {"CheckBufferOverrun::pointerArithmetic","portability"}, {"CheckBufferOverrun::stringNotZeroTerminated","warning,inconclusive"}, {"CheckClass::analyseWholeProgram",""}, {"CheckClass::checkConst","style,inconclusive"}, {"CheckClass::checkConstructors","style,warning"}, {"CheckClass::checkCopyConstructors","warning"}, {"CheckClass::checkDuplInheritedMembers","warning"}, {"CheckClass::checkExplicitConstructors","style"}, {"CheckClass::checkMemset",""}, {"CheckClass::checkMissingOverride","style,c++03"}, {"CheckClass::checkReturnByReference","performance"}, {"CheckClass::checkSelfInitialization",""}, {"CheckClass::checkThisUseAfterFree","warning"}, {"CheckClass::checkUnsafeClassRefMember","warning,safeChecks"}, {"CheckClass::checkUselessOverride","style"}, {"CheckClass::checkVirtualFunctionCallInConstructor","warning"}, {"CheckClass::initializationListUsage","performance"}, {"CheckClass::initializerListOrder","style,inconclusive"}, {"CheckClass::operatorEqRetRefThis","style"}, {"CheckClass::operatorEqToSelf","warning"}, {"CheckClass::privateFunctions","style"}, {"CheckClass::thisSubtraction","warning"}, {"CheckClass::virtualDestructor",""}, {"CheckCondition::alwaysTrueFalse","style"}, {"CheckCondition::assignIf","style"}, {"CheckCondition::checkAssignmentInCondition","style"}, {"CheckCondition::checkBadBitmaskCheck","style"}, {"CheckCondition::checkCompareValueOutOfTypeRange","style,platform"}, {"CheckCondition::checkDuplicateConditionalAssign","style"}, {"CheckCondition::checkIncorrectLogicOperator","style,warning"}, {"CheckCondition::checkInvalidTestForOverflow","warning"}, {"CheckCondition::checkModuloAlwaysTrueFalse","warning"}, {"CheckCondition::checkPointerAdditionResultNotNull","warning"}, {"CheckCondition::clarifyCondition","style"}, {"CheckCondition::comparison","style"}, {"CheckCondition::duplicateCondition","style"}, {"CheckCondition::multiCondition","style"}, {"CheckCondition::multiCondition2","warning"}, {"CheckExceptionSafety::checkCatchExceptionByValue","style"}, {"CheckExceptionSafety::checkRethrowCopy","style"}, {"CheckExceptionSafety::deallocThrow","warning"}, {"CheckExceptionSafety::destructors","warning"}, {"CheckExceptionSafety::nothrowThrows",""}, {"CheckExceptionSafety::rethrowNoCurrentException",""}, {"CheckExceptionSafety::unhandledExceptionSpecification","style,inconclusive"}, {"CheckFunctions::checkIgnoredReturnValue","style,warning"}, {"CheckFunctions::checkMathFunctions","style,warning,c99,c++11"}, {"CheckFunctions::checkMissingReturn",""}, {"CheckFunctions::checkProhibitedFunctions",""}, {"CheckFunctions::invalidFunctionUsage",""}, {"CheckFunctions::memsetInvalid2ndParam","warning,portability"}, {"CheckFunctions::memsetZeroBytes","warning"}, {"CheckFunctions::returnLocalStdMove","performance,c++11"}, {"CheckFunctions::useStandardLibrary","style"}, {"CheckIO::checkCoutCerrMisusage","c"}, {"CheckIO::checkFileUsage",""}, {"CheckIO::checkWrongPrintfScanfArguments",""}, {"CheckIO::invalidScanf",""}, {"CheckLeakAutoVar::check","notclang"}, {"CheckMemoryLeakInClass::check",""}, {"CheckMemoryLeakInFunction::checkReallocUsage",""}, {"CheckMemoryLeakNoVar::check",""}, {"CheckMemoryLeakNoVar::checkForUnsafeArgAlloc",""}, {"CheckMemoryLeakStructMember::check",""}, {"CheckNullPointer::analyseWholeProgram","unusedfunctions"}, {"CheckNullPointer::arithmetic",""}, {"CheckNullPointer::nullConstantDereference",""}, {"CheckNullPointer::nullPointer",""}, {"CheckOther::checkAccessOfMovedVariable","c++11,warning"}, {"CheckOther::checkCastIntToCharAndBack","warning"}, {"CheckOther::checkCharVariable","warning,portability"}, {"CheckOther::checkComparePointers",""}, {"CheckOther::checkComparisonFunctionIsAlwaysTrueOrFalse","warning"}, {"CheckOther::checkConstPointer","style"}, {"CheckOther::checkConstVariable","style,c++"}, {"CheckOther::checkDuplicateBranch","style,inconclusive"}, {"CheckOther::checkDuplicateExpression","style,warning"}, {"CheckOther::checkEvaluationOrder",""}, {"CheckOther::checkFuncArgNamesDifferent","style,warning,inconclusive"}, {"CheckOther::checkIncompleteArrayFill","warning,portability,inconclusive"}, {"CheckOther::checkIncompleteStatement","warning"}, {"CheckOther::checkInterlockedDecrement","windows-platform"}, {"CheckOther::checkInvalidFree",""}, {"CheckOther::checkKnownArgument","style"}, {"CheckOther::checkKnownPointerToBool","style"}, {"CheckOther::checkMisusedScopedObject","style,c++"}, {"CheckOther::checkModuloOfOne","style"}, {"CheckOther::checkNanInArithmeticExpression","style"}, {"CheckOther::checkNegativeBitwiseShift",""}, {"CheckOther::checkOverlappingWrite",""}, {"CheckOther::checkPassByReference","performance,c++"}, {"CheckOther::checkRedundantAssignment","style"}, {"CheckOther::checkRedundantCopy","c++,performance,inconclusive"}, {"CheckOther::checkRedundantPointerOp","style"}, {"CheckOther::checkShadowVariables","style"}, {"CheckOther::checkSignOfUnsignedVariable","style"}, {"CheckOther::checkSuspiciousCaseInSwitch","warning,inconclusive"}, {"CheckOther::checkSuspiciousSemicolon","warning,inconclusive"}, {"CheckOther::checkUnionZeroInit","portability"}, {"CheckOther::checkUnreachableCode","style"}, {"CheckOther::checkUnusedLabel","style,warning"}, {"CheckOther::checkVarFuncNullUB","portability"}, {"CheckOther::checkVariableScope","style,notclang"}, {"CheckOther::checkZeroDivision",""}, {"CheckOther::clarifyCalculation","style"}, {"CheckOther::clarifyStatement","warning"}, {"CheckOther::invalidPointerCast","portability"}, {"CheckOther::redundantBitwiseOperationInSwitch","warning"}, {"CheckOther::suspiciousFloatingPointCast","style"}, {"CheckOther::warningDangerousTypeCast","warning,c++"}, {"CheckOther::warningIntToPointerCast","portability"}, {"CheckOther::warningOldStylePointerCast","style,c++"}, {"CheckPostfixOperator::postfixOperator","performance"}, {"CheckSizeof::checkSizeofForArrayParameter","warning"}, {"CheckSizeof::checkSizeofForNumericParameter","warning"}, {"CheckSizeof::checkSizeofForPointerSize","warning"}, {"CheckSizeof::sizeofCalculation","warning"}, {"CheckSizeof::sizeofFunction","warning"}, {"CheckSizeof::sizeofVoid","portability"}, {"CheckSizeof::sizeofsizeof","warning"}, {"CheckSizeof::suspiciousSizeofCalculation","warning,inconclusive"}, {"CheckStl::checkDereferenceInvalidIterator","warning"}, {"CheckStl::checkDereferenceInvalidIterator2",""}, {"CheckStl::checkFindInsert","performance"}, {"CheckStl::checkMutexes","warning"}, {"CheckStl::erase",""}, {"CheckStl::eraseIteratorOutOfBounds",""}, {"CheckStl::if_find","warning,performance"}, {"CheckStl::invalidContainer",""}, {"CheckStl::iterators",""}, {"CheckStl::knownEmptyContainer","style"}, {"CheckStl::misMatchingContainerIterator",""}, {"CheckStl::misMatchingContainers",""}, {"CheckStl::missingComparison","warning"}, {"CheckStl::negativeIndex",""}, {"CheckStl::outOfBounds",""}, {"CheckStl::outOfBoundsIndexExpression",""}, {"CheckStl::redundantCondition","style"}, {"CheckStl::size","performance,c++03"}, {"CheckStl::stlBoundaries",""}, {"CheckStl::stlOutOfBounds",""}, {"CheckStl::string_c_str",""}, {"CheckStl::useStlAlgorithm","style"}, {"CheckStl::uselessCalls","performance,warning"}, {"CheckString::checkAlwaysTrueOrFalseStringCompare","warning"}, {"CheckString::checkIncorrectStringCompare","warning"}, {"CheckString::checkSuspiciousStringCompare","warning"}, {"CheckString::overlappingStrcmp","warning"}, {"CheckString::sprintfOverlappingData",""}, {"CheckString::strPlusChar",""}, {"CheckString::stringLiteralWrite",""}, {"CheckType::checkFloatToIntegerOverflow",""}, {"CheckType::checkIntegerOverflow","platform"}, {"CheckType::checkLongCast","style"}, {"CheckType::checkSignConversion","warning"}, {"CheckType::checkTooBigBitwiseShift","platform"}, {"CheckUninitVar::analyseWholeProgram",""}, {"CheckUninitVar::check",""}, {"CheckUninitVar::valueFlowUninit",""}, {"CheckUnusedFunctions::check","unusedFunction"}, {"CheckUnusedVar::checkFunctionVariableUsage","style"}, {"CheckUnusedVar::checkStructMemberUsage","style"}, {"CheckVaarg::va_list_usage","notclang"}, {"CheckVaarg::va_start_argument",""}, }; const char Req[] = "Required"; const char Adv[] = "Advisory"; const char Man[] = "Mandatory"; const char Doc[] = "Document"; const char Dis[] = "Disapplied"; const std::vector misraC2012Directives{ {1,1,Req,0}, {2,1,Req,0}, {3,1,Req,0}, {4,1,Req,0}, {4,2,Adv,0}, {4,3,Req,0}, {4,4,Adv,0}, {4,5,Adv,0}, {4,6,Adv,3}, {4,7,Req,0}, {4,8,Adv,0}, {4,9,Adv,3}, {4,10,Req,0}, {4,11,Req,3}, {4,12,Req,0}, {4,13,Adv,0}, {4,14,Req,2}, {4,15,Req,3}, {5,1,Req,4}, {5,2,Req,4}, {5,3,Req,4}, }; const std::vector misraC2012Rules{ {1,1,Req,0}, {1,2,Adv,0}, {1,3,Req,0}, {1,4,Req,2}, // Amendment 2 {1,5,Req,3}, // Amendment 3 {2,1,Req,0}, {2,2,Req,0}, {2,3,Adv,0}, {2,4,Adv,0}, {2,5,Adv,0}, {2,6,Adv,0}, {2,7,Adv,0}, {2,8,Adv,0}, {3,1,Req,0}, {3,2,Req,0}, {4,1,Req,0}, {4,2,Adv,0}, {5,1,Req,0}, {5,2,Req,0}, {5,3,Req,0}, {5,4,Req,0}, {5,5,Req,0}, {5,6,Req,0}, {5,7,Req,0}, {5,8,Req,0}, {5,9,Adv,0}, {6,1,Req,0}, {6,2,Req,0}, {6,3,Req,0}, {7,1,Req,0}, {7,2,Req,0}, {7,3,Req,0}, {7,4,Req,0}, {7,5,Man,0}, {7,6,Req,0}, {8,1,Req,0}, {8,2,Req,0}, {8,3,Req,0}, {8,4,Req,0}, {8,5,Req,0}, {8,6,Req,0}, {8,7,Adv,0}, {8,8,Req,0}, {8,9,Adv,0}, {8,10,Req,0}, {8,11,Adv,0}, {8,12,Req,0}, {8,13,Adv,0}, {8,14,Req,0}, {8,15,Req,0}, {8,16,Adv,0}, {8,17,Adv,0}, {9,1,Man,0}, {9,2,Req,0}, {9,3,Req,0}, {9,4,Req,0}, {9,5,Req,0}, {9,6,Req,0}, {9,7,Man,0}, {10,1,Req,0}, {10,2,Req,0}, {10,3,Req,0}, {10,4,Req,0}, {10,5,Adv,0}, {10,6,Req,0}, {10,7,Req,0}, {10,8,Req,0}, {11,1,Req,0}, {11,2,Req,0}, {11,3,Req,0}, {11,4,Adv,0}, {11,5,Adv,0}, {11,6,Req,0}, {11,7,Req,0}, {11,8,Req,0}, {11,9,Req,0}, {11,10,Req,0}, {12,1,Adv,0}, {12,2,Req,0}, {12,3,Adv,0}, {12,4,Adv,0}, {12,5,Man,1}, // Amendment 1 {12,6,Req,4}, // Amendment 4 {13,1,Req,0}, {13,2,Req,0}, {13,3,Adv,0}, {13,4,Adv,0}, {13,5,Req,0}, {13,6,Req,0}, {14,1,Req,0}, {14,2,Req,0}, {14,3,Req,0}, {14,4,Req,0}, {15,1,Adv,0}, {15,2,Req,0}, {15,3,Req,0}, {15,4,Adv,0}, {15,5,Adv,0}, {15,6,Req,0}, {15,7,Req,0}, {16,1,Req,0}, {16,2,Req,0}, {16,3,Req,0}, {16,4,Req,0}, {16,5,Req,0}, {16,6,Req,0}, {16,7,Req,0}, {17,1,Req,0}, {17,2,Req,0}, {17,3,Man,0}, {17,4,Man,0}, {17,5,Req,0}, {17,6,Man,0}, {17,7,Req,0}, {17,8,Adv,0}, {17,9,Man,0}, {17,10,Req,0}, {17,11,Adv,0}, {17,12,Adv,0}, {17,13,Req,0}, {18,1,Req,0}, {18,2,Req,0}, {18,3,Req,0}, {18,4,Adv,0}, {18,5,Adv,0}, {18,6,Req,0}, {18,7,Req,0}, {18,8,Req,0}, {18,9,Req,0}, {18,10,Man,0}, {19,1,Man,0}, {19,2,Adv,0}, {20,1,Adv,0}, {20,2,Req,0}, {20,3,Req,0}, {20,4,Req,0}, {20,5,Adv,0}, {20,6,Req,0}, {20,7,Req,0}, {20,8,Req,0}, {20,9,Req,0}, {20,10,Adv,0}, {20,11,Req,0}, {20,12,Req,0}, {20,13,Req,0}, {20,14,Req,0}, {21,1,Req,0}, {21,2,Req,0}, {21,3,Req,0}, {21,4,Req,0}, {21,5,Req,0}, {21,6,Req,0}, {21,7,Req,0}, {21,8,Req,0}, {21,9,Req,0}, {21,10,Req,0}, {21,11,Adv,0}, {21,12,Req,0}, {21,13,Man,1}, // Amendment 1 {21,14,Req,1}, // Amendment 1 {21,15,Req,1}, // Amendment 1 {21,16,Req,1}, // Amendment 1 {21,17,Man,1}, // Amendment 1 {21,18,Man,1}, // Amendment 1 {21,19,Man,1}, // Amendment 1 {21,20,Man,1}, // Amendment 1 {21,21,Req,3}, // Amendment 3 {21,22,Man,3}, // Amendment 3 {21,23,Req,3}, // Amendment 3 {21,24,Req,3}, // Amendment 3 {21,25,Req,4}, // Amendment 4 {21,26,Req,4}, // Amendment 4 {22,1,Req,0}, {22,2,Man,0}, {22,3,Req,0}, {22,4,Man,0}, {22,5,Man,0}, {22,6,Man,0}, {22,7,Req,1}, // Amendment 1 {22,8,Req,1}, // Amendment 1 {22,9,Req,1}, // Amendment 1 {22,10,Req,1}, // Amendment 1 {22,11,Req,4}, // Amendment 4 {22,12,Man,4}, // Amendment 4 {22,13,Req,4}, // Amendment 4 {22,14,Req,4}, // Amendment 4 {22,15,Req,4}, // Amendment 4 {22,16,Req,4}, // Amendment 4 {22,17,Req,4}, // Amendment 4 {22,18,Req,4}, // Amendment 4 {22,19,Req,4}, // Amendment 4 {22,20,Man,4}, // Amendment 4 {23,1,Adv,3}, // Amendment 3 {23,2,Req,3}, // Amendment 3 {23,3,Adv,3}, // Amendment 3 {23,4,Req,3}, // Amendment 3 {23,5,Adv,3}, // Amendment 3 {23,6,Req,3}, // Amendment 3 {23,7,Adv,3}, // Amendment 3 {23,8,Req,3}, // Amendment 3 }; const std::vector misraC2023Directives{ {1,1,Req,0}, {2,1,Req,0}, {3,1,Req,0}, {4,1,Req,0}, {4,2,Adv,0}, {4,3,Req,0}, {4,4,Adv,0}, {4,5,Adv,0}, {4,6,Adv,0}, {4,7,Req,0}, {4,8,Adv,0}, {4,9,Adv,0}, {4,10,Req,0}, {4,11,Req,0}, {4,12,Req,0}, {4,13,Adv,0}, {4,14,Req,0}, {4,15,Req,0}, {5,1,Req,0}, {5,2,Req,0}, {5,3,Req,0}, }; const std::vector misraC2023Rules{ {1,1,Req,0}, {1,2,Adv,0}, {1,3,Req,0}, {1,4,Req,0}, {1,5,Req,0}, {2,1,Req,0}, {2,2,Req,0}, {2,3,Adv,0}, {2,4,Adv,0}, {2,5,Adv,0}, {2,6,Adv,0}, {2,7,Adv,0}, {2,8,Adv,0}, {3,1,Req,0}, {3,2,Req,0}, {4,1,Req,0}, {4,2,Adv,0}, {5,1,Req,0}, {5,2,Req,0}, {5,3,Req,0}, {5,4,Req,0}, {5,5,Req,0}, {5,6,Req,0}, {5,7,Req,0}, {5,8,Req,0}, {5,9,Adv,0}, {6,1,Req,0}, {6,2,Req,0}, {6,3,Req,0}, {7,1,Req,0}, {7,2,Req,0}, {7,3,Req,0}, {7,4,Req,0}, {7,5,Man,0}, {7,6,Req,0}, {8,1,Req,0}, {8,2,Req,0}, {8,3,Req,0}, {8,4,Req,0}, {8,5,Req,0}, {8,6,Req,0}, {8,7,Adv,0}, {8,8,Req,0}, {8,9,Adv,0}, {8,10,Req,0}, {8,11,Adv,0}, {8,12,Req,0}, {8,13,Adv,0}, {8,14,Req,0}, {8,15,Req,0}, {8,16,Adv,0}, {8,17,Adv,0}, {9,1,Man,0}, {9,2,Req,0}, {9,3,Req,0}, {9,4,Req,0}, {9,5,Req,0}, {9,6,Req,0}, {9,7,Man,0}, {10,1,Req,0}, {10,2,Req,0}, {10,3,Req,0}, {10,4,Req,0}, {10,5,Adv,0}, {10,6,Req,0}, {10,7,Req,0}, {10,8,Req,0}, {11,1,Req,0}, {11,2,Req,0}, {11,3,Req,0}, {11,4,Adv,0}, {11,5,Adv,0}, {11,6,Req,0}, {11,7,Req,0}, {11,8,Req,0}, {11,9,Req,0}, {11,10,Req,0}, {12,1,Adv,0}, {12,2,Req,0}, {12,3,Adv,0}, {12,4,Adv,0}, {12,5,Man,0}, {12,6,Req,0}, {13,1,Req,0}, {13,2,Req,0}, {13,3,Adv,0}, {13,4,Adv,0}, {13,5,Req,0}, {13,6,Req,0}, {14,1,Req,0}, {14,2,Req,0}, {14,3,Req,0}, {14,4,Req,0}, {15,1,Adv,0}, {15,2,Req,0}, {15,3,Req,0}, {15,4,Adv,0}, {15,5,Adv,0}, {15,6,Req,0}, {15,7,Req,0}, {16,1,Req,0}, {16,2,Req,0}, {16,3,Req,0}, {16,4,Req,0}, {16,5,Req,0}, {16,6,Req,0}, {16,7,Req,0}, {17,1,Req,0}, {17,2,Req,0}, {17,3,Man,0}, {17,4,Man,0}, {17,5,Req,0}, {17,6,Man,0}, {17,7,Req,0}, {17,8,Adv,0}, {17,9,Man,0}, {17,10,Req,0}, {17,11,Adv,0}, {17,12,Adv,0}, {17,13,Req,0}, {18,1,Req,0}, {18,2,Req,0}, {18,3,Req,0}, {18,4,Adv,0}, {18,5,Adv,0}, {18,6,Req,0}, {18,7,Req,0}, {18,8,Req,0}, {18,9,Req,0}, {18,10,Man,0}, {19,1,Man,0}, {19,2,Adv,0}, {20,1,Adv,0}, {20,2,Req,0}, {20,3,Req,0}, {20,4,Req,0}, {20,5,Adv,0}, {20,6,Req,0}, {20,7,Req,0}, {20,8,Req,0}, {20,9,Req,0}, {20,10,Adv,0}, {20,11,Req,0}, {20,12,Req,0}, {20,13,Req,0}, {20,14,Req,0}, {21,1,Req,0}, {21,2,Req,0}, {21,3,Req,0}, {21,4,Req,0}, {21,5,Req,0}, {21,6,Req,0}, {21,7,Req,0}, {21,8,Req,0}, {21,9,Req,0}, {21,10,Req,0}, {21,11,Adv,0}, {21,12,Req,0}, {21,13,Man,0}, {21,14,Req,0}, {21,15,Req,0}, {21,16,Req,0}, {21,17,Man,0}, {21,18,Man,0}, {21,19,Man,0}, {21,20,Man,0}, {21,21,Req,0}, {21,22,Man,0}, {21,23,Req,0}, {21,24,Req,0}, {21,25,Req,0}, {21,26,Req,0}, {22,1,Req,0}, {22,2,Man,0}, {22,3,Req,0}, {22,4,Man,0}, {22,5,Man,0}, {22,6,Man,0}, {22,7,Req,0}, {22,8,Req,0}, {22,9,Req,0}, {22,10,Req,0}, {22,11,Req,0}, {22,12,Man,0}, {22,13,Req,0}, {22,14,Man,0}, {22,15,Req,0}, {22,16,Req,0}, {22,17,Req,0}, {22,18,Req,0}, {22,19,Req,0}, {22,20,Man,0}, {23,1,Adv,0}, {23,2,Req,0}, {23,3,Adv,0}, {23,4,Req,0}, {23,5,Adv,0}, {23,6,Req,0}, {23,7,Adv,0}, {23,8,Req,0}, }; const std::vector misraC2025Directives{ {1,1,Req,0}, {1,2,Adv,0}, {2,1,Req,0}, {3,1,Req,0}, {4,1,Req,0}, {4,2,Adv,0}, {4,3,Req,0}, {4,4,Adv,0}, {4,5,Adv,0}, {4,6,Adv,0}, {4,7,Req,0}, {4,8,Adv,0}, {4,9,Adv,0}, {4,10,Req,0}, {4,11,Req,0}, {4,12,Req,0}, {4,13,Adv,0}, {4,14,Req,0}, {4,15,Req,0}, {5,1,Req,0}, {5,2,Req,0}, {5,3,Req,0}, }; const std::vector misraC2025Rules{ {1,1,Req,0}, {1,3,Req,0}, {1,4,Req,0}, {1,5,Req,0}, {2,1,Req,0}, {2,2,Req,0}, {2,3,Adv,0}, {2,4,Adv,0}, {2,5,Adv,0}, {2,6,Adv,0}, {2,7,Adv,0}, {2,8,Adv,0}, {3,1,Req,0}, {3,2,Req,0}, {4,1,Req,0}, {4,2,Adv,0}, {5,1,Req,0}, {5,2,Req,0}, {5,3,Req,0}, {5,4,Req,0}, {5,5,Req,0}, {5,6,Req,0}, {5,7,Req,0}, {5,8,Req,0}, {5,9,Adv,0}, {5,10,Req,0}, {6,1,Req,0}, {6,2,Req,0}, {6,3,Req,0}, {7,1,Req,0}, {7,2,Req,0}, {7,3,Req,0}, {7,4,Req,0}, {7,5,Man,0}, {7,6,Req,0}, {8,1,Req,0}, {8,2,Req,0}, {8,3,Req,0}, {8,4,Req,0}, {8,5,Req,0}, {8,6,Req,0}, {8,7,Adv,0}, {8,8,Req,0}, {8,9,Adv,0}, {8,10,Req,0}, {8,11,Adv,0}, {8,12,Req,0}, {8,13,Adv,0}, {8,14,Req,0}, {8,15,Req,0}, {8,16,Adv,0}, {8,17,Adv,0}, {8,18,Req,0}, {8,19,Adv,0}, {9,1,Man,0}, {9,2,Req,0}, {9,3,Req,0}, {9,4,Req,0}, {9,5,Req,0}, {9,6,Req,0}, {9,7,Man,0}, {10,1,Req,0}, {10,2,Req,0}, {10,3,Req,0}, {10,4,Req,0}, {10,5,Adv,0}, {10,6,Req,0}, {10,7,Req,0}, {10,8,Req,0}, {11,1,Req,0}, {11,2,Req,0}, {11,3,Req,0}, {11,4,Req,0}, {11,5,Adv,0}, {11,6,Req,0}, {11,8,Req,0}, {11,9,Req,0}, {11,10,Req,0}, {11,11,Req,0}, {12,1,Adv,0}, {12,2,Req,0}, {12,3,Adv,0}, {12,4,Adv,0}, {12,5,Man,0}, {12,6,Req,0}, {13,1,Req,0}, {13,2,Req,0}, {13,3,Adv,0}, {13,4,Adv,0}, {13,5,Req,0}, {13,6,Req,0}, {14,1,Req,0}, {14,2,Req,0}, {14,3,Req,0}, {14,4,Req,0}, {15,1,Adv,0}, {15,2,Req,0}, {15,3,Req,0}, {15,4,Adv,0}, {15,5,Dis,0}, {15,6,Req,0}, {15,7,Req,0}, {16,1,Req,0}, {16,2,Req,0}, {16,3,Req,0}, {16,4,Req,0}, {16,5,Req,0}, {16,6,Req,0}, {16,7,Req,0}, {17,1,Req,0}, {17,2,Req,0}, {17,3,Man,0}, {17,4,Man,0}, {17,5,Req,0}, {17,7,Req,0}, {17,8,Adv,0}, {17,9,Man,0}, {17,10,Req,0}, {17,11,Adv,0}, {17,12,Adv,0}, {17,13,Req,0}, {18,1,Req,0}, {18,2,Req,0}, {18,3,Req,0}, {18,4,Adv,0}, {18,5,Adv,0}, {18,6,Req,0}, {18,7,Req,0}, {18,8,Req,0}, {18,9,Req,0}, {18,10,Man,0}, {19,1,Man,0}, {19,2,Adv,0}, {19,3,Req,0}, {20,1,Adv,0}, {20,2,Req,0}, {20,3,Req,0}, {20,4,Req,0}, {20,5,Adv,0}, {20,6,Req,0}, {20,7,Req,0}, {20,8,Req,0}, {20,9,Req,0}, {20,10,Adv,0}, {20,11,Req,0}, {20,12,Req,0}, {20,13,Req,0}, {20,14,Req,0}, {20,15,Req,0}, {21,3,Req,0}, {21,4,Req,0}, {21,5,Req,0}, {21,6,Req,0}, {21,7,Req,0}, {21,8,Req,0}, {21,9,Req,0}, {21,10,Req,0}, {21,11,Adv,0}, {21,12,Req,0}, {21,13,Man,0}, {21,14,Req,0}, {21,15,Req,0}, {21,16,Req,0}, {21,17,Man,0}, {21,18,Man,0}, {21,19,Man,0}, {21,20,Man,0}, {21,21,Req,0}, {21,22,Man,0}, {21,23,Req,0}, {21,24,Req,0}, {21,25,Req,0}, {21,26,Req,0}, {22,1,Req,0}, {22,2,Man,0}, {22,3,Req,0}, {22,4,Man,0}, {22,5,Man,0}, {22,6,Man,0}, {22,7,Req,0}, {22,8,Req,0}, {22,9,Req,0}, {22,10,Req,0}, {22,11,Req,0}, {22,12,Man,0}, {22,13,Req,0}, {22,14,Man,0}, {22,15,Req,0}, {22,16,Req,0}, {22,17,Req,0}, {22,18,Req,0}, {22,19,Req,0}, {22,20,Man,0}, {23,1,Adv,0}, {23,2,Req,0}, {23,3,Adv,0}, {23,4,Req,0}, {23,5,Adv,0}, {23,6,Req,0}, {23,7,Adv,0}, {23,8,Req,0}, }; const std::vector misraCpp2008Rules = { {0,1,1,Req}, {0,1,2,Req}, {0,1,3,Req}, {0,1,4,Req}, {0,1,5,Req}, {0,1,6,Req}, {0,1,7,Req}, {0,1,8,Req}, {0,1,9,Req}, {0,1,10,Req}, {0,1,11,Req}, {0,1,12,Req}, {0,2,1,Req}, {0,3,1,Doc}, {0,3,2,Req}, {0,4,1,Doc}, {0,4,2,Doc}, {0,4,3,Doc}, {1,0,1,Req}, {1,0,2,Doc}, {1,0,3,Doc}, {2,2,1,Doc}, {2,3,1,Req}, {2,5,1,Adv}, {2,7,1,Req}, {2,7,2,Req}, {2,7,3,Adv}, {2,10,1,Req}, {2,10,2,Req}, {2,10,3,Req}, {2,10,4,Req}, {2,10,5,Adv}, {2,10,6,Req}, {2,13,1,Req}, {2,13,2,Req}, {2,13,3,Req}, {2,13,4,Req}, {2,13,5,Req}, {3,1,1,Req}, {3,1,2,Req}, {3,1,3,Req}, {3,2,1,Req}, {3,2,2,Req}, {3,2,3,Req}, {3,2,4,Req}, {3,3,1,Req}, {3,3,2,Req}, {3,4,1,Req}, {3,9,1,Req}, {3,9,2,Adv}, {3,9,3,Req}, {4,5,1,Req}, {4,5,2,Req}, {4,5,3,Req}, {4,10,1,Req}, {4,10,2,Req}, {5,0,1,Req}, {5,0,2,Adv}, {5,0,3,Req}, {5,0,4,Req}, {5,0,5,Req}, {5,0,6,Req}, {5,0,7,Req}, {5,0,8,Req}, {5,0,9,Req}, {5,0,10,Req}, {5,0,11,Req}, {5,0,12,Req}, {5,0,13,Req}, {5,0,14,Req}, {5,0,15,Req}, {5,0,16,Req}, {5,0,17,Req}, {5,0,18,Req}, {5,0,19,Req}, {5,0,20,Req}, {5,0,21,Req}, {5,2,1,Req}, {5,2,2,Req}, {5,2,3,Adv}, {5,2,4,Req}, {5,2,5,Req}, {5,2,6,Req}, {5,2,7,Req}, {5,2,8,Req}, {5,2,9,Adv}, {5,2,10,Adv}, {5,2,11,Req}, {5,2,12,Req}, {5,3,1,Req}, {5,3,2,Req}, {5,3,3,Req}, {5,3,4,Req}, {5,8,1,Req}, {5,14,1,Req}, {5,17,1,Req}, {5,18,1,Req}, {5,19,1,Adv}, {6,2,1,Req}, {6,2,2,Req}, {6,2,3,Req}, {6,3,1,Req}, {6,4,1,Req}, {6,4,2,Req}, {6,4,3,Req}, {6,4,4,Req}, {6,4,5,Req}, {6,4,6,Req}, {6,4,7,Req}, {6,4,8,Req}, {6,5,1,Req}, {6,5,2,Req}, {6,5,3,Req}, {6,5,4,Req}, {6,5,5,Req}, {6,5,6,Req}, {6,6,1,Req}, {6,6,2,Req}, {6,6,3,Req}, {6,6,4,Req}, {6,6,5,Req}, {7,1,1,Req}, {7,1,2,Req}, {7,2,1,Req}, {7,3,1,Req}, {7,3,2,Req}, {7,3,3,Req}, {7,3,4,Req}, {7,3,5,Req}, {7,3,6,Req}, {7,4,1,Doc}, {7,4,2,Req}, {7,4,3,Req}, {7,5,1,Req}, {7,5,2,Req}, {7,5,3,Req}, {7,5,4,Adv}, {8,4,1,Req}, {8,4,2,Req}, {8,4,3,Req}, {8,4,4,Req}, {8,5,1,Req}, {8,5,2,Req}, {8,5,3,Req}, {9,3,1,Req}, {9,3,2,Req}, {9,3,3,Req}, {9,5,1,Req}, {9,6,1,Doc}, {9,6,2,Req}, {9,6,3,Req}, {9,6,4,Req}, {10,1,1,Adv}, {10,1,2,Req}, {10,1,3,Req}, {10,2,1,Adv}, {10,3,1,Req}, {10,3,2,Req}, {10,3,3,Req}, {11,0,1,Req}, {12,1,1,Req}, {12,1,2,Adv}, {12,1,3,Req}, {12,8,1,Req}, {12,8,2,Req}, {14,5,1,Req}, {14,5,2,Req}, {14,5,3,Req}, {14,6,1,Req}, {14,6,2,Req}, {14,7,1,Req}, {14,7,2,Req}, {14,7,3,Req}, {14,8,1,Req}, {14,8,2,Req}, {15,0,1,Req}, {15,0,2,Req}, {15,0,3,Req}, {15,1,1,Req}, {15,1,2,Req}, {15,1,3,Req}, {15,3,1,Req}, {15,3,2,Adv}, {15,3,3,Req}, {15,3,4,Req}, {15,3,5,Req}, {15,3,6,Req}, {15,3,7,Req}, {15,4,1,Req}, {15,5,1,Req}, {15,5,2,Req}, {15,5,3,Req}, {16,0,1,Req}, {16,0,2,Req}, {16,0,3,Req}, {16,0,4,Req}, {16,0,5,Req}, {16,0,6,Req}, {16,0,7,Req}, {16,0,8,Req}, {16,1,1,Req}, {16,1,2,Req}, {16,2,1,Req}, {16,2,2,Req}, {16,2,3,Req}, {16,2,4,Req}, {16,2,5,Adv}, {16,2,6,Req}, {16,3,1,Req}, {16,3,2,Adv}, {16,6,1,Doc}, {17,0,1,Req}, {17,0,2,Req}, {17,0,3,Req}, {17,0,4,Doc}, {17,0,5,Req}, {18,0,1,Req}, {18,0,2,Req}, {18,0,3,Req}, {18,0,4,Req}, {18,0,5,Req}, {18,2,1,Req}, {18,4,1,Req}, {18,7,1,Req}, {19,3,1,Req}, {27,0,1,Req} }; const std::vector misraCpp2023Directives = { {0,3,1,Adv}, {0,3,2,Req}, {5,7,2,Adv}, {15,8,1,Req}, }; const std::vector misraCpp2023Rules = { {0,0,1,Req}, {0,0,2,Adv}, {0,1,1,Adv}, {0,1,2,Req}, {0,2,1,Adv}, {0,2,2,Req}, {0,2,3,Adv}, {0,2,4,Adv}, {4,1,1,Req}, {4,1,2,Adv}, {4,1,3,Req}, {4,6,1,Req}, {5,0,1,Adv}, {5,7,1,Req}, {5,7,3,Req}, {5,10,1,Req}, {5,13,1,Req}, {5,13,2,Req}, {5,13,3,Req}, {5,13,4,Req}, {5,13,5,Req}, {5,13,6,Req}, {5,13,7,Req}, {6,0,1,Req}, {6,0,2,Adv}, {6,0,3,Adv}, {6,0,4,Req}, {6,2,1,Req}, {6,2,2,Req}, {6,2,3,Req}, {6,2,4,Req}, {6,4,1,Req}, {6,4,2,Req}, {6,4,3,Req}, {6,5,1,Adv}, {6,5,2,Adv}, {6,7,1,Req}, {6,7,2,Req}, {6,8,1,Req}, {6,8,2,Man}, {6,8,3,Req}, {6,8,4,Adv}, {6,9,1,Req}, {6,9,2,Adv}, {7,0,1,Req}, {7,0,2,Req}, {7,0,3,Req}, {7,0,4,Req}, {7,0,5,Req}, {7,0,6,Req}, {7,11,1,Req}, {7,11,2,Req}, {7,11,3,Req}, {8,0,1,Adv}, {8,1,1,Req}, {8,1,2,Adv}, {8,2,1,Req}, {8,2,2,Req}, {8,2,3,Req}, {8,2,4,Req}, {8,2,5,Req}, {8,2,6,Req}, {8,2,7,Adv}, {8,2,8,Req}, {8,2,9,Req}, {8,2,10,Req}, {8,2,11,Req}, {8,3,1,Adv}, {8,3,2,Adv}, {8,7,1,Req}, {8,7,2,Req}, {8,9,1,Req}, {8,14,1,Adv}, {8,18,1,Man}, {8,18,2,Adv}, {8,19,1,Adv}, {8,20,1,Adv}, {9,2,1,Req}, {9,3,1,Req}, {9,4,1,Req}, {9,4,2,Req}, {9,5,2,Adv}, {9,5,3,Req}, {9,6,1,Adv}, {9,6,2,Req}, {9,6,3,Req}, {9,6,4,Req}, {9,6,5,Req}, {10,0,1,Adv}, {10,1,1,Adv}, {10,1,2,Req}, {10,2,1,Req}, {10,2,2,Adv}, {10,2,3,Req}, {10,3,1,Adv}, {10,4,1,Req}, {11,3,1,Adv}, {11,3,2,Adv}, {11,6,1,Adv}, {11,6,2,Man}, {11,6,3,Req}, {12,2,1,Adv}, {12,2,2,Req}, {12,2,3,Req}, {12,3,1,Req}, {13,1,1,Adv}, {13,1,2,Req}, {13,3,1,Req}, {13,3,2,Req}, {13,3,3,Req}, {13,3,4,Req}, {14,1,1,Adv}, {15,0,1,Req}, {15,0,2,Adv}, {15,1,1,Req}, {15,1,2,Adv}, {15,1,3,Req}, {15,1,4,Adv}, {15,1,5,Req}, {16,5,2,Req}, {16,6,1,Adv}, {17,8,1,Req}, {18,1,1,Req}, {18,1,2,Req}, {18,3,1,Adv}, {18,3,2,Req}, {18,3,3,Req}, {18,4,1,Req}, {18,5,1,Adv}, {18,5,2,Adv}, {19,0,1,Req}, {19,0,2,Req}, {19,0,3,Adv}, {19,0,4,Adv}, {19,1,1,Req}, {19,1,2,Req}, {19,1,3,Req}, {19,2,1,Req}, {19,2,2,Req}, {19,2,3,Req}, {19,3,1,Adv}, {19,3,2,Req}, {19,3,3,Req}, {19,3,4,Req}, {19,3,5,Req}, {19,6,1,Adv}, {21,2,1,Req}, {21,2,2,Req}, {21,2,3,Req}, {21,2,4,Req}, {21,6,1,Adv}, {21,6,2,Req}, {21,6,3,Req}, {21,6,4,Req}, {21,6,5,Req}, {21,10,1,Req}, {21,10,2,Req}, {21,10,3,Req}, {22,3,1,Req}, {22,4,1,Req}, {23,11,1,Adv}, {24,5,1,Req}, {24,5,2,Req}, {25,5,1,Req}, {25,5,2,Man}, {25,5,3,Man}, {26,3,1,Adv}, {28,3,1,Req}, {28,6,1,Req}, {28,6,2,Req}, {28,6,3,Req}, {28,6,4,Req}, {30,0,1,Req}, {30,0,2,Req} }; } std::vector checkers::autosarInfo{ {"m0-1-1", checkers::Req}, {"m0-1-2", checkers::Req}, {"m0-1-3", checkers::Req}, {"m0-1-4", checkers::Req}, {"a0-1-1", checkers::Req}, {"a0-1-2", checkers::Req}, {"m0-1-8", checkers::Req}, {"m0-1-9", checkers::Req}, {"m0-1-10", checkers::Adv}, {"a0-1-3", checkers::Req}, {"a0-1-4", checkers::Req}, {"a0-1-5", checkers::Req}, {"a0-1-6", checkers::Adv}, {"m0-2-1", checkers::Req}, {"a0-4-2", checkers::Req}, {"a0-4-3", checkers::Req}, {"a0-4-4", checkers::Req}, {"a1-1-1", checkers::Req}, {"a1-4-3", checkers::Adv}, {"a2-3-1", checkers::Req}, {"a2-5-1", checkers::Req}, {"a2-5-2", checkers::Req}, {"m2-7-1", checkers::Req}, {"a2-7-1", checkers::Req}, {"a2-7-3", checkers::Req}, {"a2-8-2", checkers::Adv}, {"m2-10-1", checkers::Req}, {"a2-10-1", checkers::Req}, {"a2-10-6", checkers::Req}, {"a2-10-4", checkers::Req}, {"a2-10-5", checkers::Adv}, {"a2-11-1", checkers::Req}, {"a2-13-1", checkers::Req}, {"a2-13-6", checkers::Req}, {"a2-13-5", checkers::Adv}, {"m2-13-2", checkers::Req}, {"m2-13-3", checkers::Req}, {"m2-13-4", checkers::Req}, {"a2-13-2", checkers::Req}, {"a2-13-3", checkers::Req}, {"a2-13-4", checkers::Req}, {"a3-1-1", checkers::Req}, {"a3-1-2", checkers::Req}, {"a3-1-3", checkers::Adv}, {"m3-1-2", checkers::Req}, {"a3-1-4", checkers::Req}, {"a3-1-6", checkers::Adv}, {"m3-2-1", checkers::Req}, {"m3-2-2", checkers::Req}, {"m3-2-3", checkers::Req}, {"m3-2-4", checkers::Req}, {"a3-3-1", checkers::Req}, {"a3-3-2", checkers::Req}, {"m3-3-2", checkers::Req}, {"m3-4-1", checkers::Req}, {"m3-9-1", checkers::Req}, {"a3-9-1", checkers::Req}, {"m3-9-3", checkers::Req}, {"m4-5-1", checkers::Req}, {"a4-5-1", checkers::Req}, {"m4-5-3", checkers::Req}, {"a4-7-1", checkers::Req}, {"m4-10-1", checkers::Req}, {"a4-10-1", checkers::Req}, {"m4-10-2", checkers::Req}, {"a5-0-1", checkers::Req}, {"m5-0-2", checkers::Adv}, {"m5-0-3", checkers::Req}, {"m5-0-4", checkers::Req}, {"m5-0-5", checkers::Req}, {"m5-0-6", checkers::Req}, {"m5-0-7", checkers::Req}, {"m5-0-8", checkers::Req}, {"m5-0-9", checkers::Req}, {"m5-0-10", checkers::Req}, {"m5-0-11", checkers::Req}, {"m5-0-12", checkers::Req}, {"a5-0-2", checkers::Req}, {"m5-0-14", checkers::Req}, {"m5-0-15", checkers::Req}, {"m5-0-16", checkers::Req}, {"m5-0-17", checkers::Req}, {"a5-0-4", checkers::Req}, {"m5-0-18", checkers::Req}, {"a5-0-3", checkers::Req}, {"m5-0-20", checkers::Req}, {"m5-0-21", checkers::Req}, {"a5-1-1", checkers::Req}, {"a5-1-2", checkers::Req}, {"a5-1-3", checkers::Req}, {"a5-1-4", checkers::Req}, {"a5-1-6", checkers::Adv}, {"a5-1-7", checkers::Req}, {"a5-1-8", checkers::Adv}, {"a5-1-9", checkers::Adv}, {"m5-2-2", checkers::Req}, {"m5-2-3", checkers::Adv}, {"a5-2-1", checkers::Adv}, {"a5-2-2", checkers::Req}, {"a5-2-3", checkers::Req}, {"m5-2-6", checkers::Req}, {"a5-2-4", checkers::Req}, {"a5-2-6", checkers::Req}, {"m5-2-8", checkers::Req}, {"m5-2-9", checkers::Req}, {"m5-2-10", checkers::Req}, {"m5-2-11", checkers::Req}, {"a5-2-5", checkers::Req}, {"m5-2-12", checkers::Req}, {"m5-3-1", checkers::Req}, {"m5-3-2", checkers::Req}, {"m5-3-3", checkers::Req}, {"m5-3-4", checkers::Req}, {"a5-3-1", checkers::Req}, {"a5-3-2", checkers::Req}, {"a5-3-3", checkers::Req}, {"a5-5-1", checkers::Req}, {"a5-6-1", checkers::Req}, {"m5-8-1", checkers::Req}, {"a5-10-1", checkers::Req}, {"m5-14-1", checkers::Req}, {"a5-16-1", checkers::Req}, {"m5-18-1", checkers::Req}, {"m5-19-1", checkers::Req}, {"m6-2-1", checkers::Req}, {"a6-2-1", checkers::Req}, {"a6-2-2", checkers::Req}, {"m6-2-2", checkers::Req}, {"m6-2-3", checkers::Req}, {"m6-3-1", checkers::Req}, {"m6-4-1", checkers::Req}, {"m6-4-2", checkers::Req}, {"m6-4-3", checkers::Req}, {"m6-4-4", checkers::Req}, {"m6-4-5", checkers::Req}, {"m6-4-6", checkers::Req}, {"m6-4-7", checkers::Req}, {"a6-4-1", checkers::Req}, {"a6-5-1", checkers::Req}, {"a6-5-2", checkers::Req}, {"m6-5-2", checkers::Req}, {"m6-5-3", checkers::Req}, {"m6-5-4", checkers::Req}, {"m6-5-5", checkers::Req}, {"m6-5-6", checkers::Req}, {"a6-5-3", checkers::Adv}, {"a6-5-4", checkers::Adv}, {"a6-6-1", checkers::Req}, {"m6-6-1", checkers::Req}, {"m6-6-2", checkers::Req}, {"m6-6-3", checkers::Req}, {"a7-1-1", checkers::Req}, {"a7-1-2", checkers::Req}, {"m7-1-2", checkers::Req}, {"a7-1-3", checkers::Req}, {"a7-1-4", checkers::Req}, {"a7-1-5", checkers::Req}, {"a7-1-6", checkers::Req}, {"a7-1-7", checkers::Req}, {"a7-1-8", checkers::Req}, {"a7-1-9", checkers::Req}, {"a7-2-1", checkers::Req}, {"a7-2-2", checkers::Req}, {"a7-2-3", checkers::Req}, {"a7-2-4", checkers::Req}, {"m7-3-1", checkers::Req}, {"m7-3-2", checkers::Req}, {"m7-3-3", checkers::Req}, {"m7-3-4", checkers::Req}, {"a7-3-1", checkers::Req}, {"m7-3-6", checkers::Req}, {"a7-4-1", checkers::Req}, {"m7-4-2", checkers::Req}, {"m7-4-3", checkers::Req}, {"a7-5-1", checkers::Req}, {"a7-5-2", checkers::Req}, {"a7-6-1", checkers::Req}, {"m8-0-1", checkers::Req}, {"a8-2-1", checkers::Req}, {"m8-3-1", checkers::Req}, {"a8-4-1", checkers::Req}, {"m8-4-2", checkers::Req}, {"a8-4-2", checkers::Req}, {"m8-4-4", checkers::Req}, {"a8-4-4", checkers::Adv}, {"a8-4-5", checkers::Req}, {"a8-4-6", checkers::Req}, {"a8-4-7", checkers::Req}, {"a8-4-8", checkers::Req}, {"a8-4-9", checkers::Req}, {"a8-4-10", checkers::Req}, {"a8-4-11", checkers::Req}, {"a8-4-12", checkers::Req}, {"a8-4-13", checkers::Req}, {"a8-4-14", checkers::Req}, {"a8-5-0", checkers::Req}, {"a8-5-1", checkers::Req}, {"m8-5-2", checkers::Req}, {"a8-5-2", checkers::Req}, {"a8-5-3", checkers::Req}, {"a8-5-4", checkers::Adv}, {"m9-3-1", checkers::Req}, {"a9-3-1", checkers::Req}, {"m9-3-3", checkers::Req}, {"a9-5-1", checkers::Req}, {"a9-6-1", checkers::Req}, {"m9-6-4", checkers::Req}, {"a10-1-1", checkers::Req}, {"m10-1-1", checkers::Adv}, {"m10-1-2", checkers::Req}, {"m10-1-3", checkers::Req}, {"m10-2-1", checkers::Adv}, {"a10-2-1", checkers::Req}, {"a10-3-1", checkers::Req}, {"a10-3-2", checkers::Req}, {"a10-3-3", checkers::Req}, {"a10-3-5", checkers::Req}, {"m10-3-3", checkers::Req}, {"a10-4-1", checkers::Req}, {"m11-0-1", checkers::Req}, {"a11-0-1", checkers::Adv}, {"a11-0-2", checkers::Req}, {"a11-3-1", checkers::Req}, {"a12-0-1", checkers::Req}, {"a12-0-2", checkers::Req}, {"a12-1-1", checkers::Req}, {"m12-1-1", checkers::Req}, {"a12-1-2", checkers::Req}, {"a12-1-3", checkers::Req}, {"a12-1-4", checkers::Req}, {"a12-1-5", checkers::Req}, {"a12-1-6", checkers::Req}, {"a12-4-1", checkers::Req}, {"a12-4-2", checkers::Adv}, {"a12-6-1", checkers::Req}, {"a12-7-1", checkers::Req}, {"a12-8-1", checkers::Req}, {"a12-8-2", checkers::Adv}, {"a12-8-3", checkers::Req}, {"a12-8-4", checkers::Req}, {"a12-8-5", checkers::Req}, {"a12-8-6", checkers::Req}, {"a12-8-7", checkers::Adv}, {"a13-1-2", checkers::Req}, {"a13-1-3", checkers::Req}, {"a13-2-1", checkers::Req}, {"a13-2-2", checkers::Req}, {"a13-2-3", checkers::Req}, {"a13-3-1", checkers::Req}, {"a13-5-1", checkers::Req}, {"a13-5-2", checkers::Req}, {"a13-5-3", checkers::Adv}, {"a13-5-4", checkers::Req}, {"a13-5-5", checkers::Req}, {"a13-6-1", checkers::Req}, {"a14-1-1", checkers::Adv}, {"a14-5-1", checkers::Req}, {"a14-5-2", checkers::Req}, {"a14-5-3", checkers::Req}, {"m14-5-3", checkers::Req}, {"m14-6-1", checkers::Req}, {"a14-7-1", checkers::Req}, {"a14-7-2", checkers::Req}, {"a14-8-2", checkers::Req}, {"a15-0-2", checkers::Req}, {"a15-1-2", checkers::Req}, {"m15-0-3", checkers::Req}, {"m15-1-1", checkers::Req}, {"m15-1-2", checkers::Req}, {"m15-1-3", checkers::Req}, {"a15-1-3", checkers::Adv}, {"a15-1-4", checkers::Req}, {"a15-2-1", checkers::Req}, {"a15-2-2", checkers::Req}, {"m15-3-1", checkers::Req}, {"a15-3-2", checkers::Req}, {"a15-3-3", checkers::Req}, {"m15-3-3", checkers::Req}, {"m15-3-4", checkers::Req}, {"a15-3-5", checkers::Req}, {"m15-3-6", checkers::Req}, {"m15-3-7", checkers::Req}, {"a15-4-1", checkers::Req}, {"a15-4-2", checkers::Req}, {"a15-4-3", checkers::Req}, {"a15-4-4", checkers::Req}, {"a15-4-5", checkers::Req}, {"a15-5-1", checkers::Req}, {"a15-5-2", checkers::Req}, {"a15-5-3", checkers::Req}, {"a16-0-1", checkers::Req}, {"m16-0-1", checkers::Req}, {"m16-0-2", checkers::Req}, {"m16-0-5", checkers::Req}, {"m16-0-6", checkers::Req}, {"m16-0-7", checkers::Req}, {"m16-0-8", checkers::Req}, {"m16-1-1", checkers::Req}, {"m16-1-2", checkers::Req}, {"m16-2-3", checkers::Req}, {"a16-2-1", checkers::Req}, {"a16-2-2", checkers::Req}, {"a16-2-3", checkers::Req}, {"m16-3-1", checkers::Req}, {"m16-3-2", checkers::Adv}, {"a16-6-1", checkers::Req}, {"a16-7-1", checkers::Req}, {"a17-0-1", checkers::Req}, {"m17-0-2", checkers::Req}, {"m17-0-3", checkers::Req}, {"m17-0-5", checkers::Req}, {"a17-1-1", checkers::Req}, {"a17-6-1", checkers::Req}, {"a18-0-1", checkers::Req}, {"a18-0-2", checkers::Req}, {"m18-0-3", checkers::Req}, {"m18-0-4", checkers::Req}, {"m18-0-5", checkers::Req}, {"a18-0-3", checkers::Req}, {"a18-1-1", checkers::Req}, {"a18-1-2", checkers::Req}, {"a18-1-3", checkers::Req}, {"a18-1-4", checkers::Req}, {"a18-1-6", checkers::Req}, {"m18-2-1", checkers::Req}, {"a18-5-1", checkers::Req}, {"a18-5-2", checkers::Req}, {"a18-5-3", checkers::Req}, {"a18-5-4", checkers::Req}, {"a18-5-5", checkers::Req}, {"a18-5-6", checkers::Req}, {"a18-5-7", checkers::Req}, {"a18-5-8", checkers::Req}, {"a18-5-9", checkers::Req}, {"a18-5-10", checkers::Req}, {"a18-5-11", checkers::Req}, {"m18-7-1", checkers::Req}, {"a18-9-1", checkers::Req}, {"a18-9-2", checkers::Req}, {"a18-9-3", checkers::Req}, {"a18-9-4", checkers::Req}, {"m19-3-1", checkers::Req}, {"a20-8-1", checkers::Req}, {"a20-8-2", checkers::Req}, {"a20-8-3", checkers::Req}, {"a20-8-4", checkers::Req}, {"a20-8-5", checkers::Req}, {"a20-8-6", checkers::Req}, {"a20-8-7", checkers::Req}, {"a21-8-1", checkers::Req}, {"a23-0-1", checkers::Req}, {"a23-0-2", checkers::Req}, {"a25-1-1", checkers::Req}, {"a25-4-1", checkers::Req}, {"a26-5-1", checkers::Req}, {"a26-5-2", checkers::Req}, {"m27-0-1", checkers::Req}, {"a27-0-1", checkers::Req}, {"a27-0-4", checkers::Req}, {"a27-0-2", checkers::Adv}, {"a27-0-3", checkers::Req}, }; std::vector checkers::certCInfo{ {"PRE30-C", "L3"}, {"PRE31-C", "L3"}, {"PRE32-C", "L3"}, {"DCL30-C", "L2"}, {"DCL31-C", "L3"}, {"DCL36-C", "L2"}, {"DCL37-C", "L3"}, {"DCL38-C", "L3"}, {"DCL39-C", "L3"}, {"DCL40-C", "L3"}, {"DCL41-C", "L2"}, {"EXP30-C", "L2"}, {"EXP32-C", "L2"}, {"EXP33-C", "L1"}, {"EXP34-C", "L1"}, {"EXP35-C", "L2"}, {"EXP36-C", "L3"}, {"EXP37-C", "L3"}, {"EXP39-C", "L2"}, {"EXP40-C", "L3"}, {"EXP42-C", "L1"}, {"EXP43-C", "L3"}, {"EXP44-C", "L3"}, {"EXP45-C", "L2"}, {"EXP46-C", "L2"}, {"EXP47-C", "L2"}, {"INT30-C", "L2"}, {"INT31-C", "L1"}, {"INT32-C", "L1"}, {"INT33-C", "L2"}, {"INT34-C", "L3"}, {"INT35-C", "L3"}, {"INT36-C", "L3"}, {"FLP30-C", "L2"}, {"FLP32-C", "L1"}, {"FLP34-C", "L3"}, {"FLP36-C", "L3"}, {"FLP37-C", "L3"}, {"ARR30-C", "L2"}, {"ARR32-C", "L2"}, {"ARR36-C", "L3"}, {"ARR37-C", "L2"}, {"ARR38-C", "L2"}, {"ARR39-C", "L2"}, {"STR30-C", "L2"}, {"STR31-C", "L2"}, {"STR32-C", "L1"}, {"STR34-C", "L2"}, {"STR37-C", "L3"}, {"STR38-C", "L1"}, {"MEM30-C", "L2"}, {"MEM31-C", "L3"}, {"MEM33-C", "L3"}, {"MEM34-C", "L2"}, {"MEM35-C", "L2"}, {"MEM36-C", "L3"}, {"FIO30-C", "L1"}, {"FIO32-C", "L3"}, {"FIO34-C", "L1"}, {"FIO37-C", "L1"}, {"FIO38-C", "L3"}, {"FIO39-C", "L2"}, {"FIO40-C", "L2"}, {"FIO41-C", "L3"}, {"FIO42-C", "L3"}, {"FIO44-C", "L3"}, {"FIO45-C", "L2"}, {"FIO46-C", "L3"}, {"FIO47-C", "L2"}, {"ENV30-C", "L3"}, {"ENV31-C", "L3"}, {"ENV32-C", "L1"}, {"ENV33-C", "L1"}, {"ENV34-C", "L3"}, {"SIG30-C", "L1"}, {"SIG31-C", "L1"}, {"SIG34-C", "L3"}, {"SIG35-C", "L3"}, {"ERR30-C", "L1"}, {"ERR32-C", "L3"}, {"ERR33-C", "L1"}, {"ERR34-C", "L2"}, {"CON30-C", "L3"}, {"CON31-C", "L3"}, {"CON32-C", "L3"}, {"CON33-C", "L3"}, {"CON34-C", "L3"}, {"CON35-C", "L3"}, {"CON36-C", "L3"}, {"CON37-C", "L3"}, {"CON38-C", "L3"}, {"CON39-C", "L3"}, {"CON40-C", "L2"}, {"CON41-C", "L3"}, {"CON43-C", "L3"}, {"MSC30-C", "L3"}, {"MSC32-C", "L1"}, {"MSC33-C", "L2"}, {"MSC37-C", "L2"}, {"MSC38-C", "L3"}, {"MSC39-C", "L3"}, {"MSC40-C", "L3"}, {"MSC41-C", "L2"}, {"POS30-C", "L1"}, {"POS34-C", "L2"}, {"POS35-C", "L2"}, {"POS36-C", "L1"}, {"POS37-C", "L1"}, {"POS38-C", "L3"}, {"POS39-C", "L1"}, {"POS44-C", "L3"}, {"POS47-C", "L3"}, {"POS48-C", "L3"}, {"POS49-C", "L3"}, {"POS50-C", "L3"}, {"POS51-C", "L3"}, {"POS52-C", "L3"}, {"POS53-C", "L2"}, {"POS54-C", "L1"}, {"WIN30-C", "L3"}, // Recommendations {"PRE00-C", "L3"}, {"PRE01-C", "L1"}, {"PRE02-C", "L1"}, {"PRE04-C", "L3"}, {"PRE05-C", "L3"}, {"PRE06-C", "L3"}, {"PRE07-C", "L3"}, {"PRE08-C", "L3"}, {"PRE09-C", "L1"}, {"PRE10-C", "L1"}, {"PRE11-C", "L2"}, {"PRE12-C", "L3"}, {"PRE13-C", "L3"}, {"DCL00-C", "L3"}, {"DCL01-C", "L3"}, {"DCL02-C", "L3"}, {"DCL03-C", "L3"}, {"DCL04-C", "L3"}, {"DCL05-C", "L3"}, {"DCL06-C", "L3"}, {"DCL07-C", "L3"}, {"DCL08-C", "L3"}, {"DCL09-C", "L3"}, {"DCL10-C", "L2"}, {"DCL11-C", "L1"}, {"DCL12-C", "L3"}, {"DCL13-C", "L3"}, {"DCL15-C", "L3"}, {"DCL16-C", "L3"}, {"DCL17-C", "L3"}, {"DCL18-C", "L3"}, {"DCL19-C", "L3"}, {"DCL20-C", "L1"}, {"DCL21-C", "L3"}, {"DCL22-C", "L3"}, {"DCL23-C", "L2"}, {"EXP00-C", "L2"}, {"EXP02-C", "L3"}, {"EXP03-C", "L3"}, {"EXP05-C", "L3"}, {"EXP07-C", "L3"}, {"EXP08-C", "L2"}, {"EXP09-C", "L2"}, {"EXP10-C", "L2"}, {"EXP11-C", "L3"}, {"EXP12-C", "L3"}, {"EXP13-C", "L3"}, {"EXP14-C", "L3"}, {"EXP15-C", "L1"}, {"EXP16-C", "L2"}, {"EXP19-C", "L1"}, {"EXP20-C", "L1"}, {"INT00-C", "L3"}, {"INT01-C", "L2"}, {"INT02-C", "L3"}, {"INT04-C", "L1"}, {"INT05-C", "L2"}, {"INT07-C", "L1"}, {"INT08-C", "L3"}, {"INT09-C", "L3"}, {"INT10-C", "L3"}, {"INT12-C", "L3"}, {"INT13-C", "L2"}, {"INT14-C", "L3"}, {"INT15-C", "L2"}, {"INT16-C", "L3"}, {"INT17-C", "L3"}, {"INT18-C", "L1"}, {"FLP00-C", "L3"}, {"FLP01-C", "L3"}, {"FLP02-C", "L3"}, {"FLP03-C", "L3"}, {"FLP04-C", "L3"}, {"FLP05-C", "L3"}, {"FLP06-C", "L3"}, {"FLP07-C", "L3"}, {"ARR00-C", "L2"}, {"ARR01-C", "L1"}, {"ARR02-C", "L2"}, {"STR00-C", "L3"}, {"STR01-C", "L3"}, {"STR02-C", "L2"}, {"STR03-C", "L3"}, {"STR04-C", "L3"}, {"STR05-C", "L3"}, {"STR06-C", "L2"}, {"STR08-C", "L2"}, {"STR09-C", "L3"}, {"STR10-C", "L3"}, {"STR11-C", "L2"}, {"FIO01-C", "L1"}, {"FIO02-C", "L3"}, {"FIO03-C", "L3"}, {"FIO05-C", "L3"}, {"FIO06-C", "L3"}, {"FIO08-C", "L3"}, {"FIO09-C", "L3"}, {"FIO10-C", "L3"}, {"FIO11-C", "L3"}, {"FIO13-C", "L3"}, {"FIO14-C", "L3"}, {"FIO15-C", "L3"}, {"FIO17-C", "L2"}, {"FIO18-C", "L3"}, {"FIO19-C", "L3"}, {"FIO20-C", "L1"}, {"FIO21-C", "L3"}, {"FIO22-C", "L3"}, {"FIO23-C", "L3"}, {"FIO24-C", "L3"}, {"ENV01-C", "L2"}, {"ENV02-C", "L3"}, {"ENV03-C", "L2"}, {"SIG00-C", "L2"}, {"SIG01-C", "L3"}, {"SIG02-C", "L2"}, {"ERR00-C", "L3"}, {"ERR01-C", "L2"}, {"ERR02-C", "L3"}, {"ERR04-C", "L3"}, {"ERR05-C", "L2"}, {"ERR06-C", "L3"}, {"ERR07-C", "L1"}, {"API00-C", "L3"}, {"API01-C", "L1"}, {"API02-C", "L1"}, {"API03-C", "L3"}, {"API04-C", "L3"}, {"API05-C", "L1"}, {"API07-C", "L3"}, {"API09-C", "L3"}, {"API10-C", "L3"}, {"CON01-C", "L3"}, {"CON02-C", "L3"}, {"CON04-C", "L3"}, {"CON05-C", "L3"}, {"CON06-C", "L3"}, {"CON07-C", "L2"}, {"CON08-C", "L3"}, {"CON09-C", "L3"}, {"MSC00-C", "L3"}, {"MSC01-C", "L3"}, {"MSC04-C", "L3"}, {"MSC05-C", "L3"}, {"MSC06-C", "L1"}, {"MSC07-C", "L3"}, {"MSC09-C", "L3"}, {"MSC10-C", "L3"}, {"MSC11-C", "L3"}, {"MSC12-C", "L3"}, {"MSC13-C", "L3"}, {"MSC14-C", "L3"}, {"MSC15-C", "L2"}, {"MSC17-C", "L1"}, {"MSC18-C", "L3"}, {"MSC19-C", "L3"}, {"MSC20-C", "L2"}, {"MSC21-C", "L3"}, {"MSC22-C", "L3"}, {"MSC23-C", "L3"}, {"MSC24-C", "L1"}, {"MSC25-C", "L3"}, {"POS01-C", "L2"}, {"POS02-C", "L2"}, {"POS04-C", "L3"}, {"POS05-C", "L3"}, {"WIN00-C", "L2"}, {"WIN01-C", "L1"}, {"WIN02-C", "L1"}, {"WIN03-C", "L3"}, {"WIN04-C", "L3"}, }; std::vector checkers::certCppInfo{ {"DCL50-CPP", "L1"}, {"DCL51-CPP", "L3"}, {"DCL52-CPP", "L3"}, {"DCL53-CPP", "L3"}, {"DCL54-CPP", "L3"}, {"DCL55-CPP", "L3"}, {"DCL56-CPP", "L3"}, {"DCL57-CPP", "L2"}, {"DCL58-CPP", "L2"}, {"DCL59-CPP", "L3"}, {"DCL60-CPP", "L2"}, {"EXP50-CPP", "L2"}, {"EXP51-CPP", "L3"}, {"EXP52-CPP", "L3"}, {"EXP53-CPP", "L1"}, {"EXP54-CPP", "L2"}, {"EXP55-CPP", "L3"}, {"EXP56-CPP", "L3"}, {"EXP57-CPP", "L3"}, {"EXP58-CPP", "L3"}, {"EXP59-CPP", "L3"}, {"EXP60-CPP", "L2"}, {"EXP61-CPP", "L2"}, {"EXP62-CPP", "L1"}, {"EXP63-CPP", "L2"}, {"INT50-CPP", "L3"}, {"CTR50-CPP", "L2"}, {"CTR51-CPP", "L2"}, {"CTR52-CPP", "L2"}, {"CTR53-CPP", "L2"}, {"CTR54-CPP", "L3"}, {"CTR55-CPP", "L2"}, {"CTR56-CPP", "L2"}, {"CTR57-CPP", "L3"}, {"CTR58-CPP", "L2"}, {"STR50-CPP", "L2"}, {"STR51-CPP", "L1"}, {"STR52-CPP", "L2"}, {"STR53-CPP", "L3"}, {"MEM50-CPP", "L2"}, {"MEM51-CPP", "L2"}, {"MEM52-CPP", "L1"}, {"MEM53-CPP", "L2"}, {"MEM54-CPP", "L2"}, {"MEM55-CPP", "L2"}, {"MEM56-CPP", "L2"}, {"MEM57-CPP", "L3"}, {"FIO50-CPP", "L2"}, {"FIO51-CPP", "L3"}, {"ERR50-CPP", "L3"}, {"ERR51-CPP", "L2"}, {"ERR52-CPP", "L3"}, {"ERR53-CPP", "L3"}, {"ERR54-CPP", "L1"}, {"ERR55-CPP", "L2"}, {"ERR56-CPP", "L2"}, {"ERR57-CPP", "L3"}, {"ERR58-CPP", "L2"}, {"ERR59-CPP", "L2"}, {"ERR60-CPP", "L3"}, {"ERR61-CPP", "L3"}, {"ERR62-CPP", "L3"}, {"OOP50-CPP", "L3"}, {"OOP51-CPP", "L3"}, {"OOP52-CPP", "L3"}, {"OOP53-CPP", "L2"}, {"OOP54-CPP", "L3"}, {"OOP55-CPP", "L2"}, {"OOP56-CPP", "L3"}, {"OOP57-CPP", "L1"}, {"OOP58-CPP", "L2"}, {"CON50-CPP", "L3"}, {"CON51-CPP", "L2"}, {"CON52-CPP", "L3"}, {"CON53-CPP", "L3"}, {"CON54-CPP", "L3"}, {"CON55-CPP", "L3"}, {"CON56-CPP", "L3"}, {"MSC50-CPP", "L3"}, {"MSC51-CPP", "L1"}, {"MSC52-CPP", "L2"}, {"MSC53-CPP", "L3"}, {"MSC54-CPP", "L2"}, };