]> gcc.gnu.org Git - gcc.git/commitdiff
re PR fortran/15975 ([4.0 only] ICE in trans-array.c pointer array initialization...
authorErik Edelmann <erik.edelmann@iki.fi>
Sun, 18 Sep 2005 05:50:04 +0000 (08:50 +0300)
committerPaul Thomas <pault@gcc.gnu.org>
Sun, 18 Sep 2005 05:50:04 +0000 (05:50 +0000)
2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>

PR fortran/15975
* resolve.c (resolve_symbol): Don't assign default
initializer to pointers.

2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>

PR fortran/15975
* gfortran.dg/der_pointer_2.f90: New test.

From-SVN: r104389

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/der_pointer_2.f90 [new file with mode: 0644]

index ca4a80d83e9a8d680145d215d54efa714ae565ba..0863e275ef25f0639239eaec194bdca75bc02899 100644 (file)
@@ -1,3 +1,9 @@
+2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>
+
+       PR fortran/15975
+       * resolve.c (resolve_symbol): Don't assign default
+       initializer to pointers.
+
 2005-09-18  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/16861
index f9413336f532de0aad51834263c9c5b800937a1c..e342a1e8d575e91a542648f3324d8a0603502821 100644 (file)
@@ -4328,7 +4328,8 @@ resolve_symbol (gfc_symbol * sym)
        }
 
       /* Assign default initializer.  */
-      if (sym->ts.type == BT_DERIVED && !(sym->value || whynot))
+      if (sym->ts.type == BT_DERIVED && !(sym->value || whynot)
+          && !sym->attr.pointer)
        sym->value = gfc_default_initializer (&sym->ts);
       break;
 
index c60cb5587aaa2de1bb0dfbd0c94a6b8ebc6529fa..4424bd8ec92e615e4b8a64eb3b08776fbdbd931d 100644 (file)
@@ -1,3 +1,8 @@
+2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>
+
+       PR fortran/15975
+       * gfortran.dg/der_pointer_2.f90: New test.
+
 2005-09-18  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/16861
diff --git a/gcc/testsuite/gfortran.dg/der_pointer_2.f90 b/gcc/testsuite/gfortran.dg/der_pointer_2.f90
new file mode 100644 (file)
index 0000000..3749fc2
--- /dev/null
@@ -0,0 +1,20 @@
+! { dg-do compile }
+! PR 15975, PR 16606
+! Pointers to derived types with initialized components
+!
+! Contributed by Erik Edelmann <erik.edelmann@iki.fi>
+!
+SUBROUTINE N
+  TYPE T
+    INTEGER :: I = 99
+  END TYPE T
+  TYPE(T), POINTER :: P
+  TYPE(T), TARGET  :: Q
+  P => Q
+  if (P%I.ne.99) call abort ()
+END SUBROUTINE N
+
+program test_pr15975
+  call n ()
+end program test_pr15975
+
This page took 0.106994 seconds and 5 git commands to generate.