aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index c7c9accb6f5..7f8b091baaa 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1861,6 +1861,9 @@ compile_file (void)
dw2_output_indirect_constants ();
+ /* Flush any pending equate directives. */
+ process_pending_assemble_output_defs ();
+
if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities)
{
timevar_push (TV_DUMP);
@@ -3657,8 +3660,7 @@ rest_of_compilation (tree decl)
if ((*targetm.binds_local_p) (current_function_decl))
{
int pref = cfun->preferred_stack_boundary;
- if (cfun->recursive_call_emit
- && cfun->stack_alignment_needed > cfun->preferred_stack_boundary)
+ if (cfun->stack_alignment_needed > cfun->preferred_stack_boundary)
pref = cfun->stack_alignment_needed;
cgraph_rtl_info (current_function_decl)->preferred_incoming_stack_boundary
= pref;
@@ -4497,8 +4499,6 @@ process_options (void)
static void
backend_init (void)
{
- init_adjust_machine_modes ();
-
init_emit_once (debug_info_level == DINFO_LEVEL_NORMAL
|| debug_info_level == DINFO_LEVEL_VERBOSE
#ifdef VMS_DEBUGGING_INFO
@@ -4642,6 +4642,11 @@ do_compile (void)
/* Don't do any more if an error has already occurred. */
if (!errorcount)
{
+ /* This must be run always, because it is needed to compute the FP
+ predefined macros, such as __LDBL_MAX__, for targets using non
+ default FP formats. */
+ init_adjust_machine_modes ();
+
/* Set up the back-end if requested. */
if (!no_backend)
backend_init ();