diff options
| author | Rui Ueyama <ruiu@google.com> | 2017-12-12 20:34:38 +0000 |
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2017-12-12 20:34:38 +0000 |
| commit | 338c4b233669fc1c33126cbc51ecae2bb1f01c66 (patch) | |
| tree | 36143f19a63d0275e9babfb12a167c40ae3fed22 | |
| parent | 83c15b136337ea3f23917e4294d12a695ff7c788 (diff) | |
| download | bcm5719-llvm-338c4b233669fc1c33126cbc51ecae2bb1f01c66.tar.gz bcm5719-llvm-338c4b233669fc1c33126cbc51ecae2bb1f01c66.zip | |
Use the standard error handling mechanism in MinGW driver.
Differential Revision: https://reviews.llvm.org/D41127
llvm-svn: 320526
| -rw-r--r-- | lld/MinGW/Driver.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index d08f12f9dcf..6d3bea5d904 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "lld/Common/Driver.h" +#include "lld/Common/ErrorHandler.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/Optional.h" #include "llvm/ADT/StringExtras.h" @@ -30,11 +31,6 @@ using namespace lld; using namespace llvm; -LLVM_ATTRIBUTE_NORETURN static void error(const Twine &Msg) { - errs() << Msg << "\n"; - exit(1); -} - // Create OptTable enum { OPT_INVALID = 0, @@ -73,11 +69,11 @@ opt::InputArgList MinGWOptTable::parse(ArrayRef<const char *> Argv) { opt::InputArgList Args = this->ParseArgs(Vec, MissingIndex, MissingCount); if (MissingCount) - error(StringRef(Args.getArgString(MissingIndex)) + ": missing argument"); + fatal(StringRef(Args.getArgString(MissingIndex)) + ": missing argument"); for (auto *Arg : Args.filtered(OPT_UNKNOWN)) - error("unknown argument: " + Arg->getSpelling()); + fatal("unknown argument: " + Arg->getSpelling()); if (!Args.hasArg(OPT_INPUT) && !Args.hasArg(OPT_l)) - error("no input files"); + fatal("no input files"); return Args; } @@ -97,7 +93,7 @@ searchLibrary(StringRef Name, ArrayRef<StringRef> SearchPaths, bool BStatic) { for (StringRef Dir : SearchPaths) if (Optional<std::string> S = findFile(Dir, Name.substr(1))) return *S; - error("unable to find library -l" + Name); + fatal("unable to find library -l" + Name); } for (StringRef Dir : SearchPaths) { @@ -107,7 +103,7 @@ searchLibrary(StringRef Name, ArrayRef<StringRef> SearchPaths, bool BStatic) { if (Optional<std::string> S = findFile(Dir, "lib" + Name + ".a")) return *S; } - error("unable to find library -l" + Name); + fatal("unable to find library -l" + Name); } // Convert Unix-ish command line arguments to Windows-ish ones and @@ -175,7 +171,7 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) { else if (S == "safe" || S == "none") Add("-opt:noicf"); else - error("unknown parameter: --icf=" + S); + fatal("unknown parameter: --icf=" + S); } else { Add("-opt:noicf"); } @@ -191,7 +187,7 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) { else if (S == "arm64pe") Add("-machine:arm64"); else - error("unknown parameter: -m" + S); + fatal("unknown parameter: -m" + S); } for (auto *A : Args.filtered(OPT_mllvm)) |

