diff options
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); } |