aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/java-tree.def
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2004-11-24 11:41:38 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2004-11-24 11:41:38 +0000
commit16df8078b8ea2cf3ce37f47e62cdc66c69fe6c70 (patch)
treeb1c2513f30d70b29ff11a260b5524e5f0785c12c /gcc/java/java-tree.def
parentf39e46bac1fa7fa916b9d415d323fa7353c5e91a (diff)
downloadgcc-16df8078b8ea2cf3ce37f47e62cdc66c69fe6c70.zip
gcc-16df8078b8ea2cf3ce37f47e62cdc66c69fe6c70.tar.gz
gcc-16df8078b8ea2cf3ce37f47e62cdc66c69fe6c70.tar.bz2
expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
gcc/ * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. * gimplify.c (gimplify_labeled_block_expr): Remove. (gimplify_exit_block_expr): Remove. (gimplify_expr): Don't call them. * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. (estimate_num_insns_1): Likewise. (walk_tree): Likewise. * tree-pretty-print.c (dump_generic_node): Don't handle EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def. (LABELED_BLOCK_EXPR): Likewise. * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h. (LABELED_BLOCK_BODY): Likewise. (EXIT_BLOCK_LABELED_BLOCK): Likewise. (EXIT_BLOCK_RETURN): Removed. java/ * java-gimplify.c (java_gimplify_labeled_block_expr): New function. (java_gimplify_exit_block_expr): New function. (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def. (EXIT_BLOCK_EXPR): Likewise. * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h. (LABELED_BLOCK_BODY): Likewise. (EXIT_BLOCK_LABELED_BLOCK): Likewise. * jcf-write.c (generate_bytecode_insns): Don't handle the unused EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR. (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the second operand of EXIT_BLOCK_EXPR. * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of TREE_OPERAND. (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes. From-SVN: r91149
Diffstat (limited to 'gcc/java/java-tree.def')
-rw-r--r--gcc/java/java-tree.def8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/java/java-tree.def b/gcc/java/java-tree.def
index 1cdbc57..ac8f83a 100644
--- a/gcc/java/java-tree.def
+++ b/gcc/java/java-tree.def
@@ -41,6 +41,14 @@ DEFTREECODE (NEW_CLASS_EXPR, "new_class_expr", tcc_expression, 3)
/* Defines `this' as an expression. */
DEFTREECODE (THIS_EXPR, "this", tcc_unary, 0)
+/* A labeled block. Operand 0 is the label that will be generated to
+ mark the end of the block. Operand 1 is the labeled block body. */
+DEFTREECODE (LABELED_BLOCK_EXPR, "labeled_block_expr", tcc_expression, 2)
+
+/* Exit a labeled block, possibly returning a value. Operand 0 is a
+ LABELED_BLOCK_EXPR to exit. */
+DEFTREECODE (EXIT_BLOCK_EXPR, "exit_block_expr", tcc_statement, 1)
+
/* Case statement expression.
Operand 1 is the case value. */
DEFTREECODE (CASE_EXPR, "case", tcc_expression, 1)