excluded_middle.cocci 677 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. ///
  3. /// Condition !A || A && B is equivalent to !A || B.
  4. ///
  5. // Confidence: High
  6. // Copyright: (C) 2020 Denis Efremov ISPRAS
  7. // Options: --no-includes --include-headers
  8. virtual patch
  9. virtual context
  10. virtual org
  11. virtual report
  12. @r depends on !patch@
  13. expression A, B;
  14. position p;
  15. @@
  16. * !A || (A &&@p B)
  17. @depends on patch@
  18. expression A, B;
  19. @@
  20. !A ||
  21. - (A && B)
  22. + B
  23. @script:python depends on report@
  24. p << r.p;
  25. @@
  26. coccilib.report.print_report(p[0], "WARNING !A || A && B is equivalent to !A || B")
  27. @script:python depends on org@
  28. p << r.p;
  29. @@
  30. coccilib.org.print_todo(p[0], "WARNING !A || A && B is equivalent to !A || B")