On Mon, 18 Aug 2014, Lars-Peter Clausen wrote:

> On 08/17/2014 07:42 PM, Julia Lawall wrote:
> >
> >
> > On Sun, 17 Aug 2014, Joe Perches wrote:
> >
> > > On Sun, 2014-08-17 at 18:09 +0200, SF Markus Elfring wrote:
> > > > > I would prefer to be able to convert
> > > > >       *(skb->data + frame_size / 2 + 10)
> > > > > not to
> > > > >       (skb->data + frame_size / 2)[10]
> > > > > but to
> > > > >       skb->data[frame_size / 2 + 10]
> > > > >
> > > > > but I don't know how.
> > > >
> > > > How do you think about a bit more fine-tuning for the desired semantic
> > > > patch?
> > >
> > > Not sure I understand what you are requesting.
> > >
> > > > Can it be that the pattern "*(foo + e)" is too generic for any source
> > > > code place?
> > >
> > > I don't think so as any type or combination of
> > > arithmetic operations would then need to be specified
> > > by the spatch input script.
> > >
> > > > Would you like to try out the specification of a few more elements
> > > > instead of a single expression here?
> > >
> > > Not really.
> > >
> > > I think a precedence specification capability like first
> > > pointer match followed by longest arithmetic match would
> > > perhaps be a better generic facility.
> >
> > Isn't the problem already solved? If not, I will look into it.
>
> I think for these kinds of problems it would be helpful to have a metavariable
> type that is somewhere in the middle of idexpression and expression. Something
> that matches an identifier or accessing a field in an identifier, or a field
> of a field of an identifier and so on.
>
> In the past I had cocci scripts where I ended up doing
>
> (
> id->fld1
> |
> id->fld1.fld2
> |
> id->fld1.fld2.fld3
> ...
> )
>
> to kind of make this work.

It's probably true,  But I don't know what one would call it, and I think
that if one had a name for it, no one would understand it...

julia
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to