aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/checkpatch.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/checkpatch.pl')
-rwxr-xr-xscripts/checkpatch.pl29
1 files changed, 29 insertions, 0 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 97ee377c4f51..f2a1131b2f8b 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -4231,6 +4231,35 @@ sub process {
4231 } 4231 }
4232 } 4232 }
4233 4233
4234# comparisons with a constant or upper case identifier on the left
4235# avoid cases like "foo + BAR < baz"
4236# only fix matches surrounded by parentheses to avoid incorrect
4237# conversions like "FOO < baz() + 5" being "misfixed" to "baz() > FOO + 5"
4238 if ($^V && $^V ge 5.10.0 &&
4239 $line =~ /^\+(.*)\b($Constant|[A-Z_][A-Z0-9_]*)\s*($Compare)\s*($LvalOrFunc)/) {
4240 my $lead = $1;
4241 my $const = $2;
4242 my $comp = $3;
4243 my $to = $4;
4244 my $newcomp = $comp;
4245 if ($lead !~ /$Operators\s*$/ &&
4246 $to !~ /^(?:Constant|[A-Z_][A-Z0-9_]*)$/ &&
4247 WARN("CONSTANT_COMPARISON",
4248 "Comparisons should place the constant on the right side of the test\n" . $herecurr) &&
4249 $fix) {
4250 if ($comp eq "<") {
4251 $newcomp = ">";
4252 } elsif ($comp eq "<=") {
4253 $newcomp = ">=";
4254 } elsif ($comp eq ">") {
4255 $newcomp = "<";
4256 } elsif ($comp eq ">=") {
4257 $newcomp = "<=";
4258 }
4259 $fixed[$fixlinenr] =~ s/\(\s*\Q$const\E\s*$Compare\s*\Q$to\E\s*\)/($to $newcomp $const)/;
4260 }
4261 }
4262
4234# Return of what appears to be an errno should normally be negative 4263# Return of what appears to be an errno should normally be negative
4235 if ($sline =~ /\breturn(?:\s*\(+\s*|\s+)(E[A-Z]+)(?:\s*\)+\s*|\s*)[;:,]/) { 4264 if ($sline =~ /\breturn(?:\s*\(+\s*|\s+)(E[A-Z]+)(?:\s*\)+\s*|\s*)[;:,]/) {
4236 my $name = $1; 4265 my $name = $1;