Index: lldb/test/Shell/Driver/TestNoUseColor.test =================================================================== --- lldb/test/Shell/Driver/TestNoUseColor.test +++ lldb/test/Shell/Driver/TestNoUseColor.test @@ -1,4 +1,4 @@ -# RUN: %lldb --no-use-color -s %s | FileCheck %s +# RUN: %lldb --no-use-colors -s %s | FileCheck %s settings show use-color # CHECK: use-color (boolean) = false q Index: lldb/test/Shell/Driver/TestPositionalArgs.test =================================================================== --- /dev/null +++ lldb/test/Shell/Driver/TestPositionalArgs.test @@ -0,0 +1,30 @@ +RUN: echo "int main() { return 0; }" | %clang_host -x c - -o %t.foo + +RUN: %lldb -x -b %t.foo bar baz quux | FileCheck %s +RUN: %lldb -x -b -- %t.foo bar baz quux | FileCheck %s +RUN: %lldb -x -b %t.foo -- bar baz quux | FileCheck %s +RUN: %lldb -x -b %t.foo bar -- baz quux | FileCheck %s +RUN: %lldb -x -b %t.foo bar baz -- quux | FileCheck %s +RUN: %lldb %t.foo -x bar -b baz -- quux | FileCheck %s +RUN: %lldb -x -b -f %t.foo bar baz quux | FileCheck %s +RUN: %lldb -x -b -f %t.foo -- bar baz quux | FileCheck %s +RUN: %lldb -x -b -f %t.foo bar -- baz quux | FileCheck %s +RUN: %lldb -x -b -f %t.foo bar baz -- quux | FileCheck %s + +CHECK: Current executable set to {{.*}}foo +CHECK: target.run-args "bar" "baz" "quux" + +RUN: %lldb -x -b %t.foo -- bar -baz --quux | FileCheck %s --check-prefix DASH +RUN: %lldb -x -b -- %t.foo bar -baz --quux | FileCheck %s --check-prefix DASH +RUN: %lldb -x -b -f %t.foo -- bar -baz --quux | FileCheck %s --check-prefix DASH + +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 + +UNKNOWN: warning: ignoring unknown option: -baz +UNKNOWN: warning: ignoring unknown option: --quux +UNKNOWN: Current executable set to {{.*}}foo +UNKNOWN: target.run-args "bar" Index: lldb/tools/driver/Driver.cpp =================================================================== --- lldb/tools/driver/Driver.cpp +++ lldb/tools/driver/Driver.cpp @@ -361,13 +361,8 @@ if (m_option_data.m_process_name.empty() && m_option_data.m_process_pid == LLDB_INVALID_PROCESS_ID) { - // If the option data args array is empty that means the file was not - // specified with -f and we need to get it from the input args. - if (m_option_data.m_args.empty()) { - if (auto *arg = args.getLastArgNoClaim(OPT_INPUT)) { - m_option_data.m_args.push_back(arg->getAsString((args))); - } - } + for (auto *arg : args.filtered(OPT_INPUT)) + m_option_data.m_args.push_back(arg->getAsString((args))); // Any argument following -- is an argument for the inferior. if (auto *arg = args.getLastArgNoClaim(OPT_REM)) {