public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libfortran/34405]  New: unformatted stream prohibits BACKSPACE
@ 2007-12-09 12:52 tkoenig at gcc dot gnu dot org
  2007-12-09 13:22 ` [Bug libfortran/34405] " tkoenig at gcc dot gnu dot org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-12-09 12:52 UTC (permalink / raw)
  To: gcc-bugs

Currently, we ignore the following:

$ cat unformatted_stream_backspace.f90 
program main
  open(2003,form="unformatted",access="stream")
  write (2003) 1
  write (2003) 2
  backspace 2003
end program main
$ gfortran unformatted_stream_backspace.f90 
$ ./a.out
$

This code is actually illegal, we could (but are not required to)
catch this:

F 2003 draft, 9.7:

A file that is connected for unformatted stream access shall not be referred to
by a BACKSPACE statement.


-- 
           Summary: unformatted stream prohibits BACKSPACE
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: enhancement
          Priority: P3
         Component: libfortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tkoenig at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34405


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug libfortran/34405] unformatted stream prohibits BACKSPACE
  2007-12-09 12:52 [Bug libfortran/34405] New: unformatted stream prohibits BACKSPACE tkoenig at gcc dot gnu dot org
@ 2007-12-09 13:22 ` tkoenig at gcc dot gnu dot org
  2007-12-09 18:00 ` jvdelisle at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-12-09 13:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from tkoenig at gcc dot gnu dot org  2007-12-09 13:22 -------
Same thing for direct access and
BACKSPACE, ENDFILE and REWIND.


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |tkoenig at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-12-09 13:22:39
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34405


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug libfortran/34405] unformatted stream prohibits BACKSPACE
  2007-12-09 12:52 [Bug libfortran/34405] New: unformatted stream prohibits BACKSPACE tkoenig at gcc dot gnu dot org
  2007-12-09 13:22 ` [Bug libfortran/34405] " tkoenig at gcc dot gnu dot org
@ 2007-12-09 18:00 ` jvdelisle at gcc dot gnu dot org
  2007-12-13 19:36 ` tkoenig at gcc dot gnu dot org
  2007-12-13 19:41 ` tkoenig at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2007-12-09 18:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from jvdelisle at gcc dot gnu dot org  2007-12-09 17:59 -------
I think a runtime error would be appropriate.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34405


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug libfortran/34405] unformatted stream prohibits BACKSPACE
  2007-12-09 12:52 [Bug libfortran/34405] New: unformatted stream prohibits BACKSPACE tkoenig at gcc dot gnu dot org
  2007-12-09 13:22 ` [Bug libfortran/34405] " tkoenig at gcc dot gnu dot org
  2007-12-09 18:00 ` jvdelisle at gcc dot gnu dot org
@ 2007-12-13 19:36 ` tkoenig at gcc dot gnu dot org
  2007-12-13 19:41 ` tkoenig at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-12-13 19:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from tkoenig at gcc dot gnu dot org  2007-12-13 19:35 -------
Subject: Bug 34405

Author: tkoenig
Date: Thu Dec 13 19:35:09 2007
New Revision: 130912

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=130912
Log:
2007-12-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34370
        PR libfortran/34323
        PR libfortran/34405
        * io/io.h:  Add previous_nonadvancing_write to gfc_unit.
        Add prototype for finish_last_advance_record.
        * io/file_pos.c (st_backspace):  Generate error if backspace is
        attempted for direct access or unformatted stream.
        If there are bytes left from a previous ADVANCE="no", write
        them out before performing the backspace.
        (st_endfile):  Generate error if endfile is attempted for
        direct access.
        If there are bytes left from a previous ADVANCE="no", write
        them out before performing the endfile.
        (st_rewind):  Generate error if rewind is attempted for
        direct access.
        * unit.c (close_unit_1):  Move functionality to write
        previously written bytes to...
        (finish_last_advance_record):  ... here.
        * transfer.c (data_transfer_init):  If reading, reset
        previous_nonadvancing_write.
        (finalize_transfer):  Set the previous_noadvancing_write
        flag if we are writing and ADVANCE="no" was specified.
        Only call next_record() if advance="no" wasn't specified.

2007-12-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34370
        PR libfortran/34323
        PR libfortran/34405
        * gfortran.dg/advance_6.f90:  New test case.
        * gfortran.dg/direct_io_7.f90:  New test case.
        * gfortran.dg/streamio_13.f90:  New test case.


Added:
    trunk/gcc/testsuite/gfortran.dg/advance_6.f90
    trunk/gcc/testsuite/gfortran.dg/direct_io_7.f90
    trunk/gcc/testsuite/gfortran.dg/streamio_13.f90
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/file_pos.c
    trunk/libgfortran/io/io.h
    trunk/libgfortran/io/transfer.c
    trunk/libgfortran/io/unit.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34405


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug libfortran/34405] unformatted stream prohibits BACKSPACE
  2007-12-09 12:52 [Bug libfortran/34405] New: unformatted stream prohibits BACKSPACE tkoenig at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2007-12-13 19:36 ` tkoenig at gcc dot gnu dot org
@ 2007-12-13 19:41 ` tkoenig at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2007-12-13 19:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from tkoenig at gcc dot gnu dot org  2007-12-13 19:41 -------
Fixed on trunk.

Closing.


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34405


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-12-13 19:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-09 12:52 [Bug libfortran/34405] New: unformatted stream prohibits BACKSPACE tkoenig at gcc dot gnu dot org
2007-12-09 13:22 ` [Bug libfortran/34405] " tkoenig at gcc dot gnu dot org
2007-12-09 18:00 ` jvdelisle at gcc dot gnu dot org
2007-12-13 19:36 ` tkoenig at gcc dot gnu dot org
2007-12-13 19:41 ` tkoenig at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).