Commit def49dd7 by Richard Guenther Committed by Richard Biener

re PR tree-optimization/34458 (ICE in int_cst_value, at tree.c:8047 at -O3)

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.

	* gcc.c-torture/compile/pr34458.c: New testcase.

From-SVN: r131429
parent cbad2e09
2008-01-09 Richard Guenther <rguenther@suse.de> 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 PR middle-end/34679
* tree.c (host_integerp): Check for sizetype only if the * tree.c (host_integerp): Check for sizetype only if the
type is an integer type. type is an integer type.
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> 2008-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR testsuite/30459 PR testsuite/30459
/* 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;
}
...@@ -1820,15 +1820,24 @@ analyze_siv_subscript_cst_affine (tree chrec_a, ...@@ -1820,15 +1820,24 @@ analyze_siv_subscript_cst_affine (tree chrec_a,
/* Helper recursive function for initializing the matrix A. Returns /* Helper recursive function for initializing the matrix A. Returns
the initial value of CHREC. */ the initial value of CHREC. */
static int static HOST_WIDE_INT
initialize_matrix_A (lambda_matrix A, tree chrec, unsigned index, int mult) initialize_matrix_A (lambda_matrix A, tree chrec, unsigned index, int mult)
{ {
tree type;
gcc_assert (chrec); gcc_assert (chrec);
type = TREE_TYPE (chrec);
if (TREE_CODE (chrec) != POLYNOMIAL_CHREC) if (TREE_CODE (chrec) != POLYNOMIAL_CHREC)
return int_cst_value (chrec); return tree_low_cst (chrec, TYPE_UNSIGNED (type)
&& !(TREE_CODE (type) == INTEGER_TYPE
A[index][0] = mult * int_cst_value (CHREC_RIGHT (chrec)); && 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); return initialize_matrix_A (A, CHREC_LEFT (chrec), index + 1, mult);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment