[Lldb-commits] [lldb] r287315 - Remove an out param from ValueObject::GetValueForExpressionPath.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Thu Nov 17 21:45:41 PST 2016


Author: zturner
Date: Thu Nov 17 23:45:41 2016
New Revision: 287315

URL: http://llvm.org/viewvc/llvm-project?rev=287315&view=rev
Log:
Remove an out param from ValueObject::GetValueForExpressionPath.

This argument was only used in one place in the codebase, and
it was in a non-critical log statement and can be easily
substituted for an equally meaningful field instead.  The
payoff of computing this value is not worth the added
complexity.

Modified:
    lldb/trunk/include/lldb/Core/ValueObject.h
    lldb/trunk/source/Core/FormatEntity.cpp
    lldb/trunk/source/Core/ValueObject.cpp
    lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp
    lldb/trunk/source/Symbol/Variable.cpp

Modified: lldb/trunk/include/lldb/Core/ValueObject.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ValueObject.h?rev=287315&r1=287314&r2=287315&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/ValueObject.h (original)
+++ lldb/trunk/include/lldb/Core/ValueObject.h Thu Nov 17 23:45:41 2016
@@ -394,7 +394,7 @@ public:
       GetExpressionPathFormat = eGetExpressionPathFormatDereferencePointers);
 
   lldb::ValueObjectSP GetValueForExpressionPath(
-      const char *expression, const char **first_unparsed = nullptr,
+      const char *expression,
       ExpressionPathScanEndReason *reason_to_stop = nullptr,
       ExpressionPathEndResultType *final_value_type = nullptr,
       const GetValueForExpressionPathOptions &options =
@@ -1002,8 +1002,7 @@ private:
   virtual CompilerType MaybeCalculateCompleteType();
 
   lldb::ValueObjectSP GetValueForExpressionPath_Impl(
-      const char *expression_cstr, const char **first_unparsed,
-      ExpressionPathScanEndReason *reason_to_stop,
+      const char *expression_cstr, ExpressionPathScanEndReason *reason_to_stop,
       ExpressionPathEndResultType *final_value_type,
       const GetValueForExpressionPathOptions &options,
       ExpressionPathAftermath *final_task_on_target);

Modified: lldb/trunk/source/Core/FormatEntity.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/FormatEntity.cpp?rev=287315&r1=287314&r2=287315&view=diff
==============================================================================
--- lldb/trunk/source/Core/FormatEntity.cpp (original)
+++ lldb/trunk/source/Core/FormatEntity.cpp Thu Nov 17 23:45:41 2016
@@ -614,7 +614,6 @@ static ValueObjectSP ExpandIndexedExpres
   if (log)
     log->Printf("[ExpandIndexedExpression] name to deref: %s",
                 ptr_deref_buffer.c_str());
-  const char *first_unparsed;
   ValueObject::GetValueForExpressionPathOptions options;
   ValueObject::ExpressionPathEndResultType final_value_type;
   ValueObject::ExpressionPathScanEndReason reason_to_stop;
@@ -622,20 +621,18 @@ static ValueObjectSP ExpandIndexedExpres
       (deref_pointer ? ValueObject::eExpressionPathAftermathDereference
                      : ValueObject::eExpressionPathAftermathNothing);
   ValueObjectSP item = valobj->GetValueForExpressionPath(
-      ptr_deref_buffer.c_str(), &first_unparsed, &reason_to_stop,
-      &final_value_type, options, &what_next);
+      ptr_deref_buffer.c_str(), &reason_to_stop, &final_value_type, options,
+      &what_next);
   if (!item) {
     if (log)
-      log->Printf("[ExpandIndexedExpression] ERROR: unparsed portion = %s, why "
-                  "stopping = %d,"
+      log->Printf("[ExpandIndexedExpression] ERROR: why stopping = %d,"
                   " final_value_type %d",
-                  first_unparsed, reason_to_stop, final_value_type);
+                  reason_to_stop, final_value_type);
   } else {
     if (log)
-      log->Printf("[ExpandIndexedExpression] ALL RIGHT: unparsed portion = %s, "
-                  "why stopping = %d,"
-                  " final_value_type %d",
-                  first_unparsed, reason_to_stop, final_value_type);
+      log->Printf("[ExpandIndexedExpression] ALL RIGHT: why stopping = %d, "
+                  "final_value_type %d",
+                  reason_to_stop, final_value_type);
   }
   return item;
 }
@@ -724,7 +721,6 @@ static bool DumpValue(Stream &s, const S
   int64_t index_lower = -1;
   int64_t index_higher = -1;
   bool is_array_range = false;
-  const char *first_unparsed;
   bool was_plain_var = false;
   bool was_var_format = false;
   bool was_var_indexed = false;
@@ -762,25 +758,23 @@ static bool DumpValue(Stream &s, const S
       log->Printf("[Debugger::FormatPrompt] symbol to expand: %s",
                   expr_path.c_str());
 
-    target = valobj
-                 ->GetValueForExpressionPath(expr_path.c_str(), &first_unparsed,
-                                             &reason_to_stop, &final_value_type,
-                                             options, &what_next)
-                 .get();
+    target =
+        valobj
+            ->GetValueForExpressionPath(expr_path.c_str(), &reason_to_stop,
+                                        &final_value_type, options, &what_next)
+            .get();
 
     if (!target) {
       if (log)
-        log->Printf("[Debugger::FormatPrompt] ERROR: unparsed portion = %s, "
-                    "why stopping = %d,"
-                    " final_value_type %d",
-                    first_unparsed, reason_to_stop, final_value_type);
+        log->Printf("[Debugger::FormatPrompt] ERROR: expr = %s, "
+                    "why stopping = %d, final_value_type %d",
+                    expr_path.c_str(), reason_to_stop, final_value_type);
       return false;
     } else {
       if (log)
-        log->Printf("[Debugger::FormatPrompt] ALL RIGHT: unparsed portion = "
-                    "%s, why stopping = %d,"
-                    " final_value_type %d",
-                    first_unparsed, reason_to_stop, final_value_type);
+        log->Printf("[Debugger::FormatPrompt] ALL RIGHT: expr = %s, "
+                    "why stopping = %d, final_value_type %d",
+                    expr_path.c_str(), reason_to_stop, final_value_type);
       target = target
                    ->GetQualifiedRepresentationIfAvailable(
                        target->GetDynamicValueType(), true)

Modified: lldb/trunk/source/Core/ValueObject.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ValueObject.cpp?rev=287315&r1=287314&r2=287315&view=diff
==============================================================================
--- lldb/trunk/source/Core/ValueObject.cpp (original)
+++ lldb/trunk/source/Core/ValueObject.cpp Thu Nov 17 23:45:41 2016
@@ -1922,7 +1922,7 @@ ValueObject::GetSyntheticExpressionPathC
     // We haven't made a synthetic array member for expression yet, so
     // lets make one and cache it for any future reference.
     synthetic_child_sp = GetValueForExpressionPath(
-        expression, NULL, NULL, NULL,
+        expression, nullptr, nullptr,
         GetValueForExpressionPathOptions().SetSyntheticChildrenTraversal(
             GetValueForExpressionPathOptions::SyntheticChildrenTraversal::
                 None));
@@ -2166,13 +2166,11 @@ void ValueObject::GetExpressionPath(Stre
 }
 
 ValueObjectSP ValueObject::GetValueForExpressionPath(
-    const char *expression, const char **first_unparsed,
-    ExpressionPathScanEndReason *reason_to_stop,
+    const char *expression, ExpressionPathScanEndReason *reason_to_stop,
     ExpressionPathEndResultType *final_value_type,
     const GetValueForExpressionPathOptions &options,
     ExpressionPathAftermath *final_task_on_target) {
 
-  const char *dummy_first_unparsed;
   ExpressionPathScanEndReason dummy_reason_to_stop =
       ValueObject::eExpressionPathScanEndReasonUnknown;
   ExpressionPathEndResultType dummy_final_value_type =
@@ -2181,8 +2179,7 @@ ValueObjectSP ValueObject::GetValueForEx
       ValueObject::eExpressionPathAftermathNothing;
 
   ValueObjectSP ret_val = GetValueForExpressionPath_Impl(
-      expression, first_unparsed ? first_unparsed : &dummy_first_unparsed,
-      reason_to_stop ? reason_to_stop : &dummy_reason_to_stop,
+      expression, reason_to_stop ? reason_to_stop : &dummy_reason_to_stop,
       final_value_type ? final_value_type : &dummy_final_value_type, options,
       final_task_on_target ? final_task_on_target
                            : &dummy_final_task_on_target);
@@ -2237,8 +2234,7 @@ ValueObjectSP ValueObject::GetValueForEx
 }
 
 ValueObjectSP ValueObject::GetValueForExpressionPath_Impl(
-    const char *expression_cstr, const char **first_unparsed,
-    ExpressionPathScanEndReason *reason_to_stop,
+    const char *expression_cstr, ExpressionPathScanEndReason *reason_to_stop,
     ExpressionPathEndResultType *final_result,
     const GetValueForExpressionPathOptions &options,
     ExpressionPathAftermath *what_next) {
@@ -2247,13 +2243,8 @@ ValueObjectSP ValueObject::GetValueForEx
   if (!root.get())
     return ValueObjectSP();
 
-  *first_unparsed = expression_cstr;
-
   while (true) {
 
-    const char *expression_cstr =
-        *first_unparsed; // hide the top level expression_cstr
-
     CompilerType root_compiler_type = root->GetCompilerType();
     CompilerType pointee_compiler_type;
     Flags pointee_compiler_type_info;
@@ -2276,7 +2267,6 @@ ValueObjectSP ValueObject::GetValueForEx
                                                         // non-pointer and I
                                                         // must catch the error
       {
-        *first_unparsed = expression_cstr;
         *reason_to_stop =
             ValueObject::eExpressionPathScanEndReasonArrowInsteadOfDot;
         *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2287,14 +2277,12 @@ ValueObjectSP ValueObject::GetValueForEx
                                                        // when this is forbidden
           root_compiler_type_info.Test(eTypeIsPointer) &&
           options.m_no_fragile_ivar) {
-        *first_unparsed = expression_cstr;
         *reason_to_stop =
             ValueObject::eExpressionPathScanEndReasonFragileIVarNotAllowed;
         *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
         return ValueObjectSP();
       }
       if (expression_cstr[1] != '>') {
-        *first_unparsed = expression_cstr;
         *reason_to_stop =
             ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
         *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2311,7 +2299,6 @@ ValueObjectSP ValueObject::GetValueForEx
                                                         // and I must catch the
                                                         // error
       {
-        *first_unparsed = expression_cstr;
         *reason_to_stop =
             ValueObject::eExpressionPathScanEndReasonDotInsteadOfArrow;
         *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2328,7 +2315,6 @@ ValueObjectSP ValueObject::GetValueForEx
 
         if (child_valobj_sp.get()) // we know we are done, so just return
         {
-          *first_unparsed = "";
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonEndOfString;
           *final_result = ValueObject::eExpressionPathEndResultTypePlain;
@@ -2378,13 +2364,11 @@ ValueObjectSP ValueObject::GetValueForEx
         // so we hit the "else" branch, and return an error
         if (child_valobj_sp.get()) // if it worked, just return
         {
-          *first_unparsed = "";
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonEndOfString;
           *final_result = ValueObject::eExpressionPathEndResultTypePlain;
           return child_valobj_sp;
         } else {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonNoSuchChild;
           *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2399,7 +2383,6 @@ ValueObjectSP ValueObject::GetValueForEx
         if (child_valobj_sp.get()) // store the new root and move on
         {
           root = child_valobj_sp;
-          *first_unparsed = next_separator;
           *final_result = ValueObject::eExpressionPathEndResultTypePlain;
           continue;
         } else {
@@ -2448,11 +2431,9 @@ ValueObjectSP ValueObject::GetValueForEx
         if (child_valobj_sp.get()) // if it worked, move on
         {
           root = child_valobj_sp;
-          *first_unparsed = next_separator;
           *final_result = ValueObject::eExpressionPathEndResultTypePlain;
           continue;
         } else {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonNoSuchChild;
           *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2474,7 +2455,6 @@ ValueObjectSP ValueObject::GetValueForEx
               GetValueForExpressionPathOptions::SyntheticChildrenTraversal::
                   None) // ...only chance left is synthetic
           {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonRangeOperatorInvalid;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2484,7 +2464,6 @@ ValueObjectSP ValueObject::GetValueForEx
                                                       // check that we can
                                                       // expand bitfields
         {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonRangeOperatorNotAllowed;
           *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2495,7 +2474,6 @@ ValueObjectSP ValueObject::GetValueForEx
           ']') // if this is an unbounded range it only works for arrays
       {
         if (!root_compiler_type_info.Test(eTypeIsArray)) {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonEmptyRangeNotAllowed;
           *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2503,7 +2481,6 @@ ValueObjectSP ValueObject::GetValueForEx
         } else // even if something follows, we cannot expand unbounded ranges,
                // just let the caller do it
         {
-          *first_unparsed = expression_cstr + 2;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonArrayRangeOperatorMet;
           *final_result =
@@ -2515,7 +2492,6 @@ ValueObjectSP ValueObject::GetValueForEx
       const char *close_bracket_position = ::strchr(expression_cstr + 1, ']');
       if (!close_bracket_position) // if there is no ], this is a syntax error
       {
-        *first_unparsed = expression_cstr;
         *reason_to_stop =
             ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
         *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2531,7 +2507,6 @@ ValueObjectSP ValueObject::GetValueForEx
         if (end != close_bracket_position) // if something weird is in
                                            // our way return an error
         {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
           *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2549,11 +2524,9 @@ ValueObjectSP ValueObject::GetValueForEx
                   root->GetSyntheticValue()->GetChildAtIndex(index, true);
           if (child_valobj_sp) {
             root = child_valobj_sp;
-            *first_unparsed = end + 1; // skip ]
             *final_result = ValueObject::eExpressionPathEndResultTypePlain;
             continue;
           } else {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2575,7 +2548,6 @@ ValueObjectSP ValueObject::GetValueForEx
             Error error;
             root = root->Dereference(error);
             if (error.Fail() || !root.get()) {
-              *first_unparsed = expression_cstr;
               *reason_to_stop =
                   ValueObject::eExpressionPathScanEndReasonDereferencingFailed;
               *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2599,13 +2571,11 @@ ValueObjectSP ValueObject::GetValueForEx
             } else
               root = root->GetSyntheticArrayMember(index, true);
             if (!root.get()) {
-              *first_unparsed = expression_cstr;
               *reason_to_stop =
                   ValueObject::eExpressionPathScanEndReasonNoSuchChild;
               *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
               return ValueObjectSP();
             } else {
-              *first_unparsed = end + 1; // skip ]
               *final_result = ValueObject::eExpressionPathEndResultTypePlain;
               continue;
             }
@@ -2613,7 +2583,6 @@ ValueObjectSP ValueObject::GetValueForEx
         } else if (root_compiler_type_info.Test(eTypeIsScalar)) {
           root = root->GetSyntheticBitFieldChild(index, index, true);
           if (!root.get()) {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2621,7 +2590,6 @@ ValueObjectSP ValueObject::GetValueForEx
           } else // we do not know how to expand members of bitfields, so we
                  // just return and let the caller do any further processing
           {
-            *first_unparsed = end + 1; // skip ]
             *reason_to_stop = ValueObject::
                 eExpressionPathScanEndReasonBitfieldRangeOperatorMet;
             *final_result = ValueObject::eExpressionPathEndResultTypeBitfield;
@@ -2630,13 +2598,11 @@ ValueObjectSP ValueObject::GetValueForEx
         } else if (root_compiler_type_info.Test(eTypeIsVector)) {
           root = root->GetChildAtIndex(index, true);
           if (!root.get()) {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
             return ValueObjectSP();
           } else {
-            *first_unparsed = end + 1; // skip ]
             *final_result = ValueObject::eExpressionPathEndResultTypePlain;
             continue;
           }
@@ -2649,7 +2615,6 @@ ValueObjectSP ValueObject::GetValueForEx
           if (root->HasSyntheticValue())
             root = root->GetSyntheticValue();
           else if (!root->IsSynthetic()) {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonSyntheticValueMissing;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2659,7 +2624,6 @@ ValueObjectSP ValueObject::GetValueForEx
           // to go
 
           if (!root.get()) {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonSyntheticValueMissing;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2667,18 +2631,15 @@ ValueObjectSP ValueObject::GetValueForEx
           }
           root = root->GetChildAtIndex(index, true);
           if (!root.get()) {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
             return ValueObjectSP();
           } else {
-            *first_unparsed = end + 1; // skip ]
             *final_result = ValueObject::eExpressionPathEndResultTypePlain;
             continue;
           }
         } else {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonNoSuchChild;
           *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2691,7 +2652,6 @@ ValueObjectSP ValueObject::GetValueForEx
         if (end != separator_position) // if something weird is in our
                                        // way return an error
         {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
           *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2701,7 +2661,6 @@ ValueObjectSP ValueObject::GetValueForEx
         if (end != close_bracket_position) // if something weird is in
                                            // our way return an error
         {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
           *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2716,13 +2675,11 @@ ValueObjectSP ValueObject::GetValueForEx
           root =
               root->GetSyntheticBitFieldChild(index_lower, index_higher, true);
           if (!root.get()) {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
             return ValueObjectSP();
           } else {
-            *first_unparsed = end + 1; // skip ]
             *reason_to_stop = ValueObject::
                 eExpressionPathScanEndReasonBitfieldRangeOperatorMet;
             *final_result = ValueObject::eExpressionPathEndResultTypeBitfield;
@@ -2739,7 +2696,6 @@ ValueObjectSP ValueObject::GetValueForEx
           Error error;
           root = root->Dereference(error);
           if (error.Fail() || !root.get()) {
-            *first_unparsed = expression_cstr;
             *reason_to_stop =
                 ValueObject::eExpressionPathScanEndReasonDereferencingFailed;
             *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
@@ -2749,7 +2705,6 @@ ValueObjectSP ValueObject::GetValueForEx
             continue;
           }
         } else {
-          *first_unparsed = expression_cstr;
           *reason_to_stop =
               ValueObject::eExpressionPathScanEndReasonArrayRangeOperatorMet;
           *final_result = ValueObject::eExpressionPathEndResultTypeBoundedRange;
@@ -2760,7 +2715,6 @@ ValueObjectSP ValueObject::GetValueForEx
     }
     default: // some non-separator is in the way
     {
-      *first_unparsed = expression_cstr;
       *reason_to_stop =
           ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
       *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;

Modified: lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp?rev=287315&r1=287314&r2=287315&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp (original)
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/LibCxx.cpp Thu Nov 17 23:45:41 2016
@@ -280,7 +280,7 @@ bool lldb_private::formatters::LibCxxMap
   // die and free their memory
   m_pair_ptr = valobj_sp
                    ->GetValueForExpressionPath(
-                       ".__i_.__ptr_->__value_", nullptr, nullptr, nullptr,
+                       ".__i_.__ptr_->__value_", nullptr, nullptr,
                        ValueObject::GetValueForExpressionPathOptions()
                            .DontCheckDotVsArrowSyntax()
                            .SetSyntheticChildrenTraversal(
@@ -288,16 +288,18 @@ bool lldb_private::formatters::LibCxxMap
                                    SyntheticChildrenTraversal::None),
                        nullptr)
                    .get();
-  
+
   if (!m_pair_ptr) {
-    m_pair_ptr = valobj_sp->GetValueForExpressionPath(".__i_.__ptr_", nullptr, nullptr, nullptr,
-                                                      ValueObject::GetValueForExpressionPathOptions()
-                                                      .DontCheckDotVsArrowSyntax()
-                                                      .SetSyntheticChildrenTraversal(
-                                                                                     ValueObject::GetValueForExpressionPathOptions::
-                                                                                     SyntheticChildrenTraversal::None),
-                                                      nullptr)
-    .get();
+    m_pair_ptr = valobj_sp
+                     ->GetValueForExpressionPath(
+                         ".__i_.__ptr_", nullptr, nullptr,
+                         ValueObject::GetValueForExpressionPathOptions()
+                             .DontCheckDotVsArrowSyntax()
+                             .SetSyntheticChildrenTraversal(
+                                 ValueObject::GetValueForExpressionPathOptions::
+                                     SyntheticChildrenTraversal::None),
+                         nullptr)
+                     .get();
     if (m_pair_ptr) {
       auto __i_(valobj_sp->GetChildMemberWithName(g___i_, true));
       lldb::TemplateArgumentKind kind;

Modified: lldb/trunk/source/Symbol/Variable.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/Variable.cpp?rev=287315&r1=287314&r2=287315&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/Variable.cpp (original)
+++ lldb/trunk/source/Symbol/Variable.cpp Thu Nov 17 23:45:41 2016
@@ -404,16 +404,8 @@ Error Variable::GetValuesForVariableExpr
                   const char *variable_sub_expr_path =
                       variable_expr_path + variable_name.size();
                   if (*variable_sub_expr_path) {
-                    const char *first_unparsed = nullptr;
-                    ValueObject::ExpressionPathScanEndReason reason_to_stop;
-                    ValueObject::ExpressionPathEndResultType final_value_type;
-                    ValueObject::GetValueForExpressionPathOptions options;
-                    ValueObject::ExpressionPathAftermath final_task_on_target;
-
                     valobj_sp = variable_valobj_sp->GetValueForExpressionPath(
-                        variable_sub_expr_path, &first_unparsed,
-                        &reason_to_stop, &final_value_type, options,
-                        &final_task_on_target);
+                        variable_sub_expr_path);
                     if (!valobj_sp) {
                       error.SetErrorStringWithFormat(
                           "invalid expression path '%s' for variable '%s'",




More information about the lldb-commits mailing list