From 89b894e19b9297d4d7e2f85c33253c59356a48b1 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Thu, 11 Oct 2001 16:50:49 -0700 Subject: parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair. * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair. The former is simpler, and jcf-write.c handles it better. (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR or WITH_CLEANUP_EXPR. * jcf-write.c: Revert Alex's change from 2000-10-18. It is no longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine. From-SVN: r46209 --- gcc/java/parse.y | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) (limited to 'gcc/java/parse.y') diff --git a/gcc/java/parse.y b/gcc/java/parse.y index a5c9867..f699c5d 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -11582,21 +11582,6 @@ java_complete_lhs (node) TREE_TYPE (node) = TREE_TYPE (TREE_OPERAND (node, 0)); return node; - case CLEANUP_POINT_EXPR: - COMPLETE_CHECK_OP_0 (node); - TREE_TYPE (node) = void_type_node; - CAN_COMPLETE_NORMALLY (node) = - CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 0)); - return node; - - case WITH_CLEANUP_EXPR: - COMPLETE_CHECK_OP_0 (node); - COMPLETE_CHECK_OP_1 (node); - CAN_COMPLETE_NORMALLY (node) = - CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 0)); - TREE_TYPE (node) = void_type_node; - return node; - case LABELED_BLOCK_EXPR: PUSH_LABELED_BLOCK (node); if (LABELED_BLOCK_BODY (node)) @@ -15690,13 +15675,9 @@ patch_synchronized_statement (node, wfl_op1) CAN_COMPLETE_NORMALLY (exit) = 1; assignment = build (MODIFY_EXPR, NULL_TREE, expr_decl, expr); TREE_SIDE_EFFECTS (assignment) = 1; - node = build1 (CLEANUP_POINT_EXPR, NULL_TREE, - build (COMPOUND_EXPR, NULL_TREE, - build (WITH_CLEANUP_EXPR, NULL_TREE, - build (COMPOUND_EXPR, NULL_TREE, - assignment, enter), - exit, NULL_TREE), - block)); + node = build (COMPOUND_EXPR, NULL_TREE, + build (COMPOUND_EXPR, NULL_TREE, assignment, enter), + build (TRY_FINALLY_EXPR, NULL_TREE, block, exit)); node = build_expr_block (node, expr_decl); return java_complete_tree (node); -- cgit v1.1