summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2019-10-16 21:48:41 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2019-10-16 21:48:41 +0000
commit8cdc842c51626b94fc20af604f640f6f195eeadb (patch)
treeec1d9e999e948f80688b3801fac973e1b6d84040
parent6d1891c508fecf189d1d76b43740b144b91aae23 (diff)
downloadbcm5719-llvm-8cdc842c51626b94fc20af604f640f6f195eeadb.tar.gz
bcm5719-llvm-8cdc842c51626b94fc20af604f640f6f195eeadb.zip
[dsymutil] Print warning/error for unknown/missing arguments.
After changing dsymutil to use libOption, we lost error reporting for missing required arguments (input files). Additionally, we stopped complaining about unknown arguments. This patch fixes both and adds a test. llvm-svn: 375044
-rw-r--r--llvm/test/tools/dsymutil/cmdline.test6
-rw-r--r--llvm/tools/dsymutil/dsymutil.cpp10
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(),
OpenPOWER on IntegriCloud