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.thak...@oracle.com> >> --- >> 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