Re: [PATCH] Coccinelle: noderef: Add a rule and correct the old rule

From: Vaishali Thakkar
Date: Fri May 06 2016 - 00:48:26 EST




On Friday 06 May 2016 01:40 AM, Julia Lawall wrote:
>
>
> On Wed, 27 Apr 2016, Vaishali Thakkar wrote:
>
>> Add a new rule to detect the cases where sizeof is used as a
>> subexpression rather than a top level argument.
>>
>> Also, for the patch mode third rule should behave same as
>> second rule with arguments reversed. So, change that as well.
>>
>> Signed-off-by: Vaishali Thakkar <vaishali.thakkar@xxxxxxxxxx>
>> ---
>> scripts/coccinelle/misc/noderef.cocci | 11 ++++++++++-
>> 1 file changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/coccinelle/misc/noderef.cocci b/scripts/coccinelle/misc/noderef.cocci
>> index 80a831c..9991ee9 100644
>> --- a/scripts/coccinelle/misc/noderef.cocci
>> +++ b/scripts/coccinelle/misc/noderef.cocci
>> @@ -16,6 +16,7 @@ virtual patch
>> @depends on patch@
>> expression *x;
>> expression f;
>> +identifier i;
>
> I think that i could be an expression in both cases?

Yeah, that would be fine I guess. I'll send the v2.

> julia
>
>> type T;
>> @@
>>
>> @@ -30,7 +31,12 @@ f(...,(T)(x),...,sizeof(
>> + *x
>> ),...)
>> |
>> -f(...,sizeof(x),...,(T)(
>> +f(...,sizeof(
>> +- x
>> ++ *x
>> + ),...,(T)(x),...)
>> +|
>> +x = f(...,i*sizeof(
>> - x
>> + *x
>> ),...)
>> @@ -39,6 +45,7 @@ f(...,sizeof(x),...,(T)(
>> @r depends on !patch@
>> expression *x;
>> expression f;
>> +identifier i;
>> position p;
>> type T;
>> @@
>> @@ -49,6 +56,8 @@ type T;
>> *f(...,(T)(x),...,sizeof@p(x),...)
>> |
>> *f(...,sizeof@p(x),...,(T)(x),...)
>> +|
>> +*x = f(...,i*sizeof@p(x),...)
>> )
>>
>> @script:python depends on org@
>> --
>> 2.1.4
>>
>>

--
Vaishali