re PR target/29250 (internal compiler error: in extract_insn, at recog.c:2084)
authorDavid Edelsohn <edelsohn@gnu.org>
Sat, 14 Oct 2006 03:03:23 +0000 (03:03 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Sat, 14 Oct 2006 03:03:23 +0000 (23:03 -0400)
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

gcc/ChangeLog
gcc/expr.c

index d4af4e1bd3ac25ea3872b9377409f0377bd5379d..6c9fa11ccf8d5d08fad9fba73628fe8433e32668 100644 (file)
@@ -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
index a0dc9c360f08fffa55629f1b9b1ef9560a0171d5..50564b650720c03c467b505c9b5fad42d617663e 100644 (file)
@@ -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)
        ;