From 17acc01a4683ed10f27252b9abbb69487fc5f04c Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 23 Jun 2005 13:20:02 +0000 Subject: [PATCH] * tree-inline.c (copy_body_r): Remap labels correctly. From-SVN: r101266 --- gcc/tree-inline.c | 6 ++++-- 1 file 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. */ -- 2.30.2