Age | Commit message (Collapse) | Author |
|
* close.c: Fix white space in pointer declarations and comment
formats where applicable.
* fbuf.c: Likewise.
* fbuf.h: Likewise.
* format.c: Likewise.
* inquire.c: Likewise.
* intrinsics.c: Likewise.
* list_read.c: Likewise.
* lock.c: Likewise.
* open.c: Likewise.
* read.c: Likewise.
* transfer.c: Likewise.
* unit.c: Likewise.
* unix.c: Likewise.
* unix.h: Likewise.
* write.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246842 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243994 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* intrinsics/access.c: Do not include <stdlib.h> header.
* intrinsics/chdir.c: Do not include <stdlib.h> header.
* intrinsics/chmod.c: Do not include <stdlib.h> header.
* intrinsics/date_and_time.c: Do not include <stdlib.h> header.
* intrinsics/env.c: Do not include <stdlib.h> header.
* intrinsics/execute_command_line.c: Do not include <stdlib.h> header.
* intrinsics/exit.c: Do not include <stdlib.h> header.
* intrinsics/getcwd.c: Do not include <stdlib.h> header.
* intrinsics/getlog.c: Do not include <stdlib.h> header.
* intrinsics/link.c: Do not include <stdlib.h> header.
* intrinsics/move_alloc.c: Do not include <stdlib.h> header.
* intrinsics/perror.c: Do not include <stdlib.h> header.
* intrinsics/random.c: Do not include <stdlib.h> header.
* intrinsics/rename.c: Do not include <stdlib.h> header.
* intrinsics/reshape_generic.c: Do not include <stdlib.h> header.
* intrinsics/stat.c: Do not include <stdlib.h> header.
* intrinsics/symlnk.c: Do not include <stdlib.h> header.
* intrinsics/system.c: Do not include <stdlib.h> header.
* intrinsics/unlink.c: Do not include <stdlib.h> header.
* io/fbuf.c: Do not include <stdlib.h> header.
* io/format.c: Do not include <stdlib.h> header.
* io/intrinsics.c: Do not include <stdlib.h> header.
* io/list_read.c: Do not include <stdlib.h> header.
* io/lock.c: Do not include <stdlib.h> header.
* io/open.c: Do not include <stdlib.h> header.
* io/read.c: Do not include <stdlib.h> header.
* io/transfer.c: Do not include <stdlib.h> header.
* io/unit.c: Do not include <stdlib.h> header.
* io/unix.c: Do not include <stdlib.h> header.
* io/write.c: Do not include <stdlib.h> header.
* m4/all.m4: Do not include <stdlib.h> header.
* m4/any.m4: Do not include <stdlib.h> header.
* m4/bessel.m4: Do not include <stdlib.h> header.
* m4/count.m4: Do not include <stdlib.h> header.
* m4/cshift0.m4: Do not include <stdlib.h> header.
* m4/cshift1.m4: Do not include <stdlib.h> header.
* m4/eoshift1.m4: Do not include <stdlib.h> header.
* m4/eoshift3.m4: Do not include <stdlib.h> header.
* m4/iall.m4: Do not include <stdlib.h> header.
* m4/iany.m4: Do not include <stdlib.h> header.
* m4/in_pack.m4: Do not include <stdlib.h> header.
* m4/in_unpack.m4: Do not include <stdlib.h> header.
* m4/iparity.m4: Do not include <stdlib.h> header.
* m4/matmul.m4: Do not include <stdlib.h> header.
* m4/matmull.m4: Do not include <stdlib.h> header.
* m4/maxloc0.m4: Do not include <stdlib.h> header.
* m4/maxloc1.m4: Do not include <stdlib.h> header.
* m4/maxval.m4: Do not include <stdlib.h> header.
* m4/minloc0.m4: Do not include <stdlib.h> header.
* m4/minloc1.m4: Do not include <stdlib.h> header.
* m4/minval.m4: Do not include <stdlib.h> header.
* m4/norm2.m4: Do not include <stdlib.h> header.
* m4/pack.m4: Do not include <stdlib.h> header.
* m4/parity.m4: Do not include <stdlib.h> header.
* m4/product.m4: Do not include <stdlib.h> header.
* m4/reshape.m4: Do not include <stdlib.h> header.
* m4/shape.m4: Do not include <stdlib.h> header.
* m4/spread.m4: Do not include <stdlib.h> header.
* m4/sum.m4: Do not include <stdlib.h> header.
* m4/unpack.m4: Do not include <stdlib.h> header.
* runtime/environ.c: Do not include <stdlib.h> header.
* runtime/error.c: Do not include <stdlib.h> header.
* runtime/memory.c: Do not include <stdlib.h> header.
* runtime/minimal.c: Do not include <stdlib.h> header.
* runtime/string.c: Do not include <stdlib.h> header.
* generated/all_l1.c: Regenerate.
* generated/all_l16.c: Regenerate.
* generated/all_l2.c: Regenerate.
* generated/all_l4.c: Regenerate.
* generated/all_l8.c: Regenerate.
* generated/any_l1.c: Regenerate.
* generated/any_l16.c: Regenerate.
* generated/any_l2.c: Regenerate.
* generated/any_l4.c: Regenerate.
* generated/any_l8.c: Regenerate.
* generated/bessel_r10.c: Regenerate.
* generated/bessel_r16.c: Regenerate.
* generated/bessel_r4.c: Regenerate.
* generated/bessel_r8.c: Regenerate.
* generated/count_16_l.c: Regenerate.
* generated/count_1_l.c: Regenerate.
* generated/count_2_l.c: Regenerate.
* generated/count_4_l.c: Regenerate.
* generated/count_8_l.c: Regenerate.
* generated/cshift0_c10.c: Regenerate.
* generated/cshift0_c16.c: Regenerate.
* generated/cshift0_c4.c: Regenerate.
* generated/cshift0_c8.c: Regenerate.
* generated/cshift0_i1.c: Regenerate.
* generated/cshift0_i16.c: Regenerate.
* generated/cshift0_i2.c: Regenerate.
* generated/cshift0_i4.c: Regenerate.
* generated/cshift0_i8.c: Regenerate.
* generated/cshift0_r10.c: Regenerate.
* generated/cshift0_r16.c: Regenerate.
* generated/cshift0_r4.c: Regenerate.
* generated/cshift0_r8.c: Regenerate.
* generated/cshift1_16.c: Regenerate.
* generated/cshift1_4.c: Regenerate.
* generated/cshift1_8.c: Regenerate.
* generated/eoshift1_16.c: Regenerate.
* generated/eoshift1_4.c: Regenerate.
* generated/eoshift1_8.c: Regenerate.
* generated/eoshift3_16.c: Regenerate.
* generated/eoshift3_4.c: Regenerate.
* generated/eoshift3_8.c: Regenerate.
* generated/iall_i1.c: Regenerate.
* generated/iall_i16.c: Regenerate.
* generated/iall_i2.c: Regenerate.
* generated/iall_i4.c: Regenerate.
* generated/iall_i8.c: Regenerate.
* generated/iany_i1.c: Regenerate.
* generated/iany_i16.c: Regenerate.
* generated/iany_i2.c: Regenerate.
* generated/iany_i4.c: Regenerate.
* generated/iany_i8.c: Regenerate.
* generated/in_pack_c10.c: Regenerate.
* generated/in_pack_c16.c: Regenerate.
* generated/in_pack_c4.c: Regenerate.
* generated/in_pack_c8.c: Regenerate.
* generated/in_pack_i1.c: Regenerate.
* generated/in_pack_i16.c: Regenerate.
* generated/in_pack_i2.c: Regenerate.
* generated/in_pack_i4.c: Regenerate.
* generated/in_pack_i8.c: Regenerate.
* generated/in_pack_r10.c: Regenerate.
* generated/in_pack_r16.c: Regenerate.
* generated/in_pack_r4.c: Regenerate.
* generated/in_pack_r8.c: Regenerate.
* generated/in_unpack_c10.c: Regenerate.
* generated/in_unpack_c16.c: Regenerate.
* generated/in_unpack_c4.c: Regenerate.
* generated/in_unpack_c8.c: Regenerate.
* generated/in_unpack_i1.c: Regenerate.
* generated/in_unpack_i16.c: Regenerate.
* generated/in_unpack_i2.c: Regenerate.
* generated/in_unpack_i4.c: Regenerate.
* generated/in_unpack_i8.c: Regenerate.
* generated/in_unpack_r10.c: Regenerate.
* generated/in_unpack_r16.c: Regenerate.
* generated/in_unpack_r4.c: Regenerate.
* generated/in_unpack_r8.c: Regenerate.
* generated/iparity_i1.c: Regenerate.
* generated/iparity_i16.c: Regenerate.
* generated/iparity_i2.c: Regenerate.
* generated/iparity_i4.c: Regenerate.
* generated/iparity_i8.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/matmul_i1.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
* generated/matmul_i2.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/matmul_l16.c: Regenerate.
* generated/matmul_l4.c: Regenerate.
* generated/matmul_l8.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/matmul_r4.c: Regenerate.
* generated/matmul_r8.c: Regenerate.
* generated/maxloc0_16_i1.c: Regenerate.
* generated/maxloc0_16_i16.c: Regenerate.
* generated/maxloc0_16_i2.c: Regenerate.
* generated/maxloc0_16_i4.c: Regenerate.
* generated/maxloc0_16_i8.c: Regenerate.
* generated/maxloc0_16_r10.c: Regenerate.
* generated/maxloc0_16_r16.c: Regenerate.
* generated/maxloc0_16_r4.c: Regenerate.
* generated/maxloc0_16_r8.c: Regenerate.
* generated/maxloc0_4_i1.c: Regenerate.
* generated/maxloc0_4_i16.c: Regenerate.
* generated/maxloc0_4_i2.c: Regenerate.
* generated/maxloc0_4_i4.c: Regenerate.
* generated/maxloc0_4_i8.c: Regenerate.
* generated/maxloc0_4_r10.c: Regenerate.
* generated/maxloc0_4_r16.c: Regenerate.
* generated/maxloc0_4_r4.c: Regenerate.
* generated/maxloc0_4_r8.c: Regenerate.
* generated/maxloc0_8_i1.c: Regenerate.
* generated/maxloc0_8_i16.c: Regenerate.
* generated/maxloc0_8_i2.c: Regenerate.
* generated/maxloc0_8_i4.c: Regenerate.
* generated/maxloc0_8_i8.c: Regenerate.
* generated/maxloc0_8_r10.c: Regenerate.
* generated/maxloc0_8_r16.c: Regenerate.
* generated/maxloc0_8_r4.c: Regenerate.
* generated/maxloc0_8_r8.c: Regenerate.
* generated/maxloc1_16_i1.c: Regenerate.
* generated/maxloc1_16_i16.c: Regenerate.
* generated/maxloc1_16_i2.c: Regenerate.
* generated/maxloc1_16_i4.c: Regenerate.
* generated/maxloc1_16_i8.c: Regenerate.
* generated/maxloc1_16_r10.c: Regenerate.
* generated/maxloc1_16_r16.c: Regenerate.
* generated/maxloc1_16_r4.c: Regenerate.
* generated/maxloc1_16_r8.c: Regenerate.
* generated/maxloc1_4_i1.c: Regenerate.
* generated/maxloc1_4_i16.c: Regenerate.
* generated/maxloc1_4_i2.c: Regenerate.
* generated/maxloc1_4_i4.c: Regenerate.
* generated/maxloc1_4_i8.c: Regenerate.
* generated/maxloc1_4_r10.c: Regenerate.
* generated/maxloc1_4_r16.c: Regenerate.
* generated/maxloc1_4_r4.c: Regenerate.
* generated/maxloc1_4_r8.c: Regenerate.
* generated/maxloc1_8_i1.c: Regenerate.
* generated/maxloc1_8_i16.c: Regenerate.
* generated/maxloc1_8_i2.c: Regenerate.
* generated/maxloc1_8_i4.c: Regenerate.
* generated/maxloc1_8_i8.c: Regenerate.
* generated/maxloc1_8_r10.c: Regenerate.
* generated/maxloc1_8_r16.c: Regenerate.
* generated/maxloc1_8_r4.c: Regenerate.
* generated/maxloc1_8_r8.c: Regenerate.
* generated/maxval_i1.c: Regenerate.
* generated/maxval_i16.c: Regenerate.
* generated/maxval_i2.c: Regenerate.
* generated/maxval_i4.c: Regenerate.
* generated/maxval_i8.c: Regenerate.
* generated/maxval_r10.c: Regenerate.
* generated/maxval_r16.c: Regenerate.
* generated/maxval_r4.c: Regenerate.
* generated/maxval_r8.c: Regenerate.
* generated/minloc0_16_i1.c: Regenerate.
* generated/minloc0_16_i16.c: Regenerate.
* generated/minloc0_16_i2.c: Regenerate.
* generated/minloc0_16_i4.c: Regenerate.
* generated/minloc0_16_i8.c: Regenerate.
* generated/minloc0_16_r10.c: Regenerate.
* generated/minloc0_16_r16.c: Regenerate.
* generated/minloc0_16_r4.c: Regenerate.
* generated/minloc0_16_r8.c: Regenerate.
* generated/minloc0_4_i1.c: Regenerate.
* generated/minloc0_4_i16.c: Regenerate.
* generated/minloc0_4_i2.c: Regenerate.
* generated/minloc0_4_i4.c: Regenerate.
* generated/minloc0_4_i8.c: Regenerate.
* generated/minloc0_4_r10.c: Regenerate.
* generated/minloc0_4_r16.c: Regenerate.
* generated/minloc0_4_r4.c: Regenerate.
* generated/minloc0_4_r8.c: Regenerate.
* generated/minloc0_8_i1.c: Regenerate.
* generated/minloc0_8_i16.c: Regenerate.
* generated/minloc0_8_i2.c: Regenerate.
* generated/minloc0_8_i4.c: Regenerate.
* generated/minloc0_8_i8.c: Regenerate.
* generated/minloc0_8_r10.c: Regenerate.
* generated/minloc0_8_r16.c: Regenerate.
* generated/minloc0_8_r4.c: Regenerate.
* generated/minloc0_8_r8.c: Regenerate.
* generated/minloc1_16_i1.c: Regenerate.
* generated/minloc1_16_i16.c: Regenerate.
* generated/minloc1_16_i2.c: Regenerate.
* generated/minloc1_16_i4.c: Regenerate.
* generated/minloc1_16_i8.c: Regenerate.
* generated/minloc1_16_r10.c: Regenerate.
* generated/minloc1_16_r16.c: Regenerate.
* generated/minloc1_16_r4.c: Regenerate.
* generated/minloc1_16_r8.c: Regenerate.
* generated/minloc1_4_i1.c: Regenerate.
* generated/minloc1_4_i16.c: Regenerate.
* generated/minloc1_4_i2.c: Regenerate.
* generated/minloc1_4_i4.c: Regenerate.
* generated/minloc1_4_i8.c: Regenerate.
* generated/minloc1_4_r10.c: Regenerate.
* generated/minloc1_4_r16.c: Regenerate.
* generated/minloc1_4_r4.c: Regenerate.
* generated/minloc1_4_r8.c: Regenerate.
* generated/minloc1_8_i1.c: Regenerate.
* generated/minloc1_8_i16.c: Regenerate.
* generated/minloc1_8_i2.c: Regenerate.
* generated/minloc1_8_i4.c: Regenerate.
* generated/minloc1_8_i8.c: Regenerate.
* generated/minloc1_8_r10.c: Regenerate.
* generated/minloc1_8_r16.c: Regenerate.
* generated/minloc1_8_r4.c: Regenerate.
* generated/minloc1_8_r8.c: Regenerate.
* generated/minval_i1.c: Regenerate.
* generated/minval_i16.c: Regenerate.
* generated/minval_i2.c: Regenerate.
* generated/minval_i4.c: Regenerate.
* generated/minval_i8.c: Regenerate.
* generated/minval_r10.c: Regenerate.
* generated/minval_r16.c: Regenerate.
* generated/minval_r4.c: Regenerate.
* generated/minval_r8.c: Regenerate.
* generated/norm2_r10.c: Regenerate.
* generated/norm2_r16.c: Regenerate.
* generated/norm2_r4.c: Regenerate.
* generated/norm2_r8.c: Regenerate.
* generated/pack_c10.c: Regenerate.
* generated/pack_c16.c: Regenerate.
* generated/pack_c4.c: Regenerate.
* generated/pack_c8.c: Regenerate.
* generated/pack_i1.c: Regenerate.
* generated/pack_i16.c: Regenerate.
* generated/pack_i2.c: Regenerate.
* generated/pack_i4.c: Regenerate.
* generated/pack_i8.c: Regenerate.
* generated/pack_r10.c: Regenerate.
* generated/pack_r16.c: Regenerate.
* generated/pack_r4.c: Regenerate.
* generated/pack_r8.c: Regenerate.
* generated/parity_l1.c: Regenerate.
* generated/parity_l16.c: Regenerate.
* generated/parity_l2.c: Regenerate.
* generated/parity_l4.c: Regenerate.
* generated/parity_l8.c: Regenerate.
* generated/product_c10.c: Regenerate.
* generated/product_c16.c: Regenerate.
* generated/product_c4.c: Regenerate.
* generated/product_c8.c: Regenerate.
* generated/product_i1.c: Regenerate.
* generated/product_i16.c: Regenerate.
* generated/product_i2.c: Regenerate.
* generated/product_i4.c: Regenerate.
* generated/product_i8.c: Regenerate.
* generated/product_r10.c: Regenerate.
* generated/product_r16.c: Regenerate.
* generated/product_r4.c: Regenerate.
* generated/product_r8.c: Regenerate.
* generated/reshape_c10.c: Regenerate.
* generated/reshape_c16.c: Regenerate.
* generated/reshape_c4.c: Regenerate.
* generated/reshape_c8.c: Regenerate.
* generated/reshape_i16.c: Regenerate.
* generated/reshape_i4.c: Regenerate.
* generated/reshape_i8.c: Regenerate.
* generated/reshape_r10.c: Regenerate.
* generated/reshape_r16.c: Regenerate.
* generated/reshape_r4.c: Regenerate.
* generated/reshape_r8.c: Regenerate.
* generated/shape_i1.c: Regenerate.
* generated/shape_i16.c: Regenerate.
* generated/shape_i2.c: Regenerate.
* generated/shape_i4.c: Regenerate.
* generated/shape_i8.c: Regenerate.
* generated/spread_c10.c: Regenerate.
* generated/spread_c16.c: Regenerate.
* generated/spread_c4.c: Regenerate.
* generated/spread_c8.c: Regenerate.
* generated/spread_i1.c: Regenerate.
* generated/spread_i16.c: Regenerate.
* generated/spread_i2.c: Regenerate.
* generated/spread_i4.c: Regenerate.
* generated/spread_i8.c: Regenerate.
* generated/spread_r10.c: Regenerate.
* generated/spread_r16.c: Regenerate.
* generated/spread_r4.c: Regenerate.
* generated/spread_r8.c: Regenerate.
* generated/sum_c10.c: Regenerate.
* generated/sum_c16.c: Regenerate.
* generated/sum_c4.c: Regenerate.
* generated/sum_c8.c: Regenerate.
* generated/sum_i1.c: Regenerate.
* generated/sum_i16.c: Regenerate.
* generated/sum_i2.c: Regenerate.
* generated/sum_i4.c: Regenerate.
* generated/sum_i8.c: Regenerate.
* generated/sum_r10.c: Regenerate.
* generated/sum_r16.c: Regenerate.
* generated/sum_r4.c: Regenerate.
* generated/sum_r8.c: Regenerate.
* generated/unpack_c10.c: Regenerate.
* generated/unpack_c16.c: Regenerate.
* generated/unpack_c4.c: Regenerate.
* generated/unpack_c8.c: Regenerate.
* generated/unpack_i1.c: Regenerate.
* generated/unpack_i16.c: Regenerate.
* generated/unpack_i2.c: Regenerate.
* generated/unpack_i4.c: Regenerate.
* generated/unpack_i8.c: Regenerate.
* generated/unpack_r10.c: Regenerate.
* generated/unpack_r16.c: Regenerate.
* generated/unpack_r4.c: Regenerate.
* generated/unpack_r8.c: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243846 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
gcc/fortran/
* gfortran.texi: Document.
* frontend-passes.c (gfc_code_walker): Add SHARE and CARRIAGECONTROL.
* io.c (gfc_free_open, gfc_resolve_open, gfc_match_open): Ditto.
* gfortran.h (gfc_open): Add SHARE, CARRIAGECONTROL, and READONLY.
* io.c (io_tag, match_open_element): Ditto.
* ioparm.def: Ditto.
* trans-io.c (gfc_trans_open): Ditto.
* io.c (match_dec_etag, match_dec_ftag): New functions.
libgfortran/io/
* libgfortran.h (IOPARM_OPEN_HAS_READONLY, IOPARM_OPEN_HAS_SHARE,
IOPARM_OPEN_HAS_CC): New for READONLY, SHARE, and CARRIAGECONTROL.
* close.c (st_close): Support READONLY.
* io.h (st_parameter_open, unit_flags): Support SHARE, CARRIAGECONTROL,
and READONLY.
* open.c (st_open): Ditto.
* transfer.c (data_transfer_init): Ditto.
* io.h (st_parameter_dt): New member 'cc' for CARRIAGECONTROL.
* write.c (write_check_cc, write_cc): New functions for CARRIAGECONTROL.
* transfer.c (next_record_cc): Ditto.
* file_pos.c (st_endfile): Support SHARE and CARRIAGECONTROL.
* io.h (st_parameter_inquire): Ditto.
* open.c (edit_modes, new_unit): Ditto.
* inquire.c (inquire_via_unit, inquire_via_filename): Ditto.
* io.h (unit_share, unit_cc, cc_fortran, IOPARM_INQUIRE_HAS_SHARE,
IOPARM_INQUIRE_HAS_CC): New for SHARE and CARRIAGECONTROL.
* open.c (share_opt, cc_opt): Ditto.
* read.c (read_x): Support CARRIAGECONTROL.
* transfer.c (read_sf, next_record_r, next_record_w): Ditto.
* write.c (list_formatted_write_scalar, write_a): Ditto.
* unix.h (close_share): New prototype.
* unix.c (open_share, close_share): New functions to handle SHARE.
* unix.c (open_external): Handle READONLY. Call open_share.
* close.c (st_close): Call close_share.
gcc/testsuite/
* dec_io_1.f90: New test.
* dec_io_2.f90: New test.
* dec_io_3.f90: New test.
* dec_io_4.f90: New test.
* dec_io_5.f90: New test.
* dec_io_6.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241550 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Currently GFortran newer reuses unit numbers allocated with NEWUNIT=,
instead having a simple counter that is decremented each time such a
unit is opened. For a long running program which repeatedly opens
files with NEWUNIT= and closes them, the counter can wrap around and
cause an abort. This patch replaces the counter with an allocator
that keeps track of which units numbers are allocated, and can reuse
them once they have been deallocated. Since operating systems tend to
limit the number of simultaneous open files for a process to a
relatively modest number, a relatively simple approach with a linear
scan through an array suffices. Though as a small optimization there
is a low water indicator keeping track of the index for which all unit
numbers below are already allocated. This linear scan also ensures
that we always allocate the smallest available unit number.
2016-10-15 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/48587
* io/io.h (get_unique_unit_number): Remove prototype.
(newunit_alloc): New prototype.
* io/open.c (st_open): Call newunit_alloc.
* io/unit.c (newunits,newunit_size,newunit_lwi): New static
variables.
(GFC_FIRST_NEWUNIT): Rename to NEWUNIT_START.
(next_available_newunit): Remove variable.
(get_unit): Call newunit_alloc, don't try to create negative
external unit.
(close_unit_1): Call newunit_free.
(close_units): Free newunits array.
(get_unique_number): Remove function.
(newunit_alloc): New function.
(newunit_free): New function.
* io/transfer.c (data_transfer_init): Check for invalid unit
number.
testsuite ChangeLog:
2016-10-15 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/48587
* gfortran.dg/negative_unit2.f90: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241199 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libgfortran/48298
* io/inquire.c (inquire_via_unit): Adjust error check for the
two possible internal unit KINDs.
* io/io.h: Adjust defines for is_internal_unit and
is_char4_unit. (gfc_unit): Add internal unit data to structure.
(get_internal_unit): Change declaration to set_internal_unit.
(free_internal_unit): Change name to stash_internal_unit_number.
(get_unique_unit_number): Adjust parameter argument.
Define IOPARM_DT_HAS_UDTIO. (gfc_saved_unit): New structure.
* io/list_read.c (next_char_internal): Use is_char4_unit.
* io/open.c (st_open): Adjust call to get_unique_unit_number.
* io/transfer.c (write_block): Use is_char4_unit.
(data_transfer_init): Update check for unit numbers.
(st_read_done): Free the various allocated memories used for the
internal units and stash the negative unit number and pointer to unit
structure to allow reuse. (st_write_done): Likewise stash the freed
unit.
* io/unit.c: Create a fixed size buffer of 16 gfc_saved_unit's to use
as a stack to save newunit unit numbers and unit structure for reuse.
(get_external_unit): Change name to get_gfc_unit to better
reflect what it does. (find_unit): Change call to get_gfc_unit.
(find_or_create_unit): Likewise. (get_internal_unit): Change
name to set_internal_unit. Move internal unit from the dtp
structure to the gfc_unit structure so that it can be passed to
child I/O statements through the UNIT.
(free_internal_unit): Change name to stash_internal_unit_number.
Push the common.unit number onto the newunit stack, saving it
for possible reuse later. (get_unit): Set the internal unit
KIND. Use get_unique_unit_number to get a negative unit number
for the internal unit. Use get_gfc_unit to get the unit structure
and use set_internal_unit to initialize it.
(init_units): Initialize the newunit stack.
(get_unique_unit_number): Check the stack for an available unit
number and use it. If none there get the next most negative
number. (close_units): Free any unit structures pointed to from the save
stack.
2016-09-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/48298
* gfortran.h (gfc_dt): Add *udtio.
* ioparm.def: Add bit IOPARM_dt_f2003 to align with library use of bit
25. Add IOPARM_dt_dtio bit to common flags.
* resolve.c (resolve_transfer): Set dt->udtio to expression.
* io.c (gfc_match_inquire): Adjust error message for internal
unit KIND.
* libgfortran.h: Adjust defines for GFC_INTERNAL_UNIT4,
GFC_INTERNAL_UNIT, and GFC_INVALID_UNIT.
* trans-io.c (build_dt): Set common_unit to reflect the KIND of
the internal unit. Set mask bit for presence of dt->udtio.
2016-09-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/48298
* gfortran.dg/negative_unit_check.f90: Update test.
* gfortran.dg/dtio_14.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240456 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232055 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
testsuite:
2015-09-04 Janne Blomqvist <jb@gcc.gnu.org>
* gfortran.dg/read_dir.f90: Delete empty directory when closing
rather than calling rmdir, cleanup if open fails.
libgfortran:
2015-09-04 Janne Blomqvist <jb@gcc.gnu.org>
* io/unix.h (delete_file): Remove prototype.
* io/unix.c (delete_file): Remove function.
* io/close.c (st_close): Replace delete_file and unlink with
remove.
* io/open.c (already_open): Replace unlink with remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227472 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
gcc/fortran ChangeLog:
2015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/65200
* gfortran.texi: Document behavior when opening files without
explicit ACTION= specifier.
libgfortran ChangeLog:
2015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/65200
* io/open.c (new_unit): Use gf_strerror rather than hardcoding
error messages for different errno values.
* io/unix.c (regular_file2): Handle EPERM in addition to EACCES.
gcc/testsuite ChangeLog:
2015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/65200
* gfortran.dg/open_errors.f90: Update checks for iomsg string.
* gfortran.dg/open_new_segv.f90: Fix error message pattern.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221361 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219188 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
testsuite ChangeLog:
2014-09-17 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/62768
* gfortran.dg/filename_null.f90: New test.
libgfortran ChangeLog:
2014-09-17 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/62768
* io/io.h (gfc_unit): Store C string for the filename.
* io/close.c (st_close): Use gfc_unit.filename.
* io/inquire.c (inquire_via_unit): Likewise.
* io/open.c (new_unit): Likewise.
(already_open): Likewise, unlink file before freeing filename.
* io/unit.c (init_units): Likewise.
(close_unit_1): Likewise.
(filename_from_unit): Likewise.
* io/unix.c (compare_file_filename): Likewise.
(find_file0): Likewise.
(delete_file): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215307 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210738 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/60148
* io/inquire.c (inquire_via_unit): In the case of
DELIM_UNSPECIFIED set inquire return string to "NONE".
* io/list_read.c (read_character): In the case of DELIM_NONE and
namelists, complete the character read using the namelist
variable length.
* io/open.c (new_unit): Don't set delim status to none if not
specified so that DELIM_UNSPECIFIED can be used later.
* io/transfer.c (data_transfer_init): For namelist I/O, if the
unit delim status is unspecified set the current status to quote.
Otherwise, set current status to the unit status.
* io/unit.c (get_internel_unit, init_unit): Remember to set
flags_delim initially to DELIM_UNSPECIFIED so defaults come out
correctly.
* io/write.c (write_character): Add a new function argument
"mode" to signify that raw output is to be used vs output with
delimiters. If the mode is set to DELIM (1) proceed with
delimiters. (list_formatted_write_scalar): Write the separator
only if a delimiter was previously specified. Update the call to
write_character with the mode argument given.
(namelist_write_newline): Use the mode argument. (nml_write_obj):
Use the mode argument. Remove use of tmp_delim. Write the
semi-colon or comma correctly only when needed with using
delimiters. Cleanup whitespace.
(namelist_write): If delim is not specified in namelist I/O,
default to using quotes. Get rid of the tmp_delim variable and
use the new mode argument in write_character.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208302 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206296 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/59419
* io/file_pos.c (st_rewind): Do proper return after
generate_error.
* io/open.c (edit_modes): Move action code inside block that
checks for library ok. (new_unit): Do cleanup after error.
(st_open): Do proper return after error.
* io/transfer.c (data_transfer_init): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206039 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* runtime/pause.c: Test HAVE_UNISTD_H.
* runtime/stop.c: Same.
* io/open.c: Same.
* io/unix.c: Same.
* io/read.c (si_max): Protect declaration of value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198603 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/48618
* io/open.c (st_open): Raise error for unit number < 0 only if
unit number does not exist already.
2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de>
PR libfortran/48618
* gfortran.dg/open_negative_unit_1.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196805 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
2013-02-21 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/30162
* io/open.c (test_endfile): Call stell only if size != 0.
* io/unix.c (raw_tell): Revert r194679.
(raw_size): Return size field only for regular files, otherwise 0.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196210 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195167 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/48960
* io/open.c (st_parameter_open): Assign newunit number to user
variable only if the the associated open statement is successful.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194724 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
2012-03-26 Janne Blomqvist <jb@gcc.gnu.org>
* runtime/memory.c (get_mem): Rename to xmalloc, check for zero
size.
(internal_malloc_size): Remove.
* libgfortran.h (get_mem): Rename to xmalloc.
(internal_malloc_size): Remove prototype.
* Makefile.am (i_iall_c): Fix dependency.
(i_iany_c): Likewise.
(i_iparity_c): Likewise.
(i_norm2_c): Likewise.
(i_parity_c): Likewise.
* Makefile.in: Regenerated.
* m4/parity.m4: Fix typo in comment.
* generated/all_l1.c: Regenerated.
* generated/all_l16.c: Regenerated.
* generated/all_l2.c: Regenerated.
* generated/all_l4.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/any_l1.c: Regenerated.
* generated/any_l16.c: Regenerated.
* generated/any_l2.c: Regenerated.
* generated/any_l4.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/bessel_r10.c: Regenerated.
* generated/bessel_r16.c: Regenerated.
* generated/bessel_r4.c: Regenerated.
* generated/bessel_r8.c: Regenerated.
* generated/count_16_l.c: Regenerated.
* generated/count_1_l.c: Regenerated.
* generated/count_2_l.c: Regenerated.
* generated/count_4_l.c: Regenerated.
* generated/count_8_l.c: Regenerated.
* generated/cshift1_16.c: Regenerated.
* generated/cshift1_4.c: Regenerated.
* generated/cshift1_8.c: Regenerated.
* generated/eoshift1_16.c: Regenerated.
* generated/eoshift1_4.c: Regenerated.
* generated/eoshift1_8.c: Regenerated.
* generated/eoshift3_16.c: Regenerated.
* generated/eoshift3_4.c: Regenerated.
* generated/eoshift3_8.c: Regenerated.
* generated/iall_i1.c: Regenerated.
* generated/iall_i16.c: Regenerated.
* generated/iall_i2.c: Regenerated.
* generated/iall_i4.c: Regenerated.
* generated/iall_i8.c: Regenerated.
* generated/iany_i1.c: Regenerated.
* generated/iany_i16.c: Regenerated.
* generated/iany_i2.c: Regenerated.
* generated/iany_i4.c: Regenerated.
* generated/iany_i8.c: Regenerated.
* generated/in_pack_c10.c: Regenerated.
* generated/in_pack_c16.c: Regenerated.
* generated/in_pack_c4.c: Regenerated.
* generated/in_pack_c8.c: Regenerated.
* generated/in_pack_i1.c: Regenerated.
* generated/in_pack_i16.c: Regenerated.
* generated/in_pack_i2.c: Regenerated.
* generated/in_pack_i4.c: Regenerated.
* generated/in_pack_i8.c: Regenerated.
* generated/in_pack_r10.c: Regenerated.
* generated/in_pack_r16.c: Regenerated.
* generated/in_pack_r4.c: Regenerated.
* generated/in_pack_r8.c: Regenerated.
* generated/iparity_i1.c: Regenerated.
* generated/iparity_i16.c: Regenerated.
* generated/iparity_i2.c: Regenerated.
* generated/iparity_i4.c: Regenerated.
* generated/iparity_i8.c: Regenerated.
* generated/matmul_c10.c: Regenerated.
* generated/matmul_c16.c: Regenerated.
* generated/matmul_c4.c: Regenerated.
* generated/matmul_c8.c: Regenerated.
* generated/matmul_i1.c: Regenerated.
* generated/matmul_i16.c: Regenerated.
* generated/matmul_i2.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_l16.c: Regenerated.
* generated/matmul_l4.c: Regenerated.
* generated/matmul_l8.c: Regenerated.
* generated/matmul_r10.c: Regenerated.
* generated/matmul_r16.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
* generated/maxloc0_16_i1.c: Regenerated.
* generated/maxloc0_16_i16.c: Regenerated.
* generated/maxloc0_16_i2.c: Regenerated.
* generated/maxloc0_16_i4.c: Regenerated.
* generated/maxloc0_16_i8.c: Regenerated.
* generated/maxloc0_16_r10.c: Regenerated.
* generated/maxloc0_16_r16.c: Regenerated.
* generated/maxloc0_16_r4.c: Regenerated.
* generated/maxloc0_16_r8.c: Regenerated.
* generated/maxloc0_4_i1.c: Regenerated.
* generated/maxloc0_4_i16.c: Regenerated.
* generated/maxloc0_4_i2.c: Regenerated.
* generated/maxloc0_4_i4.c: Regenerated.
* generated/maxloc0_4_i8.c: Regenerated.
* generated/maxloc0_4_r10.c: Regenerated.
* generated/maxloc0_4_r16.c: Regenerated.
* generated/maxloc0_4_r4.c: Regenerated.
* generated/maxloc0_4_r8.c: Regenerated.
* generated/maxloc0_8_i1.c: Regenerated.
* generated/maxloc0_8_i16.c: Regenerated.
* generated/maxloc0_8_i2.c: Regenerated.
* generated/maxloc0_8_i4.c: Regenerated.
* generated/maxloc0_8_i8.c: Regenerated.
* generated/maxloc0_8_r10.c: Regenerated.
* generated/maxloc0_8_r16.c: Regenerated.
* generated/maxloc0_8_r4.c: Regenerated.
* generated/maxloc0_8_r8.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc0_16_i1.c: Regenerated.
* generated/minloc0_16_i16.c: Regenerated.
* generated/minloc0_16_i2.c: Regenerated.
* generated/minloc0_16_i4.c: Regenerated.
* generated/minloc0_16_i8.c: Regenerated.
* generated/minloc0_16_r10.c: Regenerated.
* generated/minloc0_16_r16.c: Regenerated.
* generated/minloc0_16_r4.c: Regenerated.
* generated/minloc0_16_r8.c: Regenerated.
* generated/minloc0_4_i1.c: Regenerated.
* generated/minloc0_4_i16.c: Regenerated.
* generated/minloc0_4_i2.c: Regenerated.
* generated/minloc0_4_i4.c: Regenerated.
* generated/minloc0_4_i8.c: Regenerated.
* generated/minloc0_4_r10.c: Regenerated.
* generated/minloc0_4_r16.c: Regenerated.
* generated/minloc0_4_r4.c: Regenerated.
* generated/minloc0_4_r8.c: Regenerated.
* generated/minloc0_8_i1.c: Regenerated.
* generated/minloc0_8_i16.c: Regenerated.
* generated/minloc0_8_i2.c: Regenerated.
* generated/minloc0_8_i4.c: Regenerated.
* generated/minloc0_8_i8.c: Regenerated.
* generated/minloc0_8_r10.c: Regenerated.
* generated/minloc0_8_r16.c: Regenerated.
* generated/minloc0_8_r4.c: Regenerated.
* generated/minloc0_8_r8.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/norm2_r10.c: Regenerated.
* generated/norm2_r16.c: Regenerated.
* generated/norm2_r4.c: Regenerated.
* generated/norm2_r8.c: Regenerated.
* generated/pack_c10.c: Regenerated.
* generated/pack_c16.c: Regenerated.
* generated/pack_c4.c: Regenerated.
* generated/pack_c8.c: Regenerated.
* generated/pack_i1.c: Regenerated.
* generated/pack_i16.c: Regenerated.
* generated/pack_i2.c: Regenerated.
* generated/pack_i4.c: Regenerated.
* generated/pack_i8.c: Regenerated.
* generated/pack_r10.c: Regenerated.
* generated/pack_r16.c: Regenerated.
* generated/pack_r4.c: Regenerated.
* generated/pack_r8.c: Regenerated.
* generated/parity_l1.c: Regenerated.
* generated/parity_l16.c: Regenerated.
* generated/parity_l2.c: Regenerated.
* generated/parity_l4.c: Regenerated.
* generated/parity_l8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/reshape_c10.c: Regenerated.
* generated/reshape_c16.c: Regenerated.
* generated/reshape_c4.c: Regenerated.
* generated/reshape_c8.c: Regenerated.
* generated/reshape_i16.c: Regenerated.
* generated/reshape_i4.c: Regenerated.
* generated/reshape_i8.c: Regenerated.
* generated/reshape_r10.c: Regenerated.
* generated/reshape_r16.c: Regenerated.
* generated/reshape_r4.c: Regenerated.
* generated/reshape_r8.c: Regenerated.
* generated/shape_i16.c: Regenerated.
* generated/shape_i4.c: Regenerated.
* generated/shape_i8.c: Regenerated.
* generated/spread_c10.c: Regenerated.
* generated/spread_c16.c: Regenerated.
* generated/spread_c4.c: Regenerated.
* generated/spread_c8.c: Regenerated.
* generated/spread_i1.c: Regenerated.
* generated/spread_i16.c: Regenerated.
* generated/spread_i2.c: Regenerated.
* generated/spread_i4.c: Regenerated.
* generated/spread_i8.c: Regenerated.
* generated/spread_r10.c: Regenerated.
* generated/spread_r16.c: Regenerated.
* generated/spread_r4.c: Regenerated.
* generated/spread_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
* generated/transpose_c10.c: Regenerated.
* generated/transpose_c16.c: Regenerated.
* generated/transpose_c4.c: Regenerated.
* generated/transpose_c8.c: Regenerated.
* generated/transpose_i16.c: Regenerated.
* generated/transpose_i4.c: Regenerated.
* generated/transpose_i8.c: Regenerated.
* generated/transpose_r10.c: Regenerated.
* generated/transpose_r16.c: Regenerated.
* generated/transpose_r4.c: Regenerated.
* generated/transpose_r8.c: Regenerated.
* generated/unpack_c10.c: Regenerated.
* generated/unpack_c16.c: Regenerated.
* generated/unpack_c4.c: Regenerated.
* generated/unpack_c8.c: Regenerated.
* generated/unpack_i1.c: Regenerated.
* generated/unpack_i16.c: Regenerated.
* generated/unpack_i2.c: Regenerated.
* generated/unpack_i4.c: Regenerated.
* generated/unpack_i8.c: Regenerated.
* generated/unpack_r10.c: Regenerated.
* generated/unpack_r16.c: Regenerated.
* generated/unpack_r4.c: Regenerated.
* generated/unpack_r8.c: Regenerated.
* intrinsics/cshift0.c: Use xmalloc.
* intrinsics/ctime.c: Likewise.
* intrinsics/date_and_time.c: Likewise.
* intrinsics/eoshift0.c: Likewise.
* intrinsics/eoshift2.c: Likewise.
* intrinsics/getlog.c: Likewise.
* intrinsics/pack_generic.c: Likewise.
* intrinsics/reshape_generic.c: Likewise.
* intrinsics/spread_generic.c: Likewise.
* intrinsics/string_intrinsics_inc.c: Likewise.
* intrinsics/transpose_generic.c: Likewise.
* intrinsics/unpack_generic.c: Likewise.
* io/fbuf.c: Likewise.
* io/format.c: Likewise.
* io/intrinsics.c: Likewise.
* io/list_read.c: Likewise.
* io/open.c: Likewise.
* io/transfer.c: Likewise.
* io/unit.c: Likewise.
* io/unix.c: Likewise.
* io/write.c: Likewise.
* m4/bessel.m4: Likewise.
* m4/cshift1.m4: Likewise.
* m4/eoshift1.m4: Likewise.
* m4/eoshift3.m4: Likewise.
* m4/iforeach.m4: Likewise.
* m4/ifunction.m4: Likewise.
* m4/ifunction_logical.m4: Likewise.
* m4/in_pack.m4: Likewise.
* m4/matmul.m4: Likewise.
* m4/matmull.m4: Likewise.
* m4/pack.m4: Likewise.
* m4/reshape.m4: Likewise.
* m4/shape.m4: Likewise.
* m4/spread.m4: Likewise.
* m4/transpose.m4: Likewise.
* m4/unpack.m4: Likewise.
* runtime/convert_char.c: Likewise.
* runtime/environ.c: Likewise.
* runtime/in_pack_generic.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185806 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
libgfortran ChangeLog:
2011-11-07 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/45723
* io/open.c (new_unit): Don't check file size before attempting
seek.
testsuite ChangeLog:
2011-11-07 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/45723
* gfortran.dg/open_dev_null.F90: Remove testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181085 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
2011-10-31 Janne Blomqvist <jb@gcc.gnu.org>
* io/unix.h (struct stream): Add size function pointer.
(ssize): New inline function.
(file_length): Remove prototype.
* io/unix.c (raw_size): New function.
(raw_init): Initialize st.size pointer.
(buf_size): New function.
(buf_init): Initialize st.size pointer.
(open_internal): Likewise.
(open_internal4): Likewise.
(file_length): Remove function.
* io/file_pos.c (st_rewind): Use ssize instead of file_length.
* io/open.c (test_endfile): Likewise.
* io/transfer.c (data_transfer_init): Likewise.
(next_record_r): Likewise.
(next_record_w): Likewise.
* io/unit.c (update_position): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180702 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Change "if (E) free (E);" to "free (E);" everywhere except in the
libgo/, intl/, zlib/ and classpath/ directories.
Also transform equivalent variants like
"if (E != NULL) free (E);" and allow an extra cast on the
argument to free. Otherwise, the tested and freed "E"
expressions must be identical, modulo white space.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172785 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172590 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/45723
* io/open.c (new_unit): On POSITION_APPEND don't seek if file length is
zero.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164507 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159160 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153825 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/40008
* libgfortran.h: Define IOPARM_OPEN_HAS_NEWUNIT.
* io/open.c (st_open): Don't error on negative unit number if NEWUNIT
was specified. If NEWUNIT is specified, call new function to get the
unique unit number and assign it.
* io/io.h (st_parameter_open): Add pointer to newunit. Add prototype for
next_available_newunit. Add prototype for new function,
get_unique_unit_number.
* io/unit.c: Declare next_available_newunit. Define the first newunit
number. (init_units): Initialize next_available_unit.
(get_unique_unit_number): New function. Fix whitespace and comments.
* io/transfer.c (data_transfer_init): Update error message to not be
specific to OPEN statements.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148253 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145841 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145761 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
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-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
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-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
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-04-05 Janne Blomqvist <jb@gcc.gnu.org>
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145571 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/35863
* libgfortran.h: Change l8_to_l4_offset to big_endian and add endian_off.
* runtime/main.c: Fix error in comment. Change l8_to_l4_offset to
big_endian. (determine_endianness): Add endian_off and set its value
according to big_endian.
* gfortran.map: Add symbol for new _gfortran_transfer_character_wide.
* io/io.h: Add prototype declarations for new functions.
* io/list_read.c (list_formatted_read_scalar): Modify to handle kind=4.
(list_formatted_read): Calculate stride based on kind for character type
and use it when calling list_formatted_read_scalar.
* io/inquire.c (inquire_via_unit): Change l8_to_l4_offset to big_endian.
* io/open.c (st_open): Change l8_to_l4_offset to big_endian.
* io/read.c (read_a_char4): New function to handle formatted read.
* io/write.c: Define GFC_CHAR4(x) to improve readability of code.
(write_a_char4): New function to handle formatted write.
(write_character): Modify to accept the kind parameter and adjust for
endianess of the machine. (list_formatted_write): Calculate the stride
resulting from the kind and adjust the list_formatted_write_scalar call
accordingly. (nml_write_obj): Adjust calls to write_character.
(namelist_write): Likewise.
* io/transfer.c (formatted_transfer_scaler): Rename 'len' argument to
'kind' argument to better describe what it is. Add calls to new
functions for kind == 4. (formatted_transfer): Modify to handle the case
of type character and kind equals 4 to pass in the kind to the transfer
routines. (transfer_character_wide): Add this new function.
(transfer_array): Don't set kind to the character string length. Adjust
strides bases on character kind.
(unformatted_read): Adjust size based on kind for character types.
(unformatted_write): Likewise. (data_transfer_init): Change
l8_to_l4_offset to big_endian.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136763 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
2008-05-15 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/25561
* io/io.h (struct fbuf): Change pointer to position offset.
* io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
changes.
(fbuf_reset): ptr=>pos changes.
(fbuf_alloc): If the request doesn't fit, don't waste memory by
keeping flushed bytes. ptr=>pos changes.
(fbuf_flush): ptr=>pos changes.
(fbuf_seek): Don't seek past the left tab limit, don't update active
byte count.
* io/open.c (new_unit): If RECL has been specified, used that as
initial buffer size.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135433 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
2008-05-16 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/35632
* io/open.c (new_unit): Set stream position to correct value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135432 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
2008-05-15 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/25561
* Makefile.am: Add fbuf.c to gfor_io_src.
* Makefile.in: Regenerate.
* io/io.h (read_block): Remove.
(struct stream): Remove alloc_r_at function pointer.
(salloc_r): Remove.
(salloc_r_at): Remove.
(salloc_w_at): Remove.
(salloc_w): Remove offset argument.
(struct fbuf): New struct for format buffer.
(struct gfc_unit): Add fbuf.
(read_block_form): New prototype.
(fbuf_init): Likewise.
(fbuf_destroy): Likewise.
(fbuf_reset): Likewise.
(fbuf_alloc): Likewise.
(fbuf_flush): Likewise.
(fbuf_seek): Likewise.
* io/file_pos.c (formatted_backspace): Change to use sread.
(unformatted_backspace): Likewise.
(st_backspace): Flush format buffer.
(st_rewind): Likewise.
* io/list_read.c (next_char): Likewise.
(nml_query): Tidying, flush format buffer.
* io/open.c (new_unit): Init format buffer.
* io/read.c (read_l): Change to use read_block_form.
(read_a): Likewise.
(read_decimal): Likewise.
(read_radix): Likewise.
(read_f): Likewise.
(read_x): Empty reads also for stream I/O.
* io/transfer.c (read_sf): Change to use sread.
(read_block): Rename to read_block_form, change prototype, use sread.
(read_block_direct): Don't seek stream files.
(write_block): Change to use fbuf if external file, don't seek stream
files.
(write_buf): Don't seek stream files.
(formatted_transfer_scalar): Use fbuf for external files.
(us_read): Change to use sread.
(pre_position): Do nothing for stream I/O.
(data_transfer_init): Flush fbuf when switching from write to read, if
POS is specified, seek stream file to correct offset.
(skip_record): Change to use sread.
(min_off): New function.
(next_record_r): Change to use sread.
(next_record_w): Change to use sset/sseek, flush fbuf.
(finalize_transfer): Flush fbuf.
* io/unit.c (init_units): Init fbuf for stdout, stderr.
(close_unit_1): Destroy fbuf.
(finish_last_advance_record): Flush fbuf, no need to seek.
* io/unix.c (fd_alloc_r_at): Remove unused where argument.
(fd_alloc_w_at): Likewise.
(fd_read): Remove third argument to fd_alloc_r_at.
(fd_write): Remove third argument to fd_alloc_w_at.
(fd_sset): Likewise.
(fd_open): Don't set alloc_r_at.
(mem_alloc_r_at): Remove unused where argument.
(mem_alloc_w_at): Likewise.
(mem_read): Don't incorrectly return previous errno, remove unused
third argument to alloc function.
(mem_write): Likewise.
(mem_set): Likewise.
(open_internal): Don't set alloc_r_at pointer.
* io/fbuf.c: New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135373 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/36094
* runtime/error.c (show_locus): Provide modified error message when
filename has not yet been associated with a unit number.
* io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134876 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/25829 28655
* io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
and flags.status. (st_open): Initialize flags.async.
* io/list_read.c (read_charactor): Use delim_status instead of
flags.delim.
* io/read.c (read_x): Use pad_status instead of flags.pad.
* io/inquire.c (inquire_via_unit): Add new checks.
(inquire_via_filename): Likewise.
* io/io.h (st_parameter_inquire): Add new flags.
(st_parameter_dt): Likewise.
* io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
flags.async.
* io/transfer.c: Add delim and pad option arrays. (read_sf): Use
pad_status instead of flags.pad. (read_block): Likewise.
(data_transfer_init): Set flags.async and add checks.
* io/write.c (write_character): Use delim_status.
(list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
(namelist_write): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133988 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/25829 28655
* gfortran.map: Add new symbol, _gfortran_st_wait.
* libgfortran.h (st_paramter_common): Add new I/O parameters.
* open.c (st_option decimal_opt[], st_option encoding_opt[],
st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
parameter option arrays. (edit_modes): Add checks for new parameters.
(new_unit): Likewise. (st_open): Likewise.
* list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
(eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
(parse_real): Handle decimal comma. (read_real): Handle decimal comma.
* read.c (read_a): Use decimal status flag to allow comma in place of a
decimal point. (read_f): Allow comma as acceptable character in float.
According to decimal flag, substitute a period for a comma.
(read_x): If decimal status flag is comma, disable the read_comma flag,
not allowing comma as a delimiter, an extension otherwise.
* io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
unit_async): New enumerators. Add all new I/O parameters.
* unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
(move_pos_offset, fd_alloc_w_at): Fix some whitespace.
(fd_sfree): Use new enumerator. (fd_read): Likewise.
(fd_write): Likewise. (fd_close): Fix whitespace.
(fd_open): Use new enumertors. (tempfile, regular_file,
open_external): Fix whitespace. (output_stream, error_stream): Set
method. (stream_offset): Fix whitespace.
* transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
option arrays. (formatted_transfer_scalar): Set sf_read_comma flag
based on new decimal_status flag. (data_transfer_init): Initialize new
parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
* format.c: (format_lex): Add format specifiers DP, DC, and D.
(parse_format_list): Parse the new specifiers.
* write.c (write_decimal): Use new sign enumerators to set the sign.
(write_complex): Handle decimal comma and semi-colon separator.
(nml_write_obj): Likewise.
* write_float.def: Revise sign enumerators. (calculate_sign): Use new
sign enumerators. (output_float): Likewise. Use new decimal_status flag
to set the decimal character to a point or a comma.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133943 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* libgfortran.h: New file.
* iso-fortran-env.def: Use macros in the new header instead of
hardcoded integer constants.
* Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
fortran/libgfortran.h.
* gfortran.h (GFC_STD_*, GFC_FPE_*, options_convert,
ioerror_codes): Remove.
* trans.c (ERROR_ALLOCATION): Remove.
(gfc_call_malloc, gfc_allocate_with_status,
gfc_allocate_array_with_status): Use LIBERROR_ALLOCATION.
* trans-types.h (GFC_DTYPE_*): Remove.
* trans-decl.c (gfc_generate_function_code): Use
GFC_CONVERT_NATIVE instead of CONVERT_NATIVE.
* trans-io.c (set_parameter_value, set_parameter_ref): Use
LIBERROR_* macros instead of IOERROR_ macros.
* trans-intrinsic.c (gfc_conv_intrinsic_function): Use
LIBERROR_END and LIBERROR_EOR instead of hardcoded constants.
* options.c (gfc_init_options): Use GFC_CONVERT_NATIVE instead of
CONVERT_NATIVE.
(gfc_handle_option): Use GFC_CONVERT_* macros instead of CONVERT_*.
* libgfortran.h: Include gcc/fortran/libgfortran.h.
Remove M_PI, GFC_MAX_DIMENSIONS, GFC_DTYPE_*, GFC_NUM_RANK_BITS,
error_codes, GFC_STD_*, GFC_FPE_* and unit_convert.
* runtime/environ.c (variable_table): Use GFC_*_UNIT_NUMBER instead
of hardcoded constants.
(do_parse, init_unformatted): Use GFC_CONVERT_* macros instead of
CONVERT_*.
* runtime/string.c (find_option): Use LIBERROR_BAD_OPTION instead
of ERROR_BAD_OPTION.
* runtime/error.c (translate_error, generate_error): Use
LIBERROR_* macros instead of ERROR_*.
* io/file_pos.c (formatted_backspace, unformatted_backspace,
st_backspace, st_rewind, st_flush): Rename macros.
* io/open.c (convert_opt, edit_modes, new_unit, already_open,
st_open): Likewise.
* io/close.c (st_close): Likewise.
* io/list_read.c (next_char, convert_integer, parse_repeat,
read_logical, read_integer, read_character, parse_real,
check_type, list_formatted_read_scalar, namelist_read,
nml_err_ret): Likewise.
* io/read.c (convert_real, read_l, read_decimal, read_radix,
read_f): Likewise.
* io/inquire.c (inquire_via_unit): Likewise.
* io/unit.c (get_internal_unit): Likewise.
* io/transfer.c (read_sf, read_block, read_block_direct,
write_block, write_buf, unformatted_read, unformatted_write,
formatted_transfer_scalar, us_read, us_write, data_transfer_init,
skip_record, next_record_r, write_us_marker, next_record_w_unf,
next_record_w, finalize_transfer, st_read, st_write_done):
Likewise.
* io/format.c (format_error): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128050 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* m4/maxloc1.m4: Likewise.
* m4/in_pack.m4: Likewise.
* m4/sum.m4: Likewise.
* m4/fraction.m4: Likewise.
* m4/all.m4: Likewise.
* m4/set_exponent.m4: Likewise.
* m4/transpose.m4: Likewise.
* m4/eoshift1.m4: Likewise.
* m4/spacing.m4: Likewise.
* m4/eoshift3.m4: Likewise.
* m4/minval.m4: Likewise.
* m4/count.m4: Likewise.
* m4/maxval.m4: Likewise.
* m4/exponent.m4: Likewise.
* m4/shape.m4: Likewise.
* m4/head.m4: Likewise.
* m4/cshift1.m4: Likewise.
* m4/minloc0.m4: Likewise.
* m4/nearest.m4: Likewise.
* m4/maxloc0.m4: Likewise.
* m4/pow.m4: Likewise.
* m4/in_unpack.m4: Likewise.
* m4/matmull.m4: Likewise.
* m4/product.m4: Likewise.
* m4/reshape.m4: Likewise.
* m4/any.m4: Likewise.
* m4/rrspacing.m4: Likewise.
* m4/matmul.m4: Likewise.
* runtime/backtrace.c: Likewise.
* runtime/environ.c: Likewise.
* runtime/in_pack_generic.c: Likewise.
* runtime/compile_options.c: Likewise.
* runtime/in_unpack_generic.c: Likewise.
* runtime/main.c: Likewise.
* runtime/stop.c: Likewise.
* runtime/string.c: Likewise.
* runtime/memory.c: Likewise.
* runtime/error.c: Likewise.
* runtime/pause.c: Likewise.
* intrinsics/ierrno.c: Likewise.
* intrinsics/system_clock.c: Likewise.
* intrinsics/cshift0.c: Likewise.
* intrinsics/unlink.c: Likewise.
* intrinsics/ctime.c: Likewise.
* intrinsics/etime.c: Likewise.
* intrinsics/cpu_time.c: Likewise.
* intrinsics/malloc.c: Likewise.
* intrinsics/hostnm.c: Likewise.
* intrinsics/sleep.c: Likewise.
* intrinsics/exit.c: Likewise.
* intrinsics/perror.c: Likewise.
* intrinsics/transpose_generic.c: Likewise.
* intrinsics/pack_generic.c: Likewise.
* intrinsics/spread_generic.c: Likewise.
* intrinsics/stat.c: Likewise.
* intrinsics/string_intrinsics.c: Likewise.
* intrinsics/getcwd.c: Likewise.
* intrinsics/date_and_time.c: Likewise.
* intrinsics/unpack_generic.c: Likewise.
* intrinsics/move_alloc.c: Likewise.
* intrinsics/getlog.c: Likewise.
* intrinsics/eoshift0.c: Likewise.
* intrinsics/eoshift2.c: Likewise.
* intrinsics/reshape_generic.c: Likewise.
* intrinsics/system.c: Likewise.
* intrinsics/iso_c_binding.c: Likewise.
* intrinsics/env.c: Likewise.
* intrinsics/kill.c: Likewise.
* intrinsics/reshape_packed.c: Likewise.
* intrinsics/time.c: Likewise.
* intrinsics/gerror.c: Likewise.
* intrinsics/access.c: Likewise.
* intrinsics/fnum.c: Likewise.
* intrinsics/abort.c: Likewise.
* intrinsics/rename.c: Likewise.
* intrinsics/signal.c: Likewise.
* intrinsics/symlnk.c: Likewise.
* intrinsics/random.c: Likewise.
* intrinsics/umask.c: Likewise.
* intrinsics/getXid.c: Likewise.
* intrinsics/rand.c: Likewise.
* intrinsics/chdir.c: Likewise.
* intrinsics/chmod.c: Likewise.
* intrinsics/clock.c: Likewise.
* intrinsics/args.c: Likewise.
* intrinsics/link.c: Likewise.
* c99_protos.h: Likewise.
* config/fpu-387.h: Likewise.
* config/fpu-aix.h: Likewise.
* config/fpu-sysv.h: Likewise.
* config/fpu-generic.h: Likewise.
* config/fpu-glibc.h: Likewise.
* io/file_pos.c: Likewise.
* io/open.c: Likewise.
* io/size_from_kind.c: Likewise.
* io/close.c: Likewise.
* io/list_read.c: Likewise.
* io/read.c: Likewise.
* io/inquire.c: Likewise.
* io/unit.c: Likewise.
* io/unix.c: Likewise.
* io/transfer.c: Likewise.
* io/intrinsics.c: Likewise.
* io/format.c: Likewise.
* io/lock.c: Likewise.
* io/write.c: Likewise.
* io/write_float.def: Likewise.
* fmain.c: Likewise.
* generated/minval_r8.c: Regenerate.
* generated/minloc1_16_r16.c: Regenerate.
* generated/maxloc1_4_r8.c: Regenerate.
* generated/sum_i8.c: Regenerate.
* generated/eoshift3_4.c: Regenerate.
* generated/transpose_c8.c: Regenerate.
* generated/any_l16.c: Regenerate.
* generated/eoshift1_8.c: Regenerate.
* generated/pow_r8_i8.c: Regenerate.
* generated/reshape_r16.c: Regenerate.
* generated/pow_i4_i16.c: Regenerate.
* generated/maxval_i2.c: Regenerate.
* generated/product_r4.c: Regenerate.
* generated/maxloc1_8_i4.c: Regenerate.
* generated/exponent_r16.c: Regenerate.
* generated/maxloc0_4_r4.c: Regenerate.
* generated/fraction_r16.c: Regenerate.
* generated/in_unpack_i8.c: Regenerate.
* generated/matmul_r8.c: Regenerate.
* generated/product_i2.c: Regenerate.
* generated/fraction_r4.c: Regenerate.
* generated/minloc0_4_r16.c: Regenerate.
* generated/reshape_c4.c: Regenerate.
* generated/minloc0_4_i1.c: Regenerate.
* generated/maxloc0_4_r16.c: Regenerate.
* generated/maxloc0_4_i2.c: Regenerate.
* generated/minloc1_8_r16.c: Regenerate.
* generated/maxloc1_8_r16.c: Regenerate.
* generated/set_exponent_r8.c: Regenerate.
* generated/in_unpack_i16.c: Regenerate.
* generated/transpose_c16.c: Regenerate.
* generated/maxloc0_8_i8.c: Regenerate.
* generated/pow_c4_i8.c: Regenerate.
* generated/sum_r16.c: Regenerate.
* generated/sum_i1.c: Regenerate.
* generated/minloc1_4_r8.c: Regenerate.
* generated/transpose_r10.c: Regenerate.
* generated/pow_i8_i4.c: Regenerate.
* generated/maxloc1_16_r16.c: Regenerate.
* generated/minloc1_16_i4.c: Regenerate.
* generated/maxloc1_16_i4.c: Regenerate.
* generated/minloc0_16_i8.c: Regenerate.
* generated/maxloc0_16_i8.c: Regenerate.
* generated/nearest_r8.c: Regenerate.
* generated/spacing_r16.c: Regenerate.
* generated/transpose_i8.c: Regenerate.
* generated/count_16_l16.c: Regenerate.
* generated/maxval_r16.c: Regenerate.
* generated/count_8_l8.c: Regenerate.
* generated/product_c10.c: Regenerate.
* generated/minloc1_8_i4.c: Regenerate.
* generated/minloc0_16_i16.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/eoshift1_16.c: Regenerate.
* generated/minloc0_4_r4.c: Regenerate.
* generated/pow_c16_i16.c: Regenerate.
* generated/set_exponent_r10.c: Regenerate.
* generated/pow_i16_i16.c: Regenerate.
* generated/product_c4.c: Regenerate.
* generated/sum_r4.c: Regenerate.
* generated/pow_c16_i4.c: Regenerate.
* generated/rrspacing_r10.c: Regenerate.
* generated/in_pack_c16.c: Regenerate.
* generated/minloc0_4_i2.c: Regenerate.
* generated/maxloc0_8_i1.c: Regenerate.
* generated/reshape_i4.c: Regenerate.
* generated/minloc0_8_i8.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/spacing_r4.c: Regenerate.
* generated/in_pack_c4.c: Regenerate.
* generated/all_l16.c: Regenerate.
* generated/minloc1_16_r10.c: Regenerate.
* generated/sum_i2.c: Regenerate.
* generated/minloc0_16_i1.c: Regenerate.
* generated/reshape_c16.c: Regenerate.
* generated/maxloc0_16_i1.c: Regenerate.
* generated/maxloc1_8_r8.c: Regenerate.
* generated/minval_i16.c: Regenerate.
* generated/reshape_r10.c: Regenerate.
* generated/exponent_r10.c: Regenerate.
* generated/maxval_i4.c: Regenerate.
* generated/any_l4.c: Regenerate.
* generated/minval_i8.c: Regenerate.
* generated/maxloc1_4_i8.c: Regenerate.
* generated/fraction_r10.c: Regenerate.
* generated/maxloc0_16_i16.c: Regenerate.
* generated/shape_i4.c: Regenerate.
* generated/pow_r16_i8.c: Regenerate.
* generated/maxloc0_8_r4.c: Regenerate.
* generated/rrspacing_r8.c: Regenerate.
* generated/pow_c10_i4.c: Regenerate.
* generated/minloc1_4_i16.c: Regenerate.
* generated/minloc0_4_r10.c: Regenerate.
* generated/maxloc1_4_i16.c: Regenerate.
* generated/minloc0_8_i16.c: Regenerate.
* generated/maxloc0_4_r10.c: Regenerate.
* generated/maxloc0_8_i16.c: Regenerate.
* generated/minloc1_8_r10.c: Regenerate.
* generated/product_i4.c: Regenerate.
* generated/minloc0_16_r4.c: Regenerate.
* generated/sum_c16.c: Regenerate.
* generated/maxloc1_8_r10.c: Regenerate.
* generated/maxloc0_16_r4.c: Regenerate.
* generated/transpose_c10.c: Regenerate.
* generated/minloc1_16_r8.c: Regenerate.
* generated/minloc0_8_i1.c: Regenerate.
* generated/maxloc0_4_i4.c: Regenerate.
* generated/transpose_r4.c: Regenerate.
* generated/maxloc1_16_r8.c: Regenerate.
* generated/pow_i16_i8.c: Regenerate.
* generated/cshift1_4.c: Regenerate.
* generated/maxloc0_8_i2.c: Regenerate.
* generated/sum_r10.c: Regenerate.
* generated/nearest_r16.c: Regenerate.
* generated/sum_c4.c: Regenerate.
* generated/maxloc1_16_r10.c: Regenerate.
* generated/count_4_l16.c: Regenerate.
* generated/pow_c8_i8.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/in_pack_i4.c: Regenerate.
* generated/pow_i4_i8.c: Regenerate.
* generated/minloc0_16_i2.c: Regenerate.
* generated/minloc1_8_r8.c: Regenerate.
* generated/maxloc0_16_i2.c: Regenerate.
* generated/exponent_r4.c: Regenerate.
* generated/spacing_r10.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/pow_c4_i16.c: Regenerate.
* generated/maxval_r10.c: Regenerate.
* generated/count_4_l4.c: Regenerate.
* generated/shape_i16.c: Regenerate.
* generated/minval_i1.c: Regenerate.
* generated/maxloc1_4_i1.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/minloc1_4_i8.c: Regenerate.
* generated/pow_r10_i8.c: Regenerate.
* generated/minloc0_8_r4.c: Regenerate.
* generated/in_unpack_c4.c: Regenerate.
* generated/matmul_l4.c: Regenerate.
* generated/product_i16.c: Regenerate.
* generated/minloc0_16_r16.c: Regenerate.
* generated/reshape_r8.c: Regenerate.
* generated/pow_r10_i16.c: Regenerate.
* generated/all_l4.c: Regenerate.
* generated/in_pack_c10.c: Regenerate.
* generated/minloc0_4_i4.c: Regenerate.
* generated/minloc0_8_i2.c: Regenerate.
* generated/matmul_i1.c: Regenerate.
* generated/reshape_c10.c: Regenerate.
* generated/minval_r4.c: Regenerate.
* generated/maxloc1_4_r4.c: Regenerate.
* generated/pow_r8_i16.c: Regenerate.
* generated/sum_i4.c: Regenerate.
* generated/maxval_r8.c: Regenerate.
* generated/count_16_l8.c: Regenerate.
* generated/transpose_c4.c: Regenerate.
* generated/eoshift1_4.c: Regenerate.
* generated/eoshift3_8.c: Regenerate.
* generated/minval_r16.c: Regenerate.
* generated/minloc1_4_i1.c: Regenerate.
* generated/minval_i2.c: Regenerate.
* generated/maxloc1_4_i2.c: Regenerate.
* generated/pow_i8_i16.c: Regenerate.
* generated/product_r8.c: Regenerate.
* generated/maxloc1_8_i8.c: Regenerate.
* generated/maxloc0_4_r8.c: Regenerate.
* generated/maxloc0_16_r16.c: Regenerate.
* generated/in_unpack_i4.c: Regenerate.
* generated/matmul_r4.c: Regenerate.
* generated/sum_c10.c: Regenerate.
* generated/minloc1_4_r16.c: Regenerate.
* generated/fraction_r8.c: Regenerate.
* generated/maxloc1_4_r16.c: Regenerate.
* generated/set_exponent_r4.c: Regenerate.
* generated/minloc0_8_r16.c: Regenerate.
* generated/in_unpack_c16.c: Regenerate.
* generated/reshape_c8.c: Regenerate.
* generated/maxloc0_8_r16.c: Regenerate.
* generated/nearest_r10.c: Regenerate.
* generated/maxloc0_8_i4.c: Regenerate.
* generated/pow_c4_i4.c: Regenerate.
* generated/matmul_i2.c: Regenerate.
* generated/minloc1_4_r4.c: Regenerate.
* generated/transpose_i16.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/minloc0_16_i4.c: Regenerate.
* generated/maxloc0_16_i4.c: Regenerate.
* generated/pow_i8_i8.c: Regenerate.
* generated/nearest_r4.c: Regenerate.
* generated/minloc1_16_i8.c: Regenerate.
* generated/maxloc1_16_i8.c: Regenerate.
* generated/transpose_i4.c: Regenerate.
* generated/count_8_l4.c: Regenerate.
* generated/minloc1_4_i2.c: Regenerate.
* generated/matmul_l16.c: Regenerate.
* generated/maxloc1_8_i1.c: Regenerate.
* generated/minloc0_16_r10.c: Regenerate.
* generated/minloc1_8_i8.c: Regenerate.
* generated/minloc0_4_r8.c: Regenerate.
* generated/product_r16.c: Regenerate.
* generated/product_c8.c: Regenerate.
* generated/pow_r16_i16.c: Regenerate.
* generated/sum_r8.c: Regenerate.
* generated/pow_c16_i8.c: Regenerate.
* generated/in_pack_i16.c: Regenerate.
* generated/minloc0_8_i4.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/minloc1_16_i16.c: Regenerate.
* generated/reshape_i8.c: Regenerate.
* generated/spacing_r8.c: Regenerate.
* generated/in_pack_c8.c: Regenerate.
* generated/maxloc1_8_r4.c: Regenerate.
* generated/minloc1_16_i1.c: Regenerate.
* generated/maxloc1_16_i1.c: Regenerate.
* generated/reshape_i16.c: Regenerate.
* generated/minval_r10.c: Regenerate.
* generated/pow_r4_i8.c: Regenerate.
* generated/minloc1_8_i1.c: Regenerate.
* generated/minval_i4.c: Regenerate.
* generated/maxloc1_4_i4.c: Regenerate.
* generated/maxloc1_8_i2.c: Regenerate.
* generated/maxval_i8.c: Regenerate.
* generated/eoshift3_16.c: Regenerate.
* generated/any_l8.c: Regenerate.
* generated/maxloc0_16_r10.c: Regenerate.
* generated/rrspacing_r4.c: Regenerate.
* generated/shape_i8.c: Regenerate.
* generated/maxloc0_8_r8.c: Regenerate.
* generated/minloc0_4_i16.c: Regenerate.
* generated/maxloc0_4_i16.c: Regenerate.
* generated/minloc1_4_r10.c: Regenerate.
* generated/minloc1_8_i16.c: Regenerate.
* generated/pow_c10_i8.c: Regenerate.
* generated/maxloc1_4_r10.c: Regenerate.
* generated/maxloc1_8_i16.c: Regenerate.
* generated/in_unpack_c10.c: Regenerate.
* generated/minloc0_8_r10.c: Regenerate.
* generated/maxloc0_8_r10.c: Regenerate.
* generated/minloc1_16_r4.c: Regenerate.
* generated/maxloc1_16_r4.c: Regenerate.
* generated/minloc0_16_r8.c: Regenerate.
* generated/pow_i16_i4.c: Regenerate.
* generated/product_i8.c: Regenerate.
* generated/maxloc0_16_r8.c: Regenerate.
* generated/sum_i16.c: Regenerate.
* generated/maxloc0_4_i8.c: Regenerate.
* generated/transpose_r8.c: Regenerate.
* generated/cshift1_8.c: Regenerate.
* generated/maxloc1_16_i16.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/pow_c8_i4.c: Regenerate.
* generated/pow_i4_i4.c: Regenerate.
* generated/minloc1_8_r4.c: Regenerate.
* generated/sum_c8.c: Regenerate.
* generated/count_8_l16.c: Regenerate.
* generated/minloc1_16_i2.c: Regenerate.
* generated/maxloc1_16_i2.c: Regenerate.
* generated/in_pack_i8.c: Regenerate.
* generated/transpose_r16.c: Regenerate.
* generated/maxval_i16.c: Regenerate.
* generated/exponent_r8.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
* generated/count_4_l8.c: Regenerate.
* generated/pow_c8_i16.c: Regenerate.
* generated/maxval_i1.c: Regenerate.
* generated/minloc1_4_i4.c: Regenerate.
* generated/minloc1_8_i2.c: Regenerate.
* generated/pow_c10_i16.c: Regenerate.
* generated/product_c16.c: Regenerate.
* generated/reshape_r4.c: Regenerate.
* generated/in_unpack_c8.c: Regenerate.
* generated/minloc0_8_r8.c: Regenerate.
* generated/matmul_l8.c: Regenerate.
* generated/product_r10.c: Regenerate.
* generated/set_exponent_r16.c: Regenerate.
* generated/cshift1_16.c: Regenerate.
* generated/product_i1.c: Regenerate.
* generated/all_l8.c: Regenerate.
* generated/maxloc0_4_i1.c: Regenerate.
* generated/rrspacing_r16.c: Regenerate.
* generated/minloc0_4_i8.c: Regenerate.
* generated/pow_r4_i16.c: Regenerate.
* generated/count_16_l4.c: Regenerate.
* generated/maxval_r4.c: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127990 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/32858
PR libfortran/30814
* configure.ac: Added checks for presence of stdio.h and
stdarg.h. Test presence of vsnprintf().
* configure: Regenerated.
* config.h.in: Regenerated.
* libgfortran.h: Include <stdio.h>. Add printf attribute to
prototype of runtime_error. Remove prototype for st_sprintf.
Add prototype for st_vprintf.
* runtime/main.c (store_exec_path): Replace st_sprintf by sprintf.
* runtime/error.c (st_sprintf): Remove.
(runtime_error): Rewrite as a variadic function. Call
st_vprintf().
* intrinsics/pack_generic.c: Output extents of LHS and RHS for
bounds error.
* io/open.c (new_unit): Replace st_sprintf by sprintf.
* io/list_read.c (convert_integer): Likewise.
(parse_repeat): Likewise.
(read_logical): Likewise.
(read_character): Likewise.
(parse_real): Likewise.
(read_real): Likewise.
(check_type): Likewise.
(nml_parse_qualifyer): Likewise.
(nml_read_obj): Likewise.
(nml_get_ojb_data): Likewise.
* io/unix.c (init_error_stream): Remove.
(tempfile): Replace st_sprintf by sprintf.
(st_vprintf): New function.
(st_printf): Rewrite to call st_vprintf.
* io/transfer.c (require_type): Replace st_sprintf by sprintf.
* io/format.c (format_error): Likewise.
* io/write.c (nml_write_obj): Likewise.
2007-07-29 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32858
PR libfortran/30814
* gfortran.dg/pack_bounds_1.f90: Adjust to new error message.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127049 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* runtime/string.c (compare0): Use gfc_charlen_type instead of int.
(fstrlen): Likewise.
(find_option): Likewise.
(fstrcpy): Use gfc_charlen_type instead of int, return length.
(cf_strcpy): Likewise.
* libgfortran.h: Change string prototypes to use gfc_charlen_type.
* io/open.c (new_unit): Use snprintf if available.
* io/list_read.c (nml_touch_nodes): Use memcpy instead of strcpy/strcat.
(nml_read_obj): Likewise.
* io/transfer.c (st_set_nml_var): Likewise.
* io/write.c (output_float): Use snprintf if available.
(nml_write_obj) Use memcpy instead of strcpy/strcat.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125100 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* io/open.c (test_endfile): Revert changes for 31052, restoring this
function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123842 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libgfortran/31052
* io/open.c (test_endfile): Delete this function.
(edit_modes): Delete call to test_endfile.
(new_unit): Likewise.
* io/io.h: Delete prototype for test_endfile.
* io/transfer.c (next_record_r): Remove use of test_endfile.
(st_read): Add test for end file condition and adjust status.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123403 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libgfortran/31199
*io/io.h: Add saved_pos to gfc_unit structure.
*io/open.c (new_unit): Initialize saved_pos.
*io/transfer.c (data_transfer_init): Set max_pos to value in saved_pos.
(next_record_w): Fix whitespace.
(finalze_transfer): Calculate max_pos for ADVANCE="no" and save it for
later use. If not ADVANCE="no" set saved_pos to zero.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123205 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libgfortran/31052
* file_pos.c: Update Copyright year.
* io/open.c (test_endfile): Restore test_endfile to fix SPEC regression.
Update Copyright year.
* io/io.h: Same.
* io/unix.c (is_special): Add missing type for this function.
Update Copyright year.
* io/transfer.c (next_record_r): Restore test_endfile.
(st_read): Fix whitespace. Update Copyright year
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123139 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libgfortran/31052
* io/file_position (st_rewind): Fix comments. Remove use of
test_endfile. Don't seek if already at 0 position. Use new is_special
function to set endfile state.
* io/open.c (test_endfile): Delete this function.
* io/io.h: Delete prototype for test_endfile. Add prototype
for is_special.
* io/unix.c (is_special): New function. Fix whitespace.
* io/transfer.c (next_record_r): Remove use of test_endfile.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123038 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libgfortran/31099
* io/open.c (new_unit): Initialize bytes_left and recl_subrecord.
* io/transfer.c (next_record_w): Set bytes left to record length for
sequential unformatted I/O.
(next_record_r): Ditto.
(read_block_direct): Fix test for exceeding bytes_left.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122763 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libfortran/30005
* io/open.c: Add errno.h include.
(new_unit): Add new error messages with file name for file open.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119530 138bc75d-0d04-0410-961f-82ee72b054a4
|