Commit Graph

1691 Commits

Author SHA1 Message Date
Jerry DeLisle
5b0e27a724 re PR libfortran/48852 (Invalid spaces in list-directed output of complex constants)
2016-06-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/48852
	* io/write.c: Cleaned up whitespace.
	(write_d, write_e, write_f, write_es, write_en): Use new helper function
	write_float_0. (write_float_0): New helper function.
	(get_precision, select_buffer, select_string, write_float_string): New
	helper functions used in remaining float writing functions. Helper function
	write_float_string now contains code for writing to kind=4 character
	internal units.
	(write_real): Modified to establish working buffers at this level and to
	use new helper functions.
	(write_real_g0): Likewise modified.
	(write_complex): Likewise modified. Gets both float strings before
	output so that final lengths can be determined which allows right
	justifying the complex number with no intervening spaces.
	* io/write_float.def (build_float_string): Renamed from previosly
	output_float, modified to use buffers passed in from higher functions,
	builds a null terminated string of the floating point value. Character
	kind=4 code eliminated.
	(write_infnan): Likewise modified to use incoming buffers and eliminate
	kind=4 related code.
	(OUTPUT_FLOAT_FMT_G): Deleted, functionality moved into FORMAT_FLOAT.
	(FORMAT_FLOAT): Renamed macro from WRITE_FLOAT. Use build_float_string.
	(get_float_string): Renamed from write_float, uses FORMAT_FLOAT macro.
	Buffer allocation removed, now at higher level.

	PR libgfortran/48852
	* gfortran.dg/char4_iunit_1.f03: Update test.
	* gfortran.dg/f2003_io_5.f03: Update test.
	* gfortran.dg/real_const_3.f90: Update test.

From-SVN: r237735
2016-06-23 15:58:05 +00:00
Jerry DeLisle
64fc0cd9b2 re PR libfortran/71123 (Namelist read failure on Windows)
2016-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/71123
	* io/list_read (eat_spaces): Eat '\r' as part of spaces.
        fix change log

From-SVN: r236629
2016-05-24 06:16:00 +00:00
Jerry DeLisle
e3f365343f re PR libfortran/70684 (incorrect reading of values from file on Windows)
2016-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/70684
	* io/list_read (eat_spaces): Eat '\r' as part of spaces.

	* gfortran.dg/namelist_90.f: New test

From-SVN: r236628
2016-05-24 06:11:21 +00:00
Jerry DeLisle
90eeab20f7 re PR libfortran/70684 (incorrect reading of values from file on Windows)
2016-04-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/70684
	* io/list_read (check_buffers): Add '\r' to check for end of line.
	factor.

	* gfortran.dg/list_read_14.f90: New test.

From-SVN: r235220
2016-04-19 19:24:28 +00:00
Dominique d'Humieres
e0876e21cf [multiple changes]
2016-03-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR libgfortran/70235
	* io/write_float.def: Fix PF format for negative values of the scale
	factor.

2016-03-30  Dominique d'Humieres  <dominiq@lps.ens.fr>
	    Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.dg/fmt_pf.f90: New test.

From-SVN: r234600
2016-03-30 22:47:45 +02:00
Alessandro Fanfarillo
0daa7ed944 STOP managed by external library when coarrays are used
From-SVN: r234502
2016-03-28 03:05:01 -06:00
Jerry DeLisle
64a454d9f7 re PR fortran/69456 (Namelist value with trailing sign is ignored without error)
2016-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69456
	* io/list_read.c (read_real): If digit is missing from exponent issue
	an error. (parse_real): Likewise and adjusted error message to clarify
	it is part of a complex number.
	(nml_read_obj): Bump item count and add comment that this is used to
	identify which item in a namelist read has a problem.

	PR libgfortran/69456
	* gfortran.dg/namelist_89.f90: New test.
	* gfortran.dg/pr59700.f90: Update test..

From-SVN: r233641
2016-02-23 18:38:31 +00:00
Jerry DeLisle
efea09f21b re PR libfortran/69651 ([6 Regession] Usage of unitialized pointer io/list_read.c)
2016-02-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69651
	* io/list_read.c (push_char4): Fix the pointer usage for xrealloc.

From-SVN: r233500
2016-02-17 16:48:57 +00:00
Jerry DeLisle
fc12098dbe re PR libfortran/69651 ([6 Regession] Usage of unitialized pointer io/list_read.c)
2016-02-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69651
	* io/list_read.c: Entire file trailing spaces removed.
	(CASE_SEPARATORS): Remove '!'.
	(is_separator): Add namelist mode as condition with '!'.
	(push_char): Remove un-needed memset. (push_char4): Likewise and remove
	'new' pointer. (eat_separator): Remove un-needed use of notify_std.
	(read_logical): If '!' bang encountered when not in namelist mode got
	bad_logical to give an error. (read_integer): Likewise reject '!'.
	(read_character): Remove condition testing c = '!' which is now inside
	the is_separator macro. (parse_real): Reject '!' unless in namelist mode.
	(read_complex): Reject '!' unless in namelist mode. (read_real): Likewise
	reject '!'.

	PR libgfortran/69651
	* gfortran.dg/read_bang.f90: New test.
	* gfortran.dg/read_bang4.f90: New test.

From-SVN: r233436
2016-02-15 22:31:13 +00:00
Jerry DeLisle
955ca6dc77 re PR fortran/69668 (Error reading namelist opened with DELIM='NONE')
2016-02-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69668
	* io/list_read.c (read_character): Remove code related to DELIM_NONE.

	PR libgfortran/69668
	* gfortran.dg/namelist_38.f90: Update test.
	* gfortran.dg/namelist_84.f90: Update test.

From-SVN: r233387
2016-02-12 19:52:13 +00:00
John David Anglin
c55879c872 re PR libfortran/68744 (FAIL: gfortran.dg/backtrace_1.f90 -O0 execution test)
PR libfortran/68744
	* runtime/backtrace.c: Include gthr.h.
	(show_backtrace): Use __gthread_active_p() to determine whether threads
	are active.  Return if lbstate is NULL.

From-SVN: r232770
2016-01-23 23:32:13 +00:00
Jakub Jelinek
f474299175 execute_command_line.c (set_cmdstat): Use "%s", msg instead of msg to avoid -Wformat-security warning.
* intrinsics/execute_command_line.c (set_cmdstat): Use "%s", msg
	instead of msg to avoid -Wformat-security warning.

From-SVN: r232449
2016-01-15 21:20:58 +01:00
Jakub Jelinek
818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Jerry DeLisle
820d395cc8 re PR libfortran/68987 (double free or corruption in _gfortran_st_write_done when a write statement to an internal file uses an invalid format and the ERR= specifier appears.)
2015-12-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/68987
	io/format.c (format_error): Remove unneeded memory cleanup.

From-SVN: r231989
2015-12-29 05:17:42 +00:00
Jerry DeLisle
8d3586e4e2 PR libfortran/pr68867
2015-12-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/pr68867
	* io/write.c (set_fnode_default): For kind=16, set the decimal precision
	depending on the platform binary precision, 106 or 113.

From-SVN: r231639
2015-12-15 03:16:26 +00:00
Juoko Orava
9df47e83ee re PR fortran/50201 (gfortran with -static causes seg fault at runtime for writing double prec array with precision increased to kind=16)
2015-12-05  Juoko Orava <jouko.orava@iki.fi>

	PR fortran/50201
	* io/write_float.def: Avoid marking quadmath_snprintf as an untyped
	weak reference, which fixing linking with -static.

From-SVN: r231320
2015-12-05 18:12:26 +00:00
Tobias Burnus
5df445a2a5 check.c (gfc_check_event_query): New function.
2015-12-02  Tobias Burnus  <burnus@net-b.de>
	    Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>

	* check.c (gfc_check_event_query): New function.
	* dump-parse-tree.c (show_code_node): Handle EXEC_EVENT_POST,
	EXEC_EVENT_WAIT.
	* expr.c (gfc_check_vardef_context): New check for event variables
	definition.
	* gfortran.h (gfc_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
	(gfc_isym_id): GFC_ISYM_EVENT_QUERY.
	(struct symbol_attribute): New field.
	(gfc_exec_op): Add EXEC_EVENT_POST and EXEC_EVENT_WAIT.
	* gfortran.texi: Document about new events functions and minor
	changes.
	* interface.c (compare_parameter): New check.
	(gfc_procedure_use): New check for explicit procedure interface.
	(add_subroutines): Add event_query.
	* intrinsic.h (gfc_check_event_query,gfc_resolve_event_query):
	New prototypes.
	* iresolve.c (gfc_resolve_event_query): New function.
	* iso-fortran-env.def (event_type): New type.
	* match.c (event_statement,gfc_match_event_post,gfc_match_event_wait):
	New functions.
	(gfc_match_name): New event post and event wait.
	* match.h (gfc_match_event_post,gfc_match_event_wait):
	New prototypes.
	* module.c (ab_attribute): Add AB_EVENT_COMP.
	(attr_bits): Likewise.
	(mio_symbol_attribute): Handle event_comp attribute.
	* parse.c (decode_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
	(next_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
	(gfc_ascii_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
	(parse_derived): Check for event_type components.
	* resolve.c (resolve_allocate_expr): Check for event variable def.
	(resolve_lock_unlock): Renamed to resolve_lock_unlock_event. It
	includes logic for locks and events.
	(gfc_resolve_code): Call it.
	(gfc_resolve_symbol): New check for event variable to be a corray.
	* st.c (gfc_free_statement): Handle new EXEC_EVENT_POST and
	EXEC_EVENT_WAIT.
	* trans-decl.c (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
	gfor_fndecl_caf_event_query): New global variables.
	(generate_coarray_sym_init): Checking for event_type.
	(gfc_conv_procedure_call): Check for C bind attribute.
	* trans-intrinsic.c (conv_intrinsic_event_query): New function.
	(conv_intrinsic_move_alloc): Call it.
	* trans-stmt.c (gfc_trans_lock_unlock): Passing address
	of actual argument.
	(gfc_trans_sync): Likewise.
	(gfc_trans_event_post_wait): New function.
	* trans-stmt.h (gfc_trans_event_post_wait): New prototype.
	* trans-types.c (gfc_get_derived_type): Integer_kind as event_type.
	* trans.c (gfc_allocate_using_lib): New argument and logic for events.
	(gfc_allocate_allocatable): Passing new argument.
	(trans_code): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT.
	* trans.h (gfc_coarray_type): New elements.
	(gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
	gfor_fndecl_caf_event_query): Declare them.

2015-12-02  Tobias Burnus  <burnus@net-b.de>
	    Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>

	* gfortran.dg/coarray/event_1.f90: New.
	* gfortran.dg/coarray/event_2.f90: New.

Co-Authored-By: Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>

From-SVN: r231208
2015-12-02 21:59:05 +00:00
Jerry DeLisle
6e9966e830 re PR fortran/52251 (Nonadvancing I/O and the t edit descriptor)
2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/52251
	* io/transfer.c (formatted_transfer_scalar_write): Reset skips count.
	(finalize_transfer): For ADVANCE_NO, emit pending spaces and reset the
	skip count.

2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.dg/fmt_t_8.f90: New test.

From-SVN: r230734
2015-11-23 00:40:51 +00:00
Jerry DeLisle
ba67259c00 write_float.def (output_float): Move block determining room for leading zero to before checkng g0 formatting.
2015-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/write_float.def (output_float): Move block determining
	room for leading zero to before checkng g0 formatting.

From-SVN: r230728
2015-11-22 22:14:46 +00:00
Francois-Xavier Coudert
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
Janne Blomqvist
71cda9cac8 PR 53379 Print backtrace on error termination.
2015-09-05  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/53379
	* libgfortran.h (exit_error): New prototype.
	* runtime/error.c (exit_error): New function.
	(os_error): Call exit_error instead of exit.
	(runtime_error): Likewise.
	(runtime_error_at): Likewise.
	(internal_error): Likewise.
	(generate_error): Likewise.
	(notify_std): Likewise.
	* runtime/stop.c (error_stop_string): Likewise.
	(error_stop_numeric): Likewise.

From-SVN: r227503
2015-09-05 01:17:11 +03:00
Janne Blomqvist
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
Janne Blomqvist
1b0b9fcb92 PR 67414 Better diagnostics on backtrace failure, gf_strerror bugfix
2015-09-02  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/67414
	* io/write.c (gfc_itoa): Move to runtime/string.c.
	* libgfortran.h (show_backtrace): Make arg bool.
	(gfc_itoa): New prototype.
	* runtime/backtrace.c (struct mystate): Change type of try_simple
	field, add in_signal_handler field.
	(error_callback): Print out error number, or if not in a signal
	handler, the error message.
	(show_backtrace): Change type of arg, change initialization of
	struct mystate.
	(backtrace): Call show_backtrace with correct arg type.
	* runtime/compile_options.c (backtrace_handler): Call with correct
	arg type.
	* runtime/error.c (sys_abort): Likewise.
	(gf_strerror): Handle newlocale() failure.
	* runtime/string.c (gfc_itoa): Function moved here from
	io/write.c.

From-SVN: r227404
2015-09-02 17:51:40 +03:00
Francois-Xavier Coudert
6a822a7403 re PR fortran/47571 (undefined reference to clock_gettime in Linux build of 02/01/2011)
PR libfortran/47571
	* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Reinstate.
	* configure.ac: Call LIBGFOR_GTHREAD_WEAK again.
	* config.h.in: Regenerate.
	* configure: Regenerate.

From-SVN: r227347
2015-08-31 14:02:43 +00:00
Francois-Xavier Coudert
e78549932d re PR fortran/47571 (undefined reference to clock_gettime in Linux build of 02/01/2011)
PR libfortran/47571
	* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Remove.
	(LIBGFOR_CHECK_WEAKREF): New test.
	* configure.ac: Call LIBGFOR_CHECK_WEAKREF instead of
	LIBGFOR_GTHREAD_WEAK.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* intrinsics/system_clock.c: Use SUPPORTS_WEAKREF instead of
	SUPPORTS_WEAK and GTHREAD_USE_WEAK.

From-SVN: r227335
2015-08-31 10:37:30 +00:00
Jerry DeLisle
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
Francois-Xavier Coudert
4879fba998 acinclude.m4: Remove LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT.
* acinclude.m4: Remove LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT.
	* configure.ac: Remove checks for strcasestr, execl, close,
	getrlimit, readlink, getppid, powl, erfl, j0l, j1l, y0l, y1l,
	tgammal, and lgammal.
	* config.h.in: Regenerate.
	* configure: Regenerate.

From-SVN: r227319
2015-08-29 13:17:05 +00:00
Francois-Xavier Coudert
34ae233a54 * io/unix.c (min): Remove unused macro.
From-SVN: r227317
2015-08-29 13:01:54 +00:00
Francois-Xavier Coudert
8b40ca6a38 re PR fortran/53668 (Cray-pointer diagnostic enhancement)
PR fortran/53668

	* intrinsic.c (add_functions, add_subroutines): Remove resolution
	functions for FREE and MALLOC.
	* intrinsic.h (gfc_resolve_malloc, gfc_resolve_free): Remove.
	* iresolve.c (gfc_resolve_malloc, gfc_resolve_free): Remove.
	* trans-intrinsic.c (conv_intrinsic_free,
	gfc_conv_intrinsic_malloc): New functions.

	* intrinsics/malloc.c: Adapt comments.

From-SVN: r227311
2015-08-28 20:46:43 +00:00
James Greenhalgh
bd459d0b1d [Patch] Add to the libgfortran/newlib bodge to "detect" ftruncate support in ARM/AArch64/SH
* configure.ac: Auto-detect newlib function support unless we
	know there are issues when configuring for a host.
	* configure: Regenerate.

From-SVN: r227301
2015-08-28 14:57:57 +00:00
Francois-Xavier Coudert
ed019753cb re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument)
PR fortran/29600

	* Makefile.am: Add generated/shape_i{1,2}.c
	* Makefile.in: Regenerate.
	* generated/shape_i1.c: New generated file.
	* generated/shape_i2.c: New generated file.
	* generated/shape_i4.c: Regenerate.
	* generated/shape_i8.c: Regenerate.
	* generated/shape_i16.c: Regenerate.
	* gfortran.map (GFORTRAN_1.7): Add _gfortran_shape_{1,2}.
	* m4/shape.m4: Fix parameter type.

	* gfortran.dg/shape_8.f90: New test.

From-SVN: r227210
2015-08-26 12:37:42 +00:00
Francois-Xavier Coudert
485adf79b5 libgfortran.h (show_variables): Remove prototype.
* libgfortran.h (show_variables): Remove prototype.
	* runtime/environ.c (print_spaces, var_source, show_integer,
	show_boolean, show_sep, show_string): Remove functions.
	* runtime/main.c (init): Remove dead code.

From-SVN: r227208
2015-08-26 06:34:05 +00:00
Francois-Xavier Coudert
693ac2ab35 unit.c (get_internal_unit): Make default sign mode unspecified.
* io/unit.c (get_internal_unit): Make default sign mode unspecified.
	(init_units): Make default sign mode unspecified.

From-SVN: r227178
2015-08-25 16:27:43 +00:00
Francois-Xavier Coudert
a139f28147 * libgfortran.h (check_buffered): Remove unused prototype.
From-SVN: r227174
2015-08-25 15:26:02 +00:00
Francois-Xavier Coudert
5cdf54b765 re PR libfortran/57496 (I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with -ffpe-trap=overflow)
PR libfortran/57496
	* io/write_float.def: Use built-in type-generic functions defined
	by libgfortran.h for isfinite, isnan, and signbit.

From-SVN: r227136
2015-08-24 16:31:47 +00:00
Francois-Xavier Coudert
ad4f95e395 re PR libfortran/54572 (Use libbacktrace library)
PR libfortran/54572

	* Makefile.def: Make libgfortran depend on libbacktrace.
	* Makefile.in: Regenerate.

	* config-lang.in: Add libbacktrace to target_libs.

	* Makefile.am (libgfortran_la_LDFLAGS): Link in libbacktrace.
	(AM_CPPFLAGS): Add libbacktrace directories to include paths.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove checks for strtok_r, wait, execve, pipe,
	and dup2. Remove call to GCC_CHECK_UNWIND_GETIPINFO.
	* libgfortran.h (full_exe_path, find_addr2line, backtrace): Remove
	prototypes.
	(show_backtrace): Add prototype.
	* runtime/backtrace.c: Rework file entirely.
	* runtime/compile_options.c (backtrace_handler): Rename backtrace
	to show_backtrace.
	(maybe_find_addr2line): Remove function.
	(set_options): Remove call to maybe_find_addr2line.
	* runtime/error.c (sys_abort): Rename backtrace to show_backtrace.
	* runtime/main.c (store_exe_path): Empty function body.
	(full_exe_path, gfstrtok_r, find_addr2line): Remove functions.
	(cleanup): Don't free removed variables.
	* runtime/minimal.c (full_exe_path): Remove function.
	(set_args): Don't set exe_path.

	* gfortran.dg/backtrace_1.f90: New test.

From-SVN: r227106
2015-08-23 21:50:30 +00:00
François-Xavier Coudert
1487cca00c re PR libfortran/62296 (EXECUTE_COMMAND_LINE not F2008 conforming)
PR libfortran/62296

	* intrinsics/execute_command_line.c (EXEC_INVALIDCOMMAND): New
	error code.
	(cmdmsg_values): New error message.
	(set_cmdstat): Rework runtime error.
	(execute_command_line): Handle invalid command line error status.

	* gfortran.dg/execute_command_line_2.f90: New test.

From-SVN: r227105
2015-08-23 21:24:49 +00:00
Steven G. Kargl
50060d9a03 re PR libfortran/67140 (undefined reference to _gfortran_mvbits_i16)
2015-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libfortran/67140
	* intrinsics/mvbits.c: Fix build for paltforms without c_int128_t.

From-SVN: r226769
2015-08-10 21:45:01 +00:00
Steven G. Kargl
0238e1e98a [multiple changes]
2015-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libfortran/67140
	* gfortran.map: Add _gfortran_mvbits_i16.
	* intrinsics/mvbits.c: Generate mvbits for c_int128_t.

2015-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR libfortran/67140
	* gfortran.dg/pr67140.f90: New test.

From-SVN: r226764
2015-08-10 17:42:00 +00:00
Francois-Xavier Coudert
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
Francois-Xavier Coudert
c2cc83bc88 re PR libfortran/66458 (Loading libgfortran.so changes the FPU exception flags)
PR libfortran/66458
	* runtime/main.c (init): Only call set_fpu() if requested by user.

From-SVN: r226725
2015-08-07 16:23:53 +00:00
Francois-Xavier Coudert
00ebbcbc59 * runtime/compile_options.c (set_options): Fix typos.
From-SVN: r226686
2015-08-06 17:42:19 +00:00
Uros Bizjak
f8bdb6a56b * config/fpu-387.h: Remove unwanted whitespace.
From-SVN: r226550
2015-08-04 11:24:15 +02:00
Uros Bizjak
9f8aa64ac1 fpu-387.h (get_fpu_trap_exceptions): Add temporary variable to improve generated code.
* config/fpu-387.h (get_fpu_trap_exceptions): Add temporary variable
	to improve generated code.

From-SVN: r226549
2015-08-04 11:16:52 +02:00
Francois-Xavier Coudert
22a499884f re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)
PR fortran/64022

	* simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
	support to all real kinds.

	* ieee/ieee_exceptions.F90: Support all real kinds.
	* ieee/ieee_arithmetic.F90: Likewise.
	* ieee/ieee_helper.c (ieee_class_helper_10,
	ieee_class_helper_16): New functions
	* gfortran.map (GFORTRAN_1.7): Add entries.

	* gfortran.dg/ieee/ieee_7.f90: Adjust test.
	* gfortran.dg/ieee/large_1.f90: New test.

From-SVN: r226548
2015-08-04 07:27:19 +00:00
Uros Bizjak
c276d6055e re PR libfortran/66650 (libgfortran: warning: left shift of negative value [-Wshift-negative-value])
PR libgfortran/66650
	* libgfortran.h (GFC_DTYPE_SIZE_MASK): Rewrite to avoid
	"left shift of negative value" warning.

From-SVN: r226355
2015-07-29 17:42:03 +02:00
Janne Blomqvist
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
Francois-Xavier Coudert
43cbef9555 re PR libfortran/40267 (Eventually get rid of libgfortranbegin.a)
PR libfortran/40267
	* Makefile.am: Remove libgfortranbegin targets.
	* Makefile.in: Regenerate.
	* fmain.c: Remove.

From-SVN: r225445
2015-07-06 08:22:34 +00:00
Szabolcs Nagy
85da5c3024 libstdc++, libgfortran gthr workaround for musl
On behalf of szabolcs.nagy@arm.com

[libstdc++-v3/]
2015-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/os/generic/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): Define.
	* configure.host (os_include_dir): Set to "os/generic" for linux-musl*.

[libgfortran/]
2015-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* acinclude.m4 (GTHREAD_USE_WEAK): Define as 0 for *-*-musl*.
	* configure: Regenerate.

From-SVN: r222329
2015-04-22 14:24:11 +00:00
Jerry DeLisle
72cb12b077 re PR libfortran/65234 (Output descriptor (*(1E15.7)) not accepted)
2015-04-21 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/65234
	* io/format.c (parse_format_list): Set the seen_dd flag in all
	cases where a data descriptor has been seen.

From-SVN: r222274
2015-04-21 18:23:20 +00:00
Jerry DeLisle
b45fe62d45 re PR fortran/56743 (Namelist bug with comment and no blank)
2015-04-21 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/56743
	* io/list_read.c (CASE_SEPARATORS): Add case for '!'.
	(is_separator): Add condition for '!'.
	(eat_separator): Use notify_std to warn or errord if '!' is
	encountered before a proper separator.

From-SVN: r222271
2015-04-21 16:13:54 +00:00
Jerry DeLisle
241cbc7a5f re PR fortran/65089 (FAIL: gfortran.dg/io_real_boz(2|_[45]).f90 when tested with -fsanitize=address)
2015-04-14 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/65089
	* io/format.h (free_format): New function to free memory
	allocated for building format error messages.
	* io/format.c (format_error): Add checks before freeing memory
	to avoid potential segfaults and free formatting data when
	needed on error conditions. Always allocate and NULL terminate
	the string.
	* io/transfer.c (st_read_done, st_write_done): Use new
	free_format function to clean up memory allocations when done.

From-SVN: r222111
2015-04-15 01:27:03 +00:00
Jerry DeLisle
d520fea881 re PR fortran/65596 (NAMELIST bug with f2003: reads too far)
2015-03-28 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/65596
	* io/transfer.c (data_transfer_init): If in namelist mode and
	delimiter is not specified, set it to DELIM_QUOTE, independent
	of -std.
	* io/unit.c (init_units): Set flags.delim to the correct
	initial value of DELIM_UNSPECIFIED.

From-SVN: r221753
2015-03-28 13:27:58 +00:00
Jerry DeLisle
9c5b1bf795 re PR fortran/65541 (namelist regression)
2015-03-25 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/65541
	* io/write.c (nml_write_obj): Convert '+' to '%' before emitting
	object names in namelists.

From-SVN: r221682
2015-03-26 02:44:34 +00:00
Jerry DeLisle
4bfbd309bd re PR libfortran/59513 (Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE)
2015-03-22 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/59513
	* io/transfer.c (data_transfer_init): Do not error for
	-std=legacy.

From-SVN: r221572
2015-03-22 18:42:52 +00:00
Jerry DeLisle
d4b35ef74c re PR fortran/64432 (SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate)
2015-03-16 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/64432
	* intrinsics/system_clock.c (system_clock4, system_clock8):
	Cleanup some whitespace.

From-SVN: r221472
2015-03-17 01:04:58 +00:00
Thomas Schwinge
17abb5ac38 libgfortran LIBGFOR_MINIMAL enhancements.
Based on GCC trunk r220892, for nvptx-none:

                    === gfortran Summary ===

    # of expected passes            [-31320-]{+32117+}
    # of unexpected failures        [-7222-]{+6821+}
    # of expected failures          78
    # of unresolved testcases       [-6441-]{+6158+}
    # of untested testcases         [-432-]{+391+}
    # of unsupported tests          639

	libgfortran/
	* caf/single.c (caf_runtime_error): Revert 2014-11-28 changes.
	* runtime/minimal.c (STRERR_MAXSZ): Don't define.
	(runtime_error_at, sys_abort): Bring more in line with the
	non-LIBGFOR_MINIMAL code.
	(runtime_warning_at, internal_error): New functions.

From-SVN: r221363
2015-03-11 22:42:56 +01:00
Janne Blomqvist
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
Alessandro Fanfarillo
9315dff064 trans.h (caf_sync_memory): New function decl tree.
2015-03-10  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
            Tobias Burnus  <burnus@net-b.de>

        * trans.h (caf_sync_memory): New function decl tree.
        * trans-decl.c (gfc_build_builtin_function_decls): Define it.
        (create_main_function): Don't call sync_synchronize and leave
        it to the CAF library.
        * trans-stmt.c (gfc_trans_stop): Ditto.
        (gfc_trans_sync): Ditto; add call library call for sync memory.

        * gfortran.dg/coarray_sync_memory.f90: New.

        * caf/libcaf.h (_gfortran_caf_sync_memory): New prototype.
        * caf/single.c (_gfortran_caf_sync_memory): Implement.
        (_gfortran_caf_sync_all, _gfortran_caf_sync_image): Add
        __asm__ __volatile___ ("":::"memory").


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r221329
2015-03-10 18:58:01 +01:00
Jerry DeLisle
80f6181e27 re PR fortran/57822 (I/O: "(g0)" wrongly prints "E+0000")
2015-02-10 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/57822
	* io/write_float.def (output_float): Apply fix of previous patch
	to correctly calculate the exponent number of digits and take
	care of wide character output.

From-SVN: r220606
2015-02-11 04:29:06 +00:00
Jerry DeLisle
94ce26f1b7 re PR fortran/57822 (I/O: "(g0)" wrongly prints "E+0000")
2015-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/57822
	* io/write_float.def (output_float): If doing g0 editing and
	exponent is zero, do not emit exponent.

From-SVN: r220564
2015-02-10 02:49:58 +00:00
Jerry DeLisle
1060d9404d re PR fortran/60956 (error reading (and writing) large text files in gfortran)
2015-02-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/60956
	* io/fbuf.c (fbuf_flush_list): New function that only flushes
	if current fbuf position exceeds a limit.
	* io/fbuf.h: Declare the new function.
	* io/io.h (enum unit_mode): Add two new modes.
	* io/list_read.c (list_formatted_read_scalar): Call new function.
	* io/write.c: Include fbuf.h. (list_formatted_write_scalar):
	Call new function.

From-SVN: r220505
2015-02-07 15:13:15 +00:00
Janne Blomqvist
7165d8f191 PR libfortran/64770 Segfault when trying to open existing file with status="new".
libgfortran ChangeLog:

2015-01-24  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/64770
	* io/unit.c (filename_from_unit): Check that u->filename != NULL
	before calling strdup.

testsuite ChangeLog:

2015-01-24  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/64770
	* gfortran.dg/open_new_segv.f90: New test.

From-SVN: r220086
2015-01-24 23:52:34 +02:00
Jerry DeLisle
bb295963d4 re PR fortran/61933 (Inquire on internal units)
2015-01-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/61933
	* io/inquire.c (inquire_via_unit): Set existing to true for
	any negative unit that is currently connected and any positive
	units within range of KIND=4 value.  The unit value for any out
	of range case that may occur if the user is using a KIND=8 will
	have been set to -2 which is reserved and can never be opened,
	and therefore the unit does not exist.

From-SVN: r220024
2015-01-23 02:01:10 +00:00
Jerry DeLisle
351b443252 re PR fortran/61933 (Inquire on internal units)
2015-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/61933
	* io/inquire.c (inquire_via_unit): Set existing to true if a
	gfc_unit stucture was found for the given unit number.
	* runtime/error.c (translate_error): Add case for
	LIBERROR_INQUIRE_INTERNAL_UNIT.

From-SVN: r219631
2015-01-15 03:57:29 +00:00
Jakub Jelinek
5624e564d2 Update copyright years.
From-SVN: r219188
2015-01-05 13:33:28 +01:00
Tobias Burnus
09de7c2578 single.c (_gfortran_caf_co_reduce): New function.
2015-01-02  Tobias Burnus  <burnus@net-b.de>

        * caf/single.c (_gfortran_caf_co_reduce): New function.
        * caf/libcaf.h (_gfortran_caf_co_reduce): New prototype.

2015-01-02  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray/collectives_4.f90: New.

From-SVN: r219148
2015-01-02 18:42:52 +01:00
Bernd Schmidt
ee95f9288a Add support for a minimal version of libgfortran for accelerator targets.
* Makefile.am (AM_CFLAGS): Add -DLIBGFOR_MINIMAL if LIBGFOR_MINIMAL.
        (gfor_io_src, gfor_heper_src, gfor_src): Split into minimal and
        always included sources.
        * Makefile.in: Regenerate.
        * configure.ac (LIBGFOR_MINIMAL): New AM_CONDITIONAL.
        * configure: Regenerate.
        * caf/single.c (caf_runtime_error): Don't print messages if
        LIBGFOR_MINIMAL.
        * runtime/compile_options.c (fatal_error_in_progress,
        show_signal, backtrace_handler, maybe_find_addr2line): Guard with
        !defined LIBGFOR_MINIMAL.
        (set_options): Likewise for the backtrace code.
        * runtime/minimal.c: New file.

From-SVN: r218170
2014-11-28 17:39:15 +00:00
Uros Bizjak
cbe5b9605f env.c (getenv): Remove unused variable res_len.
* intrinsics/env.c (getenv): Remove unused variable res_len.

From-SVN: r218057
2014-11-25 19:29:42 +01:00
John David Anglin
67c4c16420 configure.ac: Guard include of <ieeefp.h>.
* configure.ac: Guard include of <ieeefp.h>.
	* configure: Rebuilt.

From-SVN: r218032
2014-11-24 23:27:36 +00:00
H.J. Lu
a699d67255 Always use PIC option with -shared in libtool
Libtool needs to pass PIC option -shared when creating shared object to
link regular object files with slim-lto archive.

	PR bootstrap/63784
	* libtool.m4: Add $pic_flag with -shared.

boehm-gc/

	PR bootstrap/63784
	* configure: Regenerated.

gcc/

	PR bootstrap/63784
	* configure: Regenerated.

libatomic/

	PR bootstrap/63784
	* configure: Regenerated.

libbacktrace/

	PR bootstrap/63784
	* configure: Regenerated.

libcc1/

	PR bootstrap/63784
	* configure: Regenerated.

libcilkrts/

	PR bootstrap/63784
	* configure: Regenerated.

libffi/

	PR bootstrap/63784
	* configure: Regenerated.

libgfortran/

	PR bootstrap/63784
	* configure: Regenerated.

libgomp/

	PR bootstrap/63784
	* configure: Regenerated.

libitm/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/classpath/

	PR bootstrap/63784
	* configure: Regenerated.

libobjc/

	PR bootstrap/63784
	* configure: Regenerated.

libquadmath/

	PR bootstrap/63784
	* configure: Regenerated.

libsanitizer/

	PR bootstrap/63784
	* configure: Regenerated.

libssp/

	PR bootstrap/63784
	* configure: Regenerated.

libstdc++-v3/

	PR bootstrap/63784
	* configure: Regenerated.

libvtv/

	PR bootstrap/63784
	* configure: Regenerated.

lto-plugin/

	PR bootstrap/63784
	* configure: Regenerated.

From-SVN: r217937
2014-11-21 08:49:17 -08:00
Janne Blomqvist
cb9365ac6a PR 60324 VLA related fixes to random number generator.
2014-11-16  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/60324
	* intrinsics/random.c (kiss_size): Rename to KISS_SIZE, make it a
	macro instead of a variable.
	(random_seed_i4): Make seed correct size, remove assert, KISS_SIZE
	related changes.
	(random_seed_i8): KISS_SIZE related changes.

From-SVN: r217623
2014-11-16 03:56:54 +02:00
Marek Polacek
47bf94b79a access.c: Include <stdlib.h>.
* intrinsics/access.c: Include <stdlib.h>.
	* intrinsics/chdir.c: Likewise.
	* intrinsics/chmod.c: Likewise.
	* intrinsics/link.c: Likewise.
	* intrinsics/perror.c: Likewise.
	* intrinsics/rename.c: Likewise.
	* intrinsics/symlnk.c: Likewise.
	* intrinsics/unlink.c: Likewise.

From-SVN: r217514
2014-11-13 18:07:44 +00:00
Janne Blomqvist
581d232670 PR 60324 Unbounded stack allocations in libgfortran.
2014-11-13  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/60324
	* configure: Regenerated.
	* configure.ac (AM_CFLAGS): Add Werror=vla.
	* libgfortran.h (gfc_alloca): Remove macro.
	(fc_strdup_notrim): New prototype.
	* intrinsics/access.c (access_func): Use fc_strdup rather than
	stack allocation.
	* intrinsics/chdir.c (chdir_i4_sub): Likewise.
	(chdir_i8_sub): Likewise.
	* intrinsics/chmod.c (chmod_internal): New function, move logic
	here.
	(chmod_func): Call chmod_internal.
	* intrinsics/env.c (getenv): Use fc_strdup rather than stack
	allocation.
	(get_environment_variable_i4): Likewise.
	* intrinsics/execute_command_line.c (execute_command_line):
	Likewise.
	* intrinsics/hostnm.c (hostnm_0): New function, use static buffer
	rather than VLA.
	(hostnm_i4_sub): Call hostnm_0.
	(hostnm_i8_sub): Likewise.
	(hostnm): Likewise.
	* intrinsics/link.c (link_internal): New function, use fc_strdup
	rather than stack allocation.
	(link_i4_sub): Call link_internal.
	(link_i8_sub): Likewise.
	(link_i4): Likewise.
	(link_i8): Likewise.
	* intrinsics/perror.c (perror_sub): Use fc_strdup rather than
	stack allocation.
	* intrinsics/random.c (random_seed_i4): Use static buffer rather
	than VLA, use _Static_assert to make sure it's big enough.
	* intrinsics/rename.c (rename_internal): New function, use
	fc_strdup rather than stack allocation.
	(rename_i4_sub): Call rename_internal.
	(rename_i8_sub): Likewise.
	(rename_i4): Likewise.
	(rename_i8): Likewise.
	* intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than
	stack allocation.
	(stat_i8_sub_0): Likewise.
	* intrinsics/symlink.c (symlnk_internal): New function, use
	fc_strdup rather than stack allocation.
	(symlnk_i4_sub): Call symlnk_internal.
	(symlnk_i8_sub): Likewise.
	(symlnk_i4): Likewise.
	(symlnk_i8): Likewise.
	* intrinsics/system.c (system_sub): Use fc_strdup rather than
	stack allocation.
	* intrinsics/unlink.c (unlink_i4_sub): Likewise.
	* io/file_pos.c (READ_CHUNK): Make it a macro rather than variable.
	* io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall
	back to xmalloc/free for large sizes.
	* io/read.c (read_f): Likewise.
	* io/transfer.c (MAX_READ): Make it a macro rather than variable.
	(WRITE_CHUNK): Likewise.
	* io/write_float.def (write_float): Use fixed stack buffer, fall
	back to xmalloc/free for large sizes.
	* runtime/string.c (fc_strdup_notrim): New function.

From-SVN: r217480
2014-11-13 14:05:01 +02:00
Francois-Xavier Coudert
ebf6d33b73 re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14))
toplevel:
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* libtool.m4: Fix globbing of darwin versions.

boehm-gc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

gcc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libatomic/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libbacktrace/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libcc1/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libcilkrts/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libffi/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libgfortran/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libgomp/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libitm/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libobjc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libquadmath/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libsanitizer/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libssp/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libstdc++-v3/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libvtv/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

lto-plugin/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libjava/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

libjava/classpath/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

zlib/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

From-SVN: r217366
2014-11-11 20:25:18 +00:00
Janne Blomqvist
9cbecd06be PR 47007 and 61847 Locale failures in libgfortran.
2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/47007
	PR libfortran/61847
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* configure.ac (AC_CHECK_HEADERS_ONCE): Check for xlocale.h.
	(AC_CHECK_FUNCS_ONCE): Check for newlocale, freelocale, uselocale,
	strerror_l.
	* io/io.h (locale.h): Include.
	(xlocale.h): Include if present.
	(c_locale): New variable.
	(old_locale): New variable.
	(old_locale_ctr): New variable.
	(old_locale_lock): New variable.
	(st_parameter_dt): Add old_locale member.
	* io/transfer.c (data_transfer_init): Set locale to "C" if doing
	formatted transfer.
	(finalize_transfer): Reset locale to previous.
	* io/unit.c (c_locale): New variable.
	(old_locale): New variable.
	(old_locale_ctr): New variable.
	(old_locale_lock): New variable.
	(init_units): Init c_locale, init old_locale_lock.
	(close_units): Free c_locale.
	* runtime/error.c (locale.h): Include.
	(xlocale.h): Include if present.
	(gf_strerror): Use strerror_l if available. Reset locale to
	LC_GLOBAL_LOCALE for strerror_r branch.

2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/47007
	PR libfortran/61847
	* gfortran.texi: Add note about locale issues to thread-safety
	section.

From-SVN: r217273
2014-11-10 02:17:16 +02:00
Janne Blomqvist
70480968b4 PR 63589 Fix splitting of PATH in find_addr2line.
2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/63589
	* configure.ac: Check for strtok_r.
	* runtime/main.c (gfstrtok_r): Fallback implementation of
	strtok_r.
	(find_addr2line): Use strtok_r to split PATH.
	* config.h.in: Regenerated.
	* configure: Regenerated.

From-SVN: r216449
2014-10-20 10:53:37 +03:00
Francois-Xavier Coudert
3b7ea188c0 f95-lang.c (gfc_init_builtin_functions): Add more floating-point built-ins.
* f95-lang.c (gfc_init_builtin_functions): Add more floating-point
	built-ins.
	* mathbuiltins.def (OTHER_BUILTIN): Define built-ins for logb,
	remainder, rint and signbit.
	* trans-decl.c (save_fp_state, restore_fp_state): Move to
	trans-intrinsic.c
	(gfc_generate_function_code): Use new names for these two functions.
	* trans-expr.c (gfc_conv_function_expr): Catch IEEE functions to
	emit code from the front-end.
	* trans-intrinsic.c (gfc_save_fp_state, gfc_restore_fp_state,
	conv_ieee_function_args, conv_intrinsic_ieee_builtin,
	conv_intrinsic_ieee_is_normal, conv_intrinsic_ieee_is_negative,
	conv_intrinsic_ieee_logb_rint, conv_intrinsic_ieee_rem,
	conv_intrinsic_ieee_next_after, conv_intrinsic_ieee_scalb,
	conv_intrinsic_ieee_copy_sign, gfc_conv_ieee_arithmetic_function):
	New functions.
	* trans.h (gfc_conv_ieee_arithmetic_function,
	gfc_save_fp_state, gfc_restore_fp_state): New prototypes.

	* ieee/ieee_helper.c (ieee_is_finite_*, ieee_is_nan_*,
	ieee_is_negative_*, ieee_is_normal_*, ieee_copy_sign_*,
	ieee_unordered_*, ieee_logb_*, ieee_rint_*, ieee_scalb_*,
	ieee_rem_*, ieee_next_after_*): Remove functions.
	* gfortran.map (GFORTRAN_1.5): Remove corresponding symbols.

From-SVN: r216036
2014-10-09 09:47:25 +00:00
Jerry DeLisle
c0c8f05093 re PR libfortran/63460 (Some namelists cannot be read from stdin (unit 5): Fortran runtime error: End of file)
2014-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libgfortran/63460
        * io/unit.c (init_units): Initialize the DELIM flag to
        UNSPECIFIED for the STDIN unit so that the flag is
        correctly set later.

From-SVN: r215908
2014-10-05 21:11:37 +00:00
Janne Blomqvist
47f233ef24 Fix typo in ChangeLog
From-SVN: r215743
2014-10-01 00:23:40 +03:00
Janne Blomqvist
b95216f778 Fix -Wmaybe-uninitialized warnings.
2014-10-01  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/pack_generic.c (pack_s_internal): Fix
	-Wmaybe-uninitialized warning.
	* m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
	(unpack1_'rtype_code`): Likewise.
	* generated/unpack_*.m4: Regenerated.

From-SVN: r215742
2014-10-01 00:15:58 +03:00
Janne Blomqvist
6c02304107 Add -Werror=implicit-function-declaration to AM_CFLAGS.
2014-09-30  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac (AM_CFLAGS): Add
	-Werror=implicit-function-declaration.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.
	* configure: Regenerated.

From-SVN: r215741
2014-09-30 23:05:33 +03:00
Tobias Burnus
a16ee37946 check.c (check_co_collective): Renamed from
2014-09-25  Tobias Burnus  <burnus@net-b.de>

gcc/fortran
        * check.c (check_co_collective): Renamed from
        * check_co_minmaxsum,
        handle co_reduce.
        (gfc_check_co_minmax, gfc_check_co_sum): Update call.
        (gfc_check_co_broadcast, gfc_check_co_reduce): New.
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
        GFC_ISYM_CO_REDUCE.
        * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
        * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
        proto types.
        * intrinsic.texi (CO_BROADCAST): Add.
        * trans.h (gfor_fndecl_co_broadcast): New.
        * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
        (gfc_build_builtin_function_decls): Add decl for it,
        * trans-intrinsic.c (conv_co_collective): Renamed from
        conv_co_minmaxsum. Handle co_reduce.
        (gfc_conv_intrinsic_subroutine): Handle co_reduce.

gcc/testsuite/
        * gfortran.dg/coarray/collectives_3.f90: New.
        * gfortran.dg/coarray_collectives_9.f90: New.
        * gfortran.dg/coarray_collectives_10.f90: New.
        * gfortran.dg/coarray_collectives_11.f90: New.
        * gfortran.dg/coarray_collectives_12.f90: New.

libgfortran/
        * caf/libcaf.h (_gfortran_caf_co_broadcast): New prototype.
        * caf/single.c (_gfortran_caf_co_broadcast): New.

From-SVN: r215579
2014-09-25 08:07:15 +02:00
Janne Blomqvist
f5aa660f90 Fix indentation
From-SVN: r215340
2014-09-18 00:59:09 +03:00
Janne Blomqvist
010718fc37 PR libfortran/62768 Use gfc_unit.filename also when HAVE_TTYNAME{_R} is not defined.
2014-09-18  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/62768
	* io/inquire.c (inquire_via_unit): Use gfc_unit.filename also when
	HAVE_TTYNAME{_R} is not defined.

From-SVN: r215338
2014-09-18 00:44:15 +03:00
Janne Blomqvist
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
Janne Blomqvist
00c7a3c72a Fix pad status check.
2014-09-10  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/transfer.c (read_block_form): Fix pad status check (found by
	Thomas Schwinge with -Wlogical-not-parentheses).

From-SVN: r215092
2014-09-10 00:23:25 +03:00
Tobias Burnus
93e2e0465e trans-decl.c (gfc_build_builtin_function_decls): Add may_require_tmp dummy argument.
2014-08-31  Tobias Burnus  <burnus@net-b.de>

gcc/fortran/
        * trans-decl.c (gfc_build_builtin_function_decls): Add
        may_require_tmp dummy argument.
        * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
        conv_caf_send): Handle may_require_tmp argument.
        (gfc_conv_intrinsic_function): Update call.
        * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
        _gfortran_caf_sendget): Update interface description.

gcc/testsuite/
        * gfortran.dg/coarray_lib_comm_1.f90: New.

libgfortran/
        * caf/libcaf.h (_gfortran_caf_send, _gfortran_caf_get,
        _gfortran_caf_sendget): Update prototype.
        * caf/single.c (_gfortran_caf_send, _gfortran_caf_get,
        _gfortran_caf_sendget): Handle may_require_tmp.

From-SVN: r214764
2014-08-31 08:32:06 +02:00
Steven G. Kargl
0d43a91d22 re PR libfortran/62188 (Array bounds overrun in bessel_yn_r4/8/16 and other functions)
2014-08-20  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libgfortran/62188
	* m4/bessel.m4: Avoid indexing off the end of an array.
	* generated/bessel_r10.c: Regenerated.
	* generated/bessel_r16.c: Ditto.
	* generated/bessel_r4.c: Ditto.
	* generated/bessel_r8.c: Ditto.

From-SVN: r214229
2014-08-20 16:18:27 +00:00
Tobias Burnus
bc0229f9f6 gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
gcc/fortran/
2014-08-14  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
        (_gfortran_caf_register): Update for locking/critical.
        (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
        * resolve.c (resolve_critical): New.
        (gfc_resolve_code): Call it.
        * trans-decl.c (gfor_fndecl_caf_critical,
        gfor_fndecl_caf_end_critical): Remove.
        (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
        (gfc_build_builtin_function_decls): Remove critical,
        assign locking declarations.
        (generate_coarray_sym_init): Handle locking and
        critical variables.
        * trans-stmt.c (gfc_trans_critical): Add calls to
        lock/unlock libcaf functions.
        * trans.h (gfc_coarray_type): Update locking, add
        critical enum values.
        (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
        (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.

libgfortran/
2014-08-14  Tobias Burnus  <burnus@net-b.de>

        * caf/libcaf.h (caf_register_t): Update for critical.
        (_gfortran_caf_critical, _gfortran_caf_end_critical): Remove.
        (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
        * caf/single.c (_gfortran_caf_register): Handle locking
        variables.
        (_gfortran_caf_sendget): Re-name args for consistency.
        (_gfortran_caf_lock, _gfortran_caf_unlock): Add.

From-SVN: r213979
2014-08-14 20:39:15 +02:00
Jakub Jelinek
62c986afde * runtime/memory.c (xmallocarray): Avoid division for the common case.
From-SVN: r213593
2014-08-04 17:46:33 +02:00
Jerry DeLisle
dbb400d707 re PR fortran/61632 (Improve error locus on large format strings)
2014-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/61632
	* io/format.c (format_error): Avoid invalid string pointer by
	using the fortran string length values to generate error string.
	(parse_format): Allocate the null terminator for the format
	string.

From-SVN: r212875
2014-07-20 20:03:41 +00:00
Tobias Burnus
42a8246dbd libgfortran.h (libcaf_atomic_codes): Add.
2014-07-12  Tobias Burnus  <burnus@net-b.de>

gcc/fortran/
        * libgfortran.h (libcaf_atomic_codes): Add.
        * trans-decl.c (gfor_fndecl_caf_atomic_def,
        gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
        gfor_fndecl_caf_atomic_op): New variables.
        (gfc_build_builtin_function_decls): Initialize them.
        * trans.h (gfor_fndecl_caf_atomic_def,
        gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
        gfor_fndecl_caf_atomic_op): New variables.
        * trans-intrinsic.c (conv_intrinsic_atomic_op,
        conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
        Add library calls with -fcoarray=lib.

libgfortran/
        * caf/libcaf.h (_gfortran_caf_atomic_define,
        _gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
        _gfortran_caf_atomic_cas): New prototypes.
        * caf/single.c (_gfortran_caf_atomic_define,
        _gfortran_caf_atomic_ref, _gfortran_caf_atomic_op,
        _gfortran_caf_atomic_cas): New functions.

From-SVN: r212484
2014-07-12 21:02:57 +02:00
Francois-Xavier Coudert
56710419ba fpu-*.h (get_fpu_rounding_mode, [...]): Clean up, mark unreachable code as such.
* config/fpu-*.h (get_fpu_rounding_mode, set_fpu_rounding_mode,
	support_fpu_rounding_mode): Clean up, mark unreachable code as such.

From-SVN: r212423
2014-07-10 08:45:38 +00:00
Francois-Xavier Coudert
f5168e47a8 libgfortran.h (support_fpu_underflow_control, [...]): New prototypes.
* libgfortran.h (support_fpu_underflow_control,
        get_fpu_underflow_mode, set_fpu_underflow_mode): New prototypes.
	* config/fpu-*.h (support_fpu_underflow_control,
	get_fpu_underflow_mode, set_fpu_underflow_mode):
	New functions.
	* ieee/ieee_arithmetic.F90: Support underflow control.

	* gfortran.dg/ieee/underflow_1.f90: New file.

From-SVN: r212407
2014-07-09 20:32:12 +00:00
Rainer Orth
7f7563747e Use FP_RN etc. unconditionally
* config/fpu-sysv.h (get_fpu_rounding_mode): Use FP_RN, FP_RP,
	FP_RM, FP_RZ unconditionally.
	(set_fpu_rounding_mode): Likewise.

From-SVN: r212350
2014-07-08 09:08:49 +00:00
Francois-Xavier Coudert
afe31cdb2c * libgfortran.h: Assume __GNUC__.
From-SVN: r212328
2014-07-07 11:59:27 +00:00
Francois-Xavier Coudert
77777b33a8 stop.c: Use C11 _Noreturn.
* runtime/stop.c: Use C11 _Noreturn.
	* libgfortran.h: Use C11 _Noreturn in prototypes.
	Move REALPART, IMAGPART and COMPLEX_ASSIGN macros...
	* intrinsics/c99_functions.c: ... here.

From-SVN: r212327
2014-07-07 09:13:48 +00:00
Francois-Xavier Coudert
a709346f06 fpu-387.h, [...]: Use static assertions.
* config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
	config/fpu-glibc.h: Use static assertions.

From-SVN: r212323
2014-07-07 07:47:41 +00:00
Rainer Orth
de51fc1b15 Restore Solaris/SPARC bootstrap
* configure, config.h.in: Regenerate.
	* config/fpu-sysv.h: Include <assert.h>.

From-SVN: r212307
2014-07-05 20:43:07 +00:00
Uros Bizjak
1680a43208 * config/fpu-sysv.h (void set_fpu): Remove stalled comment.
From-SVN: r212235
2014-07-02 18:11:46 +02:00
Francois-Xavier Coudert
4a72ba02f4 * config/fpu-glibc.h: Fix comment about FE_DENORMAL.
From-SVN: r212226
2014-07-02 09:17:04 +00:00
Uros Bizjak
5b0936da94 configure.host (ieee_flags): Add -mieee for alpha*.
libgfortran/ChangeLog:

	* configure.host (ieee_flags): Add -mieee for alpha*.

	* config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
	GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
	* config/fpu-aix.h (support_fpu_rounding_mode): Ditto.

testsuite/ChangeLog:

	* gfortran.dg/ieee/ieee_1.F90 (dg-additional-options): Remove -O0.
	* gfortran.dg/ieee/ieee_rounding_1.f90 (dg-additional-options): Add.

From-SVN: r212224
2014-07-02 10:45:08 +02:00
Francois-Xavier Coudert
25ef060ae0 fpu-387.h (my_fenv_t): Amend structure so it also works on mingw32.
* config/fpu-387.h (my_fenv_t): Amend structure so it also works
	on mingw32.

From-SVN: r212126
2014-06-29 19:51:59 +00:00
Jerry DeLisle
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
Francois-Xavier Coudert
8b19810222 re PR fortran/29383 (Fortran 2003/F95[TR15580:1999]: Floating point exception (IEEE) support)
PR fortran/29383

gcc/fortran/
	* gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
	* libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
	both C and Fortran.
	* expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
	* simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
	* module.c (mio_symbol): Keep track of symbols which came from
	intrinsic modules.
	(gfc_use_module): Keep track of the IEEE modules.
	* trans-decl.c (gfc_get_symbol_decl): Adjust code since
	we have new intrinsic modules.
	(gfc_build_builtin_function_decls): Build decls for
	ieee_procedure_entry and ieee_procedure_exit.
	(is_from_ieee_module, is_ieee_module_used, save_fp_state,
	restore_fp_state): New functions.
	(gfc_generate_function_code): Save and restore floating-point
	state on procedure entry/exit, when IEEE modules are used.
	* intrinsic.texi: Document the IEEE modules.

libgfortran/
	* configure.host: Add checks for IEEE support, rework priorities.
	* configure.ac: Define IEEE_SUPPORT, check for fpsetsticky and
	fpresetsticky.
	* configure: Regenerate.
	* Makefile.am: Build new ieee files, install IEEE_* modules.
	* Makefile.in: Regenerate.
	* gfortran.map (GFORTRAN_1.6): Add new symbols.
	* libgfortran.h (get_fpu_trap_exceptions, set_fpu_trap_exceptions,
	support_fpu_trap, set_fpu_except_flags, support_fpu_flag,
	support_fpu_rounding_mode, get_fpu_state, set_fpu_state): New
	prototypes.
	* config/fpu-*.h (get_fpu_trap_exceptions,
	set_fpu_trap_exceptions, support_fpu_trap, set_fpu_except_flags,
	support_fpu_flag, support_fpu_rounding_mode, get_fpu_state,
	set_fpu_state): New functions.
	* ieee/ieee_features.F90: New file.
	* ieee/ieee_exceptions.F90: New file.
	* ieee/ieee_arithmetic.F90: New file.
	* ieee/ieee_helper.c: New file.

gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_fortran_ieee): 
	New function.
	* gfortran.dg/ieee/ieee.exp: New file.
	* gfortran.dg/ieee/ieee_1.F90: New file.
	* gfortran.dg/ieee/ieee_2.f90: New file.
	* gfortran.dg/ieee/ieee_3.f90: New file.
	* gfortran.dg/ieee/ieee_4.f90: New file.
	* gfortran.dg/ieee/ieee_5.f90: New file.
	* gfortran.dg/ieee/ieee_6.f90: New file.
	* gfortran.dg/ieee/ieee_7.f90: New file.
	* gfortran.dg/ieee/ieee_rounding_1.f90: New file.

From-SVN: r212102
2014-06-28 14:17:41 +00:00
Jerry DeLisle
b896e6744e re PR libfortran/61499 (Internal read of negative integer broken)
2014-06-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/61499
	* io/list_read.c (eat_spaces): Use a 'for' loop instead of
	'while' loop to skip the loop if there are no bytes left in the
	string. Only seek if actual spaces can be skipped.

From-SVN: r212059
2014-06-27 04:23:36 +00:00
Tobias Burnus
5c75088c80 resolve.c (resolve_ordinary_assign): Don't invoke caf_send when assigning a coindexed RHS scalar to a noncoindexed...
2014-06-25  Tobias Burnus  <burnus@net-b.de>

fortran/
        * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
        when assigning a coindexed RHS scalar to a noncoindexed LHS
        array.
        * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
        for a noncoindexed scalar RHS.

gcc/testsuite/
        * gfortran.dg/coarray/coindexed_1.f90: New.

libgfortran/
        * caf/single.c (assign_char4_from_char1,
        * assign_char1_from_char4,
        convert_type): New static functions.
        (_gfortran_caf_get, _gfortran_caf_send): Use them.

From-SVN: r211993
2014-06-25 22:31:32 +02:00
Tobias Burnus
7f6c4159bf trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing.
gcc/fortran/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
        passing.

gcc/testsuite/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray/collectives_2.f90: Extend
        and make valid.

libgfortran/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
        _gfortran_caf_co_min): Fix stat setting.

From-SVN: r211816
2014-06-19 09:16:34 +02:00
Tobias Burnus
b511626828 check.c (gfc_check_atomic, [...]): Use argument for GFC_ISYM_CAF_GET.
gcc/fortran/
2014-06-17  Tobias Burnus  <burnus@net-b.de>

        * check.c (gfc_check_atomic, gfc_check_atomic_def):
        Use argument for GFC_ISYM_CAF_GET.
        * resolve.c (resolve_variable): Enable CAF_GET insertion.
        (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
        (resolve_ordinary_assign): Enable CAF_SEND insertion.
        * trans-const.c (gfc_build_string_const,
        gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
        * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
        gfor_fndecl_caf_sendget): New global variables.
        (gfc_build_builtin_function_decls): Initialize them;
        update co_min/max/sum initialization.
        * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
        get_tree_for_caf_expr and removed static.
        (gfc_conv_procedure_call): Update call.
        * trans-intrinsic.c (caf_get_image_index,
        conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
        get_caf_token_offset, gfc_conv_intrinsic_caf_get,
        conv_caf_send): New.
        (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
        gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
        (conv_co_minmaxsum): Update call for remove unused vector
        subscript.
        (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
        Skip a CAF_GET of the argument.
        * trans-types.c (gfc_get_caf_vector_type): New.
        * trans-types.h (gfc_get_caf_vector_type): New.
        * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
        gfor_fndecl_caf_sendget): New global variables.
        (gfc_get_tree_for_caf_expr): New prototypes.

libgfortran/
2014-06-17  Tobias Burnus  <burnus@net-b.de>

        * caf/libcaf.h (gfc_descriptor_t): New typedef.
        (caf_vector_t): Update.
        (_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min):
        Remove vector-subscript argument.
        (_gfortran_caf_co_send, _gfortran_caf_co_get,
        _gfortran_caf_co_sendget): New.
        * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
        _gfortran_caf_co_min): Remove vector-subscript argument.
        (_gfortran_caf_co_send, _gfortran_caf_co_get,
        _gfortran_caf_co_sendget): New.

gcc/testsuite/
2014-06-17  Tobias Burnus  <burnus@net-b.de>
            Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>

        * gfortran.dg/coarray/send_array.f90: New.
        * gfortran.dg/coarray/get_array.f90: New.
        * gfortran.dg/coarray/sendget_array.f90: New.
        * gfortran.dg/coarray/collectives_1.f90: Correct subroutine
        names.
        * gfortran.dg/coarray/collectives_2.f90: New.



Co-Authored-By: Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>

From-SVN: r211748
2014-06-17 22:54:14 +02:00
Richard Sandiford
31107d5d29 Rotate ChangeLog for 2013.
From-SVN: r211722
2014-06-17 06:55:59 +03:00
Janne Blomqvist
92e6f3a43e Introduce xmallocarray, an overflow checking variant of xmalloc.
2014-06-17  Janne Blomqvist  <jb@gcc.gnu.org>

	* libgfortran.h (xmallocarray): New prototype.
	* runtime/memory.c (xmallocarray): New function.
	(xcalloc): Check for nonzero separately instead of multiplying.
	* generated/*.c: Regenerated.
	* intrinsics/cshift0.c (cshift0): Call xmallocarray instead of
	xmalloc.
	* intrinsics/eoshift0.c (eoshift0): Likewise.
	* intrinsics/eoshift2.c (eoshift2): Likewise.
	* intrinsics/pack_generic.c (pack_internal): Likewise.
	(pack_s_internal): Likewise.
	* intrinsics/reshape_generic.c (reshape_internal): Likewise.
	* intrinsics/spread_generic.c (spread_internal): Likewise.
	(spread_internal_scalar): Likewise.
	* intrinsics/string_intrinsics_inc.c (string_trim): Likewise.
	(string_minmax): Likewise.
	* intrinsics/transpose_generic.c (transpose_internal): Likewise.
	* intrinsics/unpack_generic.c (unpack_internal): Likewise.
	* io/list_read.c (nml_touch_nodes): Don't cast xmalloc return value.
	* io/transfer.c (st_set_nml_var): Call xmallocarray instead of
	xmalloc.
	* io/unit.c (get_internal_unit): Likewise.
	(filename_from_unit): Don't cast xmalloc return value.
	* io/write.c (nml_write_obj): Likewise, formatting.
	* m4/bessel.m4 (bessel_jn_r'rtype_kind`): Call xmallocarray
	instead of xmalloc.
	(besse_yn_r'rtype_kind`): Likewise.
	* m4/cshift1.m4 (cshift1): Likewise.
	* m4/eoshift1.m4 (eoshift1): Likewise.
	* m4/eoshift3.m4 (eoshift3): Likewise.
	* m4/iforeach.m4: Likewise.
	* m4/ifunction.m4: Likewise.
	* m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code):
	Likewise.
	* m4/in_pack.m4 (internal_pack_'rtype_ccode`): Likewise.
	* m4/matmul.m4 (matmul_'rtype_code`): Likewise.
	* m4/matmull.m4 (matmul_'rtype_code`): Likewise.
	* m4/pack.m4 (pack_'rtype_code`): Likewise.
	* m4/reshape.m4 (reshape_'rtype_ccode`): Likewise.
	* m4/shape.m4 (shape_'rtype_kind`): Likewise.
	* m4/spread.m4 (spread_'rtype_code`): Likewise.
	(spread_scalar_'rtype_code`): Likewise.
	* m4/transpose.m4 (transpose_'rtype_code`): Likewise.
	* m4/unpack.m4 (unpack0_'rtype_code`): Likewise.
	(unpack1_'rtype_code`): Likewise.
	* runtime/convert_char.c (convert_char1_to_char4): Likewise.
	(convert_char4_to_char1): Simplify.
	* runtime/environ.c (init_unformatted): Call xmallocarray instead
	of xmalloc.
	* runtime/in_pack_generic.c (internal_pack): Likewise.

From-SVN: r211721
2014-06-17 06:50:34 +03:00
Francois-Xavier Coudert
6faf47517f re PR libfortran/60468 (./fpu-target.h:93:3: error: unknown type name 'choke')
PR libfortran/60468
	* configure.ac: Include <math.h> when checking for
	fp_except_t and fp_rnd_t types.
	* configure: Regenerate.

From-SVN: r211685
2014-06-15 09:44:04 +00:00
Janne Blomqvist
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
Uros Bizjak
d9f99ec416 getcwd.c: Include stdlib.h.
* intrinsics/getcwd.c: Include stdlib.h.

From-SVN: r210962
2014-05-27 11:15:52 +02:00
Janne Blomqvist
d74fd3c72b Introduce xrealloc, use it.
2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>

	* libgfortran.h (xrealloc): New prototype.
	* runtime/memory.c (xrealloc): New function.
	* io/fbuf.c (fbuf_alloc): Use xrealloc.
	* io/list_read.c (push_char_default): Likewise.
	(push_char4): Likewise.

From-SVN: r210948
2014-05-26 23:56:45 +03:00
Janne Blomqvist
ab75303f7d PR 61310 Rewrite implementation of CTIME and FDATE intrinsics.
2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/61310
	* intrinsics.texi (CTIME): Remove mention of locale-dependent
	behavior.

2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/61310
	* intrinsics/ctime.c (strctime): Rename to gf_ctime, use snprintf
	instead of strftime.
	(fdate): Use gf_ctime.
	(fdate_sub): Likewise.
	(ctime): Likewise.
	(ctime_sub): Likewise.

From-SVN: r210938
2014-05-26 21:17:13 +03:00
Jerry DeLisle
3b111bd757 [multiple changes]
2014-05-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/55117
	* trans-io.c (nml_full_name, transfer_namelist_element): Insert
	a '+' rather then '%' to differentiate namelist variable names
	that are based on extended derived types.

2014-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/55117
	* io/list_read.c (extended_look_ahead): New helper function to
	scan the namelist name and look for matches with the new '+'
	extended type parent indicator.  (str_comp_extended): New
	helper function to compare the namelist name with the varname
	namelist. (find_nml_name): Use the new helper functions to match
	the extended type varnames.

From-SVN: r210934
2014-05-26 15:19:36 +00:00
Jerry DeLisle
03c0f19520 re PR libfortran/61173 (Erroneous "end of file" with internal read)
2014-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/61173
	* io/list_read.c (eat_spaces): If the next character pointed to
	is a space, don't seek, must be at the end.

From-SVN: r210898
2014-05-24 19:26:02 +00:00
Hans-Peter Nilsson
ebfedee6d7 configure.ac [...] (HAVE_STRNLEN, [...]): Define.
* configure.ac [with_newlib] (HAVE_STRNLEN, HAVE_STRNDUP): Define.
	* configure: Regenerate.

From-SVN: r210841
2014-05-23 02:06:40 +00:00
Janne Blomqvist
410e3e10dd PR 60324 Handle long path names, don't use PATH_MAX.
2014-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/60324
	* runtime/string.c: Include stdlib.h.

From-SVN: r210827
2014-05-23 00:17:29 +03:00
Janne Blomqvist
4269f19c09 PR 60324 Handle long path names, don't use PATH_MAX.
From-SVN: r210738
2014-05-22 06:51:25 +03:00
Jerry DeLisle
d428be77b6 re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
2014-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/52539
	* io/io.h (gfc_unit): New function pointers *next_char_fn_ptr
	and *push_char_fn_ptr.
	*io/list_read.c (next_char): Create macro with this name to call
	the new function pointer. Split the original next_char function
	into three new functions. (next_char_default, next_char_internal,
	next_char_utf8): New functions. (push_char): Create macro with
	this name to call new function pointer. Split the original
	push_char into three new functions. (push_char_default,
	push_char_internal, push_char4): New functions. (set_workers):
	New function to initilize the function pointers depending on the
	type of IO to be performed. (list_formatted_read_scalar): Use
	set_workers function. (finish_list_read): Likewise.
	(namelist_read): Likewise.
	(nml_get_obj_data): Use push_char_default.

From-SVN: r210574
2014-05-18 02:29:27 +00:00
Janne Blomqvist
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
Janne Blomqvist
16e60fff0b Fix stack overflow crash in getcwd intrinsic.
2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/61035
	* intrinsics/getcwd.c (getcwd_i4_sub): Avoid potentially large
	stack allocation, avoid extra copying in the common case.

From-SVN: r210335
2014-05-12 22:23:11 +03:00
Janne Blomqvist
f7b6856fa4 Use -std=gnu11 instead of -std=gnu99 for libgfortran C code.
2014-05-12  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac (AM_CFLAGS): Use -std=gnu11.
	(CFLAGS): Likewise.
	* configure: Regenerated.

From-SVN: r210334
2014-05-12 22:20:50 +03:00
Tobias Burnus
a9fe68774e trans-intrinsic.c (gfc_build_builtin_function_decls): Change type of second argument to int.
2014-05-11  Tobias Burnus  <burnus@net-b.de>

       * trans-intrinsic.c (gfc_build_builtin_function_decls):
       Change type of second argument to int.

2014-05-11  Tobias Burnus  <burnus@net-b.de>

       * caf/libcaf.h (_gfortran_caf_num_images): Change type of
       second argument to int.
       * caf/mpi.c (_gfortran_caf_num_images): Ditto.
       * caf/single.c (_gfortran_caf_num_images): Ditto.

From-SVN: r210311
2014-05-11 20:25:55 +02:00
Tobias Burnus
d62cf3dfbe check.c (check_co_minmaxsum, [...]): New.
gcc/fortran/
2014-05-08  Tobias Burnus  <burnus@net-b.de>

        * check.c (check_co_minmaxsum, gfc_check_co_minmax,
        gfc_check_co_sum): New.
        * error.c (gfc_notify_std): Update -std=f2008ts.
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
        GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
        * intrinsic.h (gfc_check_co_minmax,
        gfc_check_co_sum): Declare.
        * intrinsic.c (add_subroutines): Add co_min, co_max
        and co_sum.
        (gfc_check_intrinsic_standard): Update text for
        -std=f2008ts.
        * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
        them.
        * invoke.texi (-std=f2008ts): Update wording.
        * trans.h (gfor_fndecl_co_max,
        gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
        * trans-decl.c (gfor_fndecl_co_max,
        gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
        (gfc_build_builtin_function_decls): Assign to it.
        * trans-intrinsic.c (conv_co_minmaxsum): New.
        (gfc_conv_intrinsic_subroutine): Call it.

libgfortran/
2014-05-08  Tobias Burnus  <burnus@net-b.de>

        * caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
        _gfortran_caf_co_min, _gfortran_caf_co_max): Declare
        * caf/single.c

gcc/testsuite/
2014-05-08  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_collectives_1.f90: New.
        * gfortran.dg/coarray_collectives_2.f90: New.
        * gfortran.dg/coarray_collectives_3.f90: New.
        * gfortran.dg/coarray_collectives_4.f90: New.
        * gfortran.dg/coarray_collectives_5.f90: New.
        * gfortran.dg/coarray_collectives_6.f90: New.
        * gfortran.dg/coarray/collectives_1.f90: New.
        * gfortran.dg/assumed_rank_5.f90: Update dg-error.
        * gfortran.dg/assumed_type_4.f90: Update dg-error.
        * gfortran.dg/bind_c_array_params.f03: Update dg-error.
        * gfortran.dg/bind_c_usage_28.f90: Update dg-error.
        * gfortran.dg/c_funloc_tests_5.f03: Update dg-error.
        * gfortran.dg/c_funloc_tests_6.f90: Update dg-error.
        * gfortran.dg/c_loc_tests_11.f03: Update dg-error.

From-SVN: r210223
2014-05-08 18:55:23 +02:00
Jerry DeLisle
0222756393 re PR libfortran/61049 (NIST test FM906 fails)
2014-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/61049
	* io/list_read.c (list_formatted_read_scalar): Use eat_separator
	and delete extraneous code.

From-SVN: r210134
2014-05-07 01:31:42 +00:00
Tobias Burnus
a8a5f4a972 gfortran.h (gfc_init_coarray_decl): Remove.
2014-04-30  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_init_coarray_decl): Remove.
        * parse.c (translate_all_program_units): Remove call to it.
        (gfc_parse_file): Update call.
        * trans.h (gfor_fndecl_caf_this_image,
        gfor_fndecl_caf_num_images): Add.
        (gfort_gvar_caf_num_images,
        gfort_gvar_caf_this_image): Remove.
        * trans-decl.c (gfor_fndecl_caf_this_image,
        gfor_fndecl_caf_num_images): Add.
        (gfort_gvar_caf_num_images,
        gfort_gvar_caf_this_image): Remove.
        (gfc_build_builtin_function_decls): Init new decl.
        (gfc_init_coarray_dec): Remove.
        (create_main_function): Change calls.
        * trans-intrinsic.c (trans_this_image, trans_image_index,
        conv_intrinsic_cobound): Generate call to new library function
        instead of to a static variable.
        * trans-stmt.c (gfc_trans_sync): Ditto.

2014-04-30  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_lib_this_image_1.f90: New.
        * gfortran.dg/coarray_lib_this_image_2.f90: New.

2014-04-30  Tobias Burnus  <burnus@net-b.de>

        * caf/libcaf.h (_gfortran_caf_this_image,
        * _gfortran_caf_num_images):
        New prototypes.
        (_gfortran_caf_init): Change prototype.
        (mpi_token_t): New typedef.
        (TOKEN): New define.
        * caf/mpi.c (_gfortran_caf_this_image,
        * _gfortran_caf_num_images):
        New functions.
        (_gfortran_caf_init): Update.
        (_gfortran_caf_finalize, _gfortran_caf_register,
        _gfortran_caf_deregister): Use mpi_token_t.
        * caf/single.c (_gfortran_caf_this_image,
        * _gfortran_caf_num_images):
        New functions.
        (_gfortran_caf_init): Update.
        (_gfortran_caf_finalize, _gfortran_caf_register,
        _gfortran_caf_deregister): Use mpi_token_t, simplify.

From-SVN: r209951
2014-04-30 21:02:23 +02:00
Jerry DeLisle
42c1e008b0 re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
2014-04-26  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/52539
	* io/list_read.c: Add uchar typedef. (push_char4): New function
	to save kind=4 character. (next_char_utf8): New function to read
	a single UTF-8 encoded character value. (read_chracter): Update
	to use the new functions for reading UTF-8 strings.
	(list_formatted_read_scalar): Update to handle list directed
	reads of UTF-8 strings. (nml_read_obj): Likewise update for
	UTF-8 strings in namelists.
	* io/write.c (nml_write_obj): Add kind=4 character support for
	namelist writes.

From-SVN: r209828
2014-04-26 21:52:26 +00:00
Kyrylo Tkachov
deb9dd7455 Fix warning in libgfortran configure script
* configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
	* configure: Regenerate.

From-SVN: r209747
2014-04-24 11:03:56 +00:00
Rainer Orth
d9f069ab4f Remove obsolete Solaris 9 support
libstdc++-v3:
	* configure.host: Remove solaris2.9 handling.
	Change os_include_dir to os/solaris/solaris2.10.
	* acinclude.m4 (ac_has_gthreads): Remove solaris2.9* handling.
	* crossconfig.m4: Remove *-solaris2.9 handling, simplify.
	* configure: Regenerate.
	* config/abi/post/solaris2.9: Remove.
	* config/os/solaris/solaris2.9: Rename to ...
	* config/os/solaris/solaris2.10: ... this.
	* config/os/solaris/solaris2.10/os_defines.h (CLOCK_MONOTONIC):
	Remove.

	* doc/xml/manual/configure.xml (--enable-libstdcxx-threads):
	Remove Solaris 9 reference.
	* doc/html/manual/configure.html: Regenerate.

	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
	Remove *-*-solaris2.9 xfail.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
	Likewise.

	* testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.9
	xfail.

	libjava:
	* configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9
	handling.
	* configure: Regenerate.

	libgfortran:
	* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
	check.

	libgcc:
	* config/i386/crtfastmath.c (set_fast_math): Remove SSE execution
	check.
	* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
	Solaris 9 single-threaded support.
	* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove
	Solaris 9 single-threaded support.  Add call_user_handler code
	sequences.
	(sparc_is_sighandler): Likewise.

	libcpp:
	* lex.c: Remove Solaris 9 reference.

	gcc/testsuite:
	* gcc.c-torture/compile/pr28865.c: Remove dg-xfail-if.

	* gcc.dg/c99-stdint-6.c: Remove dg-options for *-*-solaris2.9.
	* gcc.dg/lto/20090210_0.c: Remove dg-extra-ld-options for
	*-*-solaris2.9.
	* gcc.dg/torture/pr47917.c: Remove dg-options for *-*-solaris2.9.
	* gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.9 handling
	from dg-options.
	* gcc.target/i386/pr22152.c: Remove i?86-*-solaris2.9 handling
	from dg-additional-options.
	* gcc.target/i386/vect8-ret.c: Remove i?86-*-solaris2.9 handling
	from dg-options.

	* gcc.dg/vect/tree-vect.h (check_vect): Remove Solaris 9 SSE2
	execution check.
	* gcc.target/i386/sse-os-support.h [__sun__ && __svr4__]
	(sigill_hdlr): Remove.
	(sse_os_support) [__sun__ && __svr4__]: Remove SSE execution
	check.

	* gfortran.dg/erf_3.F90: Remove sparc*-*-solaris2.9* handling.
	* gfortran.dg/fmt_en.f90: Remove i?86-*-solaris2.9* handling.
	* gfortran.dg/round_4.f90: Remove *-*-solaris2.9* handling.

	* lib/target-supports.exp (add_options_for_tls): Remove
	*-*-solaris2.9* handling.

	gcc:
	* config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
	(*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
	(*-*-solaris2*): Simplify.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
	*-*-solaris2.9* handling.

	* configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
	as bug.
	(gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
	(ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
	handling, simplify.
	(gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
	* configure: Regenerate.

	* config/i386/sol2-9.h: Remove.

	* doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
	(Specific, *-*-solaris2*): Mention Solaris 9 support removal.
	Remove Solaris 9 references.

	fixincludes:
	* inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*.
	(solaris_int_types): Remove.
	(solaris_longjmp_noreturn): Remove.
	(solaris_mutex_init_2): Remove.
	(solaris_once_init_2): Remove.
	(solaris_sys_va_list): Remove.
	* fixincl.x: Regenerate.
	* tests/base/iso/setjmp_iso.h: Remove.
	* tests/base/pthread.h [SOLARIS_MUTEX_INIT_2_CHECK]: Remove.
	[SOLARIS_ONCE_INIT_1_CHECK]: Remove wrapping done by
	solaris_once_init_2.
	[SOLARIS_ONCE_INIT_2_CHECK]: Remove.
	* tests/base/sys/int_types.h: Remove.
	* tests/base/sys/va_list.h: Remove.

	contrib:
	* config-list.mk (LIST): Remove sparc-sun-solaris2.9, i686-solaris2.9.

From-SVN: r209621
2014-04-22 12:30:59 +00:00
Jerry DeLisle
861b2d2cde re PR fortran/60810 (list directed io from array results in end of file)
2014-04-11  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/60810
	io/unit.c (is_trim_ok): If internal unit is array, do not trim.

From-SVN: r209329
2014-04-12 00:04:41 +00:00
Jerry DeLisle
09e40ffe10 re PR fortran/60148 (strings in NAMELIST do not honor DELIM= in open statement)
2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/60148
	* io/transfer.c (data_transfer_init): If std= was specified, set
	delim status to DELIM_NONE of no other was specified.

From-SVN: r208759
2014-03-21 22:19:44 +00:00
Ulrich Weigand
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
Jerry DeLisle
f2538eee23 Fix PR Number in log
From-SVN: r208630
2014-03-18 01:30:46 +00:00
Jerry DeLisle
e34994fcff re PR libfortran/46800 (Handle CTRL-D correctly with STDIN)
2014-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/46800
	* io/list_read.c (list_formatted_read_scalar): Do not use
	eat_separator. Explicitly set the comma and end-of-line flags.
	Check for END condition from finish_separator.

From-SVN: r208629
2014-03-18 01:20:02 +00:00
Jerry DeLisle
e94710443a re PR fortran/58324 (Bogus END-of-line error with list-directed I/O of file without trailing sequential record marker)
2014-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/58324
	* io/list_read.c (finish_list_read): Read one character to check
	for the end of the file.  If it is the end, then issue the file
	end error message.  If not, use eat_line to reach the end
	without giving error.  The next attempt to read will then
	issue the error as described above.

From-SVN: r208591
2014-03-15 15:12:01 +00:00
Jerry DeLisle
3b63b663d7 re PR libfortran/38199 (missed optimization: I/O performance)
2014-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/38199
	* io/read.c (read_decimal): Quickly skip spaces to avoid calls
	to next_char.
	* io/unit.c (is_trim_ok): New helper function to check various
	conditions to see if its OK to trim the internal unit string.
	(get_internal_unit): Use LEN_TRIM to shorten selected internal
	unit strings for optimizing READ. Enable this optimization for
	formatted READ.
	* io/list_read.c (finish_list_read): Don't call eat_line for
	internal units.

From-SVN: r208528
2014-03-13 05:06:57 +00:00
Jerry DeLisle
c706a67a4d re PR libfortran/38199 (missed optimization: I/O performance)
2014-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/38199
	* io/list_read.c (next_char): Mark unlikely error checks.
	(eat_spaces): For character array reading, skip ahead over
	spaces rather than call next_char multiple times.

From-SVN: r208439
2014-03-09 05:34:34 +00:00
Jerry DeLisle
c8869272f7 re PR libfortran/38199 (missed optimization: I/O performance)
2014-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/38199
	* io/list_read.c (next_char): Delete unuseful error checks.
	(eat_spaces): For character array reading, skip ahead over
	spaces rather than call next_char multiple times.

From-SVN: r208438
2014-03-09 03:17:16 +00:00
Tobias Burnus
433d6b3986 libgfortran.h (unlikely, likely): Add usage comment.
2014-03-08  Tobias Burnus  <burnus@net-b.de>

        * libgfortran.h (unlikely, likely): Add usage comment.

From-SVN: r208434
2014-03-08 23:13:26 +01:00
Dominique d'Humieres
4e185d7cee re PR fortran/60128 (Wrong ouput using en edit descriptor)
2014-03-08  Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR libgfortran/60128
	* io/write_float.def (output_float): Remove unused variable
	nzero_real. Replace a double space with a single one.
	(determine_en_precision): Fix wrong handling of the EN format.

	PR libfortran/60128
	* gfortran.dg/fmt_en.f90: New test.

From-SVN: r208423
2014-03-08 06:04:34 +00:00
Jerry DeLisle
75b2dba9ae re PR fortran/60148 (strings in NAMELIST do not honor DELIM= in open statement)
2014-03-03  Jerry DeLisle  <jvdelisle@gcc.gnu>

	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.

From-SVN: r208302
2014-03-04 04:33:40 +00:00
Tobias Burnus
76a4b7ad2d re PR fortran/60286 (INQUIRE reports STDOUT as not writable)
2014-02-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/60286
        * libgfortran/io/inquire.c (yes, no): New static const char
        * vars.
        (inquire_via_unit): Use them. Use OPEN mode instead of using
        POSIX's access to query about write=, read= and readwrite=.

2014-02-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/60286
        * gfortran.dg/inquire_16.f90: New.

From-SVN: r207979
2014-02-21 08:37:06 +01:00
Jerry DeLisle
91d45414d8 write_float.def (output_float): Remove inadvertent test code from previous patch.
2014-01-20  Jerry DeLisle  <jvdelisle@gcc.gnu>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	* io/write_float.def (output_float): Remove inadvertent test
	code from previous patch.

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>

From-SVN: r206865
2014-01-21 02:39:53 +00:00
Jerry DeLisle
32aeb94ab1 re PR libfortran/59771 (Cleanup handling of Gw.0 and Gw.0Ee format)
2014-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR libfortran/59771
	PR libfortran/59774
	PR libfortran/59836
	* io/write_float.def (output_float): Fix wrong handling of the
	Fw.0 format.
	(output_float_FMT_G_): Fixes rounding issues with -m32.

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>

From-SVN: r206785
2014-01-19 23:17:43 +00:00
Jerry DeLisle
2558e2e838 re PR fortran/59700 (Misleading/buggy runtime error message: Bad integer for item 0 in list input)
2014-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libfortran/59700
	PR libfortran/59764
	* io/io.h (struct st_parameter_dt): Assign expanded_read flag to
	unused bit. Define new variable line_buffer_pos.
	* io/list_read.c (free_saved, next_char, l_push_char,
	read_logical, read_real): Replace use of item_count with
	line_buffer_pos for line_buffer look ahead.
	(read_logical, read_integer, parse_real, read_real, check_type):
	Adjust location of free_line to after generating error messages
	to retain the correct item count for the message.

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>

From-SVN: r206553
2014-01-11 18:57:20 +00:00
Richard Sandiford
f0bcf62899 Update copyright years in libgfortran/
From-SVN: r206296
2014-01-02 22:25:45 +00:00
Steven G. Kargl
7b6b435332 read.c (read_f): Convert assert to runtime error.
2013-12-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	* io/read.c (read_f): Convert assert to runtime error.

2013-12-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	* gfortran.dg/io_err_1.f90: New test.

From-SVN: r206102
2013-12-18 23:41:50 +00:00
Andreas Tobler
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
Jerry DeLisle
1ede59e4c7 re PR libfortran/59419 (Failing OPEN with FILE='xxx' and IOSTAT creates the file 'xxx' after revision 196783)
2013-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu>

	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.

From-SVN: r206039
2013-12-17 03:06:04 +00:00
Tobias Burnus
711df88d24 fpu-387.h (sigill_hdlr, [...]): Emit
2013-12-11  Tobias Burnus  <burnus@net-b.de>

        * config/fpu-387.h (sigill_hdlr, get_fpu_rounding_mode): Emit
        * SSE
        instructions when __SSE_MATH__ is defined.

From-SVN: r205903
2013-12-11 20:50:56 +01:00
Rainer Orth
041508a2ec Provide _M_2_SQRTPI if missing.
* intrinsics/erfc_scaled.c (_M_2_SQRTPI): Define if missing.

From-SVN: r205731
2013-12-06 10:04:05 +00:00
Uros Bizjak
3d41d9d98c re PR libfortran/59313 (gfortran.dg/erf_3.F90 FAILs on Solaris/SPARC)
PR libfortran/59313
	* intrinsics/erfc_scaled.c (erfc_scaled_r16): Also provide for
	quadruple precision long double variant.

From-SVN: r205574
2013-12-01 21:56:21 +01:00
Andreas Schwab
8f45afb879 Remove wrong PR link
From-SVN: r205201
2013-11-21 09:24:44 +00:00
Francois-Xavier Coudert
933cfd4a37 re PR libfortran/59227 (FAIL: gfortran.dg/erf_3.F90 -O0 execution test)
PR libfortran/59227
	* intrinsics/erfc_scaled.c (erfc_scaled_r16): Don't define if
	__float128 is not available.

From-SVN: r205193
2013-11-21 08:45:00 +00:00
Francois-Xavier Coudert
41fd665971 re PR libfortran/49024 (REAL*16 ERFC_SCALED inaccuracy)
PR libfortran/49024

	* intrinsics/erfc_scaled.c (erfc_scaled_r16): New function.
	* intrinsics/erfc_scaled_inc.c: Do not provide quadruple
	precision variant.

	* gfortran.dg/erf_3.F90: New file.

From-SVN: r205151
2013-11-20 22:18:55 +00:00
Francois-Xavier Coudert
74bc175e84 re PR libfortran/51828 (libgfortran build warnings)
PR libfortran/51828
	* intrinsics/unpack_generic.c (unpack_internal): Let the compiler
	know that dim > 0 to avoid warnings.

From-SVN: r204940
2013-11-18 09:27:11 +00:00
Janne Blomqvist
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
Steve Ellcey
cb83df668c configure.ac: Do not define HAVE_STRTOLD.
2013-11-15  Steve Ellcey  <sellcey@mips.com>

	* configure.ac: Do not define HAVE_STRTOLD.
	* configure: Regenerate.

From-SVN: r204855
2013-11-15 17:50:28 +00:00
Janne Blomqvist
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
Tobias Burnus
7902928918 re PR fortran/55469 (memory leak on read with istat.ne.0)
2013-10-01  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55469
        * io/list_read (parse_repeat, read_integer, read_character,
        parse_real, read_real, check_type, list_formatted_read_scalar,
        finish_list_read): Call list_free.

From-SVN: r203086
2013-10-01 22:52:49 +02:00
Alan Modra
3cbe17f7de libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match.
* libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical
	ppc host match.  Support little-endian powerpc linux hosts.
Regenerate configure throughout.

From-SVN: r202773
2013-09-20 19:17:52 +09:30
Uros Bizjak
d7172355ef fpu-387.h (get_fpu_rounding_mode): Read rounding mode from SSE mxcsr register on x86_64.
* config/fpu-387.h (get_fpu_rounding_mode): Read rounding mode
	from SSE mxcsr register on x86_64.

From-SVN: r201161
2013-07-23 11:45:30 +02:00
Ondřej Bílka
9b110be230 trans-decl.c: Fix comment typos.
2013-07-21   Ondřej Bílka  <neleai@seznam.cz>

        * trans-decl.c: Fix comment typos.
        * trans-expr.c: Ditto.

2013-07-21   Ondřej Bílka  <neleai@seznam.cz>

        * io/transfer.c: Fix comment typos.

From-SVN: r201107
2013-07-21 19:57:23 +02:00
Tobias Burnus
5b70b3e44b re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2013-07-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/35862
        * config/fpu-387.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Add missing _ to fix build.

From-SVN: r201095
2013-07-21 17:16:21 +02:00
Tobias Burnus
82a4f54cc5 re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2013-07-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/35862
        * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST,
        GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines.

2013-07-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/35862
        * libgfortran.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): New prototypes.
        * config/fpu-387.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): New functions.
        * config/fpu-aix.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Ditto.
        * config/fpu-generic.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Ditto.
        * config/fpu-glibc.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Ditto.
        * config/fpu-sysv.h (set_fpu_rounding_mode,
        get_fpu_rounding_mode): Ditto.
        * configure.ac: Check for fp_rnd and fp_rnd_t.
        * io/io.h (enum unit_round): Use GFC_FPE_* for the value.
        * io/read.c (convert_real): Set FP ronding mode.
        * Makefile.in: Regenerate.
        * aclocal.m4: Regenerate.
        * config.h.in: Regenerate.
        * configure: Regenerate.

2013-07-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/35862
        * gfortran.dg/round_4.f90: New.


Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r201093
2013-07-21 13:54:27 +02:00
Steve Ellcey
b4005c71a2 configure.ac (AC_CHECK_FUNCS_ONCE): Put into if statement.
2013-06-24  Steve Ellcey  <sellcey@mips.com>

	* configure.ac (AC_CHECK_FUNCS_ONCE): Put into if statement.
	* configure: Regenerate.

From-SVN: r200374
2013-06-24 15:24:19 +00:00
Tobias Burnus
7ae346c340 configure.ac: Check for fp_except and fp_except_t.
2013-06-24  Tobias Burnus  <burnus@net-b.de>

        * configure.ac: Check for fp_except and fp_except_t.
        * config/fpu-sysv.h: Conditionally use either type.
        * configure: Regenerate.
        * config.h.in: Regenerate.

From-SVN: r200360
2013-06-24 10:34:05 +02:00
Eric Botcazou
a58219532c * config/fpu-sysv.h (get_fpu_except_flags): Fix typo.
From-SVN: r200298
2013-06-21 13:16:57 +00:00
Uros Bizjak
a839e8d5a0 * ChangeLog: Add some missing lines.
From-SVN: r200256
2013-06-20 19:11:51 +02:00
Uros Bizjak
86c2f4b761 fpu-387.h (_FPU_MASK_ALL): New.
* config/fpu-387.h (_FPU_MASK_ALL): New.
	(_FPU_EX_ALL): Ditto.
	(set_fpu): Use fstcw to store x87 FPU control word. Use fnclex to
	clear stalled exception flags.  Correctly clear stalled SSE
	exception flags.  Simplify code.
	(get_fpu_except_flags): Simplify code.

From-SVN: r200255
2013-06-20 19:08:51 +02:00
Tobias Burnus
937424c182 re PR fortran/57633 (I/O: Problem with formatted read: reading CR-LF files (\r\n))
2013-06-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57633
        * io/list_read.c (next_char, eat_separator): Don't set EOL for \r.

2013-06-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57633
        * gfortran.dg/list_read_11.f90: New.

From-SVN: r200238
2013-06-20 12:55:03 +02:00
Uros Bizjak
e8e694715e fpu-387.h: Use __asm__ and __volatile__ consistently.
* config/fpu-387.h: Use __asm__ and __volatile__ consistently.
	(get_fpu_except_flags): Initialize result.

From-SVN: r200187
2013-06-19 08:38:16 +02:00
Tobias Burnus
fa86f4f917 gfortran.h (gfc_option_t): Add fpe_summary.
2013-06-17  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_option_t): Add fpe_summary.
        * gfortran.texi (_gfortran_set_options): Update.
        * invoke.texi (-ffpe-summary): Add doc.
        * lang.opt (ffpe-summary): Add flag.
        * options.c (gfc_init_options, gfc_handle_option): Handle it.
        (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
        also handle fpe_summary.
        * trans-decl.c (create_main_function): Update
        _gfortran_set_options call.

2013-06-17  Tobias Burnus  <burnus@net-b.de>

        * libgfortran.h (compile_options_t) Add fpe_summary.
        (get_fpu_except_flags): New prototype.
        * runtime/compile_options.c (set_options, init_compile_options):
        Handle fpe_summary.
        * runtime/stop.c (report_exception): New function.
        (stop_numeric, stop_numeric_f08, stop_string, error_stop_string,
        error_stop_numeric): Call it.
        * config/fpu-387.h (get_fpu_except_flags): New function.
        * config/fpu-aix.h (get_fpu_except_flags): New function.
        * config/fpu-generic.h (get_fpu_except_flags): New function.
        * config/fpu-glibc.h (get_fpu_except_flags): New function.
        * config/fpu-glibc.h (get_fpu_except_flags): New function.
        * configure.ac: Check for fpxcp.h.
        * configure: Regenerate.
        * config.h.in: Regenerate.

From-SVN: r200147
2013-06-17 09:48:21 +02:00
Tobias Burnus
c2b2130c71 re PR libfortran/57496 (I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with -ffpe-trap=overflow)
2013-06-01  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57496
        * io/write_float.def (ISFINITE2Q, ISFINITE2, ISFINITE2L,
        * ISFINITE,
        SIGNBIT2Q, SIGNBIT2, SIGNBIT2L, SIGNBIT, ISNAN2Q, ISNAN2,
        ISNAN2L, ISNAN): New macros.
        (output_float_FMT_G_,WRITE_FLOAT): Use them.

From-SVN: r199598
2013-06-03 11:20:46 +02:00
Rainer Orth
828012a527 Use -z ignore instead of --as-needed on Solaris
* acinclude.m4 (libgfor_cv_have_as_needed): Check for -z ignore, too.
	* configure: Regenerate.

From-SVN: r199285
2013-05-24 09:23:33 +00:00
David Edelsohn
13c4975c2d libcaf.h (_gfortran_caf_critical): Add a prototype.
* caf/libcaf.h (_gfortran_caf_critical): Add a prototype.
        (_gfortran_caf_end_critical): Same.

From-SVN: r198613
2013-05-05 19:47:22 -04:00
David Edelsohn
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
Janne Blomqvist
96cc0ef46b Simplify SYSTEM_CLOCK implementation.
2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/system_clock (gf_gettime_mono): Use variable
        resolution for fractional seconds argument.
        (system_clock_4): Simplify, update for gf_gettime_mono change.
        (system_clock_8): Likewise.

From-SVN: r198391
2013-04-29 11:43:18 +03:00
Janne Blomqvist
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
Janne Blomqvist
a2f7b4ad34 Fix sign error in SYSTEM_CLOCK kind=4 Windows version.
2013-04-28  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/system_clock.c (system_clock_4): Fix sign error in
	Windows version.

From-SVN: r198378
2013-04-28 21:16:25 +03:00
Tobias Burnus
95bd9622ab list_read.c (finish_separator): Initialize variable.
2013-04-15  Tobias Burnus  <burnus@net-b.de>

        * list_read.c (finish_separator): Initialize variable.

From-SVN: r197969
2013-04-15 14:45:06 +02:00
Janne Blomqvist
83584eab1b PR 56919 Improve SYSTEM_CLOCK intrinsic on Windows.
frontend ChangeLog:

2013-04-15  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/56919
	* intrinsics.texi (SYSTEM_CLOCK): Update documentation.


libgfortran ChangeLog:

2013-04-15  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/56919
	* intrinsics/time_1.h: Check __CYGWIN__ in addition to
	__MINGW32__.
	* intrinsics/system_clock.c (GF_CLOCK_MONOTONIC): Check
	_POSIX_MONOTONIC_CLOCK as well.
	(system_clock_4): Use GetTickCount on Windows.
	(system_clock_8): Use QueryPerformanceCounter and
	QueryPerformanceCounterFrequency on Windows.

From-SVN: r197968
2013-04-15 15:43:15 +03:00
Tobias Burnus
71879a86ef re PR libfortran/56810 (record-repeat fails kind check on complex read)
2013-04-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56810
        * io/list_read.c (check_type): Fix kind checking for COMPLEX.

2013-04-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56810
        * gfortran.dg/read_repeat_2.f90: New.

From-SVN: r197479
2013-04-04 13:24:15 +02:00
Jerry DeLisle
ba82932537 re PR fortran/56660 (Fails to read NAMELIST with certain form array syntax)
2013-04-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/56660
	* io/list_read.c (nml_read_obj): Do not reset the read error flag
	inside nml_read_obj. If the read error flag is found set just exit.
	Fix some whitespace on comments.
	(nml_read_obj_data): Reset the read error flag before the first call
	to nml_read_object.

From-SVN: r197321
2013-04-01 20:30:41 +00:00
Jerry DeLisle
83437e6709 re PR libfortran/56786 (Namelist read fails with designators containing embedded spaces)
2013-03-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/56786
	* io/list_read.c (nml_parse_qualifier): Remove spurious next_char call
	when checking for EOF. Use error return mechanism when EOF detected.
	Do not return false unless parse_err_msg and parse_err_msg_size have
	been set. Use hit_eof.
	(nml_get_obj_data): Likewise use the correct error mechanism.
	* io/transfer.c (hit_eof): Do not set AFTER_ENDFILE if in namelist
	mode.

From-SVN: r197290
2013-03-31 20:32:33 +00:00
Tobias Burnus
357aee9210 re PR libfortran/56737 (Wrong I/O result with format cache for Hollerith strings)
2012-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56737
        * io/format.c (parse_format_list): Also cache FMT_STRING.
        (parse_format): Update call.

From-SVN: r197230
2013-03-29 10:39:47 +01:00
Tobias Burnus
d80b9b4777 re PR libfortran/56737 (Wrong I/O result with format cache for Hollerith strings)
2013-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56737
        * io/format.c (parse_format): With caching, copy
        dtp->format string.
        (save_parsed_format): Use dtp->format directy without
        copying.

2013-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56737
        * testsuite/gfortran.dg/fmt_cache_3.f90: New.

(Plus: Move fortran/ChangeLog item to libgfortran/ChangeLog)

From-SVN: r197229
2013-03-29 10:37:37 +01:00
Tobias Burnus
a0b012be6a re PR fortran/56735 (Namelist Read Error with question marks)
2013-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56735
        * io/list_read.c (nml_query): Only abort when
        an error occured.
        (namelist_read): Add goto instead of falling through.

2013-03-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56735
        * gfortran.dg/namelist_80.f90: New.

From-SVN: r197228
2013-03-29 10:32:57 +01:00
Tilo Schwarz
6f6fafc9ef re PR fortran/52512 (Cannot match namelist object name)
2013-03-25  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/52512
        * io/list_read.c (nml_parse_qualifier): To check for a derived type
        don't use the namelist head element type but the current element type.
        (nml_get_obj_data): Add current namelist element type to
        nml_parse_qualifier call.

2013-03-25  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/52512
        * gfortran.dg/namelist_79.f90: New.

From-SVN: r197061
2013-03-25 20:11:20 +00:00
Tobias Burnus
a73421c460 re PR libfortran/56696 (Formatted (list-directed) input fails to signal end of record)
2013-03-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56696
        * io/list_read.c (read_real): Fix EOF diagnostic.

2013-03-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56696
        * gfortran.dg/eof_5.f90: New.

From-SVN: r197019
2013-03-24 11:16:33 +01:00
Tilo Schwarz
a0b67fe26f re PR fortran/51825 (Fortran runtime error: Cannot match namelist object name)
2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/51825
        * io/list_read.c (nml_read_obj): Don't end the component loop on
        a nested derived type, but continue with the next loop iteration.
        (nml_get_obj_data): Don't move the first_nl pointer further in
        the list if a qualifier was found.

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/51825
        * gcc/testsuite/gfortran.dg/namelist_77.f90: New.
        * gcc/testsuite/gfortran.dg/namelist_78.f90: New.

From-SVN: r196806
2013-03-20 08:56:02 +01:00
Tilo Schwarz
09c7dc636d re PR libfortran/48618 (Negative unit number in OPEN(...) is sometimes allowed)
2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        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.

From-SVN: r196805
2013-03-20 08:45:49 +01:00
Janne Blomqvist
f5e3ed2d42 Use C99 bool instead of enum try.
2013-03-19  Janne Blomqvist  <jb@gcc.gnu.org>

	* libgfortran.h: Include stdbool.h.
	(enum try): Remove.
	(notify_std): Change return type to bool.
	* intrinsics/chmod.c: Don't include stdbool.h.
	* intrinsics/execute_command_line.c: Likewise.
	* io/format.c: Likewise.
	* io/list_read.c (nml_parse_qualifier): Change return type to bool.
	(nml_read_obj): Likewise.
	(nml_get_obj_data): Likewise.
	* io/transfer.c (read_block_form): Fix comment.
	(write_buf): Change return type to bool.
	* io/write.c: Don't include stdbool.h.
	* io/write_float.def (output_float): Change return type to bool.
	(output_float_FMT_G_ ## x): Change type of result variable.
	* runtime/error.c (notify_std): Change return type to bool.

From-SVN: r196791
2013-03-19 13:13:32 +02:00
Tobias Burnus
43b594b4c2 transfer.c (read_block_direct): Correct condition.
2013-03-11  Tobias Burnus  <burnus@net-b.de>

        * io/transfer.c (read_block_direct): Correct condition.
        * intrinsics/execute_command_line.c (execute_command_line):
        Remove dead code for the HAVE_FORK case.

From-SVN: r196603
2013-03-11 19:55:18 +01:00
Janne Blomqvist
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
John David Anglin
406defcb58 re PR target/56347 (FAIL: gfortran.dg/integer_exponentiation_2.f90 -O2 execution test)
PR target/56347
	* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): Remove check for
	broken powf.
	* configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Likewise.
	* intrinsics/c99_functions.c: Likewise.
	* configure: Rebuilt.
	* config.h.in: Rebuilt.

From-SVN: r196139
2013-02-19 14:01:40 +00:00
Janus Weil
c362c6741d re PR fortran/55978 (class_optional_2.f90 -Os fails)
2013-02-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55978
	* runtime/in_pack_generic.c (internal_pack): Return if base_addr is
	NULL.

2013-02-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55978
	* gfortran.dg/class_optional_2.f90: Uncomment some cases which work now.

From-SVN: r195814
2013-02-06 20:39:35 +01:00
Janne Blomqvist
facb23dc4e Improve performance of byte-swapped I/O.
2013-01-23  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/file_pos.c (unformatted_backspace): Use __builtin_bswapXX
	instead of reverse_memcpy.
	* io/io.h (reverse_memcpy): Remove prototype.
	* io/transfer.c (reverse_memcpy): Make static, move towards
	beginning of file.
	(bswap_array): New function.
	(unformatted_read): Use bswap_array to byte swap the data
	in-place.
	(unformatted_write): Use a larger temp buffer and bswap_array.
	(us_read): Use __builtin_bswapXX instead of reverse_memcpy.
	(write_us_marker): Likewise.

From-SVN: r195413
2013-01-23 23:56:54 +02:00
Richard Sandiford
e3c063ceda Update copyright years in libgfortran.
From-SVN: r195167
2013-01-14 18:20:58 +00:00
Tobias Burnus
9d1818902c re PR fortran/54678 (second call to get_environment_variable gives valgrind warning with 8-byte integers)
2013-01-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54678
        * intrinsics/env.c (get_environment_variable_i8): Don't use
        uninitialized variable.

From-SVN: r194948
2013-01-06 13:43:45 +01:00
Jakub Jelinek
86a2db336a ChangeLog rotation.
From-SVN: r194840
2013-01-03 10:47:48 +01:00
Jerry DeLisle
cc1863452c re PR fortran/55818 (Reading a REAL from a file which doesn't end in a new line fails)
2013-01-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/55818
	* io/list_read.c (read_real): Do not call hit_eof when EOF can be
	treated as a value separator.
	(parse_real): Likewise.
	(read_logical): Likewise.
	(read_character): Likewise.
	(read_complex): Likewise.

From-SVN: r194809
2013-01-02 17:09:09 +00:00
Jerry DeLisle
797332eda9 re PR fortran/48976 (INQUIRE with STREAM= not supported)
2012-12-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/48976
	* io/inquire.c (inquire_via_unit): Set user stream inquiry variable to
	appropriate value based on unit access method. (inquire_via_filename):
	Since filename is not associated with an open unit, set stream inquiry
	to UNKNOWN.
	* io/io.h: Define inquire stream parameters.

From-SVN: r194733
2012-12-27 18:07:33 +00:00
Jerry DeLisle
4e766b5d40 re PR libfortran/48960 (OPEN statement modifies NEWUNIT variable on error)
2012-12-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/48960
	* io/open.c (st_parameter_open):  Assign newunit number to user
	variable only if the the associated open statement is successful.

From-SVN: r194724
2012-12-26 18:11:42 +00:00
Janne Blomqvist
eb3119f90f PR fortran/55539 Fix regression in -fno-sign-zero.
libgfortran ChangeLog:

2012-12-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/55539
	* io/write_float.def (output_float): Take into account decimal dot.

testsuite ChangeLog:

2012-12-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/55539
	* gfortran.dg/nosigned_zero_3.f90: New testcase.

From-SVN: r194717
2012-12-26 00:11:16 +02:00
Thomas Koenig
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
Janus Weil
f0f67c96c3 re PR libfortran/36044 (user-requested backtrace)
2012-12-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36044
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE.
	* intrinsic.c (add_subroutines): Add "backtrace".
	* intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic.


2012-12-20  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36044
	* gfortran.map: Add _gfortran_backtrace.
	* libgfortran.h: Rename 'show_backtrace' and export.
	* runtime/backtrace.c (show_backtrace): Rename to 'backtrace'.
	Don't show message. Close file descriptor. Export.
	* runtime/compile_options.c (backtrace_handler): Renamed
	'show_backtrace'. Move message outside.
	* runtime/error.c (sys_abort): Ditto.

From-SVN: r194648
2012-12-20 19:15:13 +01:00
Paul Thomas
8b7043164f array.c (resolve_array_list): Apply C4106.
2012-12-19  Paul Thomas  <pault@gcc.gnu.org>

	* array.c (resolve_array_list): Apply C4106.
	* check.c (gfc_check_same_type_as): Exclude polymorphic
	entities from check for extensible types. Improved error
	for disallowed argument types to name the offending type.
	* class.c : Update copyright date.
	(gfc_class_null_initializer): Add argument for initialization
	expression and deal with unlimited polymorphic typespecs.
	(get_unique_type_string): Give unlimited polymorphic
	entities a type string.
	(gfc_intrinsic_hash_value): New function.
	(gfc_build_class_symbol): Incorporate unlimited polymorphic
	entities.
	(gfc_find_derived_vtab): Deal with unlimited polymorphic
	entities.
	(gfc_find_intrinsic_vtab): New function.
	* decl.c (gfc_match_decl_type_spec): Match typespec for
	unlimited polymorphic type.
	(gfc_match_data_decl): Skip to 'ok' if unlimited polymorphic.
	expr.c (gfc_check_pointer_assign): Apply C717.  If unlimited
	polymorphic lvalue, find rvalue vtable for all typespecs,
	except unlimited polymorphic expressions.
	(gfc_check_vardef_context): Handle unlimited polymorphic
	entities.
	* gfortran.h : Add unlimited polymorphic attribute. Add
	second arg to gfc_class_null_initializer primitive and
	primitive for gfc_find_intrinsic_vtab.  Add UNLIMITED_POLY
	to detect unlimited polymorphic expressions.
	* interface.c (gfc_compare_types): If expr1 is unlimited
	polymorphic, always return 1. If expr2 is unlimited polymorphic
	enforce C717.
	(gfc_compare_interfaces): Skip past conditions that do not
	apply for unlimited polymorphic entities.
	(compare_parameter): Make sure that an unlimited polymorphic,
	allocatable or pointer, formal argument is matched by an
	unlimited polymorphic actual argument.
	(compare_actual_formal): Ensure that an intrinsic vtable exists
	to match an unlimited polymorphic formal argument.
	* match.c (gfc_match_allocate): Type kind parameter does not
	need to match an unlimited polymorphic allocate-object.
	(alloc_opt_list): An unlimited polymorphic allocate-object
	requires a typespec or a SOURCE tag.
	(select_intrinsic_set_tmp): New function.
	(select_type_set_tmp): Call new function.  If it returns NULL,
	build a derived type or class temporary instead.
	(gfc_match_type_is): Remove restriction to derived types only.
	Bind(C) or sequence derived types not permitted.
	* misc (gfc_typename):  Printed CLASS(*) for unlimited
	polymorphism.
	* module.c : Add AB_UNLIMITED_POLY to pass unlimited
	polymorphic attribute to and from modules.
	* resolve.c (resolve_common_vars): Unlimited polymorphic
	entities cannot appear in common blocks.
	(resolve_deallocate_expr): Deallocate unlimited polymorphic
	enities.
	(resolve_allocate_expr): Likewise for allocation.  Make sure
	vtable exists.
	(gfc_type_is_extensible): Unlimited polymorphic entities are
	not extensible.
	(resolve_select_type): Handle unlimited polymorphic selectors.
	Ensure that length type parameters are assumed and that names
	for intrinsic types are generated.
	(resolve_fl_var_and_proc): Exclude select type temporaries
	from test of extensibility of type.
	(resolve_fl_variable): Likewise for test that assumed character
	length must be a dummy or a parameter.
	(resolve_fl_derived0): Return SUCCESS unconditionally for
	unlimited polymorphic entities. Also, allow unlimited
	polymorphic components.
	(resolve_fl_derived): Return SUCCESS unconditionally for
	unlimited polymorphic entities.
	(resolve_symbol): Return early with unlimited polymorphic
	entities.
	* simplifiy.c : Update copyright year.
	(gfc_simplify_extends_type_of): No simplification possible
	for unlimited polymorphic arguments.
	* symbol.c (gfc_use_derived): Nothing to do for unlimited
	polymorphic "derived type".
	(gfc_type_compatible): Return unity if ts1 is unlimited
	polymorphic.
	* trans-decl.c (create_function_arglist) Formal arguments
	without a character length should be treated in the same way
	as passed lengths.
	(gfc_trans_deferred_vars): Nullify the vptr of unlimited
	polymorphic pointers. Avoid unlimited polymorphic entities
	triggering gcc_unreachable.
	* trans-expr.c (gfc_conv_intrinsic_to_class): New function.
	(gfc_trans_class_init_assign): Make indirect reference of
	src.expr.
	(gfc_trans_class_assign): Expression NULL of unknown type
	should set NULL vptr on lhs. Treat C717 cases where lhs is
	a derived type and the rhs is unlimited polymorphic.
	(gfc_conv_procedure_call): Handle the conversion of a non-class
	actual argument to match an unlimited polymorphic formal
	argument.  Suppress the passing of a character string length
	in this case.  Make sure that calls to the character __copy
	function have two character string length arguments.
	(gfc_conv_initializer): Pass the initialization expression to
	gfc_class_null_initializer.
	(gfc_trans_subcomponent_assign): Ditto.
	(gfc_conv_structure): Move handling of _size component.
	trans-intrinsic.c: (gfc_conv_same_type_as): Handle conditions
	where unlimited polymorphic arguments have null vptr.
	* trans-stmt.c (trans_associate_var): Correctly treat array
	temporaries associated with unlimited polymorphic selectors.
	Recover the overwritten dtype for the descriptor. Use the _size
	field of the vptr for character string lengths.
	(gfc_trans_allocate): Cope with unlimited polymorphic allocate
	objects; especially with character source tags.
	(reset_vptr): New function.
	(gfc_trans_deallocate): Call it.
	* trans-types.c (gfc_get_derived_type): Detect unlimited
	polymorphic types and deal with cases where the derived type of
	components is null.
	* trans.c : Update copyright year.
	(trans_code): Call gfc_trans_class_assign for C717 cases where
	the lhs is not unlimited polymorphic.

2012-12-19  Paul Thomas  <pault@gcc.gnu.org>

	* intrinsics/extends_type_of.c : Return correct results for
	null vptrs.

2012-12-19  Paul Thomas  <pault@gcc.gnu.org>

	* gfortran.dg/unlimited_polymorphic_1.f03: New test.
	* gfortran.dg/unlimited_polymorphic_2.f03: New test.
	* gfortran.dg/unlimited_polymorphic_3.f03: New test.
	* gfortran.dg/same_type_as.f03: Correct for improved message.

From-SVN: r194622
2012-12-20 00:15:00 +00:00
Janus Weil
a07c4054c2 re PR fortran/55548 (SYSTEM_CLOCK with integer(8) provides nanosecond resolution, but only microsecond precision (without -lrt))
2012-12-03  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55548
	* intrinsics/system_clock.c (gf_gettime_mono): Add argument 'tck',
	which returns the clock resolution.
	(system_clock_4): Get resolution from gf_gettime_mono, but limit to
	1000/s.
	(system_clock_8): Get resolution from gf_gettime_mono.

2012-12-03  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55548
	* intrinsic.texi (SYSTEM_CLOCK): Update documentation of SYSTEM_CLOCK.

From-SVN: r194105
2012-12-03 23:06:41 +01:00
Tobias Burnus
036e177573 bessel.m4: Remove useless statement.
2012-10-28  Tobias Burnus  <burnus@net-b.de>

         * m4/bessel.m4: Remove useless statement.
         * m4/ifunction.m4: Remove unreachable code.
         * generated/bessel_r10.c: Regenerated.
         * generated/bessel_r16.c: Regenerated.
         * generated/bessel_r4.c: Regenerated.
         * generated/bessel_r8.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/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/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/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/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/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.

From-SVN: r192895
2012-10-28 17:54:44 +01:00
Tobias Burnus
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
Janne Blomqvist
227e441f2b Fix usage of secure_getenv with glibc 2.17.
See http://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv

2012-10-06  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Check for presence of secure_getenv.
	* libgfortran.h: Use HAVE_SECURE_GETENV.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.
	* config.h.in: Regenerated.
	* configure: Regenerated.

From-SVN: r192169
2012-10-06 23:56:05 +03:00
Thomas Koenig
4ed3a4d41b re PR libfortran/54736 (GFORTRAN_CONVERT_UNIT causes malloc error on several platforms)
2012-10-06  Thomas König  <tkoenig@gcc.gnu.org>

	PR libfortran/54736
	* runtime/environ.c (search_unit):  Correct logic
	for binary search.
	(mark_single):  Fix index errors.

From-SVN: r192158
2012-10-06 13:04:35 +00:00
Thomas Koenig
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
David Edelsohn
bad8a4a7fc * configure: Regenerated.
From-SVN: r191321
2012-09-14 19:32:58 -04:00
Uros Bizjak
588dbb1914 fpu-387.h (set_fpu): Prefix stmxcsr and ldmxcsr with %v.
* config/fpu-387.h (set_fpu): Prefix stmxcsr and ldmxcsr with %v.

From-SVN: r190997
2012-09-05 23:43:45 +02:00
Uros Bizjak
933d309fcf * ChangeLog: Fix date of my last commit.
From-SVN: r190993
2012-09-05 21:55:02 +02:00
Uros Bizjak
df36cec0dd fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and __builtin_ia32_ldmxcsr intrinsics.
* config/fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and
	__builtin_ia32_ldmxcsr intrinsics.

From-SVN: r190992
2012-09-05 21:49:21 +02:00
Andreas Schwab
a35c9beff6 list_read.c (list_formatted_read_scalar): Fix copying real value back to temporary.
* io/list_read.c (list_formatted_read_scalar): Fix copying real
value back to temporary.

From-SVN: r189856
2012-07-25 16:40:26 +00:00
Janne Blomqvist
67eb28c8b8 PR 39654 FTELL intrinsic function return type.
frontend ChangeLog:

2012-06-21  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/39654
	* iresolve.c (gfc_resolve_ftell): Fix result kind and use new
	library function.


library ChangeLog:

2012-06-21  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/39654
	* io/intrinsics.c (ftell2): New function.
	* gfortran.map (_gfortran_ftell2): Export function.

From-SVN: r188858
2012-06-21 21:47:01 +03:00
Robert Mason
aadd9700d5 PR 53456 Fix incorrect ChangeLog entry.
From-SVN: r188202
2012-06-04 22:15:21 +03:00
Robert Mason
1e5c1001b4 PR 53456 Fix typo in gf_cputime.
2012-06-04  Robert Mason  <rbmj@verizon.net>
	    Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/53456
	* intrinsics/time_1.h (gf_cputime): Fix typo in clock_gettime branch.

From-SVN: r188201
2012-06-04 22:13:49 +03:00
Tobias Burnus
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
Benjamin Kosnik
19af62dbf2 re PR target/51007 (Quadmath I/O doesn't work on MinGW)
2012-05-31  Benjamin Kosnik  <bkoz@redhat.com>

        PR libstdc++/51007
        * configure.ac: Allow gnu, gnu* variants for --enable-symvers argument.
        * configure: Regenerated.

From-SVN: r188076
2012-05-31 18:51:27 +00:00
Tobias Burnus
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
Tobias Burnus
eea58adb13 decl.c: Fix comment typos.
2012-05-30  Tobias Burnus  <burnus@net-b.de>

        * decl.c: Fix comment typos.
        * expr.c: Ditto.
        * frontend-passes.c: Ditto.
        * match.c: Ditto.
        * resolve.c: Ditto.
        * trans-array.c: Ditto.
        * trans-common.c: Ditto.
        * trans-intrinsic.c: Ditto.
        * trans-types.c: Ditto.

2012-05-30  Tobias Burnus  <burnus@net-b.de>

        * io/io.h: Fix comment typos.
        * io/list_read.c: Ditto.

From-SVN: r188000
2012-05-30 08:26:09 +02:00
Janne Blomqvist
1ca8bef021 Minor timing cleanups.
2012-05-27  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/time_1.h (gf_cputime): Don't reevaluate HZ expression
	for times fallback, clarify operation ordering for times and clock
	fallbacks.
	(gf_gettime): Fix comment typo.

From-SVN: r187922
2012-05-27 10:09:15 +03:00
Janne Blomqvist
44813fe043 PR 53456 CPU timing fallback using clock_gettime.
2012-05-24  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/53456
	* intrinsics/time_1.h (gf_cputime): Fallback for clock_gettime.

From-SVN: r187846
2012-05-24 23:19:37 +03:00
Janne Blomqvist
c5a6cbd4ba PR 53456 clock_gettime fallback for gf_gettime
2012-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/53456
	* intrinsics/time_1.h (gf_gettime): Fallback for clock_gettime.

From-SVN: r187806
2012-05-23 21:52:47 +03:00
Robert Mason
b8ce6b9cc0 re PR libfortran/53445 (No sticky bit on VxWorks - fix chmod.c)
2012-05-23  Robert Mason  <rbmj@verizon.net>
            Tobias Burnus  <burnus@net-b.de>

        PR libfortran/53445
        * intrinsics/chmod.c (chmod_func): Ignore S_ISVTX on VxWorks.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r187797
2012-05-23 10:52:09 +02:00
Tobias Burnus
4179e59afa re PR libfortran/53444 (Accommodate non-compliant strerror_r() on VxWorks.)
2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR libfortran/53444
        * acinclude.m4 (LIBGFOR_CHECK_STRERROR_R): Add configure checks
        * for
        two- and three-argument versions of strerror_r.
        * configure.ac (LIBGFOR_CHECK_STRERROR_R): Use it.
        * runtime/error.c (gf_strerror): Handle two-argument version
        of strerror_r.
        * config.h.in: Regenerate.
        * configure: Regenerate.

From-SVN: r187796
2012-05-23 10:34:06 +02:00
H.J. Lu
e6d5f8c9c4 Regenerate configure files for libtool.m4 change
boehm-gc/

	* configure: Regenerated.

gcc/

	* configure: Regenerated.

libatomic/

	* configure: Regenerated.

libffi/

	* configure: Regenerated.

libgfortran/

	* configure: Regenerated.

libgomp/

	* configure: Regenerated.

libitm/

	* configure: Regenerated.

libjava/classpath/

	* configure: Regenerated.

libjava/

	* configure: Regenerated.

libmudflap/

	* configure: Regenerated.

libobjc/

	* configure: Regenerated.

libquadmath/

	* configure: Regenerated.

libssp/

	* configure: Regenerated.

libstdc++-v3/

	* configure: Regenerated.

lto-plugin/

	* configure: Regenerated.

zlib/

	* configure: Regenerated.

From-SVN: r187616
2012-05-16 15:11:18 -07:00
Tobias Burnus
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
Janne Blomqvist
80b91c0b39 PR 52428 Range checking when reading integer values.
gcc/fortran ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/52428
	* gfortran.texi: Update _gfortran_set_options documentation.
	* invoke.texi: Remove runtime behavior description of
	-fno-range-check.
	* trans-decl.c (create_main_function): Don't pass the range-check
	setting to the library.


libgfortran ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/52428
	* io/io.h (max_value): Rename to si_max, remove second argument.
	* io/list_read.c (convert_integer): Use unsigned types when
	parsing the digits, set max value depending on the sign.
	* io/read.c (max_value): Rename to si_max, remove second argument,
	simplify.
	(read_decimal): Set max value depending on sign, always check
	overflow.
	(read_radix): Calculate max unsigned value directly.
	* libgfortran.h (struct compile_options_t): Remove range_check
	field.
	* runtime/compile_options.c (set_options): Skip handling
	options[7].
	(init_compile_options): Don't set removed field.


gcc/testsuite ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/52428
	* gfortran.dg/int_range_io_1.f90: New test.

From-SVN: r187478
2012-05-14 22:39:23 +03:00
Tobias Burnus
5450a88f8b re PR fortran/53310 (EOSHIFT leaks memory)
2012-05-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53310
        * intrinsics/eoshift2.c (eoshift2): Do not leak
        memory by allocating it in the loop.

From-SVN: r187395
2012-05-11 10:14:56 +02:00
Janne Blomqvist
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
Tobias Burnus
96b3ee1c50 re PR libfortran/53051 (I/O: Support reading floating-point numbers which use "Q" for the exponent)
2012-04-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53051
        * io/list_read.c (parse_real): Support "q" for the
        exponential.
        * io/read.c (read_f): Ditto.

2012-04-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53051
        * gfortran.dg/read_float_4.f90: New.

From-SVN: r186675
2012-04-22 19:28:34 +02:00
Tobias Burnus
fe92f29faf re PR libfortran/38199 (missed optimization: I/O performance)
2012-04-17  Tobias Burnus  <burnus@net-b.de>

        PR libfortran/38199
        PR libfortran/50673
        * io/unit.c (get_internal_unit): Properly check for the presence
        of the format string.

From-SVN: r186548
2012-04-17 21:30:29 +02:00
Thomas Koenig
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
Michael Matz
b43645b852 cshift0.m4 (cshift0_'rtype_code`): Guard use of modulo.
* m4/cshift0.m4 (cshift0_'rtype_code`): Guard use of modulo.

	* generated/cshift0_c10.c: Regenerated.
	* generated/cshift0_c16.c: Regenerated.
	* generated/cshift0_c4.c: Regenerated.
	* generated/cshift0_c8.c: Regenerated.
	* generated/cshift0_i16.c: Regenerated.
	* generated/cshift0_i1.c: Regenerated.
	* generated/cshift0_i2.c: Regenerated.
	* generated/cshift0_i4.c: Regenerated.
	* generated/cshift0_i8.c: Regenerated.
	* generated/cshift0_r10.c: Regenerated.
	* generated/cshift0_r16.c: Regenerated.
	* generated/cshift0_r4.c: Regenerated.
	* generated/cshift0_r8.c: Regenerated.

From-SVN: r186283
2012-04-10 15:39:22 +00:00
Tristan Gingold
62755fd571 libgfortran.h: Include complex.h before math.h
2012-04-04  Tristan Gingold  <gingold@adacore.com>

        * libgfortran.h: Include complex.h before math.h

From-SVN: r186131
2012-04-04 07:46:53 +00:00
Tristan Gingold
f38a14ca90 math.m4 (GCC_CHECK_MATH_FUNC): Remove if-present argument.
config/
2012-04-02  Tristan Gingold  <gingold@adacore.com>

	* math.m4 (GCC_CHECK_MATH_FUNC): Remove if-present
	argument.  Define the variable.

libgfortran/
2012-04-02  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Use new version of GCC_CHECK_MATH_FUNC.
	* configure: Regenerate
	* config.h.in: Regenerate.

From-SVN: r186063
2012-04-02 07:46:39 +00:00
Uros Bizjak
7ffeb78e28 * ChangeLog: Fix last entry.
From-SVN: r186015
2012-03-30 17:38:31 +02:00
Uros Bizjak
5cc553023d * ChangeLog: Fix entry.
From-SVN: r186009
2012-03-30 13:12:29 +02:00
Uros Bizjak
0b20f4a6ca re PR libfortran/52758 (libgfortran/intrinsics/chmod.c: Array index out of bounds)
PR libgfortran/52758
	* intrinsics/chmod.c: Remove out-of-bound initialization of rwxXstugo.

From-SVN: r186008
2012-03-30 13:07:46 +02:00
Tristan Gingold
f1cdfa016a configure.ac: Add description to AC_DEFINE in GCC_CHECK_MATH_FUNC.
2012-03-27  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Add description to AC_DEFINE in
	GCC_CHECK_MATH_FUNC.
	* configure: Regenerate
	* config.h.in: Regenerate.

From-SVN: r185850
2012-03-27 09:28:02 +00:00