scripts/kernel-doc: warn on excess enum value descriptions
The existing message "Excess struct/union/enum/typedef member [...]" made it sound like this would already be done, but the code is never invoked for enums or typedefs (and really can't be). Add some code to the enum dumper to handle this there instead. While at it, also make the above message more accurate by simply dumping the type that was passed in, and pass the struct/union differentiation in. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
8a29896a6e
commit
5cb5c31cdf
@ -2168,7 +2168,7 @@ sub dump_struct($$) {
|
|||||||
my $nested;
|
my $nested;
|
||||||
|
|
||||||
if ($x =~ /(struct|union)\s+(\w+)\s*{(.*)}/) {
|
if ($x =~ /(struct|union)\s+(\w+)\s*{(.*)}/) {
|
||||||
#my $decl_type = $1;
|
my $decl_type = $1;
|
||||||
$declaration_name = $2;
|
$declaration_name = $2;
|
||||||
my $members = $3;
|
my $members = $3;
|
||||||
|
|
||||||
@ -2194,7 +2194,7 @@ sub dump_struct($$) {
|
|||||||
$members =~ s/DECLARE_HASHTABLE\s*\(([^,)]+), ([^,)]+)\)/unsigned long $1\[1 << (($2) - 1)\]/gos;
|
$members =~ s/DECLARE_HASHTABLE\s*\(([^,)]+), ([^,)]+)\)/unsigned long $1\[1 << (($2) - 1)\]/gos;
|
||||||
|
|
||||||
create_parameterlist($members, ';', $file);
|
create_parameterlist($members, ';', $file);
|
||||||
check_sections($file, $declaration_name, "struct", $sectcheck, $struct_actual, $nested);
|
check_sections($file, $declaration_name, $decl_type, $sectcheck, $struct_actual, $nested);
|
||||||
|
|
||||||
output_declaration($declaration_name,
|
output_declaration($declaration_name,
|
||||||
'struct',
|
'struct',
|
||||||
@ -2226,6 +2226,8 @@ sub dump_enum($$) {
|
|||||||
if ($x =~ /enum\s+(\w+)\s*{(.*)}/) {
|
if ($x =~ /enum\s+(\w+)\s*{(.*)}/) {
|
||||||
$declaration_name = $1;
|
$declaration_name = $1;
|
||||||
my $members = $2;
|
my $members = $2;
|
||||||
|
my %_members;
|
||||||
|
|
||||||
$members =~ s/\s+$//;
|
$members =~ s/\s+$//;
|
||||||
|
|
||||||
foreach my $arg (split ',', $members) {
|
foreach my $arg (split ',', $members) {
|
||||||
@ -2236,7 +2238,14 @@ sub dump_enum($$) {
|
|||||||
print STDERR "${file}:$.: warning: Enum value '$arg' ".
|
print STDERR "${file}:$.: warning: Enum value '$arg' ".
|
||||||
"not described in enum '$declaration_name'\n";
|
"not described in enum '$declaration_name'\n";
|
||||||
}
|
}
|
||||||
|
$_members{$arg} = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (my ($k, $v) = each %parameterdescs) {
|
||||||
|
if (!exists($_members{$k})) {
|
||||||
|
print STDERR "${file}:$.: warning: Excess enum value " .
|
||||||
|
"'$k' description in '$declaration_name'\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
output_declaration($declaration_name,
|
output_declaration($declaration_name,
|
||||||
@ -2506,7 +2515,7 @@ sub check_sections($$$$$$) {
|
|||||||
} else {
|
} else {
|
||||||
if ($nested !~ m/\Q$sects[$sx]\E/) {
|
if ($nested !~ m/\Q$sects[$sx]\E/) {
|
||||||
print STDERR "${file}:$.: warning: " .
|
print STDERR "${file}:$.: warning: " .
|
||||||
"Excess struct/union/enum/typedef member " .
|
"Excess $decl_type member " .
|
||||||
"'$sects[$sx]' " .
|
"'$sects[$sx]' " .
|
||||||
"description in '$decl_name'\n";
|
"description in '$decl_name'\n";
|
||||||
++$warnings;
|
++$warnings;
|
||||||
|
Loading…
Reference in New Issue
Block a user