re PR fortran/37211 (TRANSFER to characters: Size checking)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Fri, 5 Aug 2011 21:51:59 +0000 (21:51 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Fri, 5 Aug 2011 21:51:59 +0000 (21:51 +0000)
commit86dbed7d1bbbee6c0a5304091e089c48a20c0142
tree355e022c7c1cbec05a02dc85dd3da5320674d598
parent7cfea2ef26a3aab320c90d71c35c69a8c78404d7
re PR fortran/37211 (TRANSFER to characters: Size checking)

2011-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37221
* gfortran.h (gfc_calculate_transfer_sizes):  Add prototype.
* target-memory.h (gfc_target_interpret_expr):  Add boolean
argument wether to convert wide characters.
* target-memory.c (gfc_target_expr_size):  Also return length
of characters for non-constant expressions if these can be
determined from the cl.
(interpret_array):  Add argument for gfc_target_interpret_expr.
(gfc_interpret_derived):  Likewise.
(gfc_target_interpret_expr):  Likewise.
* check.c:  Include target-memory.h.
(gfc_calculate_transfer_sizes):  New function.
(gfc_check_transfer):  When -Wsurprising is in force, calculate
sizes and warn if result is larger than size (check moved from
gfc_simplify_transfer).
* simplify.c (gfc_simplify_transfer):  Use
gfc_calculate_transfer_sizes.  Remove warning.

2011-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37221
* gfortran.dg/transfer_check_2.f90:  New test case.

From-SVN: r177486
gcc/fortran/ChangeLog
gcc/fortran/check.c
gcc/fortran/gfortran.h
gcc/fortran/simplify.c
gcc/fortran/target-memory.c
gcc/fortran/target-memory.h
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/transfer_check_2.f90 [new file with mode: 0644]