|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XEN PATCH] automation/eclair_analysis: deviate certain macros for Rule 20.12
Certain macros are allowed to violate the Rule, since their meaning and
intended use is well-known to all Xen developers.
Variadic macros that rely on the GCC extension for removing a trailing
comma when token pasting the variable argument are similarly
well-understood and therefore allowed.
No functional change.
Signed-off-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
---
This patch is intended as a follow-up to the patch accepting this Rule for Xen
---
.../eclair_analysis/ECLAIR/deviations.ecl | 10 ++++++++++
docs/misra/deviations.rst | 18 ++++++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl
b/automation/eclair_analysis/ECLAIR/deviations.ecl
index fd32ff8a9cae..98e5ad146b8d 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -387,6 +387,16 @@ in assignments."
{safe, "left_right(^[(,\\[]$,^[),\\]]$)"}
-doc_end
+-doc_begin="The token pasting in variadic macros cannot be replaced."
+-config=MC3R1.R20.12,macros+={deliberate, "variadic()"}
+-doc_end
+
+-doc_begin="Uses of # and ## operators within the following macros are
+deliberate."
+-config=MC3R1.R20.12,macros+={deliberate,
"name(ASSERT||BUILD_BUG_ON||BUILD_BUG_ON_ZERO||GENERATE_CASE)"}
+-doc_end
+
+
#
# General
#
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 123c78e20a01..855c1c5579bb 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -330,6 +330,24 @@ Deviations related to MISRA C:2012 Rules:
(4) as lhs in assignments.
- 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
+ not easily replaceable.
+ - Tagged as `deliberate` for ECLAIR.
+
+ * - R20.12
+ - Macros that are used for runtime or build-time assertions contain
+ deliberate uses of an argument as both a regular argument and a
+ stringification token, to provide useful diagnostic messages.
+ - Tagged as `deliberate` for ECLAIR.
+
+ * - R20.12
+ - GENERATE_CASE is a special-purpose macro that allows some selected
switch
+ statements to be more compact and readable. As such, the risk of
+ developer confusion in using such macro is deemed negligible.
+ - Tagged as `deliberate` for ECLAIR.
+
Other deviations:
-----------------
--
2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |