diff options
-rw-r--r-- | llvm/test/tools/dsymutil/cmdline.test | 6 | ||||
-rw-r--r-- | llvm/tools/dsymutil/dsymutil.cpp | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/tools/dsymutil/cmdline.test b/llvm/test/tools/dsymutil/cmdline.test index 7e9223c9401..bce40a7e033 100644 --- a/llvm/test/tools/dsymutil/cmdline.test +++ b/llvm/test/tools/dsymutil/cmdline.test @@ -26,3 +26,9 @@ HELP-NOT: -reverse-iterate RUN: dsymutil --version 2>&1 | FileCheck --check-prefix=VERSION %s VERSION: {{ version }} + +RUN: not dsymutil 2>&1 | FileCheck --check-prefix=NOINPUT %s +NOINPUT: error: no input files specified + +RUN: dsymutil -bogus -help 2>&1 | FileCheck --check-prefix=BOGUS %s +BOGUS: warning: ignoring unknown option: -bogus diff --git a/llvm/tools/dsymutil/dsymutil.cpp b/llvm/tools/dsymutil/dsymutil.cpp index 983e86808e7..88a85937a62 100644 --- a/llvm/tools/dsymutil/dsymutil.cpp +++ b/llvm/tools/dsymutil/dsymutil.cpp @@ -148,6 +148,11 @@ static Expected<std::vector<std::string>> getInputs(opt::InputArgList &Args, // Verify that the given combination of options makes sense. static Error verifyOptions(const DsymutilOptions &Options) { + if (Options.InputFiles.empty()) { + return make_error<StringError>("no input files specified", + errc::invalid_argument); + } + if (Options.LinkOpts.Update && std::find(Options.InputFiles.begin(), Options.InputFiles.end(), "-") != Options.InputFiles.end()) { @@ -440,6 +445,11 @@ int main(int argc, char **argv) { std::string SDKPath = sys::fs::getMainExecutable(argv[0], P); SDKPath = sys::path::parent_path(SDKPath); + for (auto *Arg : Args.filtered(OPT_UNKNOWN)) { + WithColor::warning() << "ignoring unknown option: " << Arg->getSpelling() + << '\n'; + } + if (Args.hasArg(OPT_help)) { T.PrintHelp( outs(), (std::string(argv[0]) + " [options] <input files>").c_str(), |