public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/39667]  New: Possibly unneccesary truncations
@ 2009-04-06 18:16 burnus at gcc dot gnu dot org
  2009-04-17 22:19 ` [Bug fortran/39667] I/O possibly " jb at gcc dot gnu dot org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-04-06 18:16 UTC (permalink / raw)
  To: gcc-bugs

See: http://gcc.gnu.org/ml/fortran/2009-04/msg00054.html

Some namelist and utf8/widechar tests now require a working fd_truncate, which
causes failures on systems not offering this.

Thus one should check whether the truncations are really needed.


-- 
           Summary: Possibly unneccesary truncations
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: burnus at gcc dot gnu dot org


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


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

* [Bug fortran/39667] I/O possibly unneccesary truncations
  2009-04-06 18:16 [Bug fortran/39667] New: Possibly unneccesary truncations burnus at gcc dot gnu dot org
@ 2009-04-17 22:19 ` jb at gcc dot gnu dot org
  2009-04-30 15:13 ` jb at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jb at gcc dot gnu dot org @ 2009-04-17 22:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from jb at gcc dot gnu dot org  2009-04-17 22:18 -------
Confirmed, assigning to myself.


-- 

jb at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-04-17 22:18:55
               date|                            |


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


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

* [Bug fortran/39667] I/O possibly unneccesary truncations
  2009-04-06 18:16 [Bug fortran/39667] New: Possibly unneccesary truncations burnus at gcc dot gnu dot org
  2009-04-17 22:19 ` [Bug fortran/39667] I/O possibly " jb at gcc dot gnu dot org
@ 2009-04-30 15:13 ` jb at gcc dot gnu dot org
  2009-05-27  1:23 ` jvdelisle at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jb at gcc dot gnu dot org @ 2009-04-30 15:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from jb at gcc dot gnu dot org  2009-04-30 15:12 -------
Subject: Bug 39667

Author: jb
Date: Thu Apr 30 15:12:37 2009
New Revision: 147004

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147004
Log:
Fix PR libfortran/39667

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/advance_1.f90
    trunk/gcc/testsuite/gfortran.dg/advance_4.f90
    trunk/gcc/testsuite/gfortran.dg/advance_5.f90
    trunk/gcc/testsuite/gfortran.dg/append_1.f90
    trunk/gcc/testsuite/gfortran.dg/backslash_1.f90
    trunk/gcc/testsuite/gfortran.dg/backslash_2.f90
    trunk/gcc/testsuite/gfortran.dg/backslash_3.f
    trunk/gcc/testsuite/gfortran.dg/backspace_10.f90
    trunk/gcc/testsuite/gfortran.dg/backspace_3.f
    trunk/gcc/testsuite/gfortran.dg/backspace_4.f
    trunk/gcc/testsuite/gfortran.dg/backspace_5.f
    trunk/gcc/testsuite/gfortran.dg/backspace_8.f
    trunk/gcc/testsuite/gfortran.dg/backspace_9.f
    trunk/gcc/testsuite/gfortran.dg/complex_write.f90
    trunk/gcc/testsuite/gfortran.dg/convert_implied_open.f90
    trunk/gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f
    trunk/gcc/testsuite/gfortran.dg/dos_eol.f
    trunk/gcc/testsuite/gfortran.dg/empty_format_1.f90
    trunk/gcc/testsuite/gfortran.dg/endfile.f
    trunk/gcc/testsuite/gfortran.dg/eof_1.f90
    trunk/gcc/testsuite/gfortran.dg/eor_1.f90
    trunk/gcc/testsuite/gfortran.dg/eor_handling_1.f90
    trunk/gcc/testsuite/gfortran.dg/eor_handling_2.f90
    trunk/gcc/testsuite/gfortran.dg/eor_handling_3.f90
    trunk/gcc/testsuite/gfortran.dg/eor_handling_4.f90
    trunk/gcc/testsuite/gfortran.dg/eor_handling_5.f90
    trunk/gcc/testsuite/gfortran.dg/error_recovery_5.f90
    trunk/gcc/testsuite/gfortran.dg/f2003_inquire_1.f03
    trunk/gcc/testsuite/gfortran.dg/f2003_io_4.f03
    trunk/gcc/testsuite/gfortran.dg/f2003_io_5.f03
    trunk/gcc/testsuite/gfortran.dg/f2003_io_7.f03
    trunk/gcc/testsuite/gfortran.dg/fgetc_1.f90
    trunk/gcc/testsuite/gfortran.dg/fgetc_2.f90
    trunk/gcc/testsuite/gfortran.dg/flush_1.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_exhaust.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_huge.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_read.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_t_1.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_t_2.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_t_3.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_t_4.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_t_5.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_t_7.f
    trunk/gcc/testsuite/gfortran.dg/fseek.f90
    trunk/gcc/testsuite/gfortran.dg/ftell_1.f90
    trunk/gcc/testsuite/gfortran.dg/ftell_2.f90
    trunk/gcc/testsuite/gfortran.dg/func_derived_3.f90
    trunk/gcc/testsuite/gfortran.dg/inquire_9.f90
    trunk/gcc/testsuite/gfortran.dg/iostat_1.f90
    trunk/gcc/testsuite/gfortran.dg/iostat_2.f90
    trunk/gcc/testsuite/gfortran.dg/list_read_1.f90
    trunk/gcc/testsuite/gfortran.dg/list_read_4.f90
    trunk/gcc/testsuite/gfortran.dg/list_read_5.f90
    trunk/gcc/testsuite/gfortran.dg/list_read_7.f90
    trunk/gcc/testsuite/gfortran.dg/list_read_8.f90
    trunk/gcc/testsuite/gfortran.dg/list_read_9.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_13.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_14.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_15.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_16.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_17.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_18.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_19.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_20.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_24.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_26.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_27.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_28.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_37.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_38.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_39.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_40.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_43.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_44.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_45.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_46.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_47.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_48.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_49.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_50.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_51.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_52.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_56.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_char_only.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_use.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_use_only.f90
    trunk/gcc/testsuite/gfortran.dg/noadv_size.f90
    trunk/gcc/testsuite/gfortran.dg/open_access_append_1.f90
    trunk/gcc/testsuite/gfortran.dg/pad_no.f90
    trunk/gcc/testsuite/gfortran.dg/pr12884.f
    trunk/gcc/testsuite/gfortran.dg/pr17090.f90
    trunk/gcc/testsuite/gfortran.dg/pr17285.f90
    trunk/gcc/testsuite/gfortran.dg/pr17286.f90
    trunk/gcc/testsuite/gfortran.dg/pr18122.f90
    trunk/gcc/testsuite/gfortran.dg/pr18210.f90
    trunk/gcc/testsuite/gfortran.dg/pr18392.f90
    trunk/gcc/testsuite/gfortran.dg/pr19155.f
    trunk/gcc/testsuite/gfortran.dg/pr19216.f
    trunk/gcc/testsuite/gfortran.dg/pr19467.f90
    trunk/gcc/testsuite/gfortran.dg/pr19657.f
    trunk/gcc/testsuite/gfortran.dg/pr20257.f90
    trunk/gcc/testsuite/gfortran.dg/read_bad_advance.f90
    trunk/gcc/testsuite/gfortran.dg/read_eof_2.f90
    trunk/gcc/testsuite/gfortran.dg/read_eof_4.f90
    trunk/gcc/testsuite/gfortran.dg/read_many_1.f
    trunk/gcc/testsuite/gfortran.dg/read_noadvance.f90
    trunk/gcc/testsuite/gfortran.dg/read_repeat.f90
    trunk/gcc/testsuite/gfortran.dg/read_size_noadvance.f90
    trunk/gcc/testsuite/gfortran.dg/read_x_past.f
    trunk/gcc/testsuite/gfortran.dg/record_marker_1.f90
    trunk/gcc/testsuite/gfortran.dg/record_marker_3.f90
    trunk/gcc/testsuite/gfortran.dg/rewind_1.f90
    trunk/gcc/testsuite/gfortran.dg/runtime_warning_1.f90
    trunk/gcc/testsuite/gfortran.dg/shape_3.f90
    trunk/gcc/testsuite/gfortran.dg/slash_1.f90
    trunk/gcc/testsuite/gfortran.dg/stat_1.f90
    trunk/gcc/testsuite/gfortran.dg/stat_2.f90
    trunk/gcc/testsuite/gfortran.dg/streamio_11.f90
    trunk/gcc/testsuite/gfortran.dg/streamio_3.f90
    trunk/gcc/testsuite/gfortran.dg/streamio_4.f90
    trunk/gcc/testsuite/gfortran.dg/streamio_9.f90
    trunk/gcc/testsuite/gfortran.dg/tl_editing.f90
    trunk/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90
    trunk/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90
    trunk/gcc/testsuite/gfortran.dg/unf_read_corrupted_2.f90
    trunk/gcc/testsuite/gfortran.dg/unf_short_record_1.f90
    trunk/gcc/testsuite/gfortran.dg/utf8_1.f03
    trunk/gcc/testsuite/gfortran.dg/utf8_2.f03
    trunk/gcc/testsuite/gfortran.dg/widechar_IO_1.f90
    trunk/gcc/testsuite/gfortran.dg/write_check3.f90
    trunk/gcc/testsuite/gfortran.dg/write_rewind_2.f
    trunk/gcc/testsuite/gfortran.dg/x_slash_2.f
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/file_pos.c
    trunk/libgfortran/io/intrinsics.c


-- 


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


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

* [Bug fortran/39667] I/O possibly unneccesary truncations
  2009-04-06 18:16 [Bug fortran/39667] New: Possibly unneccesary truncations burnus at gcc dot gnu dot org
  2009-04-17 22:19 ` [Bug fortran/39667] I/O possibly " jb at gcc dot gnu dot org
  2009-04-30 15:13 ` jb at gcc dot gnu dot org
@ 2009-05-27  1:23 ` jvdelisle at gcc dot gnu dot org
  2009-08-25 22:18 ` jb at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2009-05-27  1:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from jvdelisle at gcc dot gnu dot org  2009-05-27 01:22 -------
Subject: Bug 39667

Author: jvdelisle
Date: Wed May 27 01:21:22 2009
New Revision: 147887

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147887
Log:
2009-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/37754
        * io/write_float.def: Simplify format calculation.

2009-05-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        Backport from mainline:
        PR fortran/22423
        * io/transfer.c (read_block_direct): Avoid warning.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/39667
        * io/file_pos.c (st_rewind): Don't truncate or flush.
        * io/intrinsics.c (fgetc): Flush if switching mode.
        (fputc): Likewise.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/39782
        * io/transfer.c (data_transfer_init): Don't flush before seek.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        * io/io.h (is_preconnected): Remove prototype.
        * io/unix.c (is_preconnected): Remove function.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/38668
        * io/transfer.c (finalize_transfer): Don't flush for advance='no'.

2009-05-23 Danny Smith  <dannysmith@clear.net.nz>

        Backport from mainline:
        * io/write.c (itoa) : Rename back to gfc_itoa.
        (write_i): Adjust call to write_decimal.
        (write_integer):  Use gfc_itoa.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        * io/io.h (move_pos_offset): Remove prototype.
        * io/transfer.c (formatted_transfer_scalar_read): Use sseek
        instead of move_pos_offset.
        * io/unix.c (move_pos_offset): Remove.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/39665 libfortran/39702 libfortran/39709
        * io/io.h (st_parameter_dt): Revert aligned attribute from u.p.value.
        * io/list_read.c (read_complex): Read directly into user pointer.
        (read_real): Likewise.
        (list_formatted_read_scalar): Update read_complex and read_real calls.
        (nml_read_obj): Read directly into user pointer.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/39665
        * io/io.h (st_parameter_dt): Add aligned attribute to u.p.value.
        * io/read.c (convert_real): Add note about alignment requirements.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        * io/open.c (already_open): Test for POSIX close return value.
        * io/unit.c (close_unit_1): Likewise.
        * io/unix.c (raw_close): Return 0 for success for preconnected units.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        * runtime/error.c (gfc_itoa): Move to io/write.c
        (xtoa): Rename to gfc_xtoa.
        * runtime/backtrace.c (show_backtrace): Call gfc_xtoa.
        * libgfortran.h (gfc_itoa): Remove prototype.
        (xtoa): Rename prototype to gfc_xtoa.
        * io/list_read.c (nml_read_obj): Use size_t for string length.
        * io/transfer.c (read_block_direct): Change nbytes arg from
        pointer to value.
        (unformatted_read): Minor cleanup, call read_block_directly properly.
        (skip_record): Use ssize_t.
        (next_record_w_unf): Avoid stell() call by calling sseek with SEEK_CUR.
        (iolength_transfer): Make sure to multiply before cast.
        * io/intrinsics.c (fgetc): Remove unnecessary variable.
        * io/format.c (format_hash): Use gfc_charlen_type.
        * io/write.c (itoa): Move from runtime/error.c:gfc_itoa, rename,
        make static.
        (write_i): Call with pointer to itoa.
        (write_z): Call with pointer to gfc_xtoa.
        (write_integer): Pointer to itoa.
        (nml_write_obj): Type cleanup, don't call strlen in loop.

2009-05-23  H.J. Lu  <hongjiu.lu@intel.com>

        Backport from mainline:
        PR libgfortran/39664
        * io/unix.c (raw_close): Don't close STDOUT_FILENO,
        STDERR_FILENO nor STDIN_FILENO.

2009-05-23  David Edelsohn  <edelsohn@gnu.org>

        Backport from mainline:
        * io/io.h (struct stream): Rename truncate to trunc.
        (struncate): Same.
        * io/unix.c (raw_init): Rename truncate to trunc.
        (buf_init): Same.
        (open_internal): Same.

2009-05-23  Daniel Kraft  <d@domob.eu>

        Backport from mainline:
        PR fortran/38654
        * io/read.c (read_f): Reworked to speed up floating point parsing.
        (convert_real): Use pointer-casting instead of memcpy and temporaries.

2009-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/37754
        * io/io.h (format_hash_entry): New structure for hash table.
        (format_hash_table): The hash table itself.
        (free_format_data): Revise function prototype.
        (free_format_hash_table, init_format_hash,
        free_format_hash): New function prototypes.
        * io/unit.c (close_unit_1): Use free_format_hash_table.
        * io/transfer.c (st_read_done, st_write_done): Free format data if
        internal unit.
        * io/format.c (free_format_hash_table): New function that frees any
        memory allocated previously for cached format data.
        (reset_node): New static helper function to reset the format counters
        for a format node.
        (reset_fnode_counters): New static function recursively calls
reset_node
        to traverse the fnode tree.
        (format_hash): New simple hash function based on XOR, probabalistic,
        tosses collisions.
        (save_parsed_format): New static function to save the parsed format
        data to use again.
        (find_parsed_format): New static function searches the hash table
        looking for a match.
        (free_format_data): Revised to accept pointer to format data rather
than
        the dtp pointer so that the function can be used in more places.
        (format_lex): Editorial.
        (parse_format_list): Set flag used to determine of format data hashing
        is to be used.  Internal units are not persistent enough for this.
        (revert): Move to ne location in file.
        (parse_format): Use new functions to look for previously parsed
        format strings and use them rather than re-parse.  If not found, saves
        the parsed format data for later use.

2009-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/37754
        * io/transfer.c (formatted_transfer_scalar): Remove this function by
        factoring it into two new functions, one for read and one for write,
        eliminating all the conditionals for read or write mode.
        (formatted transfer_scalar_read): New function.
        (formatted transfer_scalar_write): New function.
        (formatted_transfer): Use new functions.

2009-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

        Backport from mainline:
        PR libfortran/25561 libfortran/37754
        * io/io.h (struct stream): Define new stream interface function
        pointers, and inline functions for accessing it.
        (struct fbuf): Use int instead of size_t, remove flushed element.
        (mem_alloc_w): New prototype.
        (mem_alloc_r): New prototype.
        (stream_at_bof): Remove prototype.
        (stream_at_eof): Remove prototype.
        (file_position): Remove prototype.
        (flush): Remove prototype.
        (stream_offset): Remove prototype.
        (unit_truncate): New prototype.
        (read_block_form): Change to return pointer, int* argument.
        (hit_eof): New prototype.
        (fbuf_init): Change prototype.
        (fbuf_reset): Change prototype.
        (fbuf_alloc): Change prototype.
        (fbuf_flush): Change prototype.
        (fbuf_seek): Change prototype.
        (fbuf_read): New prototype.
        (fbuf_getc_refill): New prototype.
        (fbuf_getc): New inline function.
        * io/fbuf.c (fbuf_init): Use int, get rid of flushed.
        (fbuf_debug): New function.
        (fbuf_reset): Flush, and return position offset.
        (fbuf_alloc): Simplify, don't flush, just realloc.
        (fbuf_flush): Make usable for read mode, salvage remaining bytes.
        (fbuf_seek): New whence argument.
        (fbuf_read): New function.
        (fbuf_getc_refill): New function.
        * io/file_pos.c (formatted_backspace): Use new stream interface.
        (unformatted_backspace): Likewise.
        (st_backspace): Make sure format buffer is reset, use new stream
        interface, use unit_truncate.
        (st_endfile): Likewise.
        (st_rewind): Likewise.
        * io/intrinsics.c: Use new stream interface.
        * io/list_read.c (push_char): Don't use u.p.scratch, use realloc
        to resize.
        (free_saved): Don't check u.p.scratch.
        (next_char): Use new stream interface, use fbuf_getc() for external
files.
        (finish_list_read): flush format buffer.
        (nml_query): Update to use modified interface:s
        * io/open.c (test_endfile): Use new stream interface.
        (edit_modes): Likewise.
        (new_unit): Likewise, set bytes_left to 1 for stream files.
        * io/read.c (read_l): Use new read_block_form interface.
        (read_utf8): Likewise.
        (read_utf8_char1): Likewise.
        (read_default_char1): Likewise.
        (read_utf8_char4): Likewise.
        (read_default_char4): Likewise.
        (read_a): Likewise.
        (read_a_char4): Likewise.
        (read_decimal): Likewise.
        (read_radix): Likewise.
        (read_f): Likewise.
        * io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
        usage of u.p.line_buffer.
        (read_block_form): Update interface to return pointer, use
        fbuf_read for direct access.
        (read_block_direct): Update to new stream interface.
        (write_block): Use mem_alloc_w for internal I/O.
        (write_buf): Update to new stream interface.
        (formatted_transfer_scalar): Don't use u.p.line_buffer, use
        fbuf_seek for external files.
        (us_read): Update to new stream interface.
        (us_write): Likewise.
        (data_transfer_init): Always check if we switch modes and flush.
        (skip_record): Use new stream interface, fix comparison.
        (next_record_r): Check for and reset u.p.at_eof, use new stream
        interface, use fbuf_getc for spacing.
        (write_us_marker): Update to new stream interface, don't inline.
        (next_record_w_unf): Likewise.
        (sset): New function.
        (next_record_w): Use new stream interface, use fbuf for printing
        newline.
        (next_record): Use new stream interface.
        (finalize_transfer): Remove sfree call, use new stream interface.
        (st_iolength_done): Don't use u.p.scratch.
        (st_read): Don't check for end of file.
        (st_read_done): Don't use u.p.scratch, use unit_truncate.
        (hit_eof): New function.
        * io/unit.c (init_units): Always init fbuf for formatted units.
        (update_position): Use new stream interface.
        (unit_truncate): New function.
        (finish_last_advance_record): Use fbuf to print newline.
        * io/unix.c: Remove unused SSIZE_MAX macro.
        (BUFFER_SIZE): Make static const variable rather than macro.
        (struct unix_stream): Remove dirty_offset, len, method,
        small_buffer. Order elements by decreasing size.
        (struct int_stream): Remove.
        (move_pos_offset): Remove usage of dirty_offset.
        (reset_stream): Remove.
        (do_read): Rename to raw_read, update to match new stream
        interface.
        (do_write): Rename to raw_write, update to new stream interface.
        (raw_seek): New function.
        (raw_tell): New function.
        (raw_truncate): New function.
        (raw_close): New function.
        (raw_flush): New function.
        (raw_init): New function.
        (fd_alloc): Remove.
        (fd_alloc_r_at): Remove.
        (fd_alloc_w_at): Remove.
        (fd_sfree): Remove.
        (fd_seek): Remove.
        (fd_truncate): Remove.
        (fd_sset): Remove.
        (fd_read): Remove.
        (fd_write): Remove.
        (fd_close): Remove.
        (fd_open): Remove.
        (fd_flush): Rename to buf_flush, update to new stream interface
        and unix_stream.
        (buf_read): New function.
        (buf_write): New function.
        (buf_seek): New function.
        (buf_tell): New function.
        (buf_truncate): New function.
        (buf_close): New function.
        (buf_init): New function.
        (mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
        (mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
        (mem_read): Change to match new stream interface.
        (mem_write): Likewise.
        (mem_seek): Likewise.
        (mem_tell): Likewise.
        (mem_truncate): Likewise.
        (mem_close): Likewise.
        (mem_flush): New function.
        (mem_sfree): Remove.
        (empty_internal_buffer): Cast to correct type.
        (open_internal): Use correct type, init function pointers.
        (fd_to_stream): Test whether to open file as buffered or raw.
        (output_stream): Remove mode set.
        (error_stream): Likewise.
        (flush_all_units_1): Use new stream interface.
        (flush_all_units): Likewise.
        (stream_at_bof): Remove.
        (stream_at_eof): Remove.
        (file_position): Remove.
        (file_length): Update logic to use stream interface.
        (flush): Remove.
        (stream_offset): Remove.
        * io/write.c (write_utf8_char4): Use int instead of size_t.
        (write_x): Extra safety check.
        (namelist_write_newline): Use new stream interface.


Modified:
    branches/gcc-4_4-branch/libgfortran/ChangeLog
    branches/gcc-4_4-branch/libgfortran/io/fbuf.c
    branches/gcc-4_4-branch/libgfortran/io/file_pos.c
    branches/gcc-4_4-branch/libgfortran/io/format.c
    branches/gcc-4_4-branch/libgfortran/io/intrinsics.c
    branches/gcc-4_4-branch/libgfortran/io/io.h
    branches/gcc-4_4-branch/libgfortran/io/list_read.c
    branches/gcc-4_4-branch/libgfortran/io/open.c
    branches/gcc-4_4-branch/libgfortran/io/read.c
    branches/gcc-4_4-branch/libgfortran/io/transfer.c
    branches/gcc-4_4-branch/libgfortran/io/unit.c
    branches/gcc-4_4-branch/libgfortran/io/unix.c
    branches/gcc-4_4-branch/libgfortran/io/write.c
    branches/gcc-4_4-branch/libgfortran/io/write_float.def
    branches/gcc-4_4-branch/libgfortran/libgfortran.h
    branches/gcc-4_4-branch/libgfortran/runtime/backtrace.c
    branches/gcc-4_4-branch/libgfortran/runtime/error.c


-- 


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


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

* [Bug fortran/39667] I/O possibly unneccesary truncations
  2009-04-06 18:16 [Bug fortran/39667] New: Possibly unneccesary truncations burnus at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2009-05-27  1:23 ` jvdelisle at gcc dot gnu dot org
@ 2009-08-25 22:18 ` jb at gcc dot gnu dot org
  2009-08-27 17:41 ` jb at gcc dot gnu dot org
  2009-08-28 14:48 ` jb at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: jb at gcc dot gnu dot org @ 2009-08-25 22:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jb at gcc dot gnu dot org  2009-08-25 22:17 -------
Updated patch fixing remaining fd_truncate issues with testsuite.


-- 

jb at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|http://gcc.gnu.org/ml/fortra|http://gcc.gnu.org/ml/gcc-
                   |n/2009-04/msg00199.html     |patches/2009-
                   |                            |08/msg01388.html


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


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

* [Bug fortran/39667] I/O possibly unneccesary truncations
  2009-04-06 18:16 [Bug fortran/39667] New: Possibly unneccesary truncations burnus at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2009-08-25 22:18 ` jb at gcc dot gnu dot org
@ 2009-08-27 17:41 ` jb at gcc dot gnu dot org
  2009-08-28 14:48 ` jb at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: jb at gcc dot gnu dot org @ 2009-08-27 17:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jb at gcc dot gnu dot org  2009-08-27 17:41 -------
Subject: Bug 39667

Author: jb
Date: Thu Aug 27 17:40:55 2009
New Revision: 151144

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151144
Log:
PR libfortran/39667 Fix testcases to not need fd_truncate.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/f2003_io_4.f03
    trunk/gcc/testsuite/gfortran.dg/fmt_cache_1.f
    trunk/gcc/testsuite/gfortran.dg/fmt_exhaust.f90
    trunk/gcc/testsuite/gfortran.dg/fmt_t_4.f90
    trunk/gcc/testsuite/gfortran.dg/fseek.f90
    trunk/gcc/testsuite/gfortran.dg/list_read_5.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_39.f90
    trunk/gcc/testsuite/gfortran.dg/namelist_56.f90
    trunk/gcc/testsuite/gfortran.dg/read_bad_advance.f90
    trunk/gcc/testsuite/gfortran.dg/read_repeat.f90
    trunk/gcc/testsuite/gfortran.dg/read_size_noadvance.f90
    trunk/gcc/testsuite/gfortran.dg/read_x_past.f


-- 


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


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

* [Bug fortran/39667] I/O possibly unneccesary truncations
  2009-04-06 18:16 [Bug fortran/39667] New: Possibly unneccesary truncations burnus at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2009-08-27 17:41 ` jb at gcc dot gnu dot org
@ 2009-08-28 14:48 ` jb at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: jb at gcc dot gnu dot org @ 2009-08-28 14:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jb at gcc dot gnu dot org  2009-08-28 14:48 -------
Closing as fixed


-- 

jb at gcc dot gnu dot org changed:

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


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


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

end of thread, other threads:[~2009-08-28 14:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-06 18:16 [Bug fortran/39667] New: Possibly unneccesary truncations burnus at gcc dot gnu dot org
2009-04-17 22:19 ` [Bug fortran/39667] I/O possibly " jb at gcc dot gnu dot org
2009-04-30 15:13 ` jb at gcc dot gnu dot org
2009-05-27  1:23 ` jvdelisle at gcc dot gnu dot org
2009-08-25 22:18 ` jb at gcc dot gnu dot org
2009-08-27 17:41 ` jb at gcc dot gnu dot org
2009-08-28 14:48 ` jb 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).