From: Erik Edelmann Date: Sun, 18 Sep 2005 05:50:04 +0000 (+0300) Subject: re PR fortran/15975 ([4.0 only] ICE in trans-array.c pointer array initialization... X-Git-Tag: misc/cutover-cvs2svn~571 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=630b7086421bdad457891f752a76ba84b30d593d;p=thirdparty%2Fgcc.git re PR fortran/15975 ([4.0 only] ICE in trans-array.c pointer array initialization stuff) 2005-09-18 Erik Edelmann PR fortran/15975 * resolve.c (resolve_symbol): Don't assign default initializer to pointers. 2005-09-18 Erik Edelmann PR fortran/15975 * gfortran.dg/der_pointer_2.f90: New test. From-SVN: r104389 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index ca4a80d83e9a..0863e275ef25 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2005-09-18 Erik Edelmann + + PR fortran/15975 + * resolve.c (resolve_symbol): Don't assign default + initializer to pointers. + 2005-09-18 Paul Thomas PR fortran/16861 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index f9413336f532..e342a1e8d575 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -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; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c60cb5587aaa..4424bd8ec92e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-09-18 Erik Edelmann + + PR fortran/15975 + * gfortran.dg/der_pointer_2.f90: New test. + 2005-09-18 Paul Thomas 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 index 000000000000..3749fc24ff83 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/der_pointer_2.f90 @@ -0,0 +1,20 @@ +! { dg-do compile } +! PR 15975, PR 16606 +! Pointers to derived types with initialized components +! +! Contributed by Erik Edelmann +! +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 +