MISRA C++:2008 rules mapped to Klocwork certified checkers

MISRA C++ Rule Klocwork Checker Code and Description
0-1-1

UNREACH.ENUM  Code is unreachable due to the possible value(s) of an enum

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

0-1-2

CWARN.NOEFFECT.UCMP.GE  Comparison of unsigned value against 0 is always true

CWARN.NOEFFECT.UCMP.GE.MACRO  Comparison of unsigned value against 0 within a macro is always true

CWARN.NOEFFECT.UCMP.LT  Comparison of unsigned value against 0 is always false

CWARN.NOEFFECT.UCMP.LT.MACRO  Comparison of unsigned value against 0 within a macro is always false

0-1-3

LV_UNUSED.GEN  Local variable unused

0-1-4

 Unsupported - no plans to support

0-1-5

 Unsupported - no plans to support

0-1-6

 Unsupported - no plans to support

0-1-7

MISRA.FUNC.UNUSEDRET  Return value of a non-void function is not used

0-1-8

 Unsupported - no plans to support

0-1-9

VA_UNUSED.GEN  Value is Never Used after Assignment

VA_UNUSED.INIT  Value is Never Used after Initialization

0-1-10

UNUSED.FUNC.GEN  Function defined but not used

0-1-11

MISRA.FUNC.UNUSEDPAR  Formal parameter of a non-virtual function is not used

MISRA.FUNC.UNUSEDPAR.UNNAMED  Unnamed formal parameter of a non-virtual function is not used

0-1-12

MISRA.FUNC.VIRTUAL.UNUSEDPAR  Formal parameter of a virtual function set is not used

0-2-1

MISRA.ASSIGN.OVERLAP  Object is assigned to an overlapping object

0-3-1

 Unsupported - not statically verifiable

0-3-2

 Unsupported - no plans to support

0-4-1

 Unsupported - not statically verifiable

0-4-2

 Unsupported - not statically verifiable

0-4-3

 Unsupported - not statically verifiable

1-0-1

 Unsupported - no plans to support

1-0-2

 Unsupported - not statically verifiable

1-0-3

 Unsupported - not statically verifiable

2-2-1

 Unsupported - not statically verifiable

2-3-1

MISRA.CHAR.TRIGRAPH  Trigraph usage

2-5-1

MISRA.CHAR.DIGRAPH  Digraph usage

2-7-1

MISRA.TOKEN.BADCOM  Inappropriate character sequence in a comment

2-7-2

 Unsupported - no plans to support

2-7-3

 Unsupported - no plans to support

2-10-1

 Unsupported - no plans to support

2-10-2

MISRA.VAR.HIDDEN  Identifier declared in an inner scope hides identifier in outer scope

2-10-3

MISRA.TYPEDEF.NOT_UNIQUE  Typedef name is used for another entity

2-10-4

MISRA.CT.UNIQUE.ID  Identifier clashes with tag name

2-10-5

MISRA.VAR.UNIQUE.STATIC  Identifier with static storage specifier clashes with other identifier

2-10-6

MISRA.TYPE.NAMECLASH.CPP.2008  Identifier in one name space has same spelling as identifier in other name space

2-13-1

MISRA.TOKEN.WRONGESC  Incorrect escape sequence in a literal

2-13-2

MISRA.TOKEN.OCTAL.ESCAPE  Usage of octal escape sequences

MISRA.TOKEN.OCTAL.INT  Usage of octal integer constants

2-13-3

MISRA.LITERAL.UNSIGNED.SUFFIX  Unsigned integer literal without 'U' suffix

2-13-4

MISRA.LITERAL.SUFFIX.CASE  Literal suffix in lower case.

2-13-5

MISRA.STRINGS.CONCAT  Narrow and wide string literals concatenated

3-1-1

MISRA.ONEDEFRULE.FUNC  Global function definition in a header file

MISRA.ONEDEFRULE.VAR  Global variable definition in a header file

3-1-2

MISRA.DECL.FUNC_LOCAL  Function is declared locally

3-1-3

MISRA.DECL.ARRAY_SIZE  Declaration of array with unknown size

3-2-1

MISRA.OBJ.TYPE.COMPAT  Type not compatible with type of other declaration

3-2-2

 Unsupported - no plans to support

3-2-3

 Unsupported - no plans to support

3-2-4

 Unsupported - no plans to support

3-3-1

MISRA.LINKAGE.EXTERN  Object or function declaration with external linkage not in header file

3-3-2

MISRA.FUNC.STATIC.REDECL  Function or object redeclaration does not include 'static' modifier

3-4-1

MISRA.VAR.MIN.VIS  Name visibility is too wide

3-9-1

MISRA.OBJ.TYPE.IDENT  Type not identical with type of other declaration

3-9-2

MISRA.BUILTIN_NUMERIC  Builtin numeric type is used

3-9-3

MISRA.FLOAT.BIT.REPR  Use of bit manipulations of floating-point values which rely on storage layout

4-5-1

MISRA.LOGIC.OPERATOR.NOT_BOOL  Operand of non-logical operator is effectively boolean

4-5-2

MISRA.ENUM.OPERAND  Expression of enum type is used in arithmetic context

4-5-3

MISRA.CHAR.OPERAND  Expression of type 'char' or 'wchar_t' is used as non-character operand

4-10-1

MISRA.LITERAL.NULL.INT  NULL used as an integer value.

4-10-2

MISRA.LITERAL.NULL.PTR  Literal zero used as the null-pointer-constant.

5-0-1

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

5-0-2

MISRA.EXPR.PARENS.INSUFFICIENT  Limited dependence required for operator precedence rules in expressions

MISRA.EXPR.PARENS.REDUNDANT  Limited dependence required for operator precedence rules in expressions

5-0-3

MISRA.CVALUE.IMPL.CAST.CPP  The value of an expression implicitly converted to a different type

5-0-4

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

5-0-5

MISRA.CONV.FLOAT  Implicit floating-point conversion

5-0-6

MISRA.CONV.NUM.NARROWER  Implicit numeric conversion to narrower type

5-0-7

MISRA.CAST.FLOAT_INT  Cast of floating point expression to integral type

MISRA.CAST.INT_FLOAT  Cast of integral expression to floating point type

5-0-8

MISRA.CAST.FLOAT.WIDER  Cast of floating point expression to a wider floating point type

MISRA.CAST.INT.WIDER  Cast of integral expression to a wider integral type

5-0-9

MISRA.CAST.INT.SIGN  Non-trivial integral expression is cast to type with different signedness

5-0-10

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

5-0-11

MISRA.CHAR.NOT_CHARACTER  'char' is used for non-character value

5-0-12

MISRA.SIGNED_CHAR.NOT_NUMERIC  'signed char' or 'unsigned char' is used for non-numeric value

5-0-13

MISRA.STMT.COND.NOT_BOOLEAN  Condition of if or loop statement is not a boolean expression

5-0-14

MISRA.EXPR.COND.NOT_BOOLEAN  First operand of conditional expression is not a boolean expression

5-0-15

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

5-0-16

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

 Unsupported - no plans to support

5-0-17

 Unsupported - no plans to support

5-0-18

MISRA.PTR.CMP.2008  Pointer comparison using comparison operators shall only be applied if pointing to same array and within the range

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

 Unsupported - no plans to support

5-0-19

MISRA.PTR.TO_PTR_TO_PTR  Pointer declaration has more than two levels of indirection

5-0-20

MISRA.BITS.OPERAND  Operands of bitwise operation have different underlying types

5-0-21

MISRA.BITS.NOT_UNSIGNED  Operand of bitwise operation is not unsigned integer

MISRA.BITS.NOT_UNSIGNED.PREP  Operand of bitwise operation is not unsigned integer

5-2-1

MISRA.LOGIC.POSTFIX  Operand in a logical 'and' or 'or' expression is not a postfix expression

5-2-2

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-3

MISRA.CAST.POLY.TYPE  Cast from a polymorphic base class to a derived class

5-2-4

MISRA.C_CAST  C-style cast to non-void type

MISRA.FUNC_CAST  Functional notation cast different from explicit constructor call

5-2-5

MISRA.CAST.CONST  Cast operation removes const or volatile modifier from a pointer or reference

5-2-6

MISRA.CAST.FUNC_PTR.CPP  Cast converts function pointer to other pointer type

5-2-7

MISRA.CAST.PTR.UNRELATED  Object of pointer type cast to unrelated type

5-2-8

MISRA.CAST.INT_TO_PTR  Object with integer type or pointer to void cast to pointer type

5-2-9

MISRA.CAST.PTR_TO_INT  Cast between a pointer and an integral type

5-2-10

MISRA.INCR_DECR.OTHER  Increment or decrement operator is mixed with other operators in expression

5-2-11

MISRA.BIN_OP.OVERLOAD  Comma, || or && operator overloaded

5-2-12

MISRA.FUNC.ARRAY.PARAMS  Function argument with array type decay to a pointer

5-3-1

MISRA.LOGIC.NOT_BOOL  Operand of logical operation is not boolean

5-3-2

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

5-3-3

MISRA.UN_OP.OVERLOAD  Unary & operator is overloaded

5-3-4

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

5-8-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-14-1

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

5-17-1

 Unsupported - not statically verifiable

5-18-1

MISRA.COMMA  Comma operator is used

5-19-1

MISRA.COMP.WRAPAROUND  Wrap-around in a condition

MISRA.ELIF.WRAPAROUND  Wrap-around in #elif directive

MISRA.IF.WRAPAROUND  Wrap-around in #if directive

6-2-1

MISRA.ASSIGN.COND  Assignment operator is used in a condition

MISRA.ASSIGN.SUBEXPR  Assignment operator is used in a sub-expression outside a condition

6-2-2

MISRA.FLOAT_EQUAL  Floating point expression is tested for equality

6-2-3

MISRA.NULL.STMT  Null statement is not the only statement on line or comments are placed incorrectly

6-3-1

MISRA.STMT.NO_COMPOUND  The body of switch, while, do/while or for statement is not a compound statement

6-4-1

MISRA.IF.NO_COMPOUND  The body of if/else statement is not a compound statement

6-4-2

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-3

MISRA.SWITCH.NOT_WELL_FORMED  Switch statement is not well-formed

6-4-4

MISRA.SWITCH.LABEL  A switch label belongs to nested compound statement inside switch body

6-4-5

MISRA.SWITCH.NO_BREAK  No break or throw statement at the end of switch-clause

6-4-6

MISRA.SWITCH.NODEFAULT  No default clause at the end of a switch statement

6-4-7

MISRA.SWITCH.BOOL  Condition of switch statement is boolean expression

6-4-8

MISRA.SWITCH.NO_CASE  No case-clause in a switch statement

6-5-1

MISRA.FOR.COUNTER.FLT  For loop counter has a floating point type

MISRA.FOR.COUNTER.MANY  Many counters in a for loop

6-5-2

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

6-5-3

MISRA.FOR.COND.CHANGE  For loop counter is modified within the loop condition section

MISRA.FOR.STMT.CHANGE  For loop counter is modified within the loop statement

6-5-4

MISRA.FOR.INCR  For loop counter is modified in an inappropriate way

6-5-5

MISRA.FOR.LOOP_CONTROL.CHANGE.COND  Loop control variable is modified in condition section of a for loop

MISRA.FOR.LOOP_CONTROL.CHANGE.EXPR  Loop control variable is modified in expression section of a for loop

6-5-6

MISRA.FOR.LOOP_CONTROL.NOT_BOOLEAN  Loop control variable is not boolean

6-6-1

MISRA.GOTO.NESTED  Goto to a label declared in a nested compound statement

6-6-2

MISRA.GOTO.AFTER.LABEL  Unconstrained use of goto

6-6-3

MISRA.CONTINUE.ILL  Continue statement is used in an ill-formed for loop

6-6-4

MISRA.ITER.ONETERM  Iteration statement has more than one break or goto for loop termination.

6-6-5

MISRA.RETURN.NOT_LAST  Return is not the last statement in a function

7-1-1

MISRA.VAR.NEEDS.CONST  Variable is not modified but is declared without const qualifier

7-1-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-2-1

 Unsupported - no plans to support

7-3-1

MISRA.NS.GLOBAL  Function, variable or type declaration in global namespace

MISRA.NS.GLOBAL.USING  Using directive or declaration in global namespace

7-3-2

MISRA.NS.MAIN  Non-global function with name 'main' is defined

7-3-3

MISRA.NAMESPACE.UNMD  Unnamed namespace in header file

7-3-4

MISRA.NS.USING_DIR  Using directive

7-3-5

MISRA.NS.USING_DECL  Multiple declarations for an identifier in the same namespace should not straddle a using-declaration for that identifier

7-3-6

MISRA.NAMESPACE.DECL  Using-declaration in header file

MISRA.NAMESPACE.DIR  Using-directive in header file

MISRA.NS.USING.HEADER  Using directive or declaration is used in a header file

7-4-1

 Unsupported - not statically verifiable

7-4-2

MISRA.PRAGMA.ASM  Incorrect assembler instruction

7-4-3

MISRA.ASM.ENCAPS  Assembly language is not isolated.

7-5-1

LOCRET.RET  Function returns address of local variable

7-5-2

LOCRET.ARG  Function returns address of local variable

LOCRET.GLOB  Function returns address of local variable

7-5-3

MISRA.ADDR.REF.PARAM  Function returns reference to parameter passed by reference

MISRA.ADDR.REF.PARAM.PTR  Function returns address of parameter passed by reference

7-5-4

MISRA.FUNC.RECUR  Recursive function

8-0-1

MISRA.DECL.MANY_DCLS  More than one declarator in one declaration

8-3-1

MISRA.SAME.DEFPARAMS  Overriding virtual function and the function it overrides have different default arguments

8-4-1

MISRA.FUNC.VARARG  Function with variable number of arguments

8-4-2

MISRA.FUNC.PARAMS.IDENT  Identifiers used in declaration and definition of function are not identical

8-4-3

FUNCRET.GEN  Non-void function does not return value

8-4-4

MISRA.FUNC.ADDR  Address of a function is used without & operator

8-5-1

UNINIT.CTOR.MIGHT  Uninitialized Variable in Constructor - possible

UNINIT.CTOR.MUST  Uninitialized Variable in Constructor

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MUST  Uninitialized Variable

8-5-2

MISRA.INIT.BRACES  Incorrect initializer braces placement.

8-5-3

MISRA.ENUM.INIT  Non-first enumerator is explicitly initialized, but not all elements are explicitly initialized.

9-3-1

MISRA.CONST.RET.NON_CONST  Constant member function returns non-const pointer to member variable

9-3-2

MISRA.RET.REF.NON_CONST  Member function returns non-const handle to member variable

9-3-3

MISRA.MEMB.NON_CONST  Non-const member function does not change any member variables

MISRA.MEMB.NON_STATIC  Non-static member function does not use other non-static members of the same class

9-5-1

MISRA.UNION  Union is used

9-6-1

 Unsupported - not statically verifiable

9-6-2

MISRA.BITFIELD.TYPE.CPP  Type of bit-field is neither bool, nor signed/unsigned integer

9-6-3

MISRA.FIELD.BIT.ENUM  Bit-field has enum type.

9-6-4

MISRA.BITFIELD.SIGNED  Length of a named signed bit-field is less than 2

10-1-1

MISRA.DERIVE.VIRTUAL  Class is derived from virtual base

10-1-2

MISRA.VIRTUAL.BASE.DIAMOND  Base class is used as virtual not in diamond hierarchy

10-1-3

MISRA.BASE.VIRTUAL.NOTVIRTUAL  Base class is used as both virtual and not virtual in inheritance hierarchy

10-2-1

MISRA.BASE.IDS.UNIQUE  Member name is used twice in inheritance hierarchy

10-3-1

MISRA.BASE.MANYDEFS  Both overriding and overridden virtual functions have definitions

10-3-2

MISRA.VIRTUAL.NOVIRTUAL  Overriding virtual function declared with no 'virtual' keyword

10-3-3

MISRA.PUREVIRT.OVRD  Pure virtual function overrides a non pure virtual function

11-0-1

MISRA.MEMB.NOT_PRIVATE  Member variable in non-POD class is not private

12-1-1

MISRA.CTOR.DYNAMIC  Object's dynamic type is used from the body of its constructor

MISRA.DTOR.DYNAMIC  Object's dynamic type is used from the body of its destructor

12-1-2

MISRA.CTOR.BASE  Constructor does not explicitly call constructor of its base class

12-1-3

MISRA.CTOR.NOT_EXPLICIT  Constructor with one argument of built-in type is not declared 'explicit'

12-8-1

 Unsupported - no plans to support

12-8-2

MISRA.COPYASSIGN.ABSTRACT  Copy assignment should be declared protected or private in an abstract class

14-5-1

MISRA.GENFU.ASSOC  Generic function is declared in an associated namespace

14-5-2

MISRA.COPY.CSTR.TMPL  Class has a template constructor with a single generic parameter, but has no copy constructor defined

14-5-3

MISRA.COPYASSIGN.TMPL  A copy ssignment operator should be defined when class has a template copy assignment operator with a single generic parameter

14-6-1

MISRA.TEMPLMEM.NOQUAL  In an instantiated template a member declared in a dependant base is used without a qualificator or 'this'

14-6-2

MISRA.FUNC.DECL.AFTERUSE  Function chosen by overload resolution when instantiating a template is declared after its usage

14-7-1

 Unsupported - no plans to support

14-7-2

MISRA.SPEC.ILL  Explicit instantiation of a template makes the code ill-formed

14-7-3

MISRA.SPEC.SAMEFILE  Template specialization and its primary template are declared in different files

14-8-1

MISRA.FUNC.SPEC.OVRLD  Viable function set for a function call contains an overloaded template and its explicit specialization

14-8-2

MISRA.FUNC.SPEC.NOTSPEC  Viable function set for a function call contains both specializations and non-specializations

15-0-1

 Unsupported - not statically verifiable

15-0-2

MISRA.THROW.PTR  Exception object is a pointer

15-0-3

MISRA.TRY.JUMP  Control can be transferred into a try block with goto or switch statement

15-1-1

 Unsupported - no plans to support

15-1-2

MISRA.THROW.NULL  NULL is thrown explicitly

15-1-3

MISRA.THROW.EMPTY  Empty throw expression does not belong to a catch block

15-3-1

 Unsupported - no plans to support

15-3-2

MISRA.CATCH.ALL  No ellipsis exception handler in a try-catch block

15-3-3

MISRA.CTOR.TRY.NON_STATIC  Function try/catch block of constructor or destructor references non-static members

15-3-4

 Unsupported - no plans to support

15-3-5

MISRA.CATCH.BY_VALUE  Exception object of class type is caught by value

15-3-6

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-7

MISRA.CATCH.NOALL  Ellipsis exception handler is not the last one in a try-catch block

15-4-1

MISRA.DECL.EXCPT.SPEC  Function is declared with different exception specifications

15-5-1

MISRA.DTOR.THROW  Throw in destructor

15-5-2

 Unsupported - no plans to support

15-5-3

MISRA.TERMINATE  terminate() function is called explicitly

16-0-1

MISRA.INCL.INSIDE  Include directive preceded by a preprocessor output token

16-0-2

MISRA.DEFINE.NOTGLOBAL  Define not at the global level

MISRA.UNDEF.NOTGLOBAL  Undef not at the global level

16-0-3

MISRA.UNDEF  Undef usage

16-0-4

MISRA.DEFINE.FUNC  Function-like macro definition

16-0-5

MISRA.EXPANSION.DIRECTIVE  Directive-like tokens within a macro argument

16-0-6

MISRA.DEFINE.NOPARS  Macro parameter with no parentheses

16-0-7

MISRA.ELIF.UNDEF  Undefined macros in #elif directive

MISRA.IF.UNDEF  Undefined macros in #if directive

16-0-8

MISRA.USE.UNKNOWNDIR  Unknown preprocessor directive is used

16-1-1

MISRA.ELIF.DEFINED  Incorrect 'defined' usage in #elif directive

MISRA.IF.DEFINED  Incorrect 'defined' usage in #if directive

16-1-2

MISRA.ELIF.OTHERFILE  #elif in an improper file

MISRA.ELSE.OTHERFILE  #else in an improper file

MISRA.ENDIF.OTHERFILE  #endif in an improper file

16-2-1

MISRA.USE.DEFINE  Non-guarding macro definition

MISRA.USE.EXPANSION  Macro expansion

MISRA.USE.WRONGDIR  Improper preprocessor directive

16-2-2

MISRA.DEFINE.BADEXP.CPP  Inappropriate macro expansion in a C++ source

16-2-3

MISRA.INCGUARD  Include guard is not provided

16-2-4

MISRA.INCL.SYMS  Non-standard characters in header file names

16-2-5

MISRA.INCL.SYMS  Non-standard characters in header file names

16-2-6

MISRA.INCL.BAD  Non-standard include directive

16-3-1

MISRA.DEFINE.SHARP.MANY  Several # or ## operators in a macro definition

16-3-2

MISRA.DEFINE.SHARP  # or ## operator in a macro definition

16-6-1

MISRA.PRAGMA  Non-documented pragma directive

17-0-1

MISRA.DEFINE.WRONGNAME  Usage of a name from the standard library for naming a macro

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

17-0-2

MISRA.UNDEF.WRONGNAME  Undefinition of a name from the standard library

MISRA.UNDEF.WRONGNAME.UNDERSCORE  Undefinition of a reserved name

17-0-3

MISRA.STDLIB.WRONGNAME  Reused name of standard library macro, object or function

MISRA.STDLIB.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a language entity

17-0-4

 Unsupported - not statically verifiable

17-0-5

MISRA.EXPANSION.UNSAFE  Unsafe macro usage

MISRA.STDLIB.LONGJMP  Use of setjmp macro or longjmp function

18-0-1

MISRA.EXPANSION.UNSAFE  Unsafe macro usage

18-0-2

MISRA.INCL.UNSAFE  Unsafe header inclusion

MISRA.STDLIB.ATOI  Use of 'atof', 'atoi' or 'atol' from library stdlib.h

18-0-3

MISRA.STDLIB.ABORT  Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h

18-0-4

MISRA.INCL.UNSAFE  Unsafe header inclusion

MISRA.STDLIB.TIME  Use of the time handling functions of library time.h

18-0-5

MISRA.STDLIB.CSTRING  Function from 'cstring' library is used

MISRA.STDLIB.CSTRING.MACRO  Macro from 'cstring' library is used

18-2-1

MISRA.EXPANSION.UNSAFE  Unsafe macro usage

18-4-1

MISRA.STDLIB.MEMORY  Use of dynamic heap memory allocation

18-7-1

MISRA.EXPANSION.UNSAFE  Unsafe macro usage

MISRA.INCL.UNSAFE  Unsafe header inclusion

MISRA.STDLIB.SIGNAL  Use of the signal handling facilities of signal.h

19-3-1

MISRA.EXPANSION.UNSAFE  Unsafe macro usage

MISRA.STDLIB.ERRNO  Use of error indicator 'errno'

27-0-1

MISRA.INCL.UNSAFE  Unsafe header inclusion

MISRA.STDLIB.STDIO  Use of input/output library stdio.h in production code

Support Summary

Total supported: 193

Total of not statically verifiable rules: 14

Total of statically verifiable rules not supported: 22

MISRA C++ coverage: 90% (excludes rules that are not statically verifiable)