]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
automation/eclair_analysis: deviate macro count_args_ for MISRA Rule 20.7
authorNicola Vetrini <nicola.vetrini@bugseng.com>
Tue, 23 Apr 2024 15:12:45 +0000 (17:12 +0200)
committerStefano Stabellini <stefano.stabellini@amd.com>
Wed, 15 May 2024 23:58:44 +0000 (16:58 -0700)
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>
automation/eclair_analysis/ECLAIR/deviations.ecl
docs/misra/deviations.rst

index 1478c64a5af12b9537b9165cea81a10827146fb0..b9b377c56b25185ee8c9db8ff55cc59449192914 100644 (file)
@@ -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
index b5450c38f66c27d2dd2ae4994388cf8ab5b1bb59..36959aa44ac9ab804d9d3318176551f83d525c14 100644 (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