aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
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/expr.c
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/expr.c')
-rw-r--r--gcc/expr.c3
1 files changed, 2 insertions, 1 deletions
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)
;