History

checkpatch: improve macros with flow control test

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.

Joe Perches committed 10 years ago

Commit 62e15a61 parent 938224b1 file · +1 −1Browse files

Showing the changes to scripts/checkpatch.pl (1 of 1 file). Show all

Unified · Split

scripts/checkpatch.pl+1−1
@@ -4539,7 +4539,7 @@ sub process { · 4538 unmodified lines
45394539 #print "LINE<$lines[$ln-1]> len<" . length($lines[$ln-1]) . "\n";
45404540
45414541 $has_flow_statement = 1 if ($ctx =~ /\b(goto|return)\b/);
4542− $has_arg_concat = 1 if ($ctx =~ /\#\#/);
4542+ $has_arg_concat = 1 if ($ctx =~ /\#\#/ && $ctx !~ /\#\#\s*(?:__VA_ARGS__|args)\b/);
45434543
45444544 $dstat =~ s/^.\s*\#\s*define\s+$Ident(?:\([^\)]*\))?\s*//;
45454545 $dstat =~ s/$;//g;