treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 505
[linux-2.6-microblaze.git] / scripts / coccinelle / api / err_cast.cocci
1 // SPDX-License-Identifier: GPL-2.0-only
2 ///
3 /// Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))
4 ///
5 // Confidence: High
6 // Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.
7 // Copyright: (C) 2009, 2010 Julia Lawall, DIKU.
8 // Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.
9 // URL: http://coccinelle.lip6.fr/
10 // Options:
11 //
12 // Keywords: ERR_PTR, PTR_ERR, ERR_CAST
13 // Version min: 2.6.25
14 //
15
16 virtual context
17 virtual patch
18 virtual org
19 virtual report
20
21
22 @ depends on context && !patch && !org && !report@
23 expression x;
24 @@
25
26 * ERR_PTR(PTR_ERR(x))
27
28 @ depends on !context && patch && !org && !report @
29 expression x;
30 @@
31
32 - ERR_PTR(PTR_ERR(x))
33 + ERR_CAST(x)
34
35 @r depends on !context && !patch && (org || report)@
36 expression x;
37 position p;
38 @@
39
40  ERR_PTR@p(PTR_ERR(x))
41
42 @script:python depends on org@
43 p << r.p;
44 x << r.x;
45 @@
46
47 msg="WARNING ERR_CAST can be used with %s" % (x)
48 msg_safe=msg.replace("[","@(").replace("]",")")
49 coccilib.org.print_todo(p[0], msg_safe)
50
51 @script:python depends on report@
52 p << r.p;
53 x << r.x;
54 @@
55
56 msg="WARNING: ERR_CAST can be used with %s" % (x)
57 coccilib.report.print_report(p[0], msg)