diff options
author | Jan Hubicka <jh@suse.cz> | 2008-04-01 10:51:25 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2008-04-01 08:51:25 +0000 |
commit | 113c63b8e38e53eab839df80ed2794b5e8da7bea (patch) | |
tree | cc3ccdd3a00f2832ad67a780b50f807922ee350f /gcc | |
parent | ec24c3a3c9ff0c79ee840f39abab63bc11aec115 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/function.c | 5 |
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 (); |