You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.246
Former-commit-id: 0c7ce5b1a7851e13f22acfd379b7f9fb304e4833
This commit is contained in:
parent
a7724cd563
commit
279aa8f685
84
external/llvm/lib/TableGen/Error.cpp
vendored
Normal file
84
external/llvm/lib/TableGen/Error.cpp
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
//===- Error.cpp - tblgen error handling helper routines --------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file contains error handling helper routines to pretty-print diagnostic
|
||||
// messages from tblgen.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/TableGen/Error.h"
|
||||
#include "llvm/ADT/Twine.h"
|
||||
#include "llvm/Support/Signals.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include <cstdlib>
|
||||
|
||||
namespace llvm {
|
||||
|
||||
SourceMgr SrcMgr;
|
||||
unsigned ErrorsPrinted = 0;
|
||||
|
||||
static void PrintMessage(ArrayRef<SMLoc> Loc, SourceMgr::DiagKind Kind,
|
||||
const Twine &Msg) {
|
||||
// Count the total number of errors printed.
|
||||
// This is used to exit with an error code if there were any errors.
|
||||
if (Kind == SourceMgr::DK_Error)
|
||||
++ErrorsPrinted;
|
||||
|
||||
SMLoc NullLoc;
|
||||
if (Loc.empty())
|
||||
Loc = NullLoc;
|
||||
SrcMgr.PrintMessage(Loc.front(), Kind, Msg);
|
||||
for (unsigned i = 1; i < Loc.size(); ++i)
|
||||
SrcMgr.PrintMessage(Loc[i], SourceMgr::DK_Note,
|
||||
"instantiated from multiclass");
|
||||
}
|
||||
|
||||
void PrintNote(ArrayRef<SMLoc> NoteLoc, const Twine &Msg) {
|
||||
PrintMessage(NoteLoc, SourceMgr::DK_Note, Msg);
|
||||
}
|
||||
|
||||
void PrintWarning(ArrayRef<SMLoc> WarningLoc, const Twine &Msg) {
|
||||
PrintMessage(WarningLoc, SourceMgr::DK_Warning, Msg);
|
||||
}
|
||||
|
||||
void PrintWarning(const char *Loc, const Twine &Msg) {
|
||||
SrcMgr.PrintMessage(SMLoc::getFromPointer(Loc), SourceMgr::DK_Warning, Msg);
|
||||
}
|
||||
|
||||
void PrintWarning(const Twine &Msg) {
|
||||
errs() << "warning:" << Msg << "\n";
|
||||
}
|
||||
|
||||
void PrintError(ArrayRef<SMLoc> ErrorLoc, const Twine &Msg) {
|
||||
PrintMessage(ErrorLoc, SourceMgr::DK_Error, Msg);
|
||||
}
|
||||
|
||||
void PrintError(const char *Loc, const Twine &Msg) {
|
||||
SrcMgr.PrintMessage(SMLoc::getFromPointer(Loc), SourceMgr::DK_Error, Msg);
|
||||
}
|
||||
|
||||
void PrintError(const Twine &Msg) {
|
||||
errs() << "error:" << Msg << "\n";
|
||||
}
|
||||
|
||||
void PrintFatalError(const Twine &Msg) {
|
||||
PrintError(Msg);
|
||||
// The following call runs the file cleanup handlers.
|
||||
sys::RunInterruptHandlers();
|
||||
std::exit(1);
|
||||
}
|
||||
|
||||
void PrintFatalError(ArrayRef<SMLoc> ErrorLoc, const Twine &Msg) {
|
||||
PrintError(ErrorLoc, Msg);
|
||||
// The following call runs the file cleanup handlers.
|
||||
sys::RunInterruptHandlers();
|
||||
std::exit(1);
|
||||
}
|
||||
|
||||
} // end namespace llvm
|
Reference in New Issue
Block a user