diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2010-10-16 16:06:07 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2010-10-16 16:06:07 +0000 |
commit | 6eb6875d7ec398935d3ae76f805e33db0c3773dd (patch) | |
tree | ef2e1984f68327623f3236a0f91f67926babb5ce /libgfortran/gfortran.map | |
parent | 08d78391b727da035b0f51e1c52fc2376d340e2e (diff) | |
download | gcc-6eb6875d7ec398935d3ae76f805e33db0c3773dd.tar.gz |
re PR tree-optimization/20165 (Pointer does not really escape with write)
2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/20165
PR fortran/31593
PR fortran/43665
* gfortran.map: Add _gfortran_transfer_array_write,
_gfortran_transfer_array_write, _gfortran_transfer_character_write,
_gfortran_transfer_character_wide_write,
_gfortran_transfer_complex_write,
_gfortran_transfer_integer_write,
_gfortran_transfer_logical_write and
_gfortran_transfer_real_write.
* io/transfer.c (transfer_integer_write): Add prototype and
function body as call to the original function, without the
_write.
(transfer_real_write): Likewise.
(transfer_logical_write): Likewise.
(transfer_character_write): Likewise.
(transfer_character_wide_write): Likewise.
(transfer_complex_write): Likewise.
(transfer_array_write): Likewise.
2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/20165
PR fortran/31593
PR fortran/43665
* trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
(gfc_build_io_library_fndecls): Add corresponding function
decls.
(transfer_expr): If the current transfer is a READ, use
the iocall with the original version, otherwise the version
with _WRITE.
(transfer_array_desc): Likewise.
From-SVN: r165559
Diffstat (limited to 'libgfortran/gfortran.map')
-rw-r--r-- | libgfortran/gfortran.map | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libgfortran/gfortran.map b/libgfortran/gfortran.map index ea6ebfa12eb..c85ebf7ec90 100644 --- a/libgfortran/gfortran.map +++ b/libgfortran/gfortran.map @@ -1141,6 +1141,13 @@ GFORTRAN_1.4 { _gfortran_parity_l8; _gfortran_parity_l16; _gfortran_selected_real_kind2008; + _gfortran_transfer_array_write; + _gfortran_transfer_character_write; + _gfortran_transfer_character_wide_write; + _gfortran_transfer_complex_write; + _gfortran_transfer_integer_write; + _gfortran_transfer_logical_write; + _gfortran_transfer_real_write; } GFORTRAN_1.3; F2C_1.0 { |