Refactored ClangExpressionDeclMap to use
ClangExpressionVariables for found external variables
as well as for struct members, replacing the Tuple
and StructMember data structures.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@111859 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/IRForTarget.cpp b/source/Expression/IRForTarget.cpp
index 2c0f86c..c14891b 100644
--- a/source/Expression/IRForTarget.cpp
+++ b/source/Expression/IRForTarget.cpp
@@ -137,7 +137,7 @@
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 @@
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 @@
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 @@
bbi != function->end();
++bbi)
{
+ if (!removeGuards(M, *bbi))
+ return false;
+
if (!rewritePersistentAllocs(M, *bbi))
return false;
@@ -947,9 +948,6 @@
if (!resolveExternals(M, *bbi))
return false;
-
- if (!removeGuards(M, *bbi))
- return false;
}
if (log)