MISRA Compliance ๐
MISRA C is a widely accepted model for best practices used by automotive, telecom, aerospace, medical, and other critical industries. Charisma honors all Mandatory, Required, and Advisory rules defined by MISRA C:2012 and its amendments.
Conformance to most MISRA rules is verified with static analysis tools. If you believe there is a MISRA violation and/or an inaccuracy in the compliance table, then please report it here.
Compliance Summary Table ๐
The MISRA C:2012 rule texts cannot be freely distributed therefore the compliance summary table lists the rule number, but omits the description. It is assumed the reader has access to the MISRA C:2012 standard and can cross-reference the rule numbers with the standard.
Click here to view a tool-generated MISRA compliance summary table.
Implementation ๐
| Directive
|
Category
|
Compliance
|
| D1.1
|
Required
|
Compliant (manually verified)
|
Compilation and Build ๐
| Directive
|
Category
|
Compliance
|
| D2.1
|
Required
|
Compliant (verified with GCC, Clang, and MSVC)
|
Requirements Traceability ๐
| Directive
|
Category
|
Compliance
|
| D3.1
|
Required
|
Compliant (manually verified)
|
Code Design ๐
| Directive
|
Category
|
Compliance
|
| D4.1
|
Required
|
Compliant (manually verified)
|
| D4.2
|
Advisory
|
Compliant (manually verified)
|
| D4.3
|
Required
|
Compliant
|
| D4.4
|
Advisory
|
Compliant
|
| D4.5
|
Advisory
|
Compliant
|
| D4.6
|
Advisory
|
Compliant
|
| D4.7
|
Required
|
Compliant (manually verified)
|
| D4.8
|
Advisory
|
Compliant (manually verified)
|
| D4.9
|
Advisory
|
Compliant
|
| D4.10
|
Required
|
Compliant (manually verified)
|
| D4.11
|
Required
|
Compliant (verified by unit tests)
|
| D4.12
|
Required
|
Compliant (manually verified)
|
| D4.13
|
Advisory
|
Compliant (manually verified)
|
Standard C Environment ๐
| Rule
|
Category
|
Compliance
|
| 1.1
|
Required
|
Compliant
|
| 1.2
|
Advisory
|
Compliant
|
| 1.3
|
Required
|
Compliant
|
| 1.4
|
Required
|
Compliant
|
| 1.5
|
Required
|
Compliant
|
Unused Code ๐
| Rule
|
Category
|
Compliance
|
| 2.1
|
Required
|
Compliant
|
| 2.2
|
Required
|
Compliant
|
| 2.3
|
Advisory
|
Compliant
|
| 2.4
|
Advisory
|
Compliant
|
| 2.5
|
Advisory
|
Compliant
|
| 2.6
|
Advisory
|
Compliant
|
| 2.7
|
Advisory
|
Compliant
|
| 2.8
|
Advisory
|
Compliant
|
Comments ๐
| Rule
|
Category
|
Compliance
|
| 3.1
|
Required
|
Compliant
|
| 3.2
|
Required
|
Compliant
|
Character Sets and Lexical Conventions ๐
| Rule
|
Category
|
Compliance
|
| 4.1
|
Required
|
Compliant
|
| 4.2
|
Advisory
|
Compliant
|
Identifiers ๐
| Rule
|
Category
|
Compliance
|
| 5.1
|
Required
|
Compliant
|
| 5.2
|
Required
|
Compliant
|
| 5.3
|
Required
|
Compliant
|
| 5.4
|
Required
|
Compliant
|
| 5.5
|
Required
|
Compliant
|
| 5.6
|
Required
|
Compliant
|
| 5.7
|
Required
|
Compliant
|
| 5.8
|
Required
|
Compliant
|
| 5.9
|
Advisory
|
Compliant
|
| Rule
|
Category
|
Compliance
|
| 6.1
|
Required
|
Compliant
|
| 6.2
|
Required
|
Compliant
|
| 6.3
|
Required
|
Compliant
|
Literals and Constants ๐
| Rule
|
Category
|
Compliance
|
| 7.1
|
Required
|
Compliant
|
| 7.2
|
Required
|
Compliant
|
| 7.3
|
Required
|
Compliant
|
| 7.4
|
Required
|
Compliant
|
| 7.5
|
Mandatory
|
Compliant
|
| 7.6
|
Required
|
Compliant
|
Declarations and Definitions ๐
| Rule
|
Category
|
Compliance
|
| 8.1
|
Required
|
Compliant
|
| 8.2
|
Required
|
Compliant
|
| 8.3
|
Required
|
Compliant
|
| 8.4
|
Required
|
Compliant
|
| 8.5
|
Required
|
Compliant
|
| 8.6
|
Required
|
Compliant
|
| 8.7
|
Advisory
|
Compliant
|
| 8.8
|
Required
|
Compliant
|
| 8.9
|
Advisory
|
Compliant
|
| 8.10
|
Required
|
Compliant
|
| 8.11
|
Advisory
|
Compliant
|
| 8.12
|
Required
|
Compliant
|
| 8.13
|
Advisory
|
Compliant
|
| 8.14
|
Required
|
Compliant
|
| 8.15
|
Required
|
Compliant
|
| 8.16
|
Advisory
|
Compliant
|
| 8.17
|
Advisory
|
Compliant
|
Initialization ๐
| Rule
|
Category
|
Compliance
|
| 9.1
|
Mandatory
|
Compliant
|
| 9.2
|
Required
|
Compliant
|
| 9.3
|
Required
|
Compliant
|
| 9.4
|
Required
|
Compliant
|
| 9.5
|
Required
|
Compliant
|
| 9.6
|
Required
|
Compliant
|
| 9.7
|
Mandatory
|
Compliant
|
The Essential Type Modal ๐
| Rule
|
Category
|
Compliance
|
| 10.1
|
Required
|
Compliant
|
| 10.2
|
Required
|
Compliant
|
| 10.3
|
Required
|
Compliant
|
| 10.4
|
Required
|
Compliant
|
| 10.5
|
Advisory
|
Compliant
|
| 10.6
|
Required
|
Compliant
|
| 10.7
|
Required
|
Compliant
|
| 10.8
|
Required
|
Compliant
|
Pointer Type Conversion ๐
| Rule
|
Category
|
Compliance
|
| 11.1
|
Required
|
Compliant
|
| 11.2
|
Required
|
Compliant
|
| 11.3
|
Required
|
Compliant
|
| 11.4
|
Advisory
|
Compliant
|
| 11.5
|
Advisory
|
Compliant
|
| 11.6
|
Required
|
Compliant
|
| 11.7
|
Required
|
Compliant
|
| 11.8
|
Required
|
Compliant
|
| 11.9
|
Required
|
Compliant
|
| 11.10
|
Required
|
Compliant
|
Expressions ๐
| Rule
|
Category
|
Compliance
|
| 12.1
|
Advisory
|
Compliant
|
| 12.2
|
Required
|
Compliant
|
| 12.3
|
Advisory
|
Compliant
|
| 12.4
|
Advisory
|
Compliant
|
| 12.5
|
Mandatory
|
Compliant
|
| 12.6
|
Required
|
Compliant
|
Side Effects ๐
| Rule
|
Category
|
Compliance
|
| 13.1
|
Required
|
Compliant
|
| 13.2
|
Required
|
Compliant
|
| 13.3
|
Advisory
|
Compliant
|
| 13.4
|
Advisory
|
Compliant
|
| 13.5
|
Required
|
Compliant
|
| 13.6
|
Mandatory
|
Compliant
|
Control Statement Expressions ๐
| Rule
|
Category
|
Compliance
|
| 14.1
|
Required
|
Compliant
|
| 14.2
|
Required
|
Compliant
|
| 14.3
|
Required
|
Compliant
|
| 14.4
|
Required
|
Compliant
|
Control Flow ๐
| Rule
|
Category
|
Compliance
|
| 15.1
|
Advisory
|
Compliant
|
| 15.2
|
Required
|
Compliant
|
| 15.3
|
Required
|
Compliant
|
| 15.4
|
Advisory
|
Compliant
|
| 15.5
|
Advisory
|
Compliant
|
| 15.6
|
Required
|
Compliant
|
| 15.7
|
Required
|
Compliant
|
Switch Statements ๐
| Rule
|
Category
|
Compliance
|
| 16.1
|
Required
|
Compliant
|
| 16.2
|
Required
|
Compliant
|
| 16.3
|
Required
|
Compliant
|
| 16.4
|
Required
|
Compliant
|
| 16.5
|
Required
|
Compliant
|
| 16.6
|
Required
|
Compliant
|
| 16.7
|
Required
|
Compliant
|
Functions ๐
| Rule
|
Category
|
Compliance
|
| 17.1
|
Required
|
Compliant
|
| 17.2
|
Required
|
Compliant
|
| 17.3
|
Mandatory
|
Compliant
|
| 17.4
|
Mandatory
|
Compliant
|
| 17.5
|
Advisory
|
Compliant
|
| 17.6
|
Mandatory
|
Compliant
|
| 17.7
|
Required
|
Compliant
|
| 17.8
|
Advisory
|
Compliant
|
| 17.9
|
Mandatory
|
Compliant
|
| 17.10
|
Required
|
Compliant
|
| 17.11
|
Advisory
|
Compliant
|
| 17.12
|
Advisory
|
Compliant
|
| 17.13
|
Required
|
Compliant
|
Pointers and Arrays ๐
| Rule
|
Category
|
Compliance
|
| 18.1
|
Required
|
Compliant
|
| 18.2
|
Required
|
Compliant
|
| 18.3
|
Required
|
Compliant
|
| 18.4
|
Advisory
|
Compliant
|
| 18.5
|
Advisory
|
Compliant
|
| 18.6
|
Required
|
Compliant
|
| 18.7
|
Required
|
Compliant
|
| 18.8
|
Required
|
Compliant
|
| 18.9
|
Required
|
Compliant
|
| 18.10
|
Mandatory
|
Compliant
|
Overlapping Storage ๐
| Rule
|
Category
|
Compliance
|
| 19.1
|
Mandatory
|
Compliant
|
| 19.2
|
Advisory
|
Compliant
|
Preprocessing Directives ๐
| Rule
|
Category
|
Compliance
|
| 20.1
|
Advisory
|
Compliant
|
| 20.2
|
Required
|
Compliant
|
| 20.3
|
Required
|
Compliant
|
| 20.4
|
Required
|
Compliant
|
| 20.5
|
Advisory
|
Compliant
|
| 20.6
|
Required
|
Compliant
|
| 20.7
|
Required
|
Compliant
|
| 20.8
|
Required
|
Compliant
|
| 20.9
|
Required
|
Compliant
|
| 20.10
|
Advisory
|
Compliant
|
| 20.11
|
Required
|
Compliant
|
| 20.12
|
Required
|
Compliant
|
| 20.13
|
Required
|
Compliant
|
| 20.14
|
Required
|
Compliant
|
Standard Libraries ๐
| Rule
|
Category
|
Compliance
|
| 21.1
|
Required
|
Compliant
|
| 21.2
|
Required
|
Compliant
|
| 21.3
|
Required
|
Compliant
|
| 21.4
|
Required
|
Compliant
|
| 21.5
|
Required
|
Compliant
|
| 21.6
|
Required
|
Compliant
|
| 21.7
|
Required
|
Compliant
|
| 21.8
|
Required
|
Compliant
|
| 21.9
|
Required
|
Compliant
|
| 21.10
|
Required
|
Compliant
|
| 21.11
|
Required
|
Compliant
|
| 21.12
|
Advisory
|
Compliant
|
| 21.13
|
Mandatory
|
Compliant
|
| 21.14
|
Required
|
Compliant
|
| 21.15
|
Required
|
Compliant
|
| 21.16
|
Required
|
Compliant
|
| 21.17
|
Required
|
Compliant
|
| 21.18
|
Mandatory
|
Compliant
|
| 21.19
|
Mandatory
|
Compliant
|
| 21.20
|
Mandatory
|
Compliant
|
| 21.21
|
Required
|
Compliant
|
| 21.22
|
Mandatory
|
Compliant
|
| 21.23
|
Required
|
Compliant
|
| 21.24
|
Required
|
Compliant
|
| 21.25
|
Required
|
Compliant
|
| 21.26
|
Required
|
Compliant
|
Resources ๐
| Rule
|
Category
|
Compliance
|
| 22.1
|
Required
|
Compliant
|
| 22.2
|
Mandatory
|
Compliant
|
| 22.3
|
Required
|
Compliant
|
| 22.4
|
Mandatory
|
Compliant
|
| 22.5
|
Mandatory
|
Compliant
|
| 22.6
|
Mandatory
|
Compliant
|
| 22.7
|
Required
|
Compliant
|
| 22.8
|
Required
|
Compliant
|
| 22.9
|
Required
|
Compliant
|
| 22.10
|
Required
|
Compliant
|
| 22.11
|
Required
|
Compliant
|
| 22.12
|
Mandatory
|
Compliant
|
| 22.13
|
Required
|
Compliant
|
| 22.14
|
Mandatory
|
Compliant
|
| 22.15
|
Required
|
Compliant
|
| 22.16
|
Required
|
Compliant
|
| 22.17
|
Required
|
Compliant
|
| 22.18
|
Required
|
Compliant
|
| 22.19
|
Required
|
Compliant
|
| 22.20
|
Mandatory
|
Compliant
|
Generic Selections ๐
| Rule
|
Category
|
Compliance
|
| 23.1
|
Advisory
|
Compliant
|
| 23.2
|
Required
|
Compliant
|
| 23.3
|
Advisory
|
Compliant
|
| 23.4
|
Required
|
Compliant
|
| 23.5
|
Advisory
|
Compliant
|
| 23.6
|
Required
|
Compliant
|
| 23.7
|
Advisory
|
Compliant
|
| 23.8
|
Required
|
Compliant
|