1
MISRAC:2012 Addendum: RuleMappings
MISRAC:2004 to MISRAC:2012 rule mapping
MISRAC:2004 MISRAC:2012 Signicant changes from MISRAC:2004 for C90 code
Rule1.1 (required) Rule1.1 (required) The requirement that code conform to a version of
the standard has moved into an introductory section.
MISRAC:2004 Rule1.1 had an implied ban on extensions.
MISRAC:2012 Rule1.1 permits extensions, but they are
restricted by the new advisory Rule1.2.
Rule1.2 (advisory)
Rule1.2 (required) Rule1.3 (required) Relaxed to permit unspecied behaviour that is not
considered critical. MISRA C:2012 AppendixH lists the
issues that are covered.
Rule1.3 (required) Dir1.1 (required) Changed to a directive as it is not a statically checkable rule.
Rule1.4 (required) Dir1.1 (required) Changed to a directive as it is not a statically checkable rule.
Rule1.5 (advisory) Dir1.1 (required) Changed to a directive as it is not a statically checkable rule.
Rule2.1 (required) Dir4.2 (advisory) Tightened to require documentation of assembly usage.
Dir4.3 (required)
Rule2.2 (required) Rule1.2 (advisory) Relaxed to permit // comments in C99 code.
Downgraded to advisory for C90.
Rule2.3 (required) Rule3.1 (required)
Rule2.4 (advisory) Dir4.4 (advisory) Changed to a directive as MISRAC:2012 does not precisely
describe what constitutes code in a comment.
Rule3.1 (required) Dir1.1 (required) Changed to a directive as it is not a statically checkable rule.
Rule3.2 (required) Dir1.1 (required) Changed to a directive as it is not a statically checkable rule.
Rule3.3 (advisory) Dir1.1 (required) Changed to a directive as it is not a statically checkable rule.
It is not an issue for C99 because the standard species the
behaviour.
Rule3.4 (required) Dir1.1 (required) Changed to a directive as it is not a statically checkable rule.
Rule3.5 (required) Dir1.1 (required) Changed to a directive as it is not a statically checkable rule.
Rule3.6 (required) Deleted This issue is now covered by the Introduction to the Rules
section.
Rule4.1 (required) Rule4.1 (required) Relaxed to permit octal and hexadecimal escapes providing
that they are properly terminated. C90Undened 11 (an
undened escape sequence is used) is now covered by
Rule1.3.
Rule4.2 (required) Rule4.2 (advisory) Downgraded to advisory because there is no undened
or unspecied behaviour associated with trigraphs. There
are certain source character sets in which it would be
impossible to write C programs without trigraphs.
Rule5.1 (required) Rule5.1 (required) Relaxed to permit the identiers to be distinct up to the
limit allowed by the implementation.
Rule5.2 (required)
Rule5.3 (required)
Rule5.4 (required)
Rule5.5 (required)
Rule5.2 (required) Rule5.3 (required)