re PR fortran/23815 (Add -byteswapio flag)
authorThomas Koenig <Thomas.Koenig@online.de>
Sat, 10 Dec 2005 20:01:56 +0000 (20:01 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sat, 10 Dec 2005 20:01:56 +0000 (20:01 +0000)
commit181c9f4a9ba6b2d64c7c0b56b777ad366e05a9c1
treea3d754eebe0bc2166ffe8c241b2d9dfdd1098340
parent775fe6e36ddaef38cca67c39bf34b93fcb836dc3
re PR fortran/23815 (Add -byteswapio flag)

2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

PR fortran/23815
* io.c (top level):  Add convert to io_tag.
(resolve_tag):  convert is GFC_STD_GNU.
(match_open_element):  Add convert.
(gfc_free_open):  Likewise.
(gfc_resolve_open):  Likewise.
(gfc_free_inquire):  Likewise.
(match_inquire_element):  Likewise.
* dump-parse-tree.c (gfc_show_code_node):  Add
convet for open and inquire.
gfortran.h: Add convert to gfc_open and gfc_inquire.
* trans-io.c (gfc_trans_open):  Add convert.
(gfc_trans_inquire):  Likewise.
* ioparm.def:  Add convert to open and inquire.
* gfortran.texi:  Document CONVERT.

2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

PR fortran/23815
* io/file_pos.c (unformatted_backspace):  If flags.convert
does not equal CONVERT_NATIVE, reverse the record marker.
* io/open.c:  Add convert_opt[].
(st_open):  If no convert option is given, set CONVERT_NATIVE.
If CONVERT_BIG or CONVERT_LITTLE are given, set flags.convert to
CONVERT_NATIVE or CONVERT_SWAP (depending on wether we have
a big- or little-endian system).
* io/transfer.c (unformatted_read):  Remove unused attribute
from arguments.
If we need to reverse
bytes, break up large transfers into a loop.  Split complex
numbers into its two parts.
(unformatted_write):  Likewise.
(us_read):  If flags.convert does not equal CONVERT_NATIVE,
reverse the record marker.
(next_record_w): Likewise.
(reverse_memcpy):  New function.
* io/inquire.c (inquire_via_unit):  Implement convert.
* io/io.h (top level):  Add enum unit_convert.
Add convert to st_parameter_open and st_parameter_inquire.
Define IOPARM_OPEN_HAS_CONVERT and IOPARM_INQUIRE_HAS_CONVERT.
Increase padding for st_parameter_dt.
Declare reverse_memcpy().

2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

PR fortran/23815
* gfortran.dg/unf_io_convert_1.f90:  New test.
* gfortran.dg/unf_io_convert_2.f90:  New test.
* gfortran.dg/unf_io_convert_3.f90:  New test.

From-SVN: r108358
17 files changed:
gcc/fortran/ChangeLog
gcc/fortran/dump-parse-tree.c
gcc/fortran/gfortran.h
gcc/fortran/gfortran.texi
gcc/fortran/io.c
gcc/fortran/ioparm.def
gcc/fortran/trans-io.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/unf_io_convert_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/unf_io_convert_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/unf_io_convert_3.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/file_pos.c
libgfortran/io/inquire.c
libgfortran/io/io.h
libgfortran/io/open.c
libgfortran/io/transfer.c