[PATCH] misra: add deviations of MISRA C Rule 5.5

Dmytro Prokopchuk1 posted 1 patch 3 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/7e1c381d6fab6d38bb2a5484d5fac5e863ba135f.1752689112.git.dmytro._5Fprokopchuk1@epam.com
There is a newer version of this series
automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
docs/misra/deviations.rst                        | 7 +++++++
2 files changed, 14 insertions(+)
[PATCH] misra: add deviations of MISRA C Rule 5.5
Posted by Dmytro Prokopchuk1 3 months, 2 weeks ago
MISRA C Rule 5.5 states that: "Identifiers shall
be distinct from macro names".

Update ECLAIR configuration to deviate:
- clashes in 'xen/include/xen/bitops.h';
- clashes in 'xen/include/xen/irq.h';
- clashes in 'xen/common/grant_table.c'.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
This patch makes MISRA Rule 5.5 "clean" for ARM only.

Was agreed to narrow deviation:
https://patchew.org/Xen/cover.1752096263.git.dmytro._5Fprokopchuk1@epam.com/e47d08e4465f913f03348830954e800f420c652d.1752096263.git.dmytro._5Fprokopchuk1@epam.com/

CI:
https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_5.5_deviation_final/ARM64/10706457595/PROJECT.ecd;/by_service.html#service&kind
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
 docs/misra/deviations.rst                        | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 8504e850c1..3895148460 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -117,6 +117,13 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
 -config=MC3A2.R5.5,reports+={deliberate, "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
 -doc_end
 
+-doc_begin="Clashes between function names and macros are deliberate and needed to have a function-like macro that acts as a wrapper for the function to be called.
+Before calling the function, the macro adds additional checks or adjusts the number of parameters depending on the configuration."
+-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/bitops\\.h$)) && macro(name(__test_and_set_bit||__test_and_clear_bit||__test_and_change_bit||test_bit)))"}
+-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/common/grant_table\\.c$))&&macro(name(update_gnttab_par||parse_gnttab_limit)))"}
+-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/irq\\.h$))&&macro(name(pirq_cleanup_check)))"}
+-doc_end
+
 -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
 depending on the guest."
 -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 620e97f0bd..84bc933cbf 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -142,6 +142,13 @@ Deviations related to MISRA C:2012 Rules:
        memmove.
      - Tagged as `deliberate` for ECLAIR.
 
+   * - R5.5
+     - Clashes between function names and macros are deliberate and needed
+       to have a function-like macro that acts as a wrapper for the function to be
+       called. Before calling the function, the macro adds additional checks or
+       adjusts the number of parameters depending on the configuration.
+     - Tagged as `deliberate` for ECLAIR.
+
    * - R5.6
      - The type ret_t is deliberately defined multiple times depending on the
        type of guest to service.
-- 
2.43.0
Re: [PATCH] misra: add deviations of MISRA C Rule 5.5
Posted by Nicola Vetrini 3 months, 1 week ago
On 2025-07-16 20:08, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 5.5 states that: "Identifiers shall
> be distinct from macro names".
> 
> Update ECLAIR configuration to deviate:
> - clashes in 'xen/include/xen/bitops.h';
> - clashes in 'xen/include/xen/irq.h';
> - clashes in 'xen/common/grant_table.c'.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> This patch makes MISRA Rule 5.5 "clean" for ARM only.
> 
> Was agreed to narrow deviation:
> https://patchew.org/Xen/cover.1752096263.git.dmytro._5Fprokopchuk1@epam.com/e47d08e4465f913f03348830954e800f420c652d.1752096263.git.dmytro._5Fprokopchuk1@epam.com/
> 
> CI:
> https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_5.5_deviation_final/ARM64/10706457595/PROJECT.ecd;/by_service.html#service&kind
> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
>  docs/misra/deviations.rst                        | 7 +++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
> b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 8504e850c1..3895148460 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -117,6 +117,13 @@ it defines would (in the common case) be already 
> defined. Peer reviewed by the c
>  -config=MC3A2.R5.5,reports+={deliberate, 
> "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
>  -doc_end
> 
> +-doc_begin="Clashes between function names and macros are deliberate 
> and needed to have a function-like macro that acts as a wrapper for the 
> function to be called.
> +Before calling the function, the macro adds additional checks or 
> adjusts the number of parameters depending on the configuration."
> +-config=MC3A2.R5.5,reports+={deliberate, 
> "any_area(all_loc(file(^xen/include/xen/bitops\\.h$)) && 
> macro(name(__test_and_set_bit||__test_and_clear_bit||__test_and_change_bit||test_bit)))"}

                                                                          
                         ^^^^ No blanks here, just like below.

> +-config=MC3A2.R5.5,reports+={deliberate, 
> "any_area(all_loc(file(^xen/common/grant_table\\.c$))&&macro(name(update_gnttab_par||parse_gnttab_limit)))"}
> +-config=MC3A2.R5.5,reports+={deliberate, 
> "any_area(all_loc(file(^xen/include/xen/irq\\.h$))&&macro(name(pirq_cleanup_check)))"}
> +-doc_end
> +
>  -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
>  depending on the guest."
>  
> -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 620e97f0bd..84bc933cbf 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -142,6 +142,13 @@ Deviations related to MISRA C:2012 Rules:
>         memmove.
>       - Tagged as `deliberate` for ECLAIR.
> 
> +   * - R5.5
> +     - Clashes between function names and macros are deliberate and 
> needed
> +       to have a function-like macro that acts as a wrapper for the 
> function to be
> +       called. Before calling the function, the macro adds additional 
> checks or
> +       adjusts the number of parameters depending on the 
> configuration.
> +     - Tagged as `deliberate` for ECLAIR.
> +

At least this wants to delimit to which macros you actually allow to 
overlap with functions, as this seems to imply that the deviation is 
general, which is not

>     * - R5.6
>       - The type ret_t is deliberately defined multiple times depending 
> on the
>         type of guest to service.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253
Re: [PATCH] misra: add deviations of MISRA C Rule 5.5
Posted by Dmytro Prokopchuk1 3 months, 1 week ago

On 7/16/25 21:08, Dmytro Prokopchuk wrote:
> MISRA C Rule 5.5 states that: "Identifiers shall
> be distinct from macro names".
> 
> Update ECLAIR configuration to deviate:
> - clashes in 'xen/include/xen/bitops.h';
> - clashes in 'xen/include/xen/irq.h';
> - clashes in 'xen/common/grant_table.c'.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> This patch makes MISRA Rule 5.5 "clean" for ARM only.
> 
> Was agreed to narrow deviation:
> https://patchew.org/Xen/cover.1752096263.git.dmytro._5Fprokopchuk1@epam.com/e47d08e4465f913f03348830954e800f420c652d.1752096263.git.dmytro._5Fprokopchuk1@epam.com/
> 
> CI:
> https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_5.5_deviation_final/ARM64/10706457595/PROJECT.ecd;/by_service.html#service&kind
> ---
>   automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
>   docs/misra/deviations.rst                        | 7 +++++++
>   2 files changed, 14 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 8504e850c1..3895148460 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -117,6 +117,13 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
>   -config=MC3A2.R5.5,reports+={deliberate, "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
>   -doc_end
>   
> +-doc_begin="Clashes between function names and macros are deliberate and needed to have a function-like macro that acts as a wrapper for the function to be called.
> +Before calling the function, the macro adds additional checks or adjusts the number of parameters depending on the configuration."
> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/bitops\\.h$)) && macro(name(__test_and_set_bit||__test_and_clear_bit||__test_and_change_bit||test_bit)))"}
> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/common/grant_table\\.c$))&&macro(name(update_gnttab_par||parse_gnttab_limit)))"}
> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/irq\\.h$))&&macro(name(pirq_cleanup_check)))"}
> +-doc_end
> +
>   -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
>   depending on the guest."
>   -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 620e97f0bd..84bc933cbf 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -142,6 +142,13 @@ Deviations related to MISRA C:2012 Rules:
>          memmove.
>        - Tagged as `deliberate` for ECLAIR.
>   
> +   * - R5.5
> +     - Clashes between function names and macros are deliberate and needed
> +       to have a function-like macro that acts as a wrapper for the function to be
> +       called. Before calling the function, the macro adds additional checks or
> +       adjusts the number of parameters depending on the configuration.
> +     - Tagged as `deliberate` for ECLAIR.
> +
>      * - R5.6
>        - The type ret_t is deliberately defined multiple times depending on the
>          type of guest to service.

Hi Jan.

Could you review this patch?

Dmytro.
Re: [PATCH] misra: add deviations of MISRA C Rule 5.5
Posted by Jan Beulich 3 months, 1 week ago
On 21.07.2025 12:27, Dmytro Prokopchuk1 wrote:
> On 7/16/25 21:08, Dmytro Prokopchuk wrote:
>> MISRA C Rule 5.5 states that: "Identifiers shall
>> be distinct from macro names".
>>
>> Update ECLAIR configuration to deviate:
>> - clashes in 'xen/include/xen/bitops.h';
>> - clashes in 'xen/include/xen/irq.h';
>> - clashes in 'xen/common/grant_table.c'.
>>
>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>> ---
>> This patch makes MISRA Rule 5.5 "clean" for ARM only.
>>
>> Was agreed to narrow deviation:
>> https://patchew.org/Xen/cover.1752096263.git.dmytro._5Fprokopchuk1@epam.com/e47d08e4465f913f03348830954e800f420c652d.1752096263.git.dmytro._5Fprokopchuk1@epam.com/
>>
>> CI:
>> https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_5.5_deviation_final/ARM64/10706457595/PROJECT.ecd;/by_service.html#service&kind
>> ---
>>   automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
>>   docs/misra/deviations.rst                        | 7 +++++++
>>   2 files changed, 14 insertions(+)
>>
>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> index 8504e850c1..3895148460 100644
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -117,6 +117,13 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
>>   -config=MC3A2.R5.5,reports+={deliberate, "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
>>   -doc_end
>>   
>> +-doc_begin="Clashes between function names and macros are deliberate and needed to have a function-like macro that acts as a wrapper for the function to be called.
>> +Before calling the function, the macro adds additional checks or adjusts the number of parameters depending on the configuration."
>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/bitops\\.h$)) && macro(name(__test_and_set_bit||__test_and_clear_bit||__test_and_change_bit||test_bit)))"}
>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/common/grant_table\\.c$))&&macro(name(update_gnttab_par||parse_gnttab_limit)))"}
>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/irq\\.h$))&&macro(name(pirq_cleanup_check)))"}
>> +-doc_end
>> +
>>   -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
>>   depending on the guest."
>>   -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>> index 620e97f0bd..84bc933cbf 100644
>> --- a/docs/misra/deviations.rst
>> +++ b/docs/misra/deviations.rst
>> @@ -142,6 +142,13 @@ Deviations related to MISRA C:2012 Rules:
>>          memmove.
>>        - Tagged as `deliberate` for ECLAIR.
>>   
>> +   * - R5.5
>> +     - Clashes between function names and macros are deliberate and needed
>> +       to have a function-like macro that acts as a wrapper for the function to be
>> +       called. Before calling the function, the macro adds additional checks or
>> +       adjusts the number of parameters depending on the configuration.
>> +     - Tagged as `deliberate` for ECLAIR.
>> +
>>      * - R5.6
>>        - The type ret_t is deliberately defined multiple times depending on the
>>          type of guest to service.
> 
> Could you review this patch?

I don't understand. I'm not feeling capable of (fully) reviewing changes to
automation/eclair_analysis/ECLAIR/deviations.ecl. Nor am I the only maintainer
of that file. And the text being added to docs/misra/deviations.rst is too
unspecific for my taste, yet I thought I'd better not repeat that same concern
over and over again. If others feel like ack-ing in this shape, so be it.

Jan
Re: [PATCH] misra: add deviations of MISRA C Rule 5.5
Posted by Dmytro Prokopchuk1 3 months, 1 week ago

On 7/21/25 13:34, Jan Beulich wrote:
> On 21.07.2025 12:27, Dmytro Prokopchuk1 wrote:
>> On 7/16/25 21:08, Dmytro Prokopchuk wrote:
>>> MISRA C Rule 5.5 states that: "Identifiers shall
>>> be distinct from macro names".
>>>
>>> Update ECLAIR configuration to deviate:
>>> - clashes in 'xen/include/xen/bitops.h';
>>> - clashes in 'xen/include/xen/irq.h';
>>> - clashes in 'xen/common/grant_table.c'.
>>>
>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>> ---
>>> This patch makes MISRA Rule 5.5 "clean" for ARM only.
>>>
>>> Was agreed to narrow deviation:
>>> https://patchew.org/Xen/cover.1752096263.git.dmytro._5Fprokopchuk1@epam.com/e47d08e4465f913f03348830954e800f420c652d.1752096263.git.dmytro._5Fprokopchuk1@epam.com/
>>>
>>> CI:
>>> https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_5.5_deviation_final/ARM64/10706457595/PROJECT.ecd;/by_service.html#service&kind
>>> ---
>>>    automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
>>>    docs/misra/deviations.rst                        | 7 +++++++
>>>    2 files changed, 14 insertions(+)
>>>
>>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> index 8504e850c1..3895148460 100644
>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> @@ -117,6 +117,13 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
>>>    -config=MC3A2.R5.5,reports+={deliberate, "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
>>>    -doc_end
>>>
>>> +-doc_begin="Clashes between function names and macros are deliberate and needed to have a function-like macro that acts as a wrapper for the function to be called.
>>> +Before calling the function, the macro adds additional checks or adjusts the number of parameters depending on the configuration."
>>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/bitops\\.h$)) && macro(name(__test_and_set_bit||__test_and_clear_bit||__test_and_change_bit||test_bit)))"}
>>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/common/grant_table\\.c$))&&macro(name(update_gnttab_par||parse_gnttab_limit)))"}
>>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/irq\\.h$))&&macro(name(pirq_cleanup_check)))"}
>>> +-doc_end
>>> +
>>>    -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
>>>    depending on the guest."
>>>    -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>> index 620e97f0bd..84bc933cbf 100644
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -142,6 +142,13 @@ Deviations related to MISRA C:2012 Rules:
>>>           memmove.
>>>         - Tagged as `deliberate` for ECLAIR.
>>>
>>> +   * - R5.5
>>> +     - Clashes between function names and macros are deliberate and needed
>>> +       to have a function-like macro that acts as a wrapper for the function to be
>>> +       called. Before calling the function, the macro adds additional checks or
>>> +       adjusts the number of parameters depending on the configuration.
>>> +     - Tagged as `deliberate` for ECLAIR.
>>> +
>>>       * - R5.6
>>>         - The type ret_t is deliberately defined multiple times depending on the
>>>           type of guest to service.
>>
>> Could you review this patch?
>
> I don't understand. I'm not feeling capable of (fully) reviewing changes to
> automation/eclair_analysis/ECLAIR/deviations.ecl. Nor am I the only maintainer
> of that file. And the text being added to docs/misra/deviations.rst is too
> unspecific for my taste, yet I thought I'd better not repeat that same concern
> over and over again. If others feel like ack-ing in this shape, so be it.
>
> Jan

Hello all!

Since there have been no new comments so far, I would like to propose a
straightforward solution: rename the macros (that violate Rule 5.5)
using capital letters (using best practices for naming macros in C).
I can prepare such a patch.

The main question is: "Is it possible to upstream such changes?"
Or is this idea not worthwhile?

Dmytro.
Re: [PATCH] misra: add deviations of MISRA C Rule 5.5
Posted by Jan Beulich 3 months, 1 week ago
On 23.07.2025 18:12, Dmytro Prokopchuk1 wrote:
> 
> 
> On 7/21/25 13:34, Jan Beulich wrote:
>> On 21.07.2025 12:27, Dmytro Prokopchuk1 wrote:
>>> On 7/16/25 21:08, Dmytro Prokopchuk wrote:
>>>> MISRA C Rule 5.5 states that: "Identifiers shall
>>>> be distinct from macro names".
>>>>
>>>> Update ECLAIR configuration to deviate:
>>>> - clashes in 'xen/include/xen/bitops.h';
>>>> - clashes in 'xen/include/xen/irq.h';
>>>> - clashes in 'xen/common/grant_table.c'.
>>>>
>>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>>> ---
>>>> This patch makes MISRA Rule 5.5 "clean" for ARM only.
>>>>
>>>> Was agreed to narrow deviation:
>>>> https://patchew.org/Xen/cover.1752096263.git.dmytro._5Fprokopchuk1@epam.com/e47d08e4465f913f03348830954e800f420c652d.1752096263.git.dmytro._5Fprokopchuk1@epam.com/
>>>>
>>>> CI:
>>>> https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_5.5_deviation_final/ARM64/10706457595/PROJECT.ecd;/by_service.html#service&kind
>>>> ---
>>>>    automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
>>>>    docs/misra/deviations.rst                        | 7 +++++++
>>>>    2 files changed, 14 insertions(+)
>>>>
>>>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> index 8504e850c1..3895148460 100644
>>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> @@ -117,6 +117,13 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
>>>>    -config=MC3A2.R5.5,reports+={deliberate, "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
>>>>    -doc_end
>>>>
>>>> +-doc_begin="Clashes between function names and macros are deliberate and needed to have a function-like macro that acts as a wrapper for the function to be called.
>>>> +Before calling the function, the macro adds additional checks or adjusts the number of parameters depending on the configuration."
>>>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/bitops\\.h$)) && macro(name(__test_and_set_bit||__test_and_clear_bit||__test_and_change_bit||test_bit)))"}
>>>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/common/grant_table\\.c$))&&macro(name(update_gnttab_par||parse_gnttab_limit)))"}
>>>> +-config=MC3A2.R5.5,reports+={deliberate, "any_area(all_loc(file(^xen/include/xen/irq\\.h$))&&macro(name(pirq_cleanup_check)))"}
>>>> +-doc_end
>>>> +
>>>>    -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
>>>>    depending on the guest."
>>>>    -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
>>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>>> index 620e97f0bd..84bc933cbf 100644
>>>> --- a/docs/misra/deviations.rst
>>>> +++ b/docs/misra/deviations.rst
>>>> @@ -142,6 +142,13 @@ Deviations related to MISRA C:2012 Rules:
>>>>           memmove.
>>>>         - Tagged as `deliberate` for ECLAIR.
>>>>
>>>> +   * - R5.5
>>>> +     - Clashes between function names and macros are deliberate and needed
>>>> +       to have a function-like macro that acts as a wrapper for the function to be
>>>> +       called. Before calling the function, the macro adds additional checks or
>>>> +       adjusts the number of parameters depending on the configuration.
>>>> +     - Tagged as `deliberate` for ECLAIR.
>>>> +
>>>>       * - R5.6
>>>>         - The type ret_t is deliberately defined multiple times depending on the
>>>>           type of guest to service.
>>>
>>> Could you review this patch?
>>
>> I don't understand. I'm not feeling capable of (fully) reviewing changes to
>> automation/eclair_analysis/ECLAIR/deviations.ecl. Nor am I the only maintainer
>> of that file. And the text being added to docs/misra/deviations.rst is too
>> unspecific for my taste, yet I thought I'd better not repeat that same concern
>> over and over again. If others feel like ack-ing in this shape, so be it.
> 
> Hello all!
> 
> Since there have been no new comments so far, I would like to propose a
> straightforward solution: rename the macros (that violate Rule 5.5)
> using capital letters (using best practices for naming macros in C).

Well, in your ping as well as here, despite the "Hello all" you address
just me (as per the To: list). Therefore I think you will want to send a
wider ping first. Also note that it's (sadly) entirely usual to not get
any reply on a patch for extended periods of time. I have no good
suggestion what you could do to help that in this case. Pinging, in my
experience, only rarely helps. (However, if you ping, it may be a good
idea to identify the mail being a ping already in the subject. What I
often do is replace the Re: with Ping:.)

> I can prepare such a patch.
> 
> The main question is: "Is it possible to upstream such changes?"
> Or is this idea not worthwhile?

I'm opposed to it.

Jan