On Thu, 8 Feb 2018, Francois-Xavier Le Bail wrote:
> Hi, > > expression *e; > define 'e' is a pointer expression. > > Is there a way to define 'e' is *not* a pointer expression? @@ expression *e; expression e1; @@ ( e | *e1 ) The above will highlight all expressions that have not been inferred to have a pointer type. But note that that doesn't mean that it has been inferred that the expression as a non-pointer type. It could be that not enough information is available. Another option would be: @@ expression *e; type T; T e1; @@ ( e | *e1 ) Now it should require that e1 actually has a known type and it is not a pointer type. Another approach would be: @bad@ position p; expression *e; @@ e@p @ok@ position p != bad.p; type T; T e; @@ *e@p If you are actually interested in structure types, you could also say struct e; julia > -- > Francois-Xavier > _______________________________________________ > Cocci mailing list > Cocci@systeme.lip6.fr > https://systeme.lip6.fr/mailman/listinfo/cocci > _______________________________________________ Cocci mailing list Cocci@systeme.lip6.fr https://systeme.lip6.fr/mailman/listinfo/cocci