diff options
author | Conchúr Navid <conchur@web.de> | 2015-11-08 10:48:05 +0100 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2015-11-21 00:13:48 +0100 |
commit | 4468e21eed2dd7ee8dc91d94dbd2ccb0d291fb07 (patch) | |
tree | 29755f76a7435df66b52beee7cfc11cbf55efae7 | |
parent | kernel-doc: Fix stripping of #define in enums (diff) | |
download | linux-4468e21eed2dd7ee8dc91d94dbd2ccb0d291fb07.tar.xz linux-4468e21eed2dd7ee8dc91d94dbd2ccb0d291fb07.zip |
kernel-doc: Strip #ifdef/#endif in enums
Some enumerations in the kernel headers use #ifdef to reduce their size
based on the the configuration. These lines have to be stripped to avoid
parsing problems.
For example a simple input like
/**
* enum flags - test flags
* @flag1: first flag
* @flag2: second flag
*/
enum flags {
flag1 = BIT(0),
#ifdef SECOND_FLAG
flag2 = BIT(1),
#endif
};
resulted in parsing warnings like
warning: Enum value '#ifdef SECOND_FLAG;flag2 = BIT(1)' not described in enum 'flags'
warning: Enum value '#endif;' not described in enum 'flags'
Signed-off-by: Conchúr Navid <conchur@web.de>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
-rwxr-xr-x | scripts/kernel-doc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 8313b49b6cd0..f5c2971244a3 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1844,7 +1844,8 @@ sub dump_enum($$) { my $file = shift; $x =~ s@/\*.*?\*/@@gos; # strip comments. - $x =~ s@#\s*define\s+[^;]*;@@gos; # strip #define macros inside enums + # strip #define macros inside enums + $x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos; if ($x =~ /enum\s+(\w+)\s*{(.*)}/) { $declaration_name = $1; |