Fix bug with function resolution when using IR Interpreter
authorTed Woodward <ted.woodward@codeaurora.org>
Tue, 1 Mar 2016 21:53:26 +0000 (21:53 +0000)
committerTed Woodward <ted.woodward@codeaurora.org>
Tue, 1 Mar 2016 21:53:26 +0000 (21:53 +0000)
commit7071c5fd64d666fc1a097cacdf87f676655e46a0
treefa280e3b8342a8c1d7bdb87c8955f70ae00b79e7
parentb1f5c62d5f38e6130a6a74bca45d4cfc4aaaff6a
Fix bug with function resolution when using IR Interpreter

Summary: Recent changes to the expression parser broke function name resolution when using the IR interpreter instead of JIT. This patch changes the IRMemoryMap ivar in InterpreterStackFrame to an IRExecutionUnitSP (which is a subclass), allowing InterpreterStackFrame::ResolveConstantValue() to call FindSymbol() on the name of the Value when it's a FunctionVal. It also changes IRExecutionUnit::FindInSymbols() to call GetFileAddress() on the symball if ResolveCallableAddress() fails and there is no valid Process.

Reviewers: spyffe

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D17745

llvm-svn: 262407
lldb/include/lldb/Expression/IRInterpreter.h
lldb/source/Expression/IRExecutionUnit.cpp
lldb/source/Expression/IRInterpreter.cpp
lldb/source/Expression/LLVMUserExpression.cpp