summaryrefslogtreecommitdiff
path: root/lib/ExecutionEngine
diff options
context:
space:
mode:
authorJeffrey Yasskin <jyasskin@google.com>2010-02-12 23:05:31 +0000
committerJeffrey Yasskin <jyasskin@google.com>2010-02-12 23:05:31 +0000
commit3174f6703e534366382390b7c7daa913483f4340 (patch)
tree6974ef847a1b72e8b7828358441dc84c0169761b /lib/ExecutionEngine
parent835acabce13993e210b7cef0020a585125f9cb1e (diff)
downloadllvm-3174f6703e534366382390b7c7daa913483f4340.tar.gz
llvm-3174f6703e534366382390b7c7daa913483f4340.tar.bz2
llvm-3174f6703e534366382390b7c7daa913483f4340.tar.xz
Make JIT::runFunction clean up the generated stub function.
Patch by Shivram K! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96037 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine')
-rw-r--r--lib/ExecutionEngine/JIT/JIT.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp
index 59a9a3dfe0..3684a27744 100644
--- a/lib/ExecutionEngine/JIT/JIT.cpp
+++ b/lib/ExecutionEngine/JIT/JIT.cpp
@@ -553,8 +553,12 @@ GenericValue JIT::runFunction(Function *F,
else
ReturnInst::Create(F->getContext(), StubBB); // Just return void.
- // Finally, return the value returned by our nullary stub function.
- return runFunction(Stub, std::vector<GenericValue>());
+ // Finally, call our nullary stub function.
+ GenericValue Result = runFunction(Stub, std::vector<GenericValue>());
+ // Erase it, since no other function can have a reference to it.
+ Stub->eraseFromParent();
+ // And return the result.
+ return Result;
}
void JIT::RegisterJITEventListener(JITEventListener *L) {