On Tue, 7 Jun 2022, Markus Elfring wrote: > > > The test of an expression's address does not necessarily represent the > > whole condition, it may only be a part of it. > > This change aims at detecting an address test in more complex conditions. > > > > Signed-off-by: Jérémy Lefaure <jeremy.lefaure@xxxxxxxxxxx> > > --- > > v1 -> v2: Moved disjunction on the condition itself instead of being on the if statements > > > > scripts/coccinelle/misc/ifaddr.cocci | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/scripts/coccinelle/misc/ifaddr.cocci b/scripts/coccinelle/misc/ifaddr.cocci > > index fc92e8fcbfcb..14dbf3131a3f 100644 > > --- a/scripts/coccinelle/misc/ifaddr.cocci > > +++ b/scripts/coccinelle/misc/ifaddr.cocci > > @@ -18,7 +18,7 @@ statement S1,S2; > > position p; > > @@ > > > > -*if@p (&x) > > +*if@p ( \(&x || ... \| &x && ... \) ) > > S1 else S2 > > > > @script:python depends on org@ > > > Would you ever dare to adjust the specification another bit for such > a source code search approach according to the difference in the selection > of the operators “||” (disjunction) and “&&” (conjunction)? I don't really understand the above, but it made me realize that actually the following is sufficient: @@ expression x; @@ *&x || ... This forces &x to appear as a test expression. There can be 0 or more occurrences of ||, so eg &x && y is also matched. julia