diff options
author | Alexandre Petit-Bianco <apbianco@cygnus.com> | 1998-10-05 15:36:16 -0700 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1998-10-05 15:36:16 -0700 |
commit | 70e6ca43a3a5a9d9a319c5c827f5db7513c1d0e3 (patch) | |
tree | e9db46839308f2a73cfea7d3abddd8c7623f4e67 | |
parent | c27be9b9fcdefd81b8259a894de4e345692d8cce (diff) | |
download | gcc-70e6ca43a3a5a9d9a319c5c827f5db7513c1d0e3.zip gcc-70e6ca43a3a5a9d9a319c5c827f5db7513c1d0e3.tar.gz gcc-70e6ca43a3a5a9d9a319c5c827f5db7513c1d0e3.tar.bz2 |
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
-rw-r--r-- | gcc/expr.c | 7 | ||||
-rw-r--r-- | gcc/tree.def | 2 |
2 files changed, 8 insertions, 1 deletions
@@ -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 16a07d8..71d0687 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) |