[PATCH] D97149: [clang-tidy] Simplify suspicious enum usage check
Stephen Kelly via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Feb 21 07:30:15 PST 2021
steveire created this revision.
steveire added reviewers: aaron.ballman, njames93.
Herald added a subscriber: xazax.hun.
steveire requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D97149
Files:
clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp
clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h
Index: clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h
===================================================================
--- clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h
+++ clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h
@@ -25,6 +25,9 @@
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
+ llvm::Optional<TraversalKind> getCheckTraversalKind() const override {
+ return TK_IgnoreUnlessSpelledInSource;
+ }
private:
void checkSuspiciousBitmaskUsage(const Expr*, const EnumDecl*);
Index: clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp
+++ clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp
@@ -118,30 +118,28 @@
void SuspiciousEnumUsageCheck::registerMatchers(MatchFinder *Finder) {
const auto EnumExpr = [](StringRef RefName, StringRef DeclName) {
- return expr(ignoringImpCasts(expr().bind(RefName)),
- ignoringImpCasts(hasType(enumDecl().bind(DeclName))));
+ return expr(hasType(enumDecl().bind(DeclName))).bind(RefName);
};
Finder->addMatcher(
- binaryOperator(hasOperatorName("|"), hasLHS(EnumExpr("", "enumDecl")),
- hasRHS(expr(EnumExpr("", "otherEnumDecl"),
- ignoringImpCasts(hasType(enumDecl(
- unless(equalsBoundNode("enumDecl"))))))))
+ binaryOperator(
+ hasOperatorName("|"), hasLHS(hasType(enumDecl().bind("enumDecl"))),
+ hasRHS(hasType(enumDecl(unless(equalsBoundNode("enumDecl")))
+ .bind("otherEnumDecl"))))
.bind("diffEnumOp"),
this);
Finder->addMatcher(
binaryOperator(hasAnyOperatorName("+", "|"),
hasLHS(EnumExpr("lhsExpr", "enumDecl")),
- hasRHS(expr(EnumExpr("rhsExpr", ""),
- ignoringImpCasts(hasType(
- enumDecl(equalsBoundNode("enumDecl"))))))),
+ hasRHS(expr(hasType(enumDecl(equalsBoundNode("enumDecl"))))
+ .bind("rhsExpr"))),
this);
Finder->addMatcher(
binaryOperator(
hasAnyOperatorName("+", "|"),
- hasOperands(expr(hasType(isInteger()), unless(EnumExpr("", ""))),
+ hasOperands(expr(hasType(isInteger()), unless(hasType(enumDecl()))),
EnumExpr("enumExpr", "enumDecl"))),
this);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97149.325303.patch
Type: text/x-patch
Size: 2768 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210221/9e807a2f/attachment.bin>
More information about the cfe-commits
mailing list