Add TextDiagnosticPrinter::setPrefix, for adding a string to prefix diagnostic

messages with.

llvm-svn: 97101
This commit is contained in:
Daniel Dunbar 2010-02-25 03:23:40 +00:00
parent ec4e1b67bf
commit aa7d55a3fe
2 changed files with 12 additions and 1 deletions

View File

@ -37,11 +37,19 @@ class TextDiagnosticPrinter : public DiagnosticClient {
unsigned LastCaretDiagnosticWasNote : 1;
unsigned OwnsOutputStream : 1;
/// A string to prefix to error messages.
std::string Prefix;
public:
TextDiagnosticPrinter(llvm::raw_ostream &os, const DiagnosticOptions &diags,
bool OwnsOutputStream = false);
virtual ~TextDiagnosticPrinter();
/// setPrefix - Set the diagnostic printer prefix string, which will be
/// printed at the start of any diagnostics. If empty, no prefix string is
/// used.
void setPrefix(std::string Value) { Prefix = Value; }
void BeginSourceFile(const LangOptions &LO, const Preprocessor *PP) {
LangOpts = &LO;
}

View File

@ -31,7 +31,7 @@ static const enum llvm::raw_ostream::Colors warningColor =
llvm::raw_ostream::MAGENTA;
static const enum llvm::raw_ostream::Colors errorColor = llvm::raw_ostream::RED;
static const enum llvm::raw_ostream::Colors fatalColor = llvm::raw_ostream::RED;
// used for changing only the bold attribute
// Used for changing only the bold attribute.
static const enum llvm::raw_ostream::Colors savedColor =
llvm::raw_ostream::SAVEDCOLOR;
@ -682,6 +682,9 @@ void TextDiagnosticPrinter::HandleDiagnostic(Diagnostic::Level Level,
// file+line+column number prefix is.
uint64_t StartOfLocationInfo = OS.tell();
if (!Prefix.empty())
OS << Prefix << ": ";
// If the location is specified, print out a file/line/col and include trace
// if enabled.
if (Info.getLocation().isValid()) {