Index: llvm/test/Linker/apple-version.ll =================================================================== --- llvm/test/Linker/apple-version.ll +++ llvm/test/Linker/apple-version.ll @@ -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" Index: llvm/test/Linker/datalayout.ll =================================================================== --- llvm/test/Linker/datalayout.ll +++ llvm/test/Linker/datalayout.ll @@ -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: Index: llvm/test/Linker/drop-debug.ll =================================================================== --- llvm/test/Linker/drop-debug.ll +++ llvm/test/Linker/drop-debug.ll @@ -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 Index: llvm/test/Linker/redefinition.ll =================================================================== --- llvm/test/Linker/redefinition.ll +++ llvm/test/Linker/redefinition.ll @@ -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 } Index: llvm/test/Linker/targettriple.ll =================================================================== --- llvm/test/Linker/targettriple.ll +++ llvm/test/Linker/targettriple.ll @@ -13,10 +13,10 @@ ; 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 Index: llvm/tools/llvm-link/llvm-link.cpp =================================================================== --- llvm/tools/llvm-link/llvm-link.cpp +++ llvm/tools/llvm-link/llvm-link.cpp @@ -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 @@ LLVMContext &Context, bool MaterializeMetadata = true) { SMDiagnostic Err; - if (Verbose) errs() << "Loading '" << FN << "'\n"; + if (Verbose) + errs() << "Loading '" << FN << "'\n"; std::unique_ptr Result; if (DisableLazyLoad) Result = parseIRFile(FN, Err, Context); @@ -186,12 +188,12 @@ 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 @@ 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 @@ for (const auto &File : Files) { std::unique_ptr 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 @@ // 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 @@ 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))