boolconv.cocci (1506B)
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> 8 9virtual patch 10virtual context 11virtual org 12virtual report 13 14//---------------------------------------------------------- 15// For patch mode 16//---------------------------------------------------------- 17 18@depends on patch@ 19expression A, B; 20symbol true, false; 21@@ 22 23( 24 A == B 25| 26 A != B 27| 28 A > B 29| 30 A < B 31| 32 A >= B 33| 34 A <= B 35| 36 A && B 37| 38 A || B 39) 40- ? true : false 41 42//---------------------------------------------------------- 43// For context mode 44//---------------------------------------------------------- 45 46@r depends on !patch@ 47expression A, B; 48symbol true, false; 49position p; 50@@ 51 52( 53 A == B 54| 55 A != B 56| 57 A > B 58| 59 A < B 60| 61 A >= B 62| 63 A <= B 64| 65 A && B 66| 67 A || B 68) 69* ? true : false@p 70 71//---------------------------------------------------------- 72// For org mode 73//---------------------------------------------------------- 74 75@script:python depends on r&&org@ 76p << r.p; 77@@ 78 79msg = "WARNING: conversion to bool not needed here" 80coccilib.org.print_todo(p[0], msg) 81 82//---------------------------------------------------------- 83// For report mode 84//---------------------------------------------------------- 85 86@script:python depends on r&&report@ 87p << r.p; 88@@ 89 90msg = "WARNING: conversion to bool not needed here" 91coccilib.report.print_report(p[0], msg)