MISRA-C:1998 Compliance Matrix

In this section you will find a description of all MISRA (The Motor Industry Software Reliability Association) rules. Due to copyright limitations, we have altered rule descriptions. The original descriptions can be found in Guidelines for The Use of The C Language in Vehicle Based Software, April 1998, The Motor Industry Software Reliability Association, Watling Street, Nuneaton, Warwickshire CV10 OTU, www.misra.org.uk

Rules are classified by MISRA as either required (Re) or recommended (Rc). The succeeding sections list all rules along with support notes: whether the rule is fully supported (those rules are marked MISRA-C Supported Icon), supported with specified limitations (MISRA-C Partly Supported Icon), or either not statically checkable or not supported in DAC V4.0 (Square red cross icon)

Note: DAC Static Code Analysis has been designed primarily to extract symbol usage information for cross referencing purposes. Therefore, it can infer the type of an expression or some part of it only if that type is directly derived from some symbol used in it. That includes e.g. (a), a.x, *a, a+b, a[2] and excludes e.g. func(), (x)?(y):(z) and so on.

Current list of unsupported rules can also be viewed in the "Options > Static Code Analyzer".

Environment

MISRA-C Supported Icon 1 (Re)

MISRA-C Non Supported Icon 2 (Rc)
Note: Not statically checkable.

MISRA-C Supported Icon 3 (Rc)

MISRA-C Non Supported Icon 4 (Rc)
Note: Not statically checkable.

Character Sets

MISRA-C Supported Icon 5 (Re)

MISRA-C Non Supported Icon 6 (Re)
Note: Not statically checkable. ISO 10646-1 defines an international standard for mapping character sets to numeric values.

MISRA-C Supported Icon 7 (Re)

MISRA-C Supported Icon 8 (Re)

Comments

MISRA-C Supported Icon 9 (Re)

MISRA-C Non Supported Icon 10 (Rc)

Identifiers

MISRA-C Supported Icon 11 (Re)
Note: DAC analyses the source code and, of course, does not check whether a compiler/linker support 31 significant characters in identifiers.

MISRA-C Non Supported Icon 12 (Rc) x:

Types

MISRA-C Supported Icon 13 (Rc)

MISRA-C Supported Icon 14 (Re)

MISRA-C Non Supported Icon 15 (Rc)

MISRA-C Non Supported Icon 16 (Re)

MISRA-C Non Supported Icon 17 (Re)

Constants

MISRA-C Supported Icon 18 (Rc)

MISRA-C Supported Icon 19 (Re)

Declarations and Definitions

MISRA-C Supported Icon 20 (Re)

MISRA-C Supported Icon 21 (Re) x:

MISRA-C Supported Icon 22 (Rc) x

MISRA-C Supported Icon 23 (Rc) x:

MISRA-C Supported Icon 24 (Re)

MISRA-C Supported Icon 25 (Re) x:

MISRA-C Supported Icon 26 (Re) x:

MISRA-C Partly Supported Icon 27 (Rc) x:

MISRA-C Supported Icon 28 (Rc)

MISRA-C Partly Supported Icon 29 (Re)
Note: Supported in type and variable declarations. Initializers are not checked whether they match the structure declared for tag.

Initialization

MISRA-C Non Supported Icon 30 (Re)

MISRA-C Non Supported Icon 31 (Re)

MISRA-C Supported Icon 32 (Re)

Operators

MISRA-C Partly Supported Icon 33 (Re)
Note: The user-defined function call is always considered to have side effects.

MISRA-C Supported Icon 34 (Re)

MISRA-C Supported Icon 35 (Re)

MISRA-C Supported Icon 36 (Rc)

MISRA-C Partly Supported Icon 37 (Re)
See note.

MISRA-C Non Supported Icon 38 (Re)

MISRA-C Partly Supported Icon 39 (Re)

MISRA-C Partly Supported Icon 40 (Rc)
Note: The user-defined function call is always considered to have side effects.

MISRA-C Non Supported Icon 41 (Rc)

MISRA-C Supported Icon 42 (Re)

Conversions

MISRA-C Non Supported Icon 43 (Re)
Note: DAC Static Code Analysis does not give this kind of information.

MISRA-C Partly Supported Icon 44 (Rc)
See note.

MISRA-C Partly Supported Icon 45 (Re)
See note.

Expressions

MISRA-C Partly Supported Icon 46 (Re)

MISRA-C Non Supported Icon 47 (Rc)

MISRA-C Non Supported Icon 48 (Rc)

MISRA-C Supported Icon 49 (Rc)

MISRA-C Partly Supported Icon 50 (Re)
See note.

MISRA-C Non Supported Icon 51 (Rc)

Control flow

MISRA-C Non Supported Icon 52 (Re)

MISRA-C Partly Supported Icon 53 (Re)
Note: The user-defined function call is always considered to have side effects.

MISRA-C Non Supported Icon 54 (Re)

MISRA-C Supported Icon 55 (Rc)

MISRA-C Supported Icon 56 (Re)

MISRA-C Supported Icon 57 (Re)

MISRA-C Supported Icon 58 (Re)

MISRA-C Supported Icon 59 (Re)

MISRA-C Supported Icon 60 (Rc)

MISRA-C Supported Icon 61 (Re)

MISRA-C Supported Icon 62 (Re)

MISRA-C Non Supported Icon 63 (Rc)

MISRA-C Supported Icon 64 (Re)

MISRA-C Partly Supported Icon 65 (Re)
See note.

MISRA-C Non Supported Icon 66 (Rc)

MISRA-C Non Supported Icon 67 (Rc)

Functions

MISRA-C Supported Icon 68 (Re)

MISRA-C Supported Icon 69 (Re)

MISRA-C Partly Supported Icon 70 (Re)
Note: Only direct recursion is reported.

MISRA-C Non Supported Icon 71 (Re)

MISRA-C Supported Icon 72 (Re)

MISRA-C Supported Icon 73 (Re)

MISRA-C Non Supported Icon 74 (Re)

MISRA-C Supported Icon 75 (Re)

MISRA-C Supported Icon 76 (Re)

MISRA-C Non Supported Icon 77 (Re)

MISRA-C Supported Icon 78 (Re)

MISRA-C Supported Icon 79 (Re)

MISRA-C Partly Supported Icon 80 (Re)

MISRA-C Non Supported Icon 81 (Rc)

MISRA-C Supported Icon 82 (Rc)

MISRA-C Partly Supported Icon 83 (Re)
See note.

MISRA-C Supported Icon 84 (Re)

MISRA-C Supported Icon 85 (Rc)

MISRA-C Non Supported Icon 86 (Rc)

Preprocessing Directives

MISRA-C Non Supported Icon 87 (Re)

MISRA-C Supported Icon 88 (Re)

MISRA-C Supported Icon 89 (Re)

MISRA-C Non Supported Icon 90 (Re)

MISRA-C Supported Icon 91 (Re)

MISRA-C Supported Icon 92 (Rc)

MISRA-C Supported Icon 93 (Rc)

MISRA-C Supported Icon 94 (Re)

MISRA-C Supported Icon 95 (Re)

MISRA-C Supported Icon 96 (Re)

MISRA-C Supported Icon 97 (Rc)

MISRA-C Supported Icon 98 (Re)

MISRA-C Supported Icon 99 (Re)

MISRA-C Supported Icon 100 (Re)

Pointers and Arrays

MISRA-C Supported Icon 101 (Rc)

MISRA-C Supported Icon 102 (Rc)

MISRA-C Non Supported Icon 103 (Re)

MISRA-C Non Supported Icon 104 (Re)

MISRA-C Non Supported Icon 105 (Re)

MISRA-C Partly Supported Icon 106 (Re)

MISRA-C Non Supported Icon 107 (Re)
Note: Not statically checkable.

Structures and Unions

MISRA-C Supported Icon 108 (Re)

MISRA-C Supported Icon 109 (Re)

MISRA-C Supported Icon 110 (Re)

MISRA-C Supported Icon 111 (Re)

MISRA-C Non Supported Icon 112 (Re)

MISRA-C Supported Icon 113 (Re)

Standard Libraries

MISRA-C Supported Icon 114 (Re)

MISRA-C Supported Icon 115 (Re)

MISRA-C Non Supported Icon 116 (Re)
Note: DAC analyzes standard libraries headers and reports MISRA warnings for them if Options > Static Code Analyzer... / General / Warnings / Disabled for all headers and Options > Static Code Analyzer... / General / Warnings / Disabled for standard library headers are both unchecked.

MISRA-C Non Supported Icon 117 (Re) Not statically checkable.

MISRA-C Supported Icon 118 (Re)

MISRA-C Supported Icon 119 (Re)

MISRA-C Supported Icon 120 (Re)

MISRA-C Supported Icon 121 (Re)

MISRA-C Supported Icon 122 (Re)

MISRA-C Supported Icon 123 (Re)

MISRA-C Supported Icon 124 (Re)

MISRA-C Supported Icon 125 (Re)

MISRA-C Supported Icon 126 (Re)

MISRA-C Supported Icon 127 (Re)

Percentage of MISRA-C:1998 Compliance Matrix Support in DAC

Number of Rules (NoR): 127
Number of Required Rules (NoRe): 93
Number of Recommendations (NoRc): 34

Category

NoR
127

NoRe
93

NoRc
34

MISRA-C Supported Icon Fully supported

76
60%

59
64%

17
50%

MISRA-C Partly Supported Icon Supported with some limitations

16
13%

13
14%

3
9%

MISRA-C Non Supported Icon Cannot be statically checkable, or not supported

35
28%

21
23%

14
41%