public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andy Whitcroft <apw@canonical.com>
To: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Joe Perches <joe@perches.com>, linux-kernel@vger.kernel.org
Subject: Re: False positive in checkpatch
Date: Tue, 24 Sep 2013 16:13:29 +0100	[thread overview]
Message-ID: <20130924151329.GL13914@dm> (raw)
In-Reply-To: <20130924140305.GZ9093@linux.vnet.ibm.com>

On Tue, Sep 24, 2013 at 07:03:05AM -0700, Paul E. McKenney wrote:
> On Mon, Sep 23, 2013 at 09:21:07PM -0700, Joe Perches wrote:
> > On Mon, 2013-09-23 at 15:59 -0700, Paul E. McKenney wrote:
> > > Hello!
> > > 
> > > The checkpatch.pl script complains as follows:
> > > 
> > > ERROR: need consistent spacing around '*' (ctx:WxB)
> > > #57: FILE: include/linux/rcupdate.h:564:
> > > +		ACCESS_ONCE(p) = (typeof(*(v)) __force space *)(v); \
> > > 
> > > Of course, the two uses of '*' are doing different things, so it should
> > > be OK for the spacing to be different.
> > > 
> > > Could you please fix this?
> > > 
> > > 							Thanx, Paul
> > > 
> > 
> > Hi Paul.
> > 
> > Try this patch: https://lkml.org/lkml/2013/9/2/428
> > 
> > Andy?  Can you verify this suggested patch please?
> 
> That does it, thank you!  And it does look like this patch was directed
> precisely at this patch.  ;-)
> 
> 							Thanx, Paul
> 

How about this one, it is a bit of a hack but does at least correctly
correct the formal characterisation of the operator to unary.

Working on getting this tested a bit better before sending it out
formally.

-apw


>From 5b4e22c123b3492838d12181129a8c168598dbf4 Mon Sep 17 00:00:00 2001
From: Andy Whitcroft <apw@canonical.com>
Date: Tue, 24 Sep 2013 16:10:46 +0100
Subject: [PATCH] checkpatch: handle miss identified binary operators which
 bump a close parenthesis

When we hit a close parenthesis, any binary operators we have without right
hand sides cannot actually be binary if the code is correctly formatted.
Go back and fix up any we get wrong.

Signed-off-by: Andy Whitcroft <apw@canonical.com>
---
 scripts/checkpatch.pl | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 47016c3..3d56e6e 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1277,6 +1277,16 @@ sub annotate_values {
 			} else {
 				print "PAREN('$1')\n" if ($dbg_values > 1);
 			}
+			# Check for any pending binary operators, if they but up against this
+			# bracket then they are really unary, correct them.
+			my $pos = length($res) - 1;
+			while ($pos >= 0 && substr($res, $pos, 1) eq 'N') {
+				if (substr($var, $pos, 1) eq 'B') {
+					substr($var, $pos, 1) = 'U';
+					print "BINARY WACKED TO UNARY at $pos\n" if ($dbg_values > 1);
+				}
+				$pos--;
+			}
 
 		} elsif ($cur =~ /^($Ident)\s*\(/o) {
 			print "FUNC($1)\n" if ($dbg_values > 1);
@@ -1331,12 +1341,12 @@ sub annotate_values {
 		} elsif ($cur =~ /^(-(?![->])|\+(?!\+)|\*|\&\&|\&)/o) {
 			my $variant;
 
-			print "OPV($1)\n" if ($dbg_values > 1);
 			if ($type eq 'V') {
 				$variant = 'B';
 			} else {
 				$variant = 'U';
 			}
+			print "OPV($1) -> $variant\n" if ($dbg_values > 1);
 
 			substr($var, length($res), 1, $variant);
 			$type = 'N';
-- 
1.8.1.2


  reply	other threads:[~2013-09-24 15:13 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-23 22:59 False positive in checkpatch Paul E. McKenney
2013-09-24  4:21 ` Joe Perches
2013-09-24 14:03   ` Paul E. McKenney
2013-09-24 15:13     ` Andy Whitcroft [this message]
2013-09-24 15:45       ` Paul E. McKenney
2013-09-24 14:24   ` Andy Whitcroft

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130924151329.GL13914@dm \
    --to=apw@canonical.com \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox