re PR bootstrap/71400 (profiledbootstrap failed)
authorAaron Conole <aconole@redhat.com>
Mon, 6 Jun 2016 15:24:24 +0000 (15:24 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Mon, 6 Jun 2016 15:24:24 +0000 (15:24 +0000)
PR libgcc/71400
* libgcov-driver-system.c (__gcov_error_file): Disable if IN_GCOV_TOOL.
(get_gcov_error_file): Check __gcov_error_file before trying to
initialize it.
(gcov_error): Always use get_gcov_error_file.

Co-Authored-By: Nathan Sidwell <nathan@acm.org>
From-SVN: r237135

libgcc/ChangeLog
libgcc/libgcov-driver-system.c

index a003c5171fbf28f1222c32df210bcf2d09ec891c..544ea65f102f8ddfcc02af01fb2075c9242d06c7 100644 (file)
@@ -1,3 +1,12 @@
+2016-06-05  Aaron Conole  <aconole@redhat.com>
+           Nathan Sidwell  <nathan@acm.org>
+
+       PR libgcc/71400
+       * libgcov-driver-system.c (__gcov_error_file): Disable if IN_GCOV_TOOL.
+       (get_gcov_error_file): Check __gcov_error_file before trying to
+       initialize it.
+       (gcov_error): Always use get_gcov_error_file.
+
 2016-06-02  Aaron Conole  <aconole@redhat.com>
 
        * libgcov-driver-system.c (__gcov_error_file): New.
index ff8a521690b150e1177c9e647bd615d4ccd715e4..e617afabee16e6c168ef60215a9e5a45b9e1b30c 100644 (file)
@@ -23,31 +23,32 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
+#if !IN_GCOV_TOOL
 /* Configured via the GCOV_ERROR_FILE environment variable;
    it will either be stderr, or a file of the user's choosing.
    Non-static to prevent multiple gcov-aware shared objects from
    instantiating their own copies. */
 FILE *__gcov_error_file = NULL;
+#endif
 
 /* A utility function to populate the __gcov_error_file pointer.
    This should NOT be called outside of the gcov system driver code. */
 
 static FILE *
-get_gcov_error_file(void)
+get_gcov_error_file (void)
 {
-#if !IN_GCOV_TOOL
+#if IN_GCOV_TOOL
   return stderr;
 #else
-  char *gcov_error_filename = getenv ("GCOV_ERROR_FILE");
-
-  if (gcov_error_filename)
+  if (!__gcov_error_file)
     {
-      FILE *openfile = fopen (gcov_error_filename, "a");
-      if (openfile)
-        __gcov_error_file = openfile;
+      const char *gcov_error_filename = getenv ("GCOV_ERROR_FILE");
+
+      if (gcov_error_filename)
+       __gcov_error_file = fopen (gcov_error_filename, "a");
+      if (!__gcov_error_file)
+       __gcov_error_file = stderr;
     }
-  if (!__gcov_error_file)
-    __gcov_error_file = stderr;
   return __gcov_error_file;
 #endif
 }
@@ -60,11 +61,8 @@ gcov_error (const char *fmt, ...)
   int ret;
   va_list argp;
 
-  if (!__gcov_error_file)
-    __gcov_error_file = get_gcov_error_file ();
-
   va_start (argp, fmt);
-  ret = vfprintf (__gcov_error_file, fmt, argp);
+  ret = vfprintf (get_gcov_error_file (), fmt, argp);
   va_end (argp);
   return ret;
 }