On 16.01.2025 10:31, Nicola Vetrini wrote:
> MISRA C Rule 20.7 states:
> "Expressions resulting from the expansion of macro parameters shall
> be enclosed in parentheses".
> 
> Document the behaviour of ECLAIR with respect to the CPP extension
> that allows variable macro arguments to be named.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetr...@bugseng.com>
> ---
>  docs/misra/rules.rst | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index e7763795b826..13890f6d8852 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -671,7 +671,14 @@ maintainers if you want to suggest a change.
>         shall be enclosed in parentheses
>       - Extra parentheses are not required when macro parameters are used
>         as function arguments, as macro arguments, array indices, lhs in
> -       assignments or as initializers in initalizer lists.
> +       assignments or as initializers in initalizer lists. In addition,
> +       the use of a named variable argument in a macro that would constitute
> +       a violation of the rule is allowed by ECLAIR as an extension of the
> +       MISRA, since it may not always be possible to parenthesize such

Just one nit / question (addressable while committing, if desired): I
wouldn't have expected "the" before "MISRA". Is that conventional wording
in your environment?

Jan

> +       argument and the feature is non-standard::
> +
> +         #define M(args...) args
> +         #if M(1) + 0 
>  
>     * - `Rule 20.9 
> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_20_09.c>`_
>       - Required


Reply via email to