public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/35699]  New: run-time abort writing zero sized section to direct access file
@ 2008-03-25 21:31 dick dot hendrickson at gmail dot com
  2008-03-25 21:50 ` [Bug fortran/35699] " dick dot hendrickson at gmail dot com
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: dick dot hendrickson at gmail dot com @ 2008-03-25 21:31 UTC (permalink / raw)
  To: gcc-bugs

On Windows XP, with SP2, the following program beeps at me
and opens an alert box saying
"a.exe has encountered a problem and needs to close.  
We are sorry for the inconvenience."

and offers to send Microsoft an error report (I declined).

Based on the print statements, it's the write statement that 
is causing the problem.

Changing the zero sized section subscripts from nf4:nf3 to
4:3 does not cure the problem 

      program try_qi0010
! fails on Windows XP
! gcc version 4.4.0 20080312 (experimental) [trunk revision 133139]



      call       QI0010 (  10,   1,   2,   3,   4,  9,   2)
      end

      SUBROUTINE QI0010 (nf10, nf1, nf2, nf3, nf4,nf9, np2)
      CHARACTER(9) BDA(nf10)
      CHARACTER(9) BDA1(nf10), bval

      INTEGER  J_LEN
      bda1(1) = 'x'
      do I = 2,10
      bda1(i) = 'x'//bda1(i-1)
      enddo
      bda = 'unread'

      print *, 'begin inquire'
      INQUIRE(IOLENGTH = J_LEN) BDA1(NF1:NF10:NF2), BDA1(NF4:NF3),
     $                               BDA1(NF2:NF10:NF2)

      print *, 'begin open '
      OPEN (UNIT=48,
     $      STATUS='SCRATCH',
     $      ACCESS='DIRECT',
     $      RECL = j_len,
     $      IOSTAT = ISTAT,
     $      FORM='UNFORMATTED',
     $      ACTION='READWRITE')

      print *, 'begin write '
      WRITE (48,IOSTAT = ISTAT, REC = 3) BDA1(NF1:NF10:NF2),
     $                    BDA1(NF4:NF3), BDA1(NF2:NF10:NF2)
      IF ( ISTAT .NE. 0) then
        print *, istat, ' WRITE FAILED '
        stop
      ENDIF
      ISTAT = -314

      print *, 'begin read '

      READ (48,IOSTAT = ISTAT, REC = NP2+1) BDA(NF1:NF9:NF2),
     $                       BDA(NF4:NF3), BDA(NF2:NF10:NF2)
      IF ( ISTAT .NE. 0) THEN
        print *, istat, ' read FAILED '
        stop
      ENDIF

      print *, 'begin check '
      DO J1 = 1,10
      BVAL = BDA1(J1)
      IF (BDA(J1) .NE. BVAL)
     $ print *, j1 ,BDA(J1),BVAL
  100 ENDDO;
      END SUBROUTINE


-- 
           Summary: run-time abort writing zero sized section to direct
                    access file
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dick dot hendrickson at gmail dot com


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


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

* [Bug fortran/35699] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
@ 2008-03-25 21:50 ` dick dot hendrickson at gmail dot com
  2008-03-25 22:06 ` dominiq at lps dot ens dot fr
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: dick dot hendrickson at gmail dot com @ 2008-03-25 21:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from dick dot hendrickson at gmail dot com  2008-03-25 21:49 -------
I have another essentially identical subroutine that uses double complex
instead of character and appears to fail in the same way.  I also have three
other subroutines that write/read zero sized arrays and return a non-zero
iostat value or incorrectly read a single value into the zero sized array. 
These are simpler write/reads and only have a single array, as opposed to
three, in the i/o lists.  For me, it's a mechanical pain in the rear to extract
the additional cases.  I'm looking for advice, is it easier A) for you to send
me a link to an experimental windows compiler once you think you have a fix, B)
me to wait until the next release and then retry the other cases, C)  slowly
over the next few days extract the others and make a working version of them? 
Or, do you guys have another suggestion?

Dick Hendrickson

Dick Hendrickson


-- 

dick dot hendrickson at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dick dot hendrickson at
                   |                            |gmail dot com


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


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

* [Bug fortran/35699] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
  2008-03-25 21:50 ` [Bug fortran/35699] " dick dot hendrickson at gmail dot com
@ 2008-03-25 22:06 ` dominiq at lps dot ens dot fr
  2008-03-25 23:16 ` [Bug fortran/35699] [4.3/4.4 regression] " burnus at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: dominiq at lps dot ens dot fr @ 2008-03-25 22:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from dominiq at lps dot ens dot fr  2008-03-25 22:05 -------
On (powerpc|i686)-apple-darwin9, I get a bus error at runtime:

 begin inquire
 begin open 
 begin write 
Bus error


-- 


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
  2008-03-25 21:50 ` [Bug fortran/35699] " dick dot hendrickson at gmail dot com
  2008-03-25 22:06 ` dominiq at lps dot ens dot fr
@ 2008-03-25 23:16 ` burnus at gcc dot gnu dot org
  2008-03-25 23:18 ` burnus at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-03-25 23:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from burnus at gcc dot gnu dot org  2008-03-25 23:16 -------
Thanks for the report!

This is actually a regression; Jerry, do you have an idea?

valgrind shows:
==18956== Invalid write of size 1
==18956==    at 0x4C26A68: memset (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==18956==    by 0x4ED8002: write_buf (transfer.c:645)
==18956==    by 0x4ED8049: unformatted_write (transfer.c:769)
==18956==    by 0x401585: qi0010_ (jf.f:36)
==18956==    by 0x400D94: MAIN__ (jf.f:7)
==18956==    by 0x401BCB: main (fmain.c:21)


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jvdelisle at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |wrong-code
      Known to fail|                            |4.3.0 4.4.0
      Known to work|                            |4.1.3 4.2.1
   Last reconfirmed|0000-00-00 00:00:00         |2008-03-25 23:16:17
               date|                            |
            Summary|run-time abort writing zero |[4.3/4.4 regression] run-
                   |sized section to direct     |time abort writing zero
                   |access file                 |sized section to direct
                   |                            |access file
   Target Milestone|---                         |4.3.1


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (2 preceding siblings ...)
  2008-03-25 23:16 ` [Bug fortran/35699] [4.3/4.4 regression] " burnus at gcc dot gnu dot org
@ 2008-03-25 23:18 ` burnus at gcc dot gnu dot org
  2008-03-26  0:58 ` jvdelisle at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-03-25 23:18 UTC (permalink / raw)
  To: gcc-bugs



-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (3 preceding siblings ...)
  2008-03-25 23:18 ` burnus at gcc dot gnu dot org
@ 2008-03-26  0:58 ` jvdelisle at gcc dot gnu dot org
  2008-03-26  5:17 ` jvdelisle at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-26  0:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jvdelisle at gcc dot gnu dot org  2008-03-26 00:58 -------
No Idea, but I will investigate.


-- 

jvdelisle at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jvdelisle at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-03-25 23:16:17         |2008-03-26 00:58:02
               date|                            |


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (4 preceding siblings ...)
  2008-03-26  0:58 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-26  5:17 ` jvdelisle at gcc dot gnu dot org
  2008-03-27  5:46 ` jvdelisle at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-26  5:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jvdelisle at gcc dot gnu dot org  2008-03-26 05:16 -------
This regression was caused by my patch for PR34876.  I am not sure it is really
a regression since we were not handling zero sized arrays correctly before. 
Regardless, I have isolated the problem and I am working on a solution.


-- 


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (5 preceding siblings ...)
  2008-03-26  5:17 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-27  5:46 ` jvdelisle at gcc dot gnu dot org
  2008-03-27 11:12 ` dominiq at lps dot ens dot fr
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-27  5:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jvdelisle at gcc dot gnu dot org  2008-03-27 05:45 -------
A patch has been submitted to fortran@gcc.gnu.org for approval.

http://gcc.gnu.org/ml/fortran/2008-03/msg00212.html


-- 


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (6 preceding siblings ...)
  2008-03-27  5:46 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-27 11:12 ` dominiq at lps dot ens dot fr
  2008-03-28 22:14 ` jvdelisle at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: dominiq at lps dot ens dot fr @ 2008-03-27 11:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from dominiq at lps dot ens dot fr  2008-03-27 11:11 -------
Works as advertised without regression on i686-apple-darwin9 for 32 and 64 bit
modes.

Thanks for the patch.


-- 


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (7 preceding siblings ...)
  2008-03-27 11:12 ` dominiq at lps dot ens dot fr
@ 2008-03-28 22:14 ` jvdelisle at gcc dot gnu dot org
  2008-03-28 22:17 ` jvdelisle at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-28 22:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from jvdelisle at gcc dot gnu dot org  2008-03-28 22:14 -------
Subject: Bug 35699

Author: jvdelisle
Date: Fri Mar 28 22:13:17 2008
New Revision: 133699

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133699
Log:
2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/35699
        * io/transfer.c (write_buf):  Don't pad the record, just return if the
        data is NULL.  (next_record_w): If there are bytes left in the record
        for unformatted direct I/O, pad out the record with zero bytes.

Modified:
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/transfer.c


-- 


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (8 preceding siblings ...)
  2008-03-28 22:14 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-28 22:17 ` jvdelisle at gcc dot gnu dot org
  2008-03-28 23:25 ` jvdelisle at gcc dot gnu dot org
  2008-03-29  1:12 ` jvdelisle at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-28 22:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from jvdelisle at gcc dot gnu dot org  2008-03-28 22:17 -------
Subject: Bug 35699

Author: jvdelisle
Date: Fri Mar 28 22:16:29 2008
New Revision: 133700

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133700
Log:
2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR fortran/35699
        * gfortran.dg/direct_io_10.f: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/direct_io_10.f
Modified:
    trunk/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (9 preceding siblings ...)
  2008-03-28 22:17 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-28 23:25 ` jvdelisle at gcc dot gnu dot org
  2008-03-29  1:12 ` jvdelisle at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-28 23:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from jvdelisle at gcc dot gnu dot org  2008-03-28 23:24 -------
Subject: Bug 35699

Author: jvdelisle
Date: Fri Mar 28 23:23:34 2008
New Revision: 133703

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133703
Log:
2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/35699
        * io/transfer.c (write_buf):  Don't pad the record, just return if the
        data is NULL.  (next_record_w): If there are bytes left in the record
        for unformatted direct I/O, pad out the record with zero bytes.

2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR fortran/35699
        * gfortran.dg/direct_io_10.f: New test.

Added:
    branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/direct_io_10.f
Modified:
    branches/gcc-4_3-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_3-branch/libgfortran/ChangeLog
    branches/gcc-4_3-branch/libgfortran/io/transfer.c


-- 


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


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

* [Bug fortran/35699] [4.3/4.4 regression] run-time abort writing zero sized section to direct access file
  2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
                   ` (10 preceding siblings ...)
  2008-03-28 23:25 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-29  1:12 ` jvdelisle at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-29  1:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from jvdelisle at gcc dot gnu dot org  2008-03-29 01:11 -------
Fixed on trunk and 4.3.1


-- 

jvdelisle at gcc dot gnu dot org changed:

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


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


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

end of thread, other threads:[~2008-03-29  1:12 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-25 21:31 [Bug fortran/35699] New: run-time abort writing zero sized section to direct access file dick dot hendrickson at gmail dot com
2008-03-25 21:50 ` [Bug fortran/35699] " dick dot hendrickson at gmail dot com
2008-03-25 22:06 ` dominiq at lps dot ens dot fr
2008-03-25 23:16 ` [Bug fortran/35699] [4.3/4.4 regression] " burnus at gcc dot gnu dot org
2008-03-25 23:18 ` burnus at gcc dot gnu dot org
2008-03-26  0:58 ` jvdelisle at gcc dot gnu dot org
2008-03-26  5:17 ` jvdelisle at gcc dot gnu dot org
2008-03-27  5:46 ` jvdelisle at gcc dot gnu dot org
2008-03-27 11:12 ` dominiq at lps dot ens dot fr
2008-03-28 22:14 ` jvdelisle at gcc dot gnu dot org
2008-03-28 22:17 ` jvdelisle at gcc dot gnu dot org
2008-03-28 23:25 ` jvdelisle at gcc dot gnu dot org
2008-03-29  1:12 ` jvdelisle 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).