WIP FPC-III support
[linux/fpc-iii.git] / scripts / coccinelle / misc / cstptr.cocci
blobc52e3c8ca9b3b4505d5cccaf0c06f135cb3bfc3b
1 // SPDX-License-Identifier: GPL-2.0-only
2 /// PTR_ERR should be applied before its argument is reassigned, typically
3 /// to NULL
4 ///
5 // Confidence: High
6 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
7 // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
8 // URL: http://coccinelle.lip6.fr/
9 // Comments:
10 // Options: --no-includes --include-headers
12 virtual org
13 virtual report
14 virtual context
16 @r exists@
17 expression e,e1;
18 constant c;
19 position p1,p2;
22 *e@p1 = c
23 ... when != e = e1
24     when != &e
25     when != true IS_ERR(e)
26 *PTR_ERR@p2(e)
28 @script:python depends on org@
29 p1 << r.p1;
30 p2 << r.p2;
33 cocci.print_main("PTR_ERR",p2)
34 cocci.print_secs("assignment",p1)
36 @script:python depends on report@
37 p1 << r.p1;
38 p2 << r.p2;
41 msg = "ERROR: PTR_ERR applied after initialization to constant on line %s" % (p1[0].line)
42 coccilib.report.print_report(p2[0],msg)