Start here

Home
About Klocwork
What's new
Fixed issues
Release notes
Installation

Reference

C/C++ checkers
Java checkers
C# checkers
MISRA C 2004 checkers
MISRA C++ 2008 checkers
MISRA C 2012 checkers
MISRA C 2012 checkers with Amendment 1
Commands
Metrics
Troubleshooting
Reference

Product components

C/C++ Integration build analysis
Java Integration build analysis
Desktop analysis
Refactoring
Klocwork Static Code Analysis
Klocwork Code Review
Structure101
Tuning
Custom checkers

Coding environments

Visual Studio
Eclipse for C/C++
Eclipse for Java
IntelliJ IDEA
Other

Administration

Project configuration
Build configuration
Administration
Analysis performance
Server performance
Security/permissions
Licensing
Klocwork Static Code Analysis Web API
Klocwork Code Review Web API

Community

View help online
Visit RogueWave.com
Klocwork Support
Rogue Wave Videos

Legal

Legal information

MISRA-C++ 2008 rules mapped to Klocwork checkers

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

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 - not statically verifiable

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 - not statically verifiable

2-7-3

 Unsupported - not statically verifiable

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

2-10-5

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

2-10-6

MISRA.TYPE.NAMECLASH 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-3 required

MISRA.DECL.ARRAY_SIZE Declaration of array with unknown size

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

 Unsupported - no plans to support

5-0-17

 Unsupported - no plans to support

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 - not statically verifiable

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 no 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 Partialy 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)