public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libfortran/29568]  New: implement unformatted files with subrecords (Intel style)
@ 2006-10-23 18:17 tkoenig at gcc dot gnu dot org
  2006-10-23 19:49 ` [Bug libfortran/29568] " kargl at gcc dot gnu dot org
                   ` (36 more replies)
  0 siblings, 37 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-10-23 18:17 UTC (permalink / raw)
  To: gcc-bugs

There's an on-off discussion on the gfortran mailing
list on making 4-byte record markers the default for gfortran.
This would only be acceptable if large (>2 GB) records could
be written that way.

I'm taking a shot at this.


-- 
           Summary: implement unformatted files with subrecords (Intel
                    style)
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: libfortran
        AssignedTo: tkoenig at gcc dot gnu dot org
        ReportedBy: tkoenig at gcc dot gnu dot org


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
@ 2006-10-23 19:49 ` kargl at gcc dot gnu dot org
  2006-10-25 20:11 ` tkoenig at gcc dot gnu dot org
                   ` (35 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: kargl at gcc dot gnu dot org @ 2006-10-23 19:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from kargl at gcc dot gnu dot org  2006-10-23 19:49 -------
Thomas,

Have you written Adrain about his plans concerning his patch?

BTW, I think the Intel subrecord approach is probably the best
solution to the large record problem.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
  2006-10-23 19:49 ` [Bug libfortran/29568] " kargl at gcc dot gnu dot org
@ 2006-10-25 20:11 ` tkoenig at gcc dot gnu dot org
  2006-10-31 21:37 ` tobias dot burnus at physik dot fu-berlin dot de
                   ` (34 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-10-25 20:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from tkoenig at gcc dot gnu dot org  2006-10-25 20:11 -------
(In reply to comment #1)
> Thomas,
> 
> Have you written Adrain about his plans concerning his patch?

Not yet (I tried CC'ing him with this, but apparently this doesn't work).

IIRC (and Adrian, please correct me) his patch concerned the per-unit
setting of four-byte markers.  Here, I'm trying to implement the Intel
subrecord markers.

> BTW, I think the Intel subrecord approach is probably the best
> solution to the large record problem.

I'm glad we agree on this.


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2006-10-25 20:11:19
               date|                            |


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
  2006-10-23 19:49 ` [Bug libfortran/29568] " kargl at gcc dot gnu dot org
  2006-10-25 20:11 ` tkoenig at gcc dot gnu dot org
@ 2006-10-31 21:37 ` tobias dot burnus at physik dot fu-berlin dot de
  2006-11-04 14:28 ` jb at gcc dot gnu dot org
                   ` (33 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tobias dot burnus at physik dot fu-berlin dot de @ 2006-10-31 21:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from tobias dot burnus at physik dot fu-berlin dot de  2006-10-31 21:37 -------
Steve Lionel from Intel wrote
http://groups.google.com/group/comp.lang.fortran/tree/browse_frm/thread/062ce3447e5ef570/7e2c6b5723c3b228#doc_a7f0b804f755e27b

"For a record length greater than 2,147,483,639 bytes, the record is
divided into subrecords. The subrecord can be of any length from 1 to
2,147,483,639, inclusive.

"The sign bit of the leading length field indicates whether the record
is continued or not. The sign bit of the trailing length field
indicates the presence of a preceding subrecord. The position of the
sign bit is determined by the endian format of the file.

"A subrecord that is continued has a leading length field with a sign
bit value of 1. The last subrecord that makes up a record has a leading
length field with a sign bit value of 0. A subrecord that has a
preceding subrecord has a trailing length field with a sign bit value
of 1. The first subrecord that makes up a record has a trailing length
field with a sign bit value of 0."


-- 

tobias dot burnus at physik dot fu-berlin dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tobias dot burnus at physik
                   |                            |dot fu-berlin dot de


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2006-10-31 21:37 ` tobias dot burnus at physik dot fu-berlin dot de
@ 2006-11-04 14:28 ` jb at gcc dot gnu dot org
  2006-11-05 21:48 ` tkoenig at gcc dot gnu dot org
                   ` (32 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jb at gcc dot gnu dot org @ 2006-11-04 14:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jb at gcc dot gnu dot org  2006-11-04 14:28 -------
There is also some documentation in the ifort manual:
http://www.intel.com/software/products/compilers/flin/docs/main_for/mergedProjects/bldaps_for/format_of_record_types_.htm


-- 

jb at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jb at gcc dot gnu dot org


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2006-11-04 14:28 ` jb at gcc dot gnu dot org
@ 2006-11-05 21:48 ` tkoenig at gcc dot gnu dot org
  2006-11-09 20:43 ` tkoenig at gcc dot gnu dot org
                   ` (31 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-05 21:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from tkoenig at gcc dot gnu dot org  2006-11-05 21:48 -------
Created an attachment (id=12550)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12550&action=view)
Patch for reading only

This is a partial patch, for reading only.

I have taken the approach that we should allow any record size < 0
to mean continued records (regardless of whether we have four- or
eight-byte record markers).  This doesn't break anything, simplifies
codepaths and clears the way for records longer than 2**63 bytes :-)


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2006-11-05 21:48 ` tkoenig at gcc dot gnu dot org
@ 2006-11-09 20:43 ` tkoenig at gcc dot gnu dot org
  2006-11-13 19:11 ` tkoenig at gcc dot gnu dot org
                   ` (30 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-09 20:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from tkoenig at gcc dot gnu dot org  2006-11-09 20:43 -------
Created an attachment (id=12581)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12581&action=view)
patch for reading and backspace

Here's the next installment of the patch, which seems to work
OK for backspace, too.  Some more testing is still required.

Thomas


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #12550|0                           |1
        is obsolete|                            |


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2006-11-09 20:43 ` tkoenig at gcc dot gnu dot org
@ 2006-11-13 19:11 ` tkoenig at gcc dot gnu dot org
  2006-11-15 21:05 ` tkoenig at gcc dot gnu dot org
                   ` (29 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-13 19:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from tkoenig at gcc dot gnu dot org  2006-11-13 19:11 -------
Created an attachment (id=12609)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12609&action=view)
newest version

Here's the newest version of the patch, which does
reading and backspace, plus defaults to four-byte record
markers, with requried corrections in the testsuite.

Unfortunately, there was one thinko in the approach I took
with reading. Even for subrecords, we need to be
able to spot if we exceed recl.

Back to the drawing board...


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #12581|0                           |1
        is obsolete|                            |


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2006-11-13 19:11 ` tkoenig at gcc dot gnu dot org
@ 2006-11-15 21:05 ` tkoenig at gcc dot gnu dot org
  2006-11-19 20:42 ` tkoenig at gcc dot gnu dot org
                   ` (28 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-15 21:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from tkoenig at gcc dot gnu dot org  2006-11-15 21:05 -------
(In reply to comment #7)

> Unfortunately, there was one thinko in the approach I took
> with reading. Even for subrecords, we need to be
> able to spot if we exceed recl.
> 
> Back to the drawing board...

Actually, we currently don't check wether we exceed recl on
unformatted write or read, and neither ifort or g77 do so:

$ cat recl.f
      program main
      character*10 a,b
      open (9, file="foo.dat", form="unformatted",
     &     access="sequential", recl=80)
      write (9) '1234567890','1234567890'
      close (9)
      open (10, file="foo.dat", form="unformatted",
     &     access="sequential",recl=10)
      read (10) a,b
      print *,a,b
      end
$ gfortran recl.f && ./a.out
 12345678901234567890
$ ifort recl.f && ./a.out
 12345678901234567890
$ g77 recl.f && ./a.out
 12345678901234567890

If there's a bug to fix, it doesn't concern subrecords, at least.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2006-11-15 21:05 ` tkoenig at gcc dot gnu dot org
@ 2006-11-19 20:42 ` tkoenig at gcc dot gnu dot org
  2006-11-21  2:49 ` jvdelisle at gcc dot gnu dot org
                   ` (27 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-19 20:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from tkoenig at gcc dot gnu dot org  2006-11-19 20:42 -------
Created an attachment (id=12646)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12646&action=view)
Latest update

Here's the latest update of the patch, for reading, writing and
backspace.

In order to be able to test this at all, I set a maximums subrecord
size of 16 (see the #ifdef).

This is getting to the state where the patch could use testing
by people who actually write > 2GB records (I can't do that on
my home system).  Volunteers, anybody? :-)

Thomas


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #12609|0                           |1
        is obsolete|                            |


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2006-11-19 20:42 ` tkoenig at gcc dot gnu dot org
@ 2006-11-21  2:49 ` jvdelisle at gcc dot gnu dot org
  2006-11-21  2:52 ` jvdelisle at gcc dot gnu dot org
                   ` (26 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-21  2:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from jvdelisle at gcc dot gnu dot org  2006-11-21 02:49 -------
With your example program on x86-64 I get a segfault.

I also get numerous testsuite failures.

This is with your latest patch against current trunk.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2006-11-21  2:49 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-21  2:52 ` jvdelisle at gcc dot gnu dot org
  2006-11-21  4:02 ` jvdelisle at gcc dot gnu dot org
                   ` (25 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-21  2:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from jvdelisle at gcc dot gnu dot org  2006-11-21 02:52 -------
trace:

Program received signal SIGSEGV, Segmentation fault.
0x000000312287212b in free () from /lib64/libc.so.6
(gdb) bt
#0  0x000000312287212b in free () from /lib64/libc.so.6
#1  0x00002aaaaab24913 in close_unit_1 (u=0x607490, locked=0)
    at ../../../gcc43/libgfortran/io/unit.c:606
#2  0x00000000004009e7 in MAIN__ ()
#3  0x0000000000400b4e in main (argc=<value optimized out>, 
    argv=<value optimized out>) at ../../../gcc43/libgfortran/fmain.c:18


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2006-11-21  2:52 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-21  4:02 ` jvdelisle at gcc dot gnu dot org
  2006-11-21  6:48 ` jvdelisle at gcc dot gnu dot org
                   ` (24 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-21  4:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from jvdelisle at gcc dot gnu dot org  2006-11-21 04:02 -------
Ha, the io.h dependency bug strikes again.  Your patch touches io.h so if one
does not touch all files in libgfortran/io you will emd up with garbage. 
Having done so here, your sample program excutes correctly.

Also, taking out your #ifdef 0 stuff, regression tests OK on current trunk.

I am working on a test with huge record lengths.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2006-11-21  4:02 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-21  6:48 ` jvdelisle at gcc dot gnu dot org
  2006-11-21  7:16 ` jvdelisle at gcc dot gnu dot org
                   ` (23 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-21  6:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from jvdelisle at gcc dot gnu dot org  2006-11-21 06:48 -------
I have cross tested this with reading and writing files between intel compiled
and gfortran compiled programs and all is well with defaults.  Will be testing
huge records shortly.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2006-11-21  6:48 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-21  7:16 ` jvdelisle at gcc dot gnu dot org
  2006-11-21  7:24 ` jvdelisle at gcc dot gnu dot org
                   ` (22 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-21  7:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from jvdelisle at gcc dot gnu dot org  2006-11-21 07:16 -------
Using the following test program, see the valgrind output.  Maybe something not
quite right there. (Though the test passes)

program subrecord
  integer, parameter :: reclength = huge(1_4)/16
  real, dimension(reclength) :: array
  integer :: x

  open(unit=10, file="testfile", form="unformatted", access="sequential")
  print *, "reclength=",reclength
  print *, "arraysize=", 4*reclength
  print *, "record size =", 5_8*4_8*reclength+4_8*4_8

  array = 2.0

  write(10) array,x,array,x,array,x,array,x,array

  array = 6.0

  write(10) array,x,array,x,array,x,array,x,array
  rewind(10)

  array = 0.0

  read(10) array,x,array,x,array,x,array,x,array
  if (any(array.ne.2.0)) print *, "error"

  read(10) array,x,array,x,array,x,array,x,array
  if (any(array.ne.6.0)) print *, "error"

  close(10, status="keep")
end program subrecord





[jerry@quasar test]$ valgrind ./a.out
==32764== Memcheck, a memory error detector.
==32764== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==32764== Using LibVEX rev 1658, a library for dynamic binary translation.
==32764== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==32764== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==32764== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==32764== For more details, rerun with: -v
==32764== 
==32764== Warning: set address range perms: large range 536870912 (defined)
 reclength=   134217727
 arraysize=   536870908
 record size =           2684354556
==32764== Syscall param write(buf) points to uninitialised byte(s)
==32764==    at 0x31228BFD00: __write_nocancel (in /lib64/libc-2.5.so)
==32764==    by 0x21283010: do_write (unix.c:300)
==32764==    by 0x212830A3: fd_flush (unix.c:359)
==32764==    by 0x212837E7: fd_write (unix.c:718)
==32764==    by 0x212820DC: write_buf (transfer.c:593)
==32764==    by 0x21282221: unformatted_write (transfer.c:671)
==32764==    by 0x2127F289: _gfortran_transfer_array (transfer.c:1419)
==32764==    by 0x400CE2: MAIN__ (in /home/jerry/prs/test/a.out)
==32764==    by 0x40182D: main (fmain.c:18)
==32764==  Address 0x216D873D is 149 bytes inside a block of size 8,344 alloc'd
==32764==    at 0x21007879: malloc (vg_replace_malloc.c:149)
==32764==    by 0x2121D1F8: _gfortrani_get_mem (memory.c:53)
==32764==    by 0x21283279: fd_to_stream (unix.c:1000)
==32764==    by 0x21283F5F: _gfortrani_open_external (unix.c:1272)
==32764==    by 0x2127D1E7: _gfortrani_new_unit (open.c:374)
==32764==    by 0x2127D8F9: _gfortran_st_open (open.c:517)
==32764==    by 0x400A5A: MAIN__ (in /home/jerry/prs/test/a.out)
==32764==    by 0x40182D: main (fmain.c:18)
==32764== 
==32764== Syscall param write(buf) points to uninitialised byte(s)
==32764==    at 0x31228BFD00: __write_nocancel (in /lib64/libc-2.5.so)
==32764==    by 0x21283010: do_write (unix.c:300)
==32764==    by 0x212830A3: fd_flush (unix.c:359)
==32764==    by 0x2128359E: fd_alloc_w_at (unix.c:507)
==32764==    by 0x21283868: fd_write (unix.c:702)
==32764==    by 0x212802BC: next_record_w_unf (transfer.c:2165)
==32764==    by 0x21282095: write_buf (transfer.c:607)
==32764==    by 0x21282221: unformatted_write (transfer.c:671)
==32764==    by 0x400DDF: MAIN__ (in /home/jerry/prs/test/a.out)
==32764==    by 0x40182D: main (fmain.c:18)
==32764==  Address 0x216D873D is 149 bytes inside a block of size 8,344 alloc'd
==32764==    at 0x21007879: malloc (vg_replace_malloc.c:149)
==32764==    by 0x2121D1F8: _gfortrani_get_mem (memory.c:53)
==32764==    by 0x21283279: fd_to_stream (unix.c:1000)
==32764==    by 0x21283F5F: _gfortrani_open_external (unix.c:1272)
==32764==    by 0x2127D1E7: _gfortrani_new_unit (open.c:374)
==32764==    by 0x2127D8F9: _gfortran_st_open (open.c:517)
==32764==    by 0x400A5A: MAIN__ (in /home/jerry/prs/test/a.out)
==32764==    by 0x40182D: main (fmain.c:18)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== Warning: set address range perms: large range 536870908 (defined)
==32764== 
==32764== ERROR SUMMARY: 10 errors from 2 contexts (suppressed: 5 from 1)
==32764== malloc/free: in use at exit: 0 bytes in 0 blocks.
==32764== malloc/free: 9 allocs, 9 frees, 34,248 bytes allocated.
==32764== For counts of detected errors, rerun with: -v
==32764== All heap blocks were freed -- no leaks are possible.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2006-11-21  7:16 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-21  7:24 ` jvdelisle at gcc dot gnu dot org
  2006-11-21  8:25 ` jvdelisle at gcc dot gnu dot org
                   ` (21 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-21  7:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from jvdelisle at gcc dot gnu dot org  2006-11-21 07:24 -------
Using bigger resource machine:

troutmask:sgk[261] ./subrec.x
 reclength=   268435455
 arraysize=  1073741820
 record size =           5368709116

Also paseed with dang big record.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2006-11-21  7:24 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-21  8:25 ` jvdelisle at gcc dot gnu dot org
  2006-11-21 20:40 ` tkoenig at gcc dot gnu dot org
                   ` (20 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-21  8:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from jvdelisle at gcc dot gnu dot org  2006-11-21 08:25 -------
Here are some relative performance measures.  The first case is with the
program given in comment 14 with a very large record size as indicated.  This
gives before and after patch timing results.  The second case is before an
after with a smaller record size and setting recl=25 in the open statement.

There is a sigmificant performance penalty in this second case.  Lastly, I show
results with patch using -frecord-marker=8. Same penalty. 

Before patch:

$ rm testfile
$ time ./a.out
 reclength=   134217727
 arraysize=   536870908
 record size =           2684354556

real    3m26.163s
user    0m4.107s
sys     0m28.267s
$ ls -l testfile 
-rw-r--r-- 1 jerry jerry 5368709144 Nov 20 23:31 testfile

After patch:

$ rm testfile 
$ time ./a.out
 reclength=   134217727
 arraysize=   536870908
 record size =           2684354556

real    3m25.729s
user    0m4.058s
sys     0m28.657s
$ ls -l testfile 
-rw-r--r-- 1 jerry jerry 5368709144 Nov 20 23:53 testfile


With smaller file and setting RECL=2 in open statement:

Before patch:

$ rm testfile 
$ time ./a.out
 reclength=      500000
 arraysize=     2000000
 record size =             10000016

real    0m0.101s
user    0m0.018s
sys     0m0.083s


After patch:

$ rm testfile 
$ time ./a.out
 reclength=      500000
 arraysize=     2000000
 record size =             10000016

real    0m3.762s
user    0m0.877s
sys     0m2.885s


With -frecord-marker=8:

$ rm testfile 
$ time ./a.out
 reclength=      500000
 arraysize=     2000000
 record size =             10000016

real    0m3.827s
user    0m0.831s
sys     0m2.991s


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2006-11-21  8:25 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-21 20:40 ` tkoenig at gcc dot gnu dot org
  2006-11-22  1:36 ` jvdelisle at gcc dot gnu dot org
                   ` (19 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-21 20:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from tkoenig at gcc dot gnu dot org  2006-11-21 20:40 -------
(In reply to comment #14)
> Using the following test program, see the valgrind output.  Maybe something not
> quite right there. (Though the test passes)

Yes, you forgot to initialize x, which valgrind promptly catches :-)

Thanks for looking this over.  I will look at your other comments.

       Thomas


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (16 preceding siblings ...)
  2006-11-21 20:40 ` tkoenig at gcc dot gnu dot org
@ 2006-11-22  1:36 ` jvdelisle at gcc dot gnu dot org
  2006-11-22  1:56 ` jvdelisle at gcc dot gnu dot org
                   ` (18 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-22  1:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from jvdelisle at gcc dot gnu dot org  2006-11-22 01:36 -------
Thats what I get for late nite fun! :)  Initializing x gives a clean valgrind
check.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (17 preceding siblings ...)
  2006-11-22  1:36 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-22  1:56 ` jvdelisle at gcc dot gnu dot org
  2006-11-25 22:59 ` tkoenig at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-22  1:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from jvdelisle at gcc dot gnu dot org  2006-11-22 01:55 -------
I noticed with ifort that with recl=25, a severe run time error is given for
exceeding the record length.  gfc happily proceeds and this is not related to
the patch.  Hmm, have we dropped an error check somewhere on recl?


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (18 preceding siblings ...)
  2006-11-22  1:56 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-25 22:59 ` tkoenig at gcc dot gnu dot org
  2006-11-26  4:10 ` jvdelisle at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-25 22:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from tkoenig at gcc dot gnu dot org  2006-11-25 22:58 -------
Created an attachment (id=12691)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12691&action=view)
Latest update

Here's the latest update.

This is fairly complete, but still lacks testing on exceeding the
write record length.  Also not yet regression-tested.

Thomas


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #12646|0                           |1
        is obsolete|                            |


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (19 preceding siblings ...)
  2006-11-25 22:59 ` tkoenig at gcc dot gnu dot org
@ 2006-11-26  4:10 ` jvdelisle at gcc dot gnu dot org
  2006-11-26 20:40 ` tkoenig at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-26  4:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from jvdelisle at gcc dot gnu dot org  2006-11-26 04:10 -------
Patch 9 regression test are OK on x86-64.  Just need the RECL= limit checks and
error messages.  I will start on some nore complex tests now.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (20 preceding siblings ...)
  2006-11-26  4:10 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-26 20:40 ` tkoenig at gcc dot gnu dot org
  2006-11-26 20:43 ` tkoenig at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-26 20:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from tkoenig at gcc dot gnu dot org  2006-11-26 20:39 -------
Created an attachment (id=12696)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12696&action=view)
Serious attempt

Hi folks,

here is a serious attempt at the patch.  Jerry, if
you could give it a spin, I'd be grateful.  At least
it passes write_check3.f90. I'm currently regression-testing
this.

Thomas


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #12691|0                           |1
        is obsolete|                            |


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (21 preceding siblings ...)
  2006-11-26 20:40 ` tkoenig at gcc dot gnu dot org
@ 2006-11-26 20:43 ` tkoenig at gcc dot gnu dot org
  2006-11-26 22:27 ` jvdelisle at verizon dot net
                   ` (13 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-26 20:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from tkoenig at gcc dot gnu dot org  2006-11-26 20:43 -------
Created an attachment (id=12697)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12697&action=view)
Test case

Here's a test case for reading and writing with
a restricted subrecord length.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (22 preceding siblings ...)
  2006-11-26 20:43 ` tkoenig at gcc dot gnu dot org
@ 2006-11-26 22:27 ` jvdelisle at verizon dot net
  2006-11-27  8:24 ` jvdelisle at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at verizon dot net @ 2006-11-26 22:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #24 from jvdelisle at verizon dot net  2006-11-26 22:27 -------
Subject: Re:  implement unformatted files with subrecords
 (Intel style)

I have reviewed the patch and I have one minor comment.  I suggest that the 
continued flag be placed in with the unit flags similar to has_recl.  Only for 
consistency.  I am in the process of testing still.

Jerry


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (23 preceding siblings ...)
  2006-11-26 22:27 ` jvdelisle at verizon dot net
@ 2006-11-27  8:24 ` jvdelisle at gcc dot gnu dot org
  2006-11-27 20:43 ` tkoenig at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-27  8:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #25 from jvdelisle at gcc dot gnu dot org  2006-11-27 08:24 -------
I have successfully completed testing to the extent I can including large
numbers of I/O operations and huge records (> 5 gigabyte) and large file (50
gigabyte).

All looks Good.  I have performance checked against ifort and gfortran is
comparable at least for my simple tests.  With my minor comments offlist I
think this is ready to submit for approval.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (24 preceding siblings ...)
  2006-11-27  8:24 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-27 20:43 ` tkoenig at gcc dot gnu dot org
  2006-11-29  3:58 ` jvdelisle at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-27 20:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #26 from tkoenig at gcc dot gnu dot org  2006-11-27 20:43 -------
(In reply to comment #24)
> Subject: Re:  implement unformatted files with subrecords
>  (Intel style)
> 
> I have reviewed the patch and I have one minor comment.  I suggest that the 
> continued flag be placed in with the unit flags similar to has_recl.  Only for 
> consistency.  I am in the process of testing still.

Hi Jerry,

looking at the unit_flags struct, I notice that all components are
determined by flags set on the I/O statement.  Putting the continued
flag doesn't seem right to me.

Apart from that, I have put in a better error message and am
currently in the process of bootstrapping and regtesting.
Hopefully, I'll be able to submit tomorrow.

Thanks for your help!

Thomas


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (25 preceding siblings ...)
  2006-11-27 20:43 ` tkoenig at gcc dot gnu dot org
@ 2006-11-29  3:58 ` jvdelisle at gcc dot gnu dot org
  2006-11-29 22:13 ` tkoenig at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-29  3:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #27 from jvdelisle at gcc dot gnu dot org  2006-11-29 03:57 -------
Created an attachment (id=12704)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12704&action=view)
Huge+ record size unformatted write then read test

This test program exercizes patch 10 with very large record sizes.  The program
executes correctly (except the recl value printed, noted elsewhere) on
x86-64-linux-gnu.

The program fails on x86-64-freebsd and never completes the first write.  It
just keeps going, and going, and going ....  This is a target specific issue. 
My guess is that it has to do with alignment or types.  Maybe mixed type
arithmetic, size_t vs gfc_offset.  Is size_t 32 bits on freebsd and gfc_offset
64?  I will attempt to change all new variables to gfc_offset and see if that
fixes it.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (26 preceding siblings ...)
  2006-11-29  3:58 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-29 22:13 ` tkoenig at gcc dot gnu dot org
  2006-11-30  3:32 ` jvdelisle at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-11-29 22:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #28 from tkoenig at gcc dot gnu dot org  2006-11-29 22:12 -------
(In reply to comment #27)

Hi Jerry,

> The program fails on x86-64-freebsd and never completes the first write.  It
> just keeps going, and going, and going ....  This is a target specific issue. 
> My guess is that it has to do with alignment or types.  Maybe mixed type
> arithmetic, size_t vs gfc_offset.  Is size_t 32 bits on freebsd and gfc_offset
> 64?  I will attempt to change all new variables to gfc_offset and see if that
> fixes it.

Signedness could indeed be the problem.

If that doesn't solve the problem, could you print out the values of

- nbytes
- to_write_record
- to_write_subrecord
- dtp->u.p.current_unit->bytes_left
- dtp->u.p.current_unit->bytes_left_subrecord

at the start of the while loop in write_buf() (but please cast them
to long as appropriate :-)

This should help to see where things go wrong.  Possibly, there
is an initialization problem in some other place.

Thomas


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (27 preceding siblings ...)
  2006-11-29 22:13 ` tkoenig at gcc dot gnu dot org
@ 2006-11-30  3:32 ` jvdelisle at gcc dot gnu dot org
  2006-11-30  6:25 ` jvdelisle at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-30  3:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #29 from jvdelisle at gcc dot gnu dot org  2006-11-30 03:32 -------
 to_write_subrecord = 0
 have_written = 0
 to_write_subrecord = 0
 have_written = 0
 to_write_subrecord = 0
 have_written = 0
 to_write_subrecord = 0
 have_written = 0

ad infinitum

Now I wonder if the patch applied correctly.  I will be checking that, but we
definitely are broken here.  I will keep at it.  I did find some gcc warnings
on comparing signed and unsigned integers so I cast those.  To no effect.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (28 preceding siblings ...)
  2006-11-30  3:32 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-30  6:25 ` jvdelisle at gcc dot gnu dot org
  2006-11-30 20:10 ` patchapp at dberlin dot org
                   ` (6 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2006-11-30  6:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #30 from jvdelisle at gcc dot gnu dot org  2006-11-30 06:25 -------
Good News.  I did not have a clean apply of the patch.  I reverted everything
and started over.  There was one part of the patch I had to manually apply
before and I must have messed it up.  Now everything works great on X86-64
FreeBSD tests.

There are two warnings in transfer.c for comparison of signed and unsigned
types that need to get cleaned up.  Right around line 649 IIRC.

With that, this patch is ready to submit.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (29 preceding siblings ...)
  2006-11-30  6:25 ` jvdelisle at gcc dot gnu dot org
@ 2006-11-30 20:10 ` patchapp at dberlin dot org
  2006-12-01 21:05 ` tkoenig at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: patchapp at dberlin dot org @ 2006-11-30 20:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #31 from patchapp at dberlin dot org  2006-11-30 20:10 -------
Subject: Bug number PR libfortran/29568

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-11/msg02060.html


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (30 preceding siblings ...)
  2006-11-30 20:10 ` patchapp at dberlin dot org
@ 2006-12-01 21:05 ` tkoenig at gcc dot gnu dot org
  2006-12-01 21:18 ` tkoenig at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-12-01 21:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #32 from tkoenig at gcc dot gnu dot org  2006-12-01 21:04 -------
Subject: Bug 29568

Author: tkoenig
Date: Fri Dec  1 21:04:38 2006
New Revision: 119412

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119412
Log:
2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * gfortran.dg/convert_implied_open.f90:  Change to
        new default record length.
        * gfortran.dg/unf_short_record_1.f90:  Adapt to
        new error message.
        * gfortran.dg/unformatted_subrecords_1.f90:  New test.

2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * gfortran.h (gfc_option_t):  Add max_subrecord_length.
        (top level): Define MAX_SUBRECORD_LENGTH.
        * lang.opt:  Add option -fmax-subrecord-length=.
        * trans-decl.c:  Add new function set_max_subrecord_length.
        (gfc_generate_function_code): If we are within the main
        program and max_subrecord_length has been set, call
        set_max_subrecord_length.
        * options.c (gfc_init_options):  Add defaults for
        max_subrecord_lenght, convert and record_marker.
        (gfc_handle_option):  Add handling for
        -fmax_subrecord_length.
        * invoke.texi:  Document the new default for
        -frecord-marker=<n>.

2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * libgfortran/libgfortran.h (compile_options_t):  Add
        record_marker. (top level):  Define GFC_MAX_SUBRECORD_LENGTH.
        * runtime/compile_options.c (set_record_marker):  Change
        default to four-byte record marker.
        (set_max_subrecord_length):  New function.
        * runtime/error.c (translate_error):  Change error message
        for short record on unformatted read.
        * io/io.h (gfc_unit):  Add recl_subrecord, bytes_left_subrecord
        and continued.
        * io/file_pos.c (unformatted_backspace):  Change default of record
        marker size to four bytes.  Loop over subrecords.
        * io/open.c:  Default recl is max_offset.  If
        compile_options.max_subrecord_length has been set, set set
        u->recl_subrecord to its value, to the maximum value otherwise.
        * io/transfer.c (top level):  Add prototypes for us_read, us_write,
        next_record_r_unf and next_record_w_unf.
        (read_block_direct):  Separate codepaths for unformatted direct
        and unformatted sequential.  If a recl has been set by the
        user, use the number of bytes left for the record if it is smaller
        than the read request.  Loop over subrecords.  Set an error if the
        user has set a recl and the read was short.
        (write_buf):  Separate codepaths for unformatted direct and
        unformatted sequential. If a recl has been set by the
        user, use the number of bytes left for the record if it is smaller
        than the read request.  Loop over subrecords.  Set an error if the
        user has set a recl and the read was short.
        (us_read):  Add parameter continued (to indicate that bytes_left
        should not be intialized).  Change default of record marker size
        to four bytes. Use subrecord.  If the subrecord length is smaller than
        zero, this indicates a continuation.
        (us_write):  Add parameter continued (to indicate that the continued
        flag should be set).  Use subrecord.
        (pre_position):  Use 0 for continued on us_write and us_read calls.
        (skip_record):  New function.
        (next_record_r_unf):  New function.
        (next_record_r):  Use next_record_r_unf.
        (write_us_marker):  Default size for record markers is four bytes.
        (next_record_w_unf):  New function.
        (next_record_w):  Use next_record_w_unf.


Added:
    trunk/gcc/testsuite/gfortran.dg/unformatted_subrecord_1.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/invoke.texi
    trunk/gcc/fortran/lang.opt
    trunk/gcc/fortran/options.c
    trunk/gcc/fortran/trans-decl.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/convert_implied_open.f90
    trunk/gcc/testsuite/gfortran.dg/unf_short_record_1.f90
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/file_pos.c
    trunk/libgfortran/io/io.h
    trunk/libgfortran/io/open.c
    trunk/libgfortran/io/transfer.c
    trunk/libgfortran/libgfortran.h
    trunk/libgfortran/runtime/compile_options.c
    trunk/libgfortran/runtime/error.c


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (31 preceding siblings ...)
  2006-12-01 21:05 ` tkoenig at gcc dot gnu dot org
@ 2006-12-01 21:18 ` tkoenig at gcc dot gnu dot org
  2006-12-10 22:17 ` tkoenig at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-12-01 21:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #33 from tkoenig at gcc dot gnu dot org  2006-12-01 21:18 -------
Fixed on trunk.

I'll be waiting for some time for any regressions before
backporting to 4.2.


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (32 preceding siblings ...)
  2006-12-01 21:18 ` tkoenig at gcc dot gnu dot org
@ 2006-12-10 22:17 ` tkoenig at gcc dot gnu dot org
  2006-12-10 23:05 ` tkoenig at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-12-10 22:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #34 from tkoenig at gcc dot gnu dot org  2006-12-10 22:16 -------
Subject: Bug 29568

Author: tkoenig
Date: Sun Dec 10 22:16:14 2006
New Revision: 119712

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119712
Log:
2006-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

        Backport from mainline
        PR libfortran/29568
        * gfortran.dg/convert_implied_open.f90:  Change to
        new default record length.
        * gfortran.dg/unf_short_record_1.f90:  Adapt to
        new error message.
        * gfortran.dg/unformatted_subrecords_1.f90:  New test.
        PR libfortran/30009
        PR libfortran/30056
        * gfortran.dg/read_eof_4.f90:  Add tests.
        * gfortran.dg/readwrite_unf_direct_eor_1.f90:  New test.
        * gfortran.dg/unf_read_corrupted_1.f90: New test.

2006-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * gfortran.h (gfc_option_t):  Add max_subrecord_length.
        (top level): Define MAX_SUBRECORD_LENGTH.
        * lang.opt:  Add option -fmax-subrecord-length=.
        * trans-decl.c:  Add new function set_max_subrecord_length.
        (gfc_generate_function_code): If we are within the main
        program and max_subrecord_length has been set, call
        set_max_subrecord_length.
        * options.c (gfc_init_options):  Add defaults for
        max_subrecord_lenght, convert and record_marker.
        (gfc_handle_option):  Add handling for
        -fmax_subrecord_length.
        * invoke.texi:  Document the new default for
        -frecord-marker=<n>.

2006-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * libgfortran/libgfortran.h (compile_options_t):  Add
        record_marker. (top level):  Define GFC_MAX_SUBRECORD_LENGTH.
        * runtime/compile_options.c (set_record_marker):  Change
        default to four-byte record marker.
        (set_max_subrecord_length):  New function.
        * runtime/error.c (translate_error):  Change error message
        for short record on unformatted read.
        * io/io.h (gfc_unit):  Add recl_subrecord, bytes_left_subrecord
        and continued.
        * io/file_pos.c (unformatted_backspace):  Change default of record
        marker size to four bytes.  Loop over subrecords.
        * io/open.c:  Default recl is max_offset.  If
        compile_options.max_subrecord_length has been set, set set
        u->recl_subrecord to its value, to the maximum value otherwise.
        * io/transfer.c (top level):  Add prototypes for us_read, us_write,
        next_record_r_unf and next_record_w_unf.
        (read_block_direct):  Separate codepaths for unformatted direct
        and unformatted sequential.  If a recl has been set by the
        user, use the number of bytes left for the record if it is smaller
        than the read request.  Loop over subrecords.  Set an error if the
        user has set a recl and the read was short.
        (write_buf):  Separate codepaths for unformatted direct and
        unformatted sequential. If a recl has been set by the
        user, use the number of bytes left for the record if it is smaller
        than the read request.  Loop over subrecords.  Set an error if the
        user has set a recl and the read was short.
        (us_read):  Add parameter continued (to indicate that bytes_left
        should not be intialized).  Change default of record marker size
        to four bytes. Use subrecord.  If the subrecord length is smaller than
        zero, this indicates a continuation.
        (us_write):  Add parameter continued (to indicate that the continued
        flag should be set).  Use subrecord.
        (pre_position):  Use 0 for continued on us_write and us_read calls.
        (skip_record):  New function.
        (next_record_r_unf):  New function.
        (next_record_r):  Use next_record_r_unf.
        (write_us_marker):  Default size for record markers is four bytes.
        (next_record_w_unf):  New function.
        (next_record_w):  Use next_record_w_unf.
        PR libfortran/30009
        PR libfortran/30056
        * libgfortran.h:  Add ERROR_CORRUPT_FILE to error_codes.
        * runtime/error.c (translate_error):  Add handling for
        ERROR_CORRUPT_FILE.
        * io/transfer.c (read_block_direct):  Add comment about
        EOR for stream files.
        Remove test for no bytes left for direct access files.
        Generate an ERROR_SHORT_RECORD if the read was short.
        For unformatted sequential files:  Check endfile condition.
        Remove test for no bytes left.  End of file here means
        that the file structure has been corrupted.  Pre-position
        the file for the next record in case of error.
        (write_buf):  Whitespace fix.  Subtract the number of bytes
        written from bytes_left.


Added:
   
branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/readwrite_unf_direct_eor_1.f90
    branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/unf_read_corrupted_1.f90
   
branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/unformatted_subrecord_1.f90
Modified:
    branches/gcc-4_2-branch/gcc/fortran/ChangeLog
    branches/gcc-4_2-branch/gcc/fortran/gfortran.h
    branches/gcc-4_2-branch/gcc/fortran/lang.opt
    branches/gcc-4_2-branch/gcc/fortran/options.c
    branches/gcc-4_2-branch/gcc/fortran/trans-decl.c
    branches/gcc-4_2-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/convert_implied_open.f90
    branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/read_eof_4.f90
    branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/unf_short_record_1.f90
    branches/gcc-4_2-branch/libgfortran/ChangeLog
    branches/gcc-4_2-branch/libgfortran/io/file_pos.c
    branches/gcc-4_2-branch/libgfortran/io/io.h
    branches/gcc-4_2-branch/libgfortran/io/open.c
    branches/gcc-4_2-branch/libgfortran/io/transfer.c
    branches/gcc-4_2-branch/libgfortran/libgfortran.h
    branches/gcc-4_2-branch/libgfortran/runtime/compile_options.c
    branches/gcc-4_2-branch/libgfortran/runtime/error.c


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (33 preceding siblings ...)
  2006-12-10 22:17 ` tkoenig at gcc dot gnu dot org
@ 2006-12-10 23:05 ` tkoenig at gcc dot gnu dot org
  2006-12-13 21:37 ` tkoenig at gcc dot gnu dot org
  2006-12-19 17:15 ` burnus at gcc dot gnu dot org
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-12-10 23:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #35 from tkoenig at gcc dot gnu dot org  2006-12-10 23:05 -------
Subject: Bug 29568

Author: tkoenig
Date: Sun Dec 10 23:05:27 2006
New Revision: 119716

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119716
Log:
2006-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * options.c:  Apply the correct version of the previous
        patch.


Modified:
    branches/gcc-4_2-branch/gcc/fortran/options.c


-- 


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (34 preceding siblings ...)
  2006-12-10 23:05 ` tkoenig at gcc dot gnu dot org
@ 2006-12-13 21:37 ` tkoenig at gcc dot gnu dot org
  2006-12-19 17:15 ` burnus at gcc dot gnu dot org
  36 siblings, 0 replies; 38+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2006-12-13 21:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #36 from tkoenig at gcc dot gnu dot org  2006-12-13 21:37 -------
Fixed for trunk and 4.2.  Will not backport to 4.1.

Closing.


-- 

tkoenig at gcc dot gnu dot org changed:

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


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


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

* [Bug libfortran/29568] implement unformatted files with subrecords (Intel style)
  2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
                   ` (35 preceding siblings ...)
  2006-12-13 21:37 ` tkoenig at gcc dot gnu dot org
@ 2006-12-19 17:15 ` burnus at gcc dot gnu dot org
  36 siblings, 0 replies; 38+ messages in thread
From: burnus at gcc dot gnu dot org @ 2006-12-19 17:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #37 from burnus at gcc dot gnu dot org  2006-12-19 17:15 -------
Subject: Bug 29568

Author: burnus
Date: Tue Dec 19 17:14:22 2006
New Revision: 120053

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=120053
Log:
Merged revisions 119412-119459 via svnmerge from 
svn+ssh://gcc.gnu.org/svn/gcc/trunk

........
  r119412 | tkoenig | 2006-12-01 22:04:38 +0100 (Fr, 01 Dez 2006) | 70 lines

  2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * gfortran.dg/convert_implied_open.f90:  Change to
        new default record length.
        * gfortran.dg/unf_short_record_1.f90:  Adapt to
        new error message.
        * gfortran.dg/unformatted_subrecords_1.f90:  New test.

  2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * gfortran.h (gfc_option_t):  Add max_subrecord_length.
        (top level): Define MAX_SUBRECORD_LENGTH.
        * lang.opt:  Add option -fmax-subrecord-length=.
        * trans-decl.c:  Add new function set_max_subrecord_length.
        (gfc_generate_function_code): If we are within the main
        program and max_subrecord_length has been set, call
        set_max_subrecord_length.
        * options.c (gfc_init_options):  Add defaults for
        max_subrecord_lenght, convert and record_marker.
        (gfc_handle_option):  Add handling for
        -fmax_subrecord_length.
        * invoke.texi:  Document the new default for
        -frecord-marker=<n>.

  2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/29568
        * libgfortran/libgfortran.h (compile_options_t):  Add
        record_marker. (top level):  Define GFC_MAX_SUBRECORD_LENGTH.
        * runtime/compile_options.c (set_record_marker):  Change
        default to four-byte record marker.
        (set_max_subrecord_length):  New function.
        * runtime/error.c (translate_error):  Change error message
        for short record on unformatted read.
        * io/io.h (gfc_unit):  Add recl_subrecord, bytes_left_subrecord
        and continued.
        * io/file_pos.c (unformatted_backspace):  Change default of record
        marker size to four bytes.  Loop over subrecords.
        * io/open.c:  Default recl is max_offset.  If
        compile_options.max_subrecord_length has been set, set set
        u->recl_subrecord to its value, to the maximum value otherwise.
        * io/transfer.c (top level):  Add prototypes for us_read, us_write,
        next_record_r_unf and next_record_w_unf.
        (read_block_direct):  Separate codepaths for unformatted direct
        and unformatted sequential.  If a recl has been set by the
        user, use the number of bytes left for the record if it is smaller
        than the read request.  Loop over subrecords.  Set an error if the
        user has set a recl and the read was short.
        (write_buf):  Separate codepaths for unformatted direct and
        unformatted sequential. If a recl has been set by the
        user, use the number of bytes left for the record if it is smaller
        than the read request.  Loop over subrecords.  Set an error if the
        user has set a recl and the read was short.
        (us_read):  Add parameter continued (to indicate that bytes_left
        should not be intialized).  Change default of record marker size
        to four bytes. Use subrecord.  If the subrecord length is smaller than
        zero, this indicates a continuation.
        (us_write):  Add parameter continued (to indicate that the continued
        flag should be set).  Use subrecord.
        (pre_position):  Use 0 for continued on us_write and us_read calls.
        (skip_record):  New function.
        (next_record_r_unf):  New function.
        (next_record_r):  Use next_record_r_unf.
        (write_us_marker):  Default size for record markers is four bytes.
        (next_record_w_unf):  New function.
        (next_record_w):  Use next_record_w_unf.
........
  r119415 | reichelt | 2006-12-01 22:28:35 +0100 (Fr, 01 Dez 2006) | 5 lines

        PR c++/30021
        * c-common.c (check_main_parameter_types): Check for error_mark_node.

        * g++.dg/other/main1.C: New test.
........
  r119416 | reichelt | 2006-12-01 22:35:25 +0100 (Fr, 01 Dez 2006) | 7 lines

        PR c++/30022
        * typeck.c (type_after_usual_arithmetic_conversions):
        Fix assertion for vector types.
        (build_binary_op): Use temporary for inner type of vector types.

        * g++.dg/ext/vector5.C: New test.
........
  r119421 | tsmigiel | 2006-12-01 23:43:18 +0100 (Fr, 01 Dez 2006) | 8 lines

          * config/spu/predicates.md (spu_mov_operand): Add.
          * config/spu/spu.c (spu_expand_extv): Remove unused code.
          (print_operand_address, print_operand): Handle addresses containing
AND.
          (spu_split_load, spu_split_store): Use updated movti pattern.
          * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and
          stores in mov patterns for correct operation of reload.
          (lq, lq_<mode>, stq, stq_<mode>): Remove.
........
  r119422 | ebotcazou | 2006-12-01 23:46:45 +0100 (Fr, 01 Dez 2006) | 6 lines

        * fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the
        type instead of the size of its mode to compute the highest and
        lowest possible values.  Still check the size of the mode before
        flipping the signedness of the comparison.
........
  r119424 | tsmigiel | 2006-12-01 23:51:06 +0100 (Fr, 01 Dez 2006) | 19 lines

        * config/spu/spu.c (spu_immediate): Remove trailing comma.
        (reloc_diagnostic): Call warning when -mwarn-reloc is specified.
        * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for
        better optimization.
        (floatv4siv4sf2): New.
        (fix_truncv4sfv4si2): New.
        (floatunsv4siv4sf2): New.
        (fixuns_truncv4sfv4si2): New.
        (addv16qi3): New.
        (subv16qi3): New.
        (negv16qi2): New.
        (mulv8hi3): New.
        (mulsi3): Remove.
        (mul<mode>3): New.
        (_mulv4si3): New.
        (cmp<mode>): Don't accept constant arguments for DI, TI and SF.
        * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with
        spu_resolve_overloaded_builtin instead of static inline functions.
........
  r119427 | geoffk | 2006-12-02 00:01:05 +0100 (Sa, 02 Dez 2006) | 10 lines

        * decl.c (poplevel): Check DECL_INITIAL invariant.
        (duplicate_decls): Preserve DECL_INITIAL when eliminating
        a new definition in favour of an old declaration.
        (start_preparsed_function): Define and document value of
        DECL_INITIAL before and after routine.
        (finish_function): Check DECL_INITIAL invariant.
        * parser.c 
        (cp_parser_function_definition_from_specifiers_and_declarator): 
        Skip duplicate function definitions.
........
  r119433 | gccadmin | 2006-12-02 01:17:43 +0100 (Sa, 02 Dez 2006) | 1 line

  Daily bump.
........
  r119435 | paolo | 2006-12-02 01:31:34 +0100 (Sa, 02 Dez 2006) | 5 lines

  2006-12-01  Paolo Carlini  <pcarlini@suse.de>

        * include/ext/mt_allocator.h (__pool_base::_M_get_align): Remove
        redundant const qualifier on the return type.
........
  r119437 | kazu | 2006-12-02 02:03:11 +0100 (Sa, 02 Dez 2006) | 4 lines

        * Makefile.in, mingw32.h, trans.c: Fix comment typos.
        * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
        Fix typos.
........
  r119440 | kazu | 2006-12-02 02:44:17 +0100 (Sa, 02 Dez 2006) | 2 lines

        * name-lookup.c: Follow spelling conventions.
........
  r119441 | kazu | 2006-12-02 03:06:52 +0100 (Sa, 02 Dez 2006) | 2 lines

        * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos.
........
  r119442 | kazu | 2006-12-02 03:26:04 +0100 (Sa, 02 Dez 2006) | 13 lines

        * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c,
        config/i386/i386.c, config/i386/i386.h, config/mips/mips.h,
        config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c,
        config/sh/sh4-300.md, config/spu/spu-builtins.def,
        config/spu/spu-c.c, config/spu/spu-modes.def,
        config/spu/spu.c, config/spu/spu.md,
        config/spu/spu_internals.h, config/spu/vmx2spu.h,
        fold-const.c, fwprop.c, predict.c, tree-data-ref.h,
        tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
        tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c,
        tree-vectorizer.c, tree-vrp.c: Fix comment typos.  Follow
        spelling conventions.
........
  r119443 | kazu | 2006-12-02 03:47:07 +0100 (Sa, 02 Dez 2006) | 2 lines

        * config/i386/i386.c: Fix a comment typo.
........
  r119445 | hubicka | 2006-12-02 14:16:27 +0100 (Sa, 02 Dez 2006) | 6 lines

        * config/i386/i386.c (pentium4_cost, nocona_cost): Update
        32bit memcpy/memset decriptors.
        (decide_alg): With -minline-all-stringops and sizes that are best
        to be copied via libcall still work hard enough to pick non-libcall
        strategy.
........
  r119446 | lmillward | 2006-12-02 17:34:26 +0100 (Sa, 02 Dez 2006) | 5 lines

        PR c/27953
        * c-decl.c (store_parm_decls_oldstyle): Robustify
          * gcc.dg/pr27953.c: New test.
........
  r119447 | ghazi | 2006-12-02 17:52:15 +0100 (Sa, 02 Dez 2006) | 12 lines

        * configure.in: Update MPFR version in error message.

        * configure: Regenerate.

  gcc:
        * doc/install.texi: Update recommended MPFR version.  Remove
        obsolete reference to cumulative patch.

  gcc/testsuite:
        * gcc.dg/torture/builtin-sin-mpfr-1.c: Update MPFR comment.
........
  r119448 | lmillward | 2006-12-02 17:54:35 +0100 (Sa, 02 Dez 2006) | 3 lines

  fix testcase from previous commit
........
  r119449 | pinskia | 2006-12-02 18:01:04 +0100 (Sa, 02 Dez 2006) | 12 lines

  2006-12-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>

          PR C++/30033
          * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.

  2006-12-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>

          PR C++/30033
          *  g++.dg/cpp0x/static_assert4.C: New testcase.
........
  r119450 | paolo | 2006-12-02 18:06:57 +0100 (Sa, 02 Dez 2006) | 7 lines

  2006-12-02  Howard Hinnant  <hhinnant@apple.com>

        * acinclude.m4: Allow OPTIMIZE_CXXFLAGS to be set by configure.host.
        * configure.host: Set OPTIMIZE_CXXFLAGS to -fvisibility-inlines-hidden
        for x86/darwin.
        * configure: Regenerate.
........
  r119452 | ebotcazou | 2006-12-02 21:01:34 +0100 (Sa, 02 Dez 2006) | 3 lines

        * configure.tgt: Force initial-exec TLS model on Linux only.
........
  r119454 | hjl | 2006-12-02 23:18:25 +0100 (Sa, 02 Dez 2006) | 14 lines

  2006-12-02  H.J. Lu  <hongjiu.lu@intel.com>

        PR target/30040
        * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
        (bit_SSSE3): New.
        (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
        processor detection.

        * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
        -march=native if there is no -mtune=*.

        * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
        coretypes.h.
........
  r119459 | gccadmin | 2006-12-03 01:17:51 +0100 (So, 03 Dez 2006) | 1 line

  Daily bump.
........

Added:
    branches/fortran-experiments/gcc/testsuite/g++.dg/cpp0x/static_assert4.C
      - copied unchanged from r119459,
trunk/gcc/testsuite/g++.dg/cpp0x/static_assert4.C
    branches/fortran-experiments/gcc/testsuite/g++.dg/ext/vector5.C
      - copied unchanged from r119459, trunk/gcc/testsuite/g++.dg/ext/vector5.C
    branches/fortran-experiments/gcc/testsuite/g++.dg/other/main1.C
      - copied unchanged from r119459, trunk/gcc/testsuite/g++.dg/other/main1.C
    branches/fortran-experiments/gcc/testsuite/gcc.dg/pr27953.c
      - copied unchanged from r119459, trunk/gcc/testsuite/gcc.dg/pr27953.c
   
branches/fortran-experiments/gcc/testsuite/gfortran.dg/unformatted_subrecord_1.f90
      - copied unchanged from r119459,
trunk/gcc/testsuite/gfortran.dg/unformatted_subrecord_1.f90
Modified:
    branches/fortran-experiments/   (props changed)
    branches/fortran-experiments/ChangeLog
    branches/fortran-experiments/configure
    branches/fortran-experiments/configure.in
    branches/fortran-experiments/gcc/ChangeLog
    branches/fortran-experiments/gcc/DATESTAMP
    branches/fortran-experiments/gcc/ada/ChangeLog
    branches/fortran-experiments/gcc/ada/Makefile.in
    branches/fortran-experiments/gcc/ada/gnat_rm.texi
    branches/fortran-experiments/gcc/ada/gnat_ugn.texi
    branches/fortran-experiments/gcc/ada/mingw32.h
    branches/fortran-experiments/gcc/ada/trans.c
    branches/fortran-experiments/gcc/builtins.c
    branches/fortran-experiments/gcc/c-common.c
    branches/fortran-experiments/gcc/c-decl.c
    branches/fortran-experiments/gcc/cfgloop.h
    branches/fortran-experiments/gcc/cgraph.h
    branches/fortran-experiments/gcc/config/arm/arm.c
    branches/fortran-experiments/gcc/config/i386/driver-i386.c
    branches/fortran-experiments/gcc/config/i386/i386.c
    branches/fortran-experiments/gcc/config/i386/i386.h
    branches/fortran-experiments/gcc/config/i386/x-i386
    branches/fortran-experiments/gcc/config/mips/mips.h
    branches/fortran-experiments/gcc/config/rs6000/cell.md
    branches/fortran-experiments/gcc/config/rs6000/rs6000.c
    branches/fortran-experiments/gcc/config/sh/sh.c
    branches/fortran-experiments/gcc/config/sh/sh4-300.md
    branches/fortran-experiments/gcc/config/spu/predicates.md
    branches/fortran-experiments/gcc/config/spu/spu-builtins.def
    branches/fortran-experiments/gcc/config/spu/spu-c.c
    branches/fortran-experiments/gcc/config/spu/spu-modes.def
    branches/fortran-experiments/gcc/config/spu/spu.c
    branches/fortran-experiments/gcc/config/spu/spu.md
    branches/fortran-experiments/gcc/config/spu/spu_internals.h
    branches/fortran-experiments/gcc/config/spu/vmx2spu.h
    branches/fortran-experiments/gcc/cp/ChangeLog
    branches/fortran-experiments/gcc/cp/decl.c
    branches/fortran-experiments/gcc/cp/method.c
    branches/fortran-experiments/gcc/cp/name-lookup.c
    branches/fortran-experiments/gcc/cp/parser.c
    branches/fortran-experiments/gcc/cp/typeck.c
    branches/fortran-experiments/gcc/doc/extend.texi
    branches/fortran-experiments/gcc/doc/install.texi
    branches/fortran-experiments/gcc/doc/invoke.texi
    branches/fortran-experiments/gcc/doc/md.texi
    branches/fortran-experiments/gcc/fold-const.c
    branches/fortran-experiments/gcc/fortran/ChangeLog
    branches/fortran-experiments/gcc/fortran/gfortran.h
    branches/fortran-experiments/gcc/fortran/invoke.texi
    branches/fortran-experiments/gcc/fortran/lang.opt
    branches/fortran-experiments/gcc/fortran/options.c
    branches/fortran-experiments/gcc/fortran/trans-decl.c
    branches/fortran-experiments/gcc/fwprop.c
    branches/fortran-experiments/gcc/predict.c
    branches/fortran-experiments/gcc/testsuite/ChangeLog
   
branches/fortran-experiments/gcc/testsuite/gcc.dg/torture/builtin-sin-mpfr-1.c
   
branches/fortran-experiments/gcc/testsuite/gfortran.dg/convert_implied_open.f90
   
branches/fortran-experiments/gcc/testsuite/gfortran.dg/unf_short_record_1.f90
    branches/fortran-experiments/gcc/tree-data-ref.h
    branches/fortran-experiments/gcc/tree-flow.h
    branches/fortran-experiments/gcc/tree-ssa-loop-manip.c
    branches/fortran-experiments/gcc/tree-ssa-loop-niter.c
    branches/fortran-experiments/gcc/tree-ssa-pre.c
    branches/fortran-experiments/gcc/tree-vect-analyze.c
    branches/fortran-experiments/gcc/tree-vect-transform.c
    branches/fortran-experiments/gcc/tree-vectorizer.c
    branches/fortran-experiments/gcc/tree-vrp.c
    branches/fortran-experiments/libgfortran/ChangeLog
    branches/fortran-experiments/libgfortran/io/file_pos.c
    branches/fortran-experiments/libgfortran/io/io.h
    branches/fortran-experiments/libgfortran/io/open.c
    branches/fortran-experiments/libgfortran/io/transfer.c
    branches/fortran-experiments/libgfortran/libgfortran.h
    branches/fortran-experiments/libgfortran/runtime/compile_options.c
    branches/fortran-experiments/libgfortran/runtime/error.c
    branches/fortran-experiments/libgomp/ChangeLog
    branches/fortran-experiments/libgomp/configure.tgt
    branches/fortran-experiments/libstdc++-v3/ChangeLog
    branches/fortran-experiments/libstdc++-v3/acinclude.m4
    branches/fortran-experiments/libstdc++-v3/configure
    branches/fortran-experiments/libstdc++-v3/configure.host
    branches/fortran-experiments/libstdc++-v3/include/ext/mt_allocator.h

Propchange: branches/fortran-experiments/
            ('svnmerge-integrated' modified)


-- 


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


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

end of thread, other threads:[~2006-12-19 17:15 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-10-23 18:17 [Bug libfortran/29568] New: implement unformatted files with subrecords (Intel style) tkoenig at gcc dot gnu dot org
2006-10-23 19:49 ` [Bug libfortran/29568] " kargl at gcc dot gnu dot org
2006-10-25 20:11 ` tkoenig at gcc dot gnu dot org
2006-10-31 21:37 ` tobias dot burnus at physik dot fu-berlin dot de
2006-11-04 14:28 ` jb at gcc dot gnu dot org
2006-11-05 21:48 ` tkoenig at gcc dot gnu dot org
2006-11-09 20:43 ` tkoenig at gcc dot gnu dot org
2006-11-13 19:11 ` tkoenig at gcc dot gnu dot org
2006-11-15 21:05 ` tkoenig at gcc dot gnu dot org
2006-11-19 20:42 ` tkoenig at gcc dot gnu dot org
2006-11-21  2:49 ` jvdelisle at gcc dot gnu dot org
2006-11-21  2:52 ` jvdelisle at gcc dot gnu dot org
2006-11-21  4:02 ` jvdelisle at gcc dot gnu dot org
2006-11-21  6:48 ` jvdelisle at gcc dot gnu dot org
2006-11-21  7:16 ` jvdelisle at gcc dot gnu dot org
2006-11-21  7:24 ` jvdelisle at gcc dot gnu dot org
2006-11-21  8:25 ` jvdelisle at gcc dot gnu dot org
2006-11-21 20:40 ` tkoenig at gcc dot gnu dot org
2006-11-22  1:36 ` jvdelisle at gcc dot gnu dot org
2006-11-22  1:56 ` jvdelisle at gcc dot gnu dot org
2006-11-25 22:59 ` tkoenig at gcc dot gnu dot org
2006-11-26  4:10 ` jvdelisle at gcc dot gnu dot org
2006-11-26 20:40 ` tkoenig at gcc dot gnu dot org
2006-11-26 20:43 ` tkoenig at gcc dot gnu dot org
2006-11-26 22:27 ` jvdelisle at verizon dot net
2006-11-27  8:24 ` jvdelisle at gcc dot gnu dot org
2006-11-27 20:43 ` tkoenig at gcc dot gnu dot org
2006-11-29  3:58 ` jvdelisle at gcc dot gnu dot org
2006-11-29 22:13 ` tkoenig at gcc dot gnu dot org
2006-11-30  3:32 ` jvdelisle at gcc dot gnu dot org
2006-11-30  6:25 ` jvdelisle at gcc dot gnu dot org
2006-11-30 20:10 ` patchapp at dberlin dot org
2006-12-01 21:05 ` tkoenig at gcc dot gnu dot org
2006-12-01 21:18 ` tkoenig at gcc dot gnu dot org
2006-12-10 22:17 ` tkoenig at gcc dot gnu dot org
2006-12-10 23:05 ` tkoenig at gcc dot gnu dot org
2006-12-13 21:37 ` tkoenig at gcc dot gnu dot org
2006-12-19 17:15 ` burnus 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).