This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG439c9206945a: [ASTMatchers] Fix bug in `hasUnaryOperand` (authored by ymandel).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104389/new/ https://reviews.llvm.org/D104389 Files: clang/include/clang/ASTMatchers/ASTMatchersInternal.h clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp Index: clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp =================================================================== --- clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp +++ clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp @@ -1893,6 +1893,23 @@ cxxOperatorCallExpr( forFunction(functionDecl(hasName("plusIntOperator"))), hasOperatorName("+"), hasUnaryOperand(expr()))))); + + Code = R"cpp( +struct HasOpArrow +{ + int& operator*(); +}; +void foo() +{ + HasOpArrow s1; + *s1; +} +)cpp"; + + EXPECT_TRUE( + matches(Code, traverse(TK_IgnoreUnlessSpelledInSource, + cxxOperatorCallExpr(hasOperatorName("*"), + hasUnaryOperand(expr()))))); } TEST(Matcher, UnaryOperatorTypes) { Index: clang/include/clang/ASTMatchers/ASTMatchersInternal.h =================================================================== --- clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -2102,6 +2102,8 @@ return UO_Minus; case OO_Amp: return UO_AddrOf; + case OO_Star: + return UO_Deref; case OO_Tilde: return UO_Not; case OO_Exclaim:
Index: clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp =================================================================== --- clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp +++ clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp @@ -1893,6 +1893,23 @@ cxxOperatorCallExpr( forFunction(functionDecl(hasName("plusIntOperator"))), hasOperatorName("+"), hasUnaryOperand(expr()))))); + + Code = R"cpp( +struct HasOpArrow +{ + int& operator*(); +}; +void foo() +{ + HasOpArrow s1; + *s1; +} +)cpp"; + + EXPECT_TRUE( + matches(Code, traverse(TK_IgnoreUnlessSpelledInSource, + cxxOperatorCallExpr(hasOperatorName("*"), + hasUnaryOperand(expr()))))); } TEST(Matcher, UnaryOperatorTypes) { Index: clang/include/clang/ASTMatchers/ASTMatchersInternal.h =================================================================== --- clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -2102,6 +2102,8 @@ return UO_Minus; case OO_Amp: return UO_AddrOf; + case OO_Star: + return UO_Deref; case OO_Tilde: return UO_Not; case OO_Exclaim:
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits