summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/ClangExpressionDeclMap.cpp
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2012-02-28 17:55:31 +0000
committerSean Callanan <scallanan@apple.com>2012-02-28 17:55:31 +0000
commit378ecbe6f476012e58b270ab6dffa04687944628 (patch)
tree9b5b3955532a760048a5611d4c4cc89faa601420 /lldb/source/Expression/ClangExpressionDeclMap.cpp
parent346088067452f37a1c1d12a37698f53068e936b5 (diff)
downloadbcm5719-llvm-378ecbe6f476012e58b270ab6dffa04687944628.tar.gz
bcm5719-llvm-378ecbe6f476012e58b270ab6dffa04687944628.zip
Extended the IR interpreter to support symbols
that have valid load addresses. llvm-svn: 151636
Diffstat (limited to 'lldb/source/Expression/ClangExpressionDeclMap.cpp')
-rw-r--r--lldb/source/Expression/ClangExpressionDeclMap.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/lldb/source/Expression/ClangExpressionDeclMap.cpp b/lldb/source/Expression/ClangExpressionDeclMap.cpp
index 02c93cb18f3..971a3f6416e 100644
--- a/lldb/source/Expression/ClangExpressionDeclMap.cpp
+++ b/lldb/source/Expression/ClangExpressionDeclMap.cpp
@@ -1043,10 +1043,22 @@ ClangExpressionDeclMap::LookupDecl (clang::NamedDecl *decl, ClangExpressionVaria
Value ret;
- uint64_t symbol_addr = sym_address.GetFileAddress();
-
- ret.GetScalar() = symbol_addr;
- ret.SetValueType(Value::eValueTypeFileAddress);
+ ProcessSP process_sp (m_parser_vars->m_exe_ctx.GetProcessSP());
+
+ if (process_sp)
+ {
+ uint64_t symbol_load_addr = sym_address.GetLoadAddress(&process_sp->GetTarget());
+
+ ret.GetScalar() = symbol_load_addr;
+ ret.SetValueType(Value::eValueTypeLoadAddress);
+ }
+ else
+ {
+ uint64_t symbol_file_addr = sym_address.GetFileAddress();
+
+ ret.GetScalar() = symbol_file_addr;
+ ret.SetValueType(Value::eValueTypeFileAddress);
+ }
return ret;
}
OpenPOWER on IntegriCloud