[compiler-rt] r209097 - profile: add logging on failure

Saleem Abdulrasool compnerd at compnerd.org
Sun May 18 12:33:38 PDT 2014


Author: compnerd
Date: Sun May 18 14:33:37 2014
New Revision: 209097

URL: http://llvm.org/viewvc/llvm-project?rev=209097&view=rev
Log:
profile: add logging on failure

Add logging to report any failures that may occur on calls to libdl.  Without
this, it is difficult to identify the actual problem if the test fails.

Modified:
    compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-main.c

Modified: compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-main.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-main.c?rev=209097&r1=209096&r2=209097&view=diff
==============================================================================
--- compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-main.c (original)
+++ compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-main.c Sun May 18 14:33:37 2014
@@ -1,3 +1,7 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+
 #ifdef DLOPEN_FUNC_DIR
 #include <dlfcn.h>
 #else
@@ -7,12 +11,37 @@ void func2(int K);
 
 int main(int argc, char *argv[]) {
 #ifdef DLOPEN_FUNC_DIR
+  dlerror();
   void *f1_handle = dlopen(DLOPEN_FUNC_DIR"/func.shared", DLOPEN_FLAGS);
+  if (f1_handle == NULL) {
+    fprintf(stderr, "unable to open '" DLOPEN_FUNC_DIR "/func.shared': %s\n",
+            dlerror());
+    return EXIT_FAILURE;
+  }
+
   void (*func)(int) = (void (*)(int))dlsym(f1_handle, "func");
+  if (func == NULL) {
+    fprintf(stderr, "unable to lookup symbol 'func': %s\n", dlerror());
+    return EXIT_FAILURE;
+  }
+
   void *f2_handle = dlopen(DLOPEN_FUNC_DIR"/func2.shared", DLOPEN_FLAGS);
+  if (f2_handle == NULL) {
+    fprintf(stderr, "unable to open '" DLOPEN_FUNC_DIR "/func2.shared': %s\n",
+            dlerror());
+    return EXIT_FAILURE;
+  }
+
   void (*func2)(int) = (void (*)(int))dlsym(f2_handle, "func2");
+  if (func2 == NULL) {
+    fprintf(stderr, "unable to lookup symbol 'func2': %s\n", dlerror());
+    return EXIT_FAILURE;
+  }
 #endif
+
   func(1);
   func2(0);
-  return 0;
+
+  return EXIT_SUCCESS;
 }
+





More information about the llvm-commits mailing list