This is a simple fix for getting error messages from dlerror in
LoadLibraryPermanently. The current code modifies the value of a pointer
that is passed by value, so the caller never gets the message.
Patch by Julien Lerouge!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48270 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/System/DynamicLibrary.cpp b/lib/System/DynamicLibrary.cpp
index 9c52c8a..bdbcbd4 100644
--- a/lib/System/DynamicLibrary.cpp
+++ b/lib/System/DynamicLibrary.cpp
@@ -63,7 +63,8 @@
std::string *ErrMsg) {
void *H = dlopen(Filename, RTLD_LAZY);
if (H == 0) {
- ErrMsg = new std::string(dlerror());
+ if (ErrMsg)
+ *ErrMsg = dlerror();
return true;
}
OpenedHandles.push_back(H);