diff options
author | Per Bothner <bothner@gcc.gnu.org> | 1999-02-19 04:32:39 -0800 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1999-02-19 04:32:39 -0800 |
commit | 0a3af4d86cbcdb2fd11d4ca6580f572c3be673a6 (patch) | |
tree | 8323b78239487471cc2a47c97baf601760665089 /gcc/java/check-init.c | |
parent | ececaeae34c362db09b9cfb0e62de0a4af0f53ef (diff) | |
download | gcc-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.c | 16 |
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)) |