mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
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. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
938224b5e5
commit
62e15a6daa
@ -4539,7 +4539,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;
|
||||
|
Loading…
Reference in New Issue
Block a user