Mercurial > hg > CbC > CbC_gcc
diff libgfortran/io/open.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/libgfortran/io/open.c Fri Oct 27 22:46:09 2017 +0900 +++ b/libgfortran/io/open.c Thu Oct 25 07:37:49 2018 +0900 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2017 Free Software Foundation, Inc. +/* Copyright (C) 2002-2018 Free Software Foundation, Inc. Contributed by Andy Vaught F2003 I/O support contributed by Jerry DeLisle @@ -26,6 +26,7 @@ #include "io.h" #include "fbuf.h" #include "unix.h" +#include "async.h" #ifdef HAVE_UNISTD_H #include <unistd.h> @@ -586,7 +587,7 @@ else { u->flags.has_recl = 0; - u->recl = max_offset; + u->recl = default_recl; if (compile_options.max_subrecord_length) { u->recl_subrecord = compile_options.max_subrecord_length; @@ -622,7 +623,9 @@ if (flags->access == ACCESS_STREAM) { u->maxrec = max_offset; - u->recl = 1; + /* F2018 (N2137) 12.10.2.26: If the connection is for stream + access recl is assigned the value -2. */ + u->recl = -2; u->bytes_left = 1; u->strm_pos = stell (u->s) + 1; } @@ -649,8 +652,12 @@ else u->fbuf = NULL; - - + /* Check if asynchrounous. */ + if (flags->async == ASYNC_YES) + init_async_unit (u); + else + u->au = NULL; + return u; cleanup: @@ -805,8 +812,6 @@ conv = compile_options.convert; } - /* We use big_endian, which is 0 on little-endian machines - and 1 on big-endian machines. */ switch (conv) { case GFC_CONVERT_NATIVE: @@ -814,11 +819,11 @@ break; case GFC_CONVERT_BIG: - conv = big_endian ? GFC_CONVERT_NATIVE : GFC_CONVERT_SWAP; + conv = __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? GFC_CONVERT_NATIVE : GFC_CONVERT_SWAP; break; case GFC_CONVERT_LITTLE: - conv = big_endian ? GFC_CONVERT_SWAP : GFC_CONVERT_NATIVE; + conv = __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? GFC_CONVERT_SWAP : GFC_CONVERT_NATIVE; break; default: