Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: [PATCH] checkpatch.pl: Fix checkpatch false positive due to ternary operator break

4 views
Skip to first unread message

Joe Perches

unread,
May 10, 2014, 12:50:01 AM5/10/14
to
On Fri, 2014-05-09 at 21:41 -0700, Jeff Kirsher wrote:
> From: David Ertman <davidx....@intel.com>

Hey David.

> Using the intuitive breaking of a ternary operator used in the
> initialization of a variable in its declaration:
>
> type var = FOO ?
> BAR :
> FEE;
[]
> type var = FOO
> ? BAR
> : FEE;
>
> Change checkpatch so that it is checking fot the correct breaking of ternary
> operators used in networking variable declaration/initialization.

There is no "correct" breaking for ternary operators.
Both should be acceptable.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Jeff Kirsher

unread,
May 10, 2014, 12:50:01 AM5/10/14
to
From: David Ertman <davidx....@intel.com>

Using the intuitive breaking of a ternary operator used in the
initialization of a variable in its declaration:

type var = FOO ?
BAR :
FEE;

is causing a checkpatch warning:
"WARNING:SPACING: networking uses a blank line after declarations"

Checkpatch is checking for the ternary operators at the beginning of the
lines after the initial break like the following:

type var = FOO
? BAR
: FEE;

Change checkpatch so that it is checking fot the correct breaking of ternary
operators used in networking variable declaration/initialization.

Signed-off-by: Dave Ertman <davidx....@intel.com>
Tested-by: Aaron Brown <aaron....@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey....@intel.com>
---
scripts/checkpatch.pl | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 34eb216..baabf1c 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2269,12 +2269,13 @@ sub process {
if ($realfile =~ m@^(drivers/net/|net/)@ &&
$prevline =~ /^\+\s+$Declare\s+$Ident/ &&
!($prevline =~ /(?:$Compare|$Assignment|$Operators)\s*$/ ||
- $prevline =~ /(?:\{\s*|\\)$/) && #extended lines
+ $prevline =~ /(?:\{\s*|\\)$/ || #extended lines
+ $prevline =~ /(?:[\?\:])$/) && #ternary ops
$sline =~ /^\+\s+/ && #Not at char 1
!($sline =~ /^\+\s+$Declare/ ||
$sline =~ /^\+\s+$Ident\s+$Ident/ || #eg: typedef foo
$sline =~ /^\+\s+(?:union|struct|enum|typedef)\b/ ||
- $sline =~ /^\+\s+(?:$|[\{\}\.\#\"\?\:\(])/ ||
+ $sline =~ /^\+\s+(?:$|[\{\}\.\#\"\(])/ ||
$sline =~ /^\+\s+\(?\s*(?:$Compare|$Assignment|$Operators)/)) {
WARN("SPACING",
"networking uses a blank line after declarations\n" . $hereprev);
--
1.9.0
0 new messages