Reapply [VFS] Skip non existent files from the VFS treeReapply r278457 with test fixed to not abouse fs case sensitivity.When the VFS uses a YAML file, the real file path for avirtual file is de
Reapply [VFS] Skip non existent files from the VFS treeReapply r278457 with test fixed to not abouse fs case sensitivity.When the VFS uses a YAML file, the real file path for avirtual file is described in the "external-contents" field. Example: ... { 'type': 'file', 'name': 'a.h', 'external-contents': '/a/b/c/a.h' }Currently, when parsing umbrella directories, we usevfs::recursive_directory_iterator to gather the header files to generate theequivalent modules for. If the external contents for a header does not exist,we currently are unable to build a module, since the VFSvfs::recursive_directory_iterator will fail when it finds an entry without areliable real path.Since the YAML file could be prepared ahead of time and shared amongdifferent compiler invocations, an entry might not yet have a reliablepath in 'external-contents', breaking the iteration.Give the VFS the capability to skip such entries whenever'ignore-non-existent-contents' property is set in the YAML file.rdar://problem/27531549llvm-svn: 278543
show more ...
Revert "[VFS] Skip non existent files from the VFS tree"Breaking bots:http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/27281/This reverts commit r278457.llvm-svn: 278
Revert "[VFS] Skip non existent files from the VFS tree"Breaking bots:http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/27281/This reverts commit r278457.llvm-svn: 278459
[VFS] Skip non existent files from the VFS treeWhen the VFS uses a YAML file, the real file path for avirtual file is described in the "external-contents" field. Example: ... { 'type': '
[VFS] Skip non existent files from the VFS treeWhen the VFS uses a YAML file, the real file path for avirtual file is described in the "external-contents" field. Example: ... { 'type': 'file', 'name': 'a.h', 'external-contents': '/a/b/c/a.h' }Currently, when parsing umbrella directories, we usevfs::recursive_directory_iterator to gather the header files to generate theequivalent modules for. If the external contents for a header does not exist,we currently are unable to build a module, since the VFSvfs::recursive_directory_iterator will fail when it finds an entry without areliable real path.Since the YAML file could be prepared ahead of time and shared amongdifferent compiler invocations, an entry might not yet have a reliablepath in 'external-contents', breaking the iteration.Give the VFS the capability to skip such entries whenever'ignore-non-existent-contents' property is set in the YAML file.rdar://problem/27531549llvm-svn: 278457