On 13/10/2023 01:31, Stefano Stabellini wrote:
On Thu, 12 Oct 2023, Nicola Vetrini wrote:
The purpose of this macro is to encapsulate the well-known expression
'x & -x', that in 2's complement architectures on unsigned integers
will
give 2^ffs(x), where ffs(x) is the position of the lowest set bit in
x.
A deviation for ECLAIR is also introduced.
Signed-off-by: Nicola Vetrini <nicola.vetr...@bugseng.com>
---
Changes in v2:
- rename to LOWEST_BIT
---
automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
xen/include/xen/macros.h | 6 ++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl
b/automation/eclair_analysis/ECLAIR/deviations.ecl
index d8170106b449..b8e1155ee49d 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -274,6 +274,12 @@ still non-negative."
-config=MC3R1.R10.1,etypes+={safe,
"stmt(operator(logical)||node(conditional_operator||binary_conditional_operator))",
"dst_type(ebool||boolean)"}
-doc_end
+-doc_begin="The macro LOWEST_BIT encapsulates a well-known pattern to
obtain the value
+2^ffs(x) for unsigned integers on two's complement architectures
+(all the architectures supported by Xen satisfy this requirement)."
+-config=MC3R1.R10.1,reports+={safe,
"any_area(any_loc(any_exp(macro(^LOWEST_BIT$))))"}
+-doc_end
Please also add the same deviation and explanation to
docs/misra/deviations.rst. Other than that, this looks fine.
Ok.
--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)