llvm-project/clang/lib/Basic
Juergen Ributzka f978743907 Reapply [VFS] Ignore broken symlinks in the directory iterator.
Modified the tests to accept any iteration order, to run only on Unix, and added
additional error reporting to investigate SystemZ bot issue.

The VFS directory iterator and recursive directory iterator behave differently
from the LLVM counterparts. Once the VFS iterators hit a broken symlink they
immediately abort. The LLVM counterparts don't stat entries unless they have to
descend into the next directory, which allows to recover from this issue by
clearing the error code and skipping to the next entry.

This change adds similar behavior to the VFS iterators. There should be no
change in current behavior in the current CLANG source base, because all
clients have loop exit conditions that also check the error code.

This fixes rdar://problem/30934619.

Differential Revision: https://reviews.llvm.org/D30768

llvm-svn: 297693
2017-03-14 00:14:40 +00:00
..
Attributes.cpp Ignore the "novtable" declspec when not using the Microsoft C++ ABI. 2015-07-20 22:57:31 +00:00
Builtins.cpp [OpenCL] Make OpenCL Builtins added according to the right version. 2016-07-04 16:07:18 +00:00
CMakeLists.txt [cmake] Use LLVM_CMAKE_PATH for GetSVN script 2016-10-19 12:21:39 +00:00
CharInfo.cpp
Cuda.cpp [CUDA] Fix "control reaches end of non-void function" warnings in Cuda.cpp. 2016-07-07 01:06:59 +00:00
Diagnostic.cpp Remove and replace DiagStatePoint tracking and lookup data structure. 2017-01-26 01:01:01 +00:00
DiagnosticIDs.cpp Remove and replace DiagStatePoint tracking and lookup data structure. 2017-01-26 01:01:01 +00:00
DiagnosticOptions.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
FileManager.cpp Turn FileManager DirectoryEntry::Name from raw pointer to StringRef (NFC) 2016-10-11 07:31:29 +00:00
FileSystemStatCache.cpp [VFS] Replace TimeValue usage with std::chrono 2016-11-09 10:52:22 +00:00
IdentifierTable.cpp [Sema][ObjC] Warn about 'performSelector' calls with selectors 2017-03-06 15:58:34 +00:00
LangOptions.cpp Do not print include_next/pragma once warnings when input is a header. 2016-10-27 14:17:10 +00:00
Module.cpp Modules: Use hash of PCM content for SIGNATURE 2017-03-13 18:45:08 +00:00
ObjCRuntime.cpp Watch and TV OS: wire up basic ABI choices 2015-10-30 16:30:36 +00:00
OpenMPKinds.cpp [OpenMP] Prepare Sema for initial implementation for pragma 'distribute parallel for' 2017-02-17 21:29:13 +00:00
OperatorPrecedence.cpp [OpenCL] Adding reserved operator logical xor for OpenCL 2016-02-03 15:17:14 +00:00
SanitizerBlacklist.cpp Replace double-negated !SourceLocation.isInvalid() with SourceLocation.isValid(). 2015-10-03 05:15:57 +00:00
Sanitizers.cpp Pull trivial SanitizerSet methods into the header. 2015-07-14 15:34:19 +00:00
SourceLocation.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
SourceManager.cpp Drop a redundant ".get()" call (NFC) 2016-10-18 18:19:02 +00:00
TargetInfo.cpp [inline-asm]No error for conflict between inputs\outputs and clobber list 2016-12-26 12:23:42 +00:00
Targets.cpp AMDGPU: Make 0 the private nullptr value 2017-03-13 19:47:53 +00:00
TokenKinds.cpp
Version.cpp Revert r223578, perf data collection depends on the old symbol name. 2014-12-10 23:49:03 +00:00
VersionTuple.cpp MS ABI: Implement driver-level support for thread-safe statics 2015-03-22 08:39:22 +00:00
VirtualFileSystem.cpp Reapply [VFS] Ignore broken symlinks in the directory iterator. 2017-03-14 00:14:40 +00:00
Warnings.cpp