docs/misra: Document ECLAIR extension to Rule 20.7

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.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Nicola Vetrini authored and Jan Beulich committed 2025-01-17 08:54:39 +01:00
1 parent 24c685286d
commit 75d88297f5
1 file changed
+8 -1
+8 -1
View File
@@ -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 guideline, since it may not always be possible to parenthesize
such 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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.