Extended the IR interpreter to support symbols

that have valid load addresses.

llvm-svn: 151636
This commit is contained in:
Sean Callanan 2012-02-28 17:55:31 +00:00
parent 3460880674
commit 378ecbe6f4
1 changed files with 16 additions and 4 deletions

View File

@ -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;
}