diff options
author | Chris Lattner <sabre@nondot.org> | 2004-11-19 08:44:07 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-11-19 08:44:07 +0000 |
commit | a98c5453b28b37c3fad118712ff4e634bfc36163 (patch) | |
tree | e8a6624bd266e18f4c7899e0de65d540c21e8484 /lib/ExecutionEngine | |
parent | bc3a5378d0854f352da38ad3574409103220fc9d (diff) | |
download | external_llvm-a98c5453b28b37c3fad118712ff4e634bfc36163.zip external_llvm-a98c5453b28b37c3fad118712ff4e634bfc36163.tar.gz external_llvm-a98c5453b28b37c3fad118712ff4e634bfc36163.tar.bz2 |
This is a horrible hack to work around libstdc++ bugs :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17988 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine')
-rw-r--r-- | lib/ExecutionEngine/ExecutionEngine.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp index 7fb4ad3..812bec1 100644 --- a/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/lib/ExecutionEngine/ExecutionEngine.cpp @@ -442,6 +442,9 @@ GenericValue ExecutionEngine::LoadValueFromMemory(GenericValue *Ptr, // void ExecutionEngine::InitializeMemory(const Constant *Init, void *Addr) { if (isa<UndefValue>(Init)) { + // FIXME: THIS SHOULD NOT BE NEEDED. + unsigned Size = getTargetData().getTypeSize(Init->getType()); + memset(Addr, 0, Size); return; } else if (Init->getType()->isFirstClassType()) { GenericValue Val = getConstantValue(Init); @@ -524,13 +527,14 @@ void ExecutionEngine::EmitGlobalVariable(const GlobalVariable *GV) { DEBUG(std::cerr << "Global '" << GV->getName() << "' -> " << GA << "\n"); const Type *ElTy = GV->getType()->getElementType(); + unsigned GVSize = getTargetData().getTypeSize(ElTy); if (GA == 0) { // If it's not already specified, allocate memory for the global. - GA = new char[getTargetData().getTypeSize(ElTy)]; + GA = new char[GVSize]; addGlobalMapping(GV, GA); } InitializeMemory(GV->getInitializer(), GA); - NumInitBytes += getTargetData().getTypeSize(ElTy); + NumInitBytes += GVSize; ++NumGlobals; } |