Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+23 −7
Original line number Original line Diff line number Diff line
@@ -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,10 +1385,16 @@ sub push_parameter($$$$) {
	if (!defined $parameterdescs{$param} && $param !~ /^#/) {
	if (!defined $parameterdescs{$param} && $param !~ /^#/) {
		$parameterdescs{$param} = $undescribed;
		$parameterdescs{$param} = $undescribed;


	        if (($output_selection == OUTPUT_ALL) ||
		    ($output_selection == OUTPUT_INCLUDE &&
		     defined($function_table{$declaration_name})) ||
		    ($output_selection == OUTPUT_EXCLUDE &&
		     !defined($function_table{$declaration_name}))) {
			print STDERR
			print STDERR
			      "${file}:$.: warning: Function parameter or member '$param' not described in '$declaration_name'\n";
			      "${file}:$.: warning: Function parameter or member '$param' not described in '$declaration_name'\n";
			++$warnings;
			++$warnings;
		}
		}
	}


	$param = xml_escape($param);
	$param = xml_escape($param);