summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
index 3f4b1cfebc8..7006361b4c5 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
@@ -540,23 +540,27 @@ TEST(MatcherCXXMemberCallExpr, OnImplicitObjectArgument) {
}
TEST(Matcher, HasObjectExpr) {
- auto M = memberExpr(hasObjectExpression(hasType(cxxRecordDecl(hasName("X")))));
- EXPECT_TRUE(matches(
- R"cc(
+ auto Snippet1 = R"cc(
struct X {
int m;
int f(X x) { return x.m; }
};
- )cc",
- M));
- EXPECT_TRUE(notMatches(
- R"cc(
+ )cc";
+ auto Snippet2 = R"cc(
struct X {
int m;
int f(X x) { return m; }
};
- )cc",
- M));
+ )cc";
+ auto MatchesX =
+ memberExpr(hasObjectExpression(hasType(cxxRecordDecl(hasName("X")))));
+ EXPECT_TRUE(matches(Snippet1, MatchesX));
+ EXPECT_TRUE(notMatches(Snippet2, MatchesX));
+
+ auto MatchesXPointer = memberExpr(
+ hasObjectExpression(hasType(pointsTo(cxxRecordDecl(hasName("X"))))));
+ EXPECT_TRUE(notMatches(Snippet1, MatchesXPointer));
+ EXPECT_TRUE(matches(Snippet2, MatchesXPointer));
}
TEST(ForEachArgumentWithParam, ReportsNoFalsePositives) {
OpenPOWER on IntegriCloud