aboutsummaryrefslogtreecommitdiff
path: root/gcc/stmt.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2004-06-19 20:52:04 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2004-06-19 18:52:04 +0000
commiteb4e1c013c5b2f53ec8a31c98fbcd752d089ff4b (patch)
tree30da390cd33e90e6db68cf86fe6de34dadaf8ca5 /gcc/stmt.c
parentbc443e6def9f79e0fbfa1d3b70e59a158c85ebd9 (diff)
downloadgcc-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.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index d860bc7..aa970df 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -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. */