Commit 2defb272 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet

scripts: kernel-doc: apply filtering rules to warnings

When kernel-doc is called with output selection filters,
it will be called lots of time for a single file. If
there is a warning present there, it means that it may
print hundreds of identical warnings.

Worse than that, the -function NAME actually filters only
functions. So, it makes no sense at all to print warnings
for structs or enums.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 84ce5b98
...@@ -1160,16 +1160,26 @@ sub dump_enum($$) { ...@@ -1160,16 +1160,26 @@ sub dump_enum($$) {
push @parameterlist, $arg; push @parameterlist, $arg;
if (!$parameterdescs{$arg}) { if (!$parameterdescs{$arg}) {
$parameterdescs{$arg} = $undescribed; $parameterdescs{$arg} = $undescribed;
print STDERR "${file}:$.: warning: Enum value '$arg' ". if (($output_selection == OUTPUT_ALL) ||
"not described in enum '$declaration_name'\n"; ($output_selection == OUTPUT_INCLUDE &&
defined($function_table{$declaration_name})) ||
($output_selection == OUTPUT_EXCLUDE &&
!defined($function_table{$declaration_name}))) {
print STDERR "${file}:$.: warning: Enum value '$arg' not described in enum '$declaration_name'\n";
}
} }
$_members{$arg} = 1; $_members{$arg} = 1;
} }
while (my ($k, $v) = each %parameterdescs) { while (my ($k, $v) = each %parameterdescs) {
if (!exists($_members{$k})) { if (!exists($_members{$k})) {
print STDERR "${file}:$.: warning: Excess enum value " . if (($output_selection == OUTPUT_ALL) ||
"'$k' description in '$declaration_name'\n"; ($output_selection == OUTPUT_INCLUDE &&
defined($function_table{$declaration_name})) ||
($output_selection == OUTPUT_EXCLUDE &&
!defined($function_table{$declaration_name}))) {
print STDERR "${file}:$.: warning: Excess enum value '$k' description in '$declaration_name'\n";
}
} }
} }
...@@ -1375,9 +1385,15 @@ sub push_parameter($$$$) { ...@@ -1375,9 +1385,15 @@ sub push_parameter($$$$) {
if (!defined $parameterdescs{$param} && $param !~ /^#/) { if (!defined $parameterdescs{$param} && $param !~ /^#/) {
$parameterdescs{$param} = $undescribed; $parameterdescs{$param} = $undescribed;
print STDERR if (($output_selection == OUTPUT_ALL) ||
"${file}:$.: warning: Function parameter or member '$param' not described in '$declaration_name'\n"; ($output_selection == OUTPUT_INCLUDE &&
++$warnings; defined($function_table{$declaration_name})) ||
($output_selection == OUTPUT_EXCLUDE &&
!defined($function_table{$declaration_name}))) {
print STDERR
"${file}:$.: warning: Function parameter or member '$param' not described in '$declaration_name'\n";
++$warnings;
}
} }
$param = xml_escape($param); $param = xml_escape($param);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment