@@ -10456,6 +10456,79 @@ TEST_P(ASTImporterOptionSpecificTestBase,
1045610456 EXPECT_EQ (ToFr1Imp, ToFr1);
1045710457}
1045810458
10459+ struct ImportAndMergeAnonymousNamespace
10460+ : public ASTImporterOptionSpecificTestBase {
10461+ protected:
10462+ void test (const char *ToCode, const char *FromCode) {
10463+ Decl *ToTU = getToTuDecl (ToCode, Lang_CXX11);
10464+ Decl *FromTU = getTuDecl (FromCode, Lang_CXX11);
10465+ auto *FromNS = FirstDeclMatcher<NamespaceDecl>().match (
10466+ FromTU, namespaceDecl (isAnonymous ()));
10467+ auto *ToNS = FirstDeclMatcher<NamespaceDecl>().match (
10468+ ToTU, namespaceDecl (isAnonymous ()));
10469+ auto *FromF = FirstDeclMatcher<FunctionDecl>().match (
10470+ FromTU, functionDecl (hasName (" f" )));
10471+ auto *ImportedF = Import (FromF, Lang_CXX11);
10472+ EXPECT_TRUE (ImportedF);
10473+ EXPECT_EQ (ImportedF->getDeclContext (), ToNS);
10474+ auto *ImportedNS = Import (FromNS, Lang_CXX11);
10475+ EXPECT_EQ (ImportedNS, ToNS);
10476+ }
10477+ };
10478+
10479+ TEST_P (ImportAndMergeAnonymousNamespace, NamespaceInTU) {
10480+ const char *ToCode =
10481+ R"(
10482+ namespace {
10483+ }
10484+ )" ;
10485+ const char *FromCode =
10486+ R"(
10487+ namespace {
10488+ void f();
10489+ }
10490+ )" ;
10491+ test (ToCode, FromCode);
10492+ }
10493+
10494+ TEST_P (ImportAndMergeAnonymousNamespace, NamespaceInLinkageSpec) {
10495+ const char *ToCode =
10496+ R"(
10497+ extern "C" {
10498+ namespace {
10499+ }
10500+ }
10501+ )" ;
10502+ const char *FromCode =
10503+ R"(
10504+ extern "C" {
10505+ namespace {
10506+ void f();
10507+ }
10508+ }
10509+ )" ;
10510+ test (ToCode, FromCode);
10511+ }
10512+
10513+ TEST_P (ImportAndMergeAnonymousNamespace, NamespaceInNamespace) {
10514+ const char *ToCode =
10515+ R"(
10516+ namespace X {
10517+ namespace {
10518+ }
10519+ }
10520+ )" ;
10521+ const char *FromCode =
10522+ R"(
10523+ namespace X {
10524+ namespace {
10525+ void f();
10526+ }
10527+ }
10528+ )" ;
10529+ test (ToCode, FromCode);
10530+ }
10531+
1045910532INSTANTIATE_TEST_SUITE_P (ParameterizedTests, ASTImporterLookupTableTest,
1046010533 DefaultTestValuesForRunOptions);
1046110534
@@ -10542,6 +10615,9 @@ INSTANTIATE_TEST_SUITE_P(ParameterizedTests, ImportMatrixType,
1054210615INSTANTIATE_TEST_SUITE_P (ParameterizedTests, ImportTemplateParmDeclDefaultValue,
1054310616 DefaultTestValuesForRunOptions);
1054410617
10618+ INSTANTIATE_TEST_SUITE_P (ParameterizedTests, ImportAndMergeAnonymousNamespace,
10619+ DefaultTestValuesForRunOptions);
10620+
1054510621// FIXME: Make ImportOpenCLPipe test work.
1054610622// INSTANTIATE_TEST_SUITE_P(ParameterizedTests, ImportOpenCLPipe,
1054710623// DefaultTestValuesForRunOptions);
0 commit comments