diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-19 18:52:04 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-19 18:52:04 +0000 |
commit | 939d0e9e368099db32e90ccf897ba66654441c03 (patch) | |
tree | 30da390cd33e90e6db68cf86fe6de34dadaf8ca5 /gcc/stmt.c | |
parent | 37fb5f6bf544f858961e11414686cf426a9fedf6 (diff) | |
download | gcc-939d0e9e368099db32e90ccf897ba66654441c03.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83393 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c index d860bc727d5..aa970dfd2fb 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. */ |