[gfortran] patch for PR 14872 - Variables used for REC= in READ / WRITE always case run-time
Bud Davis
bdavis9659@comcast.net
Fri Apr 9 14:00:00 GMT 2004
let's amend that test case to be un-formatted reads and writes. a fix
for formatted direct access is in work. works OK un-formatted direct
access.
--bud
On Wed, 2004-04-07 at 09:17, Bud Davis wrote:
> Fixes PR 14872, passes NIST test FM407.FOR and FM413.FOR.
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14872
>
> REC=<> needs to be passes as a value, not as a reference.
>
> Test to add:
>
> ! demonstrates basic direct access using variables for REC
> ! pr14872
> OPEN(UNIT=10,ACCESS='DIRECT',FORM='FORMATTED',RECL=128)
> DO I = 1,10
> WRITE(10,REC=I,FMT=100,ERR=10)I
> 100 FORMAT(I4)
> ENDDO
> DO I = 1,10
> READ(10,REC=I,FMT=100,ERR=10)J
> IF (J.NE.I) THEN
> PRINT*,' READ ',J,' EXPECTED ',I
> CALL ABORT
> ENDIF
> ENDDO
> STOP
> 10 CONTINUE
> PRINT*,' ERR= RETURN FROM READ OR WRITE'
> CALL ABORT
> END
>
> below is the patch with ChangeLog. It is really only a one word change,
> ref to value :)
>
>
>
>
> --bud
>
>
> Index: gcc/gcc/fortran/ChangeLog
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/fortran/Attic/ChangeLog,v
> retrieving revision 1.1.2.131
> diff -c -3 -p -r1.1.2.131 ChangeLog
> *** gcc/gcc/fortran/ChangeLog 4 Apr 2004 23:27:49 -0000 1.1.2.131
> --- gcc/gcc/fortran/ChangeLog 7 Apr 2004 13:21:53 -0000
> ***************
> *** 1,3 ****
> --- 1,8 ----
> + 2003-04-07 Bud Davis <bdavis9659@comcast.net>
> +
> + PR gfortran/14872
> + * trans-io.c (build_dt): Change REC to value.
> +
> 2003-04-05 Paul Brook <paul@codesourcery.com>
>
> PR 13252
> Index: gcc/gcc/fortran/trans-io.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/fortran/Attic/trans-io.c,v
> retrieving revision 1.1.2.9
> diff -c -3 -p -r1.1.2.9 trans-io.c
> *** gcc/gcc/fortran/trans-io.c 4 Apr 2004 23:27:49 -0000 1.1.2.9
> --- gcc/gcc/fortran/trans-io.c 7 Apr 2004 13:21:53 -0000
> *************** build_dt (tree * function, gfc_code * co
> *** 870,876 ****
> }
>
> if (dt->rec)
> ! set_parameter_ref (&block, ioparm_rec, dt->rec);
>
> if (dt->advance)
> set_string (&block, &post_block, ioparm_advance, ioparm_advance_len,
> --- 870,876 ----
> }
>
> if (dt->rec)
> ! set_parameter_value (&block, ioparm_rec, dt->rec);
>
> if (dt->advance)
> set_string (&block, &post_block, ioparm_advance, ioparm_advance_len,
> Index: gcc/gcc/testsuite/ChangeLog.tree-ssa
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/testsuite/Attic/ChangeLog.tree-ssa,v
> retrieving revision 1.1.2.214
> diff -c -3 -p -r1.1.2.214 ChangeLog.tree-ssa
> *** gcc/gcc/testsuite/ChangeLog.tree-ssa 4 Apr 2004 23:27:51 -0000 1.1.2.214
> --- gcc/gcc/testsuite/ChangeLog.tree-ssa 7 Apr 2004 13:21:53 -0000
> ***************
> *** 1,3 ****
> --- 1,8 ----
> + 2004-04-07 Bud Davis <bdavis9659@comcast.net>
> +
> + PR gfortran/14872
> + * gfortran.fortran-torture/execute/direct_io.f90: New test.
> +
> 2003-04-04 Paul Brook <paul@codesourcery.com>
>
> PR 13252
>
>
>
>
>
More information about the Fortran
mailing list