@@ -386,6 +386,19 @@ explicit comment indicating the fallthrough intention is present."
-config=MC3R1.R16.6,switch_clauses+={deliberate, "default(0)"}
-doc_end
+#
+# Series 17.
+#
+
+-doc_begin="printf()-like functions are allowed to use the variadic features provided by stdarg.h."
+-config=MC3R1.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printk\(.*\)$)))"}
+-config=MC3R1.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(^.*printf\(.*\)$)))"}
+-config=MC3R1.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(panic)&&kind(function))))"}
+-config=MC3R1.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(elf_call_log_callback)&&kind(function))))"}
+-config=MC3R1.R17.1,reports+={deliberate,"any_area(^.*va_list.*$&&context(ancestor_or_self(name(vprintk_common)&&kind(function))))"}
+-config=MC3R1.R17.1,macros+={hide , "^va_(arg|start|copy|end)$"}
+-doc_end
+
#
# Series 18.
#
@@ -334,6 +334,11 @@ Deviations related to MISRA C:2012 Rules:
improve readability.
- Tagged as `deliberate` for ECLAIR.
+ * - R17.1
+ - printf()-like functions are allowed to use the variadic features provided
+ by `stdarg.h`.
+ - Tagged as `deliberate` for ECLAIR.
+
* - R20.4
- The override of the keyword \"inline\" in xen/compiler.h is present so
that section contents checks pass when the compiler chooses not to
The Xen community wants to avoid using variadic functions except for specific circumstances where it feels appropriate by strict code review. Add deviation for printf()-like functions. Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com> --- Changes in v3: - use regex to exempt all .*printk and .*printf functions, instead of manually listing them one by one. Changes in v2: - replace "console output related" with "printf()-like". --- automation/eclair_analysis/ECLAIR/deviations.ecl | 13 +++++++++++++ docs/misra/deviations.rst | 5 +++++ 2 files changed, 18 insertions(+)