From: Akihiko Odaki <[email protected]>

SUSPECT_CODE_INDENT checks the first line after a conditional statement.
When the block is empty, the first line after the conditional is the
closing brace at the same indentation level, so checkpatch reports a
bogus indentation error.

Ignore same-indented braces and else statements, matching with:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f6950a735f29e782bc219ece22bb91d6e1ab7bbc

Signed-off-by: Akihiko Odaki <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
 scripts/checkpatch.pl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index d440553a7ed..2189db19f54 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2283,7 +2283,8 @@ sub process {
                        #print "line<$line> prevline<$prevline> indent<$indent> 
sindent<$sindent> check<$check> continuation<$continuation> s<$s> 
cond_lines<$cond_lines> stat_real<$stat_real> stat<$stat>\n";
 
                        if ($check && (($sindent % 4) != 0 ||
-                           ($sindent <= $indent && $s ne ''))) {
+                           ($sindent <= $indent &&
+                            $s !~ /^\s*(?:\}|\{|else\b)/))) {
                                ERROR("suspect code indent for conditional 
statements ($indent, $sindent)\n" . $herecurr . "$stat_real\n");
                        }
                }
-- 
2.53.0


Reply via email to