On Fri, Jun 03, 2022 at 12:30:25PM +0200, Morten Brørup wrote:
> > From: Bruce Richardson [mailto:bruce.richard...@intel.com]
> > Sent: Friday, 3 June 2022 12.13
> > 
> > Add script to replace [0] with [] when used at the end of a struct.
> > The script also includes an additional struct member to match against
> > so
> > as to avoid issues with arrays with only a single zero-length element.
> > 
> > Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
> > Acked-by: Morten Brørup <m...@smartsharesystems.com>
> > Acked-by: Stephen Hemminger <step...@networkplumber.org>
> > Acked-by: Hemant Agrawal <hemant.agra...@nxp.com>
> > ---
> >  devtools/cocci/zero_length_array.cocci | 21 +++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> >  create mode 100644 devtools/cocci/zero_length_array.cocci
> > 
> > diff --git a/devtools/cocci/zero_length_array.cocci
> > b/devtools/cocci/zero_length_array.cocci
> > new file mode 100644
> > index 0000000000..de8783bc7a
> > --- /dev/null
> > +++ b/devtools/cocci/zero_length_array.cocci
> > @@ -0,0 +1,21 @@
> > +// Replace zero-length array members with []
> > +@@
> > +identifier st, member, arr;
> > +type T1, T2;
> > +@@
> > +struct st {
> > +   ...
> > +   T1 member;
> > +-  T2 arr[0];
> > ++  T2 arr[];
> > +};
> > +@@
> > +identifier st, member, arr, id;
> > +type T1, T2;
> > +@@
> > +struct st {
> > +   ...
> > +   T1 member;
> > +-  T2 arr[0];
> > ++  T2 arr[];
> > +} id;
> > --
> > 2.34.1
> > 
> 
> Formally, arr[0] could be the only field in the structure, i.e. with no 
> preceding fields. It would be silly, but consider checking for that too.
> 

I actually had that originally, but the compiler will complain on
structures where there is only an unsized element. Therefore, I made the
script only do replacements on structs which had at least one other
element.

Reply via email to