scripts/checkpatch.pl: update to b43ae21bd1d8199df10548f3fc0d806052027f29 and enable...
author黄涛 <huangtao@rock-chips.com>
Fri, 4 Jul 2014 04:59:57 +0000 (12:59 +0800)
committer黄涛 <huangtao@rock-chips.com>
Fri, 4 Jul 2014 05:00:14 +0000 (13:00 +0800)
scripts/checkpatch.pl

index 010b18ef4ea0cb9e1575b9e54f3922c7bd7f9888..ca5032393998fca6786c56db5686fcb823119aa4 100755 (executable)
@@ -23,7 +23,7 @@ my $tst_only;
 my $emacs = 0;
 my $terse = 0;
 my $file = 0;
-my $check = 0;
+my $check = 1;
 my $check_orig = 0;
 my $summary = 1;
 my $mailback = 0;
@@ -3476,12 +3476,17 @@ sub process {
                        }
                }
 
-# unnecessary return in a void function? (a single leading tab, then return;)
-               if ($sline =~ /^\+\treturn\s*;\s*$/ &&
-                   $prevline =~ /^\+/) {
+# unnecessary return in a void function
+# at end-of-function, with the previous line a single leading tab, then return;
+# and the line before that not a goto label target like "out:"
+               if ($sline =~ /^[ \+]}\s*$/ &&
+                   $prevline =~ /^\+\treturn\s*;\s*$/ &&
+                   $linenr >= 3 &&
+                   $lines[$linenr - 3] =~ /^[ +]/ &&
+                   $lines[$linenr - 3] !~ /^[ +]\s*$Ident\s*:/) {
                        WARN("RETURN_VOID",
-                            "void function return statements are not generally useful\n" . $herecurr);
-               }
+                            "void function return statements are not generally useful\n" . $hereprev);
+               }
 
 # if statements using unnecessary parentheses - ie: if ((foo == bar))
                if ($^V && $^V ge 5.10.0 &&