Re: [PATCH v3] docs/misra/rules.rst: add rule 5.5

2024-04-16 Thread Bertrand Marquis
Hi Stefano,

> On 15 Mar 2024, at 01:35, Stefano Stabellini  wrote:
> 
> Signed-off-by: Stefano Stabellini 

With the semicolon comment from Jan addressed:

Acked-by: Bertrand Marquis 

Cheers
Bertrand




Re: [PATCH v3] docs/misra/rules.rst: add rule 5.5

2024-03-15 Thread Stefano Stabellini
On Fri, 15 Mar 2024, Jan Beulich wrote:
> On 15.03.2024 01:35, Stefano Stabellini wrote:
> > --- a/docs/misra/rules.rst
> > +++ b/docs/misra/rules.rst
> > @@ -181,6 +181,21 @@ maintainers if you want to suggest a change.
> > headers (xen/include/public/) are allowed to retain longer
> > identifiers for backward compatibility.
> >  
> > +   * - `Rule 5.5 
> > `_
> > + - Required
> > + - Identifiers shall be distinct from macro names
> > + - Macros expanding to their own name are allowed, e.g.::
> > +
> > +   #define x x
> > +
> > +   Clashes between names of function-like macros and identifiers of
> > +   non-callable entities are allowed. Callable entities having an
> > +   identifier that is the same of the name of a
> > +   function-like macro are not allowed. Example (not allowed)::
> > +
> > +   #define f(x, y) f(x, y);
> 
> The semicolon here wants dropping, just to not give questionable constructs
> as examples.

Good point


> > +   void f(int x, int y);
> 
> With this not allowed and there (iirc) being examples of such in the code,
> I'll be curious how it is meant to deal with them.

I don't know how many violations we have, and if there is a general
pattern we could apply to address them. As usual we'll have a choice
between changing the code or adding a deviation.



Re: [PATCH v3] docs/misra/rules.rst: add rule 5.5

2024-03-15 Thread Jan Beulich
On 15.03.2024 01:35, Stefano Stabellini wrote:
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -181,6 +181,21 @@ maintainers if you want to suggest a change.
> headers (xen/include/public/) are allowed to retain longer
> identifiers for backward compatibility.
>  
> +   * - `Rule 5.5 
> `_
> + - Required
> + - Identifiers shall be distinct from macro names
> + - Macros expanding to their own name are allowed, e.g.::
> +
> +   #define x x
> +
> +   Clashes between names of function-like macros and identifiers of
> +   non-callable entities are allowed. Callable entities having an
> +   identifier that is the same of the name of a
> +   function-like macro are not allowed. Example (not allowed)::
> +
> +   #define f(x, y) f(x, y);

The semicolon here wants dropping, just to not give questionable constructs
as examples.

> +   void f(int x, int y);

With this not allowed and there (iirc) being examples of such in the code,
I'll be curious how it is meant to deal with them.

Jan