InstrProf: Optionally print an error when emitting profile data fails
authorJustin Bogner <mail@justinbogner.com>
Fri, 16 Jan 2015 20:10:56 +0000 (20:10 +0000)
committerJustin Bogner <mail@justinbogner.com>
Fri, 16 Jan 2015 20:10:56 +0000 (20:10 +0000)
Debugging a missing profile is a bit painful right now. We can make
people's lives a bit easier by adding a knob to enable printing a
helpful error message for such failures.

llvm-svn: 226312

compiler-rt/lib/profile/InstrProfilingFile.c

index 5aef390..346665f 100644 (file)
@@ -11,6 +11,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <sys/errno.h>
 
 #define UNCONST(ptr) ((void *)(uintptr_t)(ptr))
 
@@ -175,7 +176,11 @@ int __llvm_profile_write_file(void) {
     return -1;
 
   /* Write the file. */
-  return writeFileWithName(__llvm_profile_CurrentFilename);
+  int rc = writeFileWithName(__llvm_profile_CurrentFilename);
+  if (rc && getenv("LLVM_PROFILE_VERBOSE_ERRORS"))
+    fprintf(stderr, "LLVM Profile: Failed to write file \"%s\": %s\n",
+            __llvm_profile_CurrentFilename, strerror(errno));
+  return rc;
 }
 
 static void writeFileWithoutReturn(void) {