Re: [XEN PATCH v2] automation/eclair: add deviations for MISRA C:2012 Rule 5.6

2023-11-30 Thread Stefano Stabellini
On Wed, 29 Nov 2023, Federico Serafini wrote:
> Update ECLAIR configuration to take into account the adopted files
> and type "ret_t".
> Update docs/misra/deviations.rst accordingly.
> 
> Signed-off-by: Federico Serafini 

Acked-by: Stefano Stabellini 




[XEN PATCH v2] automation/eclair: add deviations for MISRA C:2012 Rule 5.6

2023-11-29 Thread Federico Serafini
Update ECLAIR configuration to take into account the adopted files
and type "ret_t".
Update docs/misra/deviations.rst accordingly.

Signed-off-by: Federico Serafini 
---
Changes in v2:
  - generalized excluded files.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 11 +++
 docs/misra/deviations.rst| 15 +++
 2 files changed, 26 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
b/automation/eclair_analysis/ECLAIR/deviations.ecl
index c9e3a90801..4ef8762d95 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -81,6 +81,17 @@ conform to the directive."
 -config=MC3R1.R5.3,reports+={safe, 
"any_area(any_loc(any_exp(macro(^read_debugreg$))&_exp(macro(^write_debugreg$"}
 -doc_end
 
+-doc_begin="The type \"ret_t\" is deliberately defined multiple times,
+depending on the guest."
+-config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
+-doc_end
+
+-doc_begin="The following files are imported from the gnu-efi package."
+-file_tag+={adopted_r5_6,"^xen/include/efi/.*$"}
+-file_tag+={adopted_r5_6,"^xen/arch/.*/include/asm/.*/efibind\\.h$"}
+-config=MC3R1.R5.6,reports+={deliberate,"any_area(any_loc(file(adopted_r5_6)))"}
+-doc_end
+
 #
 # Series 7.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 160513b997..96ed29db86 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -90,6 +90,21 @@ Deviations related to MISRA C:2012 Rules:
  - __emulate_2op and __emulate_2op_nobyte
  - read_debugreg and write_debugreg
 
+   * - R5.6
+ - The type ret_t is deliberately defined multiple times depending on the
+   type of guest to service.
+ - Tagged as `deliberate` for ECLAIR.
+
+   * - R5.6
+ - Some files are not subject to respect MISRA rules at
+   the moment, but, among these out-of-scope files, there are definitions
+   of typedef names that are already defined within in-scope files and
+   therefore, ECLAIR does report a violation since not all the files
+   involved in the violation are excluded from the analysis.
+ - Tagged as `deliberate` for ECLAIR. Such excluded files are:
+ - xen/include/efi/*
+ - xen/arch/*/include/asm/*/efibind.h
+
* - R7.1
  - It is safe to use certain octal constants the way they are defined
in specifications, manuals, and algorithm descriptions. Such places
-- 
2.34.1