function.c (free_after_compilation): Free epilogue_delay_list.
authorJan Hubicka <jh@suse.cz>
Tue, 1 Apr 2008 08:51:25 +0000 (10:51 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 1 Apr 2008 08:51:25 +0000 (08:51 +0000)
* function.c (free_after_compilation): Free epilogue_delay_list.
(prepare_function_start): Assert that previous compilation was freed.

From-SVN: r133787

gcc/ChangeLog
gcc/function.c

index 581e622c47fc16641292528029c1543541857e0e..abed43e4c475aa3fd87d13c5d1bbbc6802822272 100644 (file)
@@ -1,3 +1,8 @@
+2008-04-01  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (free_after_compilation): Free epilogue_delay_list.
+       (prepare_function_start): Assert that previous compilation was freed.
+
 2008-04-01  Jan Hubicka  <jh@suse.cz>
            Jim Wilson  <wilson@tuliptree.org>
            Andreas Tobler <andreast@gcc.gnu.org>
index 325a205d827f0796424b02926a7e6ce20231afa0..5ca83b1857b7fbfae36efb3af770031cdde575e0 100644 (file)
@@ -313,7 +313,8 @@ free_after_compilation (struct function *f)
   VEC_free (int, heap, prologue);
   VEC_free (int, heap, epilogue);
   VEC_free (int, heap, sibcall_epilogue);
-  free (rtl.emit.regno_pointer_align);
+  if (rtl.emit.regno_pointer_align)
+    free (rtl.emit.regno_pointer_align);
 
   memset (&rtl, 0, sizeof (rtl));
   f->eh = NULL;
@@ -323,6 +324,7 @@ free_after_compilation (struct function *f)
   f->arg_offset_rtx = NULL;
   f->return_rtx = NULL;
   f->internal_arg_pointer = NULL;
+  f->epilogue_delay_list = NULL;
 }
 \f
 /* Return size needed for stack frame based on slots so far allocated.
@@ -3935,6 +3937,7 @@ push_struct_function (tree fndecl)
 static void
 prepare_function_start (void)
 {
+  gcc_assert (!rtl.emit.x_last_insn);
   init_emit ();
   init_varasm_status ();
   init_expr ();