@@ -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