On 2025-01-16 10:51, Jan Beulich wrote:
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
Hi Jan,
that was just a typo. It should have been "the MISRA guideline".
Thanks for catching that
+ 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
--
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253