aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/ioparm.def6
-rw-r--r--gcc/fortran/libgfortran.h4
-rw-r--r--gcc/testsuite/gfortran.dg/streamio_17.f9012
4 files changed, 23 insertions, 6 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 3757881..0050bf8 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+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
diff --git a/gcc/fortran/ioparm.def b/gcc/fortran/ioparm.def
index 17b7ac7..bd628ce 100644
--- a/gcc/fortran/ioparm.def
+++ b/gcc/fortran/ioparm.def
@@ -90,11 +90,9 @@ IOPARM (inquire, id, 1 << 7, pint4)
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)
@@ -103,7 +101,6 @@ IOPARM (dt, format, 1 << 12, char1)
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)
@@ -115,3 +112,4 @@ IOPARM (dt, round, 1 << 23, char2)
IOPARM (dt, sign, 1 << 24, char1)
#define IOPARM_dt_f2003 (1 << 25)
#define IOPARM_dt_dtio (1 << 26)
+IOPARM (dt, u, 0, pad)
diff --git a/gcc/fortran/libgfortran.h b/gcc/fortran/libgfortran.h
index cc35508..8494ddc 100644
--- a/gcc/fortran/libgfortran.h
+++ b/gcc/fortran/libgfortran.h
@@ -70,8 +70,8 @@ along with GCC; see the file COPYING3. If not see
/* 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. */
diff --git a/gcc/testsuite/gfortran.dg/streamio_17.f90 b/gcc/testsuite/gfortran.dg/streamio_17.f90
new file mode 100644
index 0000000..41fa0b9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/streamio_17.f90
@@ -0,0 +1,12 @@
+! { 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