From: pbrook Date: Fri, 16 Sep 2005 03:26:37 +0000 (+0000) Subject: 2005-09-16 Paul Brook X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=ef833b988f5bc5446f285dd9bd81d10842763436;p=pf3gnuchains%2Fgcc-fork.git 2005-09-16 Paul Brook PR fortran/23906 fortran/ * dependency.c (transform_sections): Divide by correct value. Elaborate comment. testsuite/ * gfortran.dg/dependency_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104339 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index db3d0637ff2..fc3cfe37838 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2005-09-16 Paul Brook + + PR fortran/23906 + * dependency.c (transform_sections): Divide by correct value. + Elaborate comment. + 2005-09-14 Paul Thomas PR fortran/21875 Internal Unit Array I/O, NIST diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c index 9c6b4f67773..b93808a2bce 100644 --- a/gcc/fortran/dependency.c +++ b/gcc/fortran/dependency.c @@ -392,7 +392,7 @@ get_deps (mpz_t x1, mpz_t x2, mpz_t y) } -/* Transforms a sections l and r such that +/* Perform the same linear transformation on sections l and r such that (l_start:l_end:l_stride) -> (0:no_of_elements) (r_start:r_end:r_stride) -> (X1:X2) Where r_end is implicit as both sections must have the same number of @@ -434,7 +434,7 @@ transform_sections (mpz_t X1, mpz_t X2, mpz_t no_of_elements, mpz_mul (X2, no_of_elements, r_stride->value.integer); if (l_stride != NULL) - mpz_cdiv_q (X2, X2, r_stride->value.integer); + mpz_cdiv_q (X2, X2, l_stride->value.integer); mpz_add (X2, X2, X1); return 0; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e9b96a98698..c0a37445298 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-09-16 Paul Brook + + PR fortran/23906 + * gfortran.dg/dependency_1.f90: New test. + 2005-09-15 Mark Mitchell PR c++/23896 diff --git a/gcc/testsuite/gfortran.dg/dependency_1.f90 b/gcc/testsuite/gfortran.dg/dependency_1.f90 new file mode 100644 index 00000000000..5a5a898822d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dependency_1.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! PR23906 +! Dependency analysis was using the stride from the wrong expression and +! segfaulting +subroutine foo(a) + real, dimension(:) :: a + + a(1:3:2) = a(1:2) + a(1:2) = a(1:3:2) +end subroutine +