boolconv.cocci 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 <[email protected]>
  8. virtual patch
  9. virtual context
  10. virtual org
  11. virtual report
  12. //----------------------------------------------------------
  13. // For patch mode
  14. //----------------------------------------------------------
  15. @depends on patch@
  16. expression A, B;
  17. symbol true, false;
  18. @@
  19. (
  20. A == B
  21. |
  22. A != B
  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. - ? true : false
  37. //----------------------------------------------------------
  38. // For context mode
  39. //----------------------------------------------------------
  40. @r depends on !patch@
  41. expression A, B;
  42. symbol true, false;
  43. position p;
  44. @@
  45. (
  46. A == B
  47. |
  48. A != B
  49. |
  50. A > B
  51. |
  52. A < B
  53. |
  54. A >= B
  55. |
  56. A <= B
  57. |
  58. A && B
  59. |
  60. A || B
  61. )
  62. * ? true : false@p
  63. //----------------------------------------------------------
  64. // For org mode
  65. //----------------------------------------------------------
  66. @script:python depends on r&&org@
  67. p << r.p;
  68. @@
  69. msg = "WARNING: conversion to bool not needed here"
  70. coccilib.org.print_todo(p[0], msg)
  71. //----------------------------------------------------------
  72. // For report mode
  73. //----------------------------------------------------------
  74. @script:python depends on r&&report@
  75. p << r.p;
  76. @@
  77. msg = "WARNING: conversion to bool not needed here"
  78. coccilib.report.print_report(p[0], msg)