From 1802daf8539f3320c369e442d3c8471b10ffd3cb Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Wed, 17 Oct 2012 13:35:36 +0000 Subject: [PATCH] Fix tests, which accidentally matched implicit code on specific platforms to make buildbots happy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166100 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/ASTMatchers/ASTMatchersTest.cpp | 66 ++++++++++++++--------- 1 file changed, 42 insertions(+), 24 deletions(-) diff --git a/unittests/ASTMatchers/ASTMatchersTest.cpp b/unittests/ASTMatchers/ASTMatchersTest.cpp index 3dc4e1defb..9676fde96b 100644 --- a/unittests/ASTMatchers/ASTMatchersTest.cpp +++ b/unittests/ASTMatchers/ASTMatchersTest.cpp @@ -2991,14 +2991,17 @@ TEST(TypeMatching, MatchesAutoTypes) { } TEST(TypeMatching, PointerTypes) { - EXPECT_TRUE(matchAndVerifyResultTrue( - "int* a;", - pointerTypeLoc(pointeeLoc(typeLoc().bind("loc"))), - new VerifyIdIsBoundTo("loc", 1))); - EXPECT_TRUE(matchAndVerifyResultTrue( - "int* a;", - pointerTypeLoc().bind("loc"), - new VerifyIdIsBoundTo("loc", 1))); + // FIXME: Reactive when these tests can be more specific (not matching + // implicit code on certain platforms), likely when we have hasDescendant for + // Types/TypeLocs. + //EXPECT_TRUE(matchAndVerifyResultTrue( + // "int* a;", + // pointerTypeLoc(pointeeLoc(typeLoc().bind("loc"))), + // new VerifyIdIsBoundTo("loc", 1))); + //EXPECT_TRUE(matchAndVerifyResultTrue( + // "int* a;", + // pointerTypeLoc().bind("loc"), + // new VerifyIdIsBoundTo("loc", 1))); EXPECT_TRUE(matches( "int** a;", pointerTypeLoc(pointeeLoc(loc(qualType()))))); @@ -3010,22 +3013,34 @@ TEST(TypeMatching, PointerTypes) { loc(qualType(isConstQualified(), pointerType())))); std::string Fragment = "struct A { int i; }; int A::* ptr = &A::i;"; - EXPECT_TRUE(notMatches(Fragment, blockPointerType())); - EXPECT_TRUE(matches(Fragment, memberPointerType())); - EXPECT_TRUE(notMatches(Fragment, pointerType())); - EXPECT_TRUE(notMatches(Fragment, referenceType())); + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"), + hasType(blockPointerType())))); + EXPECT_TRUE(matches(Fragment, varDecl(hasName("ptr"), + hasType(memberPointerType())))); + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"), + hasType(pointerType())))); + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"), + hasType(referenceType())))); - Fragment = "int *I;"; - EXPECT_TRUE(notMatches(Fragment, blockPointerType())); - EXPECT_TRUE(notMatches(Fragment, memberPointerType())); - EXPECT_TRUE(matches(Fragment, pointerType())); - EXPECT_TRUE(notMatches(Fragment, referenceType())); + Fragment = "int *ptr;"; + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"), + hasType(blockPointerType())))); + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"), + hasType(memberPointerType())))); + EXPECT_TRUE(matches(Fragment, varDecl(hasName("ptr"), + hasType(pointerType())))); + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ptr"), + hasType(referenceType())))); - Fragment = "int a; int &b = a;"; - EXPECT_TRUE(notMatches(Fragment, blockPointerType())); - EXPECT_TRUE(notMatches(Fragment, memberPointerType())); - EXPECT_TRUE(notMatches(Fragment, pointerType())); - EXPECT_TRUE(matches(Fragment, referenceType())); + Fragment = "int a; int &ref = a;"; + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"), + hasType(blockPointerType())))); + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"), + hasType(memberPointerType())))); + EXPECT_TRUE(notMatches(Fragment, varDecl(hasName("ref"), + hasType(pointerType())))); + EXPECT_TRUE(matches(Fragment, varDecl(hasName("ref"), + hasType(referenceType())))); } TEST(TypeMatching, PointeeTypes) { @@ -3058,9 +3073,12 @@ TEST(TypeMatching, MatchesPointersToConstTypes) { } TEST(TypeMatching, MatchesTypedefTypes) { - EXPECT_TRUE(matches("typedef int X;", typedefType())); + EXPECT_TRUE(matches("typedef int X; X a;", varDecl(hasName("a"), + hasType(typedefType())))); - EXPECT_TRUE(matches("typedef int X;", typedefType(hasDecl(decl())))); + EXPECT_TRUE(matches("typedef int X; X a;", + varDecl(hasName("a"), + hasType(typedefType(hasDecl(decl())))))); } TEST(NNS, MatchesNestedNameSpecifiers) {