@@ -829,9 +829,10 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromASTFile(
829829 AST->SourceMgr = new SourceManager (AST->getDiagnostics (),
830830 AST->getFileManager (),
831831 UserFilesAreVolatile);
832- AST->ModCache = createCrossProcessModuleCache ();
833832 AST->HSOpts = std::make_unique<HeaderSearchOptions>(HSOpts);
834833 AST->HSOpts ->ModuleFormat = std::string (PCHContainerRdr.getFormats ().front ());
834+ AST->ModCache =
835+ createCrossProcessModuleCache (AST->HSOpts ->BuildSessionTimestamp );
835836 AST->HeaderInfo .reset (new HeaderSearch (AST->getHeaderSearchOpts (),
836837 AST->getSourceManager (),
837838 AST->getDiagnostics (),
@@ -1548,7 +1549,8 @@ ASTUnit::create(std::shared_ptr<CompilerInvocation> CI,
15481549 AST->UserFilesAreVolatile = UserFilesAreVolatile;
15491550 AST->SourceMgr = new SourceManager (AST->getDiagnostics (), *AST->FileMgr ,
15501551 UserFilesAreVolatile);
1551- AST->ModCache = createCrossProcessModuleCache ();
1552+ AST->ModCache = createCrossProcessModuleCache (
1553+ AST->Invocation ->getHeaderSearchOpts ().BuildSessionTimestamp );
15521554
15531555 return AST;
15541556}
@@ -1834,7 +1836,6 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromCommandLine(
18341836 AST->FileMgr = new FileManager (AST->FileSystemOpts , VFS);
18351837 AST->StorePreamblesInMemory = StorePreamblesInMemory;
18361838 AST->PreambleStoragePath = PreambleStoragePath;
1837- AST->ModCache = createCrossProcessModuleCache ();
18381839 AST->OnlyLocalDecls = OnlyLocalDecls;
18391840 AST->CaptureDiagnostics = CaptureDiagnostics;
18401841 AST->TUKind = TUKind;
@@ -1843,6 +1844,8 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromCommandLine(
18431844 = IncludeBriefCommentsInCodeCompletion;
18441845 AST->UserFilesAreVolatile = UserFilesAreVolatile;
18451846 AST->Invocation = CI;
1847+ AST->ModCache = createCrossProcessModuleCache (
1848+ AST->Invocation ->getHeaderSearchOpts ().BuildSessionTimestamp );
18461849 AST->SkipFunctionBodies = SkipFunctionBodies;
18471850 if (ForSerialization)
18481851 AST->WriterData .reset (new ASTWriterData (*AST->ModCache ));
@@ -2378,7 +2381,6 @@ bool ASTUnit::serialize(raw_ostream &OS) {
23782381
23792382 SmallString<128 > Buffer;
23802383 llvm::BitstreamWriter Stream (Buffer);
2381- IntrusiveRefCntPtr<ModuleCache> ModCache = createCrossProcessModuleCache ();
23822384 ASTWriter Writer (Stream, Buffer, *ModCache, {});
23832385 return serializeUnit (Writer, Buffer, getSema (), OS);
23842386}
0 commit comments