diff options
| author | Sean Callanan <scallanan@apple.com> | 2010-08-23 23:09:38 +0000 |
|---|---|---|
| committer | Sean Callanan <scallanan@apple.com> | 2010-08-23 23:09:38 +0000 |
| commit | 64dfc9a3f9fb89968c3e1899322bfbc7f3141158 (patch) | |
| tree | 3b664f3ca0e7828d67957edceb3932ebb5a41592 /lldb/source/Expression/IRForTarget.cpp | |
| parent | f757a12dfc91b3ac8464ba2c9971d92e4bfafbec (diff) | |
| download | bcm5719-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.cpp | 16 |
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) |

