Skip to content

Commit

Permalink
Add scripts/coccinelle/alloc/drop_kmalloc_cast.cocci
Browse files Browse the repository at this point in the history
The purpose of this semantic patch is to remove
useless casts, as mentioned in the Linux documentation.
See Chapter 14 in Documentation/CodingStyle for more information.

Signed-off-by: Nicolas Palix <npalix@diku.dk>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Michal Marek <mmarek@suse.cz>
  • Loading branch information
Nicolas Palix authored and Michal Marek committed Jun 11, 2010
1 parent e228b1e commit 51169c8
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions scripts/coccinelle/alloc/drop_kmalloc_cast.cocci
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
///
/// 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)

0 comments on commit 51169c8

Please sign in to comment.