ilyakuteev created this revision. ilyakuteev requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D97850 Files: clang/lib/Serialization/ModuleManager.cpp Index: clang/lib/Serialization/ModuleManager.cpp =================================================================== --- clang/lib/Serialization/ModuleManager.cpp +++ clang/lib/Serialization/ModuleManager.cpp @@ -470,6 +470,12 @@ Optional<FileEntryRef> FileOrErr = expectedToOptional(FileMgr.getFileRef(FileName, /*OpenFile=*/true, /*CacheFailure=*/false)); + if (FileOrErr) { + // On Linux ext4 FileManager's inode caching system does not + // provide us correct behaviour for ModuleCache directories. + // inode can be reused after PCM delete resulting in cache misleading. + FileOrErr = FileMgr.getBypassFile(*FileOrErr); + } if (!FileOrErr) return false;
Index: clang/lib/Serialization/ModuleManager.cpp =================================================================== --- clang/lib/Serialization/ModuleManager.cpp +++ clang/lib/Serialization/ModuleManager.cpp @@ -470,6 +470,12 @@ Optional<FileEntryRef> FileOrErr = expectedToOptional(FileMgr.getFileRef(FileName, /*OpenFile=*/true, /*CacheFailure=*/false)); + if (FileOrErr) { + // On Linux ext4 FileManager's inode caching system does not + // provide us correct behaviour for ModuleCache directories. + // inode can be reused after PCM delete resulting in cache misleading. + FileOrErr = FileMgr.getBypassFile(*FileOrErr); + } if (!FileOrErr) return false;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits