summaryrefslogtreecommitdiff
path: root/COFF/Error.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'COFF/Error.cpp')
-rw-r--r--COFF/Error.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/COFF/Error.cpp b/COFF/Error.cpp
index 602a8544ce2b..b2bd557413df 100644
--- a/COFF/Error.cpp
+++ b/COFF/Error.cpp
@@ -11,14 +11,31 @@
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Error.h"
+#include "llvm/Support/Process.h"
#include "llvm/Support/raw_ostream.h"
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+#include <unistd.h>
+#endif
+
+using namespace llvm;
+
namespace lld {
namespace coff {
void fatal(const Twine &Msg) {
- llvm::errs() << Msg << "\n";
- exit(1);
+ if (sys::Process::StandardErrHasColors()) {
+ errs().changeColor(raw_ostream::RED, /*bold=*/true);
+ errs() << "error: ";
+ errs().resetColor();
+ } else {
+ errs() << "error: ";
+ }
+ errs() << Msg << "\n";
+
+ outs().flush();
+ errs().flush();
+ _exit(1);
}
void fatal(std::error_code EC, const Twine &Msg) {