On Mon, 25 Nov 2019, David Frey wrote:

> Hi,
>
> I'm trying to write a .cocci file to transform all calls to a function
> "f(ex)" to something like this:
>
> #ifdef USE_F
> f(ex)
> #else
> g(ex)
> #endif
>
> The function has this signature:
> bool f(int x);
>
> This is the patch that I tried to use:
> @@
> expression ex;
> @@
> +#ifdef USE_F
>  f(ex)
> +#else
> +g(ex)
> +#endif
>
>
> This is the result of running it:
> $ spatch --show-c --sp-file test.cocci test.c
> init_defs_builtins: /usr/bin/../lib/coccinelle/standard.h
> plus: parse error:
>   File "test.cocci", line 7, column 1, charpos = 50
>   around = 'g',
>   whole content = +g(ex)
>
> What is wrong with the patch above?

Coccinelle doesn't currently support adding ifdefs on expressions, only on
statements.

You could try for some typical usage contexts, like

+ifdef...
x = f(ex);
+#else
+x = g(ex);
+#endif

julia
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to