818ab71a41 
								
							 
						 
						
							
							
								
								Update copyright years.  
							
							... 
							
							
							
							From-SVN: r232055 
							
						 
						
							2016-01-04 15:30:50 +01:00  
				
					
						
							
							
								 
						
							
								76b88c5fc9 
								
							 
						 
						
							
							
								
								re PR libfortran/67527 (io.h sanitizer complains on 1 << 31)  
							
							... 
							
							
							
							PR libfortran/67527
	PR libfortran/67535
	PR libfortran/67536
	* io/io.h: Use unsigned values for 31-bit left shifts.
	* io/unix.c (buf_read): Do not call memcpy() with NULL pointer arg.
	* io/write.c (nml_write_obj): Likewise.
From-SVN: r227705 
							
						 
						
							2015-09-12 12:05:44 +00:00  
				
					
						
							
							
								 
						
							
								43ff5c7a2d 
								
							 
						 
						
							
							
								
								libgfortran: Use remove(3) instead of unlink(2) when deleting files.  
							
							... 
							
							
							
							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.
From-SVN: r227472 
							
						 
						
							2015-09-04 00:18:56 +03:00  
				
					
						
							
							
								 
						
							
								7c32549e57 
								
							 
						 
						
							
							
								
								re PR fortran/67367 (Program crashes on READ(IOSTAT=IOS, ...) on directory OPEN()ed without error)  
							
							... 
							
							
							
							2015-08-29 Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	PR libgfortran/67367
	* io/unix.c (buf_read): Check for error condition and if found
	return the error code.
From-SVN: r227320 
							
						 
						
							2015-08-29 15:38:39 +00:00  
				
					
						
							
							
								 
						
							
								34ae233a54 
								
							 
						 
						
							
							
								
								* io/unix.c (min): Remove unused macro.  
							
							... 
							
							
							
							From-SVN: r227317 
							
						 
						
							2015-08-29 13:01:54 +00:00  
				
					
						
							
							
								 
						
							
								18a2180daa 
								
							 
						 
						
							
							
								
								re PR libfortran/66936 (io/unix.c gratuitously uses S_IRWXG and S_IRWXO on the basis that umask() is available)  
							
							... 
							
							
							
							PR libfortran/66936
	* io/unix.c (__MINGW32__): Undefine HAVE_UMASK.
From-SVN: r226750 
							
						 
						
							2015-08-09 16:43:42 +00:00  
				
					
						
							
							
								 
						
							
								5fd6ec3e4b 
								
							 
						 
						
							
							
								
								PR 66861 Fix null pointer crash on mingw.  
							
							... 
							
							
							
							2015-07-14  Janne Blomqvist  <jb@gcc.gnu.org>
	PR libfortran/66861
	* io/unix.c (compare_file_filename): Verify that u->filename is
	non-NULL before strcmp.
	(find_file0): Likewise.
From-SVN: r225788 
							
						 
						
							2015-07-14 23:26:06 +03:00  
				
					
						
							
							
								 
						
							
								6234b5433f 
								
							 
						 
						
							
							
								
								PR 65200 Handle EPERM in addition to EACCES.  
							
							... 
							
							
							
							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.
From-SVN: r221361 
							
						 
						
							2015-03-11 23:34:22 +02:00  
				
					
						
							
							
								 
						
							
								5624e564d2 
								
							 
						 
						
							
							
								
								Update copyright years.  
							
							... 
							
							
							
							From-SVN: r219188 
							
						 
						
							2015-01-05 13:33:28 +01:00  
				
					
						
							
							
								 
						
							
								0e05c303e5 
								
							 
						 
						
							
							
								
								PR libfortran/62768 Handle filenames with embedded null characters.  
							
							... 
							
							
							
							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.
From-SVN: r215307 
							
						 
						
							2014-09-17 00:40:28 +03:00  
				
					
						
							
							
								 
						
							
								9389649842 
								
							 
						 
						
							
							
								
								re PR libfortran/61640 (KIND=4 Character Array Internal Unit Read Fail)  
							
							... 
							
							
							
							2014-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	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.
From-SVN: r212118 
							
						 
						
							2014-06-29 02:49:45 +00:00  
				
					
						
							
							
								 
						
							
								89a862b40a 
								
							 
						 
						
							
							
								
								PR 56981 Flush buffer at record boundary if possible.  
							
							... 
							
							
							
							2014-06-08  Janne Blomqvist  <jb@gcc.gnu.org>
	PR libfortran/56981
	* io/unix.h (struct stream_vtable): Add new member function,
	markeor.
	(smarkeor): New inline function.
	(flush_if_unbuffered): Remove prototype.
	* io/unix.c (raw_markeor): New function.
	(raw_vtable): Initialize markeor member.
	(buf_markeor): New function.
	(buf_vtable): Initialize markeor member.
	(mem_vtable): Likewise.
	(mem4_vtable): Likewise.
	(flush_if_unbuffered): Remove function.
	* io/transfer.c (next_record): Call smarkeor instead of
	flush_if_unbuffered.
From-SVN: r211353 
							
						 
						
							2014-06-08 08:43:29 +03:00  
				
					
						
							
							
								 
						
							
								4269f19c09 
								
							 
						 
						
							
							
								
								PR 60324 Handle long path names, don't use PATH_MAX.  
							
							... 
							
							
							
							From-SVN: r210738 
							
						 
						
							2014-05-22 06:51:25 +03:00  
				
					
						
							
							
								 
						
							
								870c7fa03a 
								
							 
						 
						
							
							
								
								PR 61187 Fix use of uninitialized memory.  
							
							... 
							
							
							
							2014-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
	PR libfortran/61187
	* io/unix.c (raw_close): Check if s->fd is -1.
	(fd_to_stream): Check return value of fstat(), handle error.
From-SVN: r210527 
							
						 
						
							2014-05-16 23:37:13 +03:00  
				
					
						
							
							
								 
						
							
								b5b5834350 
								
							 
						 
						
							
							
								
								configure.ac: Check for presence of fcntl.  
							
							... 
							
							
							
							* configure.ac: Check for presence of fcntl.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.
From-SVN: r208634 
							
						 
						
							2014-03-18 09:58:17 +00:00  
				
					
						
							
							
								 
						
							
								f0bcf62899 
								
							 
						 
						
							
							
								
								Update copyright years in libgfortran/  
							
							... 
							
							
							
							From-SVN: r206296 
							
						 
						
							2014-01-02 22:25:45 +00:00  
				
					
						
							
							
								 
						
							
								95796c1fa5 
								
							 
						 
						
							
							
								
								unix.c (tempfile_open): Only use the needed flag O_CLOEXEC.  
							
							... 
							
							
							
							2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
    * io/unix.c (tempfile_open): Only use the needed flag O_CLOEXEC.
From-SVN: r206064 
							
						 
						
							2013-12-17 19:12:39 +01:00  
				
					
						
							
							
								 
						
							
								35f48a901d 
								
							 
						 
						
							
							
								
								When file status is unknown, don't set O_CREAT when opening read-only.  
							
							... 
							
							
							
							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.
Co-Authored-By: Jerry DeLisle <jvdelisle@gcc.gnu.org>
From-SVN: r204864 
							
						 
						
							2013-11-16 00:00:36 +02:00  
				
					
						
							
							
								 
						
							
								c20fdb917f 
								
							 
						 
						
							
							
								
								Set close-on-exec flag when opening files.  
							
							... 
							
							
							
							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.
From-SVN: r204654 
							
						 
						
							2013-11-10 22:34:29 +02:00  
				
					
						
							
							
								 
						
							
								19f0e98f58 
								
							 
						 
						
							
							
								
								environ.c: Include unistd.h.  
							
							... 
							
							
							
							* runtime/environ.c: Include unistd.h.
        * 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.
From-SVN: r198603 
							
						 
						
							2013-05-04 17:23:11 -04:00  
				
					
						
							
							
								 
						
							
								c033f5ae32 
								
							 
						 
						
							
							
								
								PR 56981 Improve unbuffered performance on special files.  
							
							... 
							
							
							
							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.
From-SVN: r198390 
							
						 
						
							2013-04-29 11:42:00 +03:00  
				
					
						
							
							
								 
						
							
								68aab0e225 
								
							 
						 
						
							
							
								
								Fix regression when writing formatted sequential to a pipe.  
							
							... 
							
							
							
							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.
From-SVN: r196210 
							
						 
						
							2013-02-21 21:03:10 +02:00  
				
					
						
							
							
								 
						
							
								e3c063ceda 
								
							 
						 
						
							
							
								
								Update copyright years in libgfortran.  
							
							... 
							
							
							
							From-SVN: r195167 
							
						 
						
							2013-01-14 18:20:58 +00:00  
				
					
						
							
							
								 
						
							
								a0edd35cf6 
								
							 
						 
						
							
							
								
								re PR libfortran/30162 (Document when sequential I/O with named pipes works)  
							
							... 
							
							
							
							2012-12-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
	PR libfortran/30162
	* io/unix.c (raw_tell):  If the lseek is done on a
	non-seekable file, return 0.
From-SVN: r194679 
							
						 
						
							2012-12-21 20:50:48 +00:00  
				
					
						
							
							
								 
						
							
								a0ceafd19b 
								
							 
						 
						
							
							
								
								re PR fortran/54878 (libgfortran issues found by the Coverity scanner)  
							
							... 
							
							
							
							2012-10-10  Tobias Burnus  <burnus@net-b.de>
	PR fortran/54878
	* io/unix.c (tempfile_open): Set umask before calling mkstemp.
From-SVN: r192325 
							
						 
						
							2012-10-10 20:42:34 +02:00  
				
					
						
							
							
								 
						
							
								7c0de75353 
								
							 
						 
						
							
							
								
								re PR fortran/52724 (Internal read with character(kind=4) data)  
							
							... 
							
							
							
							2012-09-29  Thomas König  <tkoenig@gcc.gnu.org>
	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.
From-SVN: r191854 
							
						 
						
							2012-09-29 17:38:46 +00:00  
				
					
						
							
							
								 
						
							
								7ed26a671c 
								
							 
						 
						
							
							
								
								chmod.c (chmod_func): On MinGW, don't set is_dir  
							
							... 
							
							
							
							2012-06-01  Tobias Burnus  <burnus@net-b.de>
        * 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.
From-SVN: r188098 
							
						 
						
							2012-06-01 07:53:31 +02:00  
				
					
						
							
							
								 
						
							
								9daf64e704 
								
							 
						 
						
							
							
								
								revert: unix.c (tempfile_open): Pass mode to "open" for O_CREAT.  
							
							... 
							
							
							
							2012-05-31  Tobias Burnus  <burnus@net-b.de>
        Revert:
        2012-05-16  Tobias Burnus  <burnus@net-b.de>
        * io/unix.c (tempfile_open): Pass mode to "open" for O_CREAT.
From-SVN: r188048 
							
						 
						
							2012-05-31 08:10:18 +02:00  
				
					
						
							
							
								 
						
							
								e10f759e19 
								
							 
						 
						
							
							
								
								unix.c (tempfile_open): Pass mode to "open" for O_CREAT.  
							
							... 
							
							
							
							2012-05-16  Tobias Burnus  <burnus@net-b.de>
        * io/unix.c (tempfile_open): Pass mode to "open" for O_CREAT.
From-SVN: r187604 
							
						 
						
							2012-05-16 20:39:34 +02:00  
				
					
						
							
							
								 
						
							
								68ee9c0807 
								
							 
						 
						
							
							
								
								Fix handling of temporary files.  
							
							... 
							
							
							
							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.
From-SVN: r187190 
							
						 
						
							2012-05-05 09:30:51 +03:00  
				
					
						
							
							
								 
						
							
								79617d7e2e 
								
							 
						 
						
							
							
								
								re PR libfortran/38199 (missed optimization: I/O performance)  
							
							... 
							
							
							
							2012-04-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
	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.
From-SVN: r186466 
							
						 
						
							2012-04-15 11:52:44 +00:00  
				
					
						
							
							
								 
						
							
								1a0fd3d33a 
								
							 
						 
						
							
							
								
								Combined get_mem and internal_malloc_size.  
							
							... 
							
							
							
							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.
From-SVN: r185806 
							
						 
						
							2012-03-26 18:16:05 +03:00  
				
					
						
							
							
								 
						
							
								f4471acbe3 
								
							 
						 
						
							
							
								
								Use calloc instead of malloc and memset.  
							
							... 
							
							
							
							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.
From-SVN: r185773 
							
						 
						
							2012-03-25 08:48:49 +03:00  
				
					
						
							
							
								 
						
							
								33959d1d3c 
								
							 
						 
						
							
							
								
								Share vtables instead of replicating them for each unit.  
							
							... 
							
							
							
							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.
From-SVN: r185454 
							
						 
						
							2012-03-16 10:30:26 +02:00  
				
					
						
							
							
								 
						
							
								42dfafa935 
								
							 
						 
						
							
							
								
								PR 51646 Use POSIX mode flags in open() argument.  
							
							... 
							
							
							
							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.
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r182638 
							
						 
						
							2011-12-22 22:44:32 +02:00  
				
					
						
							
							
								 
						
							
								ed10039e8b 
								
							 
						 
						
							
							
								
								PR 50016 Slow I/O on MingW due to _commit  
							
							... 
							
							
							
							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.
From-SVN: r181207 
							
						 
						
							2011-11-09 17:46:15 +02:00  
				
					
						
							
							
								 
						
							
								3469bd8660 
								
							 
						 
						
							
							
								
								Introduce a size member function to struct stream.  
							
							... 
							
							
							
							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.
From-SVN: r180702 
							
						 
						
							2011-10-31 16:52:26 +02:00  
				
					
						
							
							
								 
						
							
								7d5ee21935 
								
							 
						 
						
							
							
								
								Simplify handling of special files.  
							
							... 
							
							
							
							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.
From-SVN: r180701 
							
						 
						
							2011-10-31 16:45:50 +02:00  
				
					
						
							
							
								 
						
							
								09ad57ec8f 
								
							 
						 
						
							
							
								
								Return error when trying to seek a non-seekable buffered file  
							
							... 
							
							
							
							From-SVN: r174947 
							
						 
						
							2011-06-11 13:52:18 +03:00  
				
					
						
							
							
								 
						
							
								5ea0705af7 
								
							 
						 
						
							
							
								
								Figure out whether a file is seekable with lseek()  
							
							... 
							
							
							
							From-SVN: r174946 
							
						 
						
							2011-06-11 13:19:49 +03:00  
				
					
						
							
							
								 
						
							
								1028b2bded 
								
							 
						 
						
							
							
								
								Error printing thread safety, remove GFORTRAN_USE_STDERR  
							
							... 
							
							
							
							From-SVN: r173749 
							
						 
						
							2011-05-14 10:55:51 +03:00  
				
					
						
							
							
								 
						
							
								1e03060224 
								
							 
						 
						
							
							
								
								Fix path handling  
							
							... 
							
							
							
							From-SVN: r173172 
							
						 
						
							2011-04-29 19:09:45 +03:00  
				
					
						
							
							
								 
						
							
								046957830e 
								
							 
						 
						
							
							
								
								remove useless if-before-free tests  
							
							... 
							
							
							
							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.
From-SVN: r172785 
							
						 
						
							2011-04-20 18:19:03 +00:00  
				
					
						
							
							
								 
						
							
								d30fe1c5cd 
								
							 
						 
						
							
							
								
								Replace sprintf with snprintf  
							
							... 
							
							
							
							From-SVN: r172590 
							
						 
						
							2011-04-16 20:43:03 +03:00  
				
					
						
							
							
								 
						
							
								99ebea0382 
								
							 
						 
						
							
							
								
								unix.c: Adapt stat DEFINEs since MinGW64 supports LFS.  
							
							... 
							
							
							
							2011-04-04  Tobias Burnus  <burnus@net-b.de>
        * 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.
From-SVN: r171911 
							
						 
						
							2011-04-03 17:44:02 +02:00  
				
					
						
							
							
								 
						
							
								14bef49e53 
								
							 
						 
						
							
							
								
								re PR libfortran/47439 (Fun with scratch files on Windows  MKTEMP only allows for 26 files)  
							
							... 
							
							
							
							PR libfortran/47439
	* io/unix.c (tempfile): Work around poor mktemp() implementations.
	* gfortran.dg/scratch_1.f90: New test.
From-SVN: r171178 
							
						 
						
							2011-03-19 12:09:27 +00:00  
				
					
						
							
							
								 
						
							
								fe230fccd4 
								
							 
						 
						
							
							
								
								re PR libfortran/45165 (unix.c:fallback_access() leaks file descriptors)  
							
							... 
							
							
							
							PR libfortran/45165
	* unix.c (fallback_access): Fix file descriptor leaks.
From-SVN: r170517 
							
						 
						
							2011-02-26 15:21:45 +00:00  
				
					
						
							
							
								 
						
							
								6a0f6e7799 
								
							 
						 
						
							
							
								
								PR 47432 Use ttyname_r() if available  
							
							... 
							
							
							
							From-SVN: r169337 
							
						 
						
							2011-01-27 22:05:45 +02:00  
				
					
						
							
							
								 
						
							
								723553bdc1 
								
							 
						 
						
							
							
								
								PR 46267 strerror thread safety  
							
							... 
							
							
							
							From-SVN: r169110 
							
						 
						
							2011-01-22 00:42:17 +02:00  
				
					
						
							
							
								 
						
							
								9cd72574bc 
								
							 
						 
						
							
							
								
								PR47296 Segfault when running out of file descriptors  
							
							... 
							
							
							
							From-SVN: r168888 
							
						 
						
							2011-01-17 07:48:10 +02:00