diff options
author | Rui Ueyama <ruiu@google.com> | 2019-10-10 09:46:41 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2019-10-10 09:46:41 +0000 |
commit | 37bf9bb405ffcbd2dbca8d645ec2251ba34ac230 (patch) | |
tree | 283e5ce717efae9f388848643579d6ce2d5b0ada /lld/MinGW | |
parent | 9d9ac46a08d7c4081ef3ff89ceecd3ab9ec69a14 (diff) | |
download | llvm-project-37bf9bb405ffcbd2dbca8d645ec2251ba34ac230.tar.gz |
Use error instead of fatal to report usage errors
Differential Revision: https://reviews.llvm.org/D68768
llvm-svn: 374297
Diffstat (limited to 'lld/MinGW')
-rw-r--r-- | lld/MinGW/Driver.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index 2ed001fcf9af..a5f64496eae9 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -103,9 +103,9 @@ opt::InputArgList MinGWOptTable::parse(ArrayRef<const char *> argv) { opt::InputArgList args = this->ParseArgs(vec, missingIndex, missingCount); if (missingCount) - fatal(StringRef(args.getArgString(missingIndex)) + ": missing argument"); + error(StringRef(args.getArgString(missingIndex)) + ": missing argument"); for (auto *arg : args.filtered(OPT_UNKNOWN)) - fatal("unknown argument: " + arg->getAsString(args)); + error("unknown argument: " + arg->getAsString(args)); return args; } @@ -160,9 +160,14 @@ searchLibrary(StringRef name, ArrayRef<StringRef> searchPaths, bool bStatic) { // Convert Unix-ish command line arguments to Windows-ish ones and // then call coff::link. bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) { + enableColors(diag.has_colors()); + MinGWOptTable parser; opt::InputArgList args = parser.parse(argsArr.slice(1)); + if (errorCount()) + return false; + if (args.hasArg(OPT_help)) { printHelp(argsArr[0]); return true; @@ -183,8 +188,10 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) { if (args.hasArg(OPT_version)) return true; - if (!args.hasArg(OPT_INPUT) && !args.hasArg(OPT_l)) - fatal("no input files"); + if (!args.hasArg(OPT_INPUT) && !args.hasArg(OPT_l)) { + error("no input files"); + return false; + } std::vector<std::string> linkArgs; auto add = [&](const Twine &s) { linkArgs.push_back(s.str()); }; @@ -290,7 +297,7 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) { else if (s == "safe" || s == "none") add("-opt:noicf"); else - fatal("unknown parameter: --icf=" + s); + error("unknown parameter: --icf=" + s); } else { add("-opt:noicf"); } @@ -306,7 +313,7 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) { else if (s == "arm64pe") add("-machine:arm64"); else - fatal("unknown parameter: -m" + s); + error("unknown parameter: -m" + s); } for (auto *a : args.filtered(OPT_mllvm)) |