summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/IRForTarget.cpp
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2010-08-23 23:09:38 +0000
committerSean Callanan <scallanan@apple.com>2010-08-23 23:09:38 +0000
commit64dfc9a3f9fb89968c3e1899322bfbc7f3141158 (patch)
tree3b664f3ca0e7828d67957edceb3932ebb5a41592 /lldb/source/Expression/IRForTarget.cpp
parentf757a12dfc91b3ac8464ba2c9971d92e4bfafbec (diff)
downloadbcm5719-llvm-64dfc9a3f9fb89968c3e1899322bfbc7f3141158.tar.gz
bcm5719-llvm-64dfc9a3f9fb89968c3e1899322bfbc7f3141158.zip
Refactored ClangExpressionDeclMap to use
ClangExpressionVariables for found external variables as well as for struct members, replacing the Tuple and StructMember data structures. llvm-svn: 111859
Diffstat (limited to 'lldb/source/Expression/IRForTarget.cpp')
-rw-r--r--lldb/source/Expression/IRForTarget.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/lldb/source/Expression/IRForTarget.cpp b/lldb/source/Expression/IRForTarget.cpp
index 2c0f86c4120..c14891b160c 100644
--- a/lldb/source/Expression/IRForTarget.cpp
+++ b/lldb/source/Expression/IRForTarget.cpp
@@ -137,7 +137,7 @@ IRForTarget::createResultVariable(llvm::Module &M,
std::string new_result_name;
m_decl_map->GetPersistentResultName(new_result_name);
- m_decl_map->AddPersistentVariable(new_result_name.c_str(), result_decl_type);
+ m_decl_map->AddPersistentVariable(result_decl, new_result_name.c_str(), result_decl_type);
if (log)
log->Printf("Creating a new result global: %s", new_result_name.c_str());
@@ -364,7 +364,7 @@ IRForTarget::RewritePersistentAlloc(llvm::Instruction *persistent_alloc,
lldb_private::TypeFromParser result_decl_type (decl->getType().getAsOpaquePtr(),
&decl->getASTContext());
- if (!m_decl_map->AddPersistentVariable(decl->getName().str().c_str(), result_decl_type))
+ if (!m_decl_map->AddPersistentVariable(decl, decl->getName().str().c_str(), result_decl_type))
return false;
GlobalVariable *persistent_global = new GlobalVariable(M,
@@ -526,10 +526,8 @@ IRForTarget::MaybeHandleVariable(Module &M,
size_t value_size = m_target_data->getTypeStoreSize(value_type);
off_t value_alignment = m_target_data->getPrefTypeAlignment(value_type);
- if (named_decl && !m_decl_map->AddValueToStruct(V,
- named_decl,
- name,
- lldb_private::TypeFromParser(qual_type, ast_context),
+ if (named_decl && !m_decl_map->AddValueToStruct(named_decl,
+ V,
value_size,
value_alignment))
return false;
@@ -939,6 +937,9 @@ IRForTarget::runOnModule(Module &M)
bbi != function->end();
++bbi)
{
+ if (!removeGuards(M, *bbi))
+ return false;
+
if (!rewritePersistentAllocs(M, *bbi))
return false;
@@ -947,9 +948,6 @@ IRForTarget::runOnModule(Module &M)
if (!resolveExternals(M, *bbi))
return false;
-
- if (!removeGuards(M, *bbi))
- return false;
}
if (log)
OpenPOWER on IntegriCloud