llvm-project/clang-tools-extra
Alexander Kornienko f5e72b0448 [clang-tidy] Add readability-simplify-boolean-expr check to clang-tidy
This check looks for comparisons between boolean expressions and boolean
constants and simplifies them to just use the appropriate boolean expression
directly.

if (b == true) becomes if (b)
if (b == false) becomes if (!b)
if (b && true) becomes if (b)
if (b && false) becomes if (false)
if (b || true) becomes if (true)
if (b || false) becomes if (b)
e ? true : false becomes e
e ? false : true becomes !e
if (true) t(); else f(); becomes t();
if (false) t(); else f(); becomes f();
if (e) return true; else return false; becomes return (e);
if (e) return false; else return true; becomes return !(e);
if (e) b = true; else b = false; becomes b = e;
if (e) b = false; else b = true; becomes b = !(e);

http://reviews.llvm.org/D7648

Patch by Richard Thomson!

llvm-svn: 234626
2015-04-10 19:26:43 +00:00
..
clang-apply-replacements Make helpers static. clang-tools edition. 2015-03-23 12:49:15 +00:00
clang-modernize Remove redundant virtual from member functions marked 'override'. 2015-04-08 17:00:56 +00:00
clang-query Add 'let' to the help message. 2015-02-27 17:53:23 +00:00
clang-rename Revert "Adapt clang-tools-extra to clang module format changes." 2015-02-25 02:46:37 +00:00
clang-tidy [clang-tidy] Add readability-simplify-boolean-expr check to clang-tidy 2015-04-10 19:26:43 +00:00
docs Fixed script name in the clang-tidy documentation. 2015-02-23 01:12:41 +00:00
modularize Refactor: Simplify boolean expression in modularize 2015-03-23 19:40:59 +00:00
pp-trace Make helpers static. clang-tools edition. 2015-03-23 12:49:15 +00:00
test [clang-tidy] Add readability-simplify-boolean-expr check to clang-tidy 2015-04-10 19:26:43 +00:00
tool-template Revert "Adapt clang-tools-extra to clang module format changes." 2015-02-25 02:46:37 +00:00
unittests Force braces on the else branch if they are being added to the if branch. 2015-03-31 13:53:03 +00:00
.arcconfig Update arc config to new domain. 2014-04-07 10:23:19 +00:00
.gitignore .gitignore: ignore docs/_build 2013-03-03 15:15:12 +00:00
CMakeLists.txt Move remove-cstr-calls from a standalone executable to a clang-tidy check readability-redundant-string-cstr 2015-03-16 00:32:25 +00:00
CODE_OWNERS.TXT Switching code owner email address. 2013-10-08 16:28:05 +00:00
LICENSE.TXT Update the copyright credits -- Happy new year 2014! 2014-01-01 08:27:31 +00:00
Makefile Fix ./configure build after r232338. 2015-03-16 00:43:57 +00:00
README.txt Reverted Test commit; added new line to the end of README.txt 2013-10-12 20:43:36 +00:00

README.txt

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

This repository is only intended to be checked out inside of a full LLVM+Clang
tree, and in the 'tools/extra' subdirectory of the Clang checkout.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang mailing lists:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/