Hello,

I have noticed that an update suggestion can be provided for
a source file by a known script for the semantic patch language.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/coccinelle/misc/returnvar.cocci?id=8e0d0ad206f08506c893326ca7c9c3d9cc042cef

Update candidate:
btrfs_destroy_delayed_refs()
https://elixir.bootlin.com/linux/v5.4-rc2/source/fs/btrfs/disk-io.c#L4252
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/fs/btrfs/disk-io.c?id=0e9d28bc6c81f47f94979ec7d0ab6ac42345fcee#n4243

I got the software development idea then to change the function return type
to “void” together with the deletion of return statements by the help of
the tool “Coccinelle 1.0.8-00004-g842075f7” instead of adjusting return values.

@replacement@
constant C;
identifier action, rc;
type T;
@@
 static
-T
+void
 action(...)
 {
-T rc = C;
 ... when != rc
     when strict
-return rc;
 }


Unfortunately, I do not get the transformation result which I would expect
for this approach. But I have noticed also that a similar SmPL script
can work as expected (if a function like “unpin_extent_cache” was not marked
as “static”?).
Would you like to add any advices?

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

Reply via email to