diff options
author | Douglas Gregor <dgregor@apple.com> | 2013-02-06 18:08:37 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2013-02-06 18:08:37 +0000 |
commit | 8e31d064e7543dde6e4205d5b27a95c96a4c3a4e (patch) | |
tree | 45478d16f16d92ce1c2381315534c029c7f544be /lib/Serialization/GlobalModuleIndex.cpp | |
parent | 4ed7f3e003c906d9fdb92a9484feeb8ac6e28e2f (diff) |
Eliminate a race condition with the global module index.
Essentially, a module file on disk could change size between the time
we stat() it and the time we open it, and we need to be robust against
such a problem.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174529 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization/GlobalModuleIndex.cpp')
-rw-r--r-- | lib/Serialization/GlobalModuleIndex.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Serialization/GlobalModuleIndex.cpp b/lib/Serialization/GlobalModuleIndex.cpp index 72165bcfc5..5b2ab913fa 100644 --- a/lib/Serialization/GlobalModuleIndex.cpp +++ b/lib/Serialization/GlobalModuleIndex.cpp @@ -536,7 +536,8 @@ namespace { bool GlobalModuleIndexBuilder::loadModuleFile(const FileEntry *File) { // Open the module file. OwningPtr<llvm::MemoryBuffer> Buffer; - Buffer.reset(FileMgr.getBufferForFile(File)); + std::string ErrorStr; + Buffer.reset(FileMgr.getBufferForFile(File, &ErrorStr, /*isVolatile=*/true)); if (!Buffer) { return true; } |