[Cocci] new to cocci, help needed

Julia Lawall julia.lawall at lip6.fr
Fri Apr 21 11:10:36 CEST 2017



On Fri, 21 Apr 2017, Kaspar Schleiser wrote:

> Hello all,
>
> I'm just beginning to write my own semantic patches, and I'm having a
> little trouble getting the hang of it.
>
> Currently I'm trying to unify all calls to a function named "f" taking a
> pointer to a variable and the variable's size as arguments, which I want
> to deduce using sizeof:
>
> f(..., &var, sizeof(var))
>
>
> My initial approach looks similar to this:
>
> @@
> expression E1, E2;
> @@
>
> f(...,*E1,
> - E2,
> + sizeof(E1))
>
> ... but this doesn't find e.g., "f(a, b, &test, whatever);".
>
> What am I doing wrong?

Your pattern has *E1, but you are hoping to match &E1.

If you mean that E1 should be a random pointer-typed expression, then that
constraint should go in the metavariable list, eg

expression *E1;

julia


More information about the Cocci mailing list