summaryrefslogtreecommitdiffstats
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-23 13:20:02 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-23 13:20:02 +0000
commit8266b8c54687c12a155b90d4f9d447297d254dfc (patch)
treed84fe1227cea7e2fd1d59cfe1c3adfe14c30b5f9 /gcc/tree-inline.c
parentcbc50a352e3c5d87676cd29c70ebe51c72e53863 (diff)
downloadppe42-gcc-8266b8c54687c12a155b90d4f9d447297d254dfc.tar.gz
ppe42-gcc-8266b8c54687c12a155b90d4f9d447297d254dfc.zip
* tree-inline.c (copy_body_r): Remap labels correctly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101266 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index ee30ccc92b0..c670c5712a7 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -554,9 +554,11 @@ copy_body_r (tree *tp, int *walk_subtrees, void *data)
copy_statement_list (tp);
else if (TREE_CODE (*tp) == SAVE_EXPR)
remap_save_expr (tp, id->decl_map, walk_subtrees);
- else if (TREE_CODE (*tp) == LABEL_DECL)
+ else if (TREE_CODE (*tp) == LABEL_DECL
+ && (! DECL_CONTEXT (*tp)
+ || decl_function_context (*tp) == id->callee))
/* These may need to be remapped for EH handling. */
- remap_decl (*tp, id);
+ *tp = remap_decl (*tp, id);
else if (TREE_CODE (*tp) == BIND_EXPR)
copy_bind_expr (tp, walk_subtrees, id);
/* Types may need remapping as well. */
OpenPOWER on IntegriCloud