MISRA C:2012 Rule 17.1 states: The features of `<stdarg.h>' shall not be used

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>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Simone Ballarin authored and Stefano Stabellini committed 2024-04-05 11:15:47 -07:00
1 parent 80d28865e1
commit ea33a6e1e3
2 files changed
+18

No files matched your search

@@ -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.
#
+5
View File
@@ -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
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.