re PR fortran/24266 (ICE when writing to array of strings that is an elements of a user defined type)

fortran/
2005-01-30  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/24266
        * trans-io.c (set_internal_unit): Check the rank of the
        expression node itself instead of its symbol.


testsuite/
2005-01-30  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/24266
        * gfortran.dg/arrayio_derived_2.f90: New.

From-SVN: r110412
This commit is contained in:
Erik Edelmann 2006-01-30 22:23:57 +00:00
parent e939885ff5
commit 64db4d2900
4 changed files with 29 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-01-30 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/24266
* trans-io.c (set_internal_unit): Check the rank of the
expression node itself instead of its symbol.
2006-01-29 Paul Thomas <pault@gcc.gnu.org>
PR fortran/18578

View File

@ -599,7 +599,7 @@ set_internal_unit (stmtblock_t * block, tree var, gfc_expr * e)
}
/* Character array. */
else if (e->symtree && (e->symtree->n.sym->as->rank > 0))
else if (e->rank > 0)
{
se.ss = gfc_walk_expr (e);

View File

@ -1,3 +1,8 @@
2005-01-30 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/24266
* gfortran.dg/arrayio_derived_2.f90: New.
2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
* gcc.dg/unsigned-long-compare.c: New test.

View File

@ -0,0 +1,17 @@
! { dg-do compile }
! PR 24266: IO to/from arrays that are components of derived types.
program main
implicit none
type ice
character(len=80) :: mess(3)
end type ice
type(ice) :: tp
integer :: i
character(len=80) :: mess
write(tp%mess,*) "message"
read(tp%mess,*) mess
print *, mess
end program main