diff options
author | Josef Zlomek <zlomekj@suse.cz> | 2004-02-14 20:38:46 +0100 |
---|---|---|
committer | Josef Zlomek <zlomek@gcc.gnu.org> | 2004-02-14 19:38:46 +0000 |
commit | 5852680bfc7da3ad2688f08453ba6ba5fa689853 (patch) | |
tree | fc248f5dd30faba17dce63ec5f52b3857b5bcd8c /gcc | |
parent | 2cf20d32523a1817a0362f098e693cbc0d804d0f (diff) | |
download | gcc-5852680bfc7da3ad2688f08453ba6ba5fa689853.zip gcc-5852680bfc7da3ad2688f08453ba6ba5fa689853.tar.gz gcc-5852680bfc7da3ad2688f08453ba6ba5fa689853.tar.bz2 |
* tree-inline.c (copy_body_r): Do not replace ret_label.
From-SVN: r77820
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/tree-inline.c | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 35a7709..d960d60 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-02-14 Josef Zlomek <zlomekj@suse.cz> + + * tree-inline.c (copy_body_r): Do not replace ret_label. + 2004-02-14 Jan Hubicka <jh@suse.cz> * i386.c (x86_four_jump_limit): New variable. diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 6d3fcf8..ce0b415 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; |