Revert "Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368>"

This reverts r171041. This was a nice idea that didn't work out well.
Clang warnings need to be associated with warning groups so that they can
be selectively disabled, promoted to errors, etc. This simplistic patch didn't
allow for that. Enhancing it to provide some way for the backend to specify
a front-end warning type seems like overkill for the few uses of this, at
least for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174748 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bob Wilson
2013-02-08 21:48:29 +00:00
parent b2d1275188
commit 58446916b7
8 changed files with 31 additions and 75 deletions

View File

@@ -95,30 +95,16 @@ 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) {
@@ -132,19 +118,6 @@ void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) {
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);
}
//===----------------------------------------------------------------------===//
// Metadata Kind Uniquing
//===----------------------------------------------------------------------===//