summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/DiagnosticIDs.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-07-06 17:40:26 +0000
committerDouglas Gregor <dgregor@apple.com>2011-07-06 17:40:26 +0000
commit8a60bbe13f1d75daf0fc1812e17252a0a6003352 (patch)
treeec98716dff236141f582661abff8252f0ceb6d84 /clang/lib/Basic/DiagnosticIDs.cpp
parent6ee1d2bd78ea24b2dc26656b97a9701ad7913883 (diff)
downloadbcm5719-llvm-8a60bbe13f1d75daf0fc1812e17252a0a6003352.tar.gz
bcm5719-llvm-8a60bbe13f1d75daf0fc1812e17252a0a6003352.zip
Keep track of when "unrecoverable" errors occur, then allow
clang_saveTranslationUnit() to save a PCH file if the only errors it contains are recoverable errors. Fixes <rdar://problem/9727804>. llvm-svn: 134503
Diffstat (limited to 'clang/lib/Basic/DiagnosticIDs.cpp')
-rw-r--r--clang/lib/Basic/DiagnosticIDs.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Basic/DiagnosticIDs.cpp b/clang/lib/Basic/DiagnosticIDs.cpp
index b5b48cb2131..147ba7e99e7 100644
--- a/clang/lib/Basic/DiagnosticIDs.cpp
+++ b/clang/lib/Basic/DiagnosticIDs.cpp
@@ -686,9 +686,11 @@ bool DiagnosticIDs::ProcessDiag(Diagnostic &Diag) const {
if (DiagLevel >= DiagnosticIDs::Error) {
Diag.TrapErrorOccurred = true;
- if (isUnrecoverable(DiagID))
+ if (isUnrecoverable(DiagID)) {
Diag.TrapUnrecoverableErrorOccurred = true;
-
+ Diag.UnrecoverableErrorOccurred = true;
+ }
+
if (Diag.Client->IncludeInDiagnosticCounts()) {
Diag.ErrorOccurred = true;
++Diag.NumErrors;
@@ -733,7 +735,7 @@ bool DiagnosticIDs::isUnrecoverable(unsigned DiagID) const {
}
// Only errors may be unrecoverable.
- if (getBuiltinDiagClass(DiagID) < DiagnosticIDs::Error)
+ if (getBuiltinDiagClass(DiagID) < CLASS_ERROR)
return false;
if (DiagID == diag::err_unavailable ||
OpenPOWER on IntegriCloud