[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v2 3/3] eclair: add deviations of MISRA C Rule 5.5
On Wed, 9 Jul 2025, Dmytro Prokopchuk1 wrote: > MISRA C Rule 5.5 states that: "Identifiers shall > be distinct from macro names". > > Update ECLAIR configuration to deviate: > - clashes in 'xen/include/xen/bitops.h'; > - clashes in 'xen/include/xen/irq.h'; > - clashes in 'xen/common/grant_table.c'. > > Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@xxxxxxxx> Hi Dmytro, I tried to apply the patch and run a pipeline but it only results clean on ARM but not on x86. There are 2087 outstanding violations: https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1919889048 https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/sstabellini/xen/ECLAIR_normal/ppp1-1/X86_64/10644506983/PROJECT.ecd;/by_service/MC3A2.R5.5.html#{%22select%22:true,%22selection%22:{%22hiddenAreaKinds%22:[],%22hiddenSubareaKinds%22:[],%22show%22:false,%22selector%22:{%22enabled%22:true,%22negated%22:true,%22kind%22:0,%22domain%22:%22kind%22,%22inputs%22:[{%22enabled%22:true,%22text%22:%22violation%22}]}}} Jan, Andrew, Roger, About half of them are from bitops.h which could be deviated the same way xen/include/xen/bitops.h is deviated in this patch. xen/arch/x86/include/asm/x86_64/page.h:virt_to_maddr could be deviated too. I don't know how to handle the rest or even how to configure the deviation in Eclair. These are the results with those two deviations added: https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/sstabellini/xen/ECLAIR_normal/ppp1-2/X86_64/10644744316/PROJECT.ecd;/by_service/MC3A2.R5.5.html#{%22select%22:true,%22selection%22:{%22hiddenAreaKinds%22:[],%22hiddenSubareaKinds%22:[],%22show%22:false,%22selector%22:{%22enabled%22:true,%22negated%22:true,%22kind%22:0,%22domain%22:%22kind%22,%22inputs%22:[{%22enabled%22:true,%22text%22:%22violation%22}]}}} We only have 49 left. Any suggestions on how to handle them so that we can mark the rule as "clean" and stop future regressions in the CI loop? > --- > automation/eclair_analysis/ECLAIR/deviations.ecl | 8 ++++++++ > docs/misra/deviations.rst | 8 ++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl > b/automation/eclair_analysis/ECLAIR/deviations.ecl > index e8f513fbc5..a5d7b00094 100644 > --- a/automation/eclair_analysis/ECLAIR/deviations.ecl > +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl > @@ -117,6 +117,14 @@ it defines would (in the common case) be already > defined. Peer reviewed by the c > -config=MC3A2.R5.5,reports+={deliberate, > "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"} > -doc_end > > +-doc_begin="Clashes between function names and macros are deliberate for > bitops functions, pirq_cleanup_check, update_gnttab_par and > parse_gnttab_limit functions > +and needed to have a function-like macro that acts as a wrapper for the > function to be called. Before calling the function, > +the macro adds additional checks or adjusts the number of parameters > depending on the configuration." > +-config=MC3A2.R5.5,reports+={deliberate, > "any_area(all_loc(file(^xen/include/xen/bitops\\.h$)))"} > +-config=MC3A2.R5.5,reports+={deliberate, > "any_area(all_loc(file(^xen/include/xen/irq\\.h$))&&context(name(pirq_cleanup_check)&&kind(function)))"} > +-config=MC3A2.R5.5,reports+={deliberate, > "any_area(all_loc(file(^xen/common/grant_table\\.c$))&&context(name(update_gnttab_par||parse_gnttab_limit)&&kind(function)))"} > +-doc_end > + > -doc_begin="The type \"ret_t\" is deliberately defined multiple times, > depending on the guest." > > -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"} > diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst > index 0d56d45b66..fe05e4062e 100644 > --- a/docs/misra/deviations.rst > +++ b/docs/misra/deviations.rst > @@ -142,6 +142,14 @@ Deviations related to MISRA C:2012 Rules: > memmove. > - Tagged as `deliberate` for ECLAIR. > > + * - R5.5 > + - Clashes between function names and macros are deliberate for bitops > functions, > + pirq_cleanup_check, update_gnttab_par and parse_gnttab_limit > functions and needed > + to have a function-like macro that acts as a wrapper for the function > to be > + called. Before calling the function, the macro adds additional checks > or > + adjusts the number of parameters depending on the configuration. > + - Tagged as `deliberate` for ECLAIR. > + > * - R5.6 > - The type ret_t is deliberately defined multiple times depending on the > type of guest to service. > -- > 2.43.0 >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |