WIP FPC-III support
[linux/fpc-iii.git] / scripts / coccinelle / misc / boolconv.cocci
blob392994e93a19ffcdb2584b4f5b29d2d93478dd7b
1 // SPDX-License-Identifier: GPL-2.0-only
2 /// Remove unneeded conversion to bool
3 ///
4 //# Relational and logical operators evaluate to bool,
5 //# explicit conversion is overly verbose and unneeded.
6 //
7 // Copyright: (C) 2016 Andrew F. Davis <afd@ti.com>
9 virtual patch
10 virtual context
11 virtual org
12 virtual report
14 //----------------------------------------------------------
15 //  For patch mode
16 //----------------------------------------------------------
18 @depends on patch@
19 expression A, B;
20 symbol true, false;
24   A == B
26   A != B
28   A > B
30   A < B
32   A >= B
34   A <= B
36   A && B
38   A || B
40 - ? true : false
42 //----------------------------------------------------------
43 //  For context mode
44 //----------------------------------------------------------
46 @r depends on !patch@
47 expression A, B;
48 symbol true, false;
49 position p;
53   A == B
55   A != B
57   A > B
59   A < B
61   A >= B
63   A <= B
65   A && B
67   A || B
69 * ? true : false@p
71 //----------------------------------------------------------
72 //  For org mode
73 //----------------------------------------------------------
75 @script:python depends on r&&org@
76 p << r.p;
79 msg = "WARNING: conversion to bool not needed here"
80 coccilib.org.print_todo(p[0], msg)
82 //----------------------------------------------------------
83 //  For report mode
84 //----------------------------------------------------------
86 @script:python depends on r&&report@
87 p << r.p;
90 msg = "WARNING: conversion to bool not needed here"
91 coccilib.report.print_report(p[0], msg)