]> granicus.if.org Git - clang/commit
Invalidate the file system cache entries for files that may rebuild
authorBen Langmuir <blangmuir@apple.com>
Fri, 30 May 2014 17:42:15 +0000 (17:42 +0000)
committerBen Langmuir <blangmuir@apple.com>
Fri, 30 May 2014 17:42:15 +0000 (17:42 +0000)
commitd7d0010c54810582af3f234bd4fa7004ff028304
tree3d648cbd3ff1182bb59df364f57c5056290cdb98
parent6ecc88615e99eaac5bfeb28207416e93118bbfa7
Invalidate the file system cache entries for files that may rebuild

I thought we could get away without this, but it means that the
FileEntry objects actually refer to the wrong files, since pcms are not
updated inplace, they are atomically renamed into place after compiling
a module.

So we are close to the original behaviour of invalidating the cache for
all modules being removed, but now we should only invalidate the ones
that depend on whichever module failed to load.

Unfortunately I haven't come up with a new test that didn't require
a race between parallel invocations of clang.

<rdar://problem/17038180>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209910 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Serialization/ModuleManager.cpp