diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2007-07-08 22:20:04 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2007-07-08 22:20:04 +0000 |
commit | fb263f821cdab4e9237c4a321f959ac9e3704686 (patch) | |
tree | 7c64d364be9be5b9dbf562d41d56660dc24c195d /gcc | |
parent | 3bed9dd0236405001fc0aeccf7fa37b1ff4ecc9f (diff) | |
download | gcc-fb263f821cdab4e9237c4a321f959ac9e3704686.zip gcc-fb263f821cdab4e9237c4a321f959ac9e3704686.tar.gz gcc-fb263f821cdab4e9237c4a321f959ac9e3704686.tar.bz2 |
re PR fortran/32217 (segfaults (at runtime) on UNPACK with zero-sized arrays)
2007-07-08 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32217
* intrinsics/unpack_generic.c: If the destination array is
empty, return early.
2007-07-08 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32217
* gfortran.dg/unpack_zerosize_1.f90: New test case.
From-SVN: r126469
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/unpack_zerosize_1.f90 | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c983b92..4f24f50 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-07-08 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR libfortran/32217 + * gfortran.dg/unpack_zerosize_1.f90: New test case. + 2007-07-08 Daniel Franke <franke.daniel@gmail.com> PR fortran/17711 diff --git a/gcc/testsuite/gfortran.dg/unpack_zerosize_1.f90 b/gcc/testsuite/gfortran.dg/unpack_zerosize_1.f90 new file mode 100644 index 0000000..8a41f5d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/unpack_zerosize_1.f90 @@ -0,0 +1,14 @@ +! { dg-do run } +! PR 32217 - unpack used to crash at runtime with a zero-sized +! array. Test case submitted by Jaroslav Hajek. +program bug_report + implicit none + integer,parameter:: rp = kind(1.d0),na = 6 + real(rp),allocatable:: hhe(:,:,:),hhc(:,:,:),dv(:) + integer:: nhh,ndv + nhh = 0 + allocate(hhe(nhh,2,2)) + ndv = 2*na + count(hhe /= 0) + allocate(hhc(nhh,2,2),dv(ndv)) + hhc = unpack(dv(2*na+1:),hhe /= 0._rp,0._rp) +end program bug_report |