diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2016-01-25 20:00:53 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2016-01-25 20:00:53 +0000 |
commit | a5d55a46176a97b260e89fba55b8cf217e390422 (patch) | |
tree | 85dab61d6fc404f946d35aebc504bb45ba38da5c /clang-tools-extra/clang-tidy/misc/AssertSideEffectCheck.cpp | |
parent | 92f0f7c2f394e31a21f77ec3d43569c26154f6e1 (diff) | |
download | bcm5719-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.cpp | 15 |
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); } |