aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorErik Edelmann <erik.edelmann@iki.fi>2005-10-06 18:44:01 +0300
committerTobias Schlüter <tobi@gcc.gnu.org>2005-10-06 17:44:01 +0200
commit3b138408de876d34b13d42dc10acc16d061c1e52 (patch)
treebc85894fe009224f7f0a35e997328d658d5f925b /gcc/fortran/resolve.c
parentd739199abbc65d6c08a804d45de89db4530ddc53 (diff)
downloadgcc-3b138408de876d34b13d42dc10acc16d061c1e52.zip
gcc-3b138408de876d34b13d42dc10acc16d061c1e52.tar.gz
gcc-3b138408de876d34b13d42dc10acc16d061c1e52.tar.bz2
re PR fortran/18568 (pointers in derived data types do not transmit shape of pointed to arrays - bug or non-standard feature?)
2005-10-07 Erik Edelmann <erik.edelmann@iki.fi> fortran/ PR 18568 * resolve.c (find_array_spec): Search through the list of components in the symbol of the type instead of the symbol of the variable. testsuite/ PR 18568 * gfortran.dg/der_pointer_3.f90: New test. From-SVN: r105039
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 192a18c3..f057340 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1912,7 +1912,6 @@ find_array_spec (gfc_expr * e)
gfc_ref *ref;
as = e->symtree->n.sym->as;
- c = e->symtree->n.sym->components;
for (ref = e->ref; ref; ref = ref->next)
switch (ref->type)
@@ -1926,7 +1925,7 @@ find_array_spec (gfc_expr * e)
break;
case REF_COMPONENT:
- for (; c; c = c->next)
+ for (c = e->symtree->n.sym->ts.derived->components; c; c = c->next)
if (c == ref->u.c.component)
break;
@@ -1940,7 +1939,6 @@ find_array_spec (gfc_expr * e)
as = c->as;
}
- c = c->ts.derived->components;
break;
case REF_SUBSTRING: