lkml.org 
[lkml]   [2015]   [Nov]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] checkpatch: Improve macros with flow control test
From
Date
The current test excludes any macro with ## concatenation
from being
reported with hidden flow control.

Some macros are used with return or goto statements
along with ##args or ##__VA_ARGS__. A somewhat common
case is a logging macro like pr_info(fmt, ...) then a
return or goto statement.

Check the concatenated variable for args or __VA_ARGS__
and allow those macros to also be reported when they
contain a return or goto.

Signed-off-by: Joe Perches <joe@perches.com>
---
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 2b3c228..76e4b33 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -4517,7 +4517,7 @@ sub process {
#print "LINE<$lines[$ln-1]> len<" . length($lines[$ln-1]) . "\n";

$has_flow_statement = 1 if ($ctx =~ /\b(goto|return)\b/);
- $has_arg_concat = 1 if ($ctx =~ /\#\#/);
+ $has_arg_concat = 1 if ($ctx =~ /\#\#/ && $ctx !~ /\#\#\s*(?:__VA_ARGS__|args)\b/);

$dstat =~ s/^.\s*\#\s*define\s+$Ident(?:\([^\)]*\))?\s*//;
$dstat =~ s/$;//g;

\
 
 \ /
  Last update: 2015-11-10 20:21    [W:0.026 / U:0.196 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site