diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 352177038094ac33cad4f3c461c7b1acb1651058..9b851605110703990dbb5c6b48afaca5294da2db 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2004-12-03 Andrew Haley <aph@redhat.com> + + PR java/18812 + * except.c (link_handler): Patch 'outer' field of siblings of the + range we're demoting. + 2004-12-03 Andrew Haley <aph@redhat.com> PR java/18697 diff --git a/gcc/java/except.c b/gcc/java/except.c index 9ef549b3d2058ca4f41bc4f89d3f6626e20b0e09..6735b598311bdc8855489349aacfdece3dac7607 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; }