tree.def (LABELED_BLOCK_EXPR, [...]): New tree nodes.

�
	* tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
  	* tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
 	EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
 	macros.
	* expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
 	EXIT_BLOCK_EXPR.

From-SVN: r21897
This commit is contained in:
Alexandre Petit-Bianco 1998-08-21 12:32:19 -07:00 committed by Per Bothner
parent 0044c65c78
commit f42e28dd5f

View File

@ -5796,6 +5796,18 @@ expand_expr (exp, target, tmode, modifier)
invert_truthvalue (TREE_OPERAND (exp, 0)));
return const0_rtx;
case LABELED_BLOCK_EXPR:
if (LABELED_BLOCK_BODY (exp))
expand_expr_stmt (LABELED_BLOCK_BODY (exp));
emit_label (label_rtx (LABELED_BLOCK_LABEL (exp)));
return const0_rtx;
case EXIT_BLOCK_EXPR:
if (EXIT_BLOCK_RETURN (exp))
really_sorry ("returned value in block_exit_expr");
expand_goto (LABELED_BLOCK_LABEL (EXIT_BLOCK_LABELED_BLOCK (exp)));
return const0_rtx;
case LOOP_EXPR:
push_temp_slots ();
expand_start_loop (1);