This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Diagnostics from GCC_DRIVER_HOST_INITIALIZATION
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: Ryan Mansfield <rmansfield at qnx dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 19 Jul 2012 17:06:39 -0500
- Subject: Re: Diagnostics from GCC_DRIVER_HOST_INITIALIZATION
- References: <5008788E.6000306@qnx.com>
On Thu, Jul 19, 2012 at 4:13 PM, Ryan Mansfield <rmansfield@qnx.com> wrote:
> GCC_DRIVER_HOST_INITIALIZATION happens before diagnostic_initialize, this
> can cause crashes if it call diagnostics such as warning, or fatal_error are
> used in the macro. One example would be in darwin-driver.c where
> darwin_find_version_from_kernel can call warning(). Another example is in
> xm-djgpp.h where it calls fatal (this appears to have bit-rotted with the
> fatal -> fatal_error switch)
>
> Would moving the GCC_DRIVER_HOST_INITIALIZATION after diagnostic_initialize
> be OK?
yes, I think so.
>
> Index: gcc.c
> ===================================================================
> --- gcc.c (revision 189681)
> +++ gcc.c (working copy)
> @@ -6189,17 +6189,18 @@
> CL_DRIVER,
> &decoded_options,
> &decoded_options_count);
>
> -#ifdef GCC_DRIVER_HOST_INITIALIZATION
> - /* Perform host dependent initialization when needed. */
> - GCC_DRIVER_HOST_INITIALIZATION;
> -#endif
> -
> /* Unlock the stdio streams. */
> unlock_std_streams ();
>
> gcc_init_libintl ();
>
> diagnostic_initialize (global_dc, 0);
> +
> +#ifdef GCC_DRIVER_HOST_INITIALIZATION
> + /* Perform host dependent initialization when needed. */
> + GCC_DRIVER_HOST_INITIALIZATION;
> +#endif
> +
> if (atexit (delete_temp_files) != 0)
> fatal_error ("atexit failed");
>
>
> Regards,
>
> Ryan Mansfield