On 12-07-19 06:06 PM, Gabriel Dos Reis wrote:
On Thu, Jul 19, 2012 at 4:13 PM, Ryan Mansfield <rmansfi...@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.
OK, then here's a changelog entry for the diff.
2012-07-20 Ryan Mansfield <rmansfi...@qnx.com>
* gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
diagnostic_initialize.
Could someone please apply the change?
Regards,
Ryan Mansfield
Index: gcc.c
===================================================================
--- gcc.c (revision 189716)
+++ 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");