@@ -34,7 +34,7 @@ IOPARM (common, line, 0, int4)
IOPARM (common, iomsg, 1 << 6, char2)
IOPARM (common, iostat, 1 << 5, pint4)
IOPARM (open, common, 0, common)
-IOPARM (open, recl_in, 1 << 7, int4)
+IOPARM (open, recl_in, 1 << 7, intio)
IOPARM (open, file, 1 << 8, char2)
IOPARM (open, status, 1 << 9, char1)
IOPARM (open, access, 1 << 10, char2)
@@ -63,7 +63,7 @@ IOPARM (inquire, opened, 1 << 8, pint4)
IOPARM (inquire, number, 1 << 9, pint4)
IOPARM (inquire, named, 1 << 10, pint4)
IOPARM (inquire, nextrec, 1 << 11, pint4)
-IOPARM (inquire, recl_out, 1 << 12, pint4)
+IOPARM (inquire, recl_out, 1 << 12, pintio)
IOPARM (inquire, strm_pos_out, 1 << 13, pintio)
IOPARM (inquire, file, 1 << 14, char1)
IOPARM (inquire, access, 1 << 15, char2)
new file mode 100644
@@ -0,0 +1,12 @@
+! { dg-do run }
+! PR 44292 Large RECL=
+program large_recl
+ implicit none
+ integer(kind=8) :: r
+ open(10, status="scratch", recl=12345678901_8, form="unformatted", access="direct")
+ inquire(10, recl=r)
+ close(10, status="delete")
+ if (r /= 12345678901_8) then
+ call abort()
+ end if
+end program large_recl
@@ -308,7 +308,7 @@ unit_sign_s;
typedef struct
{
st_parameter_common common;
- GFC_INTEGER_4 recl_in;
+ GFC_IO_INT recl_in;
CHARACTER2 (file);
CHARACTER1 (status);
CHARACTER2 (access);
@@ -388,8 +388,8 @@ typedef struct
{
st_parameter_common common;
GFC_INTEGER_4 *exist, *opened, *number, *named;
- GFC_INTEGER_4 *nextrec, *recl_out;
- GFC_IO_INT *strm_pos_out;
+ GFC_INTEGER_4 *nextrec;
+ GFC_IO_INT *recl_out, *strm_pos_out;
CHARACTER1 (file);
CHARACTER2 (access);
CHARACTER1 (form);