[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2



On Thu, 24 Apr 2025, Jan Beulich wrote:
> On 23.04.2025 19:54, victorm.lira@xxxxxxx wrote:
> > From: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> > 
> > MISRA C Rules 21.1 ("#define and #undef shall not be used on a
> > reserved identifier or reserved macro name") and R21.2 ("A reserved
> > identifier or reserved macro name shall not be declared") violations
> > are not problematic for Xen, as it does not use the C or POSIX
> > libraries.
> > 
> > Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
> > __builtin_* functions from the compiler that are available so
> > a deviation is formulated for all identifiers not starting with
> > "__builtin_".
> > 
> > The missing text of a deviation for Rule 21.2 is added to
> > docs/misra/deviations.rst.
> > 
> > To avoid regressions, tag both rules as clean and add them to the
> > monitored set.
> > 
> > Signed-off-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
> > Signed-off-by: Federico Serafini <federico.serafini@xxxxxxxxxxx>
> > Signed-off-by: Victor Lira <victorm.lira@xxxxxxx>
> 
> While the rule is in the library section, ...
> 
> > --- a/docs/misra/deviations.rst
> > +++ b/docs/misra/deviations.rst
> > @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
> >         construct is deviated only in Translation Units that present a 
> > violation
> >         of the Rule due to uses of this macro.
> >       - Tagged as `deliberate` for ECLAIR.
> > -
> > +
> > +   * - R21.1
> > +     - Rule 21.1 reports identifiers reserved for the C and POSIX standard
> > +       libraries. Xen does not use such libraries and all translation units
> > +       are compiled with option '-nostdinc', therefore there is no reason 
> > to
> > +       avoid to use `#define` or `#undef` on such identifiers except for 
> > those
> > +       beginning with `__builtin_` for which compilers may perform (wrong)
> > +       optimizations.
> > +     - Tagged as `safe` for ECLAIR.
> 
> ... I'd like to ask that it be explicitly clarified here that it's solely
> the library (and not e.g. the compiler itself) that are of concern here.

The language can be clarified:

- Rule 21.1 reports identifiers reserved for the C and POSIX standard
  libraries. Xen does not use such libraries and all translation units
  are compiled with option '-nostdinc', therefore there is no reason to
  avoid to use `#define` or `#undef` on C and POSIX standard libraries
  identifiers except for those beginning with `__builtin_` for which
  compilers may perform (wrong) optimizations.




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.