diff options
author | Janus Weil <janus@gcc.gnu.org> | 2009-12-06 23:57:13 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2009-12-06 23:57:13 +0100 |
commit | a15b72fa7f318ab4e2bbdaddc0735b1f2185ddd0 (patch) | |
tree | d61a66c25b72f8351ac63e7b728dc56d39eba781 /gcc | |
parent | 3a5729ea2a8441fe2f9e583fb2ae28b56df2e24c (diff) | |
download | gcc-a15b72fa7f318ab4e2bbdaddc0735b1f2185ddd0.zip gcc-a15b72fa7f318ab4e2bbdaddc0735b1f2185ddd0.tar.gz gcc-a15b72fa7f318ab4e2bbdaddc0735b1f2185ddd0.tar.bz2 |
re PR fortran/41478 (Corrupted memory using PACK for derived-types with allocated components)
libgfortran/
2009-12-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/41478
PR fortran/42268
* intrinsics/pack_generic.c (pack): Add safety checks for the case that
'vector' is NULL.
gcc/testsuite/
2009-12-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/41478
PR fortran/42268
* gfortran.dg/intrinsic_pack_5.f90: New test.
From-SVN: r155024
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90 | 16 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 12a57bc..7ce1947 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2009-12-06 Janus Weil <janus@gcc.gnu.org> + + PR fortran/41478 + PR fortran/42268 + * gfortran.dg/intrinsic_pack_5.f90: New test. + 2009-12-04 Jason Merrill <jason@redhat.com> PR c++/42010 diff --git a/gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90 b/gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90 new file mode 100644 index 0000000..c0540b6 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90 @@ -0,0 +1,16 @@ +! { dg-do run } +! +! PR 41478: Corrupted memory using PACK for derived-types with allocated components +! PR 42268: [4.4/4.5 Regression] derived type segfault with pack +! +! Original test case by Juergen Reuter <reuter@physik.uni-freiburg.de> +! Modified by Janus Weil <janus@gcc.gnu.org> + +type :: container_t + integer:: entry = -1 +end type container_t +type(container_t), dimension(1) :: a1, a2 +a2(1)%entry = 1 +a1 = pack (a2, mask = [.true.]) +if (a1(1)%entry/=1) call abort() +end |