From 70e6ca43a3a5a9d9a319c5c827f5db7513c1d0e3 Mon Sep 17 00:00:00 2001 From: Alexandre Petit-Bianco Date: Mon, 5 Oct 1998 15:36:16 -0700 Subject: [PATCH] tree.def (GOTO_EXPR): Modified documentation. 8 * tree.def (GOTO_EXPR): Modified documentation. * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed goto. From-SVN: r22859 --- gcc/expr.c | 7 +++++++ gcc/tree.def | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/expr.c b/gcc/expr.c index 445f15161568..adb2d4ad1f93 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -5919,6 +5919,13 @@ expand_expr (exp, target, tmode, modifier) placeholder_list = TREE_CHAIN (placeholder_list); return target; + case GOTO_EXPR: + if (TREE_CODE (TREE_OPERAND (exp, 0)) == LABEL_DECL) + expand_goto (TREE_OPERAND (exp, 0)); + else + expand_computed_goto (TREE_OPERAND (exp, 0)); + return const0_rtx; + case EXIT_EXPR: expand_exit_loop_if_false (NULL_PTR, invert_truthvalue (TREE_OPERAND (exp, 0))); diff --git a/gcc/tree.def b/gcc/tree.def index 16a07d80c371..71d0687043c3 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -721,7 +721,7 @@ DEFTREECODE (POPDCC_EXPR, "popdcc_expr", 's', 0) The type should be void and the value should be ignored. */ DEFTREECODE (LABEL_EXPR, "label_expr", 's', 1) -/* GOTO. Operand 0 is a LABEL_DECL node. +/* GOTO. Operand 0 is a LABEL_DECL node or an expression. The type should be void and the value should be ignored. */ DEFTREECODE (GOTO_EXPR, "goto_expr", 's', 1)