0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /// Remove unneeded conversion to bool
0003 ///
0004 //# Relational and logical operators evaluate to bool,
0005 //# explicit conversion is overly verbose and unneeded.
0006 //
0007 // Copyright: (C) 2016 Andrew F. Davis <afd@ti.com>
0008
0009 virtual patch
0010 virtual context
0011 virtual org
0012 virtual report
0013
0014 //----------------------------------------------------------
0015 // For patch mode
0016 //----------------------------------------------------------
0017
0018 @depends on patch@
0019 expression A, B;
0020 symbol true, false;
0021 @@
0022
0023 (
0024 A == B
0025 |
0026 A != B
0027 |
0028 A > B
0029 |
0030 A < B
0031 |
0032 A >= B
0033 |
0034 A <= B
0035 |
0036 A && B
0037 |
0038 A || B
0039 )
0040 - ? true : false
0041
0042 //----------------------------------------------------------
0043 // For context mode
0044 //----------------------------------------------------------
0045
0046 @r depends on !patch@
0047 expression A, B;
0048 symbol true, false;
0049 position p;
0050 @@
0051
0052 (
0053 A == B
0054 |
0055 A != B
0056 |
0057 A > B
0058 |
0059 A < B
0060 |
0061 A >= B
0062 |
0063 A <= B
0064 |
0065 A && B
0066 |
0067 A || B
0068 )
0069 * ? true : false@p
0070
0071 //----------------------------------------------------------
0072 // For org mode
0073 //----------------------------------------------------------
0074
0075 @script:python depends on r&&org@
0076 p << r.p;
0077 @@
0078
0079 msg = "WARNING: conversion to bool not needed here"
0080 coccilib.org.print_todo(p[0], msg)
0081
0082 //----------------------------------------------------------
0083 // For report mode
0084 //----------------------------------------------------------
0085
0086 @script:python depends on r&&report@
0087 p << r.p;
0088 @@
0089
0090 msg = "WARNING: conversion to bool not needed here"
0091 coccilib.report.print_report(p[0], msg)