Message ID | 7e8f6f4e0e007656d8809c4d521e73e642747d7f.1714394212.git.alessandro.zucchelli@bugseng.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [XEN] automation/eclair_enalysis: amend configuration for some MISRA rules | expand |
On 2024-04-29 14:44, Alessandro Zucchelli wrote: > Adjust ECLAIR configuration for rules: R21.14, R21.15, R21.16 by taking > into account mem* macros defined in the Xen sources as if they were > equivalent to the ones in Standard Library. > > Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com> > --- > automation/eclair_analysis/ECLAIR/analysis.ecl | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl > b/automation/eclair_analysis/ECLAIR/analysis.ecl > index a604582da3..f3b634baba 100644 > --- a/automation/eclair_analysis/ECLAIR/analysis.ecl > +++ b/automation/eclair_analysis/ECLAIR/analysis.ecl > @@ -19,6 +19,23 @@ map_strings("scheduled-analysis",analysis_kind) > > -enable=B.EXPLAIN > > +-doc_begin="These configurations serve the purpose of recognizing the > 'mem*' macros as > +their Standard Library equivalents." > + > +-config=MC3R1.R21.14,call_select+= > +{"macro(^memcmp$)&&any_arg(1..2, > skip(__non_syntactic_paren_cast_stmts, node(string_literal)))", > + "any()", violation, "%{__callslct_any_base_fmt()}", {{arg, > "%{__callslct_arg_fmt()}"}}} > + > +-config=MC3R1.R21.15,call_args+= > +{"macro(^mem(cmp|move|cpy)$)", {1, 2}, "unqual_pointee_compatible", > + "%{__argscmpr_culprit_fmt()}", "%{__argscmpr_evidence_fmt()}"} > + > +-config=MC3R1.R21.16,call_select+= > +{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_stmts, > type(canonical(__memcmp_pte_types))))", > + "any()", violation, "%{__callslct_any_base_fmt()}", > {{arg,"%{__callslct_arg_type_fmt()}"}}} > + > +-doc_end > + > -eval_file=toolchain.ecl > -eval_file=public_APIs.ecl > if(not(scheduled_analysis), Typo in the title: should be automation/eclair_analysis. Sorry.
On Mon, 29 Apr 2024, Alessandro Zucchelli wrote: > Adjust ECLAIR configuration for rules: R21.14, R21.15, R21.16 by taking > into account mem* macros defined in the Xen sources as if they were > equivalent to the ones in Standard Library. > > Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > automation/eclair_analysis/ECLAIR/analysis.ecl | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl b/automation/eclair_analysis/ECLAIR/analysis.ecl > index a604582da3..f3b634baba 100644 > --- a/automation/eclair_analysis/ECLAIR/analysis.ecl > +++ b/automation/eclair_analysis/ECLAIR/analysis.ecl > @@ -19,6 +19,23 @@ map_strings("scheduled-analysis",analysis_kind) > > -enable=B.EXPLAIN > > +-doc_begin="These configurations serve the purpose of recognizing the 'mem*' macros as > +their Standard Library equivalents." > + > +-config=MC3R1.R21.14,call_select+= > +{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_cast_stmts, node(string_literal)))", > + "any()", violation, "%{__callslct_any_base_fmt()}", {{arg, "%{__callslct_arg_fmt()}"}}} > + > +-config=MC3R1.R21.15,call_args+= > +{"macro(^mem(cmp|move|cpy)$)", {1, 2}, "unqual_pointee_compatible", > + "%{__argscmpr_culprit_fmt()}", "%{__argscmpr_evidence_fmt()}"} > + > +-config=MC3R1.R21.16,call_select+= > +{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_stmts, type(canonical(__memcmp_pte_types))))", > + "any()", violation, "%{__callslct_any_base_fmt()}", {{arg,"%{__callslct_arg_type_fmt()}"}}} > + > +-doc_end > + > -eval_file=toolchain.ecl > -eval_file=public_APIs.ecl > if(not(scheduled_analysis), > -- > 2.25.1 >
diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl b/automation/eclair_analysis/ECLAIR/analysis.ecl index a604582da3..f3b634baba 100644 --- a/automation/eclair_analysis/ECLAIR/analysis.ecl +++ b/automation/eclair_analysis/ECLAIR/analysis.ecl @@ -19,6 +19,23 @@ map_strings("scheduled-analysis",analysis_kind) -enable=B.EXPLAIN +-doc_begin="These configurations serve the purpose of recognizing the 'mem*' macros as +their Standard Library equivalents." + +-config=MC3R1.R21.14,call_select+= +{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_cast_stmts, node(string_literal)))", + "any()", violation, "%{__callslct_any_base_fmt()}", {{arg, "%{__callslct_arg_fmt()}"}}} + +-config=MC3R1.R21.15,call_args+= +{"macro(^mem(cmp|move|cpy)$)", {1, 2}, "unqual_pointee_compatible", + "%{__argscmpr_culprit_fmt()}", "%{__argscmpr_evidence_fmt()}"} + +-config=MC3R1.R21.16,call_select+= +{"macro(^memcmp$)&&any_arg(1..2, skip(__non_syntactic_paren_stmts, type(canonical(__memcmp_pte_types))))", + "any()", violation, "%{__callslct_any_base_fmt()}", {{arg,"%{__callslct_arg_type_fmt()}"}}} + +-doc_end + -eval_file=toolchain.ecl -eval_file=public_APIs.ecl if(not(scheduled_analysis),
Adjust ECLAIR configuration for rules: R21.14, R21.15, R21.16 by taking into account mem* macros defined in the Xen sources as if they were equivalent to the ones in Standard Library. Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com> --- automation/eclair_analysis/ECLAIR/analysis.ecl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)