[Lldb-commits] [lldb] r174947 - Fixed the way the ClangExpressionDeclMap looks

Sean Callanan scallanan at apple.com
Mon Feb 11 23:56:36 PST 2013


Author: spyffe
Date: Tue Feb 12 01:56:36 2013
New Revision: 174947

URL: http://llvm.org/viewvc/llvm-project?rev=174947&view=rev
Log:
Fixed the way the ClangExpressionDeclMap looks
up variables in the current stack frame to avoid
mutual recursion between the expression parser
and the synthetic child providers.  Variables
should only be looked up in a very simple way,
using no synthetic anything.

<rdar://problem/13173454>

Modified:
    lldb/trunk/source/Expression/ClangExpressionDeclMap.cpp

Modified: lldb/trunk/source/Expression/ClangExpressionDeclMap.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ClangExpressionDeclMap.cpp?rev=174947&r1=174946&r2=174947&view=diff
==============================================================================
--- lldb/trunk/source/Expression/ClangExpressionDeclMap.cpp (original)
+++ lldb/trunk/source/Expression/ClangExpressionDeclMap.cpp Tue Feb 12 01:56:36 2013
@@ -2332,9 +2332,13 @@ ClangExpressionDeclMap::FindVariableInSc
     VariableSP var_sp;
     Error err;
     
-    valobj = frame.GetValueForVariableExpressionPath(name.GetCString(), 
+    valobj = frame.GetValueForVariableExpressionPath(name.GetCString(),
                                                      eNoDynamicValues, 
-                                                     StackFrame::eExpressionPathOptionCheckPtrVsMember,
+                                                     StackFrame::eExpressionPathOptionCheckPtrVsMember ||
+                                                     StackFrame::eExpressionPathOptionsAllowDirectIVarAccess ||
+                                                     StackFrame::eExpressionPathOptionsNoFragileObjcIvar ||
+                                                     StackFrame::eExpressionPathOptionsNoSyntheticChildren ||
+                                                     StackFrame::eExpressionPathOptionsNoSyntheticArrayRange,
                                                      var_sp,
                                                      err);
         
@@ -2948,8 +2952,11 @@ ClangExpressionDeclMap::FindExternalVisi
         {
             valobj = frame->GetValueForVariableExpressionPath(name_unique_cstr, 
                                                               eNoDynamicValues, 
-                                                              StackFrame::eExpressionPathOptionCheckPtrVsMember
-                                                              | StackFrame::eExpressionPathOptionsAllowDirectIVarAccess,
+                                                              StackFrame::eExpressionPathOptionCheckPtrVsMember ||
+                                                              StackFrame::eExpressionPathOptionsAllowDirectIVarAccess ||
+                                                              StackFrame::eExpressionPathOptionsNoFragileObjcIvar ||
+                                                              StackFrame::eExpressionPathOptionsNoSyntheticChildren ||
+                                                              StackFrame::eExpressionPathOptionsNoSyntheticArrayRange,
                                                               var,
                                                               err);
             





More information about the lldb-commits mailing list