[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