diff options
author | Aaron Conole <aconole@redhat.com> | 2016-06-06 15:24:24 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2016-06-06 15:24:24 +0000 |
commit | 0a0ec53d12b6a8ba94dc19db514ce1d3ef2af669 (patch) | |
tree | 93fdd91271bc27e634bffdb53c15783f8bdb3b0e /libgcc/libgcov-driver-system.c | |
parent | 93671519e202e3bc5ab592bb6318aa738e4ae58f (diff) | |
download | gcc-0a0ec53d12b6a8ba94dc19db514ce1d3ef2af669.zip gcc-0a0ec53d12b6a8ba94dc19db514ce1d3ef2af669.tar.gz gcc-0a0ec53d12b6a8ba94dc19db514ce1d3ef2af669.tar.bz2 |
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 <nathan@acm.org>
From-SVN: r237135
Diffstat (limited to 'libgcc/libgcov-driver-system.c')
-rw-r--r-- | libgcc/libgcov-driver-system.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/libgcc/libgcov-driver-system.c b/libgcc/libgcov-driver-system.c index ff8a521..e617afa 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 <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; } |