Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / scripts / coccinelle / api / err_cast.cocci
blob2ce115000af6a7c8fd4bc1ce73997a0fa0ae6679
1 ///
2 /// Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))
3 ///
4 // Confidence: High
5 // Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.  GPLv2.
6 // Copyright: (C) 2009, 2010 Julia Lawall, DIKU.  GPLv2.
7 // Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.  GPLv2.
8 // URL: http://coccinelle.lip6.fr/
9 // Options:
11 // Keywords: ERR_PTR, PTR_ERR, ERR_CAST
12 // Version min: 2.6.25
15 virtual context
16 virtual patch
17 virtual org
18 virtual report
21 @ depends on context && !patch && !org && !report@
22 expression x;
25 * ERR_PTR(PTR_ERR(x))
27 @ depends on !context && patch && !org && !report @
28 expression x;
31 - ERR_PTR(PTR_ERR(x))
32 + ERR_CAST(x)
34 @r depends on !context && !patch && (org || report)@
35 expression x;
36 position p;
39  ERR_PTR@p(PTR_ERR(x))
41 @script:python depends on org@
42 p << r.p;
43 x << r.x;
46 msg="WARNING ERR_CAST can be used with %s" % (x)
47 msg_safe=msg.replace("[","@(").replace("]",")")
48 coccilib.org.print_todo(p[0], msg_safe)
50 @script:python depends on report@
51 p << r.p;
52 x << r.x;
55 msg="WARNING: ERR_CAST can be used with %s" % (x)
56 coccilib.report.print_report(p[0], msg)