diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2008-04-20 19:56:07 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2008-04-20 19:56:07 +0000 |
commit | 8c154b65579602aad087eff7229a460412b9ed8c (patch) | |
tree | a0f091b6d4e9ffd907ca682662f415fcb11b9fd8 /gcc | |
parent | eea05d39c799880df753e9b74d2d96e86215c46e (diff) | |
download | gcc-8c154b65579602aad087eff7229a460412b9ed8c.zip gcc-8c154b65579602aad087eff7229a460412b9ed8c.tar.gz gcc-8c154b65579602aad087eff7229a460412b9ed8c.tar.bz2 |
re PR fortran/35960 (run time abort with assignment of RESHAPEd zero sized array)
2008-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35960
* intrinsics/reshape_generic.c (reshape_internal): If the size
of the resized array is zero, as determined by the SHAPE
argument, return early.
* m4/reshape.m4: Likewise.
* generated/reshape_i4.c: Regererated.
* generated/reshape_i8.c: Regenerated.
* generated/reshape_i16.c: Regenerated.
* generated/reshape_r4.c: Regenerated.
* generated/reshape_r8.c: Regenerated.
* generated/reshape_r10.c: Regenerated.
* generated/reshape_r16.c: Regenerated.
* generated/reshape_c4.c: Regenerated.
* generated/reshape_c8.c: Regenerated.
* generated/reshape_c10.c: Regenerated.
* generated/reshape_c16.c: Regenerated.
2008-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35960
* gfortran.dg/reshape_zerosize_1.f90: New file.
From-SVN: r134490
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/reshape_zerosize_1.f90 | 39 |
2 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d200785..d2435ca 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-04-20 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR libfortran/35960 + * gfortran.dg/reshape_zerosize_1.f90: New file. + 2008-04-20 Eric Botcazou <ebotcazou@adacore.com> * gnat.dg/alignment6.adb: New test. diff --git a/gcc/testsuite/gfortran.dg/reshape_zerosize_1.f90 b/gcc/testsuite/gfortran.dg/reshape_zerosize_1.f90 new file mode 100644 index 0000000..61896ab --- /dev/null +++ b/gcc/testsuite/gfortran.dg/reshape_zerosize_1.f90 @@ -0,0 +1,39 @@ +! { dg-do run } +! PR 35960 - there was a run-time abort when the SHAPE argument to +! RESHAPE was zero-sized. +! Test case contributed by Dick Henderson. + program try_gf1065 + + +! fails on Windows XP +! gcc version 4.4.0 20080312 (experimental) [trunk revision 133139] + + + call gf1065(1, 2, 3, 4, 7, 8, 9) + end + + SUBROUTINE GF1065(nf1,nf2,nf3,nf4,nf7,nf8,nf9) + + REAL RDA(10,9) + REAL RCA1(90) + integer ila(2) + RDA(NF9:NF8, NF7:NF3) = RESHAPE(RCA1,(/0,0/), (/1.0/),(/2,1/)) + + rDA(NF9:NF8, NF7:NF3) = RESHAPE(rCA1,(/0,0/),ORDER=(/2,1/)) + + ILA(1) = 5 + ILA(2) = 0 + rDA(NF4:NF8, NF7:NF3) = RESHAPE(rcA1,ILA) + + RdA(NF4:NF8, NF7:NF3) = RESHAPE(RcA1,ILA,PAD=(/-1.0/)) + + ILA(1) = 0 + ILA(2) = 5 + RdA(NF9:NF8,NF4:NF8)=RESHAPE(RcA1,ILA,(/-1.0/),(/NF2,NF1/)) + + ILA(1) = 5 + ILA(2) = 0 + RdA(NF4:NF8, NF7:NF3) = RESHAPE(RcA1,ILA,ORDER=(/NF1,NF2/)) + + + END SUBROUTINE |