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

On Tue, Sep 24, 2013 at 04:13:29PM +0100, Andy Whitcroft wrote:
> 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.

Works for me!

							Thanx, Paul

> -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:45 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
2013-09-24 15:45       ` Paul E. McKenney [this message]
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=20130924154529.GD9093@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=apw@canonical.com \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    /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