From fed4c6eb16fb6de35b715162439c5df10298bfac Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Thu, 19 Nov 2015 10:43:44 +0000 Subject: [PATCH] gold-plugin.cpp: Fix diagnosticHandler corresponding to r253540. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253553 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/gold/gold-plugin.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/gold/gold-plugin.cpp b/tools/gold/gold-plugin.cpp index ecf12f8b08f..116df7903ee 100644 --- a/tools/gold/gold-plugin.cpp +++ b/tools/gold/gold-plugin.cpp @@ -297,7 +297,7 @@ static bool shouldSkip(uint32_t Symflags) { return false; } -static void diagnosticHandler(const DiagnosticInfo &DI, void *Context) { +static void diagnosticHandler(const DiagnosticInfo &DI) { if (const auto *BDI = dyn_cast(&DI)) { std::error_code EC = BDI->getError(); if (EC == BitcodeError::InvalidBitcodeSignature) @@ -327,6 +327,11 @@ static void diagnosticHandler(const DiagnosticInfo &DI, void *Context) { message(Level, "LLVM gold plugin: %s", ErrStorage.c_str()); } +static void diagnosticHandlerForContext(const DiagnosticInfo &DI, + void *Context) { + diagnosticHandler(DI); +} + /// Called by gold to see whether this file is one that our plugin can handle. /// We'll try to open it and register all the symbols with add_symbol if /// possible. @@ -361,7 +366,7 @@ static ld_plugin_status claim_file_hook(const ld_plugin_input_file *file, BufferRef = Buffer->getMemBufferRef(); } - Context.setDiagnosticHandler(diagnosticHandler); + Context.setDiagnosticHandler(diagnosticHandlerForContext); ErrorOr> ObjOrErr = object::IRObjectFile::create(BufferRef, Context); std::error_code EC = ObjOrErr.getError(); @@ -617,7 +622,7 @@ getFunctionIndexForFile(LLVMContext &Context, claimed_file &F, MemoryBufferRef BufferRef(StringRef((const char *)View, Info.filesize), Info.name); ErrorOr> ObjOrErr = - object::FunctionIndexObjectFile::create(BufferRef, Context); + object::FunctionIndexObjectFile::create(BufferRef, diagnosticHandler); if (std::error_code EC = ObjOrErr.getError()) message(LDPL_FATAL, "Could not read function index bitcode from file : %s", @@ -892,7 +897,7 @@ static ld_plugin_status allSymbolsReadHook(raw_fd_ostream *ApiFile) { return LDPS_OK; LLVMContext Context; - Context.setDiagnosticHandler(diagnosticHandler, nullptr, true); + Context.setDiagnosticHandler(diagnosticHandlerForContext, nullptr, true); // If we are doing ThinLTO compilation, simply build the combined // function index/summary and emit it. We don't need to parse the modules -- 2.34.1