re PR fortran/21625 ([4.0 only] Nested derived type pointer component not initialized...
authorErik Edelmann <erik.edelmann@iki.fi>
Wed, 19 Oct 2005 22:20:56 +0000 (01:20 +0300)
committerErik Edelmann <eedelman@gcc.gnu.org>
Wed, 19 Oct 2005 22:20:56 +0000 (22:20 +0000)
PR fortran/21625
* gfortran.fg/der_init_1.f90: New.

From-SVN: r105643

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

index d511f9a..7a536a7 100644 (file)
@@ -1,3 +1,8 @@
+2005-10-20  Erik Edelmann  <erik.edelmann@iki.fi>
+
+       PR fortran/21625
+       * gfortran.fg/der_init_1.f90: New.
+
 2005-10-19  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * gcc.dg/20050824-1.c (f): Clobber %r13 and %r14 only on s390x.
diff --git a/gcc/testsuite/gfortran.dg/derived_init_1.f90 b/gcc/testsuite/gfortran.dg/derived_init_1.f90
new file mode 100644 (file)
index 0000000..bdd7d37
--- /dev/null
@@ -0,0 +1,32 @@
+! { dg-do run }
+! Check that allocatable/pointer variables of derived types with initialized
+! components are are initialized when allocated
+! PR 21625
+program test
+
+    implicit none
+    type :: t
+        integer :: a = 3
+    end type t
+    type :: s
+        type(t), pointer :: p(:)
+        type(t), pointer :: p2
+    end type s
+    type(t), pointer :: p
+    type(t), allocatable :: q(:,:)
+    type(s) :: z
+    type(s) :: x(2)
+
+    allocate(p, q(2,2))
+    if (p%a /= 3) call abort()
+    if (any(q(:,:)%a /= 3)) call abort()
+
+    allocate(z%p2, z%p(2:3))
+    if (z%p2%a /= 3) call abort()
+    if (any(z%p(:)%a /= 3)) call abort()
+
+    allocate(x(1)%p2, x(1)%p(2))
+    if (x(1)%p2%a /= 3) call abort()
+    if (any(x(1)%p(:)%a /= 3)) call abort()
+end program test
+