mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-30 02:14:45 +08:00
re PR libfortran/22142 ([4.0 only] eoshift: boundary not filled in correctly)
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de> PR libfortran/22142 * m4/eoshift3.m4: Correct bstride (it needs to be multiplied by size since it's a char pointer). * m4/eoshift3_4.c: Regenerated. * m4/eoshift3_8.c: Regenerated. 2005-06-28 Thomas Koenig <Thomas.Koenig@online.de> PR libfortran/22142 * gfortran.fortran-torture/execute/intrinsic_eoshift.f90: Add testcase for PR 22142. From-SVN: r101392
This commit is contained in:
parent
4de67c26fe
commit
0f363a3b8c
@ -1,3 +1,9 @@
|
||||
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de>
|
||||
|
||||
PR libfortran/22142
|
||||
* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
|
||||
Add testcase for PR 22142.
|
||||
|
||||
2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
|
||||
|
||||
* g++.dg/ext/fpreg1.C, gcc.target/ia64/fpreg-1.c,
|
||||
|
@ -2,6 +2,7 @@
|
||||
program intrinsic_eoshift
|
||||
integer, dimension(3, 3) :: a
|
||||
integer, dimension(3, 3, 2) :: b
|
||||
integer, dimension(3) :: bo, sh
|
||||
|
||||
! Scalar shift and scalar bound.
|
||||
a = reshape ((/1, 2, 3, 4, 5, 6, 7, 8, 9/), (/3, 3/))
|
||||
@ -47,6 +48,13 @@ program intrinsic_eoshift
|
||||
if (any (a .ne. reshape ((/7, -1, 3, 99, -1, 6, 99, 2, 9/), (/3, 3/)))) &
|
||||
call abort
|
||||
|
||||
a = reshape ((/1, 2, 3, 4, 5, 6, 7, 8, 9/), (/3, 3/))
|
||||
sh = (/ 3, -1, -3 /)
|
||||
bo = (/-999, -99, -9 /)
|
||||
a = eoshift(a, shift=sh, boundary=bo)
|
||||
if (any (a .ne. reshape ((/ -999, -999, -999, -99, 4, 5, -9, -9, -9 /), &
|
||||
shape(a)))) call abort
|
||||
|
||||
! Test arrays > rank 2
|
||||
b(:, :, 1) = reshape ((/1, 2, 3, 4, 5, 6, 7, 8, 9/), (/3, 3/))
|
||||
b(:, :, 2) = 10 + reshape ((/1, 2, 3, 4, 5, 6, 7, 8, 9/), (/3, 3/))
|
||||
|
@ -1,3 +1,11 @@
|
||||
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de>
|
||||
|
||||
PR libfortran/22142
|
||||
* m4/eoshift3.m4: Correct bstride (it needs to be multiplied
|
||||
by size since it's a char pointer).
|
||||
* m4/eoshift3_4.c: Regenerated.
|
||||
* m4/eoshift3_8.c: Regenerated.
|
||||
|
||||
2005-06-28 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
||||
|
||||
PR libfortran/22170
|
||||
|
@ -135,7 +135,7 @@ eoshift3_4 (gfc_array_char *ret, gfc_array_char *array,
|
||||
|
||||
hstride[n] = h->dim[n].stride;
|
||||
if (bound)
|
||||
bstride[n] = bound->dim[n].stride;
|
||||
bstride[n] = bound->dim[n].stride * size;
|
||||
else
|
||||
bstride[n] = 0;
|
||||
n++;
|
||||
|
@ -135,7 +135,7 @@ eoshift3_8 (gfc_array_char *ret, gfc_array_char *array,
|
||||
|
||||
hstride[n] = h->dim[n].stride;
|
||||
if (bound)
|
||||
bstride[n] = bound->dim[n].stride;
|
||||
bstride[n] = bound->dim[n].stride * size;
|
||||
else
|
||||
bstride[n] = 0;
|
||||
n++;
|
||||
|
@ -136,7 +136,7 @@ eoshift3_`'atype_kind (gfc_array_char *ret, gfc_array_char *array,
|
||||
|
||||
hstride[n] = h->dim[n].stride;
|
||||
if (bound)
|
||||
bstride[n] = bound->dim[n].stride;
|
||||
bstride[n] = bound->dim[n].stride * size;
|
||||
else
|
||||
bstride[n] = 0;
|
||||
n++;
|
||||
|
Loading…
Reference in New Issue
Block a user