^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /// Remove unneeded conversion to bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ///
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) //# Relational and logical operators evaluate to bool,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) //# explicit conversion is overly verbose and unneeded.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) //
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) // Copyright: (C) 2016 Andrew F. Davis <afd@ti.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) virtual patch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) virtual context
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) virtual org
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) virtual report
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) //----------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) // For patch mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) //----------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) @depends on patch@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) expression A, B;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) symbol true, false;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) (
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) A == B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) A != B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) A > B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) A < B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) A >= B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) A <= B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) A && B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) A || B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) - ? true : false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) //----------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) // For context mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) //----------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) @r depends on !patch@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) expression A, B;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) symbol true, false;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) position p;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) (
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) A == B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) A != B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) A > B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) A < B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) A >= B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) A <= B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) A && B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) A || B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) * ? true : false@p
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) //----------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) // For org mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) //----------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) @script:python depends on r&&org@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) p << r.p;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) msg = "WARNING: conversion to bool not needed here"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) coccilib.org.print_todo(p[0], msg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) //----------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) // For report mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) //----------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) @script:python depends on r&&report@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) p << r.p;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) msg = "WARNING: conversion to bool not needed here"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) coccilib.report.print_report(p[0], msg)