aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/check-init.c
diff options
context:
space:
mode:
authorPer Bothner <bothner@gcc.gnu.org>1999-02-19 04:32:39 -0800
committerPer Bothner <bothner@gcc.gnu.org>1999-02-19 04:32:39 -0800
commit0a3af4d86cbcdb2fd11d4ca6580f572c3be673a6 (patch)
tree8323b78239487471cc2a47c97baf601760665089 /gcc/java/check-init.c
parentececaeae34c362db09b9cfb0e62de0a4af0f53ef (diff)
downloadgcc-0a3af4d86cbcdb2fd11d4ca6580f572c3be673a6.zip
gcc-0a3af4d86cbcdb2fd11d4ca6580f572c3be673a6.tar.gz
gcc-0a3af4d86cbcdb2fd11d4ca6580f572c3be673a6.tar.bz2
Use new TRY_FINALLY_EXPR tree node.
( Use new TRY_FINALLY_EXPR tree node. See ChangeLog. From-SVN: r25312
Diffstat (limited to 'gcc/java/check-init.c')
-rw-r--r--gcc/java/check-init.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/java/check-init.c b/gcc/java/check-init.c
index acd63c1..24dcc2c 100644
--- a/gcc/java/check-init.c
+++ b/gcc/java/check-init.c
@@ -543,7 +543,6 @@ check_init (exp, before)
{
tree try_clause = TREE_OPERAND (exp, 0);
tree clause = TREE_OPERAND (exp, 1);
- tree finally = TREE_OPERAND (exp, 2);
words save = ALLOC_WORDS (num_current_words);
words tmp = ALLOC_WORDS (num_current_words);
struct alternatives alt;
@@ -559,17 +558,22 @@ check_init (exp, before)
check_init (catch_clause, tmp);
done_alternative (tmp, &alt);
}
- if (finally != NULL_TREE)
- {
- check_init (finally, save);
- UNION (alt.combined, alt.combined, save);
- }
FREE_WORDS (tmp);
FREE_WORDS (save);
END_ALTERNATIVES (before, alt);
}
return;
+ case TRY_FINALLY_EXPR:
+ {
+ words tmp = ALLOC_WORDS (num_current_words);
+ COPY (tmp, before);
+ check_init (TREE_OPERAND (exp, 0), tmp);
+ check_init (TREE_OPERAND (exp, 1), before);
+ FREE_WORDS (tmp);
+ }
+ return;
+
case RETURN_EXPR:
case THROW_EXPR:
if (TREE_OPERAND (exp, 0))