[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v2 4/6][RESEND] automation/eclair_analysis: address violations of MISRA C Rule 20.7
On Mon, 17 Jun 2024, Nicola Vetrini wrote: > MISRA C Rule 20.7 states: "Expressions resulting from the expansion > of macro parameters shall be enclosed in parentheses". > > The local helpers GRP2 and XADD in the x86 emulator use their first > argument as the constant expression for a case label. This pattern > is deviated project-wide, because it is very unlikely to induce > developer confusion and result in the wrong control flow being > carried out. > > No functional change. > > Signed-off-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > Changes in v2: > - Introduce a deviation instead of adding parentheses > --- > automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++-- > docs/misra/deviations.rst | 3 ++- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl > b/automation/eclair_analysis/ECLAIR/deviations.ecl > index c2698e7074aa..fc248641dc78 100644 > --- a/automation/eclair_analysis/ECLAIR/deviations.ecl > +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl > @@ -428,13 +428,15 @@ unexpected result when the structure is given as > argument to a sizeof() operator > > -doc_begin="Code violating Rule 20.7 is safe when macro parameters are used: > (1) > as function arguments; (2) as macro arguments; (3) as array indices; (4) as > lhs > -in assignments; (5) as initializers, possibly designated, in initalizer > lists." > +in assignments; (5) as initializers, possibly designated, in initalizer > lists; > +(6) as the constant expression in a switch clause label." > -config=MC3R1.R20.7,expansion_context= > {safe, "context(__call_expr_arg_contexts)"}, > {safe, "left_right(^[(,\\[]$,^[),\\]]$)"}, > {safe, "context(skip_to(__expr_non_syntactic_contexts, > stmt_child(node(array_subscript_expr), subscript)))"}, > {safe, "context(skip_to(__expr_non_syntactic_contexts, > stmt_child(operator(assign), lhs)))"}, > -{safe, "context(skip_to(__expr_non_syntactic_contexts, > stmt_child(node(init_list_expr||designated_init_expr), init)))"} > +{safe, "context(skip_to(__expr_non_syntactic_contexts, > stmt_child(node(init_list_expr||designated_init_expr), init)))"}, > +{safe, "context(skip_to(__expr_non_syntactic_contexts, > stmt_child(node(case_stmt), lower||upper)))"} > -doc_end > > -doc_begin="Violations involving the __config_enabled macros cannot be fixed > without > diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst > index 36959aa44ac9..be2cc6bf03eb 100644 > --- a/docs/misra/deviations.rst > +++ b/docs/misra/deviations.rst > @@ -376,7 +376,8 @@ Deviations related to MISRA C:2012 Rules: > (2) as macro arguments; > (3) as array indices; > (4) as lhs in assignments; > - (5) as initializers, possibly designated, in initalizer lists. > + (5) as initializers, possibly designated, in initalizer lists; > + (6) as constant expressions of switch case labels. > - Tagged as `safe` for ECLAIR. > > * - R20.7 > -- > 2.34.1 >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |