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
This commit is contained in:
Daniel Jasper 2012-10-17 13:35:36 +00:00
Родитель 86ce8f5873
Коммит 1802daf853
1 изменённых файлов: 42 добавлений и 24 удалений

Просмотреть файл

@ -2991,14 +2991,17 @@ TEST(TypeMatching, MatchesAutoTypes) {
}
TEST(TypeMatching, PointerTypes) {
EXPECT_TRUE(matchAndVerifyResultTrue(
"int* a;",
pointerTypeLoc(pointeeLoc(typeLoc().bind("loc"))),
new VerifyIdIsBoundTo<TypeLoc>("loc", 1)));
EXPECT_TRUE(matchAndVerifyResultTrue(
"int* a;",
pointerTypeLoc().bind("loc"),
new VerifyIdIsBoundTo<TypeLoc>("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<TypeLoc>("loc", 1)));
//EXPECT_TRUE(matchAndVerifyResultTrue(
// "int* a;",
// pointerTypeLoc().bind("loc"),
// new VerifyIdIsBoundTo<TypeLoc>("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) {