+2003-07-03 Roger Sayle <roger@eyesopen.com>
+
+ PR target/10700
+ * fold-const.c (extract_muldiv_1): There's nothing that can be done
+ if the expression is a SAVE_EXPR.
+
2003-07-03 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.c: Fix comment typos.
TREE_OPERAND (t, 1));
break;
- case SAVE_EXPR:
- /* If this has not been evaluated and the operand has no side effects,
- we can see if we can do something inside it and make a new one.
- Note that this test is overly conservative since we can do this
- if the only reason it had side effects is that it was another
- similar SAVE_EXPR, but that isn't worth bothering with. */
- if (SAVE_EXPR_RTL (t) == 0 && ! TREE_SIDE_EFFECTS (TREE_OPERAND (t, 0))
- && 0 != (t1 = extract_muldiv (TREE_OPERAND (t, 0), c, code,
- wide_type)))
- {
- t1 = save_expr (t1);
- if (SAVE_EXPR_PERSISTENT_P (t) && TREE_CODE (t1) == SAVE_EXPR)
- SAVE_EXPR_PERSISTENT_P (t1) = 1;
- if (is_pending_size (t))
- put_pending_size (t1);
- return t1;
- }
- break;
-
case LSHIFT_EXPR: case RSHIFT_EXPR:
/* If the second operand is constant, this is a multiplication
or floor division, by a power of two, so we can treat it that
+2003-07-03 Roger Sayle <roger@eyesopen.com>
+
+ PR target/10700
+ * gcc.c-torture/compile/20030703-1.c: New test case.
+
2003-07-03 Mark Mitchell <mark@codesourcery.com>
* g++.dg/template/local3.C: Remove extra semicolon.
--- /dev/null
+/* Extracted from PR target/10700. */
+/* The following code used to cause an ICE on 64-bit targets. */
+
+int SAD_Block(int *);
+void MBMotionEstimation(int *act_block, int block)
+{
+ SAD_Block(act_block + ( (8 * (block == 1 || block == 3))
+ + (8 * (block == 2 || block == 3))));
+}
+