Messages in this thread Patch in this message | | | Date | Mon, 6 Jun 2011 06:55:54 +0200 (CEST) | From | Julia Lawall <> | Subject | Re: [PATCH] coccinelle: if(ret)return ret; return ret; semantic patch |
| |
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 <Gregory.Dietsche@cuw.edu> > --- > 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 >
| |