automation/eclair: address violations of MISRA C Rule 20.7

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses".

The helper macro bitmap_switch has parameters that cannot be parenthesized
in order to comply with the rule, as that would break its functionality.
Moreover, the risk of misuse due developer confusion is deemed not
substantial enough to warrant a more involved refactor, thus the macro
is deviated for this rule.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
This commit is contained in:
Nicola Vetrini authored and Jan Beulich committed 2024-06-27 13:45:18 +02:00
1 parent ecadd22a3d
commit 0dca0f2b9a
2 files changed
+11

No files matched your search

+8
View File
@@ -60,6 +60,14 @@
},
{
"id": "SAF-7-safe",
"analyser": {
"eclair": "MC3R1.R20.7"
},
"name": "MC3R1.R20.7: deliberately non-parenthesized macro argument",
"text": "A macro parameter expands to an expression that is non-parenthesized, as doing so would break the functionality."
},
{
"id": "SAF-8-safe",
"analyser": {},
"name": "Sentinel",
"text": "Next ID to be used"
+3
View File
@@ -103,10 +103,13 @@ extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
#define bitmap_switch(nbits, zero, small, large) \
unsigned int n__ = (nbits); \
if (__builtin_constant_p(nbits) && !n__) { \
/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
zero; \
} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
small; \
} else { \
/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
large; \
}
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.