From: Su Hang <suhan...@mails.ucas.ac.cn> Adding check for `while` and `for` statements, which condition has more than one line.
The former checkpatch.pl can check `if` statement, which condition has more than one line, whether block misses brace round, like this: ''' if (cond1 || cond2) statement; ''' But it doesn't do the same check for `for` and `while` statements. Using `(?:...)` instead of `(...)` in regex pattern catch. Because `(?:...)` is faster and avoids unwanted side-effect. Suggested-by: Stefan Hajnoczi <stefa...@redhat.com> Suggested-by: Eric Blake <ebl...@redhat.com> Suggested-by: Thomas Huth <th...@redhat.com> Signed-off-by: Su Hang <suhan...@mails.ucas.ac.cn> Message-Id: <1520319890-19761-1-git-send-email-suhan...@mails.ucas.ac.cn> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- scripts/checkpatch.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index a88af61..d1fe79b 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2352,8 +2352,9 @@ sub process { } } -# check for missing bracing round if etc - if ($line =~ /(^.*)\bif\b/ && $line !~ /\#\s*if/) { +# check for missing bracing around if etc + if ($line =~ /(^.*)\b(?:if|while|for)\b/ && + $line !~ /\#\s*if/) { my ($level, $endln, @chunks) = ctx_statement_full($linenr, $realcnt, 1); if ($dbg_adv_apw) { -- 1.8.3.1