On Fri, 24 May 2019, Timur Tabi wrote:

> I'm working on a new script that needs to add a NULL-pointer check if
> one does not already exist.  For example:
>
> x = (MYTYPE)MACRO(params);
>
> should become
>
> x = (MYTYPE)MACRO(params);
> if (!x) {
>     do_something;
> }
>
> My problem is that I want coccinelle to add the if-check only if it
> doesn't already exist.  So currently I have this:
>
> @@
> type T;
> expression x;
> @@
> x = (T)MACRO(...);
> +if (x == NULL)
> +{
> +    status = ERROR;
> +    goto exit;
> +}
>
> How do I make sure that these lines are not added if they already
> exist?  I need to check for "if (x == NULL)" and "if (!x)" variants.

(
A
B
|
A
+B
)

Just put the == NULL variant.  An isomorphism will take care of the !x
case.

julia




> _______________________________________________
> Cocci mailing list
> [email protected]
> https://systeme.lip6.fr/mailman/listinfo/cocci
>
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to