mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	kernel-doc: Fix stripping of #define in enums
The regex to strip single line #define's in enumerations depends on the
fact that the defines are still stored on separate lines. But the
surrounding code already removed newlines and replaced them with
semicolons.
For example a simple input like
    /**
     * enum flags - test flags
     * @flag1: first flag
     * @flag2: second flag
     * @flag3: third flag
     * @flag4: fourth flag
     */
    enum flags {
    	flag1 = BIT(0),
    	flag2 = BIT(1),
    #define flags_small (flag1 | flag2)
    	flag3 = BIT(2),
    	flag4 = BIT(3),
    #define flags_big (flag2 | flag3)
    };
resulted in parsing warnings like
    warning: Enum value '#define flags_small (flag1 | flag2);flag3 = BIT(2)' not described in enum 'flags'
    warning: Enum value '#define flags_big (flag2 | flag3);' not described in enum 'flags'
Signed-off-by: Conchúr Navid <conchur@web.de>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
			
			
This commit is contained in:
		
							parent
							
								
									8005c49d9a
								
							
						
					
					
						commit
						8a9260aa96
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -1844,7 +1844,7 @@ sub dump_enum($$) {
 | 
			
		|||
    my $file = shift;
 | 
			
		||||
 | 
			
		||||
    $x =~ s@/\*.*?\*/@@gos;	# strip comments.
 | 
			
		||||
    $x =~ s/^#\s*define\s+.*$//; # strip #define macros inside enums
 | 
			
		||||
    $x =~ s@#\s*define\s+[^;]*;@@gos; # strip #define macros inside enums
 | 
			
		||||
 | 
			
		||||
    if ($x =~ /enum\s+(\w+)\s*{(.*)}/) {
 | 
			
		||||
	$declaration_name = $1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue