MISRA C++:2008 checker reference - certified

These checkers detect violations of the MISRA C++:2008 standard.

Notes

  • To view this information organized by rule number, see MISRA C++:2008 rules mapped to Klocwork certified checkers.
  • We provide full help for each MISRA C and MISRA C++ checker. Because this information is licensed, it is available as a part of your Klocwork installation, rather than online.
Issue code Description Rule Issued Improved

CWARN.NOEFFECT.UCMP.GE

Comparison of unsigned value against 0 is always true 0-1-2 Pre-9.2 9.5

CWARN.NOEFFECT.UCMP.GE.MACRO

Comparison of unsigned value against 0 within a macro is always true 0-1-2 Pre-9.2 9.5

CWARN.NOEFFECT.UCMP.LT

Comparison of unsigned value against 0 is always false 0-1-2 Pre-9.2 9.5

CWARN.NOEFFECT.UCMP.LT.MACRO

Comparison of unsigned value against 0 within a macro is always false 0-1-2 Pre-9.2 9.5

FUNCRET.GEN

Non-void function does not return value 8-4-3 Pre-9.2

LOCRET.ARG

Function returns address of local variable 7-5-2 Pre-9.2 9.5

LOCRET.GLOB

Function returns address of local variable 7-5-2 Pre-9.2 9.5

LOCRET.RET

Function returns address of local variable 7-5-1 Pre-9.2 9.5

LV_UNUSED.GEN

Local variable unused 0-1-3 Pre-9.2 2020.3

MISRA.ADDR.REF.PARAM

Function returns reference to parameter passed by reference 7-5-3 9.1 9.2, 11.1

MISRA.ADDR.REF.PARAM.PTR

Function returns address of parameter passed by reference 7-5-3 9.2 11.1

MISRA.ASM.ENCAPS

Assembly language is not isolated. 7-4-3 9.1

MISRA.ASSIGN.COND

Assignment operator is used in a condition 6-2-1 9.2

MISRA.ASSIGN.OVERLAP

Object is assigned to an overlapping object 0-2-1 9.5 2019.1

MISRA.ASSIGN.SUBEXPR

Assignment operator is used in a sub-expression outside a condition 6-2-1 9.1 9.2

MISRA.BASE.IDS.UNIQUE

Member name is used twice in inheritance hierarchy 10-2-1 9.2

MISRA.BASE.MANYDEFS

Both overriding and overridden virtual functions have definitions 10-3-1 9.2

MISRA.BASE.VIRTUAL.NOTVIRTUAL

Base class is used as both virtual and not virtual in inheritance hierarchy 10-1-3 9.2

MISRA.BIN_OP.OVERLOAD

Comma, || or && operator overloaded 5-2-11 9.1

MISRA.BITFIELD.SIGNED

Length of a named signed bit-field is less than 2 9-6-4 9.1 9.2, 10.4

MISRA.BITFIELD.TYPE.CPP

Type of bit-field is neither bool, nor signed/unsigned integer 9-6-2 9.2 11.0

MISRA.BITS.NOT_UNSIGNED

Operand of bitwise operation is not unsigned integer 5-0-21 9.1 9.2, 9.2 SR1, 9.5, 11.0

MISRA.BITS.NOT_UNSIGNED.PREP

Operand of bitwise operation is not unsigned integer 5-0-21 11.1

MISRA.BITS.OPERAND

Operands of bitwise operation have different underlying types 5-0-20 9.1

MISRA.BUILTIN_NUMERIC

Builtin numeric type is used 3-9-2 9.1 9.2, 9.2 SR1, 9.5

MISRA.CAST.CONST

Cast operation removes const or volatile modifier from a pointer or reference 5-2-5 9.1 9.2, 10.4, 2022.1

MISRA.CAST.FLOAT.WIDER

Cast of floating point expression to a wider floating point type 5-0-8 9.1 9.6, 11.0

MISRA.CAST.FLOAT_INT

Cast of floating point expression to integral type 5-0-7 9.1 9.6

MISRA.CAST.FUNC_PTR.CPP

Cast converts function pointer to other pointer type 5-2-6 9.2

MISRA.CAST.INT.SIGN

Non-trivial integral expression is cast to type with different signedness 5-0-9 9.1 9.2

MISRA.CAST.INT.WIDER

Cast of integral expression to a wider integral type 5-0-8 9.6 11.0

MISRA.CAST.INT_FLOAT

Cast of integral expression to floating point type 5-0-7 9.6

MISRA.CAST.INT_TO_PTR

Object with integer type or pointer to void cast to pointer type 5-2-8 9.2

MISRA.CAST.POLY.TYPE

Cast from a polymorphic base class to a derived class 5-2-3 9.2

MISRA.CAST.PTR.UNRELATED

Object of pointer type cast to unrelated type 5-2-7 9.2 9.5

MISRA.CAST.PTR.VRCLASS

A cast form pointer to a virtual base class to pointer to a derived class does not use 'dynamic_cast' 5-2-2 9.2

MISRA.CAST.PTR_TO_INT

Cast between a pointer and an integral type 5-2-9 9.1 9.2

MISRA.CAST.UNSIGNED_BITS

The result of bitwise operation on unsigned char or short is not cast back to original type 5-0-10 9.1

MISRA.CATCH.ALL

No ellipsis exception handler in a try-catch block 15-3-2 9.2

MISRA.CATCH.BY_VALUE

Exception object of class type is caught by value 15-3-5 9.1 9.5

MISRA.CATCH.NOALL

Ellipsis exception handler is not the last one in a try-catch block 15-3-7 9.2

MISRA.CATCH.WRONGORD

Handler for a base exception class precedes to a handler for a derived exception class in a try-catch block 15-3-6 9.2

MISRA.CHAR.DIGRAPH

Digraph usage 2-5-1 9.1

MISRA.CHAR.NOT_CHARACTER

'char' is used for non-character value 5-0-11 9.1 11.2

MISRA.CHAR.OPERAND

Expression of type 'char' or 'wchar_t' is used as non-character operand 4-5-3 9.1 9.2

MISRA.CHAR.TRIGRAPH

Trigraph usage 2-3-1 9.1 9.2

MISRA.COMMA

Comma operator is used 5-18-1 9.1

MISRA.COMP.WRAPAROUND

Wrap-around in a condition 5-19-1 9.2 9.5, 2020.3

MISRA.CONST.RET.NON_CONST

Constant member function returns non-const pointer to member variable 9-3-1 9.1 9.2, 9.2 SR2

MISRA.CONTINUE.ILL

Continue statement is used in an ill-formed for loop 6-6-3 9.2

MISRA.CONV.FLOAT

Implicit floating-point conversion 5-0-5 9.1 11.0

MISRA.CONV.INT.SIGN

Implicit integral conversion changes signedness 5-0-4 9.1 9.2, 9.2 SR2, 11.0

MISRA.CONV.NUM.NARROWER

Implicit numeric conversion to narrower type 5-0-6 9.1 9.5, 11.0, 2018.1

MISRA.COPY.CSTR.TMPL

Class has a template constructor with a single generic parameter, but has no copy constructor defined 14-5-2 9.2 11.0

MISRA.COPYASSIGN.ABSTRACT

Copy assignment should be declared protected or private in an abstract class 12-8-2 9.2

MISRA.COPYASSIGN.TMPL

A copy ssignment operator should be defined when class has a template copy assignment operator with a single generic parameter 14-5-3 9.2

MISRA.CT.UNIQUE.ID

Identifier clashes with tag name 2-10-4 9.1 9.2, 9.2 SR1, 2021.2

MISRA.CTOR.BASE

Constructor does not explicitly call constructor of its base class 12-1-2 9.1 9.2, 9.5, 2020.2

MISRA.CTOR.DYNAMIC

Object's dynamic type is used from the body of its constructor 12-1-1 9.2

MISRA.CTOR.NOT_EXPLICIT

Constructor with one argument of built-in type is not declared 'explicit' 12-1-3 9.1 11.0

MISRA.CTOR.TRY.NON_STATIC

Function try/catch block of constructor or destructor references non-static members 15-3-3 9.1

MISRA.CVALUE.IMPL.CAST.CPP

The value of an expression implicitly converted to a different type 5-0-3 9.2 9.5, 11.0, 11.1, 2018.1

MISRA.C_CAST

C-style cast to non-void type 5-2-4 9.1 9.2

MISRA.DECL.ARRAY_SIZE

Declaration of array with unknown size 3-1-3 9.1

MISRA.DECL.EXCPT.SPEC

Function is declared with different exception specifications 15-4-1 9.1 9.2

MISRA.DECL.FUNC_LOCAL

Function is declared locally 3-1-2 9.1 9.2 SR1

MISRA.DECL.MANY_DCLS

More than one declarator in one declaration 8-0-1 9.1

MISRA.DEFINE.BADEXP.CPP

Inappropriate macro expansion in a C++ source 16-2-2 9.1 9.5

MISRA.DEFINE.FUNC

Function-like macro definition 16-0-4 9.1

MISRA.DEFINE.NOPARS

Macro parameter with no parentheses 16-0-6 9.1

MISRA.DEFINE.NOTGLOBAL

Define not at the global level 16-0-2 9.1

MISRA.DEFINE.SHARP

# or ## operator in a macro definition 16-3-2 9.1

MISRA.DEFINE.SHARP.MANY

Several # or ## operators in a macro definition 16-3-1 9.1

MISRA.DEFINE.WRONGNAME

Usage of a name from the standard library for naming a macro 17-0-1 9.1 9.2 SR2, 9.5

MISRA.DEFINE.WRONGNAME.UNDERSCORE

Usage of a reserved name for naming a macro 17-0-1 9.2 SR2

MISRA.DERIVE.VIRTUAL

Class is derived from virtual base 10-1-1 9.1 9.2

MISRA.DTOR.DYNAMIC

Object's dynamic type is used from the body of its destructor 12-1-1 9.2

MISRA.DTOR.THROW

Throw in destructor 15-5-1 9.1

MISRA.ELIF.DEFINED

Incorrect 'defined' usage in #elif directive 16-1-1 9.1

MISRA.ELIF.OTHERFILE

#elif in an improper file 16-1-2 9.1

MISRA.ELIF.UNDEF

Undefined macros in #elif directive 16-0-7 9.1

MISRA.ELIF.WRAPAROUND

Wrap-around in #elif directive 5-19-1 9.1

MISRA.ELSE.OTHERFILE

#else in an improper file 16-1-2 9.1

MISRA.ENDIF.OTHERFILE

#endif in an improper file 16-1-2 9.1

MISRA.ENUM.INIT

Non-first enumerator is explicitly initialized, but not all elements are explicitly initialized. 8-5-3 9.1

MISRA.ENUM.OPERAND

Expression of enum type is used in arithmetic context 4-5-2 9.1 9.2

MISRA.EXPANSION.DIRECTIVE

Directive-like tokens within a macro argument 16-0-5 9.1

MISRA.EXPANSION.UNSAFE

Unsafe macro usage 17-0-5 18-0-1 18-2-1 18-7-1 19-3-1 9.1 9.5

MISRA.EXPR.COND.NOT_BOOLEAN

First operand of conditional expression is not a boolean expression 5-0-14 9.1

MISRA.EXPR.PARENS.INSUFFICIENT

Limited dependence required for operator precedence rules in expressions 5-0-2 10.1.2 2022.1

MISRA.EXPR.PARENS.REDUNDANT

Limited dependence required for operator precedence rules in expressions 5-0-2 10.1.2 11.2, 2021.1

MISRA.FIELD.BIT.ENUM

Bit-field has enum type. 9-6-3 9.1

MISRA.FLOAT.BIT.REPR

Use of bit manipulations of floating-point values which rely on storage layout 3-9-3 9.1 9.2 SR2, 11.0

MISRA.FLOAT_EQUAL

Floating point expression is tested for equality 6-2-2 9.1 2020.2

MISRA.FOR.COND.CHANGE

For loop counter is modified within the loop condition section 6-5-3 9.1 9.2

MISRA.FOR.COND.EQ

++ or -- operations are not used to change loop counter, but condition tests loop counter for equality 6-5-2 9.1

MISRA.FOR.COUNTER.FLT

For loop counter has a floating point type 6-5-1 9.2

MISRA.FOR.COUNTER.MANY

Many counters in a for loop 6-5-1 9.2

MISRA.FOR.INCR

For loop counter is modified in an inappropriate way 6-5-4 9.1

MISRA.FOR.LOOP_CONTROL.CHANGE.COND

Loop control variable is modified in condition section of a for loop 6-5-5 9.2

MISRA.FOR.LOOP_CONTROL.CHANGE.EXPR

Loop control variable is modified in expression section of a for loop 6-5-5 9.2

MISRA.FOR.LOOP_CONTROL.NOT_BOOLEAN

Loop control variable is not boolean 6-5-6 9.1

MISRA.FOR.STMT.CHANGE

For loop counter is modified within the loop statement 6-5-3 9.2

MISRA.FUNC.ADDR

Address of a function is used without & operator 8-4-4 9.1 9.2 SR1

MISRA.FUNC.ARRAY.PARAMS

Function argument with array type decay to a pointer 5-2-12 9.1

MISRA.FUNC.DECL.AFTERUSE

Function chosen by overload resolution when instantiating a template is declared after its usage 14-6-2 9.2 2020.4

MISRA.FUNC.PARAMS.IDENT

Identifiers used in declaration and definition of function are not identical 8-4-2 9.2

MISRA.FUNC.RECUR

Recursive function 7-5-4 9.1 9.2, 9.2 SR1

MISRA.FUNC.SPEC.NOTSPEC

Viable function set for a function call contains both specializations and non-specializations 14-8-2 9.2

MISRA.FUNC.SPEC.OVRLD

Viable function set for a function call contains an overloaded template and its explicit specialization 14-8-1 9.2

MISRA.FUNC.STATIC.REDECL

Function or object redeclaration does not include 'static' modifier 3-3-2 9.2

MISRA.FUNC.UNUSEDPAR

Formal parameter of a non-virtual function is not used 0-1-11 9.2 9.2 SR2, 2017

MISRA.FUNC.UNUSEDPAR.UNNAMED

Unnamed formal parameter of a non-virtual function is not used 0-1-11 9.2 9.2 SR1

MISRA.FUNC.UNUSEDRET

Return value of a non-void function is not used 0-1-7 9.2

MISRA.FUNC.VARARG

Function with variable number of arguments 8-4-1 9.1

MISRA.FUNC.VIRTUAL.UNUSEDPAR

Formal parameter of a virtual function set is not used 0-1-12 9.2 9.2 SR1

MISRA.FUNC_CAST

Functional notation cast different from explicit constructor call 5-2-4 9.2 2020.2

MISRA.GENFU.ASSOC

Generic function is declared in an associated namespace 14-5-1 9.2

MISRA.GOTO.AFTER.LABEL

Unconstrained use of goto 6-6-2 9.1

MISRA.GOTO.NESTED

Goto to a label declared in a nested compound statement 6-6-1 9.1 9.2

MISRA.IF.DEFINED

Incorrect 'defined' usage in #if directive 16-1-1 9.1

MISRA.IF.NO_COMPOUND

The body of if/else statement is not a compound statement 6-4-1 9.1

MISRA.IF.NO_ELSE

A chain of if/else-if statements is not terminated with else or is terminated with an empty else clause 6-4-2 9.1 10.4, 2018.1, 2020.4

MISRA.IF.UNDEF

Undefined macros in #if directive 16-0-7 9.1

MISRA.IF.WRAPAROUND

Wrap-around in #if directive 5-19-1 9.1

MISRA.INCGUARD

Include guard is not provided 16-2-3 9.1

MISRA.INCL.BAD

Non-standard include directive 16-2-6 9.1 9.2, 11.1

MISRA.INCL.INSIDE

Include directive preceded by a preprocessor output token 16-0-1 9.1

MISRA.INCL.SYMS

Non-standard characters in header file names 16-2-4 16-2-5 9.1

MISRA.INCL.UNSAFE

Unsafe header inclusion 18-0-2 18-0-4 18-7-1 27-0-1 9.1

MISRA.INCR_DECR.OTHER

Increment or decrement operator is mixed with other operators in expression 5-2-10 9.1 9.2

MISRA.INIT.BRACES

Incorrect initializer braces placement. 8-5-2 9.1

MISRA.ITER.ONETERM

Iteration statement has more than one break or goto for loop termination. 6-6-4 9.1

MISRA.LINKAGE.EXTERN

Object or function declaration with external linkage not in header file 3-3-1 9.1 9.2

MISRA.LITERAL.NULL.INT

NULL used as an integer value. 4-10-1 9.1 11.1, 2020.1

MISRA.LITERAL.NULL.PTR

Literal zero used as the null-pointer-constant. 4-10-2 9.1 11.1

MISRA.LITERAL.SUFFIX.CASE

Literal suffix in lower case. 2-13-4 9.1 9.2 SR1, 9.5

MISRA.LITERAL.UNSIGNED.SUFFIX

Unsigned integer literal without 'U' suffix 2-13-3 9.1 9.5, 2021.3

MISRA.LOGIC.NOT_BOOL

Operand of logical operation is not boolean 5-3-1 9.1 9.2 SR1, 9.5, 2021.1, 2021.2

MISRA.LOGIC.OPERATOR.NOT_BOOL

Operand of non-logical operator is effectively boolean 4-5-1 9.1 (for C), 9.2 SR1 (for C++) 11.2

MISRA.LOGIC.POSTFIX

Operand in a logical 'and' or 'or' expression is not a postfix expression 5-2-1 9.2 9.2 SR1, 9.2 SR2, 9.5

MISRA.LOGIC.SIDEEFF

Right operand in a logical 'and' or 'or' expression contains side effects 5-14-1 9.2 10.4

MISRA.MEMB.NON_CONST

Non-const member function does not change any member variables 9-3-3 9.1 9.2, 9.2 SR1, 9.2 SR2, 9.5. 2020.1

MISRA.MEMB.NON_STATIC

Non-static member function does not use other non-static members of the same class 9-3-3 9.1 9.2, 9.2 SR1, 9.5

MISRA.MEMB.NOT_PRIVATE

Member variable in non-POD class is not private 11-0-1 9.1

MISRA.NAMESPACE.DECL

Using-declaration in header file 7-3-6 9.1

MISRA.NAMESPACE.DIR

Using-directive in header file 7-3-6 9.1

MISRA.NAMESPACE.UNMD

Unnamed namespace in header file 7-3-3 9.1

MISRA.NS.GLOBAL

Function, variable or type declaration in global namespace 7-3-1 9.1 2021.1

MISRA.NS.GLOBAL.USING

Using directive or declaration in global namespace 7-3-1 10.1

MISRA.NS.MAIN

Non-global function with name 'main' is defined 7-3-2 9.1 9.2

MISRA.NS.USING.HEADER

Using directive or declaration is used in a header file 7-3-6 9.1

MISRA.NS.USING_DECL

Multiple declarations for an identifier in the same namespace should not straddle a using-declaration for that identifier 7-3-5 9.2

MISRA.NS.USING_DIR

Using directive 7-3-4 9.1 9.2

MISRA.NULL.STMT

Null statement is not the only statement on line or comments are placed incorrectly 6-2-3 9.1 9.2

MISRA.OBJ.TYPE.COMPAT

Type not compatible with type of other declaration 3-2-1 9.1 11.0

MISRA.OBJ.TYPE.IDENT

Type not identical with type of other declaration 3-9-1 9.1 9.2

MISRA.ONEDEFRULE.FUNC

Global function definition in a header file 3-1-1 9.1

MISRA.ONEDEFRULE.VAR

Global variable definition in a header file 3-1-1 9.1 2020.2

MISRA.PPARAM.NEEDS.CONST

Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const 7-1-2 9.1 9.2 SR1, 9.5, 10.4

MISRA.PRAGMA

Non-documented pragma directive 16-6-1 9.1

MISRA.PRAGMA.ASM

Incorrect assembler instruction 7-4-2 9.1

MISRA.PTR.ARITH

Pointer is used in arithmetic or array index expression 5-0-15 9.1 2020.2

MISRA.PTR.ARITH.NOT_SAME.2008

A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand 5-0-16 2020.2

MISRA.PTR.CMP.2008

Pointer comparison using comparison operators shall only be applied if pointing to same array and within the range 5-0-18 2022.1

MISRA.PTR.CMP.OBJECT.2008

Pointer comparison using comparison operators shall only be applied if pointing to same object and within the range 5-0-18 2022.1

MISRA.PTR.TO_PTR_TO_PTR

Pointer declaration has more than two levels of indirection 5-0-19 9.1 9.2

MISRA.PUREVIRT.OVRD

Pure virtual function overrides a non pure virtual function 10-3-3 9.2

MISRA.RET.REF.NON_CONST

Member function returns non-const handle to member variable 9-3-2 9.1 9.2

MISRA.RETURN.NOT_LAST

Return is not the last statement in a function 6-6-5 9.1 9.2 SR2, 9.5

MISRA.SAME.DEFPARAMS

Overriding virtual function and the function it overrides have different default arguments 8-3-1 9.1

MISRA.SHIFT.RANGE

Right operand of shift operation is out of range - greater or equal to max bit-length of left operand, or negative 5-8-1 9.1 9.2

MISRA.SIGNED_CHAR.NOT_NUMERIC

'signed char' or 'unsigned char' is used for non-numeric value 5-0-12 9.1 9.2

MISRA.SIZEOF.SIDE_EFFECT

Operand of sizeof has side effects 5-3-4 9.1

MISRA.SPEC.ILL

Explicit instantiation of a template makes the code ill-formed 14-7-2 9.2

MISRA.SPEC.SAMEFILE

Template specialization and its primary template are declared in different files 14-7-3 9.2 11.0

MISRA.STDLIB.ABORT

Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h 18-0-3 9.1

MISRA.STDLIB.ATOI

Use of 'atof', 'atoi' or 'atol' from library stdlib.h 18-0-2 9.1

MISRA.STDLIB.CSTRING

Function from 'cstring' library is used 18-0-5 9.2

MISRA.STDLIB.CSTRING.MACRO

Macro from 'cstring' library is used 18-0-5 9.2

MISRA.STDLIB.ERRNO

Use of error indicator 'errno' 19-3-1 9.1

MISRA.STDLIB.LONGJMP

Use of setjmp macro or longjmp function 17-0-5 9.1

MISRA.STDLIB.MEMORY

Use of dynamic heap memory allocation 18-4-1 9.1

MISRA.STDLIB.SIGNAL

Use of the signal handling facilities of signal.h 18-7-1 9.1

MISRA.STDLIB.STDIO

Use of input/output library stdio.h in production code 27-0-1 9.1

MISRA.STDLIB.TIME

Use of the time handling functions of library time.h 18-0-4 9.1

MISRA.STDLIB.WRONGNAME

Reused name of standard library macro, object or function 17-0-3 9.1 9.2 SR2

MISRA.STDLIB.WRONGNAME.UNDERSCORE

Usage of a reserved name for naming a language entity 17-0-3 9.2 SR2

MISRA.STMT.COND.NOT_BOOLEAN

Condition of if or loop statement is not a boolean expression 5-0-13 9.1 9.5

MISRA.STMT.NO_COMPOUND

The body of switch, while, do/while or for statement is not a compound statement 6-3-1 9.1

MISRA.STRINGS.CONCAT

Narrow and wide string literals concatenated 2-13-5 9.1

MISRA.SWITCH.BOOL

Condition of switch statement is boolean expression 6-4-7 9.1

MISRA.SWITCH.LABEL

A switch label belongs to nested compound statement inside switch body 6-4-4 9.1

MISRA.SWITCH.NODEFAULT

No default clause at the end of a switch statement 6-4-6 9.2 9.2 SR1

MISRA.SWITCH.NOT_WELL_FORMED

Switch statement is not well-formed 6-4-3 9.1 9.2

MISRA.SWITCH.NO_BREAK

No break or throw statement at the end of switch-clause 6-4-5 9.1 9.2

MISRA.SWITCH.NO_CASE

No case-clause in a switch statement 6-4-8 9.1 9.2

MISRA.TEMPLMEM.NOQUAL

In an instantiated template a member declared in a dependant base is used without a qualificator or 'this' 14-6-1 9.2

MISRA.TERMINATE

terminate() function is called explicitly 15-5-3 9.1

MISRA.THROW.EMPTY

Empty throw expression does not belong to a catch block 15-1-3 9.1

MISRA.THROW.NULL

NULL is thrown explicitly 15-1-2 9.1

MISRA.THROW.PTR

Exception object is a pointer 15-0-2 9.1

MISRA.TOKEN.BADCOM

Inappropriate character sequence in a comment 2-7-1 9.1

MISRA.TOKEN.OCTAL.ESCAPE

Usage of octal escape sequences 2-13-2 9.1

MISRA.TOKEN.OCTAL.INT

Usage of octal integer constants 2-13-2 9.1 2020.4

MISRA.TOKEN.WRONGESC

Incorrect escape sequence in a literal 2-13-1 9.1

MISRA.TRY.JUMP

Control can be transferred into a try block with goto or switch statement 15-0-3 9.1 10.1 SR1

MISRA.TYPE.NAMECLASH.CPP.2008

Identifier in one name space has same spelling as identifier in other name space 2-10-6 9.1 9.2, 9.2 SR2, 9.5, 2020.2

MISRA.TYPEDEF.NOT_UNIQUE

Typedef name is used for another entity 2-10-3 9.1 9.2, 9.5

MISRA.UMINUS.UNSIGNED

Operand of unary minus is unsigned 5-3-2 9.1 2021.2

MISRA.UNDEF

Undef usage 16-0-3 9.1

MISRA.UNDEF.NOTGLOBAL

Undef not at the global level 16-0-2 9.1

MISRA.UNDEF.WRONGNAME

Undefinition of a name from the standard library 17-0-2 9.1 9.5

MISRA.UNDEF.WRONGNAME.UNDERSCORE

Undefinition of a reserved name 17-0-2 9.2 SR2

MISRA.UNION

Union is used 9-5-1 9.1

MISRA.UN_OP.OVERLOAD

Unary & operator is overloaded 5-3-3 9.1 11.0

MISRA.USE.DEFINE

Non-guarding macro definition 16-2-1 9.1

MISRA.USE.EXPANSION

Macro expansion 16-2-1 9.1 2022.1

MISRA.USE.UNKNOWNDIR

Unknown preprocessor directive is used 16-0-8 9.1 11.3

MISRA.USE.WRONGDIR

Improper preprocessor directive 16-2-1 9.1

MISRA.VAR.HIDDEN

Identifier declared in an inner scope hides identifier in outer scope 2-10-2 9.2 9.2 SR1, 9.5, 10.1, 2020.2

MISRA.VAR.MIN.VIS

Name visibility is too wide 3-4-1 9.1 9.2 SR2, 10.1. 2020.1

MISRA.VAR.NEEDS.CONST

Variable is not modified but is declared without const qualifier 7-1-1 9.1 9.2 SR1, 9.2 SR2, 11.3, 2018.2, 2020.1

MISRA.VAR.UNIQUE.STATIC

Identifier with static storage specifier clashes with other identifier 2-10-5 9.2

MISRA.VIRTUAL.BASE.DIAMOND

Base class is used as virtual not in diamond hierarchy 10-1-2 9.2

MISRA.VIRTUAL.NOVIRTUAL

Overriding virtual function declared with no 'virtual' keyword 10-3-2 9.2 9.5

PORTING.VAR.EFFECTS

Variable used twice in one expression where one usage is subject to side-effects 5-0-1 9.2 9.5

UNINIT.CTOR.MIGHT

Uninitialized Variable in Constructor - possible 8-5-1 Pre-9.2 9.2, 9.5

UNINIT.CTOR.MUST

Uninitialized Variable in Constructor 8-5-1 Pre-9.2 9.2, 9.5, 2020.1, 2021.2, 2022.1

UNINIT.HEAP.MIGHT

Uninitialized Heap Use - possible 8-5-1 Pre-9.2 9.2, 9.5

UNINIT.HEAP.MUST

Uninitialized Heap Use 8-5-1 Pre-9.2 9.2, 9.5

UNINIT.STACK.ARRAY.MIGHT

Uninitialized Array - possible 8-5-1 Pre-9.2 9.2, 9.5

UNINIT.STACK.ARRAY.MUST

Uninitialized Array 8-5-1 Pre-9.2 9.2, 9.5, 2021.2, 2021.4, 2022.1

UNINIT.STACK.ARRAY.PARTIAL.MUST

Partially Uninitialized Array 8-5-1 Pre-9.2 9.2, 9.5, 2022.1

UNINIT.STACK.MIGHT

Uninitialized Variable - possible 8-5-1 Pre-9.2 9.2, 9.5, 2018.2, 2020.2, 2022.1

UNINIT.STACK.MUST

Uninitialized Variable 8-5-1 Pre-9.2 9.2, 9.5, 11.2, 2020.3, 2021.2, 2021.4

UNREACH.ENUM

Code is unreachable due to the possible value(s) of an enum 0-1-1 2021.3

UNREACH.GEN

Unreachable code 0-1-1 Pre-9.2 9.2, 9.5, 10.1, 10.3, 10.4, 11.2, 2020.3, 2021.3

UNREACH.RETURN

Unreachable Void Return 0-1-1 Pre-9.2 9.2, 9.5, 11.2

UNUSED.FUNC.GEN

Function defined but not used 0-1-10 10.1 11.3

VA_UNUSED.GEN

Value is Never Used after Assignment 0-1-9 Pre-9.2 9.5

VA_UNUSED.INIT

Value is Never Used after Initialization 0-1-9 Pre-9.2 9.5, 11.2