summaryrefslogtreecommitdiffstats
path: root/llvm/lib/LTO/LTOCodeGenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/LTO/LTOCodeGenerator.cpp')
-rw-r--r--llvm/lib/LTO/LTOCodeGenerator.cpp24
1 files changed, 8 insertions, 16 deletions
diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp
index ee9c70126b8..8ad3cccf8d4 100644
--- a/llvm/lib/LTO/LTOCodeGenerator.cpp
+++ b/llvm/lib/LTO/LTOCodeGenerator.cpp
@@ -622,8 +622,12 @@ void LTOCodeGenerator::parseCodeGenDebugOptions() {
}
}
+void LTOCodeGenerator::DiagnosticHandler(const DiagnosticInfo &DI,
+ void *Context) {
+ ((LTOCodeGenerator *)Context)->DiagnosticHandler2(DI);
+}
-void LTOCodeGenerator::DiagnosticHandler(const DiagnosticInfo &DI) {
+void LTOCodeGenerator::DiagnosticHandler2(const DiagnosticInfo &DI) {
// Map the LLVM internal diagnostic severity to the LTO diagnostic severity.
lto_codegen_diagnostic_severity_t Severity;
switch (DI.getSeverity()) {
@@ -653,29 +657,17 @@ void LTOCodeGenerator::DiagnosticHandler(const DiagnosticInfo &DI) {
(*DiagHandler)(Severity, MsgStorage.c_str(), DiagContext);
}
-namespace {
-struct LTODiagnosticHandler : public DiagnosticHandler {
- LTOCodeGenerator *CodeGenerator;
- LTODiagnosticHandler(LTOCodeGenerator *CodeGenPtr)
- : CodeGenerator(CodeGenPtr) {}
- bool handleDiagnostics(const DiagnosticInfo &DI) override {
- CodeGenerator->DiagnosticHandler(DI);
- return true;
- }
-};
-}
-
void
LTOCodeGenerator::setDiagnosticHandler(lto_diagnostic_handler_t DiagHandler,
void *Ctxt) {
this->DiagHandler = DiagHandler;
this->DiagContext = Ctxt;
if (!DiagHandler)
- return Context.setDiagnosticHandler(nullptr);
+ return Context.setDiagnosticHandler(nullptr, nullptr);
// Register the LTOCodeGenerator stub in the LLVMContext to forward the
// diagnostic to the external DiagHandler.
- Context.setDiagnosticHandler(llvm::make_unique<LTODiagnosticHandler>(this),
- true);
+ Context.setDiagnosticHandler(LTOCodeGenerator::DiagnosticHandler, this,
+ /* RespectFilters */ true);
}
namespace {
OpenPOWER on IntegriCloud