aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Gustafsson <daniel@yesql.se>2018-10-05 13:33:21 +0200
committerDaniel Gustafsson <daniel@yesql.se>2018-10-05 13:33:21 +0200
commit4301d14b90101d61575841e85edab18d384d0154 (patch)
treeb5e3aab87032c0ccd96ec84feeaa2806cb4f5ad6 /lib
parentb5d182d037364c5fff250f0ad48066c05115dc7f (diff)
checksrc: handle zero scoped ignore commands
If a !checksrc! disable command specified to ignore zero errors, it was still added to the ignore block even though nothing was ignored. While there were no blocks ignored that shouldn't be ignored, the processing ended with with a warning: <filename>:<line>:<col>: warning: Unused ignore: LONGLINE (UNUSEDIGNORE) /* !checksrc! disable LONGLINE 0 */ ^ Fix by instead treating a zero ignore as a a badcommand and throw a warning for that one. Closes #3096 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Diffstat (limited to 'lib')
-rwxr-xr-xlib/checksrc.pl11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/checksrc.pl b/lib/checksrc.pl
index 1af6bbd72..15e9aff8e 100755
--- a/lib/checksrc.pl
+++ b/lib/checksrc.pl
@@ -249,7 +249,16 @@ sub checksrc {
$scope=999999;
}
- if($ignore_set{$warn}) {
+ # Comparing for a literal zero rather than the scalar value zero
+ # covers the case where $scope contains the ending '*' from the
+ # comment. If we use a scalar comparison (==) we induce warnings
+ # on non-scalar contents.
+ if($scope eq "0") {
+ checkwarn("BADCOMMAND",
+ $line, 0, $file, $l,
+ "Disable zero not supported, did you mean to enable?");
+ }
+ elsif($ignore_set{$warn}) {
checkwarn("BADCOMMAND",
$line, 0, $file, $l,
"$warn already disabled from line $ignore_set{$warn}");