summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/expr.c3
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d4af4e1bd3a..6c9fa11ccf8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2006-10-13 David Edelsohn <edelsohn@gnu.org>
+ Ian Lance Taylor <ian@airs.com>
+
+ PR middle-end/29250
+ * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
+ CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
+ recursing.
+
2006-10-14 Kazu Hirata <kazu@codesourcery.com>
* config/score/score.c, config/score/score.h: Fix comment
diff --git a/gcc/expr.c b/gcc/expr.c
index a0dc9c360f0..50564b65072 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -7739,7 +7739,8 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
return REDUCE_BIT_FIELD (op0);
}
- op0 = expand_expr (TREE_OPERAND (exp, 0), NULL_RTX, mode, modifier);
+ op0 = expand_expr (TREE_OPERAND (exp, 0), NULL_RTX, mode,
+ modifier == EXPAND_SUM ? EXPAND_NORMAL : modifier);
if (GET_MODE (op0) == mode)
;
OpenPOWER on IntegriCloud