+2008-01-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34458
+ * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
+ adjust return type.
+
2008-01-09 Richard Guenther <rguenther@suse.de>
PR middle-end/34679
+2008-01-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/34458
+ * gcc.c-torture/compile/pr34458.c: New testcase.
+
2008-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR testsuite/30459
--- /dev/null
+/* Testcase by Martin Michlmayr <tbm@cyrius.com> */
+
+typedef struct
+{
+ int data[1024];
+}
+Lint;
+Lint lint_operate (Lint a, long long ammount)
+{
+ int index;
+ Lint ret;
+ for (index = 0; index < 24; index++)
+ ret.data[index] =
+ a.data[index + ammount / 32 + 1] << a.data[index + ammount / 32];
+ return ret;
+}
/* Helper recursive function for initializing the matrix A. Returns
the initial value of CHREC. */
-static int
+static HOST_WIDE_INT
initialize_matrix_A (lambda_matrix A, tree chrec, unsigned index, int mult)
{
+ tree type;
+
gcc_assert (chrec);
+ type = TREE_TYPE (chrec);
if (TREE_CODE (chrec) != POLYNOMIAL_CHREC)
- return int_cst_value (chrec);
-
- A[index][0] = mult * int_cst_value (CHREC_RIGHT (chrec));
+ return tree_low_cst (chrec, TYPE_UNSIGNED (type)
+ && !(TREE_CODE (type) == INTEGER_TYPE
+ && TYPE_IS_SIZETYPE (type)));
+
+ type = TREE_TYPE (CHREC_RIGHT (chrec));
+ A[index][0] = mult * tree_low_cst (CHREC_RIGHT (chrec),
+ TYPE_UNSIGNED (type)
+ && !(TREE_CODE (type) == INTEGER_TYPE
+ && TYPE_IS_SIZETYPE (type)));
return initialize_matrix_A (A, CHREC_LEFT (chrec), index + 1, mult);
}