aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/except.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/except.c')
-rw-r--r--gcc/java/except.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/java/except.c b/gcc/java/except.c
index 9ef549b..6735b59 100644
--- a/gcc/java/except.c
+++ b/gcc/java/except.c
@@ -138,12 +138,18 @@ link_handler (struct eh_range *range, struct eh_range *outer)
range->next_sibling = NULL;
range->first_child = outer;
{
+ struct eh_range *p = outer;
struct eh_range **pr = &(outer->outer->first_child);
while (*pr != outer)
pr = &(*pr)->next_sibling;
*pr = range;
+
+ while (p)
+ {
+ p->outer = range;
+ p = p->next_sibling;
+ }
}
- outer->outer = range;
return;
}