aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorErik Edelmann <eedelman@gcc.gnu.org>2006-01-30 22:23:57 +0000
committerErik Edelmann <eedelman@gcc.gnu.org>2006-01-30 22:23:57 +0000
commit64db4d29006823b28081c1aad7158d150f0fad18 (patch)
treed7333d6cba028f930db25db37029ca71b9a5a57e /gcc
parente939885ff55dc2a789f35c222ae2ef8066da91f5 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/fortran/trans-io.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/arrayio_derived_2.f9017
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