summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2017-11-29 17:16:09 +0000
committerAlexander Kornienko <alexfh@google.com>2017-11-29 17:16:09 +0000
commitac4fe48caa7925d10232c2ceb86a2b263e4c94f3 (patch)
tree4ac27f5fba1ba9ed02cced7827d4243d1597fb64
parent95e0c5fc6cebc2ced6eaac6dddd7858dc053cf4e (diff)
downloadbcm5719-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.cpp5
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp8
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;
}
OpenPOWER on IntegriCloud