aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2008-04-01 10:51:25 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2008-04-01 08:51:25 +0000
commit113c63b8e38e53eab839df80ed2794b5e8da7bea (patch)
treecc3ccdd3a00f2832ad67a780b50f807922ee350f /gcc
parentec24c3a3c9ff0c79ee840f39abab63bc11aec115 (diff)
downloadgcc-113c63b8e38e53eab839df80ed2794b5e8da7bea.zip
gcc-113c63b8e38e53eab839df80ed2794b5e8da7bea.tar.gz
gcc-113c63b8e38e53eab839df80ed2794b5e8da7bea.tar.bz2
function.c (free_after_compilation): Free epilogue_delay_list.
* function.c (free_after_compilation): Free epilogue_delay_list. (prepare_function_start): Assert that previous compilation was freed. From-SVN: r133787
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/function.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 581e622..abed43e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
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>
diff --git a/gcc/function.c b/gcc/function.c
index 325a205..5ca83b1 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -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;
}
/* 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 ();