re PR fortran/29804 (segfault with -fbounds-check on allocatable derived type components)
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Thu, 12 Jul 2007 10:58:49 +0000 (10:58 +0000)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Thu, 12 Jul 2007 10:58:49 +0000 (10:58 +0000)
PR fortran/29804
* gfortran.dg/alloc_comp_misc_1.f90: New test.

From-SVN: r126578

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/alloc_comp_misc_1.f90 [new file with mode: 0644]

index 54b392f..9f4a390 100644 (file)
@@ -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 (file)
index 0000000..e118b03
--- /dev/null
@@ -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