diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/IR/LLVMContext.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/IR/LLVMContext.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/contrib/llvm-project/llvm/lib/IR/LLVMContext.cpp b/contrib/llvm-project/llvm/lib/IR/LLVMContext.cpp index 8ddf51537ec1..57077e786efc 100644 --- a/contrib/llvm-project/llvm/lib/IR/LLVMContext.cpp +++ b/contrib/llvm-project/llvm/lib/IR/LLVMContext.cpp @@ -256,10 +256,13 @@ void LLVMContext::diagnose(const DiagnosticInfo &DI) { RS->emit(*OptDiagBase); // If there is a report handler, use it. - if (pImpl->DiagHandler && - (!pImpl->RespectDiagnosticFilters || isDiagnosticEnabled(DI)) && - pImpl->DiagHandler->handleDiagnostics(DI)) - return; + if (pImpl->DiagHandler) { + if (DI.getSeverity() == DS_Error) + pImpl->DiagHandler->HasErrors = true; + if ((!pImpl->RespectDiagnosticFilters || isDiagnosticEnabled(DI)) && + pImpl->DiagHandler->handleDiagnostics(DI)) + return; + } if (!isDiagnosticEnabled(DI)) return; |
