Perform an Extra Consistency Check When Searching The ModuleManager's Cache For Implicit Modules #1718
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This reverts out the failed approach in #1651 which did nothing to address the symptoms of inode reuse. The patch on top of this provides an alternative approach: For implicit module builds check the name that we expect an entry to be filed under in the Modules cache actually matches the one we're asked to look for. Note that we can only do this for implicit module builds because the paths that these files are looked up under are fully under the control of Clang. For explicit module builds, this consistency check will fail on OSes that use different path forms than the *NIXes (e.g. Windows) because of canonicalization issues.
rdar://48443680