]> gcc.gnu.org Git - gcc.git/commitdiff
expr.c (expand_expr_real_1): Abort on COND_EXPR of VOID_TYPE.
authorKazu Hirata <kazu@cs.umass.edu>
Mon, 6 Dec 2004 00:14:07 +0000 (00:14 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Mon, 6 Dec 2004 00:14:07 +0000 (00:14 +0000)
* expr.c (expand_expr_real_1): Abort on COND_EXPR of
VOID_TYPE.

From-SVN: r91758

gcc/ChangeLog
gcc/expr.c

index 80f8776c28e113ec74c0b3cfddc8c8e2a30d981d..844e6b92c4ccbf7050d0a159603918217eec146c 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * expr.c (expand_expr_real_1): Abort on COND_EXPR of
+       VOID_TYPE.
+
 2004-12-05  Richard Henderson  <rth@redhat.com>
 
        PR target/18841
index 1a43145899143afd2a7409bd29edd9c22eeacd55..b5939ae626d662f011b364bb6fca6b640ae9b774 100644 (file)
@@ -8063,21 +8063,10 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
       return const0_rtx;
 
     case COND_EXPR:
-      /* If it's void, we don't need to worry about computing a value.  */
-      if (VOID_TYPE_P (TREE_TYPE (exp)))
-       {
-         tree pred = TREE_OPERAND (exp, 0);
-         tree then_ = TREE_OPERAND (exp, 1);
-         tree else_ = TREE_OPERAND (exp, 2);
-
-         gcc_assert (TREE_CODE (then_) == GOTO_EXPR
-                     && TREE_CODE (GOTO_DESTINATION (then_)) == LABEL_DECL
-                     && TREE_CODE (else_) == GOTO_EXPR
-                     && TREE_CODE (GOTO_DESTINATION (else_)) == LABEL_DECL);
-
-         jumpif (pred, label_rtx (GOTO_DESTINATION (then_)));
-         return expand_expr (else_, const0_rtx, VOIDmode, 0);
-       }
+      /* A COND_EXPR with its type being VOID_TYPE represents a
+        conditional jump and is handled in
+        expand_gimple_cond_expr.  */
+      gcc_assert (!VOID_TYPE_P (TREE_TYPE (exp)));
 
         /* Note that COND_EXPRs whose type is a structure or union
         are required to be constructed to contain assignments of
This page took 0.089045 seconds and 5 git commands to generate.