Re: [PATCH] checkpatch.pl: fix CAST detection to not screw withparens handling

From: Florian Mickler
Date: Wed Nov 03 2010 - 11:21:00 EST


On Wed, 3 Nov 2010 13:04:33 +0100
Florian Mickler <florian@xxxxxxxxxxx> wrote:

> Casts have to be handled after the last type that is followed by an
> opening parenthesis is handled.

That is the wrong fix. I realized now that with that patch we would
not claim anything as a CAST anymore. Better is probably to only claim
a CAST if av_pending is not set. Andy, would that work? It seems to be
alright... Do you have some tests for checkpatch?

Testing it with the reported line and some other random samples it
seems to be alright.

Regards,
Flo

>8------------------------------------------------------------------------
commit 11ed611c647420ea27124faf269d724b4fd3ade4
Author: Florian Mickler <florian@xxxxxxxxxxx>
Date: Wed Nov 3 15:54:26 2010 +0100

checkpatch.pl: fix CAST detection

We should only claim that something is a cast if we did not encouter a
token before, that did set av_pending.

This fixes the operator * in the line below to be detected as
binary (vs unary).

kmalloc(sizeof(struct alphatrack_ocmd) * true_size, GFP_KERNEL);

Reported-by: Audun Hoem <audun.hoem@xxxxxxxxx>
Signed-off-by: Florian Mickler <florian@xxxxxxxxxxx>

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 90b54d4..06f5c44 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -859,7 +859,7 @@ sub annotate_values {
$av_preprocessor = 0;
}

- } elsif ($cur =~ /^(\(\s*$Type\s*)\)/) {
+ } elsif ($cur =~ /^(\(\s*$Type\s*)\)/ && $av_pending eq '_') {
print "CAST($1)\n" if ($dbg_values > 1);
push(@av_paren_type, $type);
$type = 'C';
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/