diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index bde09bdf81a..a39b9b294e8 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -163,6 +163,15 @@ Fri Dec 10 16:13:48 1999 Alexandre Petit-Bianco java-tree.h: Ditto. jcf-write.c: Ditto. +Wed Dec 8 15:33:26 1999 Alexandre Petit-Bianco + + * expr.c (java_lang_expand_expr): Switch to permanent obstack + before calling expand_eh_region_start and expand_start_all_catch. + * except.c (expand_start_java_handler): Switch to permanent + obstack before calling expand_eh_region_start. + (expand_end_java_handler): Switch to permanent obstack before + calling expand_start_all_catch. + 1999-12-5 Anthony Green * decl.c (init_decl_processing): Mark throw_node as a noreturn diff --git a/gcc/java/except.c b/gcc/java/except.c index 3f88093feb1..283826e7ce7 100644 --- a/gcc/java/except.c +++ b/gcc/java/except.c @@ -291,7 +291,9 @@ static void expand_start_java_handler (range) struct eh_range *range ATTRIBUTE_UNUSED; { + push_obstacks (&permanent_obstack, &permanent_obstack); expand_eh_region_start (); + pop_obstacks (); } tree @@ -327,7 +329,9 @@ expand_end_java_handler (range) struct eh_range *range; { tree handler = range->handlers; + push_obstacks (&permanent_obstack, &permanent_obstack); expand_start_all_catch (); + pop_obstacks (); for ( ; handler != NULL_TREE; handler = TREE_CHAIN (handler)) { start_catch_handler (prepare_eh_table_type (TREE_PURPOSE (handler))); diff --git a/gcc/java/expr.c b/gcc/java/expr.c index 30f1231726e..4a731afdaf8 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -2024,9 +2024,13 @@ java_lang_expand_expr (exp, target, tmode, modifier) /* We expand a try[-catch] block */ /* Expand the try block */ + push_obstacks (&permanent_obstack, &permanent_obstack); expand_eh_region_start (); + pop_obstacks (); expand_expr_stmt (TREE_OPERAND (exp, 0)); + push_obstacks (&permanent_obstack, &permanent_obstack); expand_start_all_catch (); + pop_obstacks (); /* Expand all catch clauses (EH handlers) */ for (current = TREE_OPERAND (exp, 1); current;