Re: [PATCH] checkpatch: Add test for printf formats with 0x that emit decimal

From: Joe Perches
Date: Sun Aug 03 2014 - 23:47:12 EST


On Sun, 2014-08-03 at 20:03 -0700, Hans Wennborg wrote:
> On 08/03/2014 07:50 PM, Joe Perches wrote:
> > 0x%<foo> should be used to emit hexadecimal values.
> >
> > Uses of 0x%[udi] emit decimal values but these should
> > probably instead use 0x%x variants.
> >
> > Warn on these uses.
>
> Good idea!
[]
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> > @@ -4985,6 +4985,10 @@ sub process {
> > while ($line =~ /(?:^|")([X\t]*)(?:"|$)/g) {
> > $string = substr($rawline, $-[1], $+[1] - $-[1]);
> > $string =~ s/%%/__/g;
> > + if ($string =~ /(0x(?<!%)%[0-9.\*]*[Ll]*[udi])(?![xX])/) {
>
> Maybe the regex should have a \b to check for a word boundary before the
> 0 to avoid matching things like "800x%d"? (I don't know if that occurs
> in the kernel, but I've seen it elsewhere.)

Maybe.

Code it to do the appropriate thing and test it too.
See if there any other cases that should be emitted.

cheers, Joe


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