aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2006-10-14 03:03:23 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2006-10-13 23:03:23 -0400
commitdc10a47e83909c6ffc1e049baa2b31f2ca055882 (patch)
treeb550f0b899d4080bd2e5f0ae9ef72a418f5f66de /gcc
parent875e256a3a4ab2ea75742ca433025ad4c03a4be0 (diff)
downloadgcc-dc10a47e83909c6ffc1e049baa2b31f2ca055882.zip
gcc-dc10a47e83909c6ffc1e049baa2b31f2ca055882.tar.gz
gcc-dc10a47e83909c6ffc1e049baa2b31f2ca055882.tar.bz2
re PR target/29250 (internal compiler error: in extract_insn, at recog.c:2084)
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. Co-Authored-By: Ian Lance Taylor <ian@airs.com> From-SVN: r117724
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 d4af4e1..6c9fa11 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 a0dc9c3..50564b6 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)
;