diff options
Diffstat (limited to 'contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp')
-rw-r--r-- | contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp b/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp index 9e71b10..94e8090 100644 --- a/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp @@ -153,6 +153,14 @@ Function *ExecutionEngine::FindFunctionNamed(const char *FnName) { return nullptr; } +GlobalVariable *ExecutionEngine::FindGlobalVariableNamed(const char *Name, bool AllowInternal) { + for (unsigned i = 0, e = Modules.size(); i != e; ++i) { + GlobalVariable *GV = Modules[i]->getGlobalVariable(Name,AllowInternal); + if (GV && !GV->isDeclaration()) + return GV; + } + return nullptr; +} uint64_t ExecutionEngineState::RemoveMapping(StringRef Name) { GlobalAddressMapTy::iterator I = GlobalAddressMap.find(Name); @@ -376,7 +384,7 @@ void ExecutionEngine::runStaticConstructorsDestructors(Module &module, // Execute the ctor/dtor function! if (Function *F = dyn_cast<Function>(FP)) - runFunction(F, std::vector<GenericValue>()); + runFunction(F, None); // FIXME: It is marginally lame that we just do nothing here if we see an // entry we don't recognize. It might not be unreasonable for the verifier |