@@ -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}
@@ -1836,6 +1834,7 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromCommandLine(
18361834  AST->FileMgr  = new  FileManager (AST->FileSystemOpts , VFS);
18371835  AST->StorePreamblesInMemory  = StorePreamblesInMemory;
18381836  AST->PreambleStoragePath  = PreambleStoragePath;
1837+   AST->ModCache  = createCrossProcessModuleCache ();
18391838  AST->OnlyLocalDecls  = OnlyLocalDecls;
18401839  AST->CaptureDiagnostics  = CaptureDiagnostics;
18411840  AST->TUKind  = TUKind;
@@ -1844,8 +1843,6 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromCommandLine(
18441843    = IncludeBriefCommentsInCodeCompletion;
18451844  AST->UserFilesAreVolatile  = UserFilesAreVolatile;
18461845  AST->Invocation  = CI;
1847-   AST->ModCache  = createCrossProcessModuleCache (
1848-       AST->Invocation ->getHeaderSearchOpts ().BuildSessionTimestamp );
18491846  AST->SkipFunctionBodies  = SkipFunctionBodies;
18501847  if  (ForSerialization)
18511848    AST->WriterData .reset (new  ASTWriterData (*AST->ModCache ));
@@ -2381,6 +2378,7 @@ bool ASTUnit::serialize(raw_ostream &OS) {
23812378
23822379  SmallString<128 > Buffer;
23832380  llvm::BitstreamWriter Stream (Buffer);
2381+   IntrusiveRefCntPtr<ModuleCache> ModCache = createCrossProcessModuleCache ();
23842382  ASTWriter Writer (Stream, Buffer, *ModCache, {});
23852383  return  serializeUnit (Writer, Buffer, getSema (), OS);
23862384}
0 commit comments