Linux 5.0.8
[linux/fpc-iii.git] / scripts / coccinelle / misc / boolconv.cocci
blob33c464d6bc71cd33b99caf01723fff840bbf7d1c
1 /// Remove unneeded conversion to bool
2 ///
3 //# Relational and logical operators evaluate to bool,
4 //# explicit conversion is overly verbose and unneeded.
5 //
6 // Copyright: (C) 2016 Andrew F. Davis <afd@ti.com> GPLv2.
8 virtual patch
9 virtual context
10 virtual org
11 virtual report
13 //----------------------------------------------------------
14 //  For patch mode
15 //----------------------------------------------------------
17 @depends on patch@
18 expression A, B;
19 symbol true, false;
23   A == B
25   A != B
27   A > B
29   A < B
31   A >= B
33   A <= B
35   A && B
37   A || B
39 - ? true : false
41 //----------------------------------------------------------
42 //  For context mode
43 //----------------------------------------------------------
45 @r depends on !patch@
46 expression A, B;
47 symbol true, false;
48 position p;
52   A == B
54   A != B
56   A > B
58   A < B
60   A >= B
62   A <= B
64   A && B
66   A || B
68 * ? true : false@p
70 //----------------------------------------------------------
71 //  For org mode
72 //----------------------------------------------------------
74 @script:python depends on r&&org@
75 p << r.p;
78 msg = "WARNING: conversion to bool not needed here"
79 coccilib.org.print_todo(p[0], msg)
81 //----------------------------------------------------------
82 //  For report mode
83 //----------------------------------------------------------
85 @script:python depends on r&&report@
86 p << r.p;
89 msg = "WARNING: conversion to bool not needed here"
90 coccilib.report.print_report(p[0], msg)