mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
docs/misra/rules.rst: add more rules
Add the rules accepted in the last three MISRA C working group meetings. Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
519c7a1d58
commit
f45e488e7b
1 file changed
+34
@@ -462,6 +462,13 @@ maintainers if you want to suggest a change.
|
||||
|
||||
while(0) and while(1) and alike are allowed.
|
||||
|
||||
* - `Rule 16.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_03.c>`_
|
||||
- Required
|
||||
- An unconditional break statement shall terminate every
|
||||
switch-clause
|
||||
- In addition to break, also other unconditional flow control statements
|
||||
such as continue, return, goto are allowed.
|
||||
|
||||
* - `Rule 16.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_16_07.c>`_
|
||||
- Required
|
||||
- A switch-expression shall not have essentially Boolean type
|
||||
@@ -478,12 +485,27 @@ maintainers if you want to suggest a change.
|
||||
have an explicit return statement with an expression
|
||||
-
|
||||
|
||||
* - `Rule 17.5 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_05.c>`_
|
||||
- Advisory
|
||||
- The function argument corresponding to a parameter declared to
|
||||
have an array type shall have an appropriate number of elements
|
||||
-
|
||||
|
||||
* - `Rule 17.6 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_06.c>`_
|
||||
- Mandatory
|
||||
- The declaration of an array parameter shall not contain the
|
||||
static keyword between the [ ]
|
||||
-
|
||||
|
||||
* - `Rule 17.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_17_07.c>`_
|
||||
- Required
|
||||
- The value returned by a function having non-void return type
|
||||
shall be used
|
||||
- Please beware that this rule has many violations in the Xen
|
||||
codebase today, and its adoption is aspirational. However, when
|
||||
submitting new patches please try to decrease the number of
|
||||
violations when possible.
|
||||
|
||||
* - `Rule 18.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_18_03.c>`_
|
||||
- Required
|
||||
- The relational operators > >= < and <= shall not be applied to objects of pointer type except where they point into the same object
|
||||
@@ -498,6 +520,11 @@ maintainers if you want to suggest a change.
|
||||
instances where Eclair is unable to verify that the code is valid
|
||||
in regard to Rule 19.1. Caution reports are not violations.
|
||||
|
||||
* - `Rule 20.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_04.c>`_
|
||||
- Required
|
||||
- A macro shall not be defined with the same name as a keyword
|
||||
-
|
||||
|
||||
* - `Rule 20.7 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_07.c>`_
|
||||
- Required
|
||||
- Expressions resulting from the expansion of macro parameters
|
||||
@@ -506,6 +533,13 @@ maintainers if you want to suggest a change.
|
||||
as function arguments, as macro arguments, array indices, lhs in
|
||||
assignments
|
||||
|
||||
* - `Rule 20.9 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_09.c>`_
|
||||
- Required
|
||||
- All identifiers used in the controlling expression of #if or
|
||||
#elif preprocessing directives shall be #define'd before
|
||||
evaluation
|
||||
-
|
||||
|
||||
* - `Rule 20.13 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_13.c>`_
|
||||
- Required
|
||||
- A line whose first token is # shall be a valid preprocessing
|
||||
|
||||