@@ -10456,6 +10456,79 @@ TEST_P(ASTImporterOptionSpecificTestBase,
10456
10456
EXPECT_EQ (ToFr1Imp, ToFr1);
10457
10457
}
10458
10458
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
+
10459
10532
INSTANTIATE_TEST_SUITE_P (ParameterizedTests, ASTImporterLookupTableTest,
10460
10533
DefaultTestValuesForRunOptions);
10461
10534
@@ -10542,6 +10615,9 @@ INSTANTIATE_TEST_SUITE_P(ParameterizedTests, ImportMatrixType,
10542
10615
INSTANTIATE_TEST_SUITE_P (ParameterizedTests, ImportTemplateParmDeclDefaultValue,
10543
10616
DefaultTestValuesForRunOptions);
10544
10617
10618
+ INSTANTIATE_TEST_SUITE_P (ParameterizedTests, ImportAndMergeAnonymousNamespace,
10619
+ DefaultTestValuesForRunOptions);
10620
+
10545
10621
// FIXME: Make ImportOpenCLPipe test work.
10546
10622
// INSTANTIATE_TEST_SUITE_P(ParameterizedTests, ImportOpenCLPipe,
10547
10623
// DefaultTestValuesForRunOptions);
0 commit comments