[llvm-commits] [llvm] r153538 - /llvm/trunk/runtime/libprofile/GCDAProfiling.c
Bill Wendling
isanbard at gmail.com
Tue Mar 27 14:17:04 PDT 2012
Author: void
Date: Tue Mar 27 16:17:04 2012
New Revision: 153538
URL: http://llvm.org/viewvc/llvm-project?rev=153538&view=rev
Log:
Try to use the CWD if the path to the GCDA output is not available (e.g., the
executable has been moved to another machine). If that's not available
(read-only or something), then exit gracefully.
<rdar://problem/11111686>
Modified:
llvm/trunk/runtime/libprofile/GCDAProfiling.c
Modified: llvm/trunk/runtime/libprofile/GCDAProfiling.c
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/runtime/libprofile/GCDAProfiling.c?rev=153538&r1=153537&r2=153538&view=diff
==============================================================================
--- llvm/trunk/runtime/libprofile/GCDAProfiling.c (original)
+++ llvm/trunk/runtime/libprofile/GCDAProfiling.c Tue Mar 27 16:17:04 2012
@@ -113,6 +113,20 @@
recursive_mkdir(filename);
output_file = fopen(filename, "wb");
+ if (!output_file) {
+ filename[0] = '\0'; /* The size of filename should be big enough. */
+ char *cptr = strrchr(orig_filename, '/');
+ strcat(filename, cptr ? cptr + 1 : orig_filename);
+ output_file = fopen(filename, "wb");
+
+ if (!output_file) {
+ fprintf(stderr, "LLVM profiling runtime: while opening '%s': ",
+ filename);
+ perror("");
+ exit(1);
+ }
+ }
+
/* gcda file, version 404*, stamp LLVM. */
#ifdef __APPLE__
fwrite("adcg*204MVLL", 12, 1, output_file);
More information about the llvm-commits
mailing list