diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2004-10-18 21:18:23 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2004-10-18 21:18:23 +0000 |
commit | df9af2bb6b3d8fc40aa578ee5251c6cf0c0debef (patch) | |
tree | 20a54cb08930812f19fce5de2be556363df7d16c /gcc/expr.c | |
parent | ab51c2f00c10b8b75267e34217b6fe88fc4f8cc8 (diff) | |
download | gcc-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.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -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; } |