commit da2aa59f1ae779df67c91f4187680bf240387b2b
parent 7e4e649fcc2a29ef6cf59424cf3ea0cf66fc210d
Author: Kyle Milz <kyle@0x30.net>
Date: Thu, 12 Jan 2017 23:33:07 -0700
inst: add back logging for clang warnings/errors
Diffstat:
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/inst_frontend.cc b/inst_frontend.cc
@@ -20,13 +20,14 @@
#include <sys/stat.h> // stat
-#include <clang/Frontend/TextDiagnosticBuffer.h>
+#include <clang/Frontend/TextDiagnosticPrinter.h>
#include <clang/Tooling/CommonOptionsParser.h>
#include <clang/Tooling/Tooling.h>
#include <cstdio> // tmpnam
#include <cstring> // strcmp
#include <fstream> // ifstream, ofstream
#include <iostream> // cerr
+#include <llvm/Support/raw_os_ostream.h>
#include <sstream> // ostringstream
#ifdef _WIN32
@@ -358,11 +359,15 @@ InstFrontend::instrument()
Tool(op.getCompilations(), op.getSourcePathList());
//
- // These diagnostics aren't too important because the input code could
- // be terrible.
+ // Send tool diagnostics to the log with a prefix to tell it from the
+ // rest.
//
- clang::TextDiagnosticBuffer diag_buffer;
- Tool.setDiagnosticConsumer(&diag_buffer);
+ clang::DiagnosticOptions diag_opts;
+ llvm::raw_os_ostream raw_ostream(m_log);
+ clang::TextDiagnosticPrinter *printer =
+ new clang::TextDiagnosticPrinter(raw_ostream, &diag_opts);
+ printer->setPrefix("clang");
+ Tool.setDiagnosticConsumer(printer);
std::unique_ptr<InstrumentActionFactory> f =
llvm::make_unique<InstrumentActionFactory>(m_log, m_is_citruninst, m_source_files);