Linux 4.16.11
[linux/fpc-iii.git] / scripts / coccinelle / api / ptr_ret.cocci
blobdd58dab5d4112aee13dbee43d73bc80e4613af4d
1 ///
2 /// Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
3 ///
4 // Confidence: High
5 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.  GPLv2.
6 // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.  GPLv2.
7 // URL: http://coccinelle.lip6.fr/
8 // Options: --no-includes --include-headers
9 //
10 // Keywords: ERR_PTR, PTR_ERR, PTR_ERR_OR_ZERO
11 // Version min: 2.6.39
14 virtual context
15 virtual patch
16 virtual org
17 virtual report
19 @depends on patch@
20 expression ptr;
23 - if (IS_ERR(ptr)) return PTR_ERR(ptr); else return 0;
24 + return PTR_ERR_OR_ZERO(ptr);
26 @depends on patch@
27 expression ptr;
30 - if (IS_ERR(ptr)) return PTR_ERR(ptr); return 0;
31 + return PTR_ERR_OR_ZERO(ptr);
33 @depends on patch@
34 expression ptr;
37 - (IS_ERR(ptr) ? PTR_ERR(ptr) : 0)
38 + PTR_ERR_OR_ZERO(ptr)
40 @r1 depends on !patch@
41 expression ptr;
42 position p1;
45 * if@p1 (IS_ERR(ptr)) return PTR_ERR(ptr); else return 0;
47 @r2 depends on !patch@
48 expression ptr;
49 position p2;
52 * if@p2 (IS_ERR(ptr)) return PTR_ERR(ptr); return 0;
54 @r3 depends on !patch@
55 expression ptr;
56 position p3;
59 * IS_ERR@p3(ptr) ? PTR_ERR(ptr) : 0
61 @script:python depends on org@
62 p << r1.p1;
65 coccilib.org.print_todo(p[0], "WARNING: PTR_ERR_OR_ZERO can be used")
68 @script:python depends on org@
69 p << r2.p2;
72 coccilib.org.print_todo(p[0], "WARNING: PTR_ERR_OR_ZERO can be used")
74 @script:python depends on org@
75 p << r3.p3;
78 coccilib.org.print_todo(p[0], "WARNING: PTR_ERR_OR_ZERO can be used")
80 @script:python depends on report@
81 p << r1.p1;
84 coccilib.report.print_report(p[0], "WARNING: PTR_ERR_OR_ZERO can be used")
86 @script:python depends on report@
87 p << r2.p2;
90 coccilib.report.print_report(p[0], "WARNING: PTR_ERR_OR_ZERO can be used")
92 @script:python depends on report@
93 p << r3.p3;
96 coccilib.report.print_report(p[0], "WARNING: PTR_ERR_OR_ZERO can be used")