Skip to content

Commit

Permalink
scripts/kernel-doc: warn on excess enum value descriptions
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Jonathan Corbet <[email protected]>
  • Loading branch information
jmberg-intel authored and Jonathan Corbet committed Sep 26, 2017
1 parent 8a29896 commit 5cb5c31
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions scripts/kernel-doc
Original file line number Diff line number Diff line change
Expand Up @@ -2168,7 +2168,7 @@ sub dump_struct($$) {
my $nested;

if ($x =~ /(struct|union)\s+(\w+)\s*{(.*)}/) {
#my $decl_type = $1;
my $decl_type = $1;
$declaration_name = $2;
my $members = $3;

Expand All @@ -2194,7 +2194,7 @@ sub dump_struct($$) {
$members =~ s/DECLARE_HASHTABLE\s*\(([^,)]+), ([^,)]+)\)/unsigned long $1\[1 << (($2) - 1)\]/gos;

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,
'struct',
Expand Down Expand Up @@ -2226,6 +2226,8 @@ sub dump_enum($$) {
if ($x =~ /enum\s+(\w+)\s*{(.*)}/) {
$declaration_name = $1;
my $members = $2;
my %_members;

$members =~ s/\s+$//;

foreach my $arg (split ',', $members) {
Expand All @@ -2236,9 +2238,16 @@ sub dump_enum($$) {
print STDERR "${file}:$.: warning: Enum value '$arg' ".
"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,
'enum',
{'enum' => $declaration_name,
Expand Down Expand Up @@ -2506,7 +2515,7 @@ sub check_sections($$$$$$) {
} else {
if ($nested !~ m/\Q$sects[$sx]\E/) {
print STDERR "${file}:$.: warning: " .
"Excess struct/union/enum/typedef member " .
"Excess $decl_type member " .
"'$sects[$sx]' " .
"description in '$decl_name'\n";
++$warnings;
Expand Down

0 comments on commit 5cb5c31

Please sign in to comment.