summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/readability/ImplicitBoolCastCheck.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2017-05-08 15:22:09 +0000
committerAlexander Kornienko <alexfh@google.com>2017-05-08 15:22:09 +0000
commitf89e0bb2c4cb8a90c708b526bb0f14a5526d854f (patch)
tree66dff885e63483f0c41d76b78b3c5127e98271b1 /clang-tools-extra/clang-tidy/readability/ImplicitBoolCastCheck.cpp
parent360f4783cffad11dedcedcd051b25bcaedcabbf9 (diff)
downloadbcm5719-llvm-f89e0bb2c4cb8a90c708b526bb0f14a5526d854f.tar.gz
bcm5719-llvm-f89e0bb2c4cb8a90c708b526bb0f14a5526d854f.zip
[clang-tidy] Fix readability-implicit-bool-cast false positives
The patch makes the check treat binary conditional operator (`x ?: y`), `while` and regular `for` loops as conditional statements for the purpose of AllowConditional*Cast options. llvm-svn: 302431
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability/ImplicitBoolCastCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/readability/ImplicitBoolCastCheck.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/ImplicitBoolCastCheck.cpp b/clang-tools-extra/clang-tidy/readability/ImplicitBoolCastCheck.cpp
index 13b410b9939..20ce5d20658 100644
--- a/clang-tools-extra/clang-tidy/readability/ImplicitBoolCastCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/ImplicitBoolCastCheck.cpp
@@ -227,7 +227,8 @@ bool isAllowedConditionalCast(const ImplicitCastExpr *Cast,
const Stmt *S = N.get<Stmt>();
if (!S)
return false;
- if (isa<IfStmt>(S) || isa<ConditionalOperator>(S))
+ if (isa<IfStmt>(S) || isa<ConditionalOperator>(S) || isa<ForStmt>(S) ||
+ isa<WhileStmt>(S) || isa<BinaryConditionalOperator>(S))
return true;
if (isa<ParenExpr>(S) || isa<ImplicitCastExpr>(S) ||
isUnaryLogicalNotOperator(S) ||
OpenPOWER on IntegriCloud