aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-10-18 21:18:23 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-10-18 21:18:23 +0000
commitdf9af2bb6b3d8fc40aa578ee5251c6cf0c0debef (patch)
tree20a54cb08930812f19fce5de2be556363df7d16c /gcc/expr.c
parentab51c2f00c10b8b75267e34217b6fe88fc4f8cc8 (diff)
downloadgcc-df9af2bb6b3d8fc40aa578ee5251c6cf0c0debef.zip
gcc-df9af2bb6b3d8fc40aa578ee5251c6cf0c0debef.tar.gz
gcc-df9af2bb6b3d8fc40aa578ee5251c6cf0c0debef.tar.bz2
expr.c (expand_expr_real_1): Don't request a value to expand_assignment.
* expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a value to expand_assignment. From-SVN: r89245
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 459d3b3..358a634 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -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;
}