summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2016-01-25 20:00:53 +0000
committerAaron Ballman <aaron@aaronballman.com>2016-01-25 20:00:53 +0000
commita5d55a46176a97b260e89fba55b8cf217e390422 (patch)
tree85dab61d6fc404f946d35aebc504bb45ba38da5c /clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp
parent92f0f7c2f394e31a21f77ec3d43569c26154f6e1 (diff)
downloadbcm5719-llvm-a5d55a46176a97b260e89fba55b8cf217e390422.tar.gz
bcm5719-llvm-a5d55a46176a97b260e89fba55b8cf217e390422.zip
Add support to the misc-assert-side-effect check for MSVC-style assert macros, which use !! instead of an if statement or a conditional operator.
llvm-svn: 258714
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp b/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp
index 6b93d9c9253..8d63ec5ece0 100644
--- a/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp
@@ -83,11 +83,18 @@ void AssertSideEffectCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
}
void AssertSideEffectCheck::registerMatchers(MatchFinder *Finder) {
- auto ConditionWithSideEffect =
- hasCondition(hasDescendant(expr(hasSideEffect(CheckFunctionCalls))));
+ auto DescendantWithSideEffect =
+ hasDescendant(expr(hasSideEffect(CheckFunctionCalls)));
+ auto ConditionWithSideEffect = hasCondition(DescendantWithSideEffect);
Finder->addMatcher(
- stmt(anyOf(conditionalOperator(ConditionWithSideEffect),
- ifStmt(ConditionWithSideEffect))).bind("condStmt"),
+ stmt(
+ anyOf(conditionalOperator(ConditionWithSideEffect),
+ ifStmt(ConditionWithSideEffect),
+ unaryOperator(hasOperatorName("!"),
+ hasUnaryOperand(unaryOperator(
+ hasOperatorName("!"),
+ hasUnaryOperand(DescendantWithSideEffect))))))
+ .bind("condStmt"),
this);
}
OpenPOWER on IntegriCloud