diff options
author | Sean Callanan <scallanan@apple.com> | 2013-02-12 07:56:36 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2013-02-12 07:56:36 +0000 |
commit | af77617b2111e82875935800b6afe38eea8601ca (patch) | |
tree | acfb4693370b2caa925257490321d1ec87ca4f07 /lldb/source/Expression/ClangExpressionDeclMap.cpp | |
parent | 3d1e2c960df1f2a9865eb312af067a469d413588 (diff) | |
download | bcm5719-llvm-af77617b2111e82875935800b6afe38eea8601ca.tar.gz bcm5719-llvm-af77617b2111e82875935800b6afe38eea8601ca.zip |
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>
llvm-svn: 174947
Diffstat (limited to 'lldb/source/Expression/ClangExpressionDeclMap.cpp')
-rw-r--r-- | lldb/source/Expression/ClangExpressionDeclMap.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lldb/source/Expression/ClangExpressionDeclMap.cpp b/lldb/source/Expression/ClangExpressionDeclMap.cpp index 21fc0fd84d4..92dfbef26b9 100644 --- a/lldb/source/Expression/ClangExpressionDeclMap.cpp +++ b/lldb/source/Expression/ClangExpressionDeclMap.cpp @@ -2332,9 +2332,13 @@ ClangExpressionDeclMap::FindVariableInScope 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::FindExternalVisibleDecls (NameSearchContext &context, { valobj = frame->GetValueForVariableExpressionPath(name_unique_cstr, eNoDynamicValues, - StackFrame::eExpressionPathOptionCheckPtrVsMember - | StackFrame::eExpressionPathOptionsAllowDirectIVarAccess, + StackFrame::eExpressionPathOptionCheckPtrVsMember || + StackFrame::eExpressionPathOptionsAllowDirectIVarAccess || + StackFrame::eExpressionPathOptionsNoFragileObjcIvar || + StackFrame::eExpressionPathOptionsNoSyntheticChildren || + StackFrame::eExpressionPathOptionsNoSyntheticArrayRange, var, err); |