diff options
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. */ |