Hi,

Consider the following C code and cocci patch:

#include <stdio.h>

int x;

int main(int argc, char **argv)
{
    if (y)
        do_something(x);
}


@@
identifier x;
@@
- do_something(x);
+ if (x)
+       do_one_thing();
+ else
+       do_another_thing();


For this input, spatch produces the following output:


$ spatch --sp-file test.cocci test.c
init_defs_builtins: /usr/lib/coccinelle/standard.h
HANDLING: test.c
diff =
--- test.c
+++ /tmp/cocci-output-18011-a28e99-test.c
@@ -5,5 +5,8 @@ int x;
 int main(int argc, char **argv)
 {
     if (y)
-        do_something(x);
+        if (x)
+            do_one_thing();
+    else
+        do_another_thing();
 }


Obviously it gets the indentation wrong there. Is this a bug?

Adding curly braces around the outer if (in the C code) yields the correct indentation, while adding the braces around the inner if (in the cocci patch) does not.

Adding an else branch to the outer if also produces the wrong indentation.

--
Regards,
Christoph
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to