diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 35a77099b28..d960d6044a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-02-14 Josef Zlomek + + * tree-inline.c (copy_body_r): Do not replace ret_label. + 2004-02-14 Jan Hubicka * i386.c (x86_four_jump_limit): New variable. diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 6d3fcf87f20..ce0b415fe05 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -572,8 +572,11 @@ copy_body_r (tree *tp, int *walk_subtrees, void *data) /* Local variables and labels need to be replaced by equivalent variables. We don't want to copy static variables; there's only one of those, no matter how many times we inline the containing - function. */ - else if ((*lang_hooks.tree_inlining.auto_var_in_fn_p) (*tp, fn)) + function. + We do not also want to copy the label which we put into + GOTO_STMT which replaced RETURN_STMT. */ + else if (*tp != id->ret_label + && (*lang_hooks.tree_inlining.auto_var_in_fn_p) (*tp, fn)) { tree new_decl;