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)