MISRA C:2012 checker reference - certified
These checkers detect violations of the MISRA C:2012 standard.
Notes
- This reference table does not include Amendment 1. If you prefer to see the version with the amendment included, see MISRA C:2012 with Amendment 1 checker reference- certified.
- To view this information organized by rule number, see MISRA C:2012 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.
MISRA C:2012 C90
Checker name | Description | Rule | Version |
---|---|---|---|
ABV.ANY_SIZE_ARRAY | Buffer Overflow - Array Index Out of Bounds | Dir. 4.1 | Pre-2020.1 |
ABV.GENERAL | Buffer Overflow - Array Index Out of Bounds | 18.1 Dir. 4.1 | Pre-2020.1 |
ABV.GENERAL.MULTIDIMENSION | Buffer Overflow - Array Index Out of Bounds | 18.1 Dir. 4.1 | 2022.3 |
ABV.ITERATOR | Buffer Overflow - Array Index may be out of Bounds | Dir. 4.1 | Pre-2020.1 |
ABV.MEMBER | Buffer Overflow - Array Index Out of Bounds | Dir. 4.1 | Pre-2020.1 |
ABV.STACK | Buffer Overflow - Local Array Index Out of Bounds | 18.1 Dir. 4.1 | Pre-2020.1 |
ABV.UNICODE.BOUND_MAP | Buffer overflow in mapping character function | Dir. 4.1 | Pre-2020.1 |
ABV.UNICODE.FAILED_MAP | Mapping function failed | Dir. 4.1 | Pre-2020.1 |
ABV.UNICODE.NNTS_MAP | Buffer overflow in mapping character function | Dir. 4.1 | Pre-2020.1 |
ABV.UNICODE.SELF_MAP | Mapping function failed | Dir. 4.1 | Pre-2020.1 |
ABV.UNKNOWN_SIZE | Buffer Overflow - Array Index Out of Bounds | Dir. 4.1 | Pre-2020.1 |
DBZ.CONST | Division by a zero constant occurs | Dir. 4.1 | 2020.2 |
DBZ.CONST.CALL | The value '0' is passed to function that can use this value as divisor | Dir. 4.1 | Pre-2020.1 |
DBZ.GENERAL | Division by zero might occur | Dir. 4.1 | 2023.3 |
DBZ.ITERATOR | Division by zero might occur in a loop iterator | Dir. 4.1 | Pre-2020.1 |
DBZ.ITERATOR.CALL | Division by zero might occur in a function call | Dir. 4.1 | Pre-2020.1 |
EFFECT | Statement has no effect | 2.2 | Pre-2020.1 |
FMM.MIGHT | Freeing Mismatched Memory - possible | 22.2 | Pre-2020.1 |
FMM.MUST | Freeing Mismatched Memory | 22.2 | Pre-2020.1 |
FNH.MIGHT | Freeing Non-Heap Memory - possible | 22.2 | Pre-2020.1 |
FNH.MUST | Freeing Non-Heap Memory | 22.2 | Pre-2020.1 |
FREE.INCONSISTENT | Inconsistent Freeing of Memory | 22.1 | Pre-2020.1 |
FUM.GEN.MIGHT | Freeing Unallocated Memory - possible | 22.2 | Pre-2020.1 |
FUM.GEN.MUST | Freeing Unallocated Memory | 22.2 | Pre-2020.1 |
FUNCRET.GEN | Non-void function does not return value | 17.4 | Pre-2020.1 |
FUNCRET.IMPLICIT | Non-void function implicitly returning int does not return value | 17.4 | Pre-2020.1 |
INVARIANT_CONDITION.GEN | Invariant expression in a condition | 14.3 | 2020.1 |
INVARIANT_CONDITION.UNREACH | Invariant expression in a condition | 14.3 | Pre-2020.1 |
LA_UNUSED | Label unused | 2.6 | Pre-2020.1 |
LOCRET.ARG | Function returns address of local variable | 18.6 | Pre-2020.1 |
LOCRET.GLOB | Function returns address of local variable | 18.6 | Pre-2020.1 |
LOCRET.RET | Function returns address of local variable | 18.6 | Pre-2020.1 |
LV_UNUSED.GEN | Local variable unused | 2.2 | 2020.3 |
MISRA.ASM.ENCAPS | Assembly language is not isolated. | Dir. 4.2 Dir. 4.3 | Pre-2020.1 |
MISRA.ASSIGN.OVERLAP | Object is assigned to an overlapping object | 19.1 | 2023.2 |
MISRA.ASSIGN.SUBEXPR.2012 | The result of an assignment operator is used | 13.4 | Pre-2020.1 |
MISRA.BITFIELD.SIGNED | Length of a named signed bit-field is less than 2 | 6.2 | Pre-2020.1 |
MISRA.BITFIELD.TYPE | Type of bit-field is not signed/unsigned integer | 6.1 | Pre-2020.1 |
MISRA.BREAK_OR_GOTO.MULTIPLE.2012 | Iteration statement has more than one break or goto for loop termination. | 15.4 | Pre-2020.1 |
MISRA.BUILTIN_NUMERIC | Builtin numeric type is used | Dir. 4.6 | Pre-2020.1 |
MISRA.CAST.CONST | Cast operation removes const or volatile modifier from a pointer or reference | 11.8 | Pre-2020.1 |
MISRA.CAST.FUNC_PTR.2012 | Conversion performed between a pointer to a function and another incompatible type | 11.1 | Pre-2020.1 |
MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012 | Conversion performed between a pointer to an incomplete type and a different type | 11.2 | Pre-2020.1 |
MISRA.CAST.OBJ_PTR_TO_INT.2012 | Conversion performed between a pointer to an object and an integer type | 11.4 | Pre-2020.1 |
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012 | A cast between a pointer to object and a non-integer arithmetic type | 11.7 | Pre-2020.1 |
MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012 | Cast between a pointer to object type and a pointer to a different object type | 11.3 | Pre-2020.1 |
MISRA.CAST.VOID_PTR_TO_INT.2012 | Cast between a pointer to void and an arithmetic type | 11.6 | 2021.2 |
MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012 | Conversion performed from a pointer to void to a pointer to an object | 11.5 | Pre-2020.1 |
MISRA.CHAR.TRIGRAPH | Trigraph usage | 4.2 | Pre-2020.1 |
MISRA.COMMA | Comma operator is used | 12.3 | Pre-2020.1 |
MISRA.COMP.WRAPAROUND | Wrap-around in a condition | 12.4 | 2020.3 |
MISRA.CT.UNIQUE.ID.2012 | Identifier clashes with tag name | 5.7 | 2021.2 |
MISRA.DECL.ARRAY_SIZE | Declaration of array with unknown size | 8.11 | Pre-2020.1 |
MISRA.DECL.NO_TYPE | Declaration without a type | 8.1 | Pre-2020.1 |
MISRA.DEFINE.FUNC | Function-like macro definition | Dir. 4.9 | Pre-2020.1 |
MISRA.DEFINE.NOT_DISTINCT.C90.2012 | Identifier name is too long | 5.4 | Pre-2020.1 |
MISRA.DEFINE.SHARP | # or ## operator in a macro definition | 20.10 | Pre-2020.1 |
MISRA.DEFINE.SHARP.ORDER.2012 | Unspecified order of evaluation of multiple '#' or '##' | 20.11 | 2020.4 |
MISRA.DEFINE.SHARP.REPLACE.2012 | A macro parameter used as an operand to the '#' or '##' operators, which is itself subject to further macro replacement, shall only be used as an operand to these operators | 20.12 | Pre-2020.1 |
MISRA.DEFINE.WRONGNAME | Usage of a name from the standard library for naming a macro | 21.1 | Pre-2020.1 |
MISRA.DEFINE.WRONGNAME.C90.2012 | A macro shall not be defined with the same name as a keyword | 20.4 | Pre-2020.1 |
MISRA.DEFINE.WRONGNAME.UNDERSCORE | Usage of a reserved name for naming a macro | 21.1 | Pre-2020.1 |
MISRA.ELIF.COND.NOT_BOOL.2012 | #elif condition is not 0 or 1 | 20.8 | Pre-2020.1 |
MISRA.ELIF.OTHERFILE | #elif in an improper file | 20.14 | Pre-2020.1 |
MISRA.ELIF.UNDEF | Undefined macros in #elif directive | 20.9 | Pre-2020.1 |
MISRA.ELSE.OTHERFILE | #else in an improper file | 20.14 | Pre-2020.1 |
MISRA.ENDIF.OTHERFILE | #endif in an improper file | 20.14 | Pre-2020.1 |
MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012 | Implicit enumerator value is not unique | 8.12 | Pre-2020.1 |
MISRA.ETYPE.ASSIGN.2012 | Assignment to an object of a narrower essential type or a different essential type category | 10.3 | 2020.3 |
MISRA.ETYPE.CATEGORY.DIFFERENT.2012 | The operands of an operator in which the usual arithmetic conversions are performed do not have the same essential type category | 10.4 | 2021.2 |
MISRA.ETYPE.COMP.ASSIGN.2012 | The value of a composite expression is assigned to an object with a wider essential type | 10.6 | 2021.3 |
MISRA.ETYPE.COMP.CAST.EXPL.DIFFERENT.2012 | The value of a composite expression is cast to a different essential type category | 10.8 | Pre-2020.1 |
MISRA.ETYPE.COMP.CAST.EXPL.WIDER.2012 | The value of a composite expression is cast to a wider essential type | 10.8 | Pre-2020.1 |
MISRA.ETYPE.COMP.CAST.IMPL.WIDER.2012 | A composite expression used as an operand of an operator in which the usual arithmetic conversions are performed has its other operand having a wider essential type | 10.7 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.CAST.2012 | The value of an expression is cast to an inappropriate essential type | 10.5 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.CHAR.2012 | Inappropriate usage of Essentially Character type in an addition or subtraction operation | 10.2 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.OPERAND.BINOP.2012 | Operand(s) to a binary operator have inappropriate essential type | 10.1 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.OPERAND.INDEXPR.2012 | Index expression has inappropriate essential type | 10.1 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.OPERAND.TERNOP.2012 | First operand to a ternary operator has inappropriate essential type | 10.1 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.OPERAND.UNOP.2012 | Operand to a unary operator has inappropriate essential type | 10.1 | Pre-2020.1 |
MISRA.EXPANSION.DIRECTIVE | Directive-like tokens within a macro argument | 20.6 | Pre-2020.1 |
MISRA.EXPR.PARENS.2012 | The precedence of operators within expressions should be made explicit. | 12.1 | Pre-2020.1 |
MISRA.EXPR.PARENS.SIZEOF.2012 | The operand of the sizeof operator should be parenthesized. | 12.1 | Pre-2020.1 |
MISRA.FILE_PTR.DEREF.2012 | A pointer to a FILE object shall not be dereferenced | 22.5 | 2022.1 |
MISRA.FILE_PTR.DEREF.CAST.2012 | Object is casted to a FILE pointer, and it shall not be dereferenced | 22.5 | Pre-2020.1 |
MISRA.FILE_PTR.DEREF.INDIRECT.2012 | A pointer to a FILE object shall not be indirectly dereferenced by a system function | 22.5 | Pre-2020.1 |
MISRA.FILE_PTR.DEREF.RETURN.2012 | A pointer to a FILE object (returned by function) shall not be dereferenced | 22.5 | Pre-2020.1 |
MISRA.FOR.COUNTER.FLT | For loop counter has a floating point type | 14.1 | Pre-2020.1 |
MISRA.FUNC.MODIFIEDPAR.2012 | A function parameter should not be modified | 17.8 | Pre-2020.1 |
MISRA.FUNC.NODECL.CALL.2012 | Function was declared implicitly | 17.3 | Pre-2020.1 |
MISRA.FUNC.NOPROT.DEF.2012 | Function has a definition but no prototype | 8.4 | Pre-2020.1 |
MISRA.FUNC.NO_PARAMS | Function without parameters is missing void parameter type | 8.2 | Pre-2020.1 |
MISRA.FUNC.PROT_FORM.KR.2012 | Function types shall be in prototype form | 8.2 | Pre-2020.1 |
MISRA.FUNC.RECUR | Recursive function | 17.2 | Pre-2020.1 |
MISRA.FUNC.STATIC.REDECL | Function or object redeclaration does not include 'static' modifier | 8.8 | Pre-2020.1 |
MISRA.FUNC.UNMATCHED.PARAMS | Number of formal and actual parameters passed to function do not match | 8.2 | Pre-2020.1 |
MISRA.FUNC.UNNAMED.PARAMS | Function declaration has unnamed parameters | 8.2 | 2022.4 |
MISRA.FUNC.UNUSEDPAR.2012 | Unused parameters in functions | 2.7 | Pre-2020.1 |
MISRA.FUNC.UNUSEDRET.2012 | The return value of a non-void function shall be used. | 17.7 | Pre-2020.1 |
MISRA.FUNC.VARARG | Function with variable number of arguments | 17.1 | Pre-2020.1 |
MISRA.GOTO | Goto statement is used | 15.1 | Pre-2020.1 |
MISRA.GOTO.AFTER_LABEL.2012 | Goto jumps to label declared before in same function. | 15.2 | Pre-2020.1 |
MISRA.GOTO.NESTED.2012 | Label referenced by goto is not in this or enclosing block. | 15.3 | Pre-2020.1 |
MISRA.IDENT.DISTINCT.C90.2012 | Identifiers declared in the same scope or name space are not distinct | 5.2 | Pre-2020.1 |
MISRA.IDENT.NONUNIQUE.EXTERNAL.2012 | Identifiers that define objects or functions with external linkage shall be unique. | 5.8 | Pre-2020.1 |
MISRA.IDENT.NONUNIQUE.INTERNAL.2012 | Identifiers that define objects or functions with internal linkage should be unique. | 5.9 | Pre-2020.1 |
MISRA.IF.COND.NOT_BOOL.2012 | #if condition is not 0 or 1 | 20.8 | Pre-2020.1 |
MISRA.IF.NO_COMPOUND | The body of if/else statement is not a compound statement | 15.6 | Pre-2020.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 | 15.7 | Pre-2020.1 |
MISRA.IF.UNDEF | Undefined macros in #if directive | 20.9 | Pre-2020.1 |
MISRA.INCGUARD | Include guard is not provided | Dir. 4.10 | Pre-2020.1 |
MISRA.INCL.BAD | Non-standard include directive | 20.3 | 2020.4 |
MISRA.INCL.INSIDE | Include directive preceded by a preprocessor output token | 20.1 | Pre-2020.1 |
MISRA.INCL.SIGNAL.2012 | The standard header file signal.h shall not be used | 21.5 | Pre-2020.1 |
MISRA.INCL.STDIO.2012 | The standard header files stdio.h shall not be used | 21.6 | Pre-2020.1 |
MISRA.INCL.SYMS | Non-standard characters in header file names | 20.2 | Pre-2020.1 |
MISRA.INCL.TIME.2012 | The standard header file time.h shall not be used | 21.10 | Pre-2020.1 |
MISRA.INCR_DECR.SIDEEFF.2012 | A full expression containing an increment (++) or decrement (--) operator should have no other potential side effects other than that caused by the increment or decrement operator | 13.3 | Pre-2020.1 |
MISRA.INIT.BRACES.2012 | The initializer for an aggregate or union is not enclosed in braces | 9.2 | Pre-2020.1 |
MISRA.INIT.PARTIAL.2012 | Array is partially initialized | 9.3 | Pre-2020.1 |
MISRA.LANG.EXTENSIONS | Language extensions should not be used | 1.2 | 2022.4 |
MISRA.LITERAL.NULL.PTR.CONST.2012 | The macro NULL is the only permitted form of integer null pointer constant | 11.9 | 2020.2 |
MISRA.LITERAL.UNSIGNED.SUFFIX | Unsigned integer literal without 'U' suffix | 7.2 | Pre-2020.1 |
MISRA.LOGIC.SIDEEFF | Right operand in a logical 'and' or 'or' expression contains side effects | 13.5 | Pre-2020.1 |
MISRA.MEMB.FLEX_ARRAY.2012 | Flexible array member shall not be declared | 18.7 | Pre-2020.1 |
MISRA.PPARAM.NEEDS.CONST | Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const | 8.13 | Pre-2020.1 |
MISRA.PTR.ARITH.2012 | Pointer is used in arithmetic expression | 18.4 | Pre-2020.1 |
MISRA.PTR.ARITH.NOT_SAME.2012 | A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand | 18.1 | 2020.2 |
MISRA.PTR.CMP.2008 | Pointer comparison using comparison operators shall only be applied if pointing to same array and within the range | 18.3 | 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 | 18.3 | 2022.1 |
MISRA.PTR.SUB | Pointer subtraction shall only be applied if pointing to same array | 18.2 | 2022.4 |
MISRA.PTR.SUB.OBJECT | Pointer subtraction shall only be applied if pointing to same object | 18.2 | 2022.4 |
MISRA.PTR.TO_PTR_TO_PTR | Pointer declaration has more than two levels of indirection | 18.5 | Pre-2020.1 |
MISRA.RESOURCES.FILE.OPEN_READ_WRITE.2012 | Multiple streams opened for same file | 22.3 | 2023.1 |
MISRA.RESOURCES.FILE.READ_ONLY_WRITE.2012 | There shall be no attempt to write to a stream which has been opened as read-only | 22.4 | Pre-2020.1 |
MISRA.RESOURCES.FILE.USE_AFTER_CLOSE.2012 | The value of a pointer to a FILE shall not be used after the associated stream has been closed | 22.6 | Pre-2020.1 |
MISRA.RETURN.NOT_LAST | Return is not the last statement in a function | 15.5 | Pre-2020.1 |
MISRA.SHIFT.RANGE.2012 | Right operand of shift operation is out of range - greater or equal to the essential type size of left operand, or is negative | 12.2 | Pre-2020.1 |
MISRA.SIZEOF.SIDE_EFFECT | Operand of sizeof has side effects | 13.6 | Pre-2020.1 |
MISRA.STDLIB.ABORT | Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h | 21.8 | Pre-2020.1 |
MISRA.STDLIB.ATOI | Use of 'atof', 'atoi' or 'atol' from library stdlib.h | 21.7 | Pre-2020.1 |
MISRA.STDLIB.BSEARCH.2012 | Use of 'bsearch' or 'qsort' from library stdlib.h | 21.9 | Pre-2020.1 |
MISRA.STDLIB.LONGJMP | Use of setjmp macro or longjmp function | 21.4 | Pre-2020.1 |
MISRA.STDLIB.MEMORY | Use of dynamic heap memory allocation | 21.3 | Pre-2020.1 |
MISRA.STDLIB.SIGNAL | Use of the signal handling facilities of signal.h | 21.5 | Pre-2020.1 |
MISRA.STDLIB.STDIO | Use of input/output library stdio.h in production code | 21.6 | Pre-2020.1 |
MISRA.STDLIB.TIME | Use of the time handling functions of library time.h | 21.10 | Pre-2020.1 |
MISRA.STDLIB.WRONGNAME | Reused name of standard library macro, object or function | 21.2 | Pre-2020.1 |
MISRA.STDLIB.WRONGNAME.UNDERSCORE | Usage of a reserved name for naming a language entity | 21.2 | Pre-2020.1 |
MISRA.STMT.COND.NOT_BOOLEAN.2012 | The controlling expression of an if statement or loop statement is not 'Essentially Boolean' type | 14.4 | Pre-2020.1 |
MISRA.STMT.NO_COMPOUND | The body of switch, while, do/while or for statement is not a compound statement | 15.6 | Pre-2020.1 |
MISRA.STRING_LITERAL.NON_CONST.2012 | A string literal shall not be assigned to an object unless the object's type is pointer to const-qualified char | 7.4 | Pre-2020.1 |
MISRA.SWITCH.COND.BOOL.2012 | A switch-expression shall not have essentially Boolean type. | 16.7 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.2012 | All switch statements shall be well-formed. | 16.1 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.BREAK.2012 | An unconditional break statement shall terminate every switch-clause. | 16.3 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.DEFAULT.2012 | Every switch statement shall have a default label. | 16.4 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.DEFAULT.FIRST_OR_LAST.2012 | A default label shall appear as either the first or the last switch label of a switch statement. | 16.5 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.NESTED_LABEL.2012 | A switch label shall only be used when the most closely-enclosing compound statement is the body of the switch statement. | 16.2 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.TWO_CLAUSES.2012 | Every switch statement shall have at least two switch-clauses. | 16.6 | Pre-2020.1 |
MISRA.TOKEN.BADCOM | Inappropriate character sequence in a comment | 3.1 | Pre-2020.1 |
MISRA.TOKEN.L.SUFFIX.FLOAT | Usage of lowercase character "l" suffix in floating constant | 7.3 | Pre-2020.1 |
MISRA.TOKEN.L.SUFFIX.INT | Usage of lowercase character "l" suffix in integer constant | 7.3 | Pre-2020.1 |
MISRA.TOKEN.OCTAL.INT | Usage of octal integer constants | 7.1 | 2020.4 |
MISRA.TOKEN.UNTERMINATED.ESCAPE.2012 | Unterminated escape sequence in a string literal | 4.1 | Pre-2020.1 |
MISRA.TYPEDEF.NOT_UNIQUE.2012 | Typedef name is used for another entity | 5.6 | 2023.2 |
MISRA.UNDEF | Undef usage | 20.5 | Pre-2020.1 |
MISRA.UNDEF.WRONGNAME | Undefinition of a name from the standard library | 21.1 | Pre-2020.1 |
MISRA.UNDEF.WRONGNAME.UNDERSCORE | Undefinition of a reserved name | 21.1 | Pre-2020.1 |
MISRA.UNION | Union is used | 19.2 | Pre-2020.1 |
MISRA.USE.UNKNOWNDIR | Unknown preprocessor directive is used | 20.13 | Pre-2020.1 |
MISRA.VAR.HIDDEN | Identifier declared in an inner scope hides identifier in outer scope | 5.3 | 2020.2 |
MLK.MIGHT | Memory Leak - possible | 22.1 | Pre-2020.1 |
MLK.MUST | Memory Leak | 22.1 | 2020.1 |
MLK.RET.MIGHT | Memory Leak - possible | 22.1 | Pre-2020.1 |
MLK.RET.MUST | Memory Leak | 22.1 | Pre-2020.1 |
NUM.OVERFLOW.DF | Possible numeric overflow or wraparound | Dir. 4.1 | 2022.3 |
PORTING.VAR.EFFECTS | Variable used twice in one expression where one usage is subject to side-effects | 13.2 | Pre-2020.1 |
RH.LEAK | Resource leak | 22.1 | 2020.1 |
SV.RVT.RETVAL_NOTTESTED | Ignored Return Value | Dir. 4.7 | 2021.2 |
UNINIT.CTOR.MIGHT | Uninitialized Variable in Constructor - possible | Dir. 4.1 | Pre-2020.1 |
UNINIT.CTOR.MUST | Uninitialized Variable in Constructor | Dir. 4.1 | 2020.1 |
UNINIT.HEAP.MIGHT | Uninitialized Heap Use - possible | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.HEAP.MUST | Uninitialized Heap Use | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.ARRAY.MIGHT | Uninitialized Array - possible | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.ARRAY.MUST | Uninitialized Array | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.ARRAY.PARTIAL.MUST | Partially Uninitialized Array | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.MIGHT | Uninitialized Variable - possible | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.MUST | Uninitialized Variable | 9.1 Dir. 4.1 | Pre-2020.1 |
UNREACH.ENUM | Code is unreachable due to the possible value(s) of an enum | 2.1 | 2021.3 |
UNREACH.GEN | Unreachable code | 2.1 | Pre-2020.1 |
UNREACH.RETURN | Unreachable Void Return | 2.1 | Pre-2020.1 |
VA_UNUSED.GEN | Value is Never Used after Assignment | 2.2 | Pre-2020.1 |
VA_UNUSED.INIT | Value is Never Used after Initialization | 2.2 | Pre-2020.1 |
MISRA C:2012 C99
Checker name | Description | Rule | Version |
---|---|---|---|
ABV.ANY_SIZE_ARRAY | Buffer Overflow - Array Index Out of Bounds | Dir. 4.1 | Pre-2020.1 |
ABV.GENERAL | Buffer Overflow - Array Index Out of Bounds | 18.1 Dir. 4.1 | Pre-2020.1 |
ABV.GENERAL.MULTIDIMENSION | Buffer Overflow - Array Index Out of Bounds | 18.1 Dir. 4.1 | 2022.3 |
ABV.ITERATOR | Buffer Overflow - Array Index may be out of Bounds | Dir. 4.1 | Pre-2020.1 |
ABV.MEMBER | Buffer Overflow - Array Index Out of Bounds | Dir. 4.1 | Pre-2020.1 |
ABV.STACK | Buffer Overflow - Local Array Index Out of Bounds | 18.1 Dir. 4.1 | Pre-2020.1 |
ABV.UNICODE.BOUND_MAP | Buffer overflow in mapping character function | Dir. 4.1 | Pre-2020.1 |
ABV.UNICODE.FAILED_MAP | Mapping function failed | Dir. 4.1 | Pre-2020.1 |
ABV.UNICODE.NNTS_MAP | Buffer overflow in mapping character function | Dir. 4.1 | Pre-2020.1 |
ABV.UNICODE.SELF_MAP | Mapping function failed | Dir. 4.1 | Pre-2020.1 |
ABV.UNKNOWN_SIZE | Buffer Overflow - Array Index Out of Bounds | Dir. 4.1 | Pre-2020.1 |
DBZ.CONST | Division by a zero constant occurs | Dir. 4.1 | 2020.2 |
DBZ.CONST.CALL | The value '0' is passed to function that can use this value as divisor | Dir. 4.1 | Pre-2020.1 |
DBZ.GENERAL | Division by zero might occur | Dir. 4.1 | 2023.3 |
DBZ.ITERATOR | Division by zero might occur in a loop iterator | Dir. 4.1 | Pre-2020.1 |
DBZ.ITERATOR.CALL | Division by zero might occur in a function call | Dir. 4.1 | Pre-2020.1 |
EFFECT | Statement has no effect | 2.2 | Pre-2020.1 |
FMM.MIGHT | Freeing Mismatched Memory - possible | 22.2 | Pre-2020.1 |
FMM.MUST | Freeing Mismatched Memory | 22.2 | Pre-2020.1 |
FNH.MIGHT | Freeing Non-Heap Memory - possible | 22.2 | Pre-2020.1 |
FNH.MUST | Freeing Non-Heap Memory | 22.2 | Pre-2020.1 |
FREE.INCONSISTENT | Inconsistent Freeing of Memory | 22.1 | Pre-2020.1 |
FUM.GEN.MIGHT | Freeing Unallocated Memory - possible | 22.2 | Pre-2020.1 |
FUM.GEN.MUST | Freeing Unallocated Memory | 22.2 | Pre-2020.1 |
FUNCRET.GEN | Non-void function does not return value | 17.4 | Pre-2020.1 |
FUNCRET.IMPLICIT | Non-void function implicitly returning int does not return value | 17.4 | Pre-2020.1 |
INVARIANT_CONDITION.GEN | Invariant expression in a condition | 14.3 | 2020.1 |
INVARIANT_CONDITION.UNREACH | Invariant expression in a condition | 14.3 | Pre-2020.1 |
LA_UNUSED | Label unused | 2.6 | Pre-2020.1 |
LOCRET.ARG | Function returns address of local variable | 18.6 | Pre-2020.1 |
LOCRET.GLOB | Function returns address of local variable | 18.6 | Pre-2020.1 |
LOCRET.RET | Function returns address of local variable | 18.6 | Pre-2020.1 |
LV_UNUSED.GEN | Local variable unused | 2.2 | 2020.3 |
MISRA.ARRAY.VAR_LENGTH.2012 | Variable-length array types shall not be used | 18.8 | 2020.4 |
MISRA.ASM.ENCAPS | Assembly language is not isolated. | Dir. 4.2 Dir. 4.3 | Pre-2020.1 |
MISRA.ASSIGN.OVERLAP | Object is assigned to an overlapping object | 19.1 | 2023.2 |
MISRA.ASSIGN.SUBEXPR.2012 | The result of an assignment operator is used | 13.4 | Pre-2020.1 |
MISRA.BITFIELD.SIGNED | Length of a named signed bit-field is less than 2 | 6.2 | Pre-2020.1 |
MISRA.BITFIELD.TYPE.2012 | Type of bit-field is neither bool, nor signed/unsigned integer | 6.1 | 2021.2 |
MISRA.BREAK_OR_GOTO.MULTIPLE.2012 | Iteration statement has more than one break or goto for loop termination. | 15.4 | Pre-2020.1 |
MISRA.BUILTIN_NUMERIC | Builtin numeric type is used | Dir. 4.6 | Pre-2020.1 |
MISRA.CAST.CONST | Cast operation removes const or volatile modifier from a pointer or reference | 11.8 | Pre-2020.1 |
MISRA.CAST.FUNC_PTR.2012 | Conversion performed between a pointer to a function and another incompatible type | 11.1 | Pre-2020.1 |
MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012 | Conversion performed between a pointer to an incomplete type and a different type | 11.2 | Pre-2020.1 |
MISRA.CAST.OBJ_PTR_TO_INT.2012 | Conversion performed between a pointer to an object and an integer type | 11.4 | Pre-2020.1 |
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012 | A cast between a pointer to object and a non-integer arithmetic type | 11.7 | Pre-2020.1 |
MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012 | Cast between a pointer to object type and a pointer to a different object type | 11.3 | Pre-2020.1 |
MISRA.CAST.VOID_PTR_TO_INT.2012 | Cast between a pointer to void and an arithmetic type | 11.6 | 2021.2 |
MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012 | Conversion performed from a pointer to void to a pointer to an object | 11.5 | Pre-2020.1 |
MISRA.CHAR.TRIGRAPH | Trigraph usage | 4.2 | Pre-2020.1 |
MISRA.COMMA | Comma operator is used | 12.3 | Pre-2020.1 |
MISRA.COMP.WRAPAROUND | Wrap-around in a condition | 12.4 | 2020.3 |
MISRA.CT.UNIQUE.ID.2012 | Identifier clashes with tag name | 5.7 | 2021.2 |
MISRA.DECL.ARRAY_SIZE | Declaration of array with unknown size | 8.11 | Pre-2020.1 |
MISRA.DECL.FUNC.INLINE.STATIC.2012 | Declaration of inline function without static storage class | 8.10 | Pre-2020.1 |
MISRA.DEFINE.FUNC | Function-like macro definition | Dir. 4.9 | Pre-2020.1 |
MISRA.DEFINE.NOT_DISTINCT.C99.2012 | Identifier name is too long | 5.4 | Pre-2020.1 |
MISRA.DEFINE.SHARP | # or ## operator in a macro definition | 20.10 | Pre-2020.1 |
MISRA.DEFINE.SHARP.ORDER.2012 | Unspecified order of evaluation of multiple '#' or '##' | 20.11 | 2020.4 |
MISRA.DEFINE.SHARP.REPLACE.2012 | A macro parameter used as an operand to the '#' or '##' operators, which is itself subject to further macro replacement, shall only be used as an operand to these operators | 20.12 | Pre-2020.1 |
MISRA.DEFINE.STDIO.WCHAR.2012 | Inappropriate macro expansion | 21.6 | Pre-2020.1 |
MISRA.DEFINE.WCSFTIME.2012 | No macro with 'wcsftime' name shall be expanded | 21.10 | Pre-2020.1 |
MISRA.DEFINE.WRONGNAME | Usage of a name from the standard library for naming a macro | 21.1 | Pre-2020.1 |
MISRA.DEFINE.WRONGNAME.C99.2012 | A macro shall not be defined with the same name as a keyword | 20.4 | Pre-2020.1 |
MISRA.DEFINE.WRONGNAME.UNDERSCORE | Usage of a reserved name for naming a macro | 21.1 | Pre-2020.1 |
MISRA.ELIF.COND.NOT_BOOL.2012 | #elif condition is not 0 or 1 | 20.8 | Pre-2020.1 |
MISRA.ELIF.OTHERFILE | #elif in an improper file | 20.14 | Pre-2020.1 |
MISRA.ELIF.UNDEF | Undefined macros in #elif directive | 20.9 | Pre-2020.1 |
MISRA.ELSE.OTHERFILE | #else in an improper file | 20.14 | Pre-2020.1 |
MISRA.ENDIF.OTHERFILE | #endif in an improper file | 20.14 | Pre-2020.1 |
MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012 | Implicit enumerator value is not unique | 8.12 | Pre-2020.1 |
MISRA.ETYPE.ASSIGN.2012 | Assignment to an object of a narrower essential type or a different essential type category | 10.3 | 2020.3 |
MISRA.ETYPE.CATEGORY.DIFFERENT.2012 | The operands of an operator in which the usual arithmetic conversions are performed do not have the same essential type category | 10.4 | 2021.2 |
MISRA.ETYPE.COMP.ASSIGN.2012 | The value of a composite expression is assigned to an object with a wider essential type | 10.6 | 2021.3 |
MISRA.ETYPE.COMP.CAST.EXPL.DIFFERENT.2012 | The value of a composite expression is cast to a different essential type category | 10.8 | Pre-2020.1 |
MISRA.ETYPE.COMP.CAST.EXPL.WIDER.2012 | The value of a composite expression is cast to a wider essential type | 10.8 | Pre-2020.1 |
MISRA.ETYPE.COMP.CAST.IMPL.WIDER.2012 | A composite expression used as an operand of an operator in which the usual arithmetic conversions are performed has its other operand having a wider essential type | 10.7 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.CAST.2012 | The value of an expression is cast to an inappropriate essential type | 10.5 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.CHAR.2012 | Inappropriate usage of Essentially Character type in an addition or subtraction operation | 10.2 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.OPERAND.BINOP.2012 | Operand(s) to a binary operator have inappropriate essential type | 10.1 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.OPERAND.INDEXPR.2012 | Index expression has inappropriate essential type | 10.1 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.OPERAND.TERNOP.2012 | First operand to a ternary operator has inappropriate essential type | 10.1 | Pre-2020.1 |
MISRA.ETYPE.INAPPR.OPERAND.UNOP.2012 | Operand to a unary operator has inappropriate essential type | 10.1 | Pre-2020.1 |
MISRA.EXPANSION.DIRECTIVE | Directive-like tokens within a macro argument | 20.6 | Pre-2020.1 |
MISRA.EXPR.PARENS.2012 | The precedence of operators within expressions should be made explicit. | 12.1 | Pre-2020.1 |
MISRA.EXPR.PARENS.SIZEOF.2012 | The operand of the sizeof operator should be parenthesized. | 12.1 | Pre-2020.1 |
MISRA.FILE_PTR.DEREF.2012 | A pointer to a FILE object shall not be dereferenced | 22.5 | 2022.1 |
MISRA.FILE_PTR.DEREF.CAST.2012 | Object is casted to a FILE pointer, and it shall not be dereferenced | 22.5 | Pre-2020.1 |
MISRA.FILE_PTR.DEREF.INDIRECT.2012 | A pointer to a FILE object shall not be indirectly dereferenced by a system function | 22.5 | Pre-2020.1 |
MISRA.FILE_PTR.DEREF.RETURN.2012 | A pointer to a FILE object (returned by function) shall not be dereferenced | 22.5 | Pre-2020.1 |
MISRA.FOR.COUNTER.FLT | For loop counter has a floating point type | 14.1 | Pre-2020.1 |
MISRA.FUNC.ARRAY.PARAM.STATIC.2012 | The declaration of an array parameter shall not contain the static keyword between the [] | 17.6 | Pre-2020.1 |
MISRA.FUNC.MODIFIEDPAR.2012 | A function parameter should not be modified | 17.8 | Pre-2020.1 |
MISRA.FUNC.NOPROT.DEF.2012 | Function has a definition but no prototype | 8.4 | Pre-2020.1 |
MISRA.FUNC.NO_PARAMS | Function without parameters is missing void parameter type | 8.2 | Pre-2020.1 |
MISRA.FUNC.PROT_FORM.KR.2012 | Function types shall be in prototype form | 8.2 | Pre-2020.1 |
MISRA.FUNC.RECUR | Recursive function | 17.2 | Pre-2020.1 |
MISRA.FUNC.STATIC.REDECL | Function or object redeclaration does not include 'static' modifier | 8.8 | Pre-2020.1 |
MISRA.FUNC.UNMATCHED.PARAMS | Number of formal and actual parameters passed to function do not match | 8.2 | Pre-2020.1 |
MISRA.FUNC.UNNAMED.PARAMS | Function declaration has unnamed parameters | 8.2 | 2022.4 |
MISRA.FUNC.UNUSEDPAR.2012 | Unused parameters in functions | 2.7 | Pre-2020.1 |
MISRA.FUNC.UNUSEDRET.2012 | The return value of a non-void function shall be used. | 17.7 | Pre-2020.1 |
MISRA.FUNC.VARARG | Function with variable number of arguments | 17.1 | Pre-2020.1 |
MISRA.GOTO | Goto statement is used | 15.1 | Pre-2020.1 |
MISRA.GOTO.AFTER_LABEL.2012 | Goto jumps to label declared before in same function. | 15.2 | Pre-2020.1 |
MISRA.GOTO.NESTED.2012 | Label referenced by goto is not in this or enclosing block. | 15.3 | Pre-2020.1 |
MISRA.IDENT.DISTINCT.C99.2012 | Identifiers declared in the same scope or name space are not distinct | 5.2 | Pre-2020.1 |
MISRA.IDENT.NONUNIQUE.EXTERNAL.2012 | Identifiers that define objects or functions with external linkage shall be unique. | 5.8 | Pre-2020.1 |
MISRA.IDENT.NONUNIQUE.INTERNAL.2012 | Identifiers that define objects or functions with internal linkage should be unique. | 5.9 | Pre-2020.1 |
MISRA.IF.COND.NOT_BOOL.2012 | #if condition is not 0 or 1 | 20.8 | Pre-2020.1 |
MISRA.IF.NO_COMPOUND | The body of if/else statement is not a compound statement | 15.6 | Pre-2020.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 | 15.7 | Pre-2020.1 |
MISRA.IF.UNDEF | Undefined macros in #if directive | 20.9 | Pre-2020.1 |
MISRA.INCGUARD | Include guard is not provided | Dir. 4.10 | Pre-2020.1 |
MISRA.INCL.BAD | Non-standard include directive | 20.3 | 2020.4 |
MISRA.INCL.INSIDE | Include directive preceded by a preprocessor output token | 20.1 | Pre-2020.1 |
MISRA.INCL.SIGNAL.2012 | The standard header file signal.h shall not be used | 21.5 | Pre-2020.1 |
MISRA.INCL.STDIO.2012 | The standard header files stdio.h shall not be used | 21.6 | Pre-2020.1 |
MISRA.INCL.SYMS | Non-standard characters in header file names | 20.2 | Pre-2020.1 |
MISRA.INCL.TGMATH.2012 | The standard header file tgmath.h shall not be used | 21.11 | Pre-2020.1 |
MISRA.INCL.TIME.2012 | The standard header file time.h shall not be used | 21.10 | Pre-2020.1 |
MISRA.INCR_DECR.SIDEEFF.2012 | A full expression containing an increment (++) or decrement (--) operator should have no other potential side effects other than that caused by the increment or decrement operator | 13.3 | Pre-2020.1 |
MISRA.INIT.BRACES.2012 | The initializer for an aggregate or union is not enclosed in braces | 9.2 | Pre-2020.1 |
MISRA.INIT.MULTIPLE.2012 | An element of an object is initialized more than once | 9.4 | Pre-2020.1 |
MISRA.INIT.PARTIAL.2012 | Array is partially initialized | 9.3 | Pre-2020.1 |
MISRA.INIT.SIZE.IMPLICIT.2012 | A designated initializer is used to initialize an array object when the size of the array is not specified explicitly | 9.5 | Pre-2020.1 |
MISRA.LANG.EXTENSIONS | Language extensions should not be used | 1.2 | 2022.4 |
MISRA.LITERAL.NULL.PTR.CONST.2012 | The macro NULL is the only permitted form of integer null pointer constant | 11.9 | 2020.2 |
MISRA.LITERAL.UNSIGNED.SUFFIX | Unsigned integer literal without 'U' suffix | 7.2 | Pre-2020.1 |
MISRA.LOGIC.SIDEEFF | Right operand in a logical 'and' or 'or' expression contains side effects | 13.5 | Pre-2020.1 |
MISRA.MEMB.FLEX_ARRAY.2012 | Flexible array member shall not be declared | 18.7 | Pre-2020.1 |
MISRA.PPARAM.NEEDS.CONST | Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const | 8.13 | Pre-2020.1 |
MISRA.PTR.ARITH.2012 | Pointer is used in arithmetic expression | 18.4 | Pre-2020.1 |
MISRA.PTR.ARITH.NOT_SAME.2012 | A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand | 18.1 | 2020.2 |
MISRA.PTR.CMP.2008 | Pointer comparison using comparison operators shall only be applied if pointing to same array and within the range | 18.3 | 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 | 18.3 | 2022.1 |
MISRA.PTR.SUB | Pointer subtraction shall only be applied if pointing to same array | 18.2 | 2022.4 |
MISRA.PTR.SUB.OBJECT | Pointer subtraction shall only be applied if pointing to same object | 18.2 | 2022.4 |
MISRA.PTR.TO_PTR_TO_PTR | Pointer declaration has more than two levels of indirection | 18.5 | Pre-2020.1 |
MISRA.RESOURCES.FILE.OPEN_READ_WRITE.2012 | Multiple streams opened for same file | 22.3 | 2023.1 |
MISRA.RESOURCES.FILE.READ_ONLY_WRITE.2012 | There shall be no attempt to write to a stream which has been opened as read-only | 22.4 | Pre-2020.1 |
MISRA.RESOURCES.FILE.USE_AFTER_CLOSE.2012 | The value of a pointer to a FILE shall not be used after the associated stream has been closed | 22.6 | Pre-2020.1 |
MISRA.RETURN.NOT_LAST | Return is not the last statement in a function | 15.5 | Pre-2020.1 |
MISRA.SHIFT.RANGE.2012 | Right operand of shift operation is out of range - greater or equal to the essential type size of left operand, or is negative | 12.2 | Pre-2020.1 |
MISRA.SIZEOF.SIDE_EFFECT | Operand of sizeof has side effects | 13.6 | Pre-2020.1 |
MISRA.STDLIB.ABORT | Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h | 21.8 | Pre-2020.1 |
MISRA.STDLIB.ATOI | Use of 'atof', 'atoi' or 'atol' from library stdlib.h | 21.7 | Pre-2020.1 |
MISRA.STDLIB.BSEARCH.2012 | Use of 'bsearch' or 'qsort' from library stdlib.h | 21.9 | Pre-2020.1 |
MISRA.STDLIB.FENV.2012 | Floating-point exception feature from fenv.h is used | 21.12 | Pre-2020.1 |
MISRA.STDLIB.FENV.MACRO.2012 | Floating-point exception feature from fenv.h is used | 21.12 | Pre-2020.1 |
MISRA.STDLIB.LONGJMP | Use of setjmp macro or longjmp function | 21.4 | Pre-2020.1 |
MISRA.STDLIB.MEMORY | Use of dynamic heap memory allocation | 21.3 | Pre-2020.1 |
MISRA.STDLIB.SIGNAL | Use of the signal handling facilities of signal.h | 21.5 | Pre-2020.1 |
MISRA.STDLIB.STDIO | Use of input/output library stdio.h in production code | 21.6 | Pre-2020.1 |
MISRA.STDLIB.STDIO.WCHAR.2012 | Wide-character equivalent identifiers from stdio.h shall not be used | 21.6 | Pre-2020.1 |
MISRA.STDLIB.TIME | Use of the time handling functions of library time.h | 21.10 | Pre-2020.1 |
MISRA.STDLIB.WCSFTIME.2012 | The identifier 'wcsftime' shall not be used | 21.10 | Pre-2020.1 |
MISRA.STDLIB.WRONGNAME | Reused name of standard library macro, object or function | 21.2 | Pre-2020.1 |
MISRA.STDLIB.WRONGNAME.UNDERSCORE | Usage of a reserved name for naming a language entity | 21.2 | Pre-2020.1 |
MISRA.STMT.COND.NOT_BOOLEAN.2012 | The controlling expression of an if statement or loop statement is not 'Essentially Boolean' type | 14.4 | Pre-2020.1 |
MISRA.STMT.NO_COMPOUND | The body of switch, while, do/while or for statement is not a compound statement | 15.6 | Pre-2020.1 |
MISRA.STRING_LITERAL.NON_CONST.2012 | A string literal shall not be assigned to an object unless the object's type is pointer to const-qualified char | 7.4 | Pre-2020.1 |
MISRA.SWITCH.COND.BOOL.2012 | A switch-expression shall not have essentially Boolean type. | 16.7 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.2012 | All switch statements shall be well-formed. | 16.1 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.BREAK.2012 | An unconditional break statement shall terminate every switch-clause. | 16.3 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.DEFAULT.2012 | Every switch statement shall have a default label. | 16.4 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.DEFAULT.FIRST_OR_LAST.2012 | A default label shall appear as either the first or the last switch label of a switch statement. | 16.5 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.NESTED_LABEL.2012 | A switch label shall only be used when the most closely-enclosing compound statement is the body of the switch statement. | 16.2 | Pre-2020.1 |
MISRA.SWITCH.WELL_FORMED.TWO_CLAUSES.2012 | Every switch statement shall have at least two switch-clauses. | 16.6 | Pre-2020.1 |
MISRA.TOKEN.BADCOM | Inappropriate character sequence in a comment | 3.1 | Pre-2020.1 |
MISRA.TOKEN.CPCOM.MULTILINE.2012 | Line-splicing used in a // comment | 3.2 | Pre-2020.1 |
MISRA.TOKEN.L.SUFFIX.FLOAT | Usage of lowercase character "l" suffix in floating constant | 7.3 | Pre-2020.1 |
MISRA.TOKEN.L.SUFFIX.INT | Usage of lowercase character "l" suffix in integer constant | 7.3 | Pre-2020.1 |
MISRA.TOKEN.OCTAL.INT | Usage of octal integer constants | 7.1 | 2020.4 |
MISRA.TOKEN.UNTERMINATED.ESCAPE.2012 | Unterminated escape sequence in a string literal | 4.1 | Pre-2020.1 |
MISRA.TYPE.RESTRICT.QUAL.2012 | The restrict type qualifier shall not be used | 8.14 | Pre-2020.1 |
MISRA.TYPEDEF.NOT_UNIQUE.2012 | Typedef name is used for another entity | 5.6 | 2023.2 |
MISRA.UNDEF | Undef usage | 20.5 | Pre-2020.1 |
MISRA.UNDEF.WRONGNAME | Undefinition of a name from the standard library | 21.1 | Pre-2020.1 |
MISRA.UNDEF.WRONGNAME.UNDERSCORE | Undefinition of a reserved name | 21.1 | Pre-2020.1 |
MISRA.UNION | Union is used | 19.2 | Pre-2020.1 |
MISRA.USE.UNKNOWNDIR | Unknown preprocessor directive is used | 20.13 | Pre-2020.1 |
MISRA.VAR.HIDDEN | Identifier declared in an inner scope hides identifier in outer scope | 5.3 | 2020.2 |
MLK.MIGHT | Memory Leak - possible | 22.1 | Pre-2020.1 |
MLK.MUST | Memory Leak | 22.1 | 2020.1 |
MLK.RET.MIGHT | Memory Leak - possible | 22.1 | Pre-2020.1 |
MLK.RET.MUST | Memory Leak | 22.1 | Pre-2020.1 |
NUM.OVERFLOW.DF | Possible numeric overflow or wraparound | Dir. 4.1 | 2022.3 |
PORTING.VAR.EFFECTS | Variable used twice in one expression where one usage is subject to side-effects | 13.2 | Pre-2020.1 |
RH.LEAK | Resource leak | 22.1 | 2020.1 |
SV.RVT.RETVAL_NOTTESTED | Ignored Return Value | Dir. 4.7 | 2021.2 |
UNINIT.CTOR.MIGHT | Uninitialized Variable in Constructor - possible | Dir. 4.1 | Pre-2020.1 |
UNINIT.CTOR.MUST | Uninitialized Variable in Constructor | Dir. 4.1 | 2020.1 |
UNINIT.HEAP.MIGHT | Uninitialized Heap Use - possible | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.HEAP.MUST | Uninitialized Heap Use | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.ARRAY.MIGHT | Uninitialized Array - possible | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.ARRAY.MUST | Uninitialized Array | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.ARRAY.PARTIAL.MUST | Partially Uninitialized Array | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.MIGHT | Uninitialized Variable - possible | 9.1 Dir. 4.1 | Pre-2020.1 |
UNINIT.STACK.MUST | Uninitialized Variable | 9.1 Dir. 4.1 | Pre-2020.1 |
UNREACH.ENUM | Code is unreachable due to the possible value(s) of an enum | 2.1 | 2021.3 |
UNREACH.GEN | Unreachable code | 2.1 | Pre-2020.1 |
UNREACH.RETURN | Unreachable Void Return | 2.1 | Pre-2020.1 |
VA_UNUSED.GEN | Value is Never Used after Assignment | 2.2 | Pre-2020.1 |
VA_UNUSED.INIT | Value is Never Used after Initialization | 2.2 | Pre-2020.1 |