]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
expr.c (expand_expr_real_1): Don't request a value to expand_assignment.
authorKazu Hirata <kazu@cs.umass.edu>
Mon, 18 Oct 2004 21:18:23 +0000 (21:18 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Mon, 18 Oct 2004 21:18:23 +0000 (21:18 +0000)
* expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
value to expand_assignment.

From-SVN: r89245

gcc/ChangeLog
gcc/expr.c

index fb1fe2f10e8bf749f64f93c5b166968085c277eb..ac8efa95bb346e58e31e7df19b9862be8905e307 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
+       value to expand_assignment.
+
 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
 
        * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
index 459d3b35372c8a65f3b655efdd9ad4b97c1a724c..358a634eb859a9adc0725f87c36ccd6f7d0d5cdc 100644 (file)
@@ -8069,6 +8069,8 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
 
        temp = 0;
 
+       gcc_assert (ignore);
+
        /* Check for |= or &= of a bitfield of size one into another bitfield
           of size 1.  In this case, (unless we need the result of the
           assignment) we can do this more efficiently with a
@@ -8077,8 +8079,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
           ??? At this point, we can't get a BIT_FIELD_REF here.  But if
           things change so we do, this code should be enhanced to
           support it.  */
-       if (ignore
-           && TREE_CODE (lhs) == COMPONENT_REF
+       if (TREE_CODE (lhs) == COMPONENT_REF
            && (TREE_CODE (rhs) == BIT_IOR_EXPR
                || TREE_CODE (rhs) == BIT_AND_EXPR)
            && TREE_OPERAND (rhs, 0) == lhs
@@ -8101,7 +8102,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
            return const0_rtx;
          }
 
-       temp = expand_assignment (lhs, rhs, ! ignore);
+       temp = expand_assignment (lhs, rhs, 0);
 
        return temp;
       }