summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/ClangExpressionDeclMap.cpp
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2013-02-12 07:56:36 +0000
committerSean Callanan <scallanan@apple.com>2013-02-12 07:56:36 +0000
commitaf77617b2111e82875935800b6afe38eea8601ca (patch)
treeacfb4693370b2caa925257490321d1ec87ca4f07 /lldb/source/Expression/ClangExpressionDeclMap.cpp
parent3d1e2c960df1f2a9865eb312af067a469d413588 (diff)
downloadbcm5719-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.cpp15
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);
OpenPOWER on IntegriCloud