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 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 > Cocci@systeme.lip6.fr > https://systeme.lip6.fr/mailman/listinfo/cocci >