diff --git a/lldb/test/Shell/Driver/TestPositionalArgs.test b/lldb/test/Shell/Driver/TestPositionalArgs.test --- a/lldb/test/Shell/Driver/TestPositionalArgs.test +++ b/lldb/test/Shell/Driver/TestPositionalArgs.test @@ -23,10 +23,8 @@ DASH: Current executable set to {{.*}}foo DASH: target.run-args "bar" "-baz" "--quux" -RUN: %lldb -x -b %t.foo bar -baz --quux 2>&1 | FileCheck %s --check-prefix UNKNOWN -RUN: %lldb -x -b -f %t.foo bar -baz --quux 2>&1 | FileCheck %s --check-prefix UNKNOWN +RUN: not %lldb -x -b %t.foo bar -baz --quux 2>&1 | FileCheck %s --check-prefix UNKNOWN +RUN: not %lldb -x -b -f %t.foo bar -baz --quux 2>&1 | FileCheck %s --check-prefix UNKNOWN -UNKNOWN: warning: ignoring unknown option: -baz -UNKNOWN: warning: ignoring unknown option: --quux -UNKNOWN: Current executable set to {{.*}}foo -UNKNOWN: target.run-args "bar" +UNKNOWN: error: unknown option: -baz +UNKNOWN: error: unknown option: --quux diff --git a/lldb/tools/driver/Driver.cpp b/lldb/tools/driver/Driver.cpp --- a/lldb/tools/driver/Driver.cpp +++ b/lldb/tools/driver/Driver.cpp @@ -856,9 +856,12 @@ return 0; } - for (auto *arg : input_args.filtered(OPT_UNKNOWN)) { - WithColor::warning() << "ignoring unknown option: " << arg->getSpelling() - << '\n'; + // Error out on unknown options. + if (input_args.hasArg(OPT_UNKNOWN)) { + for (auto *arg : input_args.filtered(OPT_UNKNOWN)) { + WithColor::error() << "unknown option: " << arg->getSpelling() << '\n'; + } + return 1; } if (auto exit_code = InitializeReproducer(input_args)) {