projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't overwrite previous value, if it succeeded.
[oota-llvm.git]
/
lib
/
ExecutionEngine
/
Interpreter
/
ExternalFunctions.cpp
diff --git
a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
index 9b3f25dc92676faf32c3c7e822d8efa1947f9ccc..8add3f56d7dc8c2f1d082a86f0766dbac36cf654 100644
(file)
--- a/
lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
+++ b/
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());
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 {
if (RawFn != 0)
RawFunctions->insert(std::make_pair(F, RawFn)); // Cache for later
} else {