aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2006-01-11 07:15:25 +0000
committerPaul Thomas <pault@gcc.gnu.org>2006-01-11 07:15:25 +0000
commitf851ee5c6917d79a2d5fceb12c58dccfbbd2b22d (patch)
tree97931527b32fa505e7f7554b2960b8d3be0bed80 /gcc/fortran
parent0966949bb65fb158e3936e858468ddd3d1c95a68 (diff)
downloadgcc-f851ee5c6917d79a2d5fceb12c58dccfbbd2b22d.zip
gcc-f851ee5c6917d79a2d5fceb12c58dccfbbd2b22d.tar.gz
gcc-f851ee5c6917d79a2d5fceb12c58dccfbbd2b22d.tar.bz2
[multiple changes]
2005-01-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/25730 * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for character lengths. 2006-01-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/25730 * gfortran.dg/used_types_1.f90: New test. From-SVN: r109573
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-types.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 44f6a48..1289429 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2005-01-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/25730
+ * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for
+ character lengths.
+
2006-01-09 Andrew Pinski <pinskia@physics.uc.edu>
fortran/24936
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index b41940c..fcdef6a 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -1418,12 +1418,16 @@ copy_dt_decls_ifequal (gfc_symbol *from, gfc_symbol *to)
a derived type, we need a copy of its component declarations.
This is done by recursing into gfc_get_derived_type and
ensures that the component's component declarations have
- been built. */
+ been built. If it is a character, we need the character
+ length, as well. */
for (; to_cm; to_cm = to_cm->next, from_cm = from_cm->next)
{
to_cm->backend_decl = from_cm->backend_decl;
if (from_cm->ts.type == BT_DERIVED)
gfc_get_derived_type (to_cm->ts.derived);
+
+ else if (from_cm->ts.type == BT_CHARACTER)
+ to_cm->ts.cl->backend_decl = from_cm->ts.cl->backend_decl;
}
return 1;