aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/io/io.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/io.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/io.h')
-rw-r--r--libgfortran/io/io.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h
index acbec77..fbc2fa3 100644
--- a/libgfortran/io/io.h
+++ b/libgfortran/io/io.h
@@ -59,6 +59,8 @@ struct gfc_unit;
#define is_stream_io(dtp) ((dtp)->u.p.current_unit->flags.access == ACCESS_STREAM)
+#define is_char4_unit(dtp) ((dtp)->u.p.unit_is_internal && (dtp)->common.unit)
+
/* The array_loop_spec contains the variables for the loops over index ranges
that are encountered. Since the variables can be negative, ssize_t
is used. */