On Tue, 18 Dec 2018, Max wrote:

> Is there a way to combine those 2 patches in one file?
>
> For example, following spatch:
>
> _____________________________
>
> // spatch --in-place --sp-file my.spatch tests/test.c
>
> @@
> @@
> - #define OLD(msg, data, len) ...
>
> @@
> expression a, b, c;
> @@
> - OLD(a, b, c);
> + if (!my_func(a, b, c))
> +  abort();
> _____________________________
>
> Gives me following error:
>
> rule starting on line 2: node 25: [end][] in something_else reachable by
> inconsistent control-flow paths
>
> which I don't know how to interpret.

It's complaining about the rule starting on line 2, which is the one
removing the #define.  So the problem doesn't have anything to do with the
two rules being together - it never starts executing the second one.

Something being reachable by inconsistent control-flow paths occurs when
if you trace through the function in one way (ie via one if branch) you
get one transformation, and if you trace through it in another way you get
another transformation (or no transformation).

It's a bit strange that this would occur in your case, where you just want
to remove the entire body of the #define.  Can you mak a simple example
that illustrates the problem?

To figure out what #define is being considered, you can try the
command-line argument --show-trying.  If that doesn't suffice (I don't
know to what extent it is supported for #define), then --verbose-match
might be helpful as well.

julia

>
> --
> - Max Suraev <[email protected]>       http://www.sysmocom.de/
> =======================================================================
> * sysmocom - systems for mobile communications GmbH
> * Alt-Moabit 93
> * 10559 Berlin, Germany
> * Sitz / Registered office: Berlin, HRB 134158 B
> * Geschaeftsfuehrer / Managing Directors: Harald Welte
>
> _______________________________________________
> 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