From 8d62eba1053a4156032e5333ce0b1c6d33ca8ec5 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Fri, 22 May 2020 22:48:54 +0100 Subject: [PATCH] Add some explicit use of TK_AsIs --- clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp | 8 +++++--- .../lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp | 2 +- clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp | 5 +++-- clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp b/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp index c17a43c..d179e6c 100644 --- a/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp +++ b/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp @@ -104,9 +104,11 @@ findMembersUsedInInitExpr(const CXXCtorInitializer *Initializer, // for those accesses Sema::PerformObjectMemberConversion always inserts an // UncheckedDerivedToBase ImplicitCastExpr between the this expr and the // object expression - auto FoundExprs = - match(findAll(memberExpr(hasObjectExpression(cxxThisExpr())).bind("ME")), - *Initializer->getInit(), Context); + auto FoundExprs = match( + traverse( + TK_AsIs, + findAll(memberExpr(hasObjectExpression(cxxThisExpr())).bind("ME"))), + *Initializer->getInit(), Context); for (BoundNodes &BN : FoundExprs) if (auto *MemExpr = BN.getNodeAs("ME")) if (auto *FD = dyn_cast(MemExpr->getMemberDecl())) diff --git a/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp index df69254..abeca596 100644 --- a/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp @@ -338,7 +338,7 @@ void NumberObjectConversionChecker::checkASTCodeBody(const Decl *D, MatchFinder F; Callback CB(this, BR, AM.getAnalysisDeclContext(D)); - F.addMatcher(stmt(forEachDescendant(FinalM)), &CB); + F.addMatcher(traverse(TK_AsIs, stmt(forEachDescendant(FinalM))), &CB); F.match(*D->getBody(), AM.getASTContext()); } diff --git a/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp index 8eee4df..25d87f4 100644 --- a/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp @@ -86,8 +86,9 @@ auto matchSortWithPointers() -> decltype(decl()) { ))) )))); - auto PointerSortM = stmt(callExpr(allOf(SortFuncM, IteratesPointerEltsM)) - ).bind(WarnAtNode); + auto PointerSortM = traverse( + TK_AsIs, + stmt(callExpr(allOf(SortFuncM, IteratesPointerEltsM))).bind(WarnAtNode)); return decl(forEachDescendant(PointerSortM)); } diff --git a/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp b/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp index 0d3a2d4..f5e324a 100644 --- a/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp +++ b/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp @@ -226,7 +226,7 @@ TEST(ParserTest, FullParserTest) { Parser::parseMatcherExpression(Code, nullptr, nullptr, &Error)); EXPECT_EQ("", Error.toStringFull()); Matcher MCastStmt = - implicitIntBooleanCast->unconditionalConvertTo(); + traverse(TK_AsIs, implicitIntBooleanCast->unconditionalConvertTo()); EXPECT_TRUE(matches("bool X = 1;", MCastStmt)); EXPECT_FALSE(matches("bool X = true;", MCastStmt)); -- 2.7.4