This is a simple fix for getting error messages from dlerror in
authorChris Lattner <sabre@nondot.org>
Wed, 12 Mar 2008 00:50:01 +0000 (00:50 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 12 Mar 2008 00:50:01 +0000 (00:50 +0000)
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

lib/System/DynamicLibrary.cpp

index 9c52c8a18cd96cb0977eaf4c552c7cb3023e0fa0..bdbcbd406fdc703fed083cba1f86b70a19416f3d 100644 (file)
@@ -63,7 +63,8 @@ bool DynamicLibrary::LoadLibraryPermanently(const char *Filename,
                                             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);