Thanks. I tried this too, but I wasn't sure about the results. The question is why stop here. For example, there are IS_ERR calls that one could consider as well. Or ret < 0. Or why not just:
@@ expression ret; @@ - if (...) return ret; return ret; Although there might be function calls that one doesn't want to touch, so: @@ identifier f != IS_ERR; expression ret; statement S; @@ ( if (<+...f(...)...+>) S | - if (...) return ret; return ret; ) julia On Sun, 5 Jun 2011, Greg Dietsche wrote: > This semantic patch finds code matching this pattern: > if(ret) > return ret; > return ret; > > I will be submitting patches shortly against the mainline to cleanup all > code matching this pattern. > > Signed-off-by: Greg Dietsche <[email protected]> > --- > scripts/coccinelle/misc/doublereturn.cocci | 20 ++++++++++++++++++++ > 1 files changed, 20 insertions(+), 0 deletions(-) > create mode 100644 scripts/coccinelle/misc/doublereturn.cocci > > diff --git a/scripts/coccinelle/misc/doublereturn.cocci > b/scripts/coccinelle/misc/doublereturn.cocci > new file mode 100644 > index 0000000..656a118 > --- /dev/null > +++ b/scripts/coccinelle/misc/doublereturn.cocci > @@ -0,0 +1,20 @@ > +/// Remove unecessary if/return in code that follows this pattern: > +/// if(retval) > +/// return retval; > +/// return retval; > +// > +// Confidence: High > +// Copyright: (C) 2011 Greg Dietsche GPLv2. > +// URL: http://www.gregd.org > +// Comments: > +// Options: -no_includes > + > +virtual patch > + > +@@ > +identifier retval; > +@@ > +-if (retval) > +- return retval; > +-return retval; > ++return retval; > -- > 1.7.2.5 > > _______________________________________________ Cocci mailing list [email protected] http://lists.diku.dk/mailman/listinfo/cocci (Web access from inside DIKUs LAN only)
