public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* kernel-doc: Fix stripping of #define in enums
@ 2015-11-08  9:45 conchur
  2015-11-08  9:48 ` [PATCH 2/3] kernel-doc: Strip #ifdef/#endif " conchur
  2015-11-20 23:31 ` kernel-doc: Fix stripping of #define in enums Jonathan Corbet
  0 siblings, 2 replies; 6+ messages in thread
From: conchur @ 2015-11-08  9:45 UTC (permalink / raw)
  To: Jonathan Corbet; +Cc: linux-kernel

From: Conchúr Navid <conchur@web.de>

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>
---
 scripts/kernel-doc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 125b906..8313b49 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -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;
-- 
2.6.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-11-21  7:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-08  9:45 kernel-doc: Fix stripping of #define in enums conchur
2015-11-08  9:48 ` [PATCH 2/3] kernel-doc: Strip #ifdef/#endif " conchur
2015-11-08  9:49   ` [PATCH 3/3] " conchur
2015-11-08  9:52   ` [PATCHv2 3/3] kernel-doc: Fix parsing of DECLARE_BITMAP in struct conchur
2015-11-20 23:31 ` kernel-doc: Fix stripping of #define in enums Jonathan Corbet
2015-11-21  7:45   ` Aw: " conchur

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox