Messages in this thread | | | Date | Mon, 13 Aug 2007 11:24:38 +0100 | From | Andy Whitcroft <> | Subject | Re: Make checkpatch warn about pointless casting of kalloc returns. |
| |
jschopp wrote: >> +# check for pointless casting of kmalloc return >> + if ($rawline =~ /\*\)[ ]k[czm]alloc/) { > > It looks to me like this will catch > > foo = (char *) kmalloc(512); > > but not > > for = (char* )kmalloc(512); > > I haven't tried it but how about something like: > > if($rawline =~/\(.*\)\s*k[czm]alloc/){ > > which if I got it right should match the typecast with any combination > of spacing. > >> + WARN("No need to cast return value.\n"); > > Could the warning be more descriptive? This describes what, but it > should also describe why; after all if somebody made this error they may > not know they why.
Yes there are a few problems with the match, plus it needs to be on the processed line to avoid false matches in strings (however unlikely). I ended up with the following:
if ($line =~ /\*\s*\)\s*k[czm]alloc\b/) { WARN("unnecessary cast may hide bugs, see http://c-faq.com/malloc/mallocnocast.html\n" . $herecurr); }
Which just fits on the line :).
Thanks for the patch. Will be in 0.10 coming to an -mm near you soon.
-apw - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |