Extended the IR interpreter to support symbols
that have valid load addresses.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151636 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangExpressionDeclMap.cpp b/source/Expression/ClangExpressionDeclMap.cpp
index 02c93cb..971a3f6 100644
--- a/source/Expression/ClangExpressionDeclMap.cpp
+++ b/source/Expression/ClangExpressionDeclMap.cpp
@@ -1043,10 +1043,22 @@
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;
}