[clang-tools-extra] r319325 - [clang-tidy] make readability-simplify-bool-expr completely ignore macros

Alexander Kornienko via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 29 09:16:09 PST 2017


Author: alexfh
Date: Wed Nov 29 09:16:09 2017
New Revision: 319325

URL: http://llvm.org/viewvc/llvm-project?rev=319325&view=rev
Log:
[clang-tidy] make readability-simplify-bool-expr completely ignore macros

Modified:
    clang-tools-extra/trunk/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
    clang-tools-extra/trunk/test/clang-tidy/readability-simplify-bool-expr.cpp

Modified: clang-tools-extra/trunk/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/readability/SimplifyBooleanExprCheck.cpp?rev=319325&r1=319324&r2=319325&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/readability/SimplifyBooleanExprCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/readability/SimplifyBooleanExprCheck.cpp Wed Nov 29 09:16:09 2017
@@ -62,10 +62,7 @@ const char SimplifyConditionalReturnDiag
 const CXXBoolLiteralExpr *getBoolLiteral(const MatchFinder::MatchResult &Result,
                                          StringRef Id) {
   const auto *Literal = Result.Nodes.getNodeAs<CXXBoolLiteralExpr>(Id);
-  return (Literal &&
-          Result.SourceManager->isMacroBodyExpansion(Literal->getLocStart()))
-             ? nullptr
-             : Literal;
+  return (Literal && Literal->getLocStart().isMacroID()) ? nullptr : Literal;
 }
 
 internal::Matcher<Stmt> returnsBool(bool Value, StringRef Id = "ignored") {

Modified: clang-tools-extra/trunk/test/clang-tidy/readability-simplify-bool-expr.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/readability-simplify-bool-expr.cpp?rev=319325&r1=319324&r2=319325&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/readability-simplify-bool-expr.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/readability-simplify-bool-expr.cpp Wed Nov 29 09:16:09 2017
@@ -281,6 +281,8 @@ static constexpr bool truthy() {
 }
 
 #define HAS_XYZ_FEATURE true
+#define M1(what) M2(true, what)
+#define M2(condition, what) if (condition) what
 
 void macros_and_constexprs(int i = 0) {
   bool b = (i == 1);
@@ -295,9 +297,15 @@ void macros_and_constexprs(int i = 0) {
     // inline the macro first.
     i = 3;
   }
+  if (HAS_XYZ_FEATURE) {
+    i = 5;
+  }
   i = 4;
+  M1(i = 7);
 }
 
+#undef HAS_XYZ_FEATURE
+
 bool conditional_return_statements(int i) {
   if (i == 0) return true; else return false;
 }




More information about the cfe-commits mailing list