checkpatch: allow parentheses on return for comparisons
authorAndy Whitcroft <[email protected]>
Tue, 6 Jan 2009 22:41:24 +0000 (14:41 -0800)
committerLinus Torvalds <[email protected]>
Tue, 6 Jan 2009 23:59:16 +0000 (15:59 -0800)
It seems to be a common idiom to include braces on conditionals in all
contexts including return.  Allow this exception to the return is not a
function checks.  Reported by Kay Sievers.

Cc: Kay Sievers <[email protected]>
Signed-off-by: Andy Whitcroft <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
scripts/checkpatch.pl

index b953c76be3691c0f9c136f16fc7da77a17497f5d..5c7fd1a4f93055fbbd5df331f8c9662baf8b81c4 100755 (executable)
@@ -127,6 +127,7 @@ our $Lval   = qr{$Ident(?:$Member)*};
 
 our $Constant  = qr{(?:[0-9]+|0x[0-9a-fA-F]+)[UL]*};
 our $Assignment        = qr{(?:\*\=|/=|%=|\+=|-=|<<=|>>=|&=|\^=|\|=|=)};
+our $Compare    = qr{<=|>=|==|!=|<|>};
 our $Operators = qr{
                        <=|>=|==|!=|
                        =>|->|<<|>>|<|>|!|~|
@@ -1983,9 +1984,9 @@ sub process {
                        my $spacing = $1;
                        my $value = $2;
 
-                       # Flatten any parentheses and braces
+                       # Flatten any parentheses
                        $value =~ s/\)\(/\) \(/g;
-                       while ($value =~ s/\([^\(\)]*\)/1/) {
+                       while ($value !~ /(?:$Ident|-?$Constant)\s*$Compare\s*(?:$Ident|-?$Constant)/ && $value =~ s/\([^\(\)]*\)/1/) {
                        }
 
                        if ($value =~ /^(?:$Ident|-?$Constant)$/) {