diff options
| -rw-r--r-- | lld/MinGW/Driver.cpp | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index 7641f8732d6..060231bd7a6 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -30,6 +30,11 @@ 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, @@ -60,9 +65,20 @@ public: }; } // namespace -LLVM_ATTRIBUTE_NORETURN static void error(const Twine &Msg) { - errs() << Msg << "\n"; - exit(1); +opt::InputArgList MinGWOptTable::parse(ArrayRef<const char *> Argv) { + unsigned MissingIndex; + unsigned MissingCount; + + SmallVector<const char *, 256> Vec(Argv.data(), Argv.data() + Argv.size()); + opt::InputArgList Args = this->ParseArgs(Vec, MissingIndex, MissingCount); + + if (MissingCount) + error(StringRef(Args.getArgString(MissingIndex)) + ": missing argument"); + for (auto *Arg : Args.filtered(OPT_UNKNOWN)) + error("unknown argument: " + Arg->getSpelling()); + if (!Args.hasArgNoClaim(OPT_INPUT) && !Args.hasArgNoClaim(OPT_l)) + error("no input files"); + return Args; } // Find a file by concatenating given paths. @@ -94,22 +110,6 @@ searchLibrary(StringRef Name, ArrayRef<StringRef> SearchPaths, bool BStatic) { error("unable to find library -l" + Name); } -opt::InputArgList MinGWOptTable::parse(ArrayRef<const char *> Argv) { - unsigned MissingIndex; - unsigned MissingCount; - - SmallVector<const char *, 256> Vec(Argv.data(), Argv.data() + Argv.size()); - opt::InputArgList Args = this->ParseArgs(Vec, MissingIndex, MissingCount); - - if (MissingCount) - error(StringRef(Args.getArgString(MissingIndex)) + ": missing argument"); - for (auto *Arg : Args.filtered(OPT_UNKNOWN)) - error("unknown argument: " + Arg->getSpelling()); - if (!Args.hasArgNoClaim(OPT_INPUT) && !Args.hasArgNoClaim(OPT_l)) - error("no input files"); - return Args; -} - // 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) { |

