summaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>1998-10-05 15:36:16 -0700
committerPer Bothner <bothner@gcc.gnu.org>1998-10-05 15:36:16 -0700
commit70e6ca43a3a5a9d9a319c5c827f5db7513c1d0e3 (patch)
treee9db46839308f2a73cfea7d3abddd8c7623f4e67 /gcc/expr.c
parentc27be9b9fcdefd81b8259a894de4e345692d8cce (diff)
downloadgcc-70e6ca43a3a5a9d9a319c5c827f5db7513c1d0e3.tar.gz
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
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 445f1516156..adb2d4ad1f9 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)));