diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-04-14 22:19:45 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-04-14 22:19:45 +0000 |
| commit | 2d2d90750cfc4e11c3879c4bf7f913980a325575 (patch) | |
| tree | 2d78c089ab73df78b14d203527a117fa339e9d26 /clang/lib/Frontend | |
| parent | 99bfbca6ec232c0ee876c5843ffe63fcd9ec724b (diff) | |
| download | bcm5719-llvm-2d2d90750cfc4e11c3879c4bf7f913980a325575.tar.gz bcm5719-llvm-2d2d90750cfc4e11c3879c4bf7f913980a325575.zip | |
Once we've emitted a fatal diagnostic, keep counting errors but with a
separate count of "suppressed" errors. This way, semantic analysis
bits that depend on the error count to determine whether problems
occured (e.g., some template argument deduction failures, jump-scope
checking) will not get confused.
The actual problem here is that a missing #include (which is a fatal
error) could cause the jump-scope checker to run on invalid code,
which it is not prepared to do. Trivial fix for both
<rdar://problem/7775941> and <rdar://problem/7775709>.
llvm-svn: 101297
Diffstat (limited to 'clang/lib/Frontend')
| -rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 685e6c281cc..5ed9c409a3d 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -515,7 +515,8 @@ bool CompilerInstance::ExecuteAction(FrontendAction &Act) { if (getDiagnosticOpts().ShowCarets) { unsigned NumWarnings = getDiagnostics().getNumWarnings(); - unsigned NumErrors = getDiagnostics().getNumErrors(); + unsigned NumErrors = getDiagnostics().getNumErrors() - + getDiagnostics().getNumErrorsSuppressed(); if (NumWarnings) OS << NumWarnings << " warning" << (NumWarnings == 1 ? "" : "s"); |

