On Fri, 12 May 2017, Arend van Spriel wrote:

> On 5/12/2017 2:15 PM, Julia Lawall wrote:
> >
> >
> > On Fri, 12 May 2017, Arend van Spriel wrote:
> >
> > > I have the following rule in my cocci script. Actually, want to apply the
> > > patch conditionally, ie. when type S matches one or more structure
> > > definitions. Initially I had 'struct Foo *drvr, ...' but that did not work
> > > for
> > > me. Any hints are appreciated.
> > >
> > > Regards,
> > > Arend
> > >
> > > @@
> > > identifier func;
> > > identifier drvr;
> > > type T;
> > > expression list es;
> > > type S;
> > > @@
> > >          T func(S *drvr, ...)
> >
> > struct i *drvr, where i is an identifier metavariable?  I'm not sure what
> > you mean by one or more. Do you want to match more than the first
> > argument?
>
> Hi Julia,
>
> I mean that I want to apply the rule only if S is 'struct foo' or 'struct
> bar', but not 'struct other'. Or do I need separate rules for that?

OK, it is possible that you can put

struct \(foo\|bar\) *drvr

Or maybe \(struct foo\|struct bar\) *drvr.  Or maybe the \( \) around the
whole parameter declaration.

julia

>
> Regards,
> Arend
> > julia
> >
> >
> > >          {
> > >                  <...
> > > -               brcmf_err(es);
> > > +               brcmf_derr(drvr, es);
> > >                  ...>
> > >          }
> > > _______________________________________________
> > > Cocci mailing list
> > > Cocci@systeme.lip6.fr
> > > https://systeme.lip6.fr/mailman/listinfo/cocci
> > >
>
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to