All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Whitcroft <apw@shadowen.org>
To: Randy Dunlap <rdunlap@xenotime.net>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Doug Thompson <norsk5@yahoo.com>,
	linux-kernel@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [PATCH 9/36] drivers edac new intel 5000X mc driver
Date: Fri, 08 Jun 2007 09:39:02 +0100	[thread overview]
Message-ID: <466915A6.2030607@shadowen.org> (raw)
In-Reply-To: <20070607151012.e4145965.rdunlap@xenotime.net>

Randy Dunlap wrote:
> On Thu, 7 Jun 2007 14:38:40 -0700 Andrew Morton wrote:
> 
>> On Sun, 3 Jun 2007 07:40:26 -0700 (PDT)
>> Doug Thompson <norsk5@yahoo.com> wrote:
>>
>>> +static void i5000_process_nonfatal_error_info(struct mem_ctl_info
>>> *mci,
>>> +					      struct i5000_error_info * info,
>> ditto (please check whole patch)
>>
>> (I thought checkpatch.pl would catch this, but it doesn't?)
> 
> Here's a small patch against v.3 that will catch this.
> 
> ---
> From: Randy Dunlap <randy.dunlap@oracle.com>
> 
> Catch "struct * blah" by allowing spaces preceding the '*'.
> Bah.  Maybe the error string needs a small change also.
> 
> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
> ---
>  scripts/checkpatch.pl |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> --- scripts.orig/checkpatch-v3.pl
> +++ scripts/checkpatch-v3.pl
> @@ -393,7 +393,7 @@ sub process {
>  		}
>  
>  # * goes on variable not on type
> -		if ($line=~/[A-Za-z\d_]+\* [A-Za-z\d_]+/) {
> +		if ($line=~/[\sA-Za-z\d_]+\* [A-Za-z\d_]+/) {
>  			print "\"foo* bar\" should be \"foo *bar\"\n";
>  			print "$herecurr";
>  			$clean = 0;
> -

0.04 already has checks for reporting the foo ** bar style cast format
where there are two or more '*'s:

"foo ** bar" should be "foo **bar"
#12: FILE: Z4.c:9:
+       struct i5000_error_info ** foo;

The declaration forms (just for a single *) are unfortunately ambiguous,
it is hard to tell them from the foo * foo multiply form, for example if
we relax this test to include one '*':

"foo * bar" should be "foo *bar"
#19: FILE: Z4.c:16:
+       int a = this * info;

[/me pokes at it for a bit.]

Ok so the key here is that we should only be applying these foo* bar
checks to types.  What we can do is cook up a match for the standard
type forms, char, short ..., struct foo etc and use that to disambiguate
the single '*' form:

"foo * bar" should be "foo *bar"
#10: FILE: Z4.c:7:
+       struct i5000_error_info * foo;

We will miss those which are not obviously types, basically typedefs but
as we already are hot against those we should be pretty close to 100%
coverage.

-apw

      reply	other threads:[~2007-06-08  8:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-03 14:40 [PATCH 9/36] drivers edac new intel 5000X mc driver Doug Thompson
2007-06-07 21:38 ` Andrew Morton
2007-06-07 22:10   ` Randy Dunlap
2007-06-08  8:39     ` Andy Whitcroft [this message]

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=466915A6.2030607@shadowen.org \
    --to=apw@shadowen.org \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=norsk5@yahoo.com \
    --cc=rdunlap@xenotime.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.