aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/io/unix.h
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2010-07-13 02:12:08 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2010-07-13 02:12:08 +0000
commitc7421e06ca1de11fa125ed9d8619680d17bfb6f8 (patch)
tree708fe1e3e6e8349ec20c2bbbb436fa48ee645bd2 /libgfortran/io/unix.h
parentc8dce2cfddf0baf62bf56c2d5a49e1dfcdda0231 (diff)
downloadgcc-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.h9
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);