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: Mauro Carvalho Chehab <mchehab@s-opensource.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
		
							parent
							
								
									84ce5b9877
								
							
						
					
					
						commit
						2defb27292
					
				| @ -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($$$$) { | |||||||
| 	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); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user