automation/eclair_analysis: deviate macro count_args_ for MISRA Rule 20.7

The count_args_ macro violates Rule 20.7, but it can't be made
compliant with Rule 20.7 without breaking its functionality. Since
it's very unlikely for this macro to be misused, it is deviated.

No functional change.

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 Stefano Stabellini committed 2024-05-15 16:58:44 -07:00
1 parent 7fe9679db9
commit 762a848223
2 files changed
+12

No files matched your search

@@ -457,6 +457,12 @@ not to parenthesize their arguments."
-config=MC3R1.R20.7,reports+={safe, "any_area(any_loc(any_exp(macro(^alternative_(v)?call[0-9]$))))"}
-doc_end
-doc_begin="The argument 'x' of the count_args_ macro can't be parenthesized as
the rule would require, without breaking the functionality of the macro. The uses
of this macro do not lead to developer confusion, and can thus be deviated."
-config=MC3R1.R20.7,reports+={safe, "any_area(any_loc(any_exp(macro(^count_args_$))))"}
-doc_end
-doc_begin="Uses of variadic macros that have one of their arguments defined as
a macro and used within the body for both ordinary parameter expansion and as an
operand to the # or ## operators have a behavior that is well-understood and
+6
View File
@@ -390,6 +390,12 @@ Deviations related to MISRA C:2012 Rules:
sanity checks in place.
- Tagged as `safe` for ECLAIR.
* - R20.7
- The macro `count_args_` is not compliant with the rule, but is not likely
to incur in the risk of being misused or lead to developer confusion, and
refactoring it to add parentheses breaks its functionality.
- Tagged as `safe` for ECLAIR.
* - R20.12
- Variadic macros that use token pasting often employ the gcc extension
`ext_paste_comma`, as detailed in `C-language-toolchain.rst`, which is
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.