From 84483d247ffd8343e46d4c47f78b58ed3a68a5b7 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Tue, 3 Mar 2015 21:11:13 +0000 Subject: [PATCH] Correctly handle -pass-remarks in the gold plugin. llvm-svn: 231132 --- llvm/test/tools/gold/remarks.ll | 17 +++++++++++++++++ llvm/tools/gold/gold-plugin.cpp | 7 ++----- 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 llvm/test/tools/gold/remarks.ll diff --git a/llvm/test/tools/gold/remarks.ll b/llvm/test/tools/gold/remarks.ll new file mode 100644 index 0000000..458f977 --- /dev/null +++ b/llvm/test/tools/gold/remarks.ll @@ -0,0 +1,17 @@ +; RUN: llvm-as %s -o %t.o + +; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \ +; RUN: -plugin-opt=-pass-remarks=inline %t.o -o %t2.o 2>&1 | FileCheck %s + +; CHECK: f inlined into _start +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +define i32 @f() { + ret i32 0 +} + +define i32 @_start() { + %call = call i32 @f() + ret i32 %call +} diff --git a/llvm/tools/gold/gold-plugin.cpp b/llvm/tools/gold/gold-plugin.cpp index 2aec4e2..9fcc83b 100644 --- a/llvm/tools/gold/gold-plugin.cpp +++ b/llvm/tools/gold/gold-plugin.cpp @@ -296,12 +296,9 @@ static void diagnosticHandler(const DiagnosticInfo &DI, void *Context) { Level = LDPL_WARNING; break; case DS_Note: + case DS_Remark: Level = LDPL_INFO; break; - // FIXME: Just ignore remarks for now. They are always passed by - // if there is a custom diagnostic handler, so we get flooded. - case DS_Remark: - return; } message(Level, "LLVM gold plugin: %s", ErrStorage.c_str()); } @@ -812,7 +809,7 @@ static ld_plugin_status allSymbolsReadHook(raw_fd_ostream *ApiFile) { return LDPS_OK; LLVMContext Context; - Context.setDiagnosticHandler(diagnosticHandler); + Context.setDiagnosticHandler(diagnosticHandler, nullptr, false); std::unique_ptr Combined(new Module("ld-temp.o", Context)); Linker L(Combined.get()); -- 2.7.4