@@ -9674,25 +9674,44 @@ TEST_P(ASTImporterOptionSpecificTestBase, ImportInstantiatedFromMember) {
9674
9674
EXPECT_TRUE (ImportedPartialSpecialization->getInstantiatedFromMember ());
9675
9675
}
9676
9676
9677
+ AST_MATCHER_P (EnumDecl, hasEnumConstName, StringRef, ConstName) {
9678
+ for (EnumConstantDecl *D : Node.enumerators ())
9679
+ if (D->getName () == ConstName)
9680
+ return true ;
9681
+ return false ;
9682
+ }
9683
+
9677
9684
TEST_P (ASTImporterOptionSpecificTestBase, ImportAnonymousEnum) {
9678
9685
const char *ToCode =
9679
9686
R"(
9680
9687
struct A {
9681
- enum { E1,E2} x;
9688
+ enum { E1, E2} x;
9689
+ enum { E3, E4} y;
9682
9690
};
9683
9691
)" ;
9684
- (void )getToTuDecl (ToCode, Lang_CXX11);
9692
+ Decl *ToTU = getToTuDecl (ToCode, Lang_CXX11);
9693
+ auto *ToE1 = FirstDeclMatcher<EnumDecl>().match (
9694
+ ToTU, enumDecl (hasEnumConstName (" E1" )));
9695
+ auto *ToE3 = FirstDeclMatcher<EnumDecl>().match (
9696
+ ToTU, enumDecl (hasEnumConstName (" E3" )));
9685
9697
const char *Code =
9686
9698
R"(
9687
9699
struct A {
9688
- enum { E1,E2} x;
9700
+ enum { E1, E2} x;
9701
+ enum { E3, E4} y;
9689
9702
};
9690
9703
)" ;
9691
9704
Decl *FromTU = getTuDecl (Code, Lang_CXX11);
9692
- auto *FromE = FirstDeclMatcher<EnumDecl>().match (FromTU, enumDecl ());
9693
- auto *ToE = Import (FromE, Lang_CXX11);
9694
- ASSERT_TRUE (ToE);
9695
- EXPECT_FALSE (ToE->enumerators ().empty ());
9705
+ auto *FromE1 = FirstDeclMatcher<EnumDecl>().match (
9706
+ FromTU, enumDecl (hasEnumConstName (" E1" )));
9707
+ auto *ImportedE1 = Import (FromE1, Lang_CXX11);
9708
+ ASSERT_TRUE (ImportedE1);
9709
+ EXPECT_EQ (ImportedE1, ToE1);
9710
+ auto *FromE3 = FirstDeclMatcher<EnumDecl>().match (
9711
+ FromTU, enumDecl (hasEnumConstName (" E3" )));
9712
+ auto *ImportedE3 = Import (FromE3, Lang_CXX11);
9713
+ ASSERT_TRUE (ImportedE3);
9714
+ EXPECT_EQ (ImportedE3, ToE3);
9696
9715
}
9697
9716
9698
9717
INSTANTIATE_TEST_SUITE_P (ParameterizedTests, ASTImporterLookupTableTest,
0 commit comments