@@ -829,10 +829,9 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromASTFile(
829829  AST->SourceMgr  = new  SourceManager (AST->getDiagnostics (),
830830                                     AST->getFileManager (),
831831                                     UserFilesAreVolatile);
832+   AST->ModCache  = createCrossProcessModuleCache ();
832833  AST->HSOpts  = std::make_unique<HeaderSearchOptions>(HSOpts);
833834  AST->HSOpts ->ModuleFormat  = std::string (PCHContainerRdr.getFormats ().front ());
834-   AST->ModCache  =
835-       createCrossProcessModuleCache (AST->HSOpts ->BuildSessionTimestamp );
836835  AST->HeaderInfo .reset (new  HeaderSearch (AST->getHeaderSearchOpts (),
837836                                         AST->getSourceManager (),
838837                                         AST->getDiagnostics (),
@@ -1549,8 +1548,7 @@ ASTUnit::create(std::shared_ptr<CompilerInvocation> CI,
15491548  AST->UserFilesAreVolatile  = UserFilesAreVolatile;
15501549  AST->SourceMgr  = new  SourceManager (AST->getDiagnostics (), *AST->FileMgr ,
15511550                                     UserFilesAreVolatile);
1552-   AST->ModCache  = createCrossProcessModuleCache (
1553-       AST->Invocation ->getHeaderSearchOpts ().BuildSessionTimestamp );
1551+   AST->ModCache  = createCrossProcessModuleCache ();
15541552
15551553  return  AST;
15561554}
@@ -1747,8 +1745,6 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromCompilerInvocation(
17471745  AST->IncludeBriefCommentsInCodeCompletion 
17481746    = IncludeBriefCommentsInCodeCompletion;
17491747  AST->Invocation  = std::move (CI);
1750-   AST->ModCache  = createCrossProcessModuleCache (
1751-       AST->Invocation ->getHeaderSearchOpts ().BuildSessionTimestamp );
17521748  AST->FileSystemOpts  = FileMgr->getFileSystemOpts ();
17531749  AST->FileMgr  = FileMgr;
17541750  AST->UserFilesAreVolatile  = UserFilesAreVolatile;
@@ -1838,6 +1834,7 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromCommandLine(
18381834  AST->FileMgr  = new  FileManager (AST->FileSystemOpts , VFS);
18391835  AST->StorePreamblesInMemory  = StorePreamblesInMemory;
18401836  AST->PreambleStoragePath  = PreambleStoragePath;
1837+   AST->ModCache  = createCrossProcessModuleCache ();
18411838  AST->OnlyLocalDecls  = OnlyLocalDecls;
18421839  AST->CaptureDiagnostics  = CaptureDiagnostics;
18431840  AST->TUKind  = TUKind;
@@ -1846,8 +1843,6 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromCommandLine(
18461843    = IncludeBriefCommentsInCodeCompletion;
18471844  AST->UserFilesAreVolatile  = UserFilesAreVolatile;
18481845  AST->Invocation  = CI;
1849-   AST->ModCache  = createCrossProcessModuleCache (
1850-       AST->Invocation ->getHeaderSearchOpts ().BuildSessionTimestamp );
18511846  AST->SkipFunctionBodies  = SkipFunctionBodies;
18521847  if  (ForSerialization)
18531848    AST->WriterData .reset (new  ASTWriterData (*AST->ModCache ));
@@ -2383,6 +2378,7 @@ bool ASTUnit::serialize(raw_ostream &OS) {
23832378
23842379  SmallString<128 > Buffer;
23852380  llvm::BitstreamWriter Stream (Buffer);
2381+   IntrusiveRefCntPtr<ModuleCache> ModCache = createCrossProcessModuleCache ();
23862382  ASTWriter Writer (Stream, Buffer, *ModCache, {});
23872383  return  serializeUnit (Writer, Buffer, getSema (), OS);
23882384}
0 commit comments