aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ExecutionEngine/Interpreter
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-06-01 22:23:29 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-06-01 22:23:29 +0000
commite770787be101e522425f658f76e4bb3091498f99 (patch)
tree7cebfde56638ae3e2a10a96932216738a0dc3932 /lib/ExecutionEngine/Interpreter
parente7ae1a9dee1b023dbd5f7d6d1fbdb165fbbcb26c (diff)
downloadexternal_llvm-e770787be101e522425f658f76e4bb3091498f99.zip
external_llvm-e770787be101e522425f658f76e4bb3091498f99.tar.gz
external_llvm-e770787be101e522425f658f76e4bb3091498f99.tar.bz2
For PR1486:
Avoid overwriting the APInt instance with 0 bytes which causes the bitwidth to be set to 0 (illegal) producing a subsequent assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37391 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/Interpreter')
-rw-r--r--lib/ExecutionEngine/Interpreter/Execution.cpp2
-rw-r--r--lib/ExecutionEngine/Interpreter/Interpreter.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/ExecutionEngine/Interpreter/Execution.cpp b/lib/ExecutionEngine/Interpreter/Execution.cpp
index 0fff38c..281f774 100644
--- a/lib/ExecutionEngine/Interpreter/Execution.cpp
+++ b/lib/ExecutionEngine/Interpreter/Execution.cpp
@@ -610,7 +610,7 @@ void Interpreter::popStackAndReturnValueToCaller (const Type *RetTy,
if (RetTy && RetTy->isInteger()) { // Nonvoid return type?
ExitValue = Result; // Capture the exit value of the program
} else {
- memset(&ExitValue, 0, sizeof(ExitValue));
+ memset(&ExitValue.Untyped, 0, sizeof(ExitValue.Untyped));
}
} else {
// If we have a previous stack frame, and we have a previous call,
diff --git a/lib/ExecutionEngine/Interpreter/Interpreter.cpp b/lib/ExecutionEngine/Interpreter/Interpreter.cpp
index 0792edd..3a156bf 100644
--- a/lib/ExecutionEngine/Interpreter/Interpreter.cpp
+++ b/lib/ExecutionEngine/Interpreter/Interpreter.cpp
@@ -54,7 +54,7 @@ ExecutionEngine *Interpreter::create(ModuleProvider *MP, std::string* ErrStr) {
//
Interpreter::Interpreter(Module *M) : ExecutionEngine(M), TD(M) {
- memset(&ExitValue, 0, sizeof(ExitValue));
+ memset(&ExitValue.Untyped, 0, sizeof(ExitValue.Untyped));
setTargetData(&TD);
// Initialize the "backend"
initializeExecutionEngine();