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
This commit is contained in:
Kazu Hirata 2004-10-18 21:18:23 +00:00 committed by Kazu Hirata
parent ab51c2f00c
commit df9af2bb6b
2 changed files with 9 additions and 3 deletions

View 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

View 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;
}