All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] docs/misra/rules.rst: add more rules
@ 2023-12-08  0:09 Stefano Stabellini
  2023-12-08  7:18 ` Jan Beulich
  2023-12-11 10:53 ` Andrew Cooper
  0 siblings, 2 replies; 5+ messages in thread
From: Stefano Stabellini @ 2023-12-08  0:09 UTC (permalink / raw)
  To: xen-devel
  Cc: andrew.cooper3, jbeulich, george.dunlap, julien, sstabellini,
	bertrand.marquis, roger.pau, roberto.bagnara, federico.serafini

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.
+
    * - `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
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] docs/misra/rules.rst: add more rules
  2023-12-08  0:09 [PATCH v2] docs/misra/rules.rst: add more rules Stefano Stabellini
@ 2023-12-08  7:18 ` Jan Beulich
  2023-12-09  1:36   ` Stefano Stabellini
  2023-12-11 10:53 ` Andrew Cooper
  1 sibling, 1 reply; 5+ messages in thread
From: Jan Beulich @ 2023-12-08  7:18 UTC (permalink / raw)
  To: Stefano Stabellini
  Cc: andrew.cooper3, george.dunlap, julien, bertrand.marquis,
	roger.pau, roberto.bagnara, federico.serafini, xen-devel

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] docs/misra/rules.rst: add more rules
  2023-12-08  7:18 ` Jan Beulich
@ 2023-12-09  1:36   ` Stefano Stabellini
  0 siblings, 0 replies; 5+ messages in thread
From: Stefano Stabellini @ 2023-12-09  1:36 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Stefano Stabellini, andrew.cooper3, george.dunlap, julien,
	bertrand.marquis, roger.pau, roberto.bagnara, federico.serafini,
	xen-devel

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.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] docs/misra/rules.rst: add more rules
  2023-12-08  0:09 [PATCH v2] docs/misra/rules.rst: add more rules Stefano Stabellini
  2023-12-08  7:18 ` Jan Beulich
@ 2023-12-11 10:53 ` Andrew Cooper
  2023-12-11 11:20   ` Jan Beulich
  1 sibling, 1 reply; 5+ messages in thread
From: Andrew Cooper @ 2023-12-11 10:53 UTC (permalink / raw)
  To: Stefano Stabellini, xen-devel, roberto.bagnara, federico.serafini
  Cc: jbeulich, george.dunlap, julien, bertrand.marquis, roger.pau

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] docs/misra/rules.rst: add more rules
  2023-12-11 10:53 ` Andrew Cooper
@ 2023-12-11 11:20   ` Jan Beulich
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Beulich @ 2023-12-11 11:20 UTC (permalink / raw)
  To: Andrew Cooper, Stefano Stabellini
  Cc: george.dunlap, julien, bertrand.marquis, roger.pau, xen-devel,
	roberto.bagnara, federico.serafini

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-12-11 11:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-08  0:09 [PATCH v2] docs/misra/rules.rst: add more rules Stefano Stabellini
2023-12-08  7:18 ` Jan Beulich
2023-12-09  1:36   ` Stefano Stabellini
2023-12-11 10:53 ` Andrew Cooper
2023-12-11 11:20   ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.