Index: lldb/trunk/include/lldb/Host/OptionParser.h =================================================================== --- lldb/trunk/include/lldb/Host/OptionParser.h +++ lldb/trunk/include/lldb/Host/OptionParser.h @@ -13,6 +13,7 @@ #include #include "llvm/ADT/StringRef.h" +#include "llvm/ADT/ArrayRef.h" struct option; @@ -37,8 +38,11 @@ static void EnableError(bool error); - static int Parse(int argc, char *const argv[], llvm::StringRef optstring, - const Option *longopts, int *longindex); + /// Argv must be an argument vector "as passed to main", i.e. terminated with + /// a nullptr. + static int Parse(llvm::MutableArrayRef argv, + llvm::StringRef optstring, const Option *longopts, + int *longindex); static char *GetOptionArgument(); static int GetOptionIndex(); Index: lldb/trunk/source/Host/common/OptionParser.cpp =================================================================== --- lldb/trunk/source/Host/common/OptionParser.cpp +++ lldb/trunk/source/Host/common/OptionParser.cpp @@ -27,8 +27,9 @@ void OptionParser::EnableError(bool error) { opterr = error ? 1 : 0; } -int OptionParser::Parse(int argc, char *const argv[], llvm::StringRef optstring, - const Option *longopts, int *longindex) { +int OptionParser::Parse(llvm::MutableArrayRef argv, + llvm::StringRef optstring, const Option *longopts, + int *longindex) { std::vector