aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2008-03-29 08:11:02 +0000
committerPaul Thomas <pault@gcc.gnu.org>2008-03-29 08:11:02 +0000
commit067feae32fe285618807617acf418260c6e9cf12 (patch)
tree4a75eff4d82cbafdd38d6c403013a27b5d32c727 /gcc/fortran/trans-expr.c
parentdbc518f09c4ac4499dcbf5802e20cd4adb0d9a41 (diff)
downloadgcc-067feae32fe285618807617acf418260c6e9cf12.zip
gcc-067feae32fe285618807617acf418260c6e9cf12.tar.gz
gcc-067feae32fe285618807617acf418260c6e9cf12.tar.bz2
re PR fortran/35698 (lbound and ubound wrong for allocated run-time zero size array)
2008-03-29 Paul Thomas <pault@gcc.gnu.org> PR fortran/35698 * trans-array.c (gfc_array_init_size): Set 'size' zero if negative in one dimension. PR fortran/35702 * trans-expr.c (gfc_trans_string_copy): Only assign a char directly if the lhs and rhs types are the same. 2008-03-29 Paul Thomas <pault@gcc.gnu.org> PR fortran/35698 * gfortran.dg/allocate_zerosize_3.f: New test. PR fortran/35702 * gfortran.dg/character_assign_1.f90: New test. From-SVN: r133710
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r--gcc/fortran/trans-expr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 9b33d37..0167247 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -2858,7 +2858,9 @@ gfc_trans_string_copy (stmtblock_t * block, tree dlength, tree dest,
dsc = gfc_to_single_character (dlen, dest);
- if (dsc != NULL_TREE && ssc != NULL_TREE)
+ /* Assign directly if the types are compatible. */
+ if (dsc != NULL_TREE && ssc != NULL_TREE
+ && TREE_TYPE (dsc) == TREE_TYPE (ssc))
{
gfc_add_modify_expr (block, dsc, ssc);
return;