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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/