[Lldb-commits] [PATCH] Fix tests broken by OptionValidator changes.

Zachary Turner zturner at google.com
Wed Jul 9 09:40:36 PDT 2014


Closed by commit rL212628 (authored by @zturner).

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D4425

Files:
  lldb/trunk/source/Host/common/OptionParser.cpp
  lldb/trunk/source/Interpreter/OptionGroupBoolean.cpp
  lldb/trunk/source/Interpreter/OptionGroupFile.cpp
  lldb/trunk/source/Interpreter/OptionGroupString.cpp
  lldb/trunk/source/Interpreter/OptionGroupUInt64.cpp

Index: lldb/trunk/source/Interpreter/OptionGroupBoolean.cpp
===================================================================
--- lldb/trunk/source/Interpreter/OptionGroupBoolean.cpp
+++ lldb/trunk/source/Interpreter/OptionGroupBoolean.cpp
@@ -30,6 +30,7 @@
     m_option_definition.required = required;
     m_option_definition.long_option = long_option;
     m_option_definition.short_option = short_option;
+    m_option_definition.validator = nullptr;
     m_option_definition.option_has_arg = no_argument_toggle_default ? OptionParser::eNoArgument : OptionParser::eRequiredArgument;
     m_option_definition.enum_values = nullptr;
     m_option_definition.completion_type = 0;
Index: lldb/trunk/source/Interpreter/OptionGroupFile.cpp
===================================================================
--- lldb/trunk/source/Interpreter/OptionGroupFile.cpp
+++ lldb/trunk/source/Interpreter/OptionGroupFile.cpp
@@ -30,6 +30,7 @@
     m_option_definition.required = required;
     m_option_definition.long_option = long_option;
     m_option_definition.short_option = short_option;
+    m_option_definition.validator = nullptr;
     m_option_definition.option_has_arg = OptionParser::eRequiredArgument;
     m_option_definition.enum_values = nullptr;
     m_option_definition.completion_type = completion_type;
@@ -70,6 +71,7 @@
     m_option_definition.required = required;
     m_option_definition.long_option = long_option;
     m_option_definition.short_option = short_option;
+    m_option_definition.validator = nullptr;
     m_option_definition.option_has_arg = OptionParser::eRequiredArgument;
     m_option_definition.enum_values = nullptr;
     m_option_definition.completion_type = completion_type;
Index: lldb/trunk/source/Interpreter/OptionGroupUInt64.cpp
===================================================================
--- lldb/trunk/source/Interpreter/OptionGroupUInt64.cpp
+++ lldb/trunk/source/Interpreter/OptionGroupUInt64.cpp
@@ -31,6 +31,7 @@
     m_option_definition.required = required;
     m_option_definition.long_option = long_option;
     m_option_definition.short_option = short_option;
+    m_option_definition.validator = nullptr;
     m_option_definition.option_has_arg = OptionParser::eRequiredArgument;
     m_option_definition.enum_values = nullptr;
     m_option_definition.completion_type = completion_type;
Index: lldb/trunk/source/Interpreter/OptionGroupString.cpp
===================================================================
--- lldb/trunk/source/Interpreter/OptionGroupString.cpp
+++ lldb/trunk/source/Interpreter/OptionGroupString.cpp
@@ -31,6 +31,7 @@
     m_option_definition.required = required;
     m_option_definition.long_option = long_option;
     m_option_definition.short_option = short_option;
+    m_option_definition.validator = nullptr;
     m_option_definition.option_has_arg = OptionParser::eRequiredArgument;
     m_option_definition.enum_values = nullptr;
     m_option_definition.completion_type = completion_type;
Index: lldb/trunk/source/Host/common/OptionParser.cpp
===================================================================
--- lldb/trunk/source/Host/common/OptionParser.cpp
+++ lldb/trunk/source/Host/common/OptionParser.cpp
@@ -9,6 +9,9 @@
 
 #include "lldb/Host/OptionParser.h"
 #include "lldb/Host/HostGetOpt.h"
+#include "lldb/lldb-private-types.h"
+
+#include <vector>
 
 using namespace lldb_private;
 
@@ -36,7 +39,19 @@
                      const Option *longopts,
                      int *longindex)
 {
-    return getopt_long_only(argc, argv, optstring, (const option*)longopts, longindex);
+    std::vector<option> opts;
+    while (longopts->definition != nullptr)
+    {
+        option opt;
+        opt.flag = longopts->flag;
+        opt.val = longopts->val;
+        opt.name = longopts->definition->long_option;
+        opt.has_arg = longopts->definition->option_has_arg;
+        opts.push_back(opt);
+        ++longopts;
+    }
+    opts.push_back(option());
+    return getopt_long_only(argc, argv, optstring, &opts[0], longindex);
 }
 
 char*
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4425.11203.patch
Type: text/x-patch
Size: 4059 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20140709/5723730f/attachment.bin>


More information about the lldb-commits mailing list