llvm-project/clang/lib/Basic
Alex Lorenz ce4518f21d DiagnosticsEngine should clear DelayedDiagID before reporting the
delayed diagnostic

This fix avoids an infinite recursion that was uncovered in one of our internal
tests by r301992. The testcase is the most reduced version of that
auto-generated test.

This is an improved version of the reverted commit r302037. The previous fix
actually managed to expose another subtle bug whereby `fatal_too_many_errors`
error was reported twice, with the second report setting the
`FatalErrorOccurred` flag. That prevented the notes that followed the diagnostic
the caused `fatal_too_many_errors` to be emitted. This commit ensures that notes
that follow `fatal_too_many_errors` but that belong to the diagnostic that
caused `fatal_too_many_errors` won't be emitted by setting the
`FatalErrorOccurred` when emitting `fatal_too_many_errors`.

rdar://31962618

llvm-svn: 302151
2017-05-04 13:56:51 +00:00
..
Attributes.cpp Add #pragma clang attribute 2017-04-18 14:33:39 +00:00
Builtins.cpp [OpenCL] Make OpenCL Builtins added according to the right version. 2016-07-04 16:07:18 +00:00
CMakeLists.txt [XRay] Add -fxray-{always,never}-instrument= flags to clang 2017-03-30 00:29:36 +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 DiagnosticsEngine should clear DelayedDiagID before reporting the 2017-05-04 13:56:51 +00:00
DiagnosticIDs.cpp DiagnosticsEngine should clear DelayedDiagID before reporting the 2017-05-04 13:56:51 +00:00
DiagnosticOptions.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
FileManager.cpp FileManager: mark virtual file entries as valid entries 2017-03-28 09:18:05 +00:00
FileSystemStatCache.cpp [VFS] Replace TimeValue usage with std::chrono 2016-11-09 10:52:22 +00:00
IdentifierTable.cpp [Parser][ObjC++] Improve diagnostics and recovery when C++ keywords are used 2017-04-11 15:01:53 +00:00
LangOptions.cpp [XRay] Add -fxray-{always,never}-instrument= flags to clang 2017-03-30 00:29:36 +00:00
MemoryBufferCache.cpp Reapply "Modules: Cache PCMs in memory and avoid a use-after-free" 2017-03-20 17:58:26 +00:00
Module.cpp Modular Codegen: Add/use a bit in serialized function definitions to track whether they are the subject of modular codegen 2017-04-11 20:46:34 +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 to support combined constructs with omp distribute and omp for 2017-04-20 00:39:39 +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 [Basic] getColumnNumber returns location of CR+LF on Windows 2017-04-06 18:36:50 +00:00
TargetInfo.cpp Move setting of LangOpts based on target flags out of CompilerInstance 2017-03-22 06:36:09 +00:00
Targets.cpp Darwin: Define __STDC_NO_THREADS__ on Darwin targets 2017-04-27 01:47:22 +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 Use -Rblah, not -Wblah, to control remark diagnostics. This was always the 2014-08-07 00:24:21 +00:00
XRayLists.cpp [XRay] Add -fxray-{always,never}-instrument= flags to clang 2017-03-30 00:29:36 +00:00