diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2010-07-13 02:12:08 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2010-07-13 02:12:08 +0000 |
commit | c7421e06ca1de11fa125ed9d8619680d17bfb6f8 (patch) | |
tree | 708fe1e3e6e8349ec20c2bbbb436fa48ee645bd2 /libgfortran/io/unix.h | |
parent | c8dce2cfddf0baf62bf56c2d5a49e1dfcdda0231 (diff) | |
download | gcc-c7421e06ca1de11fa125ed9d8619680d17bfb6f8.zip gcc-c7421e06ca1de11fa125ed9d8619680d17bfb6f8.tar.gz gcc-c7421e06ca1de11fa125ed9d8619680d17bfb6f8.tar.bz2 |
re PR fortran/37077 (Implement Internal Unit I/O for character KIND=4)
2010-07-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/37077
* io/read.c: Fix comment.
* io/io.h (is_char4_unit): New macro.
* io/unit.c (get_internal_unit): Call new function open_internal4.
* io/unix.c (mem_alloc_r4): New function. (mem_alloc_w4): New function.
(mem_read4): New function, temporary stub. (mem_write4): New function.
(open_internal4): New function to set stream pointers to use the new
mem functions.
* io/transfer.c (write_block): Use new mem_alloc_w4 to access internal
units of kind=4.
* io/unix.h: Add prototypes for open_internal4, mem_alloc_w4, and
mem_alloc_r4.
* io/write.c (memset4): New helper function. (memcpy4): New helper
function. (write_default_char4): Use new helper functions.
(write_a): Likewise. (write_l): Likewise. (write_boz): Likewise.
(write_decimal): Likewise. (write_x): Likewise.
(write_integer): Likewise.
* io/write_float.def (output_float): Add code blocks to handle internal
unit kind=4 output utilizing gfc_char4_t pointers. (write_infnan): Use
new helper functions. (OUTPUT_FLOAT_FMT_G): Update this macro likewise.
From-SVN: r162123
Diffstat (limited to 'libgfortran/io/unix.h')
-rw-r--r-- | libgfortran/io/unix.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libgfortran/io/unix.h b/libgfortran/io/unix.h index c7f92a3..c69e357 100644 --- a/libgfortran/io/unix.h +++ b/libgfortran/io/unix.h @@ -94,12 +94,21 @@ internal_proto(open_external); extern stream *open_internal (char *, int, gfc_offset); internal_proto(open_internal); +extern stream *open_internal4 (char *, int, gfc_offset); +internal_proto(open_internal4); + extern char * mem_alloc_w (stream *, int *); internal_proto(mem_alloc_w); extern char * mem_alloc_r (stream *, int *); internal_proto(mem_alloc_r); +extern char * mem_alloc_w4 (stream *, int *); +internal_proto(mem_alloc_w4); + +extern char * mem_alloc_r4 (stream *, int *); +internal_proto(mem_alloc_r4); + extern stream *input_stream (void); internal_proto(input_stream); |