summaryrefslogtreecommitdiffstats
path: root/libgfortran/io/unix.c
Commit message (Collapse)AuthorAgeFilesLines
* 2014-07-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2014-07-071-2/+2
| | | | | | | | | | | | Backport from trunk. PR libgfortran/61640 * io/list_read.c (next_char_internal): Adjust the read length to a single wide character. (eat_spaces): Add missing paren. * io/unix.c (mem_read4): Use the correct mem_alloc function for wide character internal reads. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@212319 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 61187 Fix use of uninitialized data.jb2014-05-161-2/+12
| | | | | | | | | | | | 2014-05-16 Janne Blomqvist <jb@gcc.gnu.org> Backport from trunk: PR libfortran/61187 * io/unix.c (raw_close): Check if s->fd is -1. (fd_to_stream): Check return value of fstat(), handle error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@210530 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.ac: Check for presence of fcntl.uweigand2014-03-181-1/+1
| | | | | | | | | * configure: Regenerate. * config.h.in: Regenerate. * io/unix.c (set_close_on_exec): Check for HAVE_FCNTL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208634 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in libgfortran/rsandifo2014-01-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206296 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-12-17 Andreas Tobler <andreast@gcc.gnu.org>andreast2013-12-171-1/+1
| | | | | | | * io/unix.c (tempfile_open): Only use the needed flag O_CLOEXEC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206064 138bc75d-0d04-0410-961f-82ee72b054a4
* When file status is unknown, don't set O_CREAT when opening read-only.jb2013-11-151-7/+13
| | | | | | | | | | | | | 2013-11-15 Janne Blomqvist <jb@gcc.gnu.org> Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/59108 * io/unix.c (regular_file): Don't set O_CREAT when opening a file read-only with unknown status. Mask out O_CREAT when falling back to opening read-only if ACTION= is not set and read-write fails. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204864 138bc75d-0d04-0410-961f-82ee72b054a4
* Set close-on-exec flag when opening files.jb2013-11-101-6/+37
| | | | | | | | | | | | | | | | | | | 2013-11-10 Janne Blomqvist <jb@gcc.gnu.org> * configure.ac: Check presence of mkostemp. * io/unix.c (set_close_on_exec): New function. (tempfile_open): Use mkostemp and O_CLOEXEC if available, fallback to calling set_close_on_exec. (regular_file): Add O_CLOEXEC to flags if defined. (open_external): Call set_close_on_exec if O_CLOEXEC is not defined. * config.h.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. * aclocal.m4: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204654 138bc75d-0d04-0410-961f-82ee72b054a4
* * runtime/environ.c: Include unistd.h.dje2013-05-041-0/+3
| | | | | | | | | | | * 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 56981 Improve unbuffered performance on special files.jb2013-04-291-7/+32
| | | | | | | | | | | | | | | | | | | | 2013-04-29 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/56981 * io/transfer.c (next_record_w_unf): First fix head marker, then write tail. (next_record): Call flush_if_unbuffered. * io/unix.c (struct unix_stream): Add field unbuffered. (flush_if_unbuffered): New function. (fd_to_stream): New argument. (open_external): Fix fd_to_stream call. (input_stream): Likewise. (output_stream): Likewise. (error_stream): Likewise. * io/unix.h (flush_if_unbuffered): New prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198390 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix regression when writing formatted sequential to a pipe.jb2013-02-211-10/+5
| | | | | | | | | | | | 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
* Update copyright years in libgfortran.rsandifo2013-01-141-3/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195167 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-21 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2012-12-211-1/+9
| | | | | | | | | | PR libfortran/30162 * io/unix.c (raw_tell): If the lseek is done on a non-seekable file, return 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194679 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-10 Tobias Burnus <burnus@net-b.de>burnus2012-10-101-0/+12
| | | | | | | | | PR fortran/54878 * io/unix.c (tempfile_open): Set umask before calling mkstemp. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192325 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-09-29 Thomas König <tkoenig@gcc.gnu.org>tkoenig2012-09-291-1/+1
| | | | | | | | | | | | | | | PR fortran/52724 * list_read.c (next_char): Handle kind=4 characters. * unix.c (open_internal4): Correct lenth of internal file. 2012-09-29 Thomas König <tkoenig@gcc.gnu.org> PR fortran/52724 * gfortran.dg/internal_readwrite_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191854 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-06-01 Tobias Burnus <burnus@net-b.de>burnus2012-06-011-8/+12
| | | | | | | | | | | | | | * intrinsics/chmod.c (chmod_func): On MinGW, don't set is_dir * and fix octal-mode handling. * io/unit.c (get_internal_unit): Add cast. * io/unix.c (min): Undef "min" before defining it. * runtime/backtrace.c (show_backtrace): Move label into ifndef __MINGW__ block. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188098 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-05-31 Tobias Burnus <burnus@net-b.de>burnus2012-05-311-2/+2
| | | | | | | | | | | Revert: 2012-05-16 Tobias Burnus <burnus@net-b.de> * io/unix.c (tempfile_open): Pass mode to "open" for O_CREAT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188048 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-05-16 Tobias Burnus <burnus@net-b.de>burnus2012-05-161-2/+2
| | | | | | | | * io/unix.c (tempfile_open): Pass mode to "open" for O_CREAT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187604 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix handling of temporary files.jb2012-05-051-47/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2012-05-05 Janne Blomqvist <jb@gcc.gnu.org> * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain algorithm for choosing temp directory. 2012-05-05 Janne Blomqvist <jb@gcc.gnu.org> * config.h.in: Regenerated. * configure: Regenerated. * configure.ac: Add checks for getegid and __secure_getenv. * io/unix.c (P_tmpdir): Fallback definition for macro. (tempfile_open): New function. (tempfile): Use secure_getenv, call tempfile_open to try each directory in turn. * libgfortran.h (DEFAULT_TMPDIR): Remove macro. (secure_getenv): New macro/prototype. * runtime/environ.c (secure_getenv): New function. (variable_table): Rename GFORTRAN_TMPDIR to TMPDIR. * runtime/main.c (find_addr2line): Use secure_getenv. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187190 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-04-15 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2012-04-151-1/+1
| | | | | | | | | | | | | | | | PR libfortran/38199 PR libfortran/50673 * intrinsics/string_intriniscs_inc.c (string_len_trim): Remove prototypes for string_len_trim and move to... * libgfortran.h (string_len_trim): ... here and (string_len_trim_char4): ...here. * io/unit.c: For non-array internal arrays where we do reading, adjust the record length to the last non-blank character. * io/unix.c: Fix typo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186466 138bc75d-0d04-0410-961f-82ee72b054a4
* Combined get_mem and internal_malloc_size.jb2012-03-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Use calloc instead of malloc and memset.jb2012-03-251-12/+4
| | | | | | | | | | | | | | | | | | 2012-03-25 Janne Blomqvist <jb@gcc.gnu.org> * runtime/memory.c (xcalloc): New function. * libgfortran.h (xcalloc): New prototype. * io/list_read.c (push_char): Use xcalloc instead of get_mem and memset. (l_push_char): Likewise. * io/unit.c (insert_unit): Likewise. (get_internal_unit): Likewise. * io/unix.c (open_internal): Likewise. (open_internal4): Likewise. (fd_to_stream): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185773 138bc75d-0d04-0410-961f-82ee72b054a4
* Share vtables instead of replicating them for each unit.jb2012-03-161-36/+51
| | | | | | | | | | | | | | | | | | | | | | | | | 2012-03-16 Janne Blomqvist <jb@gcc.gnu.org> * io/unix.h (struct stream): Rename to stream_vtable. (struct stream): New struct definition. (sread): Dereference vtable pointer. (swrite): Likewise. (sseek): Likewise. (struncate): Likewise. (sflush): Likewise. (sclose): Likewise. * io/unix.c (raw_vtable): New variable. (buf_vtable): Likewise. (mem_vtable): Likewise. (mem4_vtable): Likewise. (raw_init): Assign vtable pointer. (buf_init): Likewise. (open_internal): Likewise. (open_internal4): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185454 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 51646 Use POSIX mode flags in open() argument.jb2011-12-221-2/+2
| | | | | | | | | | | | | | | | 2011-12-22 Janne Blomqvist <jb@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR libfortran/51646 * acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Use POSIX mode flags, omit mode argument when flags argument does not have O_CREAT. * io/unix.c (tempfile): Use POSIX mode flags. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182638 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 50016 Slow I/O on MingW due to _commitjb2011-11-091-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | frontend ChangeLog: 2011-11-09 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/50016 * gfortran.texi (Data consistency and durability): New section. testsuite ChangeLog: 2011-11-09 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/50016 * gfortran.dg/inquire_size.f90: Don't flush the unit. libgfortran ChangeLog: 2011-11-09 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/50016 * io/inquire.c (inquire_via_unit): Flush the unit and use ssize. * io/unix.c (buf_flush): Don't call _commit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181207 138bc75d-0d04-0410-961f-82ee72b054a4
* Introduce a size member function to struct stream.jb2011-10-311-15/+24
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Simplify handling of special files.jb2011-10-311-61/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | 2011-10-31 Janne Blomqvist <jb@gcc.gnu.org> * io/file_pos.c (st_rewind): Handle regular and special files identically. * io/intrinsics.c (fseek_sub): Don't check whether we think the file is seekable, just do what the caller says. * io/transfer.c (skip_record): First try to seek, then fallback to reading and throwing away what we read. * io/unit.c (update_position): Don't check whether file is seekable, just try to do what we're told. (unit_truncate): Likewise. * io/unix.c (struct unix_stream): Remove special_file flag. (buf_flush): Remove code for handling unseekable files. (buf_seek): Likewise. (fd_to_stream): Use buffered IO only for regular files. (file_length): Remove is_seekable() call. (is_seekable): Remove function. (is_special): Likewise. * io/unix.h: Remove prototypes for is_seekable and is_special. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180701 138bc75d-0d04-0410-961f-82ee72b054a4
* Return error when trying to seek a non-seekable buffered filejb2011-06-111-1/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174947 138bc75d-0d04-0410-961f-82ee72b054a4
* Figure out whether a file is seekable with lseek()jb2011-06-111-6/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174946 138bc75d-0d04-0410-961f-82ee72b054a4
* Error printing thread safety, remove GFORTRAN_USE_STDERRjb2011-05-141-55/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173749 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix path handlingjb2011-04-291-16/+26
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173172 138bc75d-0d04-0410-961f-82ee72b054a4
* remove useless if-before-free testsmeyering2011-04-201-2/+1
| | | | | | | | | | | 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
* Replace sprintf with snprintfjb2011-04-161-2/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172590 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-04 Tobias Burnus <burnus@net-b.de>burnus2011-04-031-13/+14
| | | | | | | | | | | * unix.c: Adapt stat DEFINEs since MinGW64 supports LFS. (fallback_access, open_internal4, compare_file_filename, find_file, file_size, inquire_sequential, inquire_direct, inquire_formatted): Use "struct stat" instead of gfstat_t. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171911 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libfortran/47439fxcoudert2011-03-191-5/+33
| | | | | | | | | * io/unix.c (tempfile): Work around poor mktemp() implementations. * gfortran.dg/scratch_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171178 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libfortran/45165fxcoudert2011-02-261-2/+6
| | | | | | | * unix.c (fallback_access): Fix file descriptor leaks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170517 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 47432 Use ttyname_r() if availablejb2011-01-271-10/+21
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169337 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 46267 strerror thread safetyjb2011-01-211-10/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169110 138bc75d-0d04-0410-961f-82ee72b054a4
* PR47296 Segfault when running out of file descriptorsjb2011-01-171-8/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168888 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2011-01-151-0/+2
| | | | | | | | | PR libgfortran/47296 * io/unix.c (unpack_filename): Return non-zero if the filename passed in is NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168832 138bc75d-0d04-0410-961f-82ee72b054a4
* Cache stat values, reduce syscallsjb2010-11-091-18/+35
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166502 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 44931 Move struct unix_stream to unix.cjb2010-11-041-3/+28
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166325 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove prot from unix_streamjb2010-11-031-33/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166284 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove unused empty_internal_buffer functionjb2010-11-031-9/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166276 138bc75d-0d04-0410-961f-82ee72b054a4
* Use access(2) instead of stat(2) to test file existence.jb2010-08-011-35/+41
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162798 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2010-07-291-22/+0
| | | | | | | | | | | | | | PR libfortran/44931 * io/inquire.c (inquire_via_unit): Use ttyname to return actual device file name for stdin, stdout, and stderr. If ttyname does not succeed fall back to default names for these units. Include string.h to allow using strlen function. * unix.c: Remove typedef of unix_stream structure, move to unix.h. * unix.h: Add typedef of unix_stream structure so that it is accessible to inquire.c. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162667 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2010-07-191-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | PR libfortran/44953 * io/unix.c (mem_alloc_w4): Return gfc_char4_t instead of char type pointer. (mem_write4): Remove cast to gfc_char4_t. * io/transfer.c (write_block): Use a gfc_char4_t pointer. (memset4): New helper function. (next_record_w): Use new helper function rather than sset for internal units. Don't attempt to pad with spaces if it is not needed. * io/unix.h: Update prototype for mem_alloc_w4. * io/write.c (memset4): Use gfc_char4_t pointer and chracter type. Don't use multiply by 4 to compute offset. (memcpy4): Likewise. (write_default_char4): Use a gfc_char4_t pointer and update memset4 and memcpy calls. (write_a): Likewise. (write_l): Likewise. (write_boz): Likewise. (write_decimal): Likewise. (write_x): Likewise. (write_char): Add support for character(kind=4) internal units that was previously missed. (write_integer): Use a gfc_char4_t pointer and update memset4 and memcpy calls. (write_character): Likewise. (write_separator): Add support for character(kind=4) internal units that was previously missed. * write_float.def (output_float): Use a gfc_char4_t pointer and update memset4 and memcpy calls. (write_infnan): Likewise. (output_float_FMT_G_): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162304 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2010-07-131-6/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | PR libfortran/37077 * io/read.c: Fix comment. * io/io.h (is_char4_unit): New macro. * io/unit.c (get_internal_unit): Call new function open_internal4. * io/unix.c (mem_alloc_r4): New function. (mem_alloc_w4): New function. (mem_read4): New function, temporary stub. (mem_write4): New function. (open_internal4): New function to set stream pointers to use the new mem functions. * io/transfer.c (write_block): Use new mem_alloc_w4 to access internal units of kind=4. * io/unix.h: Add prototypes for open_internal4, mem_alloc_w4, and mem_alloc_r4. * io/write.c (memset4): New helper function. (memcpy4): New helper function. (write_default_char4): Use new helper functions. (write_a): Likewise. (write_l): Likewise. (write_boz): Likewise. (write_decimal): Likewise. (write_x): Likewise. (write_integer): Likewise. * io/write_float.def (output_float): Add code blocks to handle internal unit kind=4 output utilizing gfc_char4_t pointers. (write_infnan): Use new helper functions. (OUTPUT_FLOAT_FMT_G): Update this macro likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162123 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-11 Kai Tietz <kai.tietz@onevision.com>jvdelisle2010-07-111-0/+4
| | | | | | | | PR libfortran/44698 * io/unix.c (flush_buf): Add _commit for WIN32. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162060 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove free_memjb2010-05-071-7/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159160 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-04-30 Kai Tietz <kai.tietz@onevision.com>ktietz2010-04-301-4/+28
| | | | | | | | | | | | PR/43844 * io/unix.c (raw_truncate): Explicit cast from integer-scal to pointer. (empfile): Use for mingw GetTempPath and avoid double slash for path. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158925 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud