Wrote the code that looks at a context to see
if the variables in that context allow a particular
JIT compiled expression to run in that context.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108485 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/IRForTarget.cpp b/source/Expression/IRForTarget.cpp
index fd814fc..065c760 100644
--- a/source/Expression/IRForTarget.cpp
+++ b/source/Expression/IRForTarget.cpp
@@ -90,12 +90,26 @@
{
clang::NamedDecl *named_decl = DeclForGlobalValue(M, global_variable);
+ std::string name = named_decl->getName().str();
+
+ void *qual_type = NULL;
+
+ if (clang::ValueDecl *value_decl = dyn_cast<clang::ValueDecl>(named_decl))
+ qual_type = value_decl->getType().getAsOpaquePtr();
+ else
+ return false;
+
const llvm::Type *value_type = global_variable->getType();
size_t value_size = m_target_data->getTypeStoreSize(value_type);
off_t value_alignment = m_target_data->getPrefTypeAlignment(value_type);
- if (named_decl && !DM->AddValueToStruct(V, named_decl, value_size, value_alignment))
+ if (named_decl && !DM->AddValueToStruct(V,
+ named_decl,
+ name,
+ qual_type,
+ value_size,
+ value_alignment))
return false;
}