diff options
Diffstat (limited to 'lib/IR/LLVMContext.cpp')
-rw-r--r-- | lib/IR/LLVMContext.cpp | 64 |
1 files changed, 20 insertions, 44 deletions
diff --git a/lib/IR/LLVMContext.cpp b/lib/IR/LLVMContext.cpp index 282779c..b73cd03 100644 --- a/lib/IR/LLVMContext.cpp +++ b/lib/IR/LLVMContext.cpp @@ -73,55 +73,43 @@ void LLVMContext::removeModule(Module *M) { // Recoverable Backend Errors //===----------------------------------------------------------------------===// -void LLVMContext::setDiagnosticHandler(DiagHandlerTy DiagHandler, - void *DiagContext) { - pImpl->DiagHandler = DiagHandler; - pImpl->DiagContext = DiagContext; +void LLVMContext:: +setInlineAsmDiagnosticHandler(InlineAsmDiagHandlerTy DiagHandler, + void *DiagContext) { + pImpl->InlineAsmDiagHandler = DiagHandler; + pImpl->InlineAsmDiagContext = DiagContext; } -/// getDiagnosticHandler - Return the diagnostic handler set by -/// setDiagnosticHandler. -LLVMContext::DiagHandlerTy LLVMContext::getDiagnosticHandler() const { - return pImpl->DiagHandler; +/// getInlineAsmDiagnosticHandler - Return the diagnostic handler set by +/// setInlineAsmDiagnosticHandler. +LLVMContext::InlineAsmDiagHandlerTy +LLVMContext::getInlineAsmDiagnosticHandler() const { + return pImpl->InlineAsmDiagHandler; } -/// getDiagnosticContext - Return the diagnostic context set by -/// setDiagnosticHandler. -void *LLVMContext::getDiagnosticContext() const { - return pImpl->DiagContext; +/// getInlineAsmDiagnosticContext - Return the diagnostic context set by +/// setInlineAsmDiagnosticHandler. +void *LLVMContext::getInlineAsmDiagnosticContext() const { + return pImpl->InlineAsmDiagContext; } void LLVMContext::emitError(const Twine &ErrorStr) { emitError(0U, ErrorStr); } -void LLVMContext::emitWarning(const Twine &ErrorStr) { - emitWarning(0U, ErrorStr); -} - -static unsigned getSrcLocation(const Instruction *I) { +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 LocCookie; -} - -void LLVMContext::emitError(const Instruction *I, const Twine &ErrorStr) { - unsigned LocCookie = getSrcLocation(I); return emitError(LocCookie, ErrorStr); } -void LLVMContext::emitWarning(const Instruction *I, const Twine &ErrorStr) { - unsigned LocCookie = getSrcLocation(I); - return emitWarning(LocCookie, ErrorStr); -} - void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) { // If there is no error handler installed, just print the error and exit. - if (pImpl->DiagHandler == 0) { + if (pImpl->InlineAsmDiagHandler == 0) { errs() << "error: " << ErrorStr << "\n"; exit(1); } @@ -129,20 +117,7 @@ void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) { // If we do have an error handler, we can report the error and keep going. SMDiagnostic Diag("", SourceMgr::DK_Error, ErrorStr.str()); - pImpl->DiagHandler(Diag, pImpl->DiagContext, LocCookie); -} - -void LLVMContext::emitWarning(unsigned LocCookie, const Twine &ErrorStr) { - // If there is no handler installed, just print the warning. - if (pImpl->DiagHandler == 0) { - errs() << "warning: " << ErrorStr << "\n"; - return; - } - - // If we do have a handler, we can report the warning. - SMDiagnostic Diag("", SourceMgr::DK_Warning, ErrorStr.str()); - - pImpl->DiagHandler(Diag, pImpl->DiagContext, LocCookie); + pImpl->InlineAsmDiagHandler(Diag, pImpl->InlineAsmDiagContext, LocCookie); } //===----------------------------------------------------------------------===// @@ -155,12 +130,13 @@ static bool isValidName(StringRef MDName) { if (MDName.empty()) return false; - if (!std::isalpha(MDName[0])) + if (!std::isalpha(static_cast<unsigned char>(MDName[0]))) return false; for (StringRef::iterator I = MDName.begin() + 1, E = MDName.end(); I != E; ++I) { - if (!std::isalnum(*I) && *I != '_' && *I != '-' && *I != '.') + if (!std::isalnum(static_cast<unsigned char>(*I)) && *I != '_' && + *I != '-' && *I != '.') return false; } return true; |