aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>2000-01-08 01:59:33 +0000
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>2000-01-07 17:59:33 -0800
commit6f9c87166a6859cb28f2b2ce178fa2617c4552b2 (patch)
treeda500c1e8e31c1c7c196e63a87b932cc9bac7c9a /gcc/java
parentf626e9fa21d9844a5faf260f23147cc4b69e4bd3 (diff)
downloadgcc-6f9c87166a6859cb28f2b2ce178fa2617c4552b2.zip
gcc-6f9c87166a6859cb28f2b2ce178fa2617c4552b2.tar.gz
gcc-6f9c87166a6859cb28f2b2ce178fa2617c4552b2.tar.bz2
expr.c (java_lang_expand_expr): Switch to permanent obstack before calling expand_eh_region_start and...
Wed Dec 8 15:33:26 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> * 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. From-SVN: r31284
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog9
-rw-r--r--gcc/java/except.c4
-rw-r--r--gcc/java/expr.c4
3 files changed, 17 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index bde09bd..a39b9b2 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -163,6 +163,15 @@ Fri Dec 10 16:13:48 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
java-tree.h: Ditto.
jcf-write.c: Ditto.
+Wed Dec 8 15:33:26 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
+
+ * 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 <green@cygnus.com>
* decl.c (init_decl_processing): Mark throw_node as a noreturn
diff --git a/gcc/java/except.c b/gcc/java/except.c
index 3f88093..283826e 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 30f1231..4a731af 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;