Same in collect2. On 09 Oct 15:40, Ilya Tocar wrote: > Ping. > > On 29 Sep 18:02, Ilya Tocar wrote: > > Hi, > > > > Currently if call to atexit (lto_wrapper_cleanup) fails we > > won't report error as we haven't initialized error-reporting > > infrastructure. This patch moves this call after diagnostic_initialize. > > I hope that we can't exit inside diagnostic_initialize. Otherwise we > > won't cleanup after it. > > Ok for trunk? > >
--- gcc/collect2.c | 6 +++--- gcc/lto-wrapper.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gcc/collect2.c b/gcc/collect2.c index c54e6fb..b0784e8 100644 --- a/gcc/collect2.c +++ b/gcc/collect2.c @@ -955,9 +955,6 @@ main (int argc, char **argv) signal (SIGCHLD, SIG_DFL); #endif - if (atexit (collect_atexit) != 0) - fatal_error ("atexit failed"); - /* Unlock the stdio streams. */ unlock_std_streams (); @@ -965,6 +962,9 @@ main (int argc, char **argv) diagnostic_initialize (global_dc, 0); + if (atexit (collect_atexit) != 0) + fatal_error ("atexit failed"); + /* Do not invoke xcalloc before this point, since locale needs to be set first, in case a diagnostic is issued. */ diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c index 8033b15..d97f617 100644 --- a/gcc/lto-wrapper.c +++ b/gcc/lto-wrapper.c @@ -879,13 +879,13 @@ main (int argc, char *argv[]) xmalloc_set_program_name (progname); - if (atexit (lto_wrapper_cleanup) != 0) - fatal_error ("atexit failed"); - gcc_init_libintl (); diagnostic_initialize (global_dc, 0); + if (atexit (lto_wrapper_cleanup) != 0) + fatal_error ("atexit failed"); + if (signal (SIGINT, SIG_IGN) != SIG_IGN) signal (SIGINT, fatal_signal); #ifdef SIGHUP -- 1.8.3.1