diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2006-01-11 07:15:25 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2006-01-11 07:15:25 +0000 |
commit | f851ee5c6917d79a2d5fceb12c58dccfbbd2b22d (patch) | |
tree | 97931527b32fa505e7f7554b2960b8d3be0bed80 /gcc/fortran | |
parent | 0966949bb65fb158e3936e858468ddd3d1c95a68 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-types.c | 6 |
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; |