2174 lines
76 KiB
Plaintext
2174 lines
76 KiB
Plaintext
|
/* Date Stamp */ -d"_lint_au_misra3_lnt=au-misra3.lnt modified 12-Jun-2014"
|
||
|
/* To document usage use: -message( "Using " _lint_au_misra3_lnt ) */
|
||
|
|
||
|
// ---------------------------------------------------------------------
|
||
|
// This file is provided by Gimpel Software (www.gimpel.com) for use with
|
||
|
// its products PC-lint and FlexeLint.
|
||
|
//
|
||
|
// Redistribution and use of this file, with or without modification, is
|
||
|
// permitted provided that any such redistribution retains this notice.
|
||
|
// ---------------------------------------------------------------------
|
||
|
|
||
|
// au-misra3.lnt -- Author options - MISRA C 2012
|
||
|
|
||
|
/*
|
||
|
This options file can be used to explicitly activate those
|
||
|
checks advocated by the Motor Industry Software Reliability
|
||
|
Association.
|
||
|
|
||
|
You can use this file directly when linting your programs as in:
|
||
|
|
||
|
lin au-misra3 files
|
||
|
|
||
|
Gimpel Software relies on the document, "MISRA-C:2012
|
||
|
Guidelines for the use of the C language in critical systems",
|
||
|
copyright 2012 by MIRA Limited, as the primary source for this
|
||
|
file. Gimpel Software makes no warranty as to the completeness
|
||
|
or applicability of this options file and reserves the right to
|
||
|
amend or alter the official contents of such at any time.
|
||
|
|
||
|
"MISRA" is a registered trademark of MIRA Limited, held on
|
||
|
behalf of the MISRA Consortium.
|
||
|
|
||
|
*/
|
||
|
-misra(3) // Activate MISRA Essential Type model
|
||
|
|
||
|
/**** Dir 1.1 (Req) ************/
|
||
|
|
||
|
/* not statically checkable */
|
||
|
|
||
|
/**** Dir 2.1 (Req) ************/
|
||
|
|
||
|
-A(C99) /* strict ISO C99 */
|
||
|
/* Note: if you code to the C90 standard instead, you may
|
||
|
want to comment out the above option and uncomment the
|
||
|
following option. You will also want to do likewise for
|
||
|
other uses of the '-A(C99)' option throughout this file. */
|
||
|
// -A(C90) /* strict ANSI */
|
||
|
+e950 /* flag non-standard word or construct */
|
||
|
+elib(950)
|
||
|
-append(950,[MISRA 2012 Directive 2.1, required])
|
||
|
|
||
|
/**** Dir 3.1 (Req) ************/
|
||
|
|
||
|
/* not statically checkable */
|
||
|
|
||
|
/**** Dir 4.1 (Req) ************/
|
||
|
|
||
|
/* not statically checkable */
|
||
|
|
||
|
/**** Dir 4.2 (Adv) ************/
|
||
|
|
||
|
/* not statically checkable */
|
||
|
|
||
|
/**** Dir 4.3 (Req) ************/
|
||
|
|
||
|
+e586 /* to activate the deprecation message */
|
||
|
+elib(586)
|
||
|
-deprecate(keyword,asm,[MISRA 2012 4.3, required])
|
||
|
|
||
|
/**** Dir 4.4 (Adv) ************/
|
||
|
|
||
|
/* This requirement (that there be no commented-out code) is, in
|
||
|
principle, not statically checkable. The reason given for the
|
||
|
requirement is that comments do not nest. Thus a commented
|
||
|
out section of code that happens to use slash-star commenting
|
||
|
could inadvertently introduce unwanted code. Rule 3.1, however,
|
||
|
addresses the nested comment issue and hence the major concern
|
||
|
that this requirement seeks to address is indeed checkable.
|
||
|
*/
|
||
|
-fnc /* flag nested comments */
|
||
|
+e602 /* comment within comment */
|
||
|
+elib(602)
|
||
|
-append(602,[MISRA 2012 Directive 4.4, advisory])
|
||
|
|
||
|
/**** Dir 4.5 (Adv) ************/
|
||
|
|
||
|
// While Lint can enforce this directive with the following four
|
||
|
// options, doing so can increase the run time of Lint depending
|
||
|
// upon the number of identifiers in your program. If you want
|
||
|
// this checking, uncomment each of the following four options.
|
||
|
//
|
||
|
// +fta
|
||
|
// +e9046 /* typographical ambiguity */
|
||
|
// +elib(9046)
|
||
|
// -append(9046,[MISRA 2012 Directive 4.5, advisory])
|
||
|
|
||
|
/**** Dir 4.6 (Adv) ************/
|
||
|
|
||
|
+e970 /* flag modifiers used outside of typedefs */
|
||
|
+elib(970)
|
||
|
-append(970,[MISRA 2012 Directive 4.6, advisory])
|
||
|
// For the duration, we are presuming MISRA does not want
|
||
|
// diagnostics for the bool type.
|
||
|
-esym(970,bool)
|
||
|
-esym(970,char)
|
||
|
|
||
|
/**** Dir 4.7 (Req) ************/
|
||
|
|
||
|
+e534 /* ignoring return value of function */
|
||
|
+elib(534)
|
||
|
-append(534,[MISRA 2012 Directive 4.7, required])
|
||
|
|
||
|
/**** Dir 4.8 (Adv) ************/
|
||
|
|
||
|
+e9045 /* non-hidden definition of type */
|
||
|
+elib(9045)
|
||
|
-append(9045,[MISRA 2012 Directive 4.8, advisory])
|
||
|
|
||
|
/**** Dir 4.9 (Adv) ************/
|
||
|
|
||
|
+e9026 /* function-like macro defined */
|
||
|
+elib(9026)
|
||
|
-append(9026,[MISRA 2012 Directive 4.9, advisory])
|
||
|
|
||
|
/**** Dir 4.10 (Req) ************/
|
||
|
|
||
|
+e451 /* Header repeatedly included without guard */
|
||
|
+elib(451)
|
||
|
-append(451,[MISRA 2012 Directive 4.10, required])
|
||
|
|
||
|
/**** Dir 4.11 (Req) ************/
|
||
|
|
||
|
/* The arguments to over 100 calls to standard library functions
|
||
|
are monitored; users can specify additional constraints for
|
||
|
other functions.
|
||
|
*/
|
||
|
|
||
|
/**** Dir 4.12 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(function,calloc,[MISRA 2012 Directive 4.12, required])
|
||
|
-deprecate(function,malloc,[MISRA 2012 Directive 4.12, required])
|
||
|
-deprecate(function,realloc,[MISRA 2012 Directive 4.12, required])
|
||
|
-deprecate(function,free,[MISRA 2012 Directive 4.12, required])
|
||
|
|
||
|
/**** Dir 4.13 (Adv) ************/
|
||
|
|
||
|
/* supported by uncommenting the next six options and use of the
|
||
|
-function_pair() option */
|
||
|
// +e480
|
||
|
// +elib(480)
|
||
|
// -append(480,[MISRA 2012 Directive 4.13, advisory])
|
||
|
// +e481
|
||
|
// +elib(481)
|
||
|
// -append(481,[MISRA 2012 Directive 4.13, advisory])
|
||
|
|
||
|
/**** Rule 1.1 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
-A(C99) /* strict ISO C99 */
|
||
|
/* Note: if you code to the C90 standard instead, you may
|
||
|
want to comment out the above option and uncomment the
|
||
|
following option. You will also want to do likewise for
|
||
|
other uses of the '-A(C99)' option throughout this file. */
|
||
|
// -A(C90) /* strict ANSI */
|
||
|
+e950 /* flag non-standard word or construct */
|
||
|
+elib(950)
|
||
|
-append(950,[MISRA 2012 Rule 1.1, required])
|
||
|
|
||
|
/**** Rule 1.2 (Adv) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
-A(C99) /* strict ISO C99 */
|
||
|
/* Note: if you code to the C90 standard instead, you may
|
||
|
want to comment out the above option and uncomment the
|
||
|
following option. You will also want to do likewise for
|
||
|
other uses of the '-A(C99)' option throughout this file. */
|
||
|
// -A(C90) /* strict ANSI */
|
||
|
+e950 /* flag non-ANSI word or construct */
|
||
|
+elib(950)
|
||
|
-append(950,[MISRA 2012 Rule 1.2, advisory])
|
||
|
|
||
|
/**** Rule 1.3 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
|
||
|
/* Avoid the use of undefined or unspecified behavior as described
|
||
|
in ISO C, Appendix A.6.1 and Appendix A.6.2 */
|
||
|
|
||
|
/* Source file not ending in a new-line character, ending in
|
||
|
new-line character immediately preceded by a backslash
|
||
|
character, or ending in a partial preprocessing token or
|
||
|
comment (ISO C, Appendix A.6.2, point 1).
|
||
|
*/
|
||
|
+e406 /* unclosed comment */
|
||
|
+elib(406)
|
||
|
-append(406,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Non-standard character usage (ISO C, Appendix A.6.2, point 2).
|
||
|
*/
|
||
|
+e27 /* illegal character */
|
||
|
+elib(27)
|
||
|
-append(27,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Unclosed quotes (ISO C, Appendix A.6.2, point 4).
|
||
|
*/
|
||
|
+e2 /* unclosed quote */
|
||
|
+elib(2)
|
||
|
-append(2,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Repeated label within a function (ISO C, Appendix A.6.2, point
|
||
|
5).
|
||
|
*/
|
||
|
+e31 /* symbol redefinition */
|
||
|
+elib(31)
|
||
|
-append(31,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Non-visible identifier used (ISO C, Appendix A.6.2, point 6).
|
||
|
*/
|
||
|
+e40 /* undeclared identifier */
|
||
|
+elib(40)
|
||
|
-append(40,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Identifiers for the same entity differ beyond the minimal
|
||
|
significant characters (ISO C, Appendix A.6.2, point 7).
|
||
|
See Rules 5.1, 5.2, 5.4, and 5.5.
|
||
|
*/
|
||
|
|
||
|
/* The same identifier has both internal and external linkage in
|
||
|
the same translation unit (ISO C, Appendix A.6.2, point 8).
|
||
|
*/
|
||
|
+e401 /* symbol not previously declared static */
|
||
|
+elib(401)
|
||
|
-append(401,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Multiple definitions for the same externally linked identifier
|
||
|
(ISO C, Appendix A.6.2, point 9).
|
||
|
*/
|
||
|
+e31 /* symbol redefinition */
|
||
|
+elib(31)
|
||
|
|
||
|
/* Using automatic storage data via a pointer after the data's
|
||
|
lifetime (ISO C, Appendix A.6.2, point 10).
|
||
|
*/
|
||
|
+e604 /* returning address of auto variable */
|
||
|
+elib(604)
|
||
|
-append(604,[MISRA 2012 Rule 1.3, required])
|
||
|
+e934 /* taking address of near auto variable */
|
||
|
+elib(934)
|
||
|
-append(934,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Incompatible redeclarations (ISO C, Appendix A.6.2, point 11).
|
||
|
See Rule 8.3
|
||
|
*/
|
||
|
|
||
|
/* Non-standard escape sequence (ISO C, Appendix A.6.2, point 12).
|
||
|
*/
|
||
|
+e606 /* non-ANSI escape sequence */
|
||
|
+elib(606)
|
||
|
-append(606,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Non-standard character in header name (ISO C, Appendix A.6.2,
|
||
|
point 15).
|
||
|
See Rule 20.2
|
||
|
*/
|
||
|
+e9020 /* header name with non-standard character */
|
||
|
+elib(9020)
|
||
|
-append(9020,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* No complete type available (ISO C, Appendix A.6.2, point 16).
|
||
|
*/
|
||
|
+e86 /* structure has no data elements */
|
||
|
+elib(86)
|
||
|
-append(86,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Using or converting a void expression (ISO C, Appendix A.6.2,
|
||
|
point 17).
|
||
|
*/
|
||
|
+e64 /* type mismatch */
|
||
|
+elib(64)
|
||
|
-append(64,[MISRA 2012 Rule 1.3, required])
|
||
|
+e67 /* cannot cast between types */
|
||
|
+elib(67)
|
||
|
-append(67,[MISRA 2012 Rule 1.3, required])
|
||
|
+e144 /* non-existent return value */
|
||
|
+elib(144)
|
||
|
-append(144,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Modifying an object more than once or modifying and accessing
|
||
|
between two sequence points (ISO C, Appendix A.6.2, point 18).
|
||
|
See Rule 13.2
|
||
|
*/
|
||
|
+e564 /* variable depends on order of evaluation */
|
||
|
+elib(564)
|
||
|
-append(564,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Invalid arithmetic operations or unrepresentable results
|
||
|
(ISO C, Appendix A.6.2, point 19).
|
||
|
*/
|
||
|
+e54 /* division by 0 */
|
||
|
+elib(54)
|
||
|
-append(54,[MISRA 2012 Rule 1.3, required])
|
||
|
+e414 /* possible division by 0 */
|
||
|
+elib(414)
|
||
|
-append(414,[MISRA 2012 Rule 1.3, required])
|
||
|
+e795 /* conceivable division by 0 */
|
||
|
+elib(795)
|
||
|
-append(795,[MISRA 2012 Rule 1.3, required])
|
||
|
/* Also, see Rule 12.4 */
|
||
|
|
||
|
/* Passing a void argument to a function (ISO C, Appendix A.6.2,
|
||
|
point 20).
|
||
|
*/
|
||
|
+e64 /* type mismatch */
|
||
|
+elib(64)
|
||
|
|
||
|
/* Incompatible function redeclaration (ISO C, Appendix A.6.2,
|
||
|
point 22).
|
||
|
See Rule 8.3
|
||
|
*/
|
||
|
|
||
|
/* An invalid array reference, null pointer reference, or
|
||
|
reference to an object declared with automatic storage duration in
|
||
|
a terminated block occurs (ISO C, Appendix A.6.2, point 24).
|
||
|
*/
|
||
|
+e64 /* type mismatch */
|
||
|
+elib(64)
|
||
|
+e413 /* likely use of null pointer */
|
||
|
+elib(413)
|
||
|
-append(413,[MISRA 2012 Rule 1.3, required])
|
||
|
+e415 /* out-of-bounds pointer */
|
||
|
+elib(415)
|
||
|
-append(415,[MISRA 2012 Rule 1.3, required])
|
||
|
+e416 /* out-of-bounds pointer */
|
||
|
+elib(416)
|
||
|
-append(416,[MISRA 2012 Rule 1.3, required])
|
||
|
+e428 /* negative subscript */
|
||
|
+elib(428)
|
||
|
-append(428,[MISRA 2012 Rule 1.3, required])
|
||
|
/* Also, see Rule 17.6 */
|
||
|
|
||
|
/* A pointer to a function is converted to a pointer to an object
|
||
|
or a pointer to an object is converted to a pointer to a function
|
||
|
(ISO C, Appendix A.6.2, point 26).
|
||
|
*/
|
||
|
+e64 /* type mismatch */
|
||
|
+elib(64)
|
||
|
+e740 /* unusual pointer cast */
|
||
|
+elib(740)
|
||
|
-append(740,[MISRA 2012 Rule 1.3, required])
|
||
|
/* Also, see Rule 11.1 and 11.2 */
|
||
|
|
||
|
/* A pointer is converted to other than an integral or pointer
|
||
|
type (ISO C, Appendix A.6.2, point 27).
|
||
|
*/
|
||
|
+e64 /* type mismatch */
|
||
|
+elib(64)
|
||
|
+e71 /* cannot cast */
|
||
|
+elib(71)
|
||
|
|
||
|
/* An expression is shifted by a negative number or by an amount
|
||
|
greater than or equal to the width in bits of the expression being
|
||
|
shifted (ISO C, Appendix A.6.2, point 30).
|
||
|
*/
|
||
|
+e504 /* unusual shift */
|
||
|
+elib(504)
|
||
|
-append(504,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* An identifier for an object is declared with no linkage and the
|
||
|
type of the object is incomplete after its declarator, or after its
|
||
|
init-declarator if it has an initializer (ISO C, Appendix
|
||
|
A.6.2, point 33).
|
||
|
*/
|
||
|
+e86 /* structure has no data elements */
|
||
|
+elib(86)
|
||
|
|
||
|
/* Declaring a function at block scope with a storage-class
|
||
|
specifier other than extern (ISO C, Appendix A.6.2, point 34).
|
||
|
*/
|
||
|
+e629 /* static class for function */
|
||
|
+elib(629)
|
||
|
-append(629,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* A bit-field is declared with a type other than int, signed int,
|
||
|
or unsigned int (ISO C, Appendix A.6.2, point 35).
|
||
|
See Rule 6.1.
|
||
|
*/
|
||
|
|
||
|
/* Attempting to modify an object with const-qualified type by
|
||
|
means of an lvalue with non-const-qualified type (ISO C,
|
||
|
Appendix A.6.2, point 36).
|
||
|
*/
|
||
|
+e158 /* assignment increases capability */
|
||
|
+elib(158)
|
||
|
-append(158,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Attempting to refer to an object with volatile-qualified type
|
||
|
by means of an lvalue with non-volatile-qualified type (ISO C,
|
||
|
Appendix A.6.2, point 37).
|
||
|
*/
|
||
|
+e158 /* assignment increases capability */
|
||
|
+elib(158)
|
||
|
|
||
|
/* Using the value of uninitialized automatic object (ISO C,
|
||
|
Appendix A.6.2, point 38).
|
||
|
See Rule 9.1
|
||
|
*/
|
||
|
|
||
|
/* An object with aggregate or union type with static storage
|
||
|
duration has a non-brace-enclosed initializer, or an object
|
||
|
with aggregate or union type with automatic storage duration
|
||
|
has either a single expression initializer with a type other
|
||
|
than that of the object or a non-brace-enclosed initializer
|
||
|
(ISO C, Appendix A.6.2, point 39).
|
||
|
Also, see Rule 9.2
|
||
|
*/
|
||
|
+e64 /* type mismatch */
|
||
|
+elib(64)
|
||
|
|
||
|
/* The value of a function is used, but no value was returned
|
||
|
(ISO C, Appendix A.6.2, point 40).
|
||
|
See Rule 17.4.
|
||
|
*/
|
||
|
|
||
|
/* A function that accepts a variable number of arguments is
|
||
|
defined without a parameter type list that ends with the
|
||
|
ellipsis notation (ISO C, Appendix A.6.2, point 41).
|
||
|
*/
|
||
|
|
||
|
/* An identifier for an object with internal linkage and an
|
||
|
incomplete type is declared with a tentative definition (ISO C,
|
||
|
Appendix A.6.2, point 42).
|
||
|
*/
|
||
|
+e86 /* structure has no data elements */
|
||
|
+elib(86)
|
||
|
|
||
|
/* Non-standard #include preprocessing directive (ISO C, Appendix
|
||
|
A.6.2, point 44).
|
||
|
See Rule 20.3.
|
||
|
*/
|
||
|
|
||
|
/* Non-standard #line directive (ISO C, Appendix A.6.2, point 49).
|
||
|
*/
|
||
|
+"estring(10,a numeric constant)" /* expecting a numeric constant */
|
||
|
|
||
|
/* #defining or #undefing any of: defined, __LINE__, __FILE__,
|
||
|
__DATE__, __TIME__, or __STDC__ (ISO C, Appendix A.6.2, point 50).
|
||
|
*/
|
||
|
+e136 /* illegal macro name */
|
||
|
+elib(136)
|
||
|
-append(136,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Format-argument mismatch in an fprintf or fscanf type of
|
||
|
function (ISO C, Appendix A.6.2, point 75).
|
||
|
*/
|
||
|
+e558 /* too few arguments */
|
||
|
+elib(558)
|
||
|
-append(558,[MISRA 2012 Rule 1.3, required])
|
||
|
+e719 /* too many arguments */
|
||
|
+elib(719)
|
||
|
-append(719,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* A %% conversion specification for the fprintf or fscanf
|
||
|
function contains characters between the pair of % characters
|
||
|
(ISO C, Appendix A.6.2, point 77).
|
||
|
*/
|
||
|
+e557 /* unrecognized format */
|
||
|
+elib(557)
|
||
|
-append(557,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* An aggregate or union, or a pointer to an aggregate or union is
|
||
|
an argument to the fprintf function, except for the conversion
|
||
|
specifiers %s (for an array of character type) or %p (for a pointer
|
||
|
to void) (ISO C, Appendix A.6.2, point 81).
|
||
|
*/
|
||
|
+e437 /* passing struct to ellipsis */
|
||
|
+elib(437)
|
||
|
-append(437,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Referring to deallocated space (ISO C, Appendix A.6.2, point
|
||
|
87).
|
||
|
*/
|
||
|
+e449 /* previously deallocated pointer */
|
||
|
+elib(449)
|
||
|
-append(449,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Misuse of free or realloc (ISO C, Appendix A.6.2, point 88).
|
||
|
*/
|
||
|
+esym(424,free) /* inappropriate deallocation */
|
||
|
-append(424,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* An array written to by a copying or concatenation function is
|
||
|
too small (ISO C, Appendix A.6.2, point 91).
|
||
|
*/
|
||
|
+e419 /* data overrun */
|
||
|
+elib(419)
|
||
|
-append(419,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Order of evaluation (ISO C, Appendix A.6.1, point 7).
|
||
|
*/
|
||
|
+e564 /* variable depends on order of evaluation */
|
||
|
+elib(564)
|
||
|
-append(564,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Side effects order (ISO C, Appendix A.6.1, point 8).
|
||
|
*/
|
||
|
+e931 /* both sides of an expression have side-effects */
|
||
|
+elib(931)
|
||
|
-append(931,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Function argument evaluation (ISO C, Appendix A.6.1, point 9).
|
||
|
*/
|
||
|
+e564 /* variable depends on order of evaluation */
|
||
|
+elib(564)
|
||
|
|
||
|
/* The order in which # and ## operations are evaluated during
|
||
|
macro substitution (ISO C, Appendix A.6.1, point 12).
|
||
|
*/
|
||
|
+e9023 /* multiple '#/##' operators in macro definition */
|
||
|
+elib(9023)
|
||
|
-append(9023,[MISRA 2012 Rule 1.3, required])
|
||
|
|
||
|
/* Whether setjmp is a macro or an external identifier (ISO C,
|
||
|
Appendix A.6.1, point 14).
|
||
|
See Rule 21.2.
|
||
|
*/
|
||
|
|
||
|
/**** Rule 2.1 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e506 /* constant value boolean */
|
||
|
+elib(506)
|
||
|
-append(506,[MISRA 2012 Rule 2.1, required])
|
||
|
+e527 /* unreachable */
|
||
|
+elib(527)
|
||
|
-append(527,[MISRA 2012 Rule 2.1, required])
|
||
|
+e681 /* loop not entered */
|
||
|
+elib(681)
|
||
|
-append(681,[MISRA 2012 Rule 2.1, required])
|
||
|
+e827 /* loop not reachable */
|
||
|
+elib(827)
|
||
|
-append(827,[MISRA 2012 Rule 2.1, required])
|
||
|
|
||
|
/**** Rule 2.2 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e438 /* value not used */
|
||
|
+elib(438)
|
||
|
-append(438,[MISRA 2012 Rule 2.2, required])
|
||
|
+e505 /* redundant argument to comma */
|
||
|
+elib(505)
|
||
|
-append(505,[MISRA 2012 Rule 2.2, required])
|
||
|
+e520 /* highest operator has no side effects */
|
||
|
+elib(520)
|
||
|
-append(520,[MISRA 2012 Rule 2.2, required])
|
||
|
+e521 /* highest operator has no side effects */
|
||
|
+elib(521)
|
||
|
-append(521,[MISRA 2012 Rule 2.2, required])
|
||
|
+e522 /* highest operator has no side effects */
|
||
|
+elib(522)
|
||
|
-append(522,[MISRA 2012 Rule 2.2, required])
|
||
|
|
||
|
/**** Rule 2.3 (Adv) ************/
|
||
|
|
||
|
+e751 /* local typedef not referenced */
|
||
|
+elib(751)
|
||
|
-append(751,[MISRA 2012 Rule 2.3, advisory])
|
||
|
+e756 /* global not referenced */
|
||
|
+elib(756)
|
||
|
-append(756,[MISRA 2012 Rule 2.3, advisory])
|
||
|
|
||
|
/**** Rule 2.4 (Adv) ************/
|
||
|
|
||
|
+e753 /* local tag not referenced */
|
||
|
+elib(753)
|
||
|
-append(753,[MISRA 2012 Rule 2.4, advisory])
|
||
|
+e9058
|
||
|
+elibsym(9058)
|
||
|
-append(9058,[MISRA 2012 Rule 2.4, advisory])
|
||
|
|
||
|
/**** Rule 2.5 (Adv) ************/
|
||
|
|
||
|
+e750 /* local macro not referenced */
|
||
|
+elib(750)
|
||
|
-append(750,[MISRA 2012 Rule 2.5, advisory])
|
||
|
+e755 /* global macro not referenced */
|
||
|
+elib(755)
|
||
|
-append(755,[MISRA 2012 Rule 2.5, advisory])
|
||
|
|
||
|
/**** Rule 2.6 (Adv) ************/
|
||
|
|
||
|
+e563 /* label not referenced */
|
||
|
+elib(563)
|
||
|
-append(563,[MISRA 2012 Rule 2.6, advisory])
|
||
|
|
||
|
/**** Rule 2.7 (Adv) ************/
|
||
|
|
||
|
+e715 /* not referenced */
|
||
|
+elib(715)
|
||
|
-append(715,[MISRA 2012 Rule 2.7, advisory])
|
||
|
|
||
|
/**** Rule 3.1 (Req) ************/
|
||
|
|
||
|
-fnc /* flag nested comments */
|
||
|
+e602 /* comment within comment */
|
||
|
+elib(602)
|
||
|
-append(602,[MISRA 2012 Rule 3.1, required])
|
||
|
+e9059
|
||
|
+elib(9059)
|
||
|
-append(9059,[MISRA 2012 Rule 3.1, required])
|
||
|
+e9066
|
||
|
+elib(9066)
|
||
|
-append(9066,[MISRA 2012 Rule 3.1, required])
|
||
|
|
||
|
/**** Rule 3.2 (Req) ************/
|
||
|
|
||
|
+e427 /* C++ comment ends in \\ */
|
||
|
+elib(427)
|
||
|
-append(427,[MISRA 2012 Rule 3.2, required])
|
||
|
|
||
|
/**** Rule 4.1 (Req) ************/
|
||
|
|
||
|
+e9039 /* prohibited escape sequence */
|
||
|
+elib(9039)
|
||
|
-append(9039,[MISRA 2012 Rule 4.1, required])
|
||
|
|
||
|
/**** Rule 4.2 (Adv) ************/
|
||
|
|
||
|
-ftg /* inhibit use of trigraphs */
|
||
|
+e584 /* activate trigraph detected message */
|
||
|
+elib(584)
|
||
|
-append(584,[MISRA 2012 Rule 4.2, advisory])
|
||
|
+e739 /* activate trigraph in string message */
|
||
|
+elib(739)
|
||
|
-append(739,[MISRA 2012 Rule 4.2, advisory])
|
||
|
+e9060 /* trigraph in comment */
|
||
|
+elib(9060)
|
||
|
-append(9060,[MISRA 2012 Rule 4.2, advisory])
|
||
|
|
||
|
/**** Rule 5.1 (Req) ************/
|
||
|
|
||
|
-idlen(31) /* flag names identical in the first 31 characters */
|
||
|
+e621 /* Identifier clash - length set by -idlen */
|
||
|
+elib(621)
|
||
|
-append(621,[MISRA 2012 Rule 5.1, required])
|
||
|
|
||
|
/**** Rule 5.2 (Req) ************/
|
||
|
|
||
|
-idlen(31) /* flag names identical in the first 31 characters */
|
||
|
+e621 /* Identifier clash - length set by -idlen */
|
||
|
+elib(621)
|
||
|
-append(621,[MISRA 2012 Rule 5.2, required])
|
||
|
|
||
|
/**** Rule 5.3 (Req) ************/
|
||
|
|
||
|
+e578 /* enable reports of name hiding */
|
||
|
+elib(578)
|
||
|
-append(578,[MISRA 2012 Rule 5.3, required])
|
||
|
|
||
|
/**** Rule 5.4 (Req) ************/
|
||
|
|
||
|
-idlen(31) /* flag names identical in the first 31 characters */
|
||
|
+e621 /* Identifier clash - length set by -idlen */
|
||
|
+elib(621)
|
||
|
-append(621,[MISRA 2012 Rule 5.4, required])
|
||
|
|
||
|
/**** Rule 5.5 (Req) ************/
|
||
|
|
||
|
+e123 /* macro defined with arguments */
|
||
|
+elib(123)
|
||
|
-append(123,[MISRA 2012 Rule 5.5, required])
|
||
|
-idlen(31) /* flag names identical in the first 31 characters */
|
||
|
+e621 /* Identifier clash - length set by -idlen */
|
||
|
+elib(621)
|
||
|
-append(621,[MISRA 2012 Rule 5.5, required])
|
||
|
+e9061 /* non-distinct identifier */
|
||
|
+elib(9061)
|
||
|
-append(9061,[MISRA 2012 Rule 5.5, required])
|
||
|
|
||
|
/**** Rule 5.6 (Req) ************/
|
||
|
|
||
|
+e578 /* enable reports of name hiding */
|
||
|
+elib(578)
|
||
|
-append(578,[MISRA 2012 Rule 5.6, required])
|
||
|
+e623 /* redefining the storage class of symbol */
|
||
|
+elib(623)
|
||
|
-append(623,[MISRA 2012 Rule 5.6, required])
|
||
|
+estring(9062,typedef) /* non-unique typedef */
|
||
|
+elib(9062)
|
||
|
-append(9062(typedef),[MISRA 2012 Rule 5.6, required])
|
||
|
|
||
|
/**** Rule 5.7 (Req) ************/
|
||
|
|
||
|
+e407 /* Inconsistent use of tag */
|
||
|
+elib(407)
|
||
|
-append(407,[MISRA 2012 Rule 5.7, required])
|
||
|
+e578 /* Declaration of Symbol hides Symbol */
|
||
|
+elib(578)
|
||
|
-append(578,[MISRA 2012 Rule 5.7, required])
|
||
|
+e14 /* Symbol previously defined */
|
||
|
+elib(14)
|
||
|
-append(14,[MISRA 2012 Rule 5.7, required])
|
||
|
+e15 /* Symbol redeclared */
|
||
|
+elib(15)
|
||
|
-append(15,[MISRA 2012 Rule 5.7, required])
|
||
|
+e631 /* Tag defined differently */
|
||
|
+elib(631)
|
||
|
-append(631,[MISRA 2012 Rule 5.7, required])
|
||
|
+e9062 /* non-unique tag */
|
||
|
+elib(9062)
|
||
|
-append(9062(tag),[MISRA 2012 Rule 5.7, required])
|
||
|
|
||
|
/**** Rule 5.8 (Req) ************/
|
||
|
|
||
|
+e401 /* Symbol not previously declared static */
|
||
|
+elib(401)
|
||
|
-append(401,[MISRA 2012 Rule 5.8, required])
|
||
|
+e578 /* Declaration of Symbol hides Symbol */
|
||
|
+elib(578)
|
||
|
-append(578,[MISRA 2012 Rule 5.8, required])
|
||
|
+e580 /* enable reports of name hiding */
|
||
|
+elib(580)
|
||
|
-append(580,[MISRA 2012 Rule 5.8, required])
|
||
|
|
||
|
/**** Rule 5.9 (Adv) ************/
|
||
|
|
||
|
+e578 /* enable reports of name hiding */
|
||
|
+elib(578)
|
||
|
-append(578,[MISRA 2012 Rule 5.9, advisory])
|
||
|
+e580 /* enable reports of name hiding */
|
||
|
+elib(580)
|
||
|
-append(580,[MISRA 2012 Rule 5.9, advisory])
|
||
|
|
||
|
/**** Rule 6.1 (Req) ************/
|
||
|
|
||
|
+e46 /* field type should be int */
|
||
|
+elib(46)
|
||
|
-append(46,[MISRA 2012 Rule 6.1, required])
|
||
|
+e806 /* small bit field is signed rather than unsigned */
|
||
|
+elib(806)
|
||
|
-append(806,[MISRA 2012 Rule 6.1, required])
|
||
|
|
||
|
/**** Rule 6.2 (Req) ************/
|
||
|
|
||
|
+e9088 /* named signed single-bit bit-field */
|
||
|
+elib(9088)
|
||
|
-append(9088,[MISRA 2012 Rule 6.2, required])
|
||
|
|
||
|
/**** Rule 7.1 (Req) ************/
|
||
|
|
||
|
+e9001 /* Octal constant used */
|
||
|
+elib(9001)
|
||
|
-append(9001,[MISRA 2012 Rule 7.1, required])
|
||
|
|
||
|
/**** Rule 7.2 (Req) ************/
|
||
|
|
||
|
+e9048 /* unsigned literal without 'U' suffix */
|
||
|
+elib(9048)
|
||
|
-append(9048,[MISRA 2012 Rule 7.2, required])
|
||
|
|
||
|
/**** Rule 7.3 (Req) ************/
|
||
|
|
||
|
+e620 /* suspicious constant */
|
||
|
+elib(620)
|
||
|
-append(620,[MISRA 2012 Rule 7.3, required])
|
||
|
+e9057 /* "l" after "u" in literal suffix */
|
||
|
+elib(9057)
|
||
|
-append(9057,[MISRA 2012 Rule 7.3, required])
|
||
|
|
||
|
/**** Rule 7.4 (Req) ************/
|
||
|
|
||
|
+fsc
|
||
|
+e489 /* attempting to modify a string literal */
|
||
|
+elib(489)
|
||
|
-append(489,[MISRA 2012 Rule 7.4, required])
|
||
|
+e1776 /* string literal not const safe */
|
||
|
+elib(1776)
|
||
|
-append(1776,[MISRA 2012 Rule 7.4, required])
|
||
|
+e1778 /* assignment of string literal not const safe */
|
||
|
+elib(1778)
|
||
|
-append(1778,[MISRA 2012 Rule 7.4, required])
|
||
|
|
||
|
/**** Rule 8.1 (Req) ************/
|
||
|
|
||
|
+e601 /* no explicit type */
|
||
|
+elib(601)
|
||
|
-append(601,[MISRA 2012 Rule 8.1, required])
|
||
|
+e745 /* function has no explicit type */
|
||
|
+elib(745)
|
||
|
-append(745,[MISRA 2012 Rule 8.1, required])
|
||
|
+e808 /* no explicit type */
|
||
|
+elib(808)
|
||
|
-append(808,[MISRA 2012 Rule 8.1, required])
|
||
|
+e832 /* parameter has no explicit type */
|
||
|
+elib(832)
|
||
|
-append(832,[MISRA 2012 Rule 8.1, required])
|
||
|
+e939 /* return type defaults to int */
|
||
|
+elib(939)
|
||
|
-append(939,[MISRA 2012 Rule 8.1, required])
|
||
|
|
||
|
/**** Rule 8.2 (Req) ************/
|
||
|
|
||
|
+e937 /* old-style function declaration */
|
||
|
+elib(937)
|
||
|
-append(937,[MISRA 2012 Rule 8.2, required])
|
||
|
+e745 /* function has no explicit type */
|
||
|
+elib(745)
|
||
|
-append(745,[MISRA 2012 Rule 8.2, required])
|
||
|
+e939 /* return type defaults to int */
|
||
|
+elib(939)
|
||
|
-append(939,[MISRA 2012 Rule 8.2, required])
|
||
|
-fvr /* varying return mode not allowed */
|
||
|
-strong() /* enable strong typing for
|
||
|
declarations */
|
||
|
+e18 /* symbol redeclared */
|
||
|
+elib(18)
|
||
|
-append(18,[MISRA 2012 Rule 8.2, required])
|
||
|
|
||
|
+e936 /* old-style function definition */
|
||
|
+elib(936)
|
||
|
-append(936,[MISRA 2012 Rule 8.2, required])
|
||
|
|
||
|
+e955 /* param name missing from prototype */
|
||
|
+elib(955)
|
||
|
-append(955,[MISRA 2012 Rule 8.2, required])
|
||
|
|
||
|
/**** Rule 8.3 (Req) ************/
|
||
|
|
||
|
-fvr /* varying return mode not allowed */
|
||
|
-strong() /* enable strong typing for declarations */
|
||
|
+e18 /* symbol redeclared */
|
||
|
+elib(18)
|
||
|
-append(18,[MISRA 2012 Rule 8.3, required])
|
||
|
+e516 /* argument type conflict */
|
||
|
+elib(516)
|
||
|
-append(516,[MISRA 2012 Rule 8.3, required])
|
||
|
+e532 /* return mode of symbol inconsistent */
|
||
|
+elib(532)
|
||
|
-append(532,[MISRA 2012 Rule 8.3, required])
|
||
|
+e9072 /* parameter list differs */
|
||
|
+elib(9072)
|
||
|
-append(9072,[MISRA 2012 Rule 8.3, required])
|
||
|
|
||
|
/**** Rule 8.4 (Req) ************/
|
||
|
|
||
|
+e15 /* symbol redeclared */
|
||
|
+elib(15)
|
||
|
-append(15,[MISRA 2012 Rule 8.4, required])
|
||
|
+e64 /* flag type mismatch */
|
||
|
+elib(64)
|
||
|
-append(64,[MISRA 2012 Rule 8.4, required])
|
||
|
+e516 /* argument type mismatch */
|
||
|
+elib(516)
|
||
|
-append(516,[MISRA 2012 Rule 8.4, required])
|
||
|
+e9075 /* extern defined without prior declaration */
|
||
|
+elib(9075)
|
||
|
-append(9075,[MISRA 2012 Rule 8.4, required])
|
||
|
|
||
|
/**** Rule 8.5 (Req) ************/
|
||
|
|
||
|
+e9004 /* object/function previously declared */
|
||
|
+elib(9004)
|
||
|
-append(9004,[MISRA 2012 Rule 8.5, required])
|
||
|
|
||
|
/**** Rule 8.6 (Req) ************/
|
||
|
|
||
|
--fmd /* diallow multiple definitions */
|
||
|
+e14 /* Symbol previously defined */
|
||
|
+elib(14)
|
||
|
-append(14,[MISRA 2012 Rule 8.6, required])
|
||
|
|
||
|
/**** Rule 8.7 (Adv) ************/
|
||
|
|
||
|
+e765 /* could be made static */
|
||
|
+elib(765)
|
||
|
-append(765,[MISRA 2012 Rule 8.7, advisory])
|
||
|
|
||
|
/**** Rule 8.8 (Req) ************/
|
||
|
|
||
|
+e839 /* storage class assumed static */
|
||
|
+elib(839)
|
||
|
-append(839,[MISRA 2012 Rule 8.8, required])
|
||
|
|
||
|
/**** Rule 8.9 (Adv) ************/
|
||
|
|
||
|
+e9003 /* could define variable at block scope */
|
||
|
+elib(9003)
|
||
|
-append(9003,[MISRA 2012 Rule 8.9, advisory])
|
||
|
|
||
|
/**** Rule 8.10 (Req) ************/
|
||
|
|
||
|
+e695 /* inline function without storage-class specifier */
|
||
|
+elib(695)
|
||
|
-append(695,[MISRA 2012 Rule 8.10, required])
|
||
|
+estring(9056,extern) /* inline function defined with extern */
|
||
|
-append(9056,[MISRA 2012 Rule 8.10, required])
|
||
|
|
||
|
/**** Rule 8.11 (Adv) ************/
|
||
|
|
||
|
+e9067 /* array has no dimension or initializer */
|
||
|
+elib(9067)
|
||
|
-append(9067,[MISRA 2012 Rule 8.11, advisory])
|
||
|
|
||
|
/**** Rule 8.12 (Req) ************/
|
||
|
|
||
|
+e488 /* duplicate enumerator values */
|
||
|
+elib(488)
|
||
|
-append(488,[MISRA 2012 Rule 8.12, required])
|
||
|
|
||
|
/**** Rule 8.13 (Adv) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e818 /* pointer could be declared pointing to const */
|
||
|
+elib(818)
|
||
|
-append(818,[MISRA 2012 Rule 8.13, advisory])
|
||
|
+e844 /* pointer could be declared pointing to const */
|
||
|
+elib(844)
|
||
|
-append(844,[MISRA 2012 Rule 8.13, advisory])
|
||
|
+e954 /* pointer could be declared pointing to const */
|
||
|
+elib(954)
|
||
|
-append(954,[MISRA 2012 Rule 8.13, advisory])
|
||
|
|
||
|
/**** Rule 8.14 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(keyword,restrict,[MISRA 2012 Rule 8.14, required])
|
||
|
|
||
|
/**** Rule 9.1 (Mand) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e644 /* Symbol may not have been initialized */
|
||
|
+elib(644)
|
||
|
-append(644,[MISRA 2012 Rule 9.1, mandatory])
|
||
|
+e771 /* Symbol conceivably not initialized */
|
||
|
+elib(771)
|
||
|
-append(771,[MISRA 2012 Rule 9.1, mandatory])
|
||
|
+e530 /* Symbol not initialized */
|
||
|
+elib(530)
|
||
|
-append(530,[MISRA 2012 Rule 9.1, mandatory])
|
||
|
-specific(+e644 +e771 +e530,)
|
||
|
|
||
|
/**** Rule 9.2 (Req) ************/
|
||
|
|
||
|
+e9069 /* omitted braces within an initializer */
|
||
|
+elib(9069)
|
||
|
-append(9069,[MISRA 2012 Rule 9.2, required])
|
||
|
|
||
|
/**** Rule 9.3 (Req) ************/
|
||
|
|
||
|
+e9068 /* too few initializers */
|
||
|
+elib(9068)
|
||
|
-append(9068,[MISRA 2012 Rule 9.3, required])
|
||
|
|
||
|
/**** Rule 9.4 (Req) ************/
|
||
|
|
||
|
+e485 /* duplicate initialization */
|
||
|
+elib(485)
|
||
|
-append(485,[MISRA 2012 Rule 9.4, required])
|
||
|
|
||
|
/**** Rule 9.5 (Req) ************/
|
||
|
|
||
|
+e9054 /* designated initializer and dimensionless array */
|
||
|
+elib(9054)
|
||
|
-append(9054,[MISRA 2012 Rule 9.5, required])
|
||
|
|
||
|
/**** Rule 10.1 (Req) ************/
|
||
|
|
||
|
+e48 /* bad type */
|
||
|
+elib(48)
|
||
|
-append(48,[MISRA 2012 Rule 10.1, required])
|
||
|
+e9027 /* unpermitted operand */
|
||
|
+elib(9027)
|
||
|
-append(9027,[MISRA 2012 Rule 10.1, required])
|
||
|
|
||
|
/**** Rule 10.2 (Req) ************/
|
||
|
|
||
|
+e9028 /* unpermitted arithmetic */
|
||
|
+elib(9028)
|
||
|
-append(9028,[MISRA 2012 Rule 10.2, required])
|
||
|
|
||
|
/**** Rule 10.3 (Req) ************/
|
||
|
|
||
|
+e9034 /* expression assigned to narrower or different essential type */
|
||
|
+elib(9034)
|
||
|
// Note: the following -d options for true and false don't apply
|
||
|
// to C90 and should be commented out if not using C99
|
||
|
+"dtrue=/*lint -save -e921 */(_Bool) 1/*lint -restore */" // exception
|
||
|
+"dfalse=/*lint -save -e921 */(_Bool) 0/*lint -restore */" // exception
|
||
|
-append(9034,[MISRA 2012 Rule 10.3, required])
|
||
|
|
||
|
/**** Rule 10.4 (Req) ************/
|
||
|
|
||
|
+e9029 /* mismatched essential type */
|
||
|
+elib(9029)
|
||
|
-append(9029,[MISRA 2012 Rule 10.4, required])
|
||
|
|
||
|
/**** Rule 10.5 (Adv) ************/
|
||
|
|
||
|
+e9030 /* impermissible cast */
|
||
|
+elib(9030)
|
||
|
-append(9030,[MISRA 2012 Rule 10.5, advisory])
|
||
|
|
||
|
/**** Rule 10.6 (Req) ************/
|
||
|
|
||
|
+e9031 /* composite expression assigned to wider essential type */
|
||
|
+elib(9031)
|
||
|
-append(9031,[MISRA 2012 Rule 10.6, required])
|
||
|
|
||
|
/**** Rule 10.7 (Req) ************/
|
||
|
|
||
|
+e9032 /* composite expression with smaller essential type than other operand*/
|
||
|
+elib(9032)
|
||
|
-append(9032,[MISRA 2012 Rule 10.7, required])
|
||
|
|
||
|
/**** Rule 10.8 (Req) ************/
|
||
|
|
||
|
+e9033 /* impermissible cast of composite expression */
|
||
|
+elib(9033)
|
||
|
-append(9033,[MISRA 2012 Rule 10.8, required])
|
||
|
|
||
|
/**** Rule 11.1 (Req) ************/
|
||
|
|
||
|
+e9074 /* conversion between a pointer to function and another type */
|
||
|
+elib(9074)
|
||
|
--emacro((9074),NULL) /* explicit exception */
|
||
|
-append(9074,[MISRA 2012 Rule 11.1, required])
|
||
|
|
||
|
/**** Rule 11.2 (Req) ************/
|
||
|
|
||
|
+e9076 /* conversion between a pointer to incomplete type and another type */
|
||
|
+elib(9076)
|
||
|
--emacro((9076),NULL) /* explicit exception */
|
||
|
-append(9076,[MISRA 2012 Rule 11.2, required])
|
||
|
|
||
|
/**** Rule 11.3 (Req) ************/
|
||
|
|
||
|
+e9087 /* cast from pointer to pointer */
|
||
|
+elib(9087)
|
||
|
-append(9087,[MISRA 2012 Rule 11.3, required])
|
||
|
|
||
|
/**** Rule 11.4 (Adv) ************/
|
||
|
|
||
|
+e9078 /* cast pointer/integer */
|
||
|
+elib(9078)
|
||
|
-append(9078,[MISRA 2012 Rule 11.4, advisory])
|
||
|
|
||
|
/**** Rule 11.5 (Adv) ************/
|
||
|
|
||
|
+e9079 /* cast from pointer to pointer */
|
||
|
+elib(9079)
|
||
|
-append(9079,[MISRA 2012 Rule 11.5, advisory])
|
||
|
|
||
|
/**** Rule 11.6 (Req) ************/
|
||
|
|
||
|
+e923 /* cast pointer/non-pointer */
|
||
|
+elib(923)
|
||
|
-append(923,[MISRA 2012 Rule 11.6, required])
|
||
|
|
||
|
/**** Rule 11.7 (Req) ************/
|
||
|
|
||
|
+e68 /* cast pointer/float */
|
||
|
+elib(68)
|
||
|
-append(68,[MISRA 2012 Rule 11.7, required])
|
||
|
+e70 /* cast pointer/float */
|
||
|
+elib(70)
|
||
|
-append(70,[MISRA 2012 Rule 11.7, required])
|
||
|
|
||
|
/**** Rule 11.8 (Req) ************/
|
||
|
|
||
|
+e9005 /* attempt to cast away const/volatile from pointer or reference */
|
||
|
+elib(9005)
|
||
|
-append(9005,[MISRA 2012 Rule 11.8, required])
|
||
|
|
||
|
/**** Rule 11.9 (Req) ************/
|
||
|
|
||
|
+e910 /* conversion from 0 to pointer */
|
||
|
+elib(910)
|
||
|
--emacro((910),NULL) /* explicit exception */
|
||
|
-append(910,[MISRA 2012 Rule 11.9, required])
|
||
|
+e9080 /* integer null pointer constant */
|
||
|
+elib(9080)
|
||
|
-append(9080,[MISRA 2012 Rule 11.9, required])
|
||
|
|
||
|
/**** Rule 12.1 (Adv) ************/
|
||
|
|
||
|
+e9050 /* dependence placed on precedence */
|
||
|
+elib(9050)
|
||
|
-append(9050,[MISRA 2012 Rule 12.1, advisory])
|
||
|
|
||
|
/**** Rule 12.2 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e598 /* excessive left shift */
|
||
|
+elib(598)
|
||
|
-append(598,[MISRA 2012 Rule 12.2, required])
|
||
|
+e9053 /* shift value exceeds size of LHS */
|
||
|
+elib(9053)
|
||
|
-append(9053,[MISRA 2012 Rule 12.2, required])
|
||
|
|
||
|
/**** Rule 12.3 (Adv) ************/
|
||
|
|
||
|
+e9008 /* comma operator used */
|
||
|
+elib(9008)
|
||
|
-append(9008,[MISRA 2012 Rule 12.3, advisory])
|
||
|
|
||
|
/**** Rule 12.4 (Adv) ************/
|
||
|
|
||
|
+elib(648) /* Overflow in computing constant */
|
||
|
+estring(648,unsigned addition)
|
||
|
+estring(648,unsigned multiplication)
|
||
|
+estring(648,unsigned sub.)
|
||
|
+estring(648,unsigned shift left)
|
||
|
+estring(648,unsigned shift right)
|
||
|
-append(648,[MISRA 2012 Rule 12.4, advisory])
|
||
|
|
||
|
/**** Rule 13.1 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e446 /* side effect in initializer */
|
||
|
+elib(446)
|
||
|
-append(446,[MISRA 2012 Rule 13.1, required])
|
||
|
|
||
|
/**** Rule 13.2 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e564 /* variable depends on order of evaluation */
|
||
|
+elib(564)
|
||
|
-append(564,[MISRA 2012 Rule 13.2, required])
|
||
|
+e864 /* variable possibly depends on order of evaluation */
|
||
|
+elib(864)
|
||
|
-append(864,[MISRA 2012 Rule 13.2, required])
|
||
|
+e931 /* both sides have side effects */
|
||
|
+elib(931)
|
||
|
-append(931,[MISRA 2012 Rule 13.2, required])
|
||
|
|
||
|
/**** Rule 13.3 (Adv) ************/
|
||
|
|
||
|
+e9049 /* increment/decrement combined with other operations */
|
||
|
+elib(9049)
|
||
|
-append(9049,[MISRA 2012 Rule 13.3, advisory])
|
||
|
|
||
|
/**** Rule 13.4 (Adv) ************/
|
||
|
|
||
|
+e720 /* Boolean test of assignment */
|
||
|
+elib(720)
|
||
|
-append(720,[MISRA 2012 Rule 13.4, advisory])
|
||
|
+e820 /* Boolean test of parenthesized assignment */
|
||
|
+elib(820)
|
||
|
-append(820,[MISRA 2012 Rule 13.4, advisory])
|
||
|
+e9084 /* assignment used inside larger
|
||
|
expression */
|
||
|
+elib(9084)
|
||
|
-append(9084,[MISRA 2012 Rule 13.4, advisory])
|
||
|
|
||
|
/**** Rule 13.5 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e9007 /* side effects on right hand side of logical operator */
|
||
|
+elib(9007)
|
||
|
-append(9007,[MISRA 2012 Rule 13.5, required])
|
||
|
|
||
|
/**** Rule 13.6 (Mand) ************/
|
||
|
|
||
|
+e9006 /* sizeof used with expression with side effect */
|
||
|
+elib(9006)
|
||
|
-append(9006,[MISRA 2012 Rule 13.6, mandatory])
|
||
|
+e9089 /* potential side-effect in argument to sizeof */
|
||
|
+elib(9089)
|
||
|
-append(9089,[MISRA 2012 Rule 13.6, mandatory])
|
||
|
|
||
|
/**** Rule 14.1 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e9009 /* floating point variable used as loop counter */
|
||
|
+elib(9009)
|
||
|
-append(9009,[MISRA 2012 Rule 14.1, required])
|
||
|
|
||
|
/**** Rule 14.2 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e850 /* index variable modified in body of for loop */
|
||
|
+elib(850)
|
||
|
-append(850,[MISRA 2012 Rule 14.2, required])
|
||
|
|
||
|
/**** Rule 14.3 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e685 /* relational always evaluates to true/false */
|
||
|
+elib(685)
|
||
|
-append(685,[MISRA 2012 Rule 14.3, required])
|
||
|
+e774 /* boolean always evaluates to true/false */
|
||
|
+elib(774)
|
||
|
-append(774,[MISRA 2012 Rule 14.3, required])
|
||
|
+e650 /* constant out of range for operator */
|
||
|
+elib(650)
|
||
|
-append(650,[MISRA 2012 Rule 14.3, required])
|
||
|
|
||
|
/**** Rule 14.4 (Req) ************/
|
||
|
|
||
|
+e9036 /* condition should have essentially Boolean type */
|
||
|
+elib(9036)
|
||
|
-append(9036,[MISRA 2012 Rule 14.4, required])
|
||
|
|
||
|
/**** Rule 15.1 (Adv) ************/
|
||
|
|
||
|
+e801 /* use of 'goto' is deprecated */
|
||
|
+elib(801)
|
||
|
-append(801,[MISRA 2012 Rule 15.1, advisory])
|
||
|
|
||
|
/**** Rule 15.2 (Req) ************/
|
||
|
|
||
|
+e9064 /* goto references earlier label */
|
||
|
+elib(9064)
|
||
|
-append(9064,[MISRA 2012 Rule 15.2, required])
|
||
|
|
||
|
/**** Rule 15.3 (Req) ************/
|
||
|
|
||
|
+e9041 /* goto not nested in the same block as label */
|
||
|
+elib(9041)
|
||
|
-append(9041,[MISRA 2012 Rule 15.3, required])
|
||
|
|
||
|
/**** Rule 15.4 (Adv) ************/
|
||
|
|
||
|
+e9011 /* more than one 'break' terminates loop */
|
||
|
+elib(9011)
|
||
|
-append(9011,[MISRA 2012 Rule 15.4, advisory])
|
||
|
|
||
|
/**** Rule 15.5 (Adv) ************/
|
||
|
|
||
|
+e904 /* return before function end */
|
||
|
+elib(904)
|
||
|
-append(904,[MISRA 2012 Rule 15.5, advisory])
|
||
|
|
||
|
/**** Rule 15.6 (Req) ************/
|
||
|
|
||
|
+e9012 /* sub-statement should be a compound statement */
|
||
|
+elib(9012)
|
||
|
-append(9012,[MISRA 2012 Rule 15.6, required])
|
||
|
|
||
|
/**** Rule 15.7 (Req) ************/
|
||
|
|
||
|
+e9013 /* no 'else' at end of 'if ... else if' chain */
|
||
|
+elib(9013)
|
||
|
-append(9013,[MISRA 2012 Rule 15.7, required])
|
||
|
+e9063 /* no comment or action in else-branch */
|
||
|
+elib(9063)
|
||
|
-append(9063,[MISRA 2012 Rule 15.7, required])
|
||
|
|
||
|
/**** Rule 16.1 (Req) ************/
|
||
|
|
||
|
+e616 /* control flows into case/default */
|
||
|
+elib(616)
|
||
|
-append(616,[MISRA 2012 Rule 16.1, required])
|
||
|
+e744 /* switch statement has no default */
|
||
|
+elib(744)
|
||
|
-append(744,[MISRA 2012 Rule 16.1, required])
|
||
|
+e764 /* switch does not have a case */
|
||
|
+elib(764)
|
||
|
-append(764,[MISRA 2012 Rule 16.1, required])
|
||
|
+e825 /* control flows into case/default without -fallthrough comment */
|
||
|
+elib(825)
|
||
|
-append(825,[MISRA 2012 Rule 16.1, required])
|
||
|
+e9014 /* default missing from switch */
|
||
|
+elib(9014)
|
||
|
-append(9014,[MISRA 2012 Rule 16.1, required])
|
||
|
+e9042 /* departure from MISRA switch syntax */
|
||
|
+elib(9042)
|
||
|
-append(9042,[MISRA 2012 Rule 16.1, required])
|
||
|
+e9077 /* missing unconditional break */
|
||
|
+elib(9077)
|
||
|
-append(9077,[MISRA 2012 Rule 16.1, required])
|
||
|
+e9081 /* too few independent cases for switch */
|
||
|
+elib(9081)
|
||
|
-append(9081,[MISRA 2012 Rule 16.1, required])
|
||
|
+e9082 /* switch statement should either begin or end with default label */
|
||
|
+elib(9082)
|
||
|
-append(9082,[MISRA 2012 Rule 16.1, required])
|
||
|
+e9085 /* statement or comment should appear in default case */
|
||
|
+elib(9085)
|
||
|
-append(9085,[MISRA 2012 Rule 16.1, required])
|
||
|
|
||
|
/**** Rule 16.2 (Req) ************/
|
||
|
|
||
|
+e44 /* Need a switch */
|
||
|
+elib(44)
|
||
|
-append(44,[MISRA 2012 Rule 16.2, required])
|
||
|
+e9055 /* enclosing statement is not a switch */
|
||
|
+elib(9055)
|
||
|
-append(9055,[MISRA 2012 Rule 16.2, required])
|
||
|
|
||
|
/**** Rule 16.3 (Req) ************/
|
||
|
|
||
|
+e616 /* control flows into case/default */
|
||
|
+elib(616)
|
||
|
-append(616,[MISRA 2012 Rule 16.3, required])
|
||
|
+e825 /* control flows into case/default without -fallthrough comment */
|
||
|
+elib(825)
|
||
|
-append(825,[MISRA 2012 Rule 16.3, required])
|
||
|
+e9077 /* missing unconditional break */
|
||
|
+elib(9077)
|
||
|
-append(9077,[MISRA 2012 Rule 16.3, required])
|
||
|
+e9090 /* missing unconditional break */
|
||
|
+elib(9090)
|
||
|
-append(9090,[MISRA 2012 Rule 16.3, required])
|
||
|
|
||
|
/**** Rule 16.4 (Req) ************/
|
||
|
|
||
|
+e744 /* switch statement has no default */
|
||
|
+elib(744)
|
||
|
-append(744,[MISRA 2012 Rule 16.4, required])
|
||
|
+e9014 /* switch statement has no default */
|
||
|
+elib(9014)
|
||
|
-append(9014,[MISRA 2012 Rule 16.4, required])
|
||
|
+e9085 /* default case has no statement nor comment */
|
||
|
+elib(9085)
|
||
|
-append(9085,[MISRA 2012 Rule 16.4, required])
|
||
|
|
||
|
/**** Rule 16.5 (Req) ************/
|
||
|
|
||
|
+e9082 /* default should be first or last */
|
||
|
+elib(9082)
|
||
|
-append(9082,[MISRA 2012 Rule 16.5, required])
|
||
|
|
||
|
/**** Rule 16.6 (Req) ************/
|
||
|
|
||
|
+e764 /* switch does not have a case */
|
||
|
+elib(764)
|
||
|
-append(764,[MISRA 2012 Rule 16.6, required])
|
||
|
+e9081 /* too few cases */
|
||
|
+elib(9081)
|
||
|
-append(9081,[MISRA 2012 Rule 16.6, required])
|
||
|
|
||
|
/**** Rule 16.7 (Req) ************/
|
||
|
|
||
|
+e483 /* boolean value in switch expression */
|
||
|
+elib(483)
|
||
|
-append(483,[MISRA 2012 Rule 16.7, required])
|
||
|
|
||
|
/**** Rule 17.1 (Req) ************/
|
||
|
|
||
|
+e829 /* warn on header usage */
|
||
|
+elib(829)
|
||
|
+headerwarn(stdarg.h)
|
||
|
-append(829(stdarg.h),[MISRA 2012 Rule 17.1, required])
|
||
|
-deprecate(macro,va_arg,[MISRA 2012 Rule 17.1, required])
|
||
|
-deprecate(macro,va_start,[MISRA 2012 Rule 17.1, required])
|
||
|
-deprecate(macro,va_end,[MISRA 2012 Rule 17.1, required])
|
||
|
-deprecate(macro,va_copy,[MISRA 2012 Rule 17.1, required])
|
||
|
|
||
|
/**** Rule 17.2 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e9070
|
||
|
-append(9070,[MISRA 2012 Rule 17.2, required])
|
||
|
|
||
|
/**** Rule 17.3 (Mand) ************/
|
||
|
|
||
|
+e718 /* symbol undeclared, assumed to return int */
|
||
|
+elib(718)
|
||
|
-append(718,[MISRA 2012 Rule 17.3, mandatory])
|
||
|
|
||
|
/**** Rule 17.4 (Mand) ************/
|
||
|
|
||
|
+e533 /* function should return a value */
|
||
|
+elib(533)
|
||
|
-append(533,[MISRA 2012 Rule 17.4, mandatory])
|
||
|
|
||
|
/**** Rule 17.5 (Adv) ************/
|
||
|
|
||
|
/* MISRA has declared this rule to be "undecidable". */
|
||
|
|
||
|
/**** Rule 17.6 (Mand) ************/
|
||
|
|
||
|
+e9043 /* static between brackets of array declaration */
|
||
|
+elib(9043)
|
||
|
-append(9043,[MISRA 2012 Rule 17.6, mandatory])
|
||
|
|
||
|
/**** Rule 17.7 (Req) ************/
|
||
|
|
||
|
+e534 /* ignoring return value of function */
|
||
|
+elib(534)
|
||
|
-append(534,[MISRA 2012 Rule 17.7, required])
|
||
|
|
||
|
/**** Rule 17.8 (Adv) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e9044 /* function parameter modified */
|
||
|
+elib(9044)
|
||
|
-append(9044,[MISRA 2012 Rule 17.8, advisory])
|
||
|
|
||
|
/**** Rule 18.1 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e415 /* out-of-bounds pointer */
|
||
|
+elib(415)
|
||
|
-append(415,[MISRA 2012 Rule 18.1, required])
|
||
|
+e416 /* out-of-bounds pointer */
|
||
|
+elib(416)
|
||
|
-append(416,[MISRA 2012 Rule 18.1, required])
|
||
|
+e428 /* out-of-bounds pointer */
|
||
|
+elib(428)
|
||
|
-append(428,[MISRA 2012 Rule 18.1, required])
|
||
|
+e661 /* out-of-bounds pointer */
|
||
|
+elib(661)
|
||
|
-append(661,[MISRA 2012 Rule 18.1, required])
|
||
|
+e662 /* out-of-bounds pointer */
|
||
|
+elib(662)
|
||
|
-append(662,[MISRA 2012 Rule 18.1, required])
|
||
|
+e676 /* out-of-bounds pointer */
|
||
|
+elib(676)
|
||
|
-append(676,[MISRA 2012 Rule 18.1, required])
|
||
|
+e796 /* out-of-bounds pointer */
|
||
|
+elib(796)
|
||
|
-append(796,[MISRA 2012 Rule 18.1, required])
|
||
|
+e797 /* out-of-bounds pointer */
|
||
|
+elib(797)
|
||
|
-append(797,[MISRA 2012 Rule 18.1, required])
|
||
|
+e817 /* out-of-bounds pointer */
|
||
|
+elib(817)
|
||
|
-append(817,[MISRA 2012 Rule 18.1, required])
|
||
|
|
||
|
/**** Rule 18.2 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e946 /* relational or subtract operator applied to pointers */
|
||
|
+elib(946)
|
||
|
-append(946,[MISRA 2012 Rule 18.2, required])
|
||
|
+e947 /* relational or subtract operator applied to pointers */
|
||
|
+elib(947)
|
||
|
-append(947,[MISRA 2012 Rule 18.2, required])
|
||
|
|
||
|
/**** Rule 18.3 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e946 /* relational or subtract operator applied to pointers */
|
||
|
+elib(946)
|
||
|
-append(946,[MISRA 2012 Rule 18.3, required])
|
||
|
+e947 /* relational or subtract operator applied to pointers */
|
||
|
+elib(947)
|
||
|
-append(947,[MISRA 2012 Rule 18.3, required])
|
||
|
|
||
|
/**** Rule 18.4 (Adv) ************/
|
||
|
|
||
|
+e9016 /* pointer arithmetic other than array indexing used */
|
||
|
+elib(9016)
|
||
|
-append(9016,[MISRA 2012 Rule 18.4, advisory])
|
||
|
|
||
|
/**** Rule 18.5 (Adv) ************/
|
||
|
|
||
|
+e9025 /* more than two pointer indirection levels used */
|
||
|
+elib(9025)
|
||
|
-append(9025,[MISRA 2012 Rule 18.5, advisory])
|
||
|
|
||
|
/**** Rule 18.6 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e733 /* assigning address of auto to outer scope symbol */
|
||
|
+elib(733)
|
||
|
-append(733,[MISRA 2012 Rule 18.6, required])
|
||
|
+e789 /* assigning address of auto to static */
|
||
|
+elib(789)
|
||
|
-append(789,[MISRA 2012 Rule 18.6, required])
|
||
|
+e604 /* returning address of auto variable */
|
||
|
+elib(604)
|
||
|
-append(604,[MISRA 2012 Rule 18.6, required])
|
||
|
|
||
|
/**** Rule 18.7 (Req) ************/
|
||
|
|
||
|
+e9038 /* flexible array member declared */
|
||
|
+elib(9038)
|
||
|
-append(9038,[MISRA 2012 Rule 18.7, required])
|
||
|
|
||
|
/**** Rule 18.8 (Req) ************/
|
||
|
|
||
|
+e9035 /* variable length array declared */
|
||
|
+elib(9035)
|
||
|
-append(9035,[MISRA 2012 Rule 18.8, required])
|
||
|
|
||
|
/**** Rule 19.1 (Mand) ************/
|
||
|
|
||
|
/* MISRA has declared this rule to be "undecidable". */
|
||
|
|
||
|
/**** Rule 19.2 (Adv) ************/
|
||
|
|
||
|
+e9018 /* union type/object declared */
|
||
|
+elib(9018)
|
||
|
-append(9018,[MISRA 2012 Rule 19.2, advisory])
|
||
|
|
||
|
/**** Rule 20.1 (Adv) ************/
|
||
|
|
||
|
+e9019 /* declaration before #include */
|
||
|
+elib(9019)
|
||
|
-append(9019,[MISRA 2012 Rule 20.1, advisory])
|
||
|
|
||
|
/**** Rule 20.2 (Req) ************/
|
||
|
|
||
|
+e9020 /* header file name with non-standard character */
|
||
|
+elib(9020)
|
||
|
-append(9020,[MISRA 2012 Rule 20.2, required])
|
||
|
/* Note: If your system requires the '\' be used as a directory
|
||
|
separator, uncomment the following option.
|
||
|
*/
|
||
|
// -estring(9020,\)
|
||
|
|
||
|
/**** Rule 20.3 (Req) ************/
|
||
|
|
||
|
+e12 /* Need < or " after #include */
|
||
|
+elib(12)
|
||
|
-append(12,[MISRA 2012 Rule 20.3, required])
|
||
|
+e9086 /* multiple arguments after #include */
|
||
|
+elib(9086)
|
||
|
-append(9086,[MISRA 2012 Rule 20.3, required])
|
||
|
|
||
|
/**** Rule 20.4 (Req) ************/
|
||
|
|
||
|
+e9051 /* macro with same name as a keyword */
|
||
|
+elib(9051)
|
||
|
-append(9051,[MISRA 2012 Rule 20.4, required])
|
||
|
|
||
|
/**** Rule 20.5 (Adv) ************/
|
||
|
|
||
|
+e9021 /* use of '#undef' is discouraged */
|
||
|
+elib(9021)
|
||
|
-append(9021,[MISRA 2012 Rule 20.5, advisory])
|
||
|
|
||
|
/**** Rule 20.6 (Req) ************/
|
||
|
|
||
|
+e436 /* preprocessor directive in invocation of macro */
|
||
|
+elib(436)
|
||
|
-append(436,[MISRA 2012 Rule 20.6, required])
|
||
|
|
||
|
/**** Rule 20.7 (Req) ************/
|
||
|
|
||
|
+e665 /* expression passed to unparenthesized macro */
|
||
|
+elib(665)
|
||
|
-append(665,[MISRA 2012 Rule 20.7, required])
|
||
|
|
||
|
/**** Rule 20.8 (Req) ************/
|
||
|
|
||
|
+e9037 /* conditional of #if/#elif does not evaluate to 0 or 1 */
|
||
|
+elib(9037)
|
||
|
-append(9037,[MISRA 2012 Rule 20.8, required])
|
||
|
|
||
|
/**** Rule 20.9 (Req) ************/
|
||
|
|
||
|
+e553 /* Undefined preprocessor variable, assumed 0 */
|
||
|
+elib(553)
|
||
|
-append(553,[MISRA 2012 Rule 20.9, required])
|
||
|
|
||
|
/**** Rule 20.10 (Adv) ************/
|
||
|
|
||
|
+e9024 /* '#/##' operators used */
|
||
|
+elib(9024)
|
||
|
-append(9024,[MISRA 2012 Rule 20.10, advisory])
|
||
|
|
||
|
/**** Rule 20.11 (Req) ************/
|
||
|
|
||
|
+e484 /* stringize operator followed by macro parameter followed by pasting operator */
|
||
|
+elib(484)
|
||
|
-append(484,[MISRA 2012 Rule 20.11, required])
|
||
|
|
||
|
/**** Rule 20.12 (Req) ************/
|
||
|
|
||
|
+e9015 /* macro argument is used both with and without '#/##' and is subject to further replacement */
|
||
|
+elib(9015)
|
||
|
-append(9015,[MISRA 2012 Rule 20.12, required])
|
||
|
|
||
|
/**** Rule 20.13 (Req) ************/
|
||
|
|
||
|
+e544 /* endif or else not followed by EOL */
|
||
|
+elib(544)
|
||
|
-append(544,[MISRA 2012 Rule 20.13, required])
|
||
|
+e16 /* # directive not followed by recognizable word */
|
||
|
+elib(16)
|
||
|
-append(16,[MISRA 2012 Rule 20.13, required])
|
||
|
/* other parts of this rule such as a syntax check of the disabled
|
||
|
portions of the code do not seem to be statically checkable
|
||
|
*/
|
||
|
|
||
|
/**** Rule 20.14 (Req) ************/
|
||
|
|
||
|
+e405 /* #if/#ifdef/#ifndef not closed off */
|
||
|
+elib(405)
|
||
|
-append(405,[MISRA 2012 Rule 20.14, required])
|
||
|
|
||
|
/**** Rule 21.1 (Req) ************/
|
||
|
|
||
|
+e136 /* Illegal macro name */
|
||
|
+elib(136)
|
||
|
-append(136,[MISRA 2012 Rule 21.1, required])
|
||
|
/* Undefining standard library macros is covered by rule 20.5. */
|
||
|
/* Defining/redefining reserved/standard identifiers is covered
|
||
|
by rules 20.4 and 21.2.
|
||
|
*/
|
||
|
+e9071 /* defined macro reserved to the compiler */
|
||
|
+elib(9071)
|
||
|
-append(9071,[MISRA 2012 Rule 21.1, required])
|
||
|
// explicit exemptions
|
||
|
-estring(9071,* because *)
|
||
|
-estring(9071,cerf)
|
||
|
-estring(9071,cerfc)
|
||
|
-estring(9071,cexp2)
|
||
|
-estring(9071,cexpm1)
|
||
|
-estring(9071,clog10)
|
||
|
-estring(9071,clog1p)
|
||
|
-estring(9071,clog2)
|
||
|
-estring(9071,clgamma)
|
||
|
-estring(9071,ctgamma)
|
||
|
-estring(9071,cerff)
|
||
|
-estring(9071,cerfcf)
|
||
|
-estring(9071,cexp2f)
|
||
|
-estring(9071,cexpm1f)
|
||
|
-estring(9071,clog10f)
|
||
|
-estring(9071,clog1pf)
|
||
|
-estring(9071,clog2f)
|
||
|
-estring(9071,clgammaf)
|
||
|
-estring(9071,ctgammaf)
|
||
|
-estring(9071,cerfl)
|
||
|
-estring(9071,cerfcl)
|
||
|
-estring(9071,cexp2l)
|
||
|
-estring(9071,cexpm1l)
|
||
|
-estring(9071,clog10l)
|
||
|
-estring(9071,clog1pl)
|
||
|
-estring(9071,clog2l)
|
||
|
-estring(9071,clgammal)
|
||
|
-estring(9071,ctgammal)
|
||
|
-estring(9071,E0*)
|
||
|
-estring(9071,E1*)
|
||
|
-estring(9071,E2*)
|
||
|
-estring(9071,E3*)
|
||
|
-estring(9071,E4*)
|
||
|
-estring(9071,E5*)
|
||
|
-estring(9071,E6*)
|
||
|
-estring(9071,E7*)
|
||
|
-estring(9071,E8*)
|
||
|
-estring(9071,E9*)
|
||
|
-estring(9071,NDEBUG)
|
||
|
-estring(9071,PRIa*)
|
||
|
-estring(9071,PRIb*)
|
||
|
-estring(9071,PRIc*)
|
||
|
-estring(9071,PRId*)
|
||
|
-estring(9071,PRIe*)
|
||
|
-estring(9071,PRIf*)
|
||
|
-estring(9071,PRIg*)
|
||
|
-estring(9071,PRIh*)
|
||
|
-estring(9071,PRIi*)
|
||
|
-estring(9071,PRIj*)
|
||
|
-estring(9071,PRIk*)
|
||
|
-estring(9071,PRIl*)
|
||
|
-estring(9071,PRIm*)
|
||
|
-estring(9071,PRIn*)
|
||
|
-estring(9071,PRIo*)
|
||
|
-estring(9071,PRIp*)
|
||
|
-estring(9071,PRIq*)
|
||
|
-estring(9071,PRIr*)
|
||
|
-estring(9071,PRIs*)
|
||
|
-estring(9071,PRIt*)
|
||
|
-estring(9071,PRIu*)
|
||
|
-estring(9071,PRIv*)
|
||
|
-estring(9071,PRIw*)
|
||
|
-estring(9071,PRIx*)
|
||
|
-estring(9071,PRIy*)
|
||
|
-estring(9071,PRIz*)
|
||
|
-estring(9071,PRIX*)
|
||
|
-estring(9071,SCNa*)
|
||
|
-estring(9071,SCNb*)
|
||
|
-estring(9071,SCNc*)
|
||
|
-estring(9071,SCNd*)
|
||
|
-estring(9071,SCNe*)
|
||
|
-estring(9071,SCNf*)
|
||
|
-estring(9071,SCNg*)
|
||
|
-estring(9071,SCNh*)
|
||
|
-estring(9071,SCNi*)
|
||
|
-estring(9071,SCNj*)
|
||
|
-estring(9071,SCNk*)
|
||
|
-estring(9071,SCNl*)
|
||
|
-estring(9071,SCNm*)
|
||
|
-estring(9071,SCNn*)
|
||
|
-estring(9071,SCNo*)
|
||
|
-estring(9071,SCNp*)
|
||
|
-estring(9071,SCNq*)
|
||
|
-estring(9071,SCNr*)
|
||
|
-estring(9071,SCNs*)
|
||
|
-estring(9071,SCNt*)
|
||
|
-estring(9071,SCNu*)
|
||
|
-estring(9071,SCNv*)
|
||
|
-estring(9071,SCNw*)
|
||
|
-estring(9071,SCNx*)
|
||
|
-estring(9071,SCNy*)
|
||
|
-estring(9071,SCNz*)
|
||
|
-estring(9071,SCNX*)
|
||
|
+e9083 /* undefined macro reserved to the compiler */
|
||
|
+elib(9083)
|
||
|
-append(9083,[MISRA 2012 Rule 21.1, required])
|
||
|
// explicit exemptions
|
||
|
-estring(9083,* because *)
|
||
|
-estring(9083,cerf)
|
||
|
-estring(9083,cerfc)
|
||
|
-estring(9083,cexp2)
|
||
|
-estring(9083,cexpm1)
|
||
|
-estring(9083,clog10)
|
||
|
-estring(9083,clog1p)
|
||
|
-estring(9083,clog2)
|
||
|
-estring(9083,clgamma)
|
||
|
-estring(9083,ctgamma)
|
||
|
-estring(9083,cerff)
|
||
|
-estring(9083,cerfcf)
|
||
|
-estring(9083,cexp2f)
|
||
|
-estring(9083,cexpm1f)
|
||
|
-estring(9083,clog10f)
|
||
|
-estring(9083,clog1pf)
|
||
|
-estring(9083,clog2f)
|
||
|
-estring(9083,clgammaf)
|
||
|
-estring(9083,ctgammaf)
|
||
|
-estring(9083,cerfl)
|
||
|
-estring(9083,cerfcl)
|
||
|
-estring(9083,cexp2l)
|
||
|
-estring(9083,cexpm1l)
|
||
|
-estring(9083,clog10l)
|
||
|
-estring(9083,clog1pl)
|
||
|
-estring(9083,clog2l)
|
||
|
-estring(9083,clgammal)
|
||
|
-estring(9083,ctgammal)
|
||
|
-estring(9083,E0*)
|
||
|
-estring(9083,E1*)
|
||
|
-estring(9083,E2*)
|
||
|
-estring(9083,E3*)
|
||
|
-estring(9083,E4*)
|
||
|
-estring(9083,E5*)
|
||
|
-estring(9083,E6*)
|
||
|
-estring(9083,E7*)
|
||
|
-estring(9083,E8*)
|
||
|
-estring(9083,E9*)
|
||
|
-estring(9083,NDEBUG)
|
||
|
-estring(9083,PRIa*)
|
||
|
-estring(9083,PRIb*)
|
||
|
-estring(9083,PRIc*)
|
||
|
-estring(9083,PRId*)
|
||
|
-estring(9083,PRIe*)
|
||
|
-estring(9083,PRIf*)
|
||
|
-estring(9083,PRIg*)
|
||
|
-estring(9083,PRIh*)
|
||
|
-estring(9083,PRIi*)
|
||
|
-estring(9083,PRIj*)
|
||
|
-estring(9083,PRIk*)
|
||
|
-estring(9083,PRIl*)
|
||
|
-estring(9083,PRIm*)
|
||
|
-estring(9083,PRIn*)
|
||
|
-estring(9083,PRIo*)
|
||
|
-estring(9083,PRIp*)
|
||
|
-estring(9083,PRIq*)
|
||
|
-estring(9083,PRIr*)
|
||
|
-estring(9083,PRIs*)
|
||
|
-estring(9083,PRIt*)
|
||
|
-estring(9083,PRIu*)
|
||
|
-estring(9083,PRIv*)
|
||
|
-estring(9083,PRIw*)
|
||
|
-estring(9083,PRIx*)
|
||
|
-estring(9083,PRIy*)
|
||
|
-estring(9083,PRIz*)
|
||
|
-estring(9083,PRIX*)
|
||
|
-estring(9083,SCNa*)
|
||
|
-estring(9083,SCNb*)
|
||
|
-estring(9083,SCNc*)
|
||
|
-estring(9083,SCNd*)
|
||
|
-estring(9083,SCNe*)
|
||
|
-estring(9083,SCNf*)
|
||
|
-estring(9083,SCNg*)
|
||
|
-estring(9083,SCNh*)
|
||
|
-estring(9083,SCNi*)
|
||
|
-estring(9083,SCNj*)
|
||
|
-estring(9083,SCNk*)
|
||
|
-estring(9083,SCNl*)
|
||
|
-estring(9083,SCNm*)
|
||
|
-estring(9083,SCNn*)
|
||
|
-estring(9083,SCNo*)
|
||
|
-estring(9083,SCNp*)
|
||
|
-estring(9083,SCNq*)
|
||
|
-estring(9083,SCNr*)
|
||
|
-estring(9083,SCNs*)
|
||
|
-estring(9083,SCNt*)
|
||
|
-estring(9083,SCNu*)
|
||
|
-estring(9083,SCNv*)
|
||
|
-estring(9083,SCNw*)
|
||
|
-estring(9083,SCNx*)
|
||
|
-estring(9083,SCNy*)
|
||
|
-estring(9083,SCNz*)
|
||
|
-estring(9083,SCNX*)
|
||
|
|
||
|
/**** Rule 21.2 (Req) ************/
|
||
|
|
||
|
+e683 /* complain about #define standard functions */
|
||
|
+elib(683)
|
||
|
-append(683,[MISRA 2012 Rule 21.2, required])
|
||
|
/* Undefining standard library macros is covered by rule 20.5. */
|
||
|
/* Defining/redefining reserved/standard identifiers is covered
|
||
|
by rule 20.4 and 21.2.
|
||
|
*/
|
||
|
|
||
|
/**** Rule 21.3 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(function,calloc,[MISRA 2012 Rule 21.3, required])
|
||
|
-deprecate(macro,calloc,[MISRA 2012 Rule 21.3, required])
|
||
|
-deprecate(function,malloc,[MISRA 2012 Rule 21.3, required])
|
||
|
-deprecate(macro,malloc,[MISRA 2012 Rule 21.3, required])
|
||
|
-deprecate(function,realloc,[MISRA 2012 Rule 21.3, required])
|
||
|
-deprecate(macro,realloc,[MISRA 2012 Rule 21.3, required])
|
||
|
-deprecate(function,free,[MISRA 2012 Rule 21.3, required])
|
||
|
-deprecate(macro,free,[MISRA 2012 Rule 21.3, required])
|
||
|
|
||
|
/**** Rule 21.4 (Req) ************/
|
||
|
|
||
|
+e829 /* warn on header usage */
|
||
|
+elib(829)
|
||
|
+headerwarn(setjmp.h)
|
||
|
-append(829(setjmp.h),[MISRA 2012 Rule 21.4, required])
|
||
|
-deprecate(function,setjmp,[MISRA 2012 Rule 21.4, required])
|
||
|
-deprecate(function,longjmp,[MISRA 2012 Rule 21.4, required])
|
||
|
-deprecate(macro,setjmp,[MISRA 2012 Rule 21.4, required])
|
||
|
-deprecate(macro,longjmp,[MISRA 2012 Rule 21.4, required])
|
||
|
|
||
|
/**** Rule 21.5 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(function,signal,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(function,raise,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIGABRT,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIGFPE,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIGILL,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIGINT,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIGSEGV,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIGTERM,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIG_DFL,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIG_ERR,[MISRA 2012 Rule 21.5, required])
|
||
|
-deprecate(macro,SIG_IGN,[MISRA 2012 Rule 21.5, required])
|
||
|
+e829 /* warn on header usage */
|
||
|
+elib(829)
|
||
|
+headerwarn(signal.h)
|
||
|
-append(829(signal.h),[MISRA 2012 Rule 21.5, required])
|
||
|
|
||
|
/**** Rule 21.6 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(function,clearerr,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fclose,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,feof,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,ferror,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fflush,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fgetc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fgetpos,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fgets,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fgetwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fgetws,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fopen,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fputc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fputs,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fputwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fputws,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fread,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fseek,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fsetpos,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,freopen,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,ftell,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fwide,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fwprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fwrite,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,fwscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,getc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,getchar,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,gets,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,getwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,getwchar,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,perror,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,printf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,putc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,putchar,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,puts,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,putwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,putwchar,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,remove,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,rename,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,rewind,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,scanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,setbuf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,setvbuf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,snprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,sprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,sscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,swprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,swscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,tmpfile,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,tmpnam,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,ungetc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,ungetwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vfprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vfscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vfwprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vfwscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vsnprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vsprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vsscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vswprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vswscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vwprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,vwscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,wprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(function,wscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,clearerr,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fclose,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,feof,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,ferror,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fflush,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fgetc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fgets,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fgetpos,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fgetwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fgetws,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fopen,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fputc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fputs,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fputwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fputws,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fread,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fseek,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fsetpos,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,freopen,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,ftell,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fwide,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fwprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fwrite,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,fwscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,getc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,getchar,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,gets,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,getwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,getwchar,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,perror,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,printf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,putc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,putchar,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,puts,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,putwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,putwchar,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,remove,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,rename,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,rewind,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,scanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,setbuf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,setvbuf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,snprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,sprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,sscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,swprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,swscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,tmpfile,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,tmpnam,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,ungetc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,ungetwc,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vfprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vfscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vfwprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vfwscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vsnprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vsprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vsscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vswprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vswscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vwprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,vwscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,wprintf,[MISRA 2012 Rule 21.6, required])
|
||
|
-deprecate(macro,wscanf,[MISRA 2012 Rule 21.6, required])
|
||
|
|
||
|
/**** Rule 21.7 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(function,atof,[MISRA 2012 Rule 21.7, required])
|
||
|
-deprecate(function,atoi,[MISRA 2012 Rule 21.7, required])
|
||
|
-deprecate(function,atol,[MISRA 2012 Rule 21.7, required])
|
||
|
-deprecate(function,atoll,[MISRA 2012 Rule 21.7, required])
|
||
|
-deprecate(macro,atof,[MISRA 2012 Rule 21.7, required])
|
||
|
-deprecate(macro,atoi,[MISRA 2012 Rule 21.7, required])
|
||
|
-deprecate(macro,atol,[MISRA 2012 Rule 21.7, required])
|
||
|
-deprecate(macro,atoll,[MISRA 2012 Rule 21.7, required])
|
||
|
|
||
|
/**** Rule 21.8 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(function,abort,[MISRA 2012 Rule 21.8, required])
|
||
|
-deprecate(function,exit,[MISRA 2012 Rule 21.8, required])
|
||
|
-deprecate(function,getenv,[MISRA 2012 Rule 21.8, required])
|
||
|
-deprecate(function,system,[MISRA 2012 Rule 21.8, required])
|
||
|
-deprecate(macro,abort,[MISRA 2012 Rule 21.8, required])
|
||
|
-deprecate(macro,exit,[MISRA 2012 Rule 21.8, required])
|
||
|
-deprecate(macro,getenv,[MISRA 2012 Rule 21.8, required])
|
||
|
-deprecate(macro,system,[MISRA 2012 Rule 21.8, required])
|
||
|
|
||
|
/**** Rule 21.9 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(function,bsearch,[MISRA 2012 Rule 21.9, required])
|
||
|
-deprecate(function,qsort,[MISRA 2012 Rule 21.9, required])
|
||
|
-deprecate(macro,bsearch,[MISRA 2012 Rule 21.9, required])
|
||
|
-deprecate(macro,qsort,[MISRA 2012 Rule 21.9, required])
|
||
|
|
||
|
/**** Rule 21.10 (Req) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(macro,wcsftime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,wcsftime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,clock,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,clock,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,difftime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,difftime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,mktime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,mktime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,time,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,time,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,asctime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,asctime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,ctime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,ctime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,gmtime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,gmtime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,localtime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,localtime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,strftime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(function,strftime,[MISRA 2012 Rule 21.10, required])
|
||
|
-deprecate(macro,CLOCKS_PER_SEC,[MISRA 2012 Rule 21.10, required])
|
||
|
+e829 /* warn on header usage */
|
||
|
+elib(829)
|
||
|
+headerwarn(time.h)
|
||
|
-append(829(time.h),[MISRA 2012 Rule 21.10, required])
|
||
|
|
||
|
/**** Rule 21.11 (Req) ************/
|
||
|
|
||
|
+e829 /* warn on header usage */
|
||
|
+elib(829)
|
||
|
+headerwarn(tgmath.h)
|
||
|
-append(829(tgmath.h),[MISRA 2012 Rule 21.11, required])
|
||
|
|
||
|
/**** Rule 21.12 (Adv) ************/
|
||
|
|
||
|
+e586 /* Symbol is deprecated */
|
||
|
+elib(586)
|
||
|
-deprecate(function,feclearexcept,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,feclearexcept,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(function,fegetexceptflag,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,fegetexceptflag,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(function,feraiseexcept,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,feraiseexcept,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(function,fesetexceptflag,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,fesetexceptflag,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(function,fetestexcept,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,fetestexcept,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,FE_INEXACT,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,FE_DIVBYZERO,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,FE_UNDERFLOW,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,FE_OVERFLOW,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,FE_INVALID,[MISRA 2012 Rule 21.12, advisory])
|
||
|
-deprecate(macro,FE_ALL_EXCEPT,[MISRA 2012 Rule 21.12, advisory])
|
||
|
|
||
|
/**** Rule 22.1 (Req) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e429 /* custodial pointer neither free'd nor returned */
|
||
|
+elib(429)
|
||
|
-append(429,[MISRA 2012 Rule 22.1, required])
|
||
|
-function_pair(fopen,fclose)
|
||
|
+e480 /* no balancing call */
|
||
|
+elib(480)
|
||
|
-append(480,[MISRA 2012 Rule 22.1, required])
|
||
|
+e481 /* different balance call states */
|
||
|
+elib(481)
|
||
|
-append(481,[MISRA 2012 Rule 22.1, required])
|
||
|
|
||
|
/**** Rule 22.2 (Mand) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e424 /* inappropriate deallocation */
|
||
|
+elib(424)
|
||
|
-append(424,[MISRA 2012 Rule 22.2, mandatory])
|
||
|
+e449 /* pointer previously deallocated */
|
||
|
+elib(449)
|
||
|
-append(449,[MISRA 2012 Rule 22.2, mandatory])
|
||
|
|
||
|
/**** Rule 22.3 (Req) ************/
|
||
|
|
||
|
/* MISRA has declared this rule to be "undecidable". */
|
||
|
|
||
|
/**** Rule 22.4 (Mand) ************/
|
||
|
|
||
|
/* MISRA has declared this rule to be "undecidable". */
|
||
|
|
||
|
/**** Rule 22.5 (Mand) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
Software provides the following message to assist:
|
||
|
*/
|
||
|
+e9047 /* FILE pointer dereferenced */
|
||
|
+elib(9047)
|
||
|
-append(9047,[MISRA 2012 Rule 22.5, mandatory])
|
||
|
|
||
|
|
||
|
/**** Rule 22.6 (Mand) ************/
|
||
|
|
||
|
/* While MISRA has declared this rule to be "undecidable", Gimpel
|
||
|
* Software provides the following options to assist:
|
||
|
*/
|
||
|
+e449 /* previously deallocated pointer */
|
||
|
+elib(449)
|
||
|
-append(449,[MISRA 2012 Rule 22.6, mandatory])
|