aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2008-04-20 19:56:07 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2008-04-20 19:56:07 +0000
commit8c154b65579602aad087eff7229a460412b9ed8c (patch)
treea0f091b6d4e9ffd907ca682662f415fcb11b9fd8 /gcc
parenteea05d39c799880df753e9b74d2d96e86215c46e (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/reshape_zerosize_1.f9039
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