Skip to content

Commit

Permalink
Switch the LLVM error reporting on the new diagnostic system.
Browse files Browse the repository at this point in the history
The LLVM diagnostic are now wired-up in clang (since r200931),
thus the user experience will not be impacted by this change
anymore.

Related to <rdar://problem/15886697>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201915 91177308-0d34-0410-b5e6-96231b3b80d8
Quentin Colombet committed Feb 22, 2014
1 parent 8048c44 commit 341149a
Showing 1 changed file with 4 additions and 18 deletions.
22 changes: 4 additions & 18 deletions lib/IR/LLVMContext.cpp
Original file line number Diff line number Diff line change
@@ -115,17 +115,12 @@ void *LLVMContext::getDiagnosticContext() const {
}

void LLVMContext::emitError(const Twine &ErrorStr) {
emitError(0U, ErrorStr);
diagnose(DiagnosticInfoInlineAsm(ErrorStr));
}

void LLVMContext::emitError(const Instruction *I, const Twine &ErrorStr) {
unsigned LocCookie = 0;
if (const MDNode *SrcLoc = I->getMetadata("srcloc")) {
if (SrcLoc->getNumOperands() != 0)
if (const ConstantInt *CI = dyn_cast<ConstantInt>(SrcLoc->getOperand(0)))
LocCookie = CI->getZExtValue();
}
return emitError(LocCookie, ErrorStr);
assert (I && "Invalid instruction");
diagnose(DiagnosticInfoInlineAsm(*I, ErrorStr));
}

void LLVMContext::diagnose(const DiagnosticInfo &DI) {
@@ -154,16 +149,7 @@ void LLVMContext::diagnose(const DiagnosticInfo &DI) {
}

void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) {
// If there is no error handler installed, just print the error and exit.
if (pImpl->InlineAsmDiagHandler == 0) {
errs() << "error: " << ErrorStr << "\n";
exit(1);
}

// If we do have an error handler, we can report the error and keep going.
SMDiagnostic Diag("", SourceMgr::DK_Error, ErrorStr.str());

pImpl->InlineAsmDiagHandler(Diag, pImpl->InlineAsmDiagContext, LocCookie);
diagnose(DiagnosticInfoInlineAsm(LocCookie, ErrorStr));
}

//===----------------------------------------------------------------------===//

0 comments on commit 341149a

Please sign in to comment.