For redirected file entries, FileEntryRef::getDir() returns the parent directory entry of the target file entry. This differs from FileEntry::getDir() that always returns the parent directory that was last used to look up that file.
After switching from FileEntry to FileEntryRef for umbrella headers in D142113, this discrepancy became observable and caused Clang to emit incorrect diagnostics.
This patch changes Clang so that it always associates FileEntryRef with the parent directory that was used to look it up. This brings its behavior closer to FileEntry, but without the hacky mutation.
This also ensures that llvm::sys::path::parent_path(FileRef->getNameAsRequested()) == FileRef->getDir()->getName(). Previously, FileRef->getDir() would fall underneath the redirecting VFS into the world of on-disk paths.
clang-format not found in user’s local PATH; not linting file.