[PATCH] D80896: [clang-tidy][misc-redundant-expression] Support for CXXFoldExpr
Zinovy Nis via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 4 11:00:23 PDT 2020
zinovy.nis updated this revision to Diff 268527.
zinovy.nis added a comment.
Simplify test.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D80896/new/
https://reviews.llvm.org/D80896
Files:
clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
clang-tools-extra/test/clang-tidy/checkers/misc-redundant-expression.cpp
Index: clang-tools-extra/test/clang-tidy/checkers/misc-redundant-expression.cpp
===================================================================
--- clang-tools-extra/test/clang-tidy/checkers/misc-redundant-expression.cpp
+++ clang-tools-extra/test/clang-tidy/checkers/misc-redundant-expression.cpp
@@ -793,4 +793,10 @@
return foo < GetFoo() && foo < maybe_foo;
}
};
-}
+
+template <class... Values>
+struct Bar2 {
+ static_assert((... && (sizeof(Values) > 0)) == (... && (sizeof(Values) > 0)));
+ // CHECK-MESSAGES: :[[@LINE-1]]:47: warning: both sides of operator are equivalent [misc-redundant-expression]
+};
+} // namespace no_crash
Index: clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
+++ clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
@@ -72,8 +72,8 @@
Expr::const_child_iterator LeftIter = Left->child_begin();
Expr::const_child_iterator RightIter = Right->child_begin();
while (LeftIter != Left->child_end() && RightIter != Right->child_end()) {
- if (!areEquivalentExpr(dyn_cast<Expr>(*LeftIter),
- dyn_cast<Expr>(*RightIter)))
+ if (!areEquivalentExpr(dyn_cast_or_null<Expr>(*LeftIter),
+ dyn_cast_or_null<Expr>(*RightIter)))
return false;
++LeftIter;
++RightIter;
@@ -117,6 +117,9 @@
case Stmt::MemberExprClass:
return cast<MemberExpr>(Left)->getMemberDecl() ==
cast<MemberExpr>(Right)->getMemberDecl();
+ case Stmt::CXXFoldExprClass:
+ return cast<CXXFoldExpr>(Left)->getOperator() ==
+ cast<CXXFoldExpr>(Right)->getOperator();
case Stmt::CXXFunctionalCastExprClass:
case Stmt::CStyleCastExprClass:
return cast<ExplicitCastExpr>(Left)->getTypeAsWritten() ==
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80896.268527.patch
Type: text/x-patch
Size: 1882 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200604/8e69da85/attachment-0001.bin>
More information about the cfe-commits
mailing list