tree.def (GOTO_EXPR): Modified documentation.
authorAlexandre Petit-Bianco <apbianco@cygnus.com>
Mon, 5 Oct 1998 22:36:16 +0000 (15:36 -0700)
committerPer Bothner <bothner@gcc.gnu.org>
Mon, 5 Oct 1998 22:36:16 +0000 (15:36 -0700)
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
gcc/tree.def

index 445f151..adb2d4a 100644 (file)
@@ -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)));
index 16a07d8..71d0687 100644 (file)
@@ -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)