Message ID | 20230831015316.531167-1-sstabellini@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v2] docs/misra: add 14.3 | expand |
On 31.08.2023 03:53, Stefano Stabellini wrote: > @@ -332,6 +333,17 @@ maintainers if you want to suggest a change. > - A loop counter shall not have essentially floating type > - > > + * - `Rule 14.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_03.c>`_ > + - Required > + - Controlling expressions shall not be invariant > + - Due to the extensive usage of IS_ENABLED, sizeof compile-time > + checks, and other constructs that are detected as errors by MISRA > + C scanners, managing the configuration of a MISRA C scanner for > + this rule would be unmanageable. Thus, this rule is adopted with > + a project-wide deviation on if and ?: statements. As before - switch(sizeof(...)) and alike also wants deviating, imo. > + while(0) and while(1) are allowed. ... and alike ... (to also cover e.g. while(true)). Jan
On Thu, 31 Aug 2023, Jan Beulich wrote: > On 31.08.2023 03:53, Stefano Stabellini wrote: > > @@ -332,6 +333,17 @@ maintainers if you want to suggest a change. > > - A loop counter shall not have essentially floating type > > - > > > > + * - `Rule 14.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_03.c>`_ > > + - Required > > + - Controlling expressions shall not be invariant > > + - Due to the extensive usage of IS_ENABLED, sizeof compile-time > > + checks, and other constructs that are detected as errors by MISRA > > + C scanners, managing the configuration of a MISRA C scanner for > > + this rule would be unmanageable. Thus, this rule is adopted with > > + a project-wide deviation on if and ?: statements. > > As before - switch(sizeof(...)) and alike also wants deviating, imo. I added the switch, but without the words "and alike" because it is not clear in this context what it would allow. > > + while(0) and while(1) are allowed. > > ... and alike ... (to also cover e.g. while(true)). Here the words "and alike" are clearer so I added them
On 07.09.2023 03:21, Stefano Stabellini wrote: > On Thu, 31 Aug 2023, Jan Beulich wrote: >> On 31.08.2023 03:53, Stefano Stabellini wrote: >>> @@ -332,6 +333,17 @@ maintainers if you want to suggest a change. >>> - A loop counter shall not have essentially floating type >>> - >>> >>> + * - `Rule 14.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_03.c>`_ >>> + - Required >>> + - Controlling expressions shall not be invariant >>> + - Due to the extensive usage of IS_ENABLED, sizeof compile-time >>> + checks, and other constructs that are detected as errors by MISRA >>> + C scanners, managing the configuration of a MISRA C scanner for >>> + this rule would be unmanageable. Thus, this rule is adopted with >>> + a project-wide deviation on if and ?: statements. >> >> As before - switch(sizeof(...)) and alike also wants deviating, imo. > > I added the switch, but without the words "and alike" because it is not > clear in this context what it would allow. Well, what I mean here are expressions involving sizeof() (or e.g also offsetof()). Jan
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst index db30632b93..9389976290 100644 --- a/docs/misra/rules.rst +++ b/docs/misra/rules.rst @@ -234,7 +234,8 @@ maintainers if you want to suggest a change. * - `Rule 8.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_02.c>`_ - Required - Function types shall be in prototype form with named parameters - - + - Clarification: both function and function pointers types shall + have named parameters. * - `Rule 8.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_08_03.c>`_ - Required @@ -332,6 +333,17 @@ maintainers if you want to suggest a change. - A loop counter shall not have essentially floating type - + * - `Rule 14.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_14_03.c>`_ + - Required + - Controlling expressions shall not be invariant + - Due to the extensive usage of IS_ENABLED, sizeof compile-time + checks, and other constructs that are detected as errors by MISRA + C scanners, managing the configuration of a MISRA C scanner for + this rule would be unmanageable. Thus, this rule is adopted with + a project-wide deviation on if and ?: statements. + + while(0) and while(1) 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