mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-13 12:31:16 +08:00
re PR fortran/31011 ([4.2 and 4.1 only] Incorrect error: parameter array sections)
2007-03-08 Paul Thomas <pault@gcc.gnu.org> PR fortran/31011 * expr.c (find_array_section): Correct arithmetic for section size. 2007-03-08 Paul Thomas <pault@gcc.gnu.org> PR fortran/31011 * gfortran.dg/parameter_array_section_2.f90: New test. From-SVN: r122689
This commit is contained in:
parent
1916c916ca
commit
e1e24dc19f
gcc
@ -1,3 +1,9 @@
|
||||
2007-03-08 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/31011
|
||||
* expr.c (find_array_section): Correct arithmetic for section
|
||||
size.
|
||||
|
||||
2007-03-07 Brooks Moses <brooks.moses@codesourcery.com>
|
||||
|
||||
* iresolve.c (gfc_resolve_ishftc): Correct s_kind value.
|
||||
|
@ -1137,8 +1137,7 @@ find_array_section (gfc_expr *expr, gfc_ref *ref)
|
||||
}
|
||||
|
||||
/* Calculate the number of elements and the shape. */
|
||||
mpz_abs (tmp_mpz, stride[d]);
|
||||
mpz_div (tmp_mpz, stride[d], tmp_mpz);
|
||||
mpz_set (tmp_mpz, stride[d]);
|
||||
mpz_add (tmp_mpz, end[d], tmp_mpz);
|
||||
mpz_sub (tmp_mpz, tmp_mpz, ctr[d]);
|
||||
mpz_div (tmp_mpz, tmp_mpz, stride[d]);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2007-03-08 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/31011
|
||||
* gfortran.dg/parameter_array_section_2.f90: New test.
|
||||
|
||||
2007-03-08 Volker Reichelt <reichelt@netcologne.de>
|
||||
|
||||
PR c++/30852
|
||||
|
14
gcc/testsuite/gfortran.dg/parameter_array_section_2.f90
Normal file
14
gcc/testsuite/gfortran.dg/parameter_array_section_2.f90
Normal file
@ -0,0 +1,14 @@
|
||||
! { dg-do run }
|
||||
! { dg-options "-O" }
|
||||
! Test the fix for PR31011 in which the length of the array sections
|
||||
! with stride other than unity were incorrectly calculated.
|
||||
!
|
||||
! Contributed by <terry@chem.gu.se>
|
||||
!
|
||||
program PotentialMatrix
|
||||
implicit none
|
||||
real(kind=8),dimension(2),parameter::v2=(/1,2/)
|
||||
real(kind=8),dimension(4),parameter::v4=(/1,2,3,4/)
|
||||
if (any (v2*v4(1:3:2) .ne. (/1,6/))) call abort ()
|
||||
if (any (v2*v4(3:1:-2) .ne. (/3,2/))) call abort ()
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user