diff options
author | Haojian Wu <hokein@google.com> | 2019-06-06 13:43:38 +0000 |
---|---|---|
committer | Haojian Wu <hokein@google.com> | 2019-06-06 13:43:38 +0000 |
commit | a4f5a2ad1f03cb0c3f0a2fdc5d504310b2cb6b85 (patch) | |
tree | 8371b5ddb4cf141b22bf76f581f7df2bc26dc4de /clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp | |
parent | 71d3f227a790d6cf39d8c6267940e0dc0c237e11 (diff) | |
download | bcm5719-llvm-a4f5a2ad1f03cb0c3f0a2fdc5d504310b2cb6b85.tar.gz bcm5719-llvm-a4f5a2ad1f03cb0c3f0a2fdc5d504310b2cb6b85.zip |
[clang-tidy] Another attempt to fix misc-redundant-expression check.
Correct the fix of rL3627011, the isValueDependent guard was added in a wrong place in rL362701.
llvm-svn: 362706
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp index 031b72155f3..5167315dea4 100644 --- a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp @@ -291,7 +291,7 @@ static void transformSubToCanonicalAddExpr(BinaryOperatorKind &Opcode, } AST_MATCHER(Expr, isIntegerConstantExpr) { - if (Node.isInstantiationDependent() || Node.isValueDependent()) + if (Node.isInstantiationDependent()) return false; return Node.isIntegerConstantExpr(Finder->getASTContext()); } @@ -523,10 +523,11 @@ static bool retrieveRelationalIntegerConstantExpr( if (canOverloadedOperatorArgsBeModified(OverloadedFunctionDecl, false)) return false; - if (!OverloadedOperatorExpr->getArg(1)->isIntegerConstantExpr( - Value, *Result.Context)) - return false; - + if (const auto *Arg = OverloadedOperatorExpr->getArg(1)) { + if (!Arg->isValueDependent() && + !Arg->isIntegerConstantExpr(Value, *Result.Context)) + return false; + } Symbol = OverloadedOperatorExpr->getArg(0); OperandExpr = OverloadedOperatorExpr; Opcode = BinaryOperator::getOverloadedOpcode(OverloadedOperatorExpr->getOperator()); |