From 0a0ec53d12b6a8ba94dc19db514ce1d3ef2af669 Mon Sep 17 00:00:00 2001 From: Aaron Conole Date: Mon, 6 Jun 2016 15:24:24 +0000 Subject: re PR bootstrap/71400 (profiledbootstrap failed) 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 From-SVN: r237135 --- libgcc/libgcov-driver-system.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'libgcc/libgcov-driver-system.c') diff --git a/libgcc/libgcov-driver-system.c b/libgcc/libgcov-driver-system.c index ff8a521690b..e617afabee1 100644 --- a/libgcc/libgcov-driver-system.c +++ b/libgcc/libgcov-driver-system.c @@ -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 . */ +#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; } -- cgit v1.2.1