[Profile] bug fix: profile dir not recursively created
authorXinliang David Li <davidxl@google.com>
Thu, 21 Jul 2016 03:38:07 +0000 (03:38 +0000)
committerXinliang David Li <davidxl@google.com>
Thu, 21 Jul 2016 03:38:07 +0000 (03:38 +0000)
llvm-svn: 276234

compiler-rt/lib/profile/InstrProfilingFile.c

index 76d81d0..1b49d6f 100644 (file)
@@ -236,6 +236,11 @@ static void truncateCurrentFile(void) {
     __llvm_profile_recursive_mkdir(Copy);
   }
 
+  /* By pass file truncation to allow online raw profile
+   * merging. */
+  if (lprofCurFilename.MergePoolSize)
+    return;
+
   /* Truncate the file.  Later we'll reopen and append. */
   File = fopen(Filename, "w");
   if (!File)
@@ -350,8 +355,7 @@ static void parseAndSetFilename(const char *FilenamePat,
               getPNSStr(PNS));
   }
 
-  if (!lprofCurFilename.MergePoolSize)
-    truncateCurrentFile();
+  truncateCurrentFile();
 }
 
 /* Return buffer length that is required to store the current profile