diff options
author | Jan Hubicka <jh@suse.cz> | 2004-06-19 20:52:04 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-06-19 18:52:04 +0000 |
commit | eb4e1c013c5b2f53ec8a31c98fbcd752d089ff4b (patch) | |
tree | 30da390cd33e90e6db68cf86fe6de34dadaf8ca5 /gcc/stmt.c | |
parent | bc443e6def9f79e0fbfa1d3b70e59a158c85ebd9 (diff) | |
download | gcc-eb4e1c013c5b2f53ec8a31c98fbcd752d089ff4b.zip gcc-eb4e1c013c5b2f53ec8a31c98fbcd752d089ff4b.tar.gz gcc-eb4e1c013c5b2f53ec8a31c98fbcd752d089ff4b.tar.bz2 |
function.c (free_after_compilation): Do not free computed_goto_common*.
* function.c (free_after_compilation): Do not free computed_goto_common*.
* function.h (struct function): Kill computed_goto_common*.
* stmt.c (expand_computed_goto): Do not commonize the computed gotos.
* tree-cfg.c (disband_implicit_edges): Do not forward across the
commonized computed goto.
From-SVN: r83393
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 19 |
1 files changed, 2 insertions, 17 deletions
@@ -502,23 +502,8 @@ expand_computed_goto (tree exp) x = convert_memory_address (Pmode, x); emit_queue (); - - if (! cfun->computed_goto_common_label) - { - cfun->computed_goto_common_reg = copy_to_mode_reg (Pmode, x); - cfun->computed_goto_common_label = gen_label_rtx (); - - do_pending_stack_adjust (); - emit_label (cfun->computed_goto_common_label); - emit_indirect_jump (cfun->computed_goto_common_reg); - - current_function_has_computed_jump = 1; - } - else - { - emit_move_insn (cfun->computed_goto_common_reg, x); - emit_jump (cfun->computed_goto_common_label); - } + do_pending_stack_adjust (); + emit_indirect_jump (x); } /* Handle goto statements and the labels that they can go to. */ |