On 11/10/2023 8:46 pm, Nicola Vetrini wrote: > diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst > index ee7aed0609d2..1b00e4e3e9b7 100644 > --- a/docs/misra/deviations.rst > +++ b/docs/misra/deviations.rst > @@ -199,6 +199,11 @@ Deviations related to MISRA C:2012 Rules: > See automation/eclair_analysis/deviations.ecl for the full > explanation. > - Tagged as `safe` for ECLAIR. > > + * - R11.9 > + - __ACCESS_ONCE uses a 0 as a null pointer constant to check if a type > is > + scalar, therefore its usage for this purpose is allowed. > + - Tagged as `deliberate` for ECLAIR.
Really? #define __ACCESS_ONCE(x) (void)(typeof(x))0; /* Scalar typecheck. */ That's not a pointer. If someone were to pass in an x who's type was pointer-to-object, then yes it is technically a NULL pointer constant for long enough for the build to error out. What justification is Eclair using to suggest that it is a pointer? If you really really want to shut things up, it doesn't need to be 0 - it could be 1 or any other integer, but this honestly feels like a bug in Eclair to me. ~Andrew