summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
diff options
context:
space:
mode:
authorTorok Edwin <edwintorok@gmail.com>2010-03-30 12:52:03 +0000
committerTorok Edwin <edwintorok@gmail.com>2010-03-30 12:52:03 +0000
commitcc1db611807f222f3d0aaf0b3ecfdc7c2880ead1 (patch)
treef8ccfbaa3ebbee2739ad95fd1c187bd60c418071 /llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
parent61b798a5ac24f3b9cdf4506a2252cefe2293f7df (diff)
downloadbcm5719-llvm-cc1db611807f222f3d0aaf0b3ecfdc7c2880ead1.tar.gz
bcm5719-llvm-cc1db611807f222f3d0aaf0b3ecfdc7c2880ead1.zip
Don't overwrite previous value, if it succeeded.
llvm-svn: 99886
Diffstat (limited to 'llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
index 9b3f25dc926..8add3f56d7d 100644
--- a/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
+++ b/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
@@ -265,7 +265,8 @@ GenericValue Interpreter::callExternalFunction(Function *F,
if (RF == RawFunctions->end()) {
RawFn = (RawFunc)(intptr_t)
sys::DynamicLibrary::SearchForAddressOfSymbol(F->getName());
- RawFn = (RawFunc)(intptr_t)getPointerToGlobalIfAvailable(F);
+ if (!RawnFn)
+ RawFn = (RawFunc)(intptr_t)getPointerToGlobalIfAvailable(F);
if (RawFn != 0)
RawFunctions->insert(std::make_pair(F, RawFn)); // Cache for later
} else {
OpenPOWER on IntegriCloud