diff options
author | Erik Edelmann <eedelman@gcc.gnu.org> | 2006-01-30 22:23:57 +0000 |
---|---|---|
committer | Erik Edelmann <eedelman@gcc.gnu.org> | 2006-01-30 22:23:57 +0000 |
commit | 64db4d29006823b28081c1aad7158d150f0fad18 (patch) | |
tree | d7333d6cba028f930db25db37029ca71b9a5a57e /gcc | |
parent | e939885ff55dc2a789f35c222ae2ef8066da91f5 (diff) | |
download | gcc-64db4d29006823b28081c1aad7158d150f0fad18.zip gcc-64db4d29006823b28081c1aad7158d150f0fad18.tar.gz gcc-64db4d29006823b28081c1aad7158d150f0fad18.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-io.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/arrayio_derived_2.f90 | 17 |
4 files changed, 29 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4eb14b8..bcdd799 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -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 diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c index 24b7bc9..db1a481 100644 --- a/gcc/fortran/trans-io.c +++ b/gcc/fortran/trans-io.c @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1aea281..5c8e59b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/gfortran.dg/arrayio_derived_2.f90 b/gcc/testsuite/gfortran.dg/arrayio_derived_2.f90 new file mode 100644 index 0000000..5ebe602 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/arrayio_derived_2.f90 @@ -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 |