Skip to content
Snippets Groups Projects
  • Thomas Koenig's avatar
    181c9f4a
    re PR fortran/23815 (Add -byteswapio flag) · 181c9f4a
    Thomas Koenig authored
    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
    181c9f4a
    History
    re PR fortran/23815 (Add -byteswapio flag)
    Thomas Koenig authored
    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