diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-07-12 10:58:49 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-07-12 10:58:49 +0000 |
commit | 57200e086eac3794a8a7ebe0f89a2b77a4e51a59 (patch) | |
tree | 2c171cffc63a470f9307a4f4400d42269de8de82 /gcc | |
parent | 8f20c485050d550ccca1f4f4ed05ffd249c57c5f (diff) | |
download | gcc-57200e086eac3794a8a7ebe0f89a2b77a4e51a59.zip gcc-57200e086eac3794a8a7ebe0f89a2b77a4e51a59.tar.gz gcc-57200e086eac3794a8a7ebe0f89a2b77a4e51a59.tar.bz2 |
re PR fortran/29804 (segfault with -fbounds-check on allocatable derived type components)
PR fortran/29804
* gfortran.dg/alloc_comp_misc_1.f90: New test.
From-SVN: r126578
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/alloc_comp_misc_1.f90 | 28 |
2 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 54b392f..9f4a390 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-07-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + PR fortran/29804 + * gfortran.dg/alloc_comp_misc_1.f90: New test. + 2007-07-11 Daniel Berlin <dberlin@dberlin.org> * gfortran.fortran-torture/compile/pr32663.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/alloc_comp_misc_1.f90 b/gcc/testsuite/gfortran.dg/alloc_comp_misc_1.f90 new file mode 100644 index 0000000..e118b03 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/alloc_comp_misc_1.f90 @@ -0,0 +1,28 @@ +! PR 29804 +! This used to fail, it was magically fixed; keep in the testsuite so +! that we keep an eye on it. +! +! { dg-do run } +! { dg-options "-fbounds-check" } +program dt_bnd + implicit none + + type dbprc_type + integer, allocatable :: ipv(:) + end type dbprc_type + + type(dbprc_type), allocatable :: pre(:) + call ppset(pre) + +contains + subroutine ppset(p) + type(dbprc_type),allocatable, intent(inout) :: p(:) + integer :: nl + nl = 1 + + allocate(p(1)) + if (.not.allocated(p(nl)%ipv)) then + allocate(p(1)%ipv(1)) + end if + end subroutine ppset +end program dt_bnd |