Messages in this thread | | | Date | Thu, 26 Dec 2013 12:09:32 -0800 | From | Josh Triplett <> | Subject | Re: [PATCH 4/5] checkpatch: check for if's with unnecessary parentheses |
| |
On Thu, Dec 26, 2013 at 11:20:31AM -0800, Joe Perches wrote: > If statements don't need multiple parentheses around tested > comparisons like "if ((foo == bar))". > > An == comparison maybe a sign of an intended assignment, > so emit a slightly different message if so. > > Signed-off-by: Joe Perches <joe@perches.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
> scripts/checkpatch.pl | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index db72b88..c12234e 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -3322,6 +3322,20 @@ sub process { > } > } > > +# if statements using unnecessary parentheses - ie: if ((foo == bar)) > + if ($^V && $^V ge 5.10.0 && > + $line =~ /\bif\s*((?:\(\s*){2,})/) { > + my $openparens = $1; > + my $count = $openparens =~ tr@\(@\(@; > + my $msg = ""; > + if ($line =~ /\bif\s*(?:\(\s*){$count,$count}$LvalOrFunc\s*($Compare)\s*$LvalOrFunc(?:\s*\)){$count,$count}/) { > + my $comp = $4; #Not $1 because of $LvalOrFunc > + $msg = " - maybe == should be = ?" if ($comp eq "=="); > + WARN("UNNECESSARY_PARENTHESES", > + "Unnecessary parentheses$msg\n" . $herecurr); > + } > + } > + > # Return of what appears to be an errno should normally be -'ve > if ($line =~ /^.\s*return\s*(E[A-Z]*)\s*;/) { > my $name = $1; > -- > 1.8.1.2.459.gbcd45b4.dirty >
| |