mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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
					
				
					 1 changed files with 23 additions and 7 deletions
				
			
		| 
						 | 
					@ -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 a new issue