diff options
author | Alexander Kornienko <alexfh@google.com> | 2017-11-29 17:16:09 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2017-11-29 17:16:09 +0000 |
commit | ac4fe48caa7925d10232c2ceb86a2b263e4c94f3 (patch) | |
tree | 4ac27f5fba1ba9ed02cced7827d4243d1597fb64 | |
parent | 95e0c5fc6cebc2ced6eaac6dddd7858dc053cf4e (diff) | |
download | bcm5719-llvm-ac4fe48caa7925d10232c2ceb86a2b263e4c94f3.tar.gz bcm5719-llvm-ac4fe48caa7925d10232c2ceb86a2b263e4c94f3.zip |
[clang-tidy] make readability-simplify-bool-expr completely ignore macros
llvm-svn: 319325
-rw-r--r-- | clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp | 5 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp index 8934e7be58e..559b085bef9 100644 --- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp @@ -62,10 +62,7 @@ const char SimplifyConditionalReturnDiagnostic[] = 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") { diff --git a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp index 8ae78741849..edaf68e0c88 100644 --- a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp @@ -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; } |