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 <[email protected]>
---
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;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to