Re: add memset checks to checkpatch.pl

From: Dave Jones
Date: Wed Aug 18 2010 - 17:48:32 EST


On Wed, Aug 18, 2010 at 02:32:13PM -0700, Joe Perches wrote:
> On Wed, 2010-08-18 at 16:40 -0400, Dave Jones wrote:
> > Occasionally someone goofs the argument order to memset.
> > This patch makes checkpatch catch those.
> >
> > I made memset with size of 0 an error, because it's never correct,
> > whereas memset with a size of 1 isn't technically an incorrect
> > thing to do so I left it as a warning. It may still be better to replace
> > it with a single variable assignment in the false positive cases.
>
> Maybe something like allows more flexible checking?
>
> if ($line =~ /\bmemset\s*\(\s*($Lval)\s*,\s*($Lval)\s*,\s*($Lval)\s*\)/) {
> my $memset_addr = $1;
> my $memset_val = $2;
> my $memset_size = $3;
> if ($memset_size =~ /(0x|)0$/i) {
> ERROR("memset uses second argument as constant byte value, not third.\n" . $herecurr);
> elsif ($memset_size =~ /(0x|)1/i) {
> WARN("single byte memset is suspicious. Swapped 2nd/3rd argument?\n" . $herecurr);
> }
> }

I'm all for improving my shoddy perl where possible, but this doesn't seem to actually
catch any of the test cases I wrote. (it's also missing a } )

Dave

--
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/