blob: bd5d08b882ee9ccda1d79da6f596e34f0ec12ef1 [file] [log] [blame]
///
/// Casting (void *) value returned by kmalloc is useless
/// as mentioned in Documentation/CodingStyle, Chap 14.
///
// Confidence: High
// Copyright: 2009,2010 Nicolas Palix, DIKU. GPLv2.
// URL: http://coccinelle.lip6.fr/
// Options: --no-includes --include-headers
//
// Keywords: kmalloc, kzalloc, kcalloc
// Version min: < 2.6.12 kmalloc
// Version min: < 2.6.12 kcalloc
// Version min: 2.6.14 kzalloc
//
virtual context
virtual patch
virtual org
virtual report
//----------------------------------------------------------
// For context mode
//----------------------------------------------------------
@depends on context@
type T;
@@
* (T *)
\(kmalloc\|kzalloc\|kcalloc\)(...)
//----------------------------------------------------------
// For patch mode
//----------------------------------------------------------
@depends on patch@
type T;
@@
- (T *)
\(kmalloc\|kzalloc\|kcalloc\)(...)
//----------------------------------------------------------
// For org and report mode
//----------------------------------------------------------
@r depends on org || report@
type T;
position p;
@@
(T@p *)\(kmalloc\|kzalloc\|kcalloc\)(...)
@script:python depends on org@
p << r.p;
t << r.T;
@@
coccilib.org.print_safe_todo(p[0], t)
@script:python depends on report@
p << r.p;
t << r.T;
@@
msg="WARNING: casting value returned by k[cmz]alloc to (%s *) is useless." % (t)
coccilib.report.print_report(p[0], msg)