1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 12:41:49 +01:00

[llvm-link] Use WithColor for printing errors

Use convenience helpers in WithColor to print errors and warnings.

Differential revision: https://reviews.llvm.org/D45667

llvm-svn: 330261
This commit is contained in:
Jonas Devlieghere 2018-04-18 14:41:47 +00:00
parent 48396f05b6
commit 0c51abfc0d
6 changed files with 29 additions and 22 deletions

View File

@ -11,14 +11,14 @@
; warnings are issued when the Triples differ only in version numbers.
; CHECK1: target triple = "x86_64-apple-macosx10.10.0"
; WARN1-NOT: WARNING
; WARN1-NOT: warning
; CHECK2: target triple = "x86_64-apple-macosx10.9.0"
; WARN2-NOT: WARNING
; WARN2-NOT: warning
; i386 and x86_64 map to different ArchType enums.
; WARN3: WARNING: Linking two modules of different target triples
; WARN3: warning: Linking two modules of different target triples
; x86_64h and x86_64 map to the same ArchType enum.
; WARN4-NOT: WARNING
; WARN4-NOT: warning
target triple = "x86_64-apple-macosx10.9.0"

View File

@ -8,6 +8,6 @@
target datalayout = "e"
; WARN-A-NOT: WARNING
; WARN-A-NOT: warning
; WARN-B: WARNING: Linking two modules of different data layouts:
; WARN-B: warning: Linking two modules of different data layouts:

View File

@ -3,4 +3,4 @@
;; drop-debug.bc was created from "void f(void) {}" with clang 3.5 and
; -gline-tables-only, so it contains old debug info.
; CHECK: WARNING: ignoring debug info with an invalid version (1) in {{.*}}/Inputs/drop-debug.bc
; CHECK: warning: ignoring debug info with an invalid version (1) in {{.*}}/Inputs/drop-debug.bc

View File

@ -2,5 +2,5 @@
; in different modules.
; RUN: not llvm-link %s %s -o %t.bc 2>&1 | FileCheck %s
; RUN: not llvm-link %s %S/Inputs/redefinition.ll -o %t.bc 2>&1 | FileCheck %s
; CHECK: ERROR: Linking globals named 'foo': symbol multiply defined!
; CHECK: error: Linking globals named 'foo': symbol multiply defined!
define void @foo() { ret void }

View File

@ -13,10 +13,10 @@ target triple = "x86_64-unknown-linux-gnu"
; CHECK: target triple = "x86_64-unknown-linux-gnu"
; WARN-A-NOT: WARNING
; WARN-A-NOT: warning
; i386 and x86_64 map to different ArchType enums.
; WARN-B: WARNING: Linking two modules of different target triples:
; WARN-B: warning: Linking two modules of different target triples:
; x86_64h and x86_64 map to the same ArchType enum.
; WARN-C-NOT: WARNING
; WARN-C-NOT: warning

View File

@ -31,6 +31,7 @@
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/SystemUtils.h"
#include "llvm/Support/ToolOutputFile.h"
#include "llvm/Support/WithColor.h"
#include "llvm/Transforms/IPO/FunctionImport.h"
#include "llvm/Transforms/IPO/Internalize.h"
#include "llvm/Transforms/Utils/FunctionImportUtils.h"
@ -118,7 +119,8 @@ static std::unique_ptr<Module> loadFile(const char *argv0,
LLVMContext &Context,
bool MaterializeMetadata = true) {
SMDiagnostic Err;
if (Verbose) errs() << "Loading '" << FN << "'\n";
if (Verbose)
errs() << "Loading '" << FN << "'\n";
std::unique_ptr<Module> Result;
if (DisableLazyLoad)
Result = parseIRFile(FN, Err, Context);
@ -186,12 +188,12 @@ struct LLVMLinkDiagnosticHandler : public DiagnosticHandler {
unsigned Severity = DI.getSeverity();
switch (Severity) {
case DS_Error:
errs() << "ERROR: ";
WithColor::error();
break;
case DS_Warning:
if (SuppressWarnings)
return true;
errs() << "WARNING: ";
WithColor::warning();
break;
case DS_Remark:
case DS_Note:
@ -236,8 +238,8 @@ static bool importFunctions(const char *argv0, Module &DestModule) {
auto &SrcModule = ModuleLoaderCache(argv0, FileName);
if (verifyModule(SrcModule, &errs())) {
errs() << argv0 << ": " << FileName
<< ": error: input module is broken!\n";
errs() << argv0 << ": " << FileName;
WithColor::error() << "input module is broken!\n";
return false;
}
@ -281,7 +283,8 @@ static bool linkFiles(const char *argv0, LLVMContext &Context, Linker &L,
for (const auto &File : Files) {
std::unique_ptr<Module> M = loadFile(argv0, File, Context);
if (!M.get()) {
errs() << argv0 << ": error loading file '" << File << "'\n";
errs() << argv0 << ": ";
WithColor::error() << " loading file '" << File << "'\n";
return false;
}
@ -289,7 +292,8 @@ static bool linkFiles(const char *argv0, LLVMContext &Context, Linker &L,
// doing that debug metadata in the src module might already be pointing to
// the destination.
if (DisableDITypeMap && verifyModule(*M, &errs())) {
errs() << argv0 << ": " << File << ": error: input module is broken!\n";
errs() << argv0 << ": " << File << ": ";
WithColor::error() << "input module is broken!\n";
return false;
}
@ -374,21 +378,24 @@ int main(int argc, char **argv) {
if (!importFunctions(argv[0], *Composite))
return 1;
if (DumpAsm) errs() << "Here's the assembly:\n" << *Composite;
if (DumpAsm)
errs() << "Here's the assembly:\n" << *Composite;
std::error_code EC;
ToolOutputFile Out(OutputFilename, EC, sys::fs::F_None);
if (EC) {
errs() << EC.message() << '\n';
WithColor::error() << EC.message() << '\n';
return 1;
}
if (verifyModule(*Composite, &errs())) {
errs() << argv[0] << ": error: linked module is broken!\n";
errs() << argv[0] << ": ";
WithColor::error() << "linked module is broken!\n";
return 1;
}
if (Verbose) errs() << "Writing bitcode...\n";
if (Verbose)
errs() << "Writing bitcode...\n";
if (OutputAssembly) {
Composite->print(Out.os(), nullptr, PreserveAssemblyUseListOrder);
} else if (Force || !CheckBitcodeOutputToConsole(Out.os(), true))