From: Jakub Jelinek Date: Mon, 23 Mar 2009 14:00:34 +0000 (+0100) Subject: re PR tree-optimization/39516 (internal compiler error: in copy_to_mode_reg, at explo... X-Git-Tag: releases/gcc-4.4.0~203 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=88ccb72ad199fe41a52bd85e9adad1ae17544db1;p=thirdparty%2Fgcc.git re PR tree-optimization/39516 (internal compiler error: in copy_to_mode_reg, at explow.c:623) PR tree-optimization/39516 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable. * gfortran.dg/pr39516.f: New test. From-SVN: r145008 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a8de0abc1a5..261b13538f1c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-03-23 Jakub Jelinek + + PR tree-optimization/39516 + * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable. + 2009-03-23 Bingfeng Mei * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint diff --git a/gcc/lambda-code.c b/gcc/lambda-code.c index 794d4e8b256a..07b9469e35ed 100644 --- a/gcc/lambda-code.c +++ b/gcc/lambda-code.c @@ -2472,7 +2472,8 @@ perfect_nestify (struct loop *loop, it to one just in case. */ exit_condition = get_loop_exit_condition (newloop); - uboundvar = create_tmp_var (integer_type_node, "uboundvar"); + uboundvar = create_tmp_var (TREE_TYPE (VEC_index (tree, ubounds, 0)), + "uboundvar"); add_referenced_var (uboundvar); stmt = gimple_build_assign (uboundvar, VEC_index (tree, ubounds, 0)); uboundvar = make_ssa_name (uboundvar, stmt); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index abad6bab0330..65f77602a8b9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-03-23 Jakub Jelinek + + PR tree-optimization/39516 + * gfortran.dg/pr39516.f: New test. + 2009-03-22 Hans-Peter Nilsson * lib/target-libpath.exp (set_ld_library_path_env_vars): diff --git a/gcc/testsuite/gfortran.dg/pr39516.f b/gcc/testsuite/gfortran.dg/pr39516.f new file mode 100644 index 000000000000..3d6104a8ebf0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr39516.f @@ -0,0 +1,20 @@ +C PR tree-optimization/39516 +C { dg-do compile } +C { dg-options "-O2 -ftree-loop-linear" } + SUBROUTINE SUB(A, B, M) + IMPLICIT NONE + DOUBLE PRECISION A(20,20), B(20) + INTEGER*8 I, J, K, M + DO I=1,M + DO J=1,M + A(I,J)=A(I,J)+1 + END DO + END DO + DO K=1,20 + DO I=1,M + DO J=1,M + B(I)=B(I)+A(I,J) + END DO + END DO + END DO + END SUBROUTINE