steakhal updated this revision to Diff 331191. steakhal added a comment. Moved to line 3481, changed the test logic accordingly.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D98707/new/ https://reviews.llvm.org/D98707 Files: clang/lib/AST/ASTImporter.cpp clang/unittests/AST/ASTImporterTest.cpp Index: clang/unittests/AST/ASTImporterTest.cpp =================================================================== --- clang/unittests/AST/ASTImporterTest.cpp +++ clang/unittests/AST/ASTImporterTest.cpp @@ -3480,6 +3480,20 @@ struct ImportVariables : ASTImporterOptionSpecificTestBase {}; +TEST_P(ImportVariables, ImportedVarDeclPreservesThreadLocalStorage) { + Decl *FromTU = + getTuDecl("thread_local int declToImport;", Lang_CXX11, "input1.cc"); + + auto *FromDWithTLS = FirstDeclMatcher<VarDecl>().match( + FromTU, varDecl(hasThreadStorageDuration())); + ASSERT_TRUE(FromDWithTLS); + ASSERT_EQ(SD_Thread, FromDWithTLS->getStorageDuration()); + + const auto *ToD = Import(FromDWithTLS, Lang_CXX11); + ASSERT_TRUE(ToD); + EXPECT_EQ(SD_Thread, ToD->getStorageDuration()); +} + TEST_P(ImportVariables, ImportOfOneDeclBringsInTheWholeChain) { Decl *FromTU = getTuDecl( R"( Index: clang/lib/AST/ASTImporter.cpp =================================================================== --- clang/lib/AST/ASTImporter.cpp +++ clang/lib/AST/ASTImporter.cpp @@ -4018,6 +4018,7 @@ D->getStorageClass())) return ToVar; + ToVar->setTSCSpec(D->getTSCSpec()); ToVar->setQualifierInfo(ToQualifierLoc); ToVar->setAccess(D->getAccess()); ToVar->setLexicalDeclContext(LexicalDC);
Index: clang/unittests/AST/ASTImporterTest.cpp =================================================================== --- clang/unittests/AST/ASTImporterTest.cpp +++ clang/unittests/AST/ASTImporterTest.cpp @@ -3480,6 +3480,20 @@ struct ImportVariables : ASTImporterOptionSpecificTestBase {}; +TEST_P(ImportVariables, ImportedVarDeclPreservesThreadLocalStorage) { + Decl *FromTU = + getTuDecl("thread_local int declToImport;", Lang_CXX11, "input1.cc"); + + auto *FromDWithTLS = FirstDeclMatcher<VarDecl>().match( + FromTU, varDecl(hasThreadStorageDuration())); + ASSERT_TRUE(FromDWithTLS); + ASSERT_EQ(SD_Thread, FromDWithTLS->getStorageDuration()); + + const auto *ToD = Import(FromDWithTLS, Lang_CXX11); + ASSERT_TRUE(ToD); + EXPECT_EQ(SD_Thread, ToD->getStorageDuration()); +} + TEST_P(ImportVariables, ImportOfOneDeclBringsInTheWholeChain) { Decl *FromTU = getTuDecl( R"( Index: clang/lib/AST/ASTImporter.cpp =================================================================== --- clang/lib/AST/ASTImporter.cpp +++ clang/lib/AST/ASTImporter.cpp @@ -4018,6 +4018,7 @@ D->getStorageClass())) return ToVar; + ToVar->setTSCSpec(D->getTSCSpec()); ToVar->setQualifierInfo(ToQualifierLoc); ToVar->setAccess(D->getAccess()); ToVar->setLexicalDeclContext(LexicalDC);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits