Message ID | alpine.DEB.2.22.394.2312071609060.1265976@ubuntu-linux-20-04-desktop (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] docs/misra/rules.rst: add more rules | expand |
On 08.12.2023 01:09, Stefano Stabellini wrote: > 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> > --- a/docs/misra/rules.rst > +++ b/docs/misra/rules.rst > @@ -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 flow control statements such as > + continue, return, goto are allowed. To eliminate any room for doubt, maybe add "unconditional" also again here? Jan
On Fri, 8 Dec 2023, Jan Beulich wrote: > On 08.12.2023 01:09, Stefano Stabellini wrote: > > 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> > > > --- a/docs/misra/rules.rst > > +++ b/docs/misra/rules.rst > > @@ -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 flow control statements such as > > + continue, return, goto are allowed. > > To eliminate any room for doubt, maybe add "unconditional" also again here? Thanks for the Ack! I am OK with the addition you suggested. I'll let you do it on commit so that we can be sure it is added in the way you intended.
On 08/12/2023 12:09 am, Stefano Stabellini wrote: > Add the rules accepted in the last three MISRA C working group meetings. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> > --- > Changes in v2: > - remove 17.1 for now, to be a separate patch > - add a clarification comment for 17.7 > --- > docs/misra/rules.rst | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst > index 75921b9a34..2b570af0e0 100644 > --- a/docs/misra/rules.rst > +++ b/docs/misra/rules.rst > @@ -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 flow control statements such as > + continue, return, goto are allowed. And what about fallthrough ? $ git grep -iwe fallthrough -e "fall through" | wc -l 315 This is an under-estimate because there are other comment based justifications too. All are an explicit statement that a break, or other control flow statement, is wrong in the given context. ~Andrew
On 11.12.2023 11:53, Andrew Cooper wrote: > On 08/12/2023 12:09 am, Stefano Stabellini wrote: >> Add the rules accepted in the last three MISRA C working group meetings. >> >> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> >> --- >> Changes in v2: >> - remove 17.1 for now, to be a separate patch >> - add a clarification comment for 17.7 >> --- >> docs/misra/rules.rst | 34 ++++++++++++++++++++++++++++++++++ >> 1 file changed, 34 insertions(+) >> >> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst >> index 75921b9a34..2b570af0e0 100644 >> --- a/docs/misra/rules.rst >> +++ b/docs/misra/rules.rst >> @@ -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 flow control statements such as >> + continue, return, goto are allowed. > > And what about fallthrough ? > > $ git grep -iwe fallthrough -e "fall through" | wc -l > 315 > > This is an under-estimate because there are other comment based > justifications too. > > All are an explicit statement that a break, or other control flow > statement, is wrong in the given context. But that's going to be documented in deviations.rst according to my understanding. Jan
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst index 75921b9a34..2b570af0e0 100644 --- a/docs/misra/rules.rst +++ b/docs/misra/rules.rst @@ -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 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
Add the rules accepted in the last three MISRA C working group meetings. Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> --- Changes in v2: - remove 17.1 for now, to be a separate patch - add a clarification comment for 17.7 --- docs/misra/rules.rst | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)