re PR fortran/31193 ([4.2 only] ICE on non-constant character tranfert)
authorPaul Thomas <pault@gcc.gnu.org>
Thu, 22 Mar 2007 18:37:16 +0000 (18:37 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Thu, 22 Mar 2007 18:37:16 +0000 (18:37 +0000)
commit1efd1a2f43a41b4467571194110ee1a921b2124d
treec581df9acdcd56fb46d26e938987f567e36afb1b
parent803f183a9464aeba39bc369c2d39ca3b9a986e78
re PR fortran/31193 ([4.2 only] ICE on non-constant character tranfert)

2006-03-22  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/31193
* trans-intrinsic.c (gfc_size_in_bytes): Remove function.
(gfc_conv_intrinsic_array_transfer): Remove calls to previous.
Explicitly extract TREE_TYPEs for source and mold.  Use these
to calculate length of source and mold, except for characters,
where the se string_length is used.  For mold, the TREE_TYPE is
recalculated using gfc_get_character_type_len so that the
result is correctly cast for character literals and substrings.
Do not use gfc_typenode_for_spec for the final cast.

2006-03-22  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/31193
* gfortran.dg/transfer_array_intrinsic_3.f90: New test.

From-SVN: r123131
gcc/fortran/ChangeLog
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/transfer_array_intrinsic_3.f90 [new file with mode: 0644]