+2016-10-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/77828
+ * ioparm.def: Reorder dt parameters to match libgfortran.
+ * libgfortran.h: Swap definitions of GFC_INTERNAL_UNIT and
+ GFC_INTERNAL_UNIT4.
+
2016-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/71895
IOPARM (inquire, iqstream, 1 << 8, char1)
IOPARM (wait, common, 0, common)
IOPARM (wait, id, 1 << 7, pint4)
-#ifndef IOPARM_dt_list_format
+IOPARM (dt, common, 0, common)
#define IOPARM_dt_list_format (1 << 7)
#define IOPARM_dt_namelist_read_mode (1 << 8)
-#endif
-IOPARM (dt, common, 0, common)
IOPARM (dt, rec, 1 << 9, intio)
IOPARM (dt, size, 1 << 10, pintio)
IOPARM (dt, iolength, 1 << 11, pintio)
IOPARM (dt, advance, 1 << 13, char2)
IOPARM (dt, internal_unit, 1 << 14, char1)
IOPARM (dt, namelist_name, 1 << 15, char2)
-IOPARM (dt, u, 0, pad)
IOPARM (dt, id, 1 << 16, pint4)
IOPARM (dt, pos, 1 << 17, intio)
IOPARM (dt, asynchronous, 1 << 18, char1)
IOPARM (dt, sign, 1 << 24, char1)
#define IOPARM_dt_f2003 (1 << 25)
#define IOPARM_dt_dtio (1 << 26)
+IOPARM (dt, u, 0, pad)
/* Special unit numbers used to convey certain conditions. Numbers -4
thru -9 available. NEWUNIT values start at -10. */
-#define GFC_INTERNAL_UNIT4 -1 /* KIND=4 Internal Unit. */
-#define GFC_INTERNAL_UNIT -2 /* KIND=1 Internal Unit. */
+#define GFC_INTERNAL_UNIT -1 /* KIND=1 Internal Unit. */
+#define GFC_INTERNAL_UNIT4 -2 /* KIND=4 Internal Unit. */
#define GFC_INVALID_UNIT -3
/* Possible values for the CONVERT I/O specifier. */
--- /dev/null
+! { dg-do run }
+program stream_test
+implicit none
+integer :: ios
+character(128) :: message
+open(10, status='scratch', access='stream')
+write (10, rec=1, iostat=ios, iomsg=message) "This is a test" !
+if (ios.ne.5001) call abort
+if (message.ne. &
+ &"Record number not allowed for stream access data transfer") &
+ call abort
+end program
+2016-10-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/77828
+ * io/io.h (st_parameter_dt): Reorder for readability and sanity.
+ * io/transfer.c (data_transfer_init): Remove TODO and enable the
+ runtime error message, rec= specifier not allowed in STREAM
+ access.
+ * libtool-version: Bump major version of libgfortran to 4.
+
2016-10-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/78055
CHARACTER2 (advance);
CHARACTER1 (internal_unit);
CHARACTER2 (namelist_name);
+ GFC_INTEGER_4 *id;
+ GFC_IO_INT pos;
+ CHARACTER1 (asynchronous);
+ CHARACTER2 (blank);
+ CHARACTER1 (decimal);
+ CHARACTER2 (delim);
+ CHARACTER1 (pad);
+ CHARACTER2 (round);
+ CHARACTER1 (sign);
/* Private part of the structure. The compiler just needs
to reserve enough space. */
union
unit_blank blank_status;
unit_sign sign_status;
int scale_factor;
- int max_pos; /* Maximum righthand column written to. */
+ /* Maximum righthand column written to. */
+ int max_pos;
/* Number of skips + spaces to be done for T and X-editing. */
int skips;
/* Number of spaces to be done for T and X-editing. */
are an unsigned char, EOF, or EOF - 1 used to mark the
field as not valid. */
int last_char; /* No longer used, moved to gfc_unit. */
- char nml_delim;
-
+ int nml_delim;
int repeat_count;
int saved_length;
int saved_used;
must be smaller or equal to this array. */
char pad[16 * sizeof (char *) + 32 * sizeof (int)];
} u;
- GFC_INTEGER_4 *id;
- GFC_IO_INT pos;
- CHARACTER1 (asynchronous);
- CHARACTER2 (blank);
- CHARACTER1 (decimal);
- CHARACTER2 (delim);
- CHARACTER1 (pad);
- CHARACTER2 (round);
- CHARACTER1 (sign);
}
st_parameter_dt;
return;
}
- /* TODO: This is required to maintain compatibility between
- 4.3 and 4.4 runtime. Remove when ABI changes from 4.3 */
-
- if (is_stream_io (dtp))
- dtp->u.p.current_unit->strm_pos = dtp->rec;
-
- /* TODO: Un-comment this code when ABI changes from 4.3.
if (dtp->u.p.current_unit->flags.access == ACCESS_STREAM)
{
generate_error (&dtp->common, LIBERROR_OPTION_CONFLICT,
"Record number not allowed for stream access "
"data transfer");
return;
- } */
+ }
}
/* Bugware for badly written mixed C-Fortran I/O. */
# This is a separate file so that version updates don't involve re-running
# automake.
# CURRENT:REVISION:AGE
-3:0:0
+4:0:0