MISRA C++:2008 checker reference - certified
These checkers detect violations of the MISRA C++:2008 standard.
Notes
- To view this information organized by rule number, see MISRA C++:2008 rules mapped to Klocwork certified checkers.
- We provide full help for each MISRA C and MISRA C++ checker. Because this information is licensed, it is available as a part of your Klocwork installation, rather than online.
Issue code | Description | Rule | Issued | Improved |
---|---|---|---|---|
CWARN.NOEFFECT.UCMP.GE |
Comparison of unsigned value against 0 is always true | 0-1-2 | Pre-9.2 | 9.5 |
CWARN.NOEFFECT.UCMP.GE.MACRO |
Comparison of unsigned value against 0 within a macro is always true | 0-1-2 | Pre-9.2 | 9.5 |
CWARN.NOEFFECT.UCMP.LT |
Comparison of unsigned value against 0 is always false | 0-1-2 | Pre-9.2 | 9.5 |
CWARN.NOEFFECT.UCMP.LT.MACRO |
Comparison of unsigned value against 0 within a macro is always false | 0-1-2 | Pre-9.2 | 9.5 |
FUNCRET.GEN |
Non-void function does not return value | 8-4-3 | Pre-9.2 | |
LOCRET.ARG |
Function returns address of local variable | 7-5-2 | Pre-9.2 | 9.5 |
LOCRET.GLOB |
Function returns address of local variable | 7-5-2 | Pre-9.2 | 9.5 |
LOCRET.RET |
Function returns address of local variable | 7-5-1 | Pre-9.2 | 9.5 |
LV_UNUSED.GEN |
Local variable unused | 0-1-3 | Pre-9.2 | 2020.3 |
MISRA.ADDR.REF.PARAM |
Function returns reference to parameter passed by reference | 7-5-3 | 9.1 | 9.2, 11.1 |
MISRA.ADDR.REF.PARAM.PTR |
Function returns address of parameter passed by reference | 7-5-3 | 9.2 | 11.1 |
MISRA.ASM.ENCAPS |
Assembly language is not isolated. | 7-4-3 | 9.1 | |
MISRA.ASSIGN.COND |
Assignment operator is used in a condition | 6-2-1 | 9.2 | |
MISRA.ASSIGN.OVERLAP |
Object is assigned to an overlapping object | 0-2-1 | 9.5 | 2019.1 |
MISRA.ASSIGN.SUBEXPR |
Assignment operator is used in a sub-expression outside a condition | 6-2-1 | 9.1 | 9.2 |
MISRA.BASE.IDS.UNIQUE |
Member name is used twice in inheritance hierarchy | 10-2-1 | 9.2 | |
MISRA.BASE.MANYDEFS |
Both overriding and overridden virtual functions have definitions | 10-3-1 | 9.2 | |
MISRA.BASE.VIRTUAL.NOTVIRTUAL |
Base class is used as both virtual and not virtual in inheritance hierarchy | 10-1-3 | 9.2 | |
MISRA.BIN_OP.OVERLOAD |
Comma, || or && operator overloaded | 5-2-11 | 9.1 | |
MISRA.BITFIELD.SIGNED |
Length of a named signed bit-field is less than 2 | 9-6-4 | 9.1 | 9.2, 10.4 |
MISRA.BITFIELD.TYPE.CPP |
Type of bit-field is neither bool, nor signed/unsigned integer | 9-6-2 | 9.2 | 11.0 |
MISRA.BITS.NOT_UNSIGNED |
Operand of bitwise operation is not unsigned integer | 5-0-21 | 9.1 | 9.2, 9.2 SR1, 9.5, 11.0 |
MISRA.BITS.NOT_UNSIGNED.PREP |
Operand of bitwise operation is not unsigned integer | 5-0-21 | 11.1 | |
MISRA.BITS.OPERAND |
Operands of bitwise operation have different underlying types | 5-0-20 | 9.1 | |
MISRA.BUILTIN_NUMERIC |
Builtin numeric type is used | 3-9-2 | 9.1 | 9.2, 9.2 SR1, 9.5 |
MISRA.CAST.CONST |
Cast operation removes const or volatile modifier from a pointer or reference | 5-2-5 | 9.1 | 9.2, 10.4, 2022.1 |
MISRA.CAST.FLOAT.WIDER |
Cast of floating point expression to a wider floating point type | 5-0-8 | 9.1 | 9.6, 11.0 |
MISRA.CAST.FLOAT_INT |
Cast of floating point expression to integral type | 5-0-7 | 9.1 | 9.6 |
MISRA.CAST.FUNC_PTR.CPP |
Cast converts function pointer to other pointer type | 5-2-6 | 9.2 | |
MISRA.CAST.INT.SIGN |
Non-trivial integral expression is cast to type with different signedness | 5-0-9 | 9.1 | 9.2 |
MISRA.CAST.INT.WIDER |
Cast of integral expression to a wider integral type | 5-0-8 | 9.6 | 11.0 |
MISRA.CAST.INT_FLOAT |
Cast of integral expression to floating point type | 5-0-7 | 9.6 | |
MISRA.CAST.INT_TO_PTR |
Object with integer type or pointer to void cast to pointer type | 5-2-8 | 9.2 | |
MISRA.CAST.POLY.TYPE |
Cast from a polymorphic base class to a derived class | 5-2-3 | 9.2 | |
MISRA.CAST.PTR.UNRELATED |
Object of pointer type cast to unrelated type | 5-2-7 | 9.2 | 9.5 |
MISRA.CAST.PTR.VRCLASS |
A cast form pointer to a virtual base class to pointer to a derived class does not use 'dynamic_cast' | 5-2-2 | 9.2 | |
MISRA.CAST.PTR_TO_INT |
Cast between a pointer and an integral type | 5-2-9 | 9.1 | 9.2 |
MISRA.CAST.UNSIGNED_BITS |
The result of bitwise operation on unsigned char or short is not cast back to original type | 5-0-10 | 9.1 | |
MISRA.CATCH.ALL |
No ellipsis exception handler in a try-catch block | 15-3-2 | 9.2 | |
MISRA.CATCH.BY_VALUE |
Exception object of class type is caught by value | 15-3-5 | 9.1 | 9.5 |
MISRA.CATCH.NOALL |
Ellipsis exception handler is not the last one in a try-catch block | 15-3-7 | 9.2 | |
MISRA.CATCH.WRONGORD |
Handler for a base exception class precedes to a handler for a derived exception class in a try-catch block | 15-3-6 | 9.2 | |
MISRA.CHAR.DIGRAPH |
Digraph usage | 2-5-1 | 9.1 | |
MISRA.CHAR.NOT_CHARACTER |
'char' is used for non-character value | 5-0-11 | 9.1 | 11.2 |
MISRA.CHAR.OPERAND |
Expression of type 'char' or 'wchar_t' is used as non-character operand | 4-5-3 | 9.1 | 9.2 |
MISRA.CHAR.TRIGRAPH |
Trigraph usage | 2-3-1 | 9.1 | 9.2 |
MISRA.COMMA |
Comma operator is used | 5-18-1 | 9.1 | |
MISRA.COMP.WRAPAROUND |
Wrap-around in a condition | 5-19-1 | 9.2 | 9.5, 2020.3 |
MISRA.CONST.RET.NON_CONST |
Constant member function returns non-const pointer to member variable | 9-3-1 | 9.1 | 9.2, 9.2 SR2 |
MISRA.CONTINUE.ILL |
Continue statement is used in an ill-formed for loop | 6-6-3 | 9.2 | |
MISRA.CONV.FLOAT |
Implicit floating-point conversion | 5-0-5 | 9.1 | 11.0 |
MISRA.CONV.INT.SIGN |
Implicit integral conversion changes signedness | 5-0-4 | 9.1 | 9.2, 9.2 SR2, 11.0 |
MISRA.CONV.NUM.NARROWER |
Implicit numeric conversion to narrower type | 5-0-6 | 9.1 | 9.5, 11.0, 2018.1 |
MISRA.COPY.CSTR.TMPL |
Class has a template constructor with a single generic parameter, but has no copy constructor defined | 14-5-2 | 9.2 | 11.0 |
MISRA.COPYASSIGN.ABSTRACT |
Copy assignment should be declared protected or private in an abstract class | 12-8-2 | 9.2 | |
MISRA.COPYASSIGN.TMPL |
A copy ssignment operator should be defined when class has a template copy assignment operator with a single generic parameter | 14-5-3 | 9.2 | |
MISRA.CT.UNIQUE.ID |
Identifier clashes with tag name | 2-10-4 | 9.1 | 9.2, 9.2 SR1, 2021.2 |
MISRA.CTOR.BASE |
Constructor does not explicitly call constructor of its base class | 12-1-2 | 9.1 | 9.2, 9.5, 2020.2 |
MISRA.CTOR.DYNAMIC |
Object's dynamic type is used from the body of its constructor | 12-1-1 | 9.2 | |
MISRA.CTOR.NOT_EXPLICIT |
Constructor with one argument of built-in type is not declared 'explicit' | 12-1-3 | 9.1 | 11.0 |
MISRA.CTOR.TRY.NON_STATIC |
Function try/catch block of constructor or destructor references non-static members | 15-3-3 | 9.1 | |
MISRA.CVALUE.IMPL.CAST.CPP |
The value of an expression implicitly converted to a different type | 5-0-3 | 9.2 | 9.5, 11.0, 11.1, 2018.1 |
MISRA.C_CAST |
C-style cast to non-void type | 5-2-4 | 9.1 | 9.2 |
MISRA.DECL.ARRAY_SIZE |
Declaration of array with unknown size | 3-1-3 | 9.1 | |
MISRA.DECL.EXCPT.SPEC |
Function is declared with different exception specifications | 15-4-1 | 9.1 | 9.2 |
MISRA.DECL.FUNC_LOCAL |
Function is declared locally | 3-1-2 | 9.1 | 9.2 SR1 |
MISRA.DECL.MANY_DCLS |
More than one declarator in one declaration | 8-0-1 | 9.1 | |
MISRA.DEFINE.BADEXP.CPP |
Inappropriate macro expansion in a C++ source | 16-2-2 | 9.1 | 9.5 |
MISRA.DEFINE.FUNC |
Function-like macro definition | 16-0-4 | 9.1 | |
MISRA.DEFINE.NOPARS |
Macro parameter with no parentheses | 16-0-6 | 9.1 | |
MISRA.DEFINE.NOTGLOBAL |
Define not at the global level | 16-0-2 | 9.1 | |
MISRA.DEFINE.SHARP |
# or ## operator in a macro definition | 16-3-2 | 9.1 | |
MISRA.DEFINE.SHARP.MANY |
Several # or ## operators in a macro definition | 16-3-1 | 9.1 | |
MISRA.DEFINE.WRONGNAME |
Usage of a name from the standard library for naming a macro | 17-0-1 | 9.1 | 9.2 SR2, 9.5 |
MISRA.DEFINE.WRONGNAME.UNDERSCORE |
Usage of a reserved name for naming a macro | 17-0-1 | 9.2 SR2 | |
MISRA.DERIVE.VIRTUAL |
Class is derived from virtual base | 10-1-1 | 9.1 | 9.2 |
MISRA.DTOR.DYNAMIC |
Object's dynamic type is used from the body of its destructor | 12-1-1 | 9.2 | |
MISRA.DTOR.THROW |
Throw in destructor | 15-5-1 | 9.1 | |
MISRA.ELIF.DEFINED |
Incorrect 'defined' usage in #elif directive | 16-1-1 | 9.1 | |
MISRA.ELIF.OTHERFILE |
#elif in an improper file | 16-1-2 | 9.1 | |
MISRA.ELIF.UNDEF |
Undefined macros in #elif directive | 16-0-7 | 9.1 | |
MISRA.ELIF.WRAPAROUND |
Wrap-around in #elif directive | 5-19-1 | 9.1 | |
MISRA.ELSE.OTHERFILE |
#else in an improper file | 16-1-2 | 9.1 | |
MISRA.ENDIF.OTHERFILE |
#endif in an improper file | 16-1-2 | 9.1 | |
MISRA.ENUM.INIT |
Non-first enumerator is explicitly initialized, but not all elements are explicitly initialized. | 8-5-3 | 9.1 | |
MISRA.ENUM.OPERAND |
Expression of enum type is used in arithmetic context | 4-5-2 | 9.1 | 9.2 |
MISRA.EXPANSION.DIRECTIVE |
Directive-like tokens within a macro argument | 16-0-5 | 9.1 | |
MISRA.EXPANSION.UNSAFE |
Unsafe macro usage | 17-0-5 18-0-1 18-2-1 18-7-1 19-3-1 | 9.1 | 9.5 |
MISRA.EXPR.COND.NOT_BOOLEAN |
First operand of conditional expression is not a boolean expression | 5-0-14 | 9.1 | |
MISRA.EXPR.PARENS.INSUFFICIENT |
Limited dependence required for operator precedence rules in expressions | 5-0-2 | 10.1.2 | 2022.1 |
MISRA.EXPR.PARENS.REDUNDANT |
Limited dependence required for operator precedence rules in expressions | 5-0-2 | 10.1.2 | 11.2, 2021.1 |
MISRA.FIELD.BIT.ENUM |
Bit-field has enum type. | 9-6-3 | 9.1 | |
MISRA.FLOAT.BIT.REPR |
Use of bit manipulations of floating-point values which rely on storage layout | 3-9-3 | 9.1 | 9.2 SR2, 11.0 |
MISRA.FLOAT_EQUAL |
Floating point expression is tested for equality | 6-2-2 | 9.1 | 2020.2 |
MISRA.FOR.COND.CHANGE |
For loop counter is modified within the loop condition section | 6-5-3 | 9.1 | 9.2 |
MISRA.FOR.COND.EQ |
++ or -- operations are not used to change loop counter, but condition tests loop counter for equality | 6-5-2 | 9.1 | |
MISRA.FOR.COUNTER.FLT |
For loop counter has a floating point type | 6-5-1 | 9.2 | |
MISRA.FOR.COUNTER.MANY |
Many counters in a for loop | 6-5-1 | 9.2 | |
MISRA.FOR.INCR |
For loop counter is modified in an inappropriate way | 6-5-4 | 9.1 | |
MISRA.FOR.LOOP_CONTROL.CHANGE.COND |
Loop control variable is modified in condition section of a for loop | 6-5-5 | 9.2 | |
MISRA.FOR.LOOP_CONTROL.CHANGE.EXPR |
Loop control variable is modified in expression section of a for loop | 6-5-5 | 9.2 | |
MISRA.FOR.LOOP_CONTROL.NOT_BOOLEAN |
Loop control variable is not boolean | 6-5-6 | 9.1 | |
MISRA.FOR.STMT.CHANGE |
For loop counter is modified within the loop statement | 6-5-3 | 9.2 | |
MISRA.FUNC.ADDR |
Address of a function is used without & operator | 8-4-4 | 9.1 | 9.2 SR1 |
MISRA.FUNC.ARRAY.PARAMS |
Function argument with array type decay to a pointer | 5-2-12 | 9.1 | |
MISRA.FUNC.DECL.AFTERUSE |
Function chosen by overload resolution when instantiating a template is declared after its usage | 14-6-2 | 9.2 | 2020.4 |
MISRA.FUNC.PARAMS.IDENT |
Identifiers used in declaration and definition of function are not identical | 8-4-2 | 9.2 | |
MISRA.FUNC.RECUR |
Recursive function | 7-5-4 | 9.1 | 9.2, 9.2 SR1 |
MISRA.FUNC.SPEC.NOTSPEC |
Viable function set for a function call contains both specializations and non-specializations | 14-8-2 | 9.2 | |
MISRA.FUNC.SPEC.OVRLD |
Viable function set for a function call contains an overloaded template and its explicit specialization | 14-8-1 | 9.2 | |
MISRA.FUNC.STATIC.REDECL |
Function or object redeclaration does not include 'static' modifier | 3-3-2 | 9.2 | |
MISRA.FUNC.UNUSEDPAR |
Formal parameter of a non-virtual function is not used | 0-1-11 | 9.2 | 9.2 SR2, 2017 |
MISRA.FUNC.UNUSEDPAR.UNNAMED |
Unnamed formal parameter of a non-virtual function is not used | 0-1-11 | 9.2 | 9.2 SR1 |
MISRA.FUNC.UNUSEDRET |
Return value of a non-void function is not used | 0-1-7 | 9.2 | |
MISRA.FUNC.VARARG |
Function with variable number of arguments | 8-4-1 | 9.1 | |
MISRA.FUNC.VIRTUAL.UNUSEDPAR |
Formal parameter of a virtual function set is not used | 0-1-12 | 9.2 | 9.2 SR1 |
MISRA.FUNC_CAST |
Functional notation cast different from explicit constructor call | 5-2-4 | 9.2 | 2020.2 |
MISRA.GENFU.ASSOC |
Generic function is declared in an associated namespace | 14-5-1 | 9.2 | |
MISRA.GOTO.AFTER.LABEL |
Unconstrained use of goto | 6-6-2 | 9.1 | |
MISRA.GOTO.NESTED |
Goto to a label declared in a nested compound statement | 6-6-1 | 9.1 | 9.2 |
MISRA.IF.DEFINED |
Incorrect 'defined' usage in #if directive | 16-1-1 | 9.1 | |
MISRA.IF.NO_COMPOUND |
The body of if/else statement is not a compound statement | 6-4-1 | 9.1 | |
MISRA.IF.NO_ELSE |
A chain of if/else-if statements is not terminated with else or is terminated with an empty else clause | 6-4-2 | 9.1 | 10.4, 2018.1, 2020.4 |
MISRA.IF.UNDEF |
Undefined macros in #if directive | 16-0-7 | 9.1 | |
MISRA.IF.WRAPAROUND |
Wrap-around in #if directive | 5-19-1 | 9.1 | |
MISRA.INCGUARD |
Include guard is not provided | 16-2-3 | 9.1 | |
MISRA.INCL.BAD |
Non-standard include directive | 16-2-6 | 9.1 | 9.2, 11.1 |
MISRA.INCL.INSIDE |
Include directive preceded by a preprocessor output token | 16-0-1 | 9.1 | |
MISRA.INCL.SYMS |
Non-standard characters in header file names | 16-2-4 16-2-5 | 9.1 | |
MISRA.INCL.UNSAFE |
Unsafe header inclusion | 18-0-2 18-0-4 18-7-1 27-0-1 | 9.1 | |
MISRA.INCR_DECR.OTHER |
Increment or decrement operator is mixed with other operators in expression | 5-2-10 | 9.1 | 9.2 |
MISRA.INIT.BRACES |
Incorrect initializer braces placement. | 8-5-2 | 9.1 | |
MISRA.ITER.ONETERM |
Iteration statement has more than one break or goto for loop termination. | 6-6-4 | 9.1 | |
MISRA.LINKAGE.EXTERN |
Object or function declaration with external linkage not in header file | 3-3-1 | 9.1 | 9.2 |
MISRA.LITERAL.NULL.INT |
NULL used as an integer value. | 4-10-1 | 9.1 | 11.1, 2020.1 |
MISRA.LITERAL.NULL.PTR |
Literal zero used as the null-pointer-constant. | 4-10-2 | 9.1 | 11.1 |
MISRA.LITERAL.SUFFIX.CASE |
Literal suffix in lower case. | 2-13-4 | 9.1 | 9.2 SR1, 9.5 |
MISRA.LITERAL.UNSIGNED.SUFFIX |
Unsigned integer literal without 'U' suffix | 2-13-3 | 9.1 | 9.5, 2021.3 |
MISRA.LOGIC.NOT_BOOL |
Operand of logical operation is not boolean | 5-3-1 | 9.1 | 9.2 SR1, 9.5, 2021.1, 2021.2 |
MISRA.LOGIC.OPERATOR.NOT_BOOL |
Operand of non-logical operator is effectively boolean | 4-5-1 | 9.1 (for C), 9.2 SR1 (for C++) | 11.2 |
MISRA.LOGIC.POSTFIX |
Operand in a logical 'and' or 'or' expression is not a postfix expression | 5-2-1 | 9.2 | 9.2 SR1, 9.2 SR2, 9.5 |
MISRA.LOGIC.SIDEEFF |
Right operand in a logical 'and' or 'or' expression contains side effects | 5-14-1 | 9.2 | 10.4 |
MISRA.MEMB.NON_CONST |
Non-const member function does not change any member variables | 9-3-3 | 9.1 | 9.2, 9.2 SR1, 9.2 SR2, 9.5. 2020.1 |
MISRA.MEMB.NON_STATIC |
Non-static member function does not use other non-static members of the same class | 9-3-3 | 9.1 | 9.2, 9.2 SR1, 9.5 |
MISRA.MEMB.NOT_PRIVATE |
Member variable in non-POD class is not private | 11-0-1 | 9.1 | |
MISRA.NAMESPACE.DECL |
Using-declaration in header file | 7-3-6 | 9.1 | |
MISRA.NAMESPACE.DIR |
Using-directive in header file | 7-3-6 | 9.1 | |
MISRA.NAMESPACE.UNMD |
Unnamed namespace in header file | 7-3-3 | 9.1 | |
MISRA.NS.GLOBAL |
Function, variable or type declaration in global namespace | 7-3-1 | 9.1 | 2021.1 |
MISRA.NS.GLOBAL.USING |
Using directive or declaration in global namespace | 7-3-1 | 10.1 | |
MISRA.NS.MAIN |
Non-global function with name 'main' is defined | 7-3-2 | 9.1 | 9.2 |
MISRA.NS.USING.HEADER |
Using directive or declaration is used in a header file | 7-3-6 | 9.1 | |
MISRA.NS.USING_DECL |
Multiple declarations for an identifier in the same namespace should not straddle a using-declaration for that identifier | 7-3-5 | 9.2 | |
MISRA.NS.USING_DIR |
Using directive | 7-3-4 | 9.1 | 9.2 |
MISRA.NULL.STMT |
Null statement is not the only statement on line or comments are placed incorrectly | 6-2-3 | 9.1 | 9.2 |
MISRA.OBJ.TYPE.COMPAT |
Type not compatible with type of other declaration | 3-2-1 | 9.1 | 11.0 |
MISRA.OBJ.TYPE.IDENT |
Type not identical with type of other declaration | 3-9-1 | 9.1 | 9.2 |
MISRA.ONEDEFRULE.FUNC |
Global function definition in a header file | 3-1-1 | 9.1 | |
MISRA.ONEDEFRULE.VAR |
Global variable definition in a header file | 3-1-1 | 9.1 | 2020.2 |
MISRA.PPARAM.NEEDS.CONST |
Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const | 7-1-2 | 9.1 | 9.2 SR1, 9.5, 10.4 |
MISRA.PRAGMA |
Non-documented pragma directive | 16-6-1 | 9.1 | |
MISRA.PRAGMA.ASM |
Incorrect assembler instruction | 7-4-2 | 9.1 | |
MISRA.PTR.ARITH |
Pointer is used in arithmetic or array index expression | 5-0-15 | 9.1 | 2020.2 |
MISRA.PTR.ARITH.NOT_SAME.2008 |
A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand | 5-0-16 | 2020.2 | |
MISRA.PTR.CMP.2008 |
Pointer comparison using comparison operators shall only be applied if pointing to same array and within the range | 5-0-18 | 2022.1 | |
MISRA.PTR.CMP.OBJECT.2008 |
Pointer comparison using comparison operators shall only be applied if pointing to same object and within the range | 5-0-18 | 2022.1 | |
MISRA.PTR.TO_PTR_TO_PTR |
Pointer declaration has more than two levels of indirection | 5-0-19 | 9.1 | 9.2 |
MISRA.PUREVIRT.OVRD |
Pure virtual function overrides a non pure virtual function | 10-3-3 | 9.2 | |
MISRA.RET.REF.NON_CONST |
Member function returns non-const handle to member variable | 9-3-2 | 9.1 | 9.2 |
MISRA.RETURN.NOT_LAST |
Return is not the last statement in a function | 6-6-5 | 9.1 | 9.2 SR2, 9.5 |
MISRA.SAME.DEFPARAMS |
Overriding virtual function and the function it overrides have different default arguments | 8-3-1 | 9.1 | |
MISRA.SHIFT.RANGE |
Right operand of shift operation is out of range - greater or equal to max bit-length of left operand, or negative | 5-8-1 | 9.1 | 9.2 |
MISRA.SIGNED_CHAR.NOT_NUMERIC |
'signed char' or 'unsigned char' is used for non-numeric value | 5-0-12 | 9.1 | 9.2 |
MISRA.SIZEOF.SIDE_EFFECT |
Operand of sizeof has side effects | 5-3-4 | 9.1 | |
MISRA.SPEC.ILL |
Explicit instantiation of a template makes the code ill-formed | 14-7-2 | 9.2 | |
MISRA.SPEC.SAMEFILE |
Template specialization and its primary template are declared in different files | 14-7-3 | 9.2 | 11.0 |
MISRA.STDLIB.ABORT |
Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h | 18-0-3 | 9.1 | |
MISRA.STDLIB.ATOI |
Use of 'atof', 'atoi' or 'atol' from library stdlib.h | 18-0-2 | 9.1 | |
MISRA.STDLIB.CSTRING |
Function from 'cstring' library is used | 18-0-5 | 9.2 | |
MISRA.STDLIB.CSTRING.MACRO |
Macro from 'cstring' library is used | 18-0-5 | 9.2 | |
MISRA.STDLIB.ERRNO |
Use of error indicator 'errno' | 19-3-1 | 9.1 | |
MISRA.STDLIB.LONGJMP |
Use of setjmp macro or longjmp function | 17-0-5 | 9.1 | |
MISRA.STDLIB.MEMORY |
Use of dynamic heap memory allocation | 18-4-1 | 9.1 | |
MISRA.STDLIB.SIGNAL |
Use of the signal handling facilities of signal.h | 18-7-1 | 9.1 | |
MISRA.STDLIB.STDIO |
Use of input/output library stdio.h in production code | 27-0-1 | 9.1 | |
MISRA.STDLIB.TIME |
Use of the time handling functions of library time.h | 18-0-4 | 9.1 | |
MISRA.STDLIB.WRONGNAME |
Reused name of standard library macro, object or function | 17-0-3 | 9.1 | 9.2 SR2 |
MISRA.STDLIB.WRONGNAME.UNDERSCORE |
Usage of a reserved name for naming a language entity | 17-0-3 | 9.2 SR2 | |
MISRA.STMT.COND.NOT_BOOLEAN |
Condition of if or loop statement is not a boolean expression | 5-0-13 | 9.1 | 9.5 |
MISRA.STMT.NO_COMPOUND |
The body of switch, while, do/while or for statement is not a compound statement | 6-3-1 | 9.1 | |
MISRA.STRINGS.CONCAT |
Narrow and wide string literals concatenated | 2-13-5 | 9.1 | |
MISRA.SWITCH.BOOL |
Condition of switch statement is boolean expression | 6-4-7 | 9.1 | |
MISRA.SWITCH.LABEL |
A switch label belongs to nested compound statement inside switch body | 6-4-4 | 9.1 | |
MISRA.SWITCH.NODEFAULT |
No default clause at the end of a switch statement | 6-4-6 | 9.2 | 9.2 SR1 |
MISRA.SWITCH.NOT_WELL_FORMED |
Switch statement is not well-formed | 6-4-3 | 9.1 | 9.2 |
MISRA.SWITCH.NO_BREAK |
No break or throw statement at the end of switch-clause | 6-4-5 | 9.1 | 9.2 |
MISRA.SWITCH.NO_CASE |
No case-clause in a switch statement | 6-4-8 | 9.1 | 9.2 |
MISRA.TEMPLMEM.NOQUAL |
In an instantiated template a member declared in a dependant base is used without a qualificator or 'this' | 14-6-1 | 9.2 | |
MISRA.TERMINATE |
terminate() function is called explicitly | 15-5-3 | 9.1 | |
MISRA.THROW.EMPTY |
Empty throw expression does not belong to a catch block | 15-1-3 | 9.1 | |
MISRA.THROW.NULL |
NULL is thrown explicitly | 15-1-2 | 9.1 | |
MISRA.THROW.PTR |
Exception object is a pointer | 15-0-2 | 9.1 | |
MISRA.TOKEN.BADCOM |
Inappropriate character sequence in a comment | 2-7-1 | 9.1 | |
MISRA.TOKEN.OCTAL.ESCAPE |
Usage of octal escape sequences | 2-13-2 | 9.1 | |
MISRA.TOKEN.OCTAL.INT |
Usage of octal integer constants | 2-13-2 | 9.1 | 2020.4 |
MISRA.TOKEN.WRONGESC |
Incorrect escape sequence in a literal | 2-13-1 | 9.1 | |
MISRA.TRY.JUMP |
Control can be transferred into a try block with goto or switch statement | 15-0-3 | 9.1 | 10.1 SR1 |
MISRA.TYPE.NAMECLASH.CPP.2008 |
Identifier in one name space has same spelling as identifier in other name space | 2-10-6 | 9.1 | 9.2, 9.2 SR2, 9.5, 2020.2 |
MISRA.TYPEDEF.NOT_UNIQUE |
Typedef name is used for another entity | 2-10-3 | 9.1 | 9.2, 9.5 |
MISRA.UMINUS.UNSIGNED |
Operand of unary minus is unsigned | 5-3-2 | 9.1 | 2021.2 |
MISRA.UNDEF |
Undef usage | 16-0-3 | 9.1 | |
MISRA.UNDEF.NOTGLOBAL |
Undef not at the global level | 16-0-2 | 9.1 | |
MISRA.UNDEF.WRONGNAME |
Undefinition of a name from the standard library | 17-0-2 | 9.1 | 9.5 |
MISRA.UNDEF.WRONGNAME.UNDERSCORE |
Undefinition of a reserved name | 17-0-2 | 9.2 SR2 | |
MISRA.UNION |
Union is used | 9-5-1 | 9.1 | |
MISRA.UN_OP.OVERLOAD |
Unary & operator is overloaded | 5-3-3 | 9.1 | 11.0 |
MISRA.USE.DEFINE |
Non-guarding macro definition | 16-2-1 | 9.1 | |
MISRA.USE.EXPANSION |
Macro expansion | 16-2-1 | 9.1 | 2022.1 |
MISRA.USE.UNKNOWNDIR |
Unknown preprocessor directive is used | 16-0-8 | 9.1 | 11.3 |
MISRA.USE.WRONGDIR |
Improper preprocessor directive | 16-2-1 | 9.1 | |
MISRA.VAR.HIDDEN |
Identifier declared in an inner scope hides identifier in outer scope | 2-10-2 | 9.2 | 9.2 SR1, 9.5, 10.1, 2020.2 |
MISRA.VAR.MIN.VIS |
Name visibility is too wide | 3-4-1 | 9.1 | 9.2 SR2, 10.1. 2020.1 |
MISRA.VAR.NEEDS.CONST |
Variable is not modified but is declared without const qualifier | 7-1-1 | 9.1 | 9.2 SR1, 9.2 SR2, 11.3, 2018.2, 2020.1 |
MISRA.VAR.UNIQUE.STATIC |
Identifier with static storage specifier clashes with other identifier | 2-10-5 | 9.2 | |
MISRA.VIRTUAL.BASE.DIAMOND |
Base class is used as virtual not in diamond hierarchy | 10-1-2 | 9.2 | |
MISRA.VIRTUAL.NOVIRTUAL |
Overriding virtual function declared with no 'virtual' keyword | 10-3-2 | 9.2 | 9.5 |
PORTING.VAR.EFFECTS |
Variable used twice in one expression where one usage is subject to side-effects | 5-0-1 | 9.2 | 9.5 |
UNINIT.CTOR.MIGHT |
Uninitialized Variable in Constructor - possible | 8-5-1 | Pre-9.2 | 9.2, 9.5 |
UNINIT.CTOR.MUST |
Uninitialized Variable in Constructor | 8-5-1 | Pre-9.2 | 9.2, 9.5, 2020.1, 2021.2, 2022.1 |
UNINIT.HEAP.MIGHT |
Uninitialized Heap Use - possible | 8-5-1 | Pre-9.2 | 9.2, 9.5 |
UNINIT.HEAP.MUST |
Uninitialized Heap Use | 8-5-1 | Pre-9.2 | 9.2, 9.5 |
UNINIT.STACK.ARRAY.MIGHT |
Uninitialized Array - possible | 8-5-1 | Pre-9.2 | 9.2, 9.5 |
UNINIT.STACK.ARRAY.MUST |
Uninitialized Array | 8-5-1 | Pre-9.2 | 9.2, 9.5, 2021.2, 2021.4, 2022.1 |
UNINIT.STACK.ARRAY.PARTIAL.MUST |
Partially Uninitialized Array | 8-5-1 | Pre-9.2 | 9.2, 9.5, 2022.1 |
UNINIT.STACK.MIGHT |
Uninitialized Variable - possible | 8-5-1 | Pre-9.2 | 9.2, 9.5, 2018.2, 2020.2, 2022.1 |
UNINIT.STACK.MUST |
Uninitialized Variable | 8-5-1 | Pre-9.2 | 9.2, 9.5, 11.2, 2020.3, 2021.2, 2021.4 |
UNREACH.ENUM |
Code is unreachable due to the possible value(s) of an enum | 0-1-1 | 2021.3 | |
UNREACH.GEN |
Unreachable code | 0-1-1 | Pre-9.2 | 9.2, 9.5, 10.1, 10.3, 10.4, 11.2, 2020.3, 2021.3 |
UNREACH.RETURN |
Unreachable Void Return | 0-1-1 | Pre-9.2 | 9.2, 9.5, 11.2 |
UNUSED.FUNC.GEN |
Function defined but not used | 0-1-10 | 10.1 | 11.3 |
VA_UNUSED.GEN |
Value is Never Used after Assignment | 0-1-9 | Pre-9.2 | 9.5 |
VA_UNUSED.INIT |
Value is Never Used after Initialization | 0-1-9 | Pre-9.2 | 9.5, 11.2 |