This reportedly fixes PR88021 - I forgot to change some ints to lambda_ints when widening the representation of lambda_vectors.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2018-11-14 Richard Biener <rguent...@suse.de> PR middle-end/88021 * tree-data-ref.c (lambda_matrix_row_add): Change const1 argument to lambda_int. (lambda_vector_mult_const): Likewise. (lambda_matrix_right_hermite): Use lambda_int temporaries. diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c index 0096afb9ba7..5b554b02b4a 100644 --- a/gcc/tree-data-ref.c +++ b/gcc/tree-data-ref.c @@ -3442,8 +3483,9 @@ lambda_matrix_id (lambda_matrix mat, int size) mat[i][j] = (i == j) ? 1 : 0; } -/* Return the first nonzero element of vector VEC1 between START and N. - We must have START <= N. Returns N if VEC1 is the zero vector. */ +/* Return the index of the first nonzero element of vector VEC1 between + START and N. We must have START <= N. + Returns N if VEC1 is the zero vector. */ static int lambda_vector_first_nz (lambda_vector vec1, int n, int start) @@ -3458,7 +3500,8 @@ lambda_vector_first_nz (lambda_vector vec1, int n, int start) R2 = R2 + CONST1 * R1. */ static void -lambda_matrix_row_add (lambda_matrix mat, int n, int r1, int r2, int const1) +lambda_matrix_row_add (lambda_matrix mat, int n, int r1, int r2, + lambda_int const1) { int i; @@ -3474,7 +3517,7 @@ lambda_matrix_row_add (lambda_matrix mat, int n, int r1, int r2, int const1) static void lambda_vector_mult_const (lambda_vector vec1, lambda_vector vec2, - int size, int const1) + int size, lambda_int const1) { int i; @@ -3539,7 +3582,7 @@ lambda_matrix_right_hermite (lambda_matrix A, int m, int n, { while (S[i][j] != 0) { - int sigma, factor, a, b; + lambda_int sigma, factor, a, b; a = S[i-1][j]; b = S[i][j];