MISRA C:2012 with Amendment 2 C90/C99 checker reference

These Klocwork and Klocwork community checkers detect violations of the MISRA C:2012 standard with Amendment 2.

Notes

MISRA C:2012 Amendment 2 C90

Checker name Description Rule Version
ABV.ANY_SIZE_ARRAY Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
ABV.GENERAL Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 18.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
ABV.GENERAL.MULTIDIMENSION Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 18.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) 2022.3
ABV.ITERATOR Buffer Overflow - Array Index may be out of Bounds Dir 4.1 (req.) Pre-2020.1
ABV.MEMBER Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
ABV.NON_ARRAY Non-array object is used as an array Dir 4.1 (req.) 2024.4
ABV.STACK Buffer Overflow - Local Array Index Out of Bounds Dir 4.1 (req.) Rule 18.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
ABV.TAINTED Buffer Overflow from Unvalidated Input Dir 4.14 (req.) Pre-2020.1
ABV.UNICODE.BOUND_MAP Buffer overflow in mapping character function Dir 4.1 (req.) Pre-2020.1
ABV.UNICODE.FAILED_MAP Mapping function failed Dir 4.1 (req.) Pre-2020.1
ABV.UNICODE.NNTS_MAP Buffer overflow in mapping character function Dir 4.1 (req.) Pre-2020.1
ABV.UNICODE.SELF_MAP Mapping function failed Dir 4.1 (req.) Pre-2020.1
ABV.UNKNOWN_SIZE Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
CXX.ERRNO.INCORRECTLY_CHECKED Errno condition check not required after calling library function Rule 22.10 (req.) 2021.2
CXX.ERRNO.NOT_CHECKED Errno condition check is missing after calling library function Rule 22.9 (req.) 2021.2
CXX.ERRNO.NOT_SET Errno is not reset to zero before calling library function Rule 22.8 (req.) 2021.2
CXX.ID_VIS.GLOBAL_VARIABLE.EXTERN Visibility of extern global variable is too wide Rule 8.9 (adv.) Pre-2020.1
CXX.ID_VIS.GLOBAL_VARIABLE.STATIC Visibility of static global variable is too wide Rule 8.9 (adv.) Pre-2020.1
DBZ.CONST Division by a zero constant occurs Dir 4.1 (req.) 2020.2
DBZ.CONST.CALL The value '0' is passed to function that can use this value as divisor Dir 4.1 (req.) Pre-2020.1
DBZ.GENERAL Division by zero might occur Dir 4.1 (req.) 2023.3
DBZ.ITERATOR Division by zero might occur in a loop iterator Dir 4.1 (req.) Pre-2020.1
DBZ.ITERATOR.CALL Division by zero might occur in a function call Dir 4.1 (req.) Pre-2020.1
EFFECT Statement has no effect Rule 2.2 (req.) Pre-2020.1
FMM.MIGHT Freeing Mismatched Memory - possible Rule 22.2 (mand.) Pre-2020.1
FMM.MUST Freeing Mismatched Memory Rule 22.2 (mand.) Pre-2020.1
FNH.MIGHT Freeing Non-Heap Memory - possible Rule 22.2 (mand.) Pre-2020.1
FNH.MUST Freeing Non-Heap Memory Rule 22.2 (mand.) Pre-2020.1
FUM.GEN.MIGHT Freeing Unallocated Memory - possible Rule 22.2 (mand.) Pre-2020.1
FUM.GEN.MUST Freeing Unallocated Memory Rule 22.2 (mand.) Pre-2020.1
FUNCRET.GEN Non-void function does not return value Rule 17.4 (mand.) Pre-2020.1
FUNCRET.IMPLICIT Non-void function implicitly returning int does not return value Rule 17.4 (mand.) Pre-2020.1
INVARIANT_CONDITION.GEN Invariant expression in a condition Rule 14.3 (req.) 2020.1
INVARIANT_CONDITION.UNREACH Invariant expression in a condition Rule 14.3 (req.) Pre-2020.1
LA_UNUSED Label unused Rule 2.6 (adv.) Pre-2020.1
LOCRET.ARG Function returns address of local variable Rule 18.6 (req.) Pre-2020.1
LOCRET.GLOB Function returns address of local variable Rule 18.6 (req.) Pre-2020.1
LOCRET.RET Function returns address of local variable Rule 18.6 (req.) Pre-2020.1
LV_UNUSED.GEN Local variable unused Rule 2.2 (req.) 2020.3
MISRA.ARRAY.ARG_SIZE Array argument should be appropriate size Rule 17.5 (adv.) 2020.1
MISRA.ARRAY.ARG_SIZE.MIGHT Array argument should be appropriate size Rule 17.5 (adv.) 2020.1
MISRA.ASM.ENCAPS Assembly language is not isolated. Dir 4.2 (adv.) Dir 4.3 (req.) Pre-2020.1
MISRA.ASSIGN.OVERLAP Object is assigned to an overlapping object Rule 19.1 (mand.) 2023.2
MISRA.ASSIGN.SUBEXPR.2012 The result of an assignment operator is used Rule 13.4 (adv.) Pre-2020.1
MISRA.BITFIELD.SIGNED Length of a named signed bit-field is less than 2 Rule 6.2 (req.) Pre-2020.1
MISRA.BITFIELD.TYPE.2012 Type of bit-field is neither bool, nor signed/unsigned integer Rule 6.1 (req.) 2021.2
MISRA.BREAK_OR_GOTO.MULTIPLE.2012 Iteration statement has more than one break or goto for loop termination. Rule 15.4 (adv.) Pre-2020.1
MISRA.BUILTIN_NUMERIC Builtin numeric type is used Dir 4.6 (adv.) Pre-2020.1
MISRA.CAST.CONST Cast operation removes const or volatile modifier from a pointer or reference Rule 11.8 (req.) Pre-2020.1
MISRA.CAST.FUNC_PTR.2012 Conversion performed between a pointer to a function and another incompatible type Rule 11.1 (req.) Pre-2020.1
MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012 Conversion performed between a pointer to an incomplete type and a different type Rule 11.2 (req.) Pre-2020.1
MISRA.CAST.OBJ_PTR_TO_INT.2012 Conversion performed between a pointer to an object and an integer type Rule 11.4 (adv.) Pre-2020.1
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012 A cast between a pointer to object and a non-integer arithmetic type Rule 11.7 (req.) 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 Rule 11.3 (req.) Pre-2020.1
MISRA.CAST.VOID_PTR_TO_INT.2012 Cast between a pointer to void and an arithmetic type Rule 11.6 (req.) 2021.2
MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012 Conversion performed from a pointer to void to a pointer to an object Rule 11.5 (adv.) Pre-2020.1
MISRA.CHAR.TRIGRAPH Trigraph usage Rule 4.2 (adv.) Pre-2020.1
MISRA.COMMA Comma operator is used Rule 12.3 (adv.) Pre-2020.1
MISRA.COMP.WRAPAROUND Wrap-around in a condition Rule 12.4 (adv.) 2020.3
MISRA.CT.UNIQUE.ID.2012 Identifier clashes with tag name Rule 5.7 (req.) 2021.2
MISRA.DECL.ARRAY_SIZE Declaration of array with unknown size Rule 8.11 (adv.) Pre-2020.1
MISRA.DECL.EXTERNAL.MULTIPLE Declaration of object or function with external linkage shall exist only in one location. Rule 8.5 (req.) 2024.3
MISRA.DECL.FUNC.NAME.QUAL.2012 All declarations of an object or function shall use the same name and type qualifiers Rule 8.3 (req.) 2024.4
MISRA.DECL.NO_TYPE Declaration without a type Rule 8.1 (req.) Pre-2020.1
MISRA.DEFINE.EXTERNAL.MULTIPLE Definition of object or function with external linkage shall exist only in one location. Rule 8.6 (req.) 2024.3
MISRA.DEFINE.FUNC Function-like macro definition Dir 4.9 (adv.) Pre-2020.1
MISRA.DEFINE.NOT_DISTINCT.C90.2012 Identifier name is too long Rule 5.4 (req.) Pre-2020.1
MISRA.DEFINE.SHARP # or ## operator in a macro definition Rule 20.10 (adv.) Pre-2020.1
MISRA.DEFINE.SHARP.ORDER.2012 Unspecified order of evaluation of multiple '#' or '##' Rule 20.11 (req.) 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 Rule 20.12 (req.) Pre-2020.1
MISRA.DEFINE.STDIO.WCHAR.2012 Inappropriate macro expansion Rule 21.6 (req.) Pre-2020.1
MISRA.DEFINE.WCSFTIME.2012 No macro with 'wcsftime' name shall be expanded Rule 21.10 (req.) Pre-2020.1
MISRA.DEFINE.WRONGNAME Usage of a name from the standard library for naming a macro Rule 21.1 (req.) Pre-2020.1
MISRA.DEFINE.WRONGNAME.C90.2012 A macro shall not be defined with the same name as a keyword Rule 20.4 (req.) Pre-2020.1
MISRA.DEFINE.WRONGNAME.UNDERSCORE Usage of a reserved name for naming a macro Rule 21.1 (req.) Pre-2020.1
MISRA.ELIF.COND.NOT_BOOL.2012 #elif condition is not 0 or 1 Rule 20.8 (req.) Pre-2020.1
MISRA.ELIF.DEFINED Incorrect 'defined' usage in #elif directive Rule 1.3 (req.) Pre-2020.1
MISRA.ELIF.OTHERFILE #elif in an improper file Rule 20.14 (req.) Pre-2020.1
MISRA.ELIF.UNDEF Undefined macros in #elif directive Rule 20.9 (req.) Pre-2020.1
MISRA.ELSE.OTHERFILE #else in an improper file Rule 20.14 (req.) Pre-2020.1
MISRA.ENDIF.OTHERFILE #endif in an improper file Rule 20.14 (req.) Pre-2020.1
MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012 Implicit enumerator value is not unique Rule 8.12 (req.) Pre-2020.1
MISRA.ETYPE.ASSIGN.2012 Assignment to an object of a narrower essential type or a different essential type category Rule 10.3 (req.) 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 Rule 10.4 (req.) 2021.2
MISRA.ETYPE.COMP.ASSIGN.2012 The value of a composite expression is assigned to an object with a wider essential type Rule 10.6 (req.) 2021.3
MISRA.ETYPE.COMP.CAST.EXPL.DIFFERENT.2012 The value of a composite expression is cast to a different essential type category Rule 10.8 (req.) Pre-2020.1
MISRA.ETYPE.COMP.CAST.EXPL.WIDER.2012 The value of a composite expression is cast to a wider essential type Rule 10.8 (req.) 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 Rule 10.7 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.CAST.2012 The value of an expression is cast to an inappropriate essential type Rule 10.5 (adv.) 2024.2
MISRA.ETYPE.INAPPR.CHAR.2012 Inappropriate usage of Essentially Character type in an addition or subtraction operation Rule 10.2 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.OPERAND.BINOP.2012 Operand(s) to a binary operator have inappropriate essential type Rule 10.1 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.OPERAND.INDEXPR.2012 Index expression has inappropriate essential type Rule 10.1 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.OPERAND.TERNOP.2012 First operand to a ternary operator has inappropriate essential type Rule 10.1 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.OPERAND.UNOP.2012 Operand to a unary operator has inappropriate essential type Rule 10.1 (req.) Pre-2020.1
MISRA.EXPANSION.DIRECTIVE Directive-like tokens within a macro argument Rule 20.6 (req.) Pre-2020.1
MISRA.EXPANSION.NARGS Missing macro argument Rule 1.3 (req.) Pre-2020.1
MISRA.EXPANSION.UNSAFE Unsafe macro usage Rule 1.3 (req.) Pre-2020.1
MISRA.EXPR.PARENS.2012 The precedence of operators within expressions should be made explicit. Rule 12.1 (adv.) Pre-2020.1
MISRA.EXPR.PARENS.SIZEOF.2012 The operand of the sizeof operator should be parenthesized. Rule 12.1 (adv.) Pre-2020.1
MISRA.EXPR.SIZEOF.ARRAY_PARAM.2012_AMD1 The sizeof operator has an operand which is a function parameter declared as "array of type" Rule 12.5 (mand.) Pre-2020.1
MISRA.EXT.IDENT.DISTINCT.2012.C90 External identifiers must be distinct within the limits imposed by the implementation. Rule 5.1 (req.) 2024.3
MISRA.EXT.LINKAGE.REDUNDANT.2012 Functions and objects should not be defined with external linkage if they are referenced in only one translation unit Rule 8.7 (adv.) 2024.3
MISRA.FILE_PTR.DEREF.2012 A pointer to a FILE object shall not be dereferenced Rule 22.5 (mand.) 2022.1
MISRA.FILE_PTR.DEREF.CAST.2012 Object is casted to a FILE pointer, and it shall not be dereferenced Rule 22.5 (mand.) Pre-2020.1
MISRA.FILE_PTR.DEREF.INDIRECT.2012 A pointer to a FILE object shall not be indirectly dereferenced by a system function Rule 22.5 (mand.) Pre-2020.1
MISRA.FILE_PTR.DEREF.RETURN.2012 A pointer to a FILE object (returned by function) shall not be dereferenced Rule 22.5 (mand.) Pre-2020.1
MISRA.FOR.BODY.LOOP_CTR_MODIFIED The loop counter should not be modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.BODY.LOOP_CTR_MODIFIED.MIGHT The loop counter should not be modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.COND.COUNTER_UNUSED Loop second clause shall use the loop counter Rule 14.2 (req.) 2020.1
MISRA.FOR.COND.INVALID_USE Loop second clause shall not used any object that is modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.COND.INVALID_USE.MIGHT Loop second clause shall not used any object that is modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.COND.PURE Loop second clause shall be a single expression with no persistent side effects Rule 14.2 (req.) 2022.4
MISRA.FOR.COND.SINGLE_PURE Loop second clause shall be a single expression with no persistent side effects Rule 14.2 (req.) 2020.1
MISRA.FOR.COUNTER.FLT For loop counter has a floating point type Rule 14.1 (req.) Pre-2020.1
MISRA.FOR.ITER_EXPR.INVALID_USE Loop third clause shall not used any object that is modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.ITER_EXPR.INVALID_USE.MIGHT Loop third clause shall not used any object that is modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.ITER_EXPR.MULTI_SIDE_EFFECTS Loop third clause shall only contain persistent side effect to the loop counter Rule 14.2 (req.) 2020.1
MISRA.FOR.ITER_EXPR.ONE_EXPR Loop third clause shall be a single expression Rule 14.2 (req.) 2020.1
MISRA.FOR.MULTI_INIT Loop first clause shall be empty or assign a value to the loop counter Rule 14.2 (req.) 2020.1
MISRA.FOR.UNINIT_COUNTER Loop first clause shall be empty or assign a value to the loop counter Rule 14.2 (req.) 2020.1
MISRA.FUNC.MODIFIEDPAR.2012 A function parameter should not be modified Rule 17.8 (adv.) Pre-2020.1
MISRA.FUNC.NODECL.CALL.2012 Function was declared implicitly Rule 17.3 (mand.) Pre-2020.1
MISRA.FUNC.NOPROT.DEF.2012 Function has a definition but no prototype Rule 8.4 (req.) Pre-2020.1
MISRA.FUNC.NO_PARAMS Function without parameters is missing void parameter type Rule 8.2 (req.) Pre-2020.1
MISRA.FUNC.PARAMS.IDENT Identifiers used in declaration and definition of function are not identical Rule 8.3 (req.) Pre-2020.1
MISRA.FUNC.PROT_FORM.KR.2012 Function types shall be in prototype form Rule 8.2 (req.) Pre-2020.1
MISRA.FUNC.RECUR Recursive function Rule 17.2 (req.) Pre-2020.1
MISRA.FUNC.STATIC.REDECL Function or object redeclaration does not include 'static' modifier Rule 8.8 (req.) Pre-2020.1
MISRA.FUNC.UNMATCHED.PARAMS Number of formal and actual parameters passed to function do not match Rule 8.2 (req.) Pre-2020.1
MISRA.FUNC.UNNAMED.PARAMS Function declaration has unnamed parameters Rule 8.2 (req.) 2022.4
MISRA.FUNC.UNUSEDPAR.2012 Unused parameters in functions Rule 2.7 (adv.) Pre-2020.1
MISRA.FUNC.UNUSEDRET.2012 The return value of a non-void function shall be used. Rule 17.7 (req.) Pre-2020.1
MISRA.FUNC.VARARG Function with variable number of arguments Rule 17.1 (req.) Pre-2020.1
MISRA.GOTO Goto statement is used Rule 15.1 (adv.) Pre-2020.1
MISRA.GOTO.AFTER_LABEL.2012 Goto jumps to label declared before in same function. Rule 15.2 (req.) Pre-2020.1
MISRA.GOTO.NESTED.2012 Label referenced by goto is not in this or enclosing block. Rule 15.3 (req.) Pre-2020.1
MISRA.IDENT.DISTINCT.C90.2012 Identifiers declared in the same scope or name space are not distinct Rule 5.2 (req.) Pre-2020.1
MISRA.IDENT.NONUNIQUE.EXTERNAL.2012 Identifiers that define objects or functions with external linkage shall be unique. Rule 5.8 (req.) Pre-2020.1
MISRA.IDENT.NONUNIQUE.INTERNAL.2012 Identifiers that define objects or functions with internal linkage should be unique. Rule 5.9 (adv.) Pre-2020.1
MISRA.IF.COND.NOT_BOOL.2012 #if condition is not 0 or 1 Rule 20.8 (req.) Pre-2020.1
MISRA.IF.DEFINED Incorrect 'defined' usage in #if directive Rule 1.3 (req.) Pre-2020.1
MISRA.IF.NO_COMPOUND The body of if/else statement is not a compound statement Rule 15.6 (req.) 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 Rule 15.7 (req.) Pre-2020.1
MISRA.IF.UNDEF Undefined macros in #if directive Rule 20.9 (req.) Pre-2020.1
MISRA.INCGUARD Include guard is not provided Dir 4.10 (req.) Pre-2020.1
MISRA.INCL.BAD Non-standard include directive Rule 20.3 (req.) 2020.4
MISRA.INCL.INSIDE Include directive preceded by a preprocessor output token Rule 20.1 (adv.) Pre-2020.1
MISRA.INCL.SIGNAL.2012 The standard header file signal.h shall not be used Rule 21.5 (req.) Pre-2020.1
MISRA.INCL.STDIO.2012 The standard header files stdio.h shall not be used Rule 21.6 (req.) Pre-2020.1
MISRA.INCL.SYMS Non-standard characters in header file names Rule 20.2 (req.) Pre-2020.1
MISRA.INCL.TIME.2012 The standard header file time.h shall not be used Rule 21.10 (req.) Pre-2020.1
MISRA.INCOMPLETE.STRUCT Incomplete struct type is used Rule 1.3 (req.) Pre-2020.1
MISRA.INCOMPLETE.STRUCT.UNNAMED Incomplete unnamed struct type is used Rule 1.3 (req.) Pre-2020.1
MISRA.INCOMPLETE.UNION Incomplete union type is used Rule 1.3 (req.) Pre-2020.1
MISRA.INCOMPLETE.UNION.UNNAMED Incomplete unnamed union type is used Rule 1.3 (req.) 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 Rule 13.3 (adv.) Pre-2020.1
MISRA.INIT.BRACES.2012 The initializer for an aggregate or union is not enclosed in braces Rule 9.2 (req.) Pre-2020.1
MISRA.INIT.PARTIAL.2012 Array is partially initialized Rule 9.3 (req.) Pre-2020.1
MISRA.LANG.EXTENSIONS Language extensions should not be used Rule 1.2 (adv.) 2022.4
MISRA.LITERAL.NULL.PTR.CONST.2012 The macro NULL is the only permitted form of integer null pointer constant Rule 11.9 (req.) 2020.2
MISRA.LITERAL.UNSIGNED.SUFFIX Unsigned integer literal without 'U' suffix Rule 7.2 (req.) Pre-2020.1
MISRA.LOGIC.SIDEEFF Right operand in a logical 'and' or 'or' expression contains side effects Rule 13.5 (req.) Pre-2020.1
MISRA.MACRO.IDENT.DISTINCT.C90.2012 Identifiers shall be distinct from macro names within the first 31 characters Rule 5.5 (req.) 2024.4
MISRA.MACRO_ARG.EXPRESSION.2012 Expressions resulting from the expansion of macro parameters shall be enclosed in parentheses Rule 20.7 (req.) 2024.3
MISRA.MEMCMP.NTS.2012_AMD1 The memcmp function shall only be used to compare non null terminated strings Rule 21.14 (req.) 2023.2
MISRA.MEMCMP.NTS.GLOBAL.2012_AMD1 The memcmp function shall only be used to compare non null terminated strings Rule 21.14 (req.) 2023.2
MISRA.OBJ.FUNC.PARAMS.IDENT All declarations of an object or function shall use the same names and type qualifiers Rule 8.3 (req.) 2025.1
MISRA.PPARAM.NEEDS.CONST Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const Rule 8.13 (adv.) Pre-2020.1
MISRA.PTR.ARITH.2012 Pointer is used in arithmetic expression Rule 18.4 (adv.) 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 Rule 18.1 (req.) 2020.2
MISRA.PTR.CMP.2008 Pointer comparison using comparison operators shall only be applied if pointing to same array and within the range Rule 18.3 (req.) 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 Rule 18.3 (req.) 2022.1
MISRA.PTR.SUB Pointer subtraction shall only be applied if pointing to same array Rule 18.2 (req.) 2022.4
MISRA.PTR.SUB.OBJECT Pointer subtraction shall only be applied if pointing to same object Rule 18.2 (req.) 2022.4
MISRA.PTR.TO_PTR_TO_PTR Pointer declaration has more than two levels of indirection Rule 18.5 (adv.) Pre-2020.1
MISRA.RESOURCES.FILE.OPEN_READ_WRITE.2012 Multiple streams opened for same file Rule 22.3 (req.) 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 Rule 22.4 (mand.) 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 Rule 22.6 (mand.) Pre-2020.1
MISRA.RETURN.NOT_LAST Return is not the last statement in a function Rule 15.5 (adv.) 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 Rule 12.2 (req.) Pre-2020.1
MISRA.SIZEOF.SIDE_EFFECT Operand of sizeof has side effects Rule 13.6 (mand.) Pre-2020.1
MISRA.STDLIB.ABORT.2012_AMD2 Use of 'abort', 'exit', 'quick_exit' or '_Exit' from library stdlib.h Rule 21.8 (req.) 2023.4
MISRA.STDLIB.ATOI Use of 'atof', 'atoi' or 'atol' from library stdlib.h Rule 21.7 (req.) Pre-2020.1
MISRA.STDLIB.BSEARCH.2012 Use of 'bsearch' or 'qsort' from library stdlib.h Rule 21.9 (req.) Pre-2020.1
MISRA.STDLIB.CTYPE.ARG_VAL Any value passed to a function in <ctype.h> shall be representable as an unsigned char or be the value of EOF Rule 21.13 (mand.) 2020.1
MISRA.STDLIB.CTYPE.RANGE.2012_AMD1 Any value passed to a function in ctype.h shall be representable as an unsigned char or be the value EOF Rule 21.13 (mand.) Pre-2020.1
MISRA.STDLIB.EOF.BAD_CMP.2012_AMD1 The macro EOF shall only be compared with the unmodified return value from any Standard Library function capable of returning EOF Rule 22.7 (req.) 2023.2
MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1 The pointer returned by the Standard Library functions asctime and similar shall not be used following a subsequent call to the same function Rule 21.20 (mand.) Pre-2020.1
MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1 The pointers returned by the Standard Library functions localeconv, getenv, setlocale or, strerror shall only be used as if they have pointer to const-qualified type Rule 21.19 (mand.) Pre-2020.1
MISRA.STDLIB.INCOMPAT_ARGS.2012_AMD1 The pointer arguments to memcpy, memmove, or memcmp are not pointers to compatible types Rule 21.15 (req.) Pre-2020.1
MISRA.STDLIB.LONGJMP Use of setjmp macro or longjmp function Rule 21.4 (req.) Pre-2020.1
MISRA.STDLIB.MEMCMP.PTR_ARG_TYPES The pointer arguments to the Standard Library function memcmp shall point to either a pointer type, an essentially signed type, an essentially unsigned type, an essentially Boolean type or an essentially enum type Rule 21.16 (req.) 2020.1
MISRA.STDLIB.MEMORY Use of dynamic heap memory allocation Rule 21.3 (req.) Pre-2020.1
MISRA.STDLIB.RET.NONCONST_PTR.LOCAL The pointers returned by the Standard Library functions localeconv, getenv, setlocale or, strerror shall only be used as if they have the pointer to const-qualified type Rule 21.19 (mand.) 2020.1
MISRA.STDLIB.SIGNAL Use of the signal handling facilities of signal.h Rule 21.5 (req.) Pre-2020.1
MISRA.STDLIB.STDIO Use of input/output library stdio.h in production code Rule 21.6 (req.) Pre-2020.1
MISRA.STDLIB.STDIO.WCHAR.2012 Wide-character equivalent identifiers from stdio.h shall not be used Rule 21.6 (req.) Pre-2020.1
MISRA.STDLIB.SYSTEM.2012_AMD2 Use of 'system' from library stdlib.h Rule 21.21 (req.) Pre-2020.1
MISRA.STDLIB.TIME Use of the time handling functions of library time.h Rule 21.10 (req.) Pre-2020.1
MISRA.STDLIB.WCSFTIME.2012 The identifier 'wcsftime' shall not be used Rule 21.10 (req.) Pre-2020.1
MISRA.STDLIB.WRONGNAME Reused name of standard library macro, object or function Rule 21.2 (req.) Pre-2020.1
MISRA.STDLIB.WRONGNAME.UNDERSCORE Usage of a reserved name for naming a language entity Rule 21.2 (req.) Pre-2020.1
MISRA.STMT.COND.NOT_BOOLEAN.2012 The controlling expression of an if statement or loop statement is not 'Essentially Boolean' type Rule 14.4 (req.) Pre-2020.1
MISRA.STMT.NO_COMPOUND The body of switch, while, do/while or for statement is not a compound statement Rule 15.6 (req.) 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 Rule 7.4 (req.) Pre-2020.1
MISRA.STRUCT_DEF.HIDDEN.2012 If a pointer to a structure or union is never dereferenced within a translation unit, then the implementation of the object should be hidden Dir 4.8 (adv.) 2024.3
MISRA.SWITCH.COND.BOOL.2012 A switch-expression shall not have essentially Boolean type. Rule 16.7 (req.) Pre-2020.1
MISRA.SWITCH.WELL_FORMED.2012 All switch statements shall be well-formed. Rule 16.1 (req.) Pre-2020.1
MISRA.SWITCH.WELL_FORMED.BREAK.2012 An unconditional break statement shall terminate every switch-clause. Rule 16.3 (req.) Pre-2020.1
MISRA.SWITCH.WELL_FORMED.DEFAULT.2012 Every switch statement shall have a default label. Rule 16.4 (req.) 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. Rule 16.5 (req.) 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. Rule 16.2 (req.) Pre-2020.1
MISRA.SWITCH.WELL_FORMED.TWO_CLAUSES.2012 Every switch statement shall have at least two switch-clauses. Rule 16.6 (req.) Pre-2020.1
MISRA.TOKEN.BADCOM Inappropriate character sequence in a comment Rule 3.1 (req.) Pre-2020.1
MISRA.TOKEN.COMMENTED.CODE Comment appears to contain commented out source code Dir 4.4 (adv.) 2024.3
MISRA.TOKEN.L.SUFFIX.FLOAT Usage of lowercase character "l" suffix in floating constant Rule 7.3 (req.) Pre-2020.1
MISRA.TOKEN.L.SUFFIX.INT Usage of lowercase character "l" suffix in integer constant Rule 7.3 (req.) Pre-2020.1
MISRA.TOKEN.OCTAL.INT Usage of octal integer constants Rule 7.1 (req.) 2020.4
MISRA.TOKEN.UNTERMINATED.ESCAPE.2012 Unterminated escape sequence in a string literal Rule 4.1 (req.) Pre-2020.1
MISRA.TYPEDEF.NOT_UNIQUE.2012 Typedef name is used for another entity Rule 5.6 (req.) 2023.2
MISRA.UNDEF Undef usage Rule 20.5 (adv.) Pre-2020.1
MISRA.UNDEF.WRONGNAME Undefinition of a name from the standard library Rule 21.1 (req.) Pre-2020.1
MISRA.UNDEF.WRONGNAME.UNDERSCORE Undefinition of a reserved name Rule 21.1 (req.) Pre-2020.1
MISRA.UNION Union is used Rule 19.2 (adv.) Pre-2020.1
MISRA.UNUSED.ENUM_TAG A project should not contain unused tag declarations Rule 2.4 (adv.) 2020.1
MISRA.UNUSED.GLOBAL_TYPE A project should not contain unused type or tag declarations Rule 2.3 (adv.) Rule 2.4 (adv.) 2025.1
MISRA.UNUSED.LOCAL_TYPE A project should not contain unused type declarations Rule 2.3 (adv.) 2020.1
MISRA.UNUSED_MACRO.2012 A project should not contain unused macro declarations Rule 2.5 (adv.) 2024.4
MISRA.USE.UNKNOWNDIR Unknown preprocessor directive is used Rule 20.13 (req.) Pre-2020.1
MISRA.VAR.HIDDEN Identifier declared in an inner scope hides identifier in outer scope Rule 5.3 (req.) 2020.2
MLK.MIGHT Memory Leak - possible Rule 22.1 (req.) Pre-2020.1
MLK.MUST Memory Leak Rule 22.1 (req.) 2020.1
MLK.RET.MIGHT Memory Leak - possible Rule 22.1 (req.) Pre-2020.1
MLK.RET.MUST Memory Leak Rule 22.1 (req.) Pre-2020.1
NNTS.MIGHT Buffer Overflow - Non-null Terminated String Rule 21.17 (mand.) Pre-2020.1
NNTS.MUST Buffer Overflow - Non-null Terminated String Rule 21.17 (mand.) Pre-2020.1
NNTS.TAINTED Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String Dir 4.14 (req.) Pre-2020.1
NUM.OVERFLOW.DF Possible numeric overflow or wraparound Dir 4.1 (req.) 2024.2
PORTING.VAR.EFFECTS Variable used twice in one expression where one usage is subject to side-effects Rule 13.2 (req.) Pre-2020.1
RH.LEAK Resource leak Rule 22.1 (req.) 2020.1
SV.RVT.RETVAL_NOTTESTED Ignored Return Value Dir 4.7 (req.) 2021.2
SV.TAINTED.ALLOC_SIZE Use of Unvalidated Integer in Memory Allocation Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.BINOP Use of Unvalidated Integer in Binary Operation Dir 4.14 (req.) 2021.2
SV.TAINTED.CALL.BINOP Use of Unvalidated Integer in Binary Operation Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.CALL.DEREF Dereference Of An Unvalidated Pointer Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.CALL.INDEX_ACCESS Use of Unvalidated Integer as Array Index by Function Call Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.CALL.LOOP_BOUND Use of Unvalidated Integer in Loop Condition through a Function Call Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.DEREF Dereference Of An Unvalidated Pointer Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.FMTSTR Use of Unvalidated Data in a Format String Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.INDEX_ACCESS Use of Unvalidated Integer as Array Index Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.INJECTION Command Injection Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.LOOP_BOUND Use of Unvalidated Integer in Loop Condition Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.PATH_TRAVERSAL Use of Unvalidated Data in a Path Traversal Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.SECURITY_DECISION Security Decision Dir 4.14 (req.) Pre-2020.1
UNINIT.CTOR.MIGHT Uninitialized Variable in Constructor - possible Dir 4.1 (req.) Pre-2020.1
UNINIT.CTOR.MUST Uninitialized Variable in Constructor Dir 4.1 (req.) 2020.1
UNINIT.HEAP.MIGHT Uninitialized Heap Use - possible Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.HEAP.MUST Uninitialized Heap Use Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.ARRAY.MIGHT Uninitialized Array - possible Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.ARRAY.MUST Uninitialized Array Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.ARRAY.PARTIAL.MUST Partially Uninitialized Array Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.MIGHT Uninitialized Variable - possible Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.MUST Uninitialized Variable Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNREACH.ENUM Code is unreachable due to the possible value(s) of an enum Rule 2.1 (req.) 2021.3
UNREACH.GEN Unreachable code Rule 2.1 (req.) Pre-2020.1
UNREACH.RETURN Unreachable Void Return Rule 2.1 (req.) Pre-2020.1
VA_UNUSED.GEN Value is Never Used after Assignment Rule 2.2 (req.) Pre-2020.1
VA_UNUSED.INIT Value is Never Used after Initialization Rule 2.2 (req.) Pre-2020.1

MISRA C:2012 Amendment 2 C99

Checker name Description Rule Version
ABV.ANY_SIZE_ARRAY Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
ABV.GENERAL Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 18.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
ABV.GENERAL.MULTIDIMENSION Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 18.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) 2022.3
ABV.ITERATOR Buffer Overflow - Array Index may be out of Bounds Dir 4.1 (req.) Pre-2020.1
ABV.MEMBER Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
ABV.NON_ARRAY Non-array object is used as an array Dir 4.1 (req.) 2024.4
ABV.STACK Buffer Overflow - Local Array Index Out of Bounds Dir 4.1 (req.) Rule 18.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
ABV.TAINTED Buffer Overflow from Unvalidated Input Dir 4.14 (req.) Pre-2020.1
ABV.UNICODE.BOUND_MAP Buffer overflow in mapping character function Dir 4.1 (req.) Pre-2020.1
ABV.UNICODE.FAILED_MAP Mapping function failed Dir 4.1 (req.) Pre-2020.1
ABV.UNICODE.NNTS_MAP Buffer overflow in mapping character function Dir 4.1 (req.) Pre-2020.1
ABV.UNICODE.SELF_MAP Mapping function failed Dir 4.1 (req.) Pre-2020.1
ABV.UNKNOWN_SIZE Buffer Overflow - Array Index Out of Bounds Dir 4.1 (req.) Rule 21.17 (mand.) Rule 21.18 (mand.) Pre-2020.1
CXX.ERRNO.INCORRECTLY_CHECKED Errno condition check not required after calling library function Rule 22.10 (req.) 2021.2
CXX.ERRNO.NOT_CHECKED Errno condition check is missing after calling library function Rule 22.9 (req.) 2021.2
CXX.ERRNO.NOT_SET Errno is not reset to zero before calling library function Rule 22.8 (req.) 2021.2
CXX.ID_VIS.GLOBAL_VARIABLE.EXTERN Visibility of extern global variable is too wide Rule 8.9 (adv.) Pre-2020.1
CXX.ID_VIS.GLOBAL_VARIABLE.STATIC Visibility of static global variable is too wide Rule 8.9 (adv.) Pre-2020.1
DBZ.CONST Division by a zero constant occurs Dir 4.1 (req.) 2020.2
DBZ.CONST.CALL The value '0' is passed to function that can use this value as divisor Dir 4.1 (req.) Pre-2020.1
DBZ.GENERAL Division by zero might occur Dir 4.1 (req.) 2023.3
DBZ.ITERATOR Division by zero might occur in a loop iterator Dir 4.1 (req.) Pre-2020.1
DBZ.ITERATOR.CALL Division by zero might occur in a function call Dir 4.1 (req.) Pre-2020.1
EFFECT Statement has no effect Rule 2.2 (req.) Pre-2020.1
FMM.MIGHT Freeing Mismatched Memory - possible Rule 22.2 (mand.) Pre-2020.1
FMM.MUST Freeing Mismatched Memory Rule 22.2 (mand.) Pre-2020.1
FNH.MIGHT Freeing Non-Heap Memory - possible Rule 22.2 (mand.) Pre-2020.1
FNH.MUST Freeing Non-Heap Memory Rule 22.2 (mand.) Pre-2020.1
FUM.GEN.MIGHT Freeing Unallocated Memory - possible Rule 22.2 (mand.) Pre-2020.1
FUM.GEN.MUST Freeing Unallocated Memory Rule 22.2 (mand.) Pre-2020.1
FUNCRET.GEN Non-void function does not return value Rule 17.4 (mand.) Pre-2020.1
FUNCRET.IMPLICIT Non-void function implicitly returning int does not return value Rule 17.4 (mand.) Pre-2020.1
INVARIANT_CONDITION.GEN Invariant expression in a condition Rule 14.3 (req.) 2020.1
INVARIANT_CONDITION.UNREACH Invariant expression in a condition Rule 14.3 (req.) Pre-2020.1
LA_UNUSED Label unused Rule 2.6 (adv.) Pre-2020.1
LOCRET.ARG Function returns address of local variable Rule 18.6 (req.) Pre-2020.1
LOCRET.GLOB Function returns address of local variable Rule 18.6 (req.) Pre-2020.1
LOCRET.RET Function returns address of local variable Rule 18.6 (req.) Pre-2020.1
LV_UNUSED.GEN Local variable unused Rule 2.2 (req.) 2020.3
MISRA.ARRAY.ARG_SIZE Array argument should be appropriate size Rule 17.5 (adv.) 2020.1
MISRA.ARRAY.ARG_SIZE.MIGHT Array argument should be appropriate size Rule 17.5 (adv.) 2020.1
MISRA.ARRAY.VAR_LENGTH.2012 Variable-length array types shall not be used Rule 18.8 (req.) 2020.4
MISRA.ASM.ENCAPS Assembly language is not isolated. Dir 4.2 (adv.) Dir 4.3 (req.) Pre-2020.1
MISRA.ASSIGN.OVERLAP Object is assigned to an overlapping object Rule 19.1 (mand.) 2023.2
MISRA.ASSIGN.SUBEXPR.2012 The result of an assignment operator is used Rule 13.4 (adv.) Pre-2020.1
MISRA.BITFIELD.SIGNED Length of a named signed bit-field is less than 2 Rule 6.2 (req.) Pre-2020.1
MISRA.BITFIELD.TYPE.2012 Type of bit-field is neither bool, nor signed/unsigned integer Rule 6.1 (req.) 2021.2
MISRA.BREAK_OR_GOTO.MULTIPLE.2012 Iteration statement has more than one break or goto for loop termination. Rule 15.4 (adv.) Pre-2020.1
MISRA.BUILTIN_NUMERIC Builtin numeric type is used Dir 4.6 (adv.) Pre-2020.1
MISRA.CAST.CONST Cast operation removes const or volatile modifier from a pointer or reference Rule 11.8 (req.) Pre-2020.1
MISRA.CAST.FUNC_PTR.2012 Conversion performed between a pointer to a function and another incompatible type Rule 11.1 (req.) Pre-2020.1
MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012 Conversion performed between a pointer to an incomplete type and a different type Rule 11.2 (req.) Pre-2020.1
MISRA.CAST.OBJ_PTR_TO_INT.2012 Conversion performed between a pointer to an object and an integer type Rule 11.4 (adv.) Pre-2020.1
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012 A cast between a pointer to object and a non-integer arithmetic type Rule 11.7 (req.) 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 Rule 11.3 (req.) Pre-2020.1
MISRA.CAST.VOID_PTR_TO_INT.2012 Cast between a pointer to void and an arithmetic type Rule 11.6 (req.) 2021.2
MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012 Conversion performed from a pointer to void to a pointer to an object Rule 11.5 (adv.) Pre-2020.1
MISRA.CHAR.TRIGRAPH Trigraph usage Rule 4.2 (adv.) Pre-2020.1
MISRA.COMMA Comma operator is used Rule 12.3 (adv.) Pre-2020.1
MISRA.COMP.WRAPAROUND Wrap-around in a condition Rule 12.4 (adv.) 2020.3
MISRA.CT.UNIQUE.ID.2012 Identifier clashes with tag name Rule 5.7 (req.) 2021.2
MISRA.DECL.ARRAY_SIZE Declaration of array with unknown size Rule 8.11 (adv.) Pre-2020.1
MISRA.DECL.EXTERNAL.MULTIPLE Declaration of object or function with external linkage shall exist only in one location. Rule 8.5 (req.) 2024.3
MISRA.DECL.FUNC.INLINE.STATIC.2012 Declaration of inline function without static storage class Rule 8.10 (req.) Pre-2020.1
MISRA.DECL.FUNC.NAME.QUAL.2012 All declarations of an object or function shall use the same name and type qualifiers Rule 8.3 (req.) 2024.4
MISRA.DEFINE.EXTERNAL.MULTIPLE Definition of object or function with external linkage shall exist only in one location. Rule 8.6 (req.) 2024.3
MISRA.DEFINE.FUNC Function-like macro definition Dir 4.9 (adv.) Pre-2020.1
MISRA.DEFINE.NOT_DISTINCT.C99.2012 Identifier name is too long Rule 5.4 (req.) Pre-2020.1
MISRA.DEFINE.SHARP # or ## operator in a macro definition Rule 20.10 (adv.) Pre-2020.1
MISRA.DEFINE.SHARP.ORDER.2012 Unspecified order of evaluation of multiple '#' or '##' Rule 20.11 (req.) 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 Rule 20.12 (req.) Pre-2020.1
MISRA.DEFINE.STDIO.WCHAR.2012 Inappropriate macro expansion Rule 21.6 (req.) Pre-2020.1
MISRA.DEFINE.WCSFTIME.2012 No macro with 'wcsftime' name shall be expanded Rule 21.10 (req.) Pre-2020.1
MISRA.DEFINE.WRONGNAME Usage of a name from the standard library for naming a macro Rule 21.1 (req.) Pre-2020.1
MISRA.DEFINE.WRONGNAME.C99.2012 A macro shall not be defined with the same name as a keyword Rule 20.4 (req.) Pre-2020.1
MISRA.DEFINE.WRONGNAME.UNDERSCORE Usage of a reserved name for naming a macro Rule 21.1 (req.) Pre-2020.1
MISRA.ELIF.COND.NOT_BOOL.2012 #elif condition is not 0 or 1 Rule 20.8 (req.) Pre-2020.1
MISRA.ELIF.DEFINED Incorrect 'defined' usage in #elif directive Rule 1.3 (req.) Pre-2020.1
MISRA.ELIF.OTHERFILE #elif in an improper file Rule 20.14 (req.) Pre-2020.1
MISRA.ELIF.UNDEF Undefined macros in #elif directive Rule 20.9 (req.) Pre-2020.1
MISRA.ELSE.OTHERFILE #else in an improper file Rule 20.14 (req.) Pre-2020.1
MISRA.ENDIF.OTHERFILE #endif in an improper file Rule 20.14 (req.) Pre-2020.1
MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012 Implicit enumerator value is not unique Rule 8.12 (req.) Pre-2020.1
MISRA.ETYPE.ASSIGN.2012 Assignment to an object of a narrower essential type or a different essential type category Rule 10.3 (req.) 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 Rule 10.4 (req.) 2021.2
MISRA.ETYPE.COMP.ASSIGN.2012 The value of a composite expression is assigned to an object with a wider essential type Rule 10.6 (req.) 2021.3
MISRA.ETYPE.COMP.CAST.EXPL.DIFFERENT.2012 The value of a composite expression is cast to a different essential type category Rule 10.8 (req.) Pre-2020.1
MISRA.ETYPE.COMP.CAST.EXPL.WIDER.2012 The value of a composite expression is cast to a wider essential type Rule 10.8 (req.) 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 Rule 10.7 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.CAST.2012 The value of an expression is cast to an inappropriate essential type Rule 10.5 (adv.) 2024.2
MISRA.ETYPE.INAPPR.CHAR.2012 Inappropriate usage of Essentially Character type in an addition or subtraction operation Rule 10.2 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.OPERAND.BINOP.2012 Operand(s) to a binary operator have inappropriate essential type Rule 10.1 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.OPERAND.INDEXPR.2012 Index expression has inappropriate essential type Rule 10.1 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.OPERAND.TERNOP.2012 First operand to a ternary operator has inappropriate essential type Rule 10.1 (req.) Pre-2020.1
MISRA.ETYPE.INAPPR.OPERAND.UNOP.2012 Operand to a unary operator has inappropriate essential type Rule 10.1 (req.) Pre-2020.1
MISRA.EXPANSION.DIRECTIVE Directive-like tokens within a macro argument Rule 20.6 (req.) Pre-2020.1
MISRA.EXPANSION.NARGS Missing macro argument Rule 1.3 (req.) Pre-2020.1
MISRA.EXPANSION.UNSAFE Unsafe macro usage Rule 1.3 (req.) Pre-2020.1
MISRA.EXPR.PARENS.2012 The precedence of operators within expressions should be made explicit. Rule 12.1 (adv.) Pre-2020.1
MISRA.EXPR.PARENS.SIZEOF.2012 The operand of the sizeof operator should be parenthesized. Rule 12.1 (adv.) Pre-2020.1
MISRA.EXPR.SIZEOF.ARRAY_PARAM.2012_AMD1 The sizeof operator has an operand which is a function parameter declared as "array of type" Rule 12.5 (mand.) Pre-2020.1
MISRA.EXT.IDENT.DISTINCT.2012.C99 External identifiers must be distinct within the limits imposed by the implementation. Rule 5.1 (req.) 2024.3
MISRA.EXT.LINKAGE.REDUNDANT.2012 Functions and objects should not be defined with external linkage if they are referenced in only one translation unit Rule 8.7 (adv.) 2024.3
MISRA.FILE_PTR.DEREF.2012 A pointer to a FILE object shall not be dereferenced Rule 22.5 (mand.) 2022.1
MISRA.FILE_PTR.DEREF.CAST.2012 Object is casted to a FILE pointer, and it shall not be dereferenced Rule 22.5 (mand.) Pre-2020.1
MISRA.FILE_PTR.DEREF.INDIRECT.2012 A pointer to a FILE object shall not be indirectly dereferenced by a system function Rule 22.5 (mand.) Pre-2020.1
MISRA.FILE_PTR.DEREF.RETURN.2012 A pointer to a FILE object (returned by function) shall not be dereferenced Rule 22.5 (mand.) Pre-2020.1
MISRA.FOR.BODY.LOOP_CTR_MODIFIED The loop counter should not be modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.BODY.LOOP_CTR_MODIFIED.MIGHT The loop counter should not be modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.COND.COUNTER_UNUSED Loop second clause shall use the loop counter Rule 14.2 (req.) 2020.1
MISRA.FOR.COND.INVALID_USE Loop second clause shall not used any object that is modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.COND.INVALID_USE.MIGHT Loop second clause shall not used any object that is modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.COND.PURE Loop second clause shall be a single expression with no persistent side effects Rule 14.2 (req.) 2022.4
MISRA.FOR.COND.SINGLE_PURE Loop second clause shall be a single expression with no persistent side effects Rule 14.2 (req.) 2020.1
MISRA.FOR.COUNTER.FLT For loop counter has a floating point type Rule 14.1 (req.) Pre-2020.1
MISRA.FOR.ITER_EXPR.INVALID_USE Loop third clause shall not used any object that is modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.ITER_EXPR.INVALID_USE.MIGHT Loop third clause shall not used any object that is modified in the loop body Rule 14.2 (req.) 2020.1
MISRA.FOR.ITER_EXPR.MULTI_SIDE_EFFECTS Loop third clause shall only contain persistent side effect to the loop counter Rule 14.2 (req.) 2020.1
MISRA.FOR.ITER_EXPR.ONE_EXPR Loop third clause shall be a single expression Rule 14.2 (req.) 2020.1
MISRA.FOR.MULTI_INIT Loop first clause shall be empty or assign a value to the loop counter Rule 14.2 (req.) 2020.1
MISRA.FOR.UNINIT_COUNTER Loop first clause shall be empty or assign a value to the loop counter Rule 14.2 (req.) 2020.1
MISRA.FUNC.ARRAY.PARAM.STATIC.2012 The declaration of an array parameter shall not contain the static keyword between the [] Rule 17.6 (mand.) Pre-2020.1
MISRA.FUNC.MODIFIEDPAR.2012 A function parameter should not be modified Rule 17.8 (adv.) Pre-2020.1
MISRA.FUNC.NOPROT.DEF.2012 Function has a definition but no prototype Rule 8.4 (req.) Pre-2020.1
MISRA.FUNC.NO_PARAMS Function without parameters is missing void parameter type Rule 8.2 (req.) Pre-2020.1
MISRA.FUNC.PARAMS.IDENT Identifiers used in declaration and definition of function are not identical Rule 8.3 (req.) Pre-2020.1
MISRA.FUNC.PROT_FORM.KR.2012 Function types shall be in prototype form Rule 8.2 (req.) Pre-2020.1
MISRA.FUNC.RECUR Recursive function Rule 17.2 (req.) Pre-2020.1
MISRA.FUNC.STATIC.REDECL Function or object redeclaration does not include 'static' modifier Rule 8.8 (req.) Pre-2020.1
MISRA.FUNC.UNMATCHED.PARAMS Number of formal and actual parameters passed to function do not match Rule 8.2 (req.) Pre-2020.1
MISRA.FUNC.UNNAMED.PARAMS Function declaration has unnamed parameters Rule 8.2 (req.) 2022.4
MISRA.FUNC.UNUSEDPAR.2012 Unused parameters in functions Rule 2.7 (adv.) Pre-2020.1
MISRA.FUNC.UNUSEDRET.2012 The return value of a non-void function shall be used. Rule 17.7 (req.) Pre-2020.1
MISRA.FUNC.VARARG Function with variable number of arguments Rule 17.1 (req.) Pre-2020.1
MISRA.GOTO Goto statement is used Rule 15.1 (adv.) Pre-2020.1
MISRA.GOTO.AFTER_LABEL.2012 Goto jumps to label declared before in same function. Rule 15.2 (req.) Pre-2020.1
MISRA.GOTO.NESTED.2012 Label referenced by goto is not in this or enclosing block. Rule 15.3 (req.) Pre-2020.1
MISRA.IDENT.DISTINCT.C99.2012 Identifiers declared in the same scope or name space are not distinct Rule 5.2 (req.) Pre-2020.1
MISRA.IDENT.NONUNIQUE.EXTERNAL.2012 Identifiers that define objects or functions with external linkage shall be unique. Rule 5.8 (req.) Pre-2020.1
MISRA.IDENT.NONUNIQUE.INTERNAL.2012 Identifiers that define objects or functions with internal linkage should be unique. Rule 5.9 (adv.) Pre-2020.1
MISRA.IF.COND.NOT_BOOL.2012 #if condition is not 0 or 1 Rule 20.8 (req.) Pre-2020.1
MISRA.IF.DEFINED Incorrect 'defined' usage in #if directive Rule 1.3 (req.) Pre-2020.1
MISRA.IF.NO_COMPOUND The body of if/else statement is not a compound statement Rule 15.6 (req.) 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 Rule 15.7 (req.) Pre-2020.1
MISRA.IF.UNDEF Undefined macros in #if directive Rule 20.9 (req.) Pre-2020.1
MISRA.INCGUARD Include guard is not provided Dir 4.10 (req.) Pre-2020.1
MISRA.INCL.BAD Non-standard include directive Rule 20.3 (req.) 2020.4
MISRA.INCL.INSIDE Include directive preceded by a preprocessor output token Rule 20.1 (adv.) Pre-2020.1
MISRA.INCL.SIGNAL.2012 The standard header file signal.h shall not be used Rule 21.5 (req.) Pre-2020.1
MISRA.INCL.STDIO.2012 The standard header files stdio.h shall not be used Rule 21.6 (req.) Pre-2020.1
MISRA.INCL.SYMS Non-standard characters in header file names Rule 20.2 (req.) Pre-2020.1
MISRA.INCL.TGMATH.2012 The standard header file tgmath.h shall not be used Rule 21.11 (req.) Pre-2020.1
MISRA.INCL.TIME.2012 The standard header file time.h shall not be used Rule 21.10 (req.) Pre-2020.1
MISRA.INCOMPLETE.STRUCT Incomplete struct type is used Rule 1.3 (req.) Pre-2020.1
MISRA.INCOMPLETE.STRUCT.UNNAMED Incomplete unnamed struct type is used Rule 1.3 (req.) Pre-2020.1
MISRA.INCOMPLETE.UNION Incomplete union type is used Rule 1.3 (req.) Pre-2020.1
MISRA.INCOMPLETE.UNION.UNNAMED Incomplete unnamed union type is used Rule 1.3 (req.) 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 Rule 13.3 (adv.) Pre-2020.1
MISRA.INIT.BRACES.2012 The initializer for an aggregate or union is not enclosed in braces Rule 9.2 (req.) Pre-2020.1
MISRA.INIT.MULTIPLE.2012 An element of an object is initialized more than once Rule 9.4 (req.) Pre-2020.1
MISRA.INIT.PARTIAL.2012 Array is partially initialized Rule 9.3 (req.) Pre-2020.1
MISRA.INIT.SIDE_EFFECT Initializer list value contains persistent side effects Rule 13.1 (req.) 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 Rule 9.5 (req.) Pre-2020.1
MISRA.LANG.EXTENSIONS Language extensions should not be used Rule 1.2 (adv.) 2022.4
MISRA.LITERAL.NULL.PTR.CONST.2012 The macro NULL is the only permitted form of integer null pointer constant Rule 11.9 (req.) 2020.2
MISRA.LITERAL.UNSIGNED.SUFFIX Unsigned integer literal without 'U' suffix Rule 7.2 (req.) Pre-2020.1
MISRA.LOGIC.SIDEEFF Right operand in a logical 'and' or 'or' expression contains side effects Rule 13.5 (req.) Pre-2020.1
MISRA.MACRO.IDENT.DISTINCT.C99.2012 Identifiers shall be distinct from macro names within the first 63 characters Rule 5.5 (req.) 2024.4
MISRA.MACRO_ARG.EXPRESSION.2012 Expressions resulting from the expansion of macro parameters shall be enclosed in parentheses Rule 20.7 (req.) 2024.3
MISRA.MEMB.FLEX_ARRAY.2012 Flexible array member shall not be declared Rule 18.7 (req.) Pre-2020.1
MISRA.MEMCMP.NTS.2012_AMD1 The memcmp function shall only be used to compare non null terminated strings Rule 21.14 (req.) 2023.2
MISRA.MEMCMP.NTS.GLOBAL.2012_AMD1 The memcmp function shall only be used to compare non null terminated strings Rule 21.14 (req.) 2023.2
MISRA.OBJ.FUNC.PARAMS.IDENT All declarations of an object or function shall use the same names and type qualifiers Rule 8.3 (req.) 2025.1
MISRA.PPARAM.NEEDS.CONST Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const Rule 8.13 (adv.) Pre-2020.1
MISRA.PTR.ARITH.2012 Pointer is used in arithmetic expression Rule 18.4 (adv.) 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 Rule 18.1 (req.) 2020.2
MISRA.PTR.CMP.2008 Pointer comparison using comparison operators shall only be applied if pointing to same array and within the range Rule 18.3 (req.) 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 Rule 18.3 (req.) 2022.1
MISRA.PTR.SUB Pointer subtraction shall only be applied if pointing to same array Rule 18.2 (req.) 2022.4
MISRA.PTR.SUB.OBJECT Pointer subtraction shall only be applied if pointing to same object Rule 18.2 (req.) 2022.4
MISRA.PTR.TO_PTR_TO_PTR Pointer declaration has more than two levels of indirection Rule 18.5 (adv.) Pre-2020.1
MISRA.RESOURCES.FILE.OPEN_READ_WRITE.2012 Multiple streams opened for same file Rule 22.3 (req.) 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 Rule 22.4 (mand.) 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 Rule 22.6 (mand.) Pre-2020.1
MISRA.RETURN.NOT_LAST Return is not the last statement in a function Rule 15.5 (adv.) 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 Rule 12.2 (req.) Pre-2020.1
MISRA.SIZEOF.SIDE_EFFECT Operand of sizeof has side effects Rule 13.6 (mand.) Pre-2020.1
MISRA.STDLIB.ABORT.2012_AMD2 Use of 'abort', 'exit', 'quick_exit' or '_Exit' from library stdlib.h Rule 21.8 (req.) 2023.4
MISRA.STDLIB.ATOI Use of 'atof', 'atoi' or 'atol' from library stdlib.h Rule 21.7 (req.) Pre-2020.1
MISRA.STDLIB.BSEARCH.2012 Use of 'bsearch' or 'qsort' from library stdlib.h Rule 21.9 (req.) Pre-2020.1
MISRA.STDLIB.CTYPE.ARG_VAL Any value passed to a function in <ctype.h> shall be representable as an unsigned char or be the value of EOF Rule 21.13 (mand.) 2020.1
MISRA.STDLIB.CTYPE.RANGE.2012_AMD1 Any value passed to a function in ctype.h shall be representable as an unsigned char or be the value EOF Rule 21.13 (mand.) Pre-2020.1
MISRA.STDLIB.EOF.BAD_CMP.2012_AMD1 The macro EOF shall only be compared with the unmodified return value from any Standard Library function capable of returning EOF Rule 22.7 (req.) 2023.2
MISRA.STDLIB.FENV.2012 Floating-point exception feature from fenv.h is used Rule 21.12 (adv.) Pre-2020.1
MISRA.STDLIB.FENV.MACRO.2012 Floating-point exception feature from fenv.h is used Rule 21.12 (adv.) Pre-2020.1
MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1 The pointer returned by the Standard Library functions asctime and similar shall not be used following a subsequent call to the same function Rule 21.20 (mand.) Pre-2020.1
MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1 The pointers returned by the Standard Library functions localeconv, getenv, setlocale or, strerror shall only be used as if they have pointer to const-qualified type Rule 21.19 (mand.) Pre-2020.1
MISRA.STDLIB.INCOMPAT_ARGS.2012_AMD1 The pointer arguments to memcpy, memmove, or memcmp are not pointers to compatible types Rule 21.15 (req.) Pre-2020.1
MISRA.STDLIB.LONGJMP Use of setjmp macro or longjmp function Rule 21.4 (req.) Pre-2020.1
MISRA.STDLIB.MEMCMP.PTR_ARG_TYPES The pointer arguments to the Standard Library function memcmp shall point to either a pointer type, an essentially signed type, an essentially unsigned type, an essentially Boolean type or an essentially enum type Rule 21.16 (req.) 2020.1
MISRA.STDLIB.MEMORY Use of dynamic heap memory allocation Rule 21.3 (req.) Pre-2020.1
MISRA.STDLIB.RET.NONCONST_PTR.LOCAL The pointers returned by the Standard Library functions localeconv, getenv, setlocale or, strerror shall only be used as if they have the pointer to const-qualified type Rule 21.19 (mand.) 2020.1
MISRA.STDLIB.SIGNAL Use of the signal handling facilities of signal.h Rule 21.5 (req.) Pre-2020.1
MISRA.STDLIB.STDIO Use of input/output library stdio.h in production code Rule 21.6 (req.) Pre-2020.1
MISRA.STDLIB.STDIO.WCHAR.2012 Wide-character equivalent identifiers from stdio.h shall not be used Rule 21.6 (req.) Pre-2020.1
MISRA.STDLIB.SYSTEM.2012_AMD2 Use of 'system' from library stdlib.h Rule 21.21 (req.) Pre-2020.1
MISRA.STDLIB.TIME Use of the time handling functions of library time.h Rule 21.10 (req.) Pre-2020.1
MISRA.STDLIB.WCSFTIME.2012 The identifier 'wcsftime' shall not be used Rule 21.10 (req.) Pre-2020.1
MISRA.STDLIB.WRONGNAME Reused name of standard library macro, object or function Rule 21.2 (req.) Pre-2020.1
MISRA.STDLIB.WRONGNAME.UNDERSCORE Usage of a reserved name for naming a language entity Rule 21.2 (req.) Pre-2020.1
MISRA.STMT.COND.NOT_BOOLEAN.2012 The controlling expression of an if statement or loop statement is not 'Essentially Boolean' type Rule 14.4 (req.) Pre-2020.1
MISRA.STMT.NO_COMPOUND The body of switch, while, do/while or for statement is not a compound statement Rule 15.6 (req.) 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 Rule 7.4 (req.) Pre-2020.1
MISRA.STRUCT_DEF.HIDDEN.2012 If a pointer to a structure or union is never dereferenced within a translation unit, then the implementation of the object should be hidden Dir 4.8 (adv.) 2024.3
MISRA.SWITCH.COND.BOOL.2012 A switch-expression shall not have essentially Boolean type. Rule 16.7 (req.) Pre-2020.1
MISRA.SWITCH.WELL_FORMED.2012 All switch statements shall be well-formed. Rule 16.1 (req.) Pre-2020.1
MISRA.SWITCH.WELL_FORMED.BREAK.2012 An unconditional break statement shall terminate every switch-clause. Rule 16.3 (req.) Pre-2020.1
MISRA.SWITCH.WELL_FORMED.DEFAULT.2012 Every switch statement shall have a default label. Rule 16.4 (req.) 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. Rule 16.5 (req.) 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. Rule 16.2 (req.) Pre-2020.1
MISRA.SWITCH.WELL_FORMED.TWO_CLAUSES.2012 Every switch statement shall have at least two switch-clauses. Rule 16.6 (req.) Pre-2020.1
MISRA.TOKEN.BADCOM Inappropriate character sequence in a comment Rule 3.1 (req.) Pre-2020.1
MISRA.TOKEN.COMMENTED.CODE Comment appears to contain commented out source code Dir 4.4 (adv.) 2024.3
MISRA.TOKEN.CPCOM.MULTILINE.2012 Line-splicing used in a // comment Rule 3.2 (req.) Pre-2020.1
MISRA.TOKEN.L.SUFFIX.FLOAT Usage of lowercase character "l" suffix in floating constant Rule 7.3 (req.) Pre-2020.1
MISRA.TOKEN.L.SUFFIX.INT Usage of lowercase character "l" suffix in integer constant Rule 7.3 (req.) Pre-2020.1
MISRA.TOKEN.OCTAL.INT Usage of octal integer constants Rule 7.1 (req.) 2020.4
MISRA.TOKEN.UNTERMINATED.ESCAPE.2012 Unterminated escape sequence in a string literal Rule 4.1 (req.) Pre-2020.1
MISRA.TYPE.RESTRICT.QUAL.2012 The restrict type qualifier shall not be used Rule 8.14 (req.) Pre-2020.1
MISRA.TYPEDEF.NOT_UNIQUE.2012 Typedef name is used for another entity Rule 5.6 (req.) 2023.2
MISRA.UNDEF Undef usage Rule 20.5 (adv.) Pre-2020.1
MISRA.UNDEF.WRONGNAME Undefinition of a name from the standard library Rule 21.1 (req.) Pre-2020.1
MISRA.UNDEF.WRONGNAME.UNDERSCORE Undefinition of a reserved name Rule 21.1 (req.) Pre-2020.1
MISRA.UNION Union is used Rule 19.2 (adv.) Pre-2020.1
MISRA.UNUSED.ENUM_TAG A project should not contain unused tag declarations Rule 2.4 (adv.) 2020.1
MISRA.UNUSED.GLOBAL_TYPE A project should not contain unused type or tag declarations Rule 2.3 (adv.) Rule 2.4 (adv.) 2025.1
MISRA.UNUSED.LOCAL_TYPE A project should not contain unused type declarations Rule 2.3 (adv.) 2020.1
MISRA.UNUSED_MACRO.2012 A project should not contain unused macro declarations Rule 2.5 (adv.) 2024.4
MISRA.USE.UNKNOWNDIR Unknown preprocessor directive is used Rule 20.13 (req.) Pre-2020.1
MISRA.VAR.HIDDEN Identifier declared in an inner scope hides identifier in outer scope Rule 5.3 (req.) 2020.2
MLK.MIGHT Memory Leak - possible Rule 22.1 (req.) Pre-2020.1
MLK.MUST Memory Leak Rule 22.1 (req.) 2020.1
MLK.RET.MIGHT Memory Leak - possible Rule 22.1 (req.) Pre-2020.1
MLK.RET.MUST Memory Leak Rule 22.1 (req.) Pre-2020.1
NNTS.MIGHT Buffer Overflow - Non-null Terminated String Rule 21.17 (mand.) Pre-2020.1
NNTS.MUST Buffer Overflow - Non-null Terminated String Rule 21.17 (mand.) Pre-2020.1
NNTS.TAINTED Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String Dir 4.14 (req.) Pre-2020.1
NUM.OVERFLOW.DF Possible numeric overflow or wraparound Dir 4.1 (req.) 2024.2
PORTING.VAR.EFFECTS Variable used twice in one expression where one usage is subject to side-effects Rule 13.2 (req.) Pre-2020.1
RH.LEAK Resource leak Rule 22.1 (req.) 2020.1
SV.RVT.RETVAL_NOTTESTED Ignored Return Value Dir 4.7 (req.) 2021.2
SV.TAINTED.ALLOC_SIZE Use of Unvalidated Integer in Memory Allocation Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.BINOP Use of Unvalidated Integer in Binary Operation Dir 4.14 (req.) 2021.2
SV.TAINTED.CALL.BINOP Use of Unvalidated Integer in Binary Operation Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.CALL.DEREF Dereference Of An Unvalidated Pointer Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.CALL.INDEX_ACCESS Use of Unvalidated Integer as Array Index by Function Call Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.CALL.LOOP_BOUND Use of Unvalidated Integer in Loop Condition through a Function Call Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.DEREF Dereference Of An Unvalidated Pointer Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.FMTSTR Use of Unvalidated Data in a Format String Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.INDEX_ACCESS Use of Unvalidated Integer as Array Index Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.INJECTION Command Injection Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.LOOP_BOUND Use of Unvalidated Integer in Loop Condition Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.PATH_TRAVERSAL Use of Unvalidated Data in a Path Traversal Dir 4.14 (req.) Pre-2020.1
SV.TAINTED.SECURITY_DECISION Security Decision Dir 4.14 (req.) Pre-2020.1
UNINIT.CTOR.MIGHT Uninitialized Variable in Constructor - possible Dir 4.1 (req.) Pre-2020.1
UNINIT.CTOR.MUST Uninitialized Variable in Constructor Dir 4.1 (req.) 2020.1
UNINIT.HEAP.MIGHT Uninitialized Heap Use - possible Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.HEAP.MUST Uninitialized Heap Use Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.ARRAY.MIGHT Uninitialized Array - possible Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.ARRAY.MUST Uninitialized Array Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.ARRAY.PARTIAL.MUST Partially Uninitialized Array Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.MIGHT Uninitialized Variable - possible Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNINIT.STACK.MUST Uninitialized Variable Dir 4.1 (req.) Rule 9.1 (mand.) Pre-2020.1
UNREACH.ENUM Code is unreachable due to the possible value(s) of an enum Rule 2.1 (req.) 2021.3
UNREACH.GEN Unreachable code Rule 2.1 (req.) Pre-2020.1
UNREACH.RETURN Unreachable Void Return Rule 2.1 (req.) Pre-2020.1
VA_UNUSED.GEN Value is Never Used after Assignment Rule 2.2 (req.) Pre-2020.1
VA_UNUSED.INIT Value is Never Used after Initialization Rule 2.2 (req.) Pre-2020.1

"MISRA", "MISRA C" and "MISRA C++" are registered trademarks of The MISRA Consortium Limited. ​