History

Add scripts/coccinelle/err_cast.cocci

Add a Coccinelle file to use the ERR_CAST function Before the release 2.6.25, one had to use ERR_PTR(PTR_ERR(...)) to convert the pointer type of an error. Since then, the function ERR_CAST has been available for that purpose.

Nicolas Palix committed 16 years ago

Commit f853f831 parent 09c35391 file · +56 −0Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/coccinelle/err_cast.cocci+56−0
@@ -0,0 +1,56 @@
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:
10+//
11+// Keywords: ERR_PTR, PTR_ERR, ERR_CAST
12+// Version min: 2.6.25
13+//
14+
15+virtual context
16+virtual patch
17+virtual org
18+virtual report
19+
20+
21+@ depends on context && !patch && !org && !report@
22+expression x;
23+@@
24+
25+* ERR_PTR(PTR_ERR(x))
26+
27+@ depends on !context && patch && !org && !report @
28+expression x;
29+@@
30+
31+- ERR_PTR(PTR_ERR(x))
32++ ERR_CAST(x)
33+
34+@r depends on !context && !patch && (org || report)@
35+expression x;
36+position p;
37+@@
38+
39+ ERR_PTR@p(PTR_ERR(x))
40+
41+@script:python depends on org@
42+p << r.p;
43+x << r.x;
44+@@
45+
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)
49+
50+@script:python depends on report@
51+p << r.p;
52+x << r.x;
53+@@
54+
55+msg="WARNING: ERR_CAST can be used with %s" % (x)
56+coccilib.report.print_report(p[0], msg)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t