1. 23 Feb, 2019 1 commit
    • re PR fortran/89385 (Incorrect members of C descriptor for an allocatable object) · c2808389
      2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/89385
      	PR fortran/89366
      	* decl.c (gfc_verify_c_interop_param): Restriction on string
      	length being one is lifted for F2018.
      	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar
      	characters with intent in, make a temporary and copy the result
      	of the expression evaluation into it.
      	(gfc_conv_procedure_call): Set a flag for character formal args
      	having a character length that is not unity. If the procedure
      	is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case.
      	Also, extend bind C calls to unconditionally convert both
      	pointers and allocatable expressions.
      
      2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/89385
      	* gfortran.dg/ISO_Fortran_binding_1.f90 : Correct test for
      	previously incorrect lbound for allocatable expressions. Also
      	correct stop values to avoid repetition.
      	* gfortran.dg/ISO_Fortran_binding_5.f90 : New test
      	* gfortran.dg/ISO_Fortran_binding_5.c : Support previous test.
      
      	PR fortran/89366
      	* gfortran.dg/ISO_Fortran_binding_6.f90 : New test
      	* gfortran.dg/ISO_Fortran_binding_6.c : Support previous test.
      	* gfortran.dg/pr32599.f03 : Set standard to F2008.
      
      2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/89385
      	PR fortran/89366
      	* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc) : In the
      	interchange between character and derived, the character type
      	was being set incorrectly.
      	(gfc_desc_to_cfi_desc) : Eliminate the interchange of types in
      	this function. Do not add the kind and length information to
      	the type field of structures. Lbounds were incorrectly being
      	set to zero for allocatable and pointer descriptors. Should
      	have been non-pointer, non-allocatables that received this
      	treatment.
      
      From-SVN: r269156
      Paul Thomas committed
  2. 12 Jan, 2019 1 commit
    • gfortran.texi: Add description in sections on TS 29113 and further interoperability with C. · bbf18dc5
      2019-01-12  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.texi : Add description in sections on TS 29113 and
      	further interoperability with C.
      	* trans-array.c (gfc_conv_descriptor_attribute): New function.
      	(gfc_get_dataptr_offset): Remove static function attribute.
      	* trans-array.h : Add prototypes for above functions.
      	* trans-decl.c : Add declarations for the library functions
      	cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc.
      	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function.
      	(gfc_conv_procedure_call): Call it for scalar and array actual
      	arguments, when the formal arguments are bind_c with assumed
      	shape or assumed rank.
      	* trans.h : External declarations for gfor_fndecl_cfi_to_gfc
      	and gfor_fndecl_gfc_to_cfi.
      
      2019-01-12  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.dg/ISO_Fortran_binding_1.f90 : New test.
      	* gfortran.dg/ISO_Fortran_binding_1.c : Auxilliary file for test.
      	* gfortran.dg/ISO_Fortran_binding_2.f90 : New test.
      	* gfortran.dg/ISO_Fortran_binding_2.c : Auxilliary file for test.
      	* gfortran.dg/bind_c_array_params_2.f90 : Change search string
      	for dump tree scan.
      
      2019-01-12  Paul Thomas  <pault@gcc.gnu.org>
      
      	* ISO_Fortran_binding.h : New file.
      	* Makefile.am : Include ISO_Fortran_binding.c in the list of
      	files to compile.
      	* Makefile.in : Regenerated.
      	* gfortran.map : Add _gfortran_cfi_desc_to_gfc_desc,
      	_gfortran_gfc_desc_to_cfi_desc and the CFI API functions.
      	* runtime/ISO_Fortran_binding.c : New file containing the new
      	functions added to the map.
      
      From-SVN: r267881
      Paul Thomas committed
  3. 01 Jan, 2019 1 commit
  4. 02 Dec, 2018 1 commit
  5. 30 Nov, 2018 1 commit
    • Initialize backtrace state once · 854cedfd
      From backtrace.h for backtrace_create_state:
      
         Calling this function allocates resources that can not be freed.
         There is no backtrace_free_state function.  The state is used to
         cache information that is expensive to recompute.  Programs are
         expected to call this function at most once and to save the return
         value for all later calls to backtrace functions.
      
      So instead of calling backtrace_create_state every time we wish to
      show a backtrace, do it once and store the result in a static
      variable.  libbacktrace allows multiple threads to access the state,
      so no need to use TLS.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-11-30  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/88137
      	* runtime/backtrace.c (show_backtrace): Make lbstate a static
      	variable, initialize once.
      
      From-SVN: r266677
      Janne Blomqvist committed
  6. 23 Nov, 2018 1 commit
    • Make recursion_check work for multiple threads · f4c0f888
      With multiple threads, using an unprotected static variable to check
      whether recursion has occured isn't valid, as one thread might have
      modified the variable, thus causing another thread to incorrectly
      conclude that recursion has occured.  This patch avoids this problem
      by using a thread-specific variable for the recursion check.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-11-23  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* runtime/error.c (MAGIC): Remove.
      	(recursion_key): New variable.
      	(recursion_check): Use thread-specific variable for recursion
      	check if threads are active.
      	(constructor_recursion_check): New function.
      	(destructor_recursion_check): New funcion.
      
      From-SVN: r266419
      Janne Blomqvist committed
  7. 21 Sep, 2018 1 commit
    • Use vectored writes when reporting errors and warnings. · edaaef60
      When producing error and warning messages, libgfortran writes a
      message by using many system calls.  By using vectored writes (the
      POSIX writev function) when available and feasible to use without
      major surgery, we reduce the chance that output gets intermingled with
      other output to stderr.
      
      In practice, this is done by introducing a new function estr_writev in
      addition to the existing estr_write.  In order to use this, the old
      st_vprintf is removed, replaced by direct calls of vsnprintf, allowing
      more message batching.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-09-21  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      	* configure.ac: Check for writev and sys/uio.h.
      	* libgfortran.h: Include sys/uio.h.
      	(st_vprintf): Remove prototype.
      	(struct iovec): Define if not available.
      	(estr_writev): New prototype.
      	* runtime/backtrace.c (error_callback): Use estr_writev.
      	* runtime/error.c (ST_VPRINTF_SIZE): Remove.
      	(estr_writev): New function.
      	(st_vprintf): Remove.
      	(gf_vsnprintf): New function.
      	(ST_ERRBUF_SIZE): New macro.
      	(st_printf): Use vsnprintf.
      	(os_error): Use estr_writev.
      	(runtime_error): Use vsnprintf and estr_writev.
      	(runtime_error_at): Likewise.
      	(runtime_warning_at): Likewise.
      	(internal_error): Use estr_writev.
      	(generate_error_common): Likewise.
      	(generate_warning): Likewise.
      	(notify_std): Likewise.
      	* runtime/pause.c (pause_string): Likewise.
      	* runtime/stop.c (report_exception): Likewise.
      	(stop_string): Likewise.
      	(error_stop_string): Likewise.
      
      From-SVN: r264487
      Janne Blomqvist committed
  8. 12 Sep, 2018 2 commits
    • Fix interleaving of Fortran STOP messages · 72ced874
      Fortran STOP and ERROR STOP use a different function to print the "STOP" string
      and the message string.  On GCN this results in out-of-order output, such as
      "<msg>ERROR STOP ".
      
      This patch fixes the problem by making estr_write use the proper Fortran write,
      not C printf, so both parts are now output the same way.  This also ensures
      that both parts are output to STDERR (not that that means anything on GCN).
      
      2018-09-12  Kwok Cheung Yeung  <kcy@codesourcery.com>
      
      	libgfortran/
      	* runtime/minimal.c (estr_write): Define in terms of write.
      
      From-SVN: r264239
      Kwok Cheung Yeung committed
    • Fix Fortran STOP. · 4986a956
      The minimal libgfortran setup was created for NVPTX, but will also be used by
      AMD GCN.
      
      This patch simply removes an assumption that NVPTX is the only user.
      Specifically, NVPTX exit is broken, but AMD GCN exit works just fine.
      
      2018-09-12  Andrew Stubbs  <ams@codesourcery.com>
      
      	libgfortran/
      	* runtime/minimal.c (exit): Only work around nvptx bugs on nvptx.
      
      From-SVN: r264238
      Andrew Stubbs committed
  9. 07 Sep, 2018 1 commit
  10. 21 Aug, 2018 1 commit
    • re PR fortran/25829 ([F03] Asynchronous IO support) · 2b4c9065
      2018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* gfortran.texi: Add description of asynchronous I/O.
      	* trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
      	as volatile.
      	* trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
      	st_wait_async and change argument spec from ".X" to ".w".
      	(gfc_trans_wait): Pass ID argument via reference.
      
      2018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* gfortran.dg/f2003_inquire_1.f03: Add write statement.
      	* gfortran.dg/f2003_io_1.f03: Add wait statement.
      
      2018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* Makefile.am: Add async.c to gfor_io_src.
      	Add async.h to gfor_io_headers.
      	* Makefile.in: Regenerated.
      	* gfortran.map: Add _gfortran_st_wait_async.
      	* io/async.c: New file.
      	* io/async.h: New file.
      	* io/close.c: Include async.h.
      	(st_close): Call async_wait for an asynchronous unit.
      	* io/file_pos.c (st_backspace): Likewise.
      	(st_endfile): Likewise.
      	(st_rewind): Likewise.
      	(st_flush): Likewise.
      	* io/inquire.c: Add handling for asynchronous PENDING
      	and ID arguments.
      	* io/io.h (st_parameter_dt): Add async bit.
      	(st_parameter_wait): Correct.
      	(gfc_unit): Add au pointer.
      	(st_wait_async): Add prototype.
      	(transfer_array_inner): Likewise.
      	(st_write_done_worker): Likewise.
      	* io/open.c: Include async.h.
      	(new_unit): Initialize asynchronous unit.
      	* io/transfer.c (async_opt): New struct.
      	(wrap_scalar_transfer): New function.
      	(transfer_integer): Call wrap_scalar_transfer to do the work.
      	(transfer_real): Likewise.
      	(transfer_real_write): Likewise.
      	(transfer_character): Likewise.
      	(transfer_character_wide): Likewise.
      	(transfer_complex): Likewise.
      	(transfer_array_inner): New function.
      	(transfer_array): Call transfer_array_inner.
      	(transfer_derived): Call wrap_scalar_transfer.
      	(data_transfer_init): Check for asynchronous I/O.
      	Perform a wait operation on any pending asynchronous I/O
      	if the data transfer is synchronous. Copy PDT and enqueue
      	thread for data transfer.
      	(st_read_done_worker): New function.
      	(st_read_done): Enqueue transfer or call st_read_done_worker.
      	(st_write_done_worker): New function.
      	(st_write_done): Enqueue transfer or call st_read_done_worker.
      	(st_wait): Document as no-op for compatibility reasons.
      	(st_wait_async): New function.
      	* io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK;
      	add NOTE where necessary.
      	(get_gfc_unit): Likewise.
      	(init_units): Likewise.
      	(close_unit_1): Likewise. Call async_close if asynchronous.
      	(close_unit): Use macros LOCK and UNLOCK.
      	(finish_last_advance_record): Likewise.
      	(newunit_alloc): Likewise.
      	* io/unix.c (find_file): Likewise.
      	(flush_all_units_1): Likewise.
      	(flush_all_units): Likewise.
      	* libgfortran.h (generate_error_common): Add prototype.
      	* runtime/error.c: Include io.h and async.h.
      	(generate_error_common): New function.
      
      2018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* testsuite/libgomp.fortran/async_io_1.f90: New test.
      	* testsuite/libgomp.fortran/async_io_2.f90: New test.
      	* testsuite/libgomp.fortran/async_io_3.f90: New test.
      	* testsuite/libgomp.fortran/async_io_4.f90: New test.
      	* testsuite/libgomp.fortran/async_io_5.f90: New test.
      	* testsuite/libgomp.fortran/async_io_6.f90: New test.
      	* testsuite/libgomp.fortran/async_io_7.f90: New test.
      
      
      Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org>
      
      From-SVN: r263750
      Nicolas Koenig committed
  11. 31 Jul, 2018 1 commit
    • Reverting 'AsyncI/O patch committed' as it is breaking bare-metal builds. · 1d4a51cf
      2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	Revert 'AsyncI/O patch committed'
      	2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      		Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* gfortran.texi: Add description of asynchronous I/O.
      	* trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
      	as volatile.
      	* trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
      	st_wait_async and change argument spec from ".X" to ".w".
      	(gfc_trans_wait): Pass ID argument via reference.
      
      2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	Revert 'AsyncI/O patch committed'
      	2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      		Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* gfortran.dg/f2003_inquire_1.f03: Add write statement.
      	* gfortran.dg/f2003_io_1.f03: Add wait statement.
      
      2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	Revert 'AsyncI/O patch committed'
      	2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      		Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* Makefile.am: Add async.c to gfor_io_src.
      	Add async.h to gfor_io_headers.
      	* Makefile.in: Regenerated.
      	* gfortran.map: Add _gfortran_st_wait_async.
      	* io/async.c: New file.
      	* io/async.h: New file.
      	* io/close.c: Include async.h.
      	(st_close): Call async_wait for an asynchronous unit.
      	* io/file_pos.c (st_backspace): Likewise.
      	(st_endfile): Likewise.
      	(st_rewind): Likewise.
      	(st_flush): Likewise.
      	* io/inquire.c: Add handling for asynchronous PENDING
      	and ID arguments.
      	* io/io.h (st_parameter_dt): Add async bit.
      	(st_parameter_wait): Correct.
      	(gfc_unit): Add au pointer.
      	(st_wait_async): Add prototype.
      	(transfer_array_inner): Likewise.
      	(st_write_done_worker): Likewise.
      	* io/open.c: Include async.h.
      	(new_unit): Initialize asynchronous unit.
      	* io/transfer.c (async_opt): New struct.
      	(wrap_scalar_transfer): New function.
      	(transfer_integer): Call wrap_scalar_transfer to do the work.
      	(transfer_real): Likewise.
      	(transfer_real_write): Likewise.
      	(transfer_character): Likewise.
      	(transfer_character_wide): Likewise.
      	(transfer_complex): Likewise.
      	(transfer_array_inner): New function.
      	(transfer_array): Call transfer_array_inner.
      	(transfer_derived): Call wrap_scalar_transfer.
      	(data_transfer_init): Check for asynchronous I/O.
      	Perform a wait operation on any pending asynchronous I/O
      	if the data transfer is synchronous. Copy PDT and enqueue
      	thread for data transfer.
      	(st_read_done_worker): New function.
      	(st_read_done): Enqueue transfer or call st_read_done_worker.
      	(st_write_done_worker): New function.
      	(st_write_done): Enqueue transfer or call st_read_done_worker.
      	(st_wait): Document as no-op for compatibility reasons.
      	(st_wait_async): New function.
      	* io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK;
      	add NOTE where necessary.
      	(get_gfc_unit): Likewise.
      	(init_units): Likewise.
      	(close_unit_1): Likewise. Call async_close if asynchronous.
      	(close_unit): Use macros LOCK and UNLOCK.
      	(finish_last_advance_record): Likewise.
      	(newunit_alloc): Likewise.
      	* io/unix.c (find_file): Likewise.
      	(flush_all_units_1): Likewise.
      	(flush_all_units): Likewise.
      	* libgfortran.h (generate_error_common): Add prototype.
      	* runtime/error.c: Include io.h and async.h.
      	(generate_error_common): New function.
      
      2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	Revert 'AsyncI/O patch committed'.
      	2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      		Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* testsuite/libgomp.fortran/async_io_1.f90: New test.
      	* testsuite/libgomp.fortran/async_io_2.f90: New test.
      	* testsuite/libgomp.fortran/async_io_3.f90: New test.
      	* testsuite/libgomp.fortran/async_io_4.f90: New test.
      	* testsuite/libgomp.fortran/async_io_5.f90: New test.
      	* testsuite/libgomp.fortran/async_io_6.f90: New test.
      	* testsuite/libgomp.fortran/async_io_7.f90: New test.
      
      From-SVN: r263082
      Andre Vieira committed
  12. 25 Jul, 2018 1 commit
    • re PR fortran/25829 ([F03] Asynchronous IO support) · b1f45884
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* gfortran.texi: Add description of asynchronous I/O.
      	* trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
      	as volatile.
      	* trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
      	st_wait_async and change argument spec from ".X" to ".w".
      	(gfc_trans_wait): Pass ID argument via reference.
      
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* gfortran.dg/f2003_inquire_1.f03: Add write statement.
      	* gfortran.dg/f2003_io_1.f03: Add wait statement.
      
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* Makefile.am: Add async.c to gfor_io_src.
      	Add async.h to gfor_io_headers.
      	* Makefile.in: Regenerated.
      	* gfortran.map: Add _gfortran_st_wait_async.
      	* io/async.c: New file.
      	* io/async.h: New file.
      	* io/close.c: Include async.h.
      	(st_close): Call async_wait for an asynchronous unit.
      	* io/file_pos.c (st_backspace): Likewise.
      	(st_endfile): Likewise.
      	(st_rewind): Likewise.
      	(st_flush): Likewise.
      	* io/inquire.c: Add handling for asynchronous PENDING
      	and ID arguments.
      	* io/io.h (st_parameter_dt): Add async bit.
      	(st_parameter_wait): Correct.
      	(gfc_unit): Add au pointer.
      	(st_wait_async): Add prototype.
      	(transfer_array_inner): Likewise.
      	(st_write_done_worker): Likewise.
      	* io/open.c: Include async.h.
      	(new_unit): Initialize asynchronous unit.
      	* io/transfer.c (async_opt): New struct.
      	(wrap_scalar_transfer): New function.
      	(transfer_integer): Call wrap_scalar_transfer to do the work.
      	(transfer_real): Likewise.
      	(transfer_real_write): Likewise.
      	(transfer_character): Likewise.
      	(transfer_character_wide): Likewise.
      	(transfer_complex): Likewise.
      	(transfer_array_inner): New function.
      	(transfer_array): Call transfer_array_inner.
      	(transfer_derived): Call wrap_scalar_transfer.
      	(data_transfer_init): Check for asynchronous I/O.
      	Perform a wait operation on any pending asynchronous I/O
      	if the data transfer is synchronous. Copy PDT and enqueue
      	thread for data transfer.
      	(st_read_done_worker): New function.
      	(st_read_done): Enqueue transfer or call st_read_done_worker.
      	(st_write_done_worker): New function.
      	(st_write_done): Enqueue transfer or call st_read_done_worker.
      	(st_wait): Document as no-op for compatibility reasons.
      	(st_wait_async): New function.
      	* io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK;
      	add NOTE where necessary.
      	(get_gfc_unit): Likewise.
      	(init_units): Likewise.
      	(close_unit_1): Likewise. Call async_close if asynchronous.
      	(close_unit): Use macros LOCK and UNLOCK.
      	(finish_last_advance_record): Likewise.
      	(newunit_alloc): Likewise.
      	* io/unix.c (find_file): Likewise.
      	(flush_all_units_1): Likewise.
      	(flush_all_units): Likewise.
      	* libgfortran.h (generate_error_common): Add prototype.
      	* runtime/error.c: Include io.h and async.h.
      	(generate_error_common): New function.
      
      2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
      	Thomas Koenig <tkoenig@gcc.gnu.org>
      
      	PR fortran/25829
      	* testsuite/libgomp.fortran/async_io_1.f90: New test.
      	* testsuite/libgomp.fortran/async_io_2.f90: New test.
      	* testsuite/libgomp.fortran/async_io_3.f90: New test.
      	* testsuite/libgomp.fortran/async_io_4.f90: New test.
      	* testsuite/libgomp.fortran/async_io_5.f90: New test.
      	* testsuite/libgomp.fortran/async_io_6.f90: New test.
      	* testsuite/libgomp.fortran/async_io_7.f90: New test.
      
      
      Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org>
      
      From-SVN: r262978
      Nicolas Koenig committed
  13. 19 Apr, 2018 1 commit
    • PR85463 '[nvptx] "exit" in offloaded region doesn't terminate process' · 6e0d40b6
      	libgomp/
      	PR libfortran/85166
      	* testsuite/libgomp.oacc-fortran/abort-1.f90: Switch back to "call
      	abort".
      	* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
      
      	libgfortran/
      	PR libfortran/85166
      	PR libgomp/85463
      	* runtime/minimal.c (stop_numeric): Reimplement.
      	(stop_string, error_stop_string, error_stop_numeric): New
      	functions.
      	libgomp/
      	PR libgomp/85463
      	* testsuite/libgomp.oacc-fortran/error_stop-1.f: New file.
      	* testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/stop-1.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/stop-3.f: Likewise.
      
      From-SVN: r259491
      Thomas Schwinge committed
  14. 04 Apr, 2018 1 commit
  15. 23 Feb, 2018 1 commit
    • PR 84519 Handle optional QUIET specifier for STOP and ERROR STOP · dffb1e22
      Fortran 2018 adds a new QUIET specifier for the STOP and ERROR STOP
      statements, in order to suppress the printing of signaling FP
      exceptions and the stop code. This patch adds the necessary library
      changes, but for now the new specifier is not parsed and the frontend
      unconditionally adds a false value for the new argument.
      
      Regtested on x86_64-pc-linux-gnu.
      
      gcc/fortran/ChangeLog:
      
      2018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/84519
      	* trans-decl.c (gfc_build_builtin_function_decls): Add bool
      	argument to stop and error stop decls.
      	* trans-stmt.c (gfc_trans_stop): Add false value to argument
      	lists.
      
      libgfortran/ChangeLog:
      
      2018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/84519
      	* caf/libcaf.h (_gfortran_caf_stop_numeric): Add bool argument.
      	(_gfortran_caf_stop_str): Likewise.
      	(_gfortran_caf_error_stop_str): Likewise.
      	(_gfortran_caf_error_stop): Likewise.
      	* caf/mpi.c (_gfortran_caf_error_stop_str): Handle new argument.
      	(_gfortran_caf_error_stop): Likewise.
      	* caf/single.c (_gfortran_caf_stop_numeric): Likewise.
      	(_gfortran_caf_stop_str): Likewise.
      	(_gfortran_caf_error_stop_str): Likewise.
      	(_gfortran_caf_error_stop): Likewise.
      	(_gfortran_caf_lock): Likewise.
      	(_gfortran_caf_unlock): Likewise.
      	* libgfortran.h (stop_string): Add bool argument.
      	* runtime/pause.c (do_pause): Add false argument.
      	* runtime/stop.c (stop_numeric): Handle new argument.
      	(stop_string): Likewise.
      	(error_stop_string): Likewise.
      	(error_stop_numeric): Likewise.
      
      From-SVN: r257928
      Janne Blomqvist committed
  16. 22 Feb, 2018 2 commits
    • PR 78534, 84509 Fix libgfortran API for PAUSE statement · 6cc22cf4
      This patch changes the libgfortran API for the PAUSE statement. By
      passing a GFC_INTEGER_8 it handles -fdefault-integer-8, and for the
      character version passing the length as a size_t.
      
      Regtested on x86_64-pc-linux-gnu, committed as obvious.
      
      gcc/fortran/ChangeLog:
      
      2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR 78534
      	PR 84509
      	* trans-decl.c (gfc_build_builtin_function_decls): Pass
      	gfc_int8_type node to pause_numeric, size_type_node to
      	pause_string.
      	* trans-stmt.c (gfc_trans_pause): Likewise.
      
      libgfortran/ChangeLog:
      
      2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR 78534
      	PR 84509
      	* runtime/pause.c (pause_numeric): Modify to take GFC_INTEGER_8
      	argument.
      	(pause_string): Modify to take size_t character length argument.
      
      From-SVN: r257903
      Janne Blomqvist committed
    • Character length cleanup for Coarray Fortran library · 3f5fabc0
      Following the change to use size_t for Fortran character lengths (PR
      78534), this patch modifies the Coarray ABI in a similar way. The
      single-image implementation that is included in libgfortran is
      updated, but this needs corresponding work in the OpenCoarray library
      as well for multi-image support. I also fixed the types for the STOP
      and ERROR STOP implementation in libgfortran, as the calling of them
      is somewhat intertwined with the calling of the corresponding CAF
      functions. I'll send the OpenCoarray changes as a separate pull
      request to the OpenCoarrays repository.
      
      Regtested on x86_64-pc-linux-gnu.
      
      gcc/fortran/ChangeLog:
      
      2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* gfortran.texi: Update Coarray API description.
      	* trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
      	character lengths, int for exit codes.
      	(generate_coarray_sym_init): Use size_t for character length.
      	* trans-intrinsic.c (conv_co_collective): Likewise.
      	* trans-stmt.c (gfc_trans_lock_unlock): Likewise.
      	(gfc_trans_event_post_wait): Likewise.
      	(gfc_trans_sync): Likewise.
      	(gfc_trans_stop): Use size_t for character lengths, int for exit
      	codes.
      
      libgfortran/ChangeLog:
      
      2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* libgfortran.h (stop_string): Use size_t for character length.
      	* runtime/stop.c (stop_string): Likewise.
      	(error_stop_string): Likewise.
      	(stop_numeric): Use int for exit code.
      	(error_stop_numeric): Likewise.
      	* caf/libcaf.h: Remove stdint.h include.
      	(_gfortran_caf_register): Use size_t for character length.
      	(_gfortran_caf_deregister): Likewise.
      	(_gfortran_caf_sync_all): Likewise.
      	(_gfortran_caf_sync_memory): Likewise.
      	(_gfortran_caf_sync_images): Likewise.
      	(_gfortran_caf_stop_numeric): Use int for exit code.
      	(_gfortran_caf_stop_str): Use size_t for character length.
      	(_gfortran_caf_error_stop_str): Likewise.
      	(_gfortran_caf_error_stop): Use int for exit code.
      	(_gfortran_caf_co_broadcast): Use size_t for character length.
      	(_gfortran_caf_co_sum): Likewise.
      	(_gfortran_caf_co_min): Likewise.
      	(_gfortran_caf_co_max): Likewise.
      	(_gfortran_caf_co_reduce): Likewise.
      	(_gfortran_caf_lock): Likewise.
      	(_gfortran_caf_unlock): Likewise.
      	(_gfortran_caf_event_post): Likewise.
      	(_gfortran_caf_event_wait): Likewise.
      	* caf/mpi.c (_gfortran_caf_register): Update implementation to
      	match prototype.
      	(_gfortran_caf_deregister): Likewise.
      	(_gfortran_caf_sync_all): Likewise.
      	(_gfortran_caf_sync_images): Likewise.
      	(_gfortran_caf_error_stop_str): Likewise.
      	(_gfortran_caf_error_stop): Likewise.
      	* caf/single.c (caf_internal_error): Likewise.
      	(_gfortran_caf_register): Likewise.
      	(_gfortran_caf_deregister): Likewise.
      	(_gfortran_caf_sync_all): Likewise.
      	(_gfortran_caf_sync_memory): Likewise.
      	(_gfortran_caf_sync_images): Likewise.
      	(_gfortran_caf_stop_numeric): Likewise.
      	(_gfortran_caf_stop_str): Likewise.
      	(_gfortran_caf_error_stop_str): Likewise.
      	(_gfortran_caf_error_stop): Likewise.
      	(_gfortran_caf_co_broadcast): Likewise.
      	(_gfortran_caf_co_sum): Likewise.
      	(_gfortran_caf_co_min): Likewise.
      	(_gfortran_caf_co_max): Likewise.
      	(_gfortran_caf_co_reduce): Likewise.
      	(_gfortran_caf_event_post): Likewise.
      	(_gfortran_caf_event_wait): Likewise.
      	(_gfortran_caf_lock): Likewise.
      	(_gfortran_caf_unlock): Likewise.
      
      From-SVN: r257894
      Janne Blomqvist committed
  17. 31 Jan, 2018 1 commit
    • Use pointer sized array indices. · 7a157266
      Using pointer sized variables (e.g. size_t / ptrdiff_t) when the
      variables are used as array indices allows accessing larger arrays,
      and can be a slight performance improvement due to no need for sign or
      zero extending, or masking.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* generated/cshift1_16.c (cshift1): Regenerated.
      	* generated/cshift1_4.c (cshift1): Regenerated.
      	* generated/cshift1_8.c (cshift1): Regenerated.
      	* generated/eoshift1_16.c (eoshift1): Regenerated.
      	* generated/eoshift1_4.c (eoshift1): Regenerated.
      	* generated/eoshift1_8.c (eoshift1): Regenerated.
      	* generated/eoshift3_16.c (eoshift3): Regenerated.
      	* generated/eoshift3_4.c (eoshift3): Regenerated.
      	* generated/eoshift3_8.c (eoshift3): Regenerated.
      	* generated/in_pack_c10.c (internal_pack_c10): Regenerated.
      	* generated/in_pack_c16.c (internal_pack_c16): Regenerated.
      	* generated/in_pack_c4.c (internal_pack_c4): Regenerated.
      	* generated/in_pack_c8.c (internal_pack_c8): Regenerated.
      	* generated/in_pack_i1.c (internal_pack_1): Regenerated.
      	* generated/in_pack_i16.c (internal_pack_16): Regenerated.
      	* generated/in_pack_i2.c (internal_pack_2): Regenerated.
      	* generated/in_pack_i4.c (internal_pack_4): Regenerated.
      	* generated/in_pack_i8.c (internal_pack_8): Regenerated.
      	* generated/in_pack_r10.c (internal_pack_r10): Regenerated.
      	* generated/in_pack_r16.c (internal_pack_r16): Regenerated.
      	* generated/in_pack_r4.c (internal_pack_r4): Regenerated.
      	* generated/in_pack_r8.c (internal_pack_r8): Regenerated.
      	* generated/in_unpack_c10.c (internal_unpack_c10): Regenerated.
      	* generated/in_unpack_c16.c (internal_unpack_c16): Regenerated.
      	* generated/in_unpack_c4.c (internal_unpack_c4): Regenerated.
      	* generated/in_unpack_c8.c (internal_unpack_c8): Regenerated.
      	* generated/in_unpack_i1.c (internal_unpack_1): Regenerated.
      	* generated/in_unpack_i16.c (internal_unpack_16): Regenerated.
      	* generated/in_unpack_i2.c (internal_unpack_2): Regenerated.
      	* generated/in_unpack_i4.c (internal_unpack_4): Regenerated.
      	* generated/in_unpack_i8.c (internal_unpack_8): Regenerated.
      	* generated/in_unpack_r10.c (internal_unpack_r10): Regenerated.
      	* generated/in_unpack_r16.c (internal_unpack_r16): Regenerated.
      	* generated/in_unpack_r4.c (internal_unpack_r4): Regenerated.
      	* generated/in_unpack_r8.c (internal_unpack_r8): Regenerated.
      	* generated/reshape_c10.c (reshape_c10): Regenerated.
      	* generated/reshape_c16.c (reshape_c16): Regenerated.
      	* generated/reshape_c4.c (reshape_c4): Regenerated.
      	* generated/reshape_c8.c (reshape_c8): Regenerated.
      	* generated/reshape_i16.c (reshape_16): Regenerated.
      	* generated/reshape_i4.c (reshape_4): Regenerated.
      	* generated/reshape_i8.c (reshape_8): Regenerated.
      	* generated/reshape_r10.c (reshape_r10): Regenerated.
      	* generated/reshape_r16.c (reshape_r16): Regenerated.
      	* generated/reshape_r4.c (reshape_r4): Regenerated.
      	* generated/reshape_r8.c (reshape_r8): Regenerated.
      	* generated/shape_i1.c (shape_1): Regenerated.
      	* generated/shape_i16.c (shape_16): Regenerated.
      	* generated/shape_i2.c (shape_2): Regenerated.
      	* generated/shape_i4.c (shape_4): Regenerated.
      	* generated/shape_i8.c (shape_8): Regenerated.
      	* generated/spread_c10.c (spread_scalar_c10): Regenerated.
      	* generated/spread_c16.c (spread_scalar_c16): Regenerated.
      	* generated/spread_c4.c (spread_scalar_c4): Regenerated.
      	* generated/spread_c8.c (spread_scalar_c8): Regenerated.
      	* generated/spread_i1.c (spread_scalar_i1): Regenerated.
      	* generated/spread_i16.c (spread_scalar_i16): Regenerated.
      	* generated/spread_i2.c (spread_scalar_i2): Regenerated.
      	* generated/spread_i4.c (spread_scalar_i4): Regenerated.
      	* generated/spread_i8.c (spread_scalar_i8): Regenerated.
      	* generated/spread_r10.c (spread_scalar_r10): Regenerated.
      	* generated/spread_r16.c (spread_scalar_r16): Regenerated.
      	* generated/spread_r4.c (spread_scalar_r4): Regenerated.
      	* generated/spread_r8.c (spread_scalar_r8): Regenerated.
      	* intrinsics/random.c (jump): Use size_t for array index in loop.
      	(getosrandom): Likewise.
      	(arandom_r4): Make n an index_type.
      	(arandom_r8): Likewise.
      	(arandom_r10): Likewise.
      	(arandom_r16): Likewise.
      	(scramble_seed): Use size_t for array index in loop.
      	* m4/cshift1.m4: Make i an index_type.
      	* m4/eoshift1.m4: Likewise.
      	* m4/eoshift3.m4: Likewise.
      	* m4/in_pack.m4: Make n an index_type.
      	* m4/in_unpack.m4: Likewise.
      	* m4/reshape.m4: Make n and dim index_type's.
      	* m4/shape.m4: Make n an index_type.
      	* m4/spread.m4: Likewise, use index_type argument rather than
      	copying to int.
      	* runtime/bounds.c (bounds_ifunction_return): Make n an
      	index_type.
      	* runtime/in_pack_generic.c (internal_pack): Likewise.
      	* runtime/in_unpack_generic.c (internal_unpack): Make n and size
      	index_type's.
      
      From-SVN: r257234
      Janne Blomqvist committed
  18. 30 Jan, 2018 1 commit
    • re PR fortran/37577 ([meta-bug] change internal array descriptor format for… · b6019ab1
      re PR fortran/37577 ([meta-bug] change internal array descriptor format for better syntax, C interop TR, rank 15)
      
      2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/37577
      	* libgfortran.h: Remove GFC_DTYPE_DERIVED_1, GFC_DTYPE_DERIVED_2,
      	GFC_DTYPE_DERIVED_4, GFC_DTYPE_DERIVED_8 and GFC_DTYPE_DERIVED_16.
      	* m4/cshift1.m4: Remove GFC_DTYPE_DERIVED_1.
      	* generated/cshift1_16.c: Regenerated.
      	* generated/cshift1_4.c: Regenerated.
      	* generated/cshift1_8.c: Regenerated.
      	* intrinsics/cshift0.c: Remove GFC_DTYPE_DERIVED_1.
      	* intrinsics/pack_generic.c (pack): Move handling of other types
      	into separate switch statement.
      	* intrinsics/spread_generic.c (spread): Likewise.
      	(spread_scalar): Likewise.
      	* intrinsics/unpack_generic.c (unpack1): Likewise.
      	(unpack0): Likewise.
      	* runtime/in_pack_generic.c (internal_pack): Likewise.
      	* runtime/in_unpack_generic.c (internal_unpack): Likewise.
      
      From-SVN: r257195
      Thomas Koenig committed
  19. 03 Jan, 2018 1 commit
  20. 28 Nov, 2017 1 commit
    • PR 53796 Improve INQUIRE(RECL=...) handling · 67c24a8b
      The current F2018 draft (N2137) specifies behavior of the RECL=
      specifier in the INQUIRE statement, where it previously was left as
      undefined. Namely:
      
      - If the unit is not connected, RECL= should be given the value -1.
      - If the unit is connected with stream access, RECL= should be given
        the value -2.
      
      Further, as PR 53796 describes, the handling of RECL= is poor in other
      ways as well. When the recl is set to the maximum possible
      (GFC_INTEGER_8_HUGE / LLONG_MAX), which it does by default except for
      preconnected units, and when INQUIRE(RECL=) is used with a 4 byte
      integer, the value is truncated and the 4 byte value is thus
      -1. Fixing this to generate an error is a lot of work, as currently
      the truncation is done by the frontend, the library sees only an 8
      byte value with no indication that the frontend is going to copy it to
      a 4 byte one. Instead, this patch does a bit twiddling trick such that
      the truncated 4 byte value is GFC_INTEGER_4_HUGE while still being
      0.99999999 * GFC_INTEGER_8_HUGE which is large enough for all
      practical purposes.
      
      Finally, the patch removes GFORTRAN_DEFAULT_RECL which was used only
      for preconnected units, and instead uses the same approach as describe
      above.
      
      Regtested on x86_64-pc-linux-gnu, Ok for trunk.
      
      gcc/fortran/ChangeLog:
      
      2017-11-28  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/53796
      	* gfortran.texi: Remove mentions of GFORTRAN_DEFAULT_RECL.
      
      libgfortran/ChangeLog:
      
      2017-11-28  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/53796
      	* io/inquire.c (inquire_via_unit): Set recl to -1 for unconnected
      	units.
      	* io/io.h (default_recl): New variable.
      	* io/open.c (new_unit): Set recl to default_recl for sequential,
      	-2 for stream access.
      	* io/transfer.c (read_block_form): Test against default_recl
      	instead of DEFAULT_RECL.
      	(write_block): Likewise.
      	* io/unit.c (init_units): Calculate max_offset, default_recl.
      	* libgfortran.h (DEFAULT_RECL): Remove.
      	* runtime/environ.c: Remove GFORTRAN_DEFAULT_RECL.
      
      gcc/testsuite/ChangeLog:
      
      2017-11-28  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/53796
      	* gfortran.dg/inquire_recl_f2018.f90: New test.
      
      From-SVN: r255215
      Janne Blomqvist committed
  21. 22 Nov, 2017 1 commit
    • PR 83097 Use __BYTE_ORDER__ predefined macro instead of runtime check · 5675291d
      By using the __BYTE_ORDER__ predefined macro we don't need the
      determine_endianness function anymore.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2017-11-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR libfortran/83097
      	* io/inquire.c (inquire_via_unit): Use __BYTE_ORDER__ predefined
      	macro.
      	* io/open.c (st_open): Likewise.
      	* io/transfer.c (data_transfer_init): Likewise.
      	* io/write.c (btoa_big): Likewise.
      	(otoa_big): Likewise.
      	(ztoa_big): Likewise.
      	* libgfortran.h (big_endian): Remove variable.
      	(GFOR_POINTER_TO_L1): Use __BYTE_ORDER__ macro.
      	* runtime/main.c (determine_endianness): Remove function.
      	(init): Remove call to determine_endianness.
      	* runtime/minimal.c: Remove setting big_endian variable.
      
      From-SVN: r255072
      Janne Blomqvist committed
  22. 24 Sep, 2017 1 commit
  23. 12 May, 2017 1 commit
  24. 11 May, 2017 1 commit
    • Don't assume __secure_getenv is available · d86e68e2
      Glibc 2.17 made __secure_getenv an officially supported function, and
      renamed it secure_getenv. The libgfortran configure has checked for
      both of these, per
      https://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv.
      
      Unfortunately, while the dynamical library (libc.so) retains the
      __secure_getenv symbol for backwards compatibility, the static library
      (libc.a) does not. This means that a libgfortran.a compiled against an
      older glibc will not work if one tries to link against a newer
      libc.a. This creates problems for providing gfortran binary
      distributions that work on as many target systems as possible.
      
      Thus, retain the support for __secure_getenv but call it only via a
      weak reference.
      
      Regtested on x86_64-pc-linux-gnu.
      
      2017-05-11  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* libgfortran.h: HAVE_SECURE_GETENV: Don't check
      	HAVE___SECURE_GETENV.
      	* environ/runtime.c (secure_getenv): Use __secure_getenv via a
              weak reference.
      
      From-SVN: r247927
      Janne Blomqvist committed
  25. 01 Jan, 2017 1 commit
  26. 21 Dec, 2016 4 commits
    • random.c: Do not include <sys/types.h> header. · e034421f
      	* intrinsics/random.c: Do not include <sys/types.h> header.
      	* m4/maxloc0.m4: Do not include <limits.h> header.
      	* m4/maxloc1.m4: Do not include <limits.h> header.
      	* m4/minloc0.m4: Do not include <limits.h> header.
      	* m4/minloc1.m4: Do not include <limits.h> header.
      	* m4/norm2.m4: Do not include <math.h> header.
      	* m4/parity.m4: Do not include <math.h> header.
      	* runtime/minimal.c: Remove <limits.h> and <errno.h> headers.
      	* generated/maxloc0_16_i1.c: Regenerate.
      	* generated/maxloc0_16_i16.c: Regenerate.
      	* generated/maxloc0_16_i2.c: Regenerate.
      	* generated/maxloc0_16_i4.c: Regenerate.
      	* generated/maxloc0_16_i8.c: Regenerate.
      	* generated/maxloc0_16_r10.c: Regenerate.
      	* generated/maxloc0_16_r16.c: Regenerate.
      	* generated/maxloc0_16_r4.c: Regenerate.
      	* generated/maxloc0_16_r8.c: Regenerate.
      	* generated/maxloc0_4_i1.c: Regenerate.
      	* generated/maxloc0_4_i16.c: Regenerate.
      	* generated/maxloc0_4_i2.c: Regenerate.
      	* generated/maxloc0_4_i4.c: Regenerate.
      	* generated/maxloc0_4_i8.c: Regenerate.
      	* generated/maxloc0_4_r10.c: Regenerate.
      	* generated/maxloc0_4_r16.c: Regenerate.
      	* generated/maxloc0_4_r4.c: Regenerate.
      	* generated/maxloc0_4_r8.c: Regenerate.
      	* generated/maxloc0_8_i1.c: Regenerate.
      	* generated/maxloc0_8_i16.c: Regenerate.
      	* generated/maxloc0_8_i2.c: Regenerate.
      	* generated/maxloc0_8_i4.c: Regenerate.
      	* generated/maxloc0_8_i8.c: Regenerate.
      	* generated/maxloc0_8_r10.c: Regenerate.
      	* generated/maxloc0_8_r16.c: Regenerate.
      	* generated/maxloc0_8_r4.c: Regenerate.
      	* generated/maxloc0_8_r8.c: Regenerate.
      	* generated/maxloc1_16_i1.c: Regenerate.
      	* generated/maxloc1_16_i16.c: Regenerate.
      	* generated/maxloc1_16_i2.c: Regenerate.
      	* generated/maxloc1_16_i4.c: Regenerate.
      	* generated/maxloc1_16_i8.c: Regenerate.
      	* generated/maxloc1_16_r10.c: Regenerate.
      	* generated/maxloc1_16_r16.c: Regenerate.
      	* generated/maxloc1_16_r4.c: Regenerate.
      	* generated/maxloc1_16_r8.c: Regenerate.
      	* generated/maxloc1_4_i1.c: Regenerate.
      	* generated/maxloc1_4_i16.c: Regenerate.
      	* generated/maxloc1_4_i2.c: Regenerate.
      	* generated/maxloc1_4_i4.c: Regenerate.
      	* generated/maxloc1_4_i8.c: Regenerate.
      	* generated/maxloc1_4_r10.c: Regenerate.
      	* generated/maxloc1_4_r16.c: Regenerate.
      	* generated/maxloc1_4_r4.c: Regenerate.
      	* generated/maxloc1_4_r8.c: Regenerate.
      	* generated/maxloc1_8_i1.c: Regenerate.
      	* generated/maxloc1_8_i16.c: Regenerate.
      	* generated/maxloc1_8_i2.c: Regenerate.
      	* generated/maxloc1_8_i4.c: Regenerate.
      	* generated/maxloc1_8_i8.c: Regenerate.
      	* generated/maxloc1_8_r10.c: Regenerate.
      	* generated/maxloc1_8_r16.c: Regenerate.
      	* generated/maxloc1_8_r4.c: Regenerate.
      	* generated/maxloc1_8_r8.c: Regenerate.
      	* generated/minloc0_16_i1.c: Regenerate.
      	* generated/minloc0_16_i16.c: Regenerate.
      	* generated/minloc0_16_i2.c: Regenerate.
      	* generated/minloc0_16_i4.c: Regenerate.
      	* generated/minloc0_16_i8.c: Regenerate.
      	* generated/minloc0_16_r10.c: Regenerate.
      	* generated/minloc0_16_r16.c: Regenerate.
      	* generated/minloc0_16_r4.c: Regenerate.
      	* generated/minloc0_16_r8.c: Regenerate.
      	* generated/minloc0_4_i1.c: Regenerate.
      	* generated/minloc0_4_i16.c: Regenerate.
      	* generated/minloc0_4_i2.c: Regenerate.
      	* generated/minloc0_4_i4.c: Regenerate.
      	* generated/minloc0_4_i8.c: Regenerate.
      	* generated/minloc0_4_r10.c: Regenerate.
      	* generated/minloc0_4_r16.c: Regenerate.
      	* generated/minloc0_4_r4.c: Regenerate.
      	* generated/minloc0_4_r8.c: Regenerate.
      	* generated/minloc0_8_i1.c: Regenerate.
      	* generated/minloc0_8_i16.c: Regenerate.
      	* generated/minloc0_8_i2.c: Regenerate.
      	* generated/minloc0_8_i4.c: Regenerate.
      	* generated/minloc0_8_i8.c: Regenerate.
      	* generated/minloc0_8_r10.c: Regenerate.
      	* generated/minloc0_8_r16.c: Regenerate.
      	* generated/minloc0_8_r4.c: Regenerate.
      	* generated/minloc0_8_r8.c: Regenerate.
      	* generated/minloc1_16_i1.c: Regenerate.
      	* generated/minloc1_16_i16.c: Regenerate.
      	* generated/minloc1_16_i2.c: Regenerate.
      	* generated/minloc1_16_i4.c: Regenerate.
      	* generated/minloc1_16_i8.c: Regenerate.
      	* generated/minloc1_16_r10.c: Regenerate.
      	* generated/minloc1_16_r16.c: Regenerate.
      	* generated/minloc1_16_r4.c: Regenerate.
      	* generated/minloc1_16_r8.c: Regenerate.
      	* generated/minloc1_4_i1.c: Regenerate.
      	* generated/minloc1_4_i16.c: Regenerate.
      	* generated/minloc1_4_i2.c: Regenerate.
      	* generated/minloc1_4_i4.c: Regenerate.
      	* generated/minloc1_4_i8.c: Regenerate.
      	* generated/minloc1_4_r10.c: Regenerate.
      	* generated/minloc1_4_r16.c: Regenerate.
      	* generated/minloc1_4_r4.c: Regenerate.
      	* generated/minloc1_4_r8.c: Regenerate.
      	* generated/minloc1_8_i1.c: Regenerate.
      	* generated/minloc1_8_i16.c: Regenerate.
      	* generated/minloc1_8_i2.c: Regenerate.
      	* generated/minloc1_8_i4.c: Regenerate.
      	* generated/minloc1_8_i8.c: Regenerate.
      	* generated/minloc1_8_r10.c: Regenerate.
      	* generated/minloc1_8_r16.c: Regenerate.
      	* generated/minloc1_8_r4.c: Regenerate.
      	* generated/minloc1_8_r8.c: Regenerate.
      	* generated/norm2_r10.c: Regenerate.
      	* generated/norm2_r16.c: Regenerate.
      	* generated/norm2_r4.c: Regenerate.
      	* generated/norm2_r8.c: Regenerate.
      	* generated/parity_l1.c: Regenerate.
      	* generated/parity_l16.c: Regenerate.
      	* generated/parity_l2.c: Regenerate.
      	* generated/parity_l4.c: Regenerate.
      	* generated/parity_l8.c: Regenerate.
      
      From-SVN: r243847
      Francois-Xavier Coudert committed
    • libgfortran.h: Include <stdlib.h> header. · 887d9b8b
      	* libgfortran.h: Include <stdlib.h> header.
      	* intrinsics/access.c: Do not include <stdlib.h> header.
      	* intrinsics/chdir.c: Do not include <stdlib.h> header.
      	* intrinsics/chmod.c: Do not include <stdlib.h> header.
      	* intrinsics/date_and_time.c: Do not include <stdlib.h> header.
      	* intrinsics/env.c: Do not include <stdlib.h> header.
      	* intrinsics/execute_command_line.c: Do not include <stdlib.h> header.
      	* intrinsics/exit.c: Do not include <stdlib.h> header.
      	* intrinsics/getcwd.c: Do not include <stdlib.h> header.
      	* intrinsics/getlog.c: Do not include <stdlib.h> header.
      	* intrinsics/link.c: Do not include <stdlib.h> header.
      	* intrinsics/move_alloc.c: Do not include <stdlib.h> header.
      	* intrinsics/perror.c: Do not include <stdlib.h> header.
      	* intrinsics/random.c: Do not include <stdlib.h> header.
      	* intrinsics/rename.c: Do not include <stdlib.h> header.
      	* intrinsics/reshape_generic.c: Do not include <stdlib.h> header.
      	* intrinsics/stat.c: Do not include <stdlib.h> header.
      	* intrinsics/symlnk.c: Do not include <stdlib.h> header.
      	* intrinsics/system.c: Do not include <stdlib.h> header.
      	* intrinsics/unlink.c: Do not include <stdlib.h> header.
      	* io/fbuf.c: Do not include <stdlib.h> header.
      	* io/format.c: Do not include <stdlib.h> header.
      	* io/intrinsics.c: Do not include <stdlib.h> header.
      	* io/list_read.c: Do not include <stdlib.h> header.
      	* io/lock.c: Do not include <stdlib.h> header.
      	* io/open.c: Do not include <stdlib.h> header.
      	* io/read.c: Do not include <stdlib.h> header.
      	* io/transfer.c: Do not include <stdlib.h> header.
      	* io/unit.c: Do not include <stdlib.h> header.
      	* io/unix.c: Do not include <stdlib.h> header.
      	* io/write.c: Do not include <stdlib.h> header.
      	* m4/all.m4: Do not include <stdlib.h> header.
      	* m4/any.m4: Do not include <stdlib.h> header.
      	* m4/bessel.m4: Do not include <stdlib.h> header.
      	* m4/count.m4: Do not include <stdlib.h> header.
      	* m4/cshift0.m4: Do not include <stdlib.h> header.
      	* m4/cshift1.m4: Do not include <stdlib.h> header.
      	* m4/eoshift1.m4: Do not include <stdlib.h> header.
      	* m4/eoshift3.m4: Do not include <stdlib.h> header.
      	* m4/iall.m4: Do not include <stdlib.h> header.
      	* m4/iany.m4: Do not include <stdlib.h> header.
      	* m4/in_pack.m4: Do not include <stdlib.h> header.
      	* m4/in_unpack.m4: Do not include <stdlib.h> header.
      	* m4/iparity.m4: Do not include <stdlib.h> header.
      	* m4/matmul.m4: Do not include <stdlib.h> header.
      	* m4/matmull.m4: Do not include <stdlib.h> header.
      	* m4/maxloc0.m4: Do not include <stdlib.h> header.
      	* m4/maxloc1.m4: Do not include <stdlib.h> header.
      	* m4/maxval.m4: Do not include <stdlib.h> header.
      	* m4/minloc0.m4: Do not include <stdlib.h> header.
      	* m4/minloc1.m4: Do not include <stdlib.h> header.
      	* m4/minval.m4: Do not include <stdlib.h> header.
      	* m4/norm2.m4: Do not include <stdlib.h> header.
      	* m4/pack.m4: Do not include <stdlib.h> header.
      	* m4/parity.m4: Do not include <stdlib.h> header.
      	* m4/product.m4: Do not include <stdlib.h> header.
      	* m4/reshape.m4: Do not include <stdlib.h> header.
      	* m4/shape.m4: Do not include <stdlib.h> header.
      	* m4/spread.m4: Do not include <stdlib.h> header.
      	* m4/sum.m4: Do not include <stdlib.h> header.
      	* m4/unpack.m4: Do not include <stdlib.h> header.
      	* runtime/environ.c: Do not include <stdlib.h> header.
      	* runtime/error.c: Do not include <stdlib.h> header.
      	* runtime/memory.c: Do not include <stdlib.h> header.
      	* runtime/minimal.c: Do not include <stdlib.h> header.
      	* runtime/string.c: Do not include <stdlib.h> header.
      	* generated/all_l1.c: Regenerate.
      	* generated/all_l16.c: Regenerate.
      	* generated/all_l2.c: Regenerate.
      	* generated/all_l4.c: Regenerate.
      	* generated/all_l8.c: Regenerate.
      	* generated/any_l1.c: Regenerate.
      	* generated/any_l16.c: Regenerate.
      	* generated/any_l2.c: Regenerate.
      	* generated/any_l4.c: Regenerate.
      	* generated/any_l8.c: Regenerate.
      	* generated/bessel_r10.c: Regenerate.
      	* generated/bessel_r16.c: Regenerate.
      	* generated/bessel_r4.c: Regenerate.
      	* generated/bessel_r8.c: Regenerate.
      	* generated/count_16_l.c: Regenerate.
      	* generated/count_1_l.c: Regenerate.
      	* generated/count_2_l.c: Regenerate.
      	* generated/count_4_l.c: Regenerate.
      	* generated/count_8_l.c: Regenerate.
      	* generated/cshift0_c10.c: Regenerate.
      	* generated/cshift0_c16.c: Regenerate.
      	* generated/cshift0_c4.c: Regenerate.
      	* generated/cshift0_c8.c: Regenerate.
      	* generated/cshift0_i1.c: Regenerate.
      	* generated/cshift0_i16.c: Regenerate.
      	* generated/cshift0_i2.c: Regenerate.
      	* generated/cshift0_i4.c: Regenerate.
      	* generated/cshift0_i8.c: Regenerate.
      	* generated/cshift0_r10.c: Regenerate.
      	* generated/cshift0_r16.c: Regenerate.
      	* generated/cshift0_r4.c: Regenerate.
      	* generated/cshift0_r8.c: Regenerate.
      	* generated/cshift1_16.c: Regenerate.
      	* generated/cshift1_4.c: Regenerate.
      	* generated/cshift1_8.c: Regenerate.
      	* generated/eoshift1_16.c: Regenerate.
      	* generated/eoshift1_4.c: Regenerate.
      	* generated/eoshift1_8.c: Regenerate.
      	* generated/eoshift3_16.c: Regenerate.
      	* generated/eoshift3_4.c: Regenerate.
      	* generated/eoshift3_8.c: Regenerate.
      	* generated/iall_i1.c: Regenerate.
      	* generated/iall_i16.c: Regenerate.
      	* generated/iall_i2.c: Regenerate.
      	* generated/iall_i4.c: Regenerate.
      	* generated/iall_i8.c: Regenerate.
      	* generated/iany_i1.c: Regenerate.
      	* generated/iany_i16.c: Regenerate.
      	* generated/iany_i2.c: Regenerate.
      	* generated/iany_i4.c: Regenerate.
      	* generated/iany_i8.c: Regenerate.
      	* generated/in_pack_c10.c: Regenerate.
      	* generated/in_pack_c16.c: Regenerate.
      	* generated/in_pack_c4.c: Regenerate.
      	* generated/in_pack_c8.c: Regenerate.
      	* generated/in_pack_i1.c: Regenerate.
      	* generated/in_pack_i16.c: Regenerate.
      	* generated/in_pack_i2.c: Regenerate.
      	* generated/in_pack_i4.c: Regenerate.
      	* generated/in_pack_i8.c: Regenerate.
      	* generated/in_pack_r10.c: Regenerate.
      	* generated/in_pack_r16.c: Regenerate.
      	* generated/in_pack_r4.c: Regenerate.
      	* generated/in_pack_r8.c: Regenerate.
      	* generated/in_unpack_c10.c: Regenerate.
      	* generated/in_unpack_c16.c: Regenerate.
      	* generated/in_unpack_c4.c: Regenerate.
      	* generated/in_unpack_c8.c: Regenerate.
      	* generated/in_unpack_i1.c: Regenerate.
      	* generated/in_unpack_i16.c: Regenerate.
      	* generated/in_unpack_i2.c: Regenerate.
      	* generated/in_unpack_i4.c: Regenerate.
      	* generated/in_unpack_i8.c: Regenerate.
      	* generated/in_unpack_r10.c: Regenerate.
      	* generated/in_unpack_r16.c: Regenerate.
      	* generated/in_unpack_r4.c: Regenerate.
      	* generated/in_unpack_r8.c: Regenerate.
      	* generated/iparity_i1.c: Regenerate.
      	* generated/iparity_i16.c: Regenerate.
      	* generated/iparity_i2.c: Regenerate.
      	* generated/iparity_i4.c: Regenerate.
      	* generated/iparity_i8.c: Regenerate.
      	* generated/matmul_c10.c: Regenerate.
      	* generated/matmul_c16.c: Regenerate.
      	* generated/matmul_c4.c: Regenerate.
      	* generated/matmul_c8.c: Regenerate.
      	* generated/matmul_i1.c: Regenerate.
      	* generated/matmul_i16.c: Regenerate.
      	* generated/matmul_i2.c: Regenerate.
      	* generated/matmul_i4.c: Regenerate.
      	* generated/matmul_i8.c: Regenerate.
      	* generated/matmul_l16.c: Regenerate.
      	* generated/matmul_l4.c: Regenerate.
      	* generated/matmul_l8.c: Regenerate.
      	* generated/matmul_r10.c: Regenerate.
      	* generated/matmul_r16.c: Regenerate.
      	* generated/matmul_r4.c: Regenerate.
      	* generated/matmul_r8.c: Regenerate.
      	* generated/maxloc0_16_i1.c: Regenerate.
      	* generated/maxloc0_16_i16.c: Regenerate.
      	* generated/maxloc0_16_i2.c: Regenerate.
      	* generated/maxloc0_16_i4.c: Regenerate.
      	* generated/maxloc0_16_i8.c: Regenerate.
      	* generated/maxloc0_16_r10.c: Regenerate.
      	* generated/maxloc0_16_r16.c: Regenerate.
      	* generated/maxloc0_16_r4.c: Regenerate.
      	* generated/maxloc0_16_r8.c: Regenerate.
      	* generated/maxloc0_4_i1.c: Regenerate.
      	* generated/maxloc0_4_i16.c: Regenerate.
      	* generated/maxloc0_4_i2.c: Regenerate.
      	* generated/maxloc0_4_i4.c: Regenerate.
      	* generated/maxloc0_4_i8.c: Regenerate.
      	* generated/maxloc0_4_r10.c: Regenerate.
      	* generated/maxloc0_4_r16.c: Regenerate.
      	* generated/maxloc0_4_r4.c: Regenerate.
      	* generated/maxloc0_4_r8.c: Regenerate.
      	* generated/maxloc0_8_i1.c: Regenerate.
      	* generated/maxloc0_8_i16.c: Regenerate.
      	* generated/maxloc0_8_i2.c: Regenerate.
      	* generated/maxloc0_8_i4.c: Regenerate.
      	* generated/maxloc0_8_i8.c: Regenerate.
      	* generated/maxloc0_8_r10.c: Regenerate.
      	* generated/maxloc0_8_r16.c: Regenerate.
      	* generated/maxloc0_8_r4.c: Regenerate.
      	* generated/maxloc0_8_r8.c: Regenerate.
      	* generated/maxloc1_16_i1.c: Regenerate.
      	* generated/maxloc1_16_i16.c: Regenerate.
      	* generated/maxloc1_16_i2.c: Regenerate.
      	* generated/maxloc1_16_i4.c: Regenerate.
      	* generated/maxloc1_16_i8.c: Regenerate.
      	* generated/maxloc1_16_r10.c: Regenerate.
      	* generated/maxloc1_16_r16.c: Regenerate.
      	* generated/maxloc1_16_r4.c: Regenerate.
      	* generated/maxloc1_16_r8.c: Regenerate.
      	* generated/maxloc1_4_i1.c: Regenerate.
      	* generated/maxloc1_4_i16.c: Regenerate.
      	* generated/maxloc1_4_i2.c: Regenerate.
      	* generated/maxloc1_4_i4.c: Regenerate.
      	* generated/maxloc1_4_i8.c: Regenerate.
      	* generated/maxloc1_4_r10.c: Regenerate.
      	* generated/maxloc1_4_r16.c: Regenerate.
      	* generated/maxloc1_4_r4.c: Regenerate.
      	* generated/maxloc1_4_r8.c: Regenerate.
      	* generated/maxloc1_8_i1.c: Regenerate.
      	* generated/maxloc1_8_i16.c: Regenerate.
      	* generated/maxloc1_8_i2.c: Regenerate.
      	* generated/maxloc1_8_i4.c: Regenerate.
      	* generated/maxloc1_8_i8.c: Regenerate.
      	* generated/maxloc1_8_r10.c: Regenerate.
      	* generated/maxloc1_8_r16.c: Regenerate.
      	* generated/maxloc1_8_r4.c: Regenerate.
      	* generated/maxloc1_8_r8.c: Regenerate.
      	* generated/maxval_i1.c: Regenerate.
      	* generated/maxval_i16.c: Regenerate.
      	* generated/maxval_i2.c: Regenerate.
      	* generated/maxval_i4.c: Regenerate.
      	* generated/maxval_i8.c: Regenerate.
      	* generated/maxval_r10.c: Regenerate.
      	* generated/maxval_r16.c: Regenerate.
      	* generated/maxval_r4.c: Regenerate.
      	* generated/maxval_r8.c: Regenerate.
      	* generated/minloc0_16_i1.c: Regenerate.
      	* generated/minloc0_16_i16.c: Regenerate.
      	* generated/minloc0_16_i2.c: Regenerate.
      	* generated/minloc0_16_i4.c: Regenerate.
      	* generated/minloc0_16_i8.c: Regenerate.
      	* generated/minloc0_16_r10.c: Regenerate.
      	* generated/minloc0_16_r16.c: Regenerate.
      	* generated/minloc0_16_r4.c: Regenerate.
      	* generated/minloc0_16_r8.c: Regenerate.
      	* generated/minloc0_4_i1.c: Regenerate.
      	* generated/minloc0_4_i16.c: Regenerate.
      	* generated/minloc0_4_i2.c: Regenerate.
      	* generated/minloc0_4_i4.c: Regenerate.
      	* generated/minloc0_4_i8.c: Regenerate.
      	* generated/minloc0_4_r10.c: Regenerate.
      	* generated/minloc0_4_r16.c: Regenerate.
      	* generated/minloc0_4_r4.c: Regenerate.
      	* generated/minloc0_4_r8.c: Regenerate.
      	* generated/minloc0_8_i1.c: Regenerate.
      	* generated/minloc0_8_i16.c: Regenerate.
      	* generated/minloc0_8_i2.c: Regenerate.
      	* generated/minloc0_8_i4.c: Regenerate.
      	* generated/minloc0_8_i8.c: Regenerate.
      	* generated/minloc0_8_r10.c: Regenerate.
      	* generated/minloc0_8_r16.c: Regenerate.
      	* generated/minloc0_8_r4.c: Regenerate.
      	* generated/minloc0_8_r8.c: Regenerate.
      	* generated/minloc1_16_i1.c: Regenerate.
      	* generated/minloc1_16_i16.c: Regenerate.
      	* generated/minloc1_16_i2.c: Regenerate.
      	* generated/minloc1_16_i4.c: Regenerate.
      	* generated/minloc1_16_i8.c: Regenerate.
      	* generated/minloc1_16_r10.c: Regenerate.
      	* generated/minloc1_16_r16.c: Regenerate.
      	* generated/minloc1_16_r4.c: Regenerate.
      	* generated/minloc1_16_r8.c: Regenerate.
      	* generated/minloc1_4_i1.c: Regenerate.
      	* generated/minloc1_4_i16.c: Regenerate.
      	* generated/minloc1_4_i2.c: Regenerate.
      	* generated/minloc1_4_i4.c: Regenerate.
      	* generated/minloc1_4_i8.c: Regenerate.
      	* generated/minloc1_4_r10.c: Regenerate.
      	* generated/minloc1_4_r16.c: Regenerate.
      	* generated/minloc1_4_r4.c: Regenerate.
      	* generated/minloc1_4_r8.c: Regenerate.
      	* generated/minloc1_8_i1.c: Regenerate.
      	* generated/minloc1_8_i16.c: Regenerate.
      	* generated/minloc1_8_i2.c: Regenerate.
      	* generated/minloc1_8_i4.c: Regenerate.
      	* generated/minloc1_8_i8.c: Regenerate.
      	* generated/minloc1_8_r10.c: Regenerate.
      	* generated/minloc1_8_r16.c: Regenerate.
      	* generated/minloc1_8_r4.c: Regenerate.
      	* generated/minloc1_8_r8.c: Regenerate.
      	* generated/minval_i1.c: Regenerate.
      	* generated/minval_i16.c: Regenerate.
      	* generated/minval_i2.c: Regenerate.
      	* generated/minval_i4.c: Regenerate.
      	* generated/minval_i8.c: Regenerate.
      	* generated/minval_r10.c: Regenerate.
      	* generated/minval_r16.c: Regenerate.
      	* generated/minval_r4.c: Regenerate.
      	* generated/minval_r8.c: Regenerate.
      	* generated/norm2_r10.c: Regenerate.
      	* generated/norm2_r16.c: Regenerate.
      	* generated/norm2_r4.c: Regenerate.
      	* generated/norm2_r8.c: Regenerate.
      	* generated/pack_c10.c: Regenerate.
      	* generated/pack_c16.c: Regenerate.
      	* generated/pack_c4.c: Regenerate.
      	* generated/pack_c8.c: Regenerate.
      	* generated/pack_i1.c: Regenerate.
      	* generated/pack_i16.c: Regenerate.
      	* generated/pack_i2.c: Regenerate.
      	* generated/pack_i4.c: Regenerate.
      	* generated/pack_i8.c: Regenerate.
      	* generated/pack_r10.c: Regenerate.
      	* generated/pack_r16.c: Regenerate.
      	* generated/pack_r4.c: Regenerate.
      	* generated/pack_r8.c: Regenerate.
      	* generated/parity_l1.c: Regenerate.
      	* generated/parity_l16.c: Regenerate.
      	* generated/parity_l2.c: Regenerate.
      	* generated/parity_l4.c: Regenerate.
      	* generated/parity_l8.c: Regenerate.
      	* generated/product_c10.c: Regenerate.
      	* generated/product_c16.c: Regenerate.
      	* generated/product_c4.c: Regenerate.
      	* generated/product_c8.c: Regenerate.
      	* generated/product_i1.c: Regenerate.
      	* generated/product_i16.c: Regenerate.
      	* generated/product_i2.c: Regenerate.
      	* generated/product_i4.c: Regenerate.
      	* generated/product_i8.c: Regenerate.
      	* generated/product_r10.c: Regenerate.
      	* generated/product_r16.c: Regenerate.
      	* generated/product_r4.c: Regenerate.
      	* generated/product_r8.c: Regenerate.
      	* generated/reshape_c10.c: Regenerate.
      	* generated/reshape_c16.c: Regenerate.
      	* generated/reshape_c4.c: Regenerate.
      	* generated/reshape_c8.c: Regenerate.
      	* generated/reshape_i16.c: Regenerate.
      	* generated/reshape_i4.c: Regenerate.
      	* generated/reshape_i8.c: Regenerate.
      	* generated/reshape_r10.c: Regenerate.
      	* generated/reshape_r16.c: Regenerate.
      	* generated/reshape_r4.c: Regenerate.
      	* generated/reshape_r8.c: Regenerate.
      	* generated/shape_i1.c: Regenerate.
      	* generated/shape_i16.c: Regenerate.
      	* generated/shape_i2.c: Regenerate.
      	* generated/shape_i4.c: Regenerate.
      	* generated/shape_i8.c: Regenerate.
      	* generated/spread_c10.c: Regenerate.
      	* generated/spread_c16.c: Regenerate.
      	* generated/spread_c4.c: Regenerate.
      	* generated/spread_c8.c: Regenerate.
      	* generated/spread_i1.c: Regenerate.
      	* generated/spread_i16.c: Regenerate.
      	* generated/spread_i2.c: Regenerate.
      	* generated/spread_i4.c: Regenerate.
      	* generated/spread_i8.c: Regenerate.
      	* generated/spread_r10.c: Regenerate.
      	* generated/spread_r16.c: Regenerate.
      	* generated/spread_r4.c: Regenerate.
      	* generated/spread_r8.c: Regenerate.
      	* generated/sum_c10.c: Regenerate.
      	* generated/sum_c16.c: Regenerate.
      	* generated/sum_c4.c: Regenerate.
      	* generated/sum_c8.c: Regenerate.
      	* generated/sum_i1.c: Regenerate.
      	* generated/sum_i16.c: Regenerate.
      	* generated/sum_i2.c: Regenerate.
      	* generated/sum_i4.c: Regenerate.
      	* generated/sum_i8.c: Regenerate.
      	* generated/sum_r10.c: Regenerate.
      	* generated/sum_r16.c: Regenerate.
      	* generated/sum_r4.c: Regenerate.
      	* generated/sum_r8.c: Regenerate.
      	* generated/unpack_c10.c: Regenerate.
      	* generated/unpack_c16.c: Regenerate.
      	* generated/unpack_c4.c: Regenerate.
      	* generated/unpack_c8.c: Regenerate.
      	* generated/unpack_i1.c: Regenerate.
      	* generated/unpack_i16.c: Regenerate.
      	* generated/unpack_i2.c: Regenerate.
      	* generated/unpack_i4.c: Regenerate.
      	* generated/unpack_i8.c: Regenerate.
      	* generated/unpack_r10.c: Regenerate.
      	* generated/unpack_r16.c: Regenerate.
      	* generated/unpack_r4.c: Regenerate.
      	* generated/unpack_r8.c: Regenerate.
      
      From-SVN: r243846
      Francois-Xavier Coudert committed
    • abort.c: Remove unused headers. · 981c0cd1
      	* intrinsics/abort.c: Remove unused headers.
      	* intrinsics/access.c: Remove unused headers.
      	* intrinsics/chdir.c: Remove unused headers.
      	* intrinsics/chmod.c: Remove unused headers.
      	* intrinsics/cshift0.c: Remove unused headers.
      	* intrinsics/ctime.c: Remove unused headers.
      	* intrinsics/eoshift0.c: Remove unused headers.
      	* intrinsics/eoshift2.c: Remove unused headers.
      	* intrinsics/extends_type_of.c: Remove unused headers.
      	* intrinsics/link.c: Remove unused headers.
      	* intrinsics/pack_generic.c: Remove unused headers.
      	* intrinsics/perror.c: Remove unused headers.
      	* intrinsics/rename.c: Remove unused headers.
      	* intrinsics/reshape_generic.c: Remove unused headers.
      	* intrinsics/sleep.c: Remove unused headers.
      	* intrinsics/spread_generic.c: Remove unused headers.
      	* intrinsics/stat.c: Remove unused headers.
      	* intrinsics/string_intrinsics.c: Remove unused headers.
      	* intrinsics/symlnk.c: Remove unused headers.
      	* intrinsics/system.c: Remove unused headers.
      	* intrinsics/umask.c: Remove unused headers.
      	* intrinsics/unlink.c: Remove unused headers.
      	* intrinsics/unpack_generic.c: Remove unused headers.
      	* io/read.c: Remove unused headers.
      	* io/transfer.c: Remove unused headers.
      	* io/unix.c: Remove unused headers.
      	* io/write.c: Remove unused headers.
      	* m4/all.m4: Remove unused headers.
      	* m4/any.m4: Remove unused headers.
      	* m4/bessel.m4: Remove unused headers.
      	* m4/count.m4: Remove unused headers.
      	* m4/cshift0.m4: Remove unused headers.
      	* m4/cshift1.m4: Remove unused headers.
      	* m4/eoshift1.m4: Remove unused headers.
      	* m4/eoshift3.m4: Remove unused headers.
      	* m4/iall.m4: Remove unused headers.
      	* m4/iany.m4: Remove unused headers.
      	* m4/in_pack.m4: Remove unused headers.
      	* m4/in_unpack.m4: Remove unused headers.
      	* m4/iparity.m4: Remove unused headers.
      	* m4/maxloc0.m4: Remove unused headers.
      	* m4/maxloc1.m4: Remove unused headers.
      	* m4/maxval.m4: Remove unused headers.
      	* m4/minloc0.m4: Remove unused headers.
      	* m4/minloc1.m4: Remove unused headers.
      	* m4/minval.m4: Remove unused headers.
      	* m4/norm2.m4: Remove unused headers.
      	* m4/pack.m4: Remove unused headers.
      	* m4/parity.m4: Remove unused headers.
      	* m4/product.m4: Remove unused headers.
      	* m4/reshape.m4: Remove unused headers.
      	* m4/shape.m4: Remove unused headers.
      	* m4/spread.m4: Remove unused headers.
      	* m4/sum.m4: Remove unused headers.
      	* m4/unpack.m4: Remove unused headers.
      	* runtime/backtrace.c: Remove unused headers.
      	* runtime/convert_char.c: Remove unused headers.
      	* runtime/in_pack_generic.c: Remove unused headers.
      	* runtime/in_unpack_generic.c: Remove unused headers.
      	* runtime/main.c: Remove unused headers.
      	* runtime/stop.c: Remove unused headers.
      	* generated/all_l1.c: Regenerate.
      	* generated/all_l16.c: Regenerate.
      	* generated/all_l2.c: Regenerate.
      	* generated/all_l4.c: Regenerate.
      	* generated/all_l8.c: Regenerate.
      	* generated/any_l1.c: Regenerate.
      	* generated/any_l16.c: Regenerate.
      	* generated/any_l2.c: Regenerate.
      	* generated/any_l4.c: Regenerate.
      	* generated/any_l8.c: Regenerate.
      	* generated/bessel_r10.c: Regenerate.
      	* generated/bessel_r16.c: Regenerate.
      	* generated/bessel_r4.c: Regenerate.
      	* generated/bessel_r8.c: Regenerate.
      	* generated/count_16_l.c: Regenerate.
      	* generated/count_1_l.c: Regenerate.
      	* generated/count_2_l.c: Regenerate.
      	* generated/count_4_l.c: Regenerate.
      	* generated/count_8_l.c: Regenerate.
      	* generated/cshift0_c10.c: Regenerate.
      	* generated/cshift0_c16.c: Regenerate.
      	* generated/cshift0_c4.c: Regenerate.
      	* generated/cshift0_c8.c: Regenerate.
      	* generated/cshift0_i1.c: Regenerate.
      	* generated/cshift0_i16.c: Regenerate.
      	* generated/cshift0_i2.c: Regenerate.
      	* generated/cshift0_i4.c: Regenerate.
      	* generated/cshift0_i8.c: Regenerate.
      	* generated/cshift0_r10.c: Regenerate.
      	* generated/cshift0_r16.c: Regenerate.
      	* generated/cshift0_r4.c: Regenerate.
      	* generated/cshift0_r8.c: Regenerate.
      	* generated/cshift1_16.c: Regenerate.
      	* generated/cshift1_4.c: Regenerate.
      	* generated/cshift1_8.c: Regenerate.
      	* generated/eoshift1_16.c: Regenerate.
      	* generated/eoshift1_4.c: Regenerate.
      	* generated/eoshift1_8.c: Regenerate.
      	* generated/eoshift3_16.c: Regenerate.
      	* generated/eoshift3_4.c: Regenerate.
      	* generated/eoshift3_8.c: Regenerate.
      	* generated/iall_i1.c: Regenerate.
      	* generated/iall_i16.c: Regenerate.
      	* generated/iall_i2.c: Regenerate.
      	* generated/iall_i4.c: Regenerate.
      	* generated/iall_i8.c: Regenerate.
      	* generated/iany_i1.c: Regenerate.
      	* generated/iany_i16.c: Regenerate.
      	* generated/iany_i2.c: Regenerate.
      	* generated/iany_i4.c: Regenerate.
      	* generated/iany_i8.c: Regenerate.
      	* generated/in_pack_c10.c: Regenerate.
      	* generated/in_pack_c16.c: Regenerate.
      	* generated/in_pack_c4.c: Regenerate.
      	* generated/in_pack_c8.c: Regenerate.
      	* generated/in_pack_i1.c: Regenerate.
      	* generated/in_pack_i16.c: Regenerate.
      	* generated/in_pack_i2.c: Regenerate.
      	* generated/in_pack_i4.c: Regenerate.
      	* generated/in_pack_i8.c: Regenerate.
      	* generated/in_pack_r10.c: Regenerate.
      	* generated/in_pack_r16.c: Regenerate.
      	* generated/in_pack_r4.c: Regenerate.
      	* generated/in_pack_r8.c: Regenerate.
      	* generated/in_unpack_c10.c: Regenerate.
      	* generated/in_unpack_c16.c: Regenerate.
      	* generated/in_unpack_c4.c: Regenerate.
      	* generated/in_unpack_c8.c: Regenerate.
      	* generated/in_unpack_i1.c: Regenerate.
      	* generated/in_unpack_i16.c: Regenerate.
      	* generated/in_unpack_i2.c: Regenerate.
      	* generated/in_unpack_i4.c: Regenerate.
      	* generated/in_unpack_i8.c: Regenerate.
      	* generated/in_unpack_r10.c: Regenerate.
      	* generated/in_unpack_r16.c: Regenerate.
      	* generated/in_unpack_r4.c: Regenerate.
      	* generated/in_unpack_r8.c: Regenerate.
      	* generated/iparity_i1.c: Regenerate.
      	* generated/iparity_i16.c: Regenerate.
      	* generated/iparity_i2.c: Regenerate.
      	* generated/iparity_i4.c: Regenerate.
      	* generated/iparity_i8.c: Regenerate.
      	* generated/maxloc0_16_i1.c: Regenerate.
      	* generated/maxloc0_16_i16.c: Regenerate.
      	* generated/maxloc0_16_i2.c: Regenerate.
      	* generated/maxloc0_16_i4.c: Regenerate.
      	* generated/maxloc0_16_i8.c: Regenerate.
      	* generated/maxloc0_16_r10.c: Regenerate.
      	* generated/maxloc0_16_r16.c: Regenerate.
      	* generated/maxloc0_16_r4.c: Regenerate.
      	* generated/maxloc0_16_r8.c: Regenerate.
      	* generated/maxloc0_4_i1.c: Regenerate.
      	* generated/maxloc0_4_i16.c: Regenerate.
      	* generated/maxloc0_4_i2.c: Regenerate.
      	* generated/maxloc0_4_i4.c: Regenerate.
      	* generated/maxloc0_4_i8.c: Regenerate.
      	* generated/maxloc0_4_r10.c: Regenerate.
      	* generated/maxloc0_4_r16.c: Regenerate.
      	* generated/maxloc0_4_r4.c: Regenerate.
      	* generated/maxloc0_4_r8.c: Regenerate.
      	* generated/maxloc0_8_i1.c: Regenerate.
      	* generated/maxloc0_8_i16.c: Regenerate.
      	* generated/maxloc0_8_i2.c: Regenerate.
      	* generated/maxloc0_8_i4.c: Regenerate.
      	* generated/maxloc0_8_i8.c: Regenerate.
      	* generated/maxloc0_8_r10.c: Regenerate.
      	* generated/maxloc0_8_r16.c: Regenerate.
      	* generated/maxloc0_8_r4.c: Regenerate.
      	* generated/maxloc0_8_r8.c: Regenerate.
      	* generated/maxloc1_16_i1.c: Regenerate.
      	* generated/maxloc1_16_i16.c: Regenerate.
      	* generated/maxloc1_16_i2.c: Regenerate.
      	* generated/maxloc1_16_i4.c: Regenerate.
      	* generated/maxloc1_16_i8.c: Regenerate.
      	* generated/maxloc1_16_r10.c: Regenerate.
      	* generated/maxloc1_16_r16.c: Regenerate.
      	* generated/maxloc1_16_r4.c: Regenerate.
      	* generated/maxloc1_16_r8.c: Regenerate.
      	* generated/maxloc1_4_i1.c: Regenerate.
      	* generated/maxloc1_4_i16.c: Regenerate.
      	* generated/maxloc1_4_i2.c: Regenerate.
      	* generated/maxloc1_4_i4.c: Regenerate.
      	* generated/maxloc1_4_i8.c: Regenerate.
      	* generated/maxloc1_4_r10.c: Regenerate.
      	* generated/maxloc1_4_r16.c: Regenerate.
      	* generated/maxloc1_4_r4.c: Regenerate.
      	* generated/maxloc1_4_r8.c: Regenerate.
      	* generated/maxloc1_8_i1.c: Regenerate.
      	* generated/maxloc1_8_i16.c: Regenerate.
      	* generated/maxloc1_8_i2.c: Regenerate.
      	* generated/maxloc1_8_i4.c: Regenerate.
      	* generated/maxloc1_8_i8.c: Regenerate.
      	* generated/maxloc1_8_r10.c: Regenerate.
      	* generated/maxloc1_8_r16.c: Regenerate.
      	* generated/maxloc1_8_r4.c: Regenerate.
      	* generated/maxloc1_8_r8.c: Regenerate.
      	* generated/maxval_i1.c: Regenerate.
      	* generated/maxval_i16.c: Regenerate.
      	* generated/maxval_i2.c: Regenerate.
      	* generated/maxval_i4.c: Regenerate.
      	* generated/maxval_i8.c: Regenerate.
      	* generated/maxval_r10.c: Regenerate.
      	* generated/maxval_r16.c: Regenerate.
      	* generated/maxval_r4.c: Regenerate.
      	* generated/maxval_r8.c: Regenerate.
      	* generated/minloc0_16_i1.c: Regenerate.
      	* generated/minloc0_16_i16.c: Regenerate.
      	* generated/minloc0_16_i2.c: Regenerate.
      	* generated/minloc0_16_i4.c: Regenerate.
      	* generated/minloc0_16_i8.c: Regenerate.
      	* generated/minloc0_16_r10.c: Regenerate.
      	* generated/minloc0_16_r16.c: Regenerate.
      	* generated/minloc0_16_r4.c: Regenerate.
      	* generated/minloc0_16_r8.c: Regenerate.
      	* generated/minloc0_4_i1.c: Regenerate.
      	* generated/minloc0_4_i16.c: Regenerate.
      	* generated/minloc0_4_i2.c: Regenerate.
      	* generated/minloc0_4_i4.c: Regenerate.
      	* generated/minloc0_4_i8.c: Regenerate.
      	* generated/minloc0_4_r10.c: Regenerate.
      	* generated/minloc0_4_r16.c: Regenerate.
      	* generated/minloc0_4_r4.c: Regenerate.
      	* generated/minloc0_4_r8.c: Regenerate.
      	* generated/minloc0_8_i1.c: Regenerate.
      	* generated/minloc0_8_i16.c: Regenerate.
      	* generated/minloc0_8_i2.c: Regenerate.
      	* generated/minloc0_8_i4.c: Regenerate.
      	* generated/minloc0_8_i8.c: Regenerate.
      	* generated/minloc0_8_r10.c: Regenerate.
      	* generated/minloc0_8_r16.c: Regenerate.
      	* generated/minloc0_8_r4.c: Regenerate.
      	* generated/minloc0_8_r8.c: Regenerate.
      	* generated/minloc1_16_i1.c: Regenerate.
      	* generated/minloc1_16_i16.c: Regenerate.
      	* generated/minloc1_16_i2.c: Regenerate.
      	* generated/minloc1_16_i4.c: Regenerate.
      	* generated/minloc1_16_i8.c: Regenerate.
      	* generated/minloc1_16_r10.c: Regenerate.
      	* generated/minloc1_16_r16.c: Regenerate.
      	* generated/minloc1_16_r4.c: Regenerate.
      	* generated/minloc1_16_r8.c: Regenerate.
      	* generated/minloc1_4_i1.c: Regenerate.
      	* generated/minloc1_4_i16.c: Regenerate.
      	* generated/minloc1_4_i2.c: Regenerate.
      	* generated/minloc1_4_i4.c: Regenerate.
      	* generated/minloc1_4_i8.c: Regenerate.
      	* generated/minloc1_4_r10.c: Regenerate.
      	* generated/minloc1_4_r16.c: Regenerate.
      	* generated/minloc1_4_r4.c: Regenerate.
      	* generated/minloc1_4_r8.c: Regenerate.
      	* generated/minloc1_8_i1.c: Regenerate.
      	* generated/minloc1_8_i16.c: Regenerate.
      	* generated/minloc1_8_i2.c: Regenerate.
      	* generated/minloc1_8_i4.c: Regenerate.
      	* generated/minloc1_8_i8.c: Regenerate.
      	* generated/minloc1_8_r10.c: Regenerate.
      	* generated/minloc1_8_r16.c: Regenerate.
      	* generated/minloc1_8_r4.c: Regenerate.
      	* generated/minloc1_8_r8.c: Regenerate.
      	* generated/minval_i1.c: Regenerate.
      	* generated/minval_i16.c: Regenerate.
      	* generated/minval_i2.c: Regenerate.
      	* generated/minval_i4.c: Regenerate.
      	* generated/minval_i8.c: Regenerate.
      	* generated/minval_r10.c: Regenerate.
      	* generated/minval_r16.c: Regenerate.
      	* generated/minval_r4.c: Regenerate.
      	* generated/minval_r8.c: Regenerate.
      	* generated/norm2_r10.c: Regenerate.
      	* generated/norm2_r16.c: Regenerate.
      	* generated/norm2_r4.c: Regenerate.
      	* generated/norm2_r8.c: Regenerate.
      	* generated/pack_c10.c: Regenerate.
      	* generated/pack_c16.c: Regenerate.
      	* generated/pack_c4.c: Regenerate.
      	* generated/pack_c8.c: Regenerate.
      	* generated/pack_i1.c: Regenerate.
      	* generated/pack_i16.c: Regenerate.
      	* generated/pack_i2.c: Regenerate.
      	* generated/pack_i4.c: Regenerate.
      	* generated/pack_i8.c: Regenerate.
      	* generated/pack_r10.c: Regenerate.
      	* generated/pack_r16.c: Regenerate.
      	* generated/pack_r4.c: Regenerate.
      	* generated/pack_r8.c: Regenerate.
      	* generated/parity_l1.c: Regenerate.
      	* generated/parity_l16.c: Regenerate.
      	* generated/parity_l2.c: Regenerate.
      	* generated/parity_l4.c: Regenerate.
      	* generated/parity_l8.c: Regenerate.
      	* generated/product_c10.c: Regenerate.
      	* generated/product_c16.c: Regenerate.
      	* generated/product_c4.c: Regenerate.
      	* generated/product_c8.c: Regenerate.
      	* generated/product_i1.c: Regenerate.
      	* generated/product_i16.c: Regenerate.
      	* generated/product_i2.c: Regenerate.
      	* generated/product_i4.c: Regenerate.
      	* generated/product_i8.c: Regenerate.
      	* generated/product_r10.c: Regenerate.
      	* generated/product_r16.c: Regenerate.
      	* generated/product_r4.c: Regenerate.
      	* generated/product_r8.c: Regenerate.
      	* generated/reshape_c10.c: Regenerate.
      	* generated/reshape_c16.c: Regenerate.
      	* generated/reshape_c4.c: Regenerate.
      	* generated/reshape_c8.c: Regenerate.
      	* generated/reshape_i16.c: Regenerate.
      	* generated/reshape_i4.c: Regenerate.
      	* generated/reshape_i8.c: Regenerate.
      	* generated/reshape_r10.c: Regenerate.
      	* generated/reshape_r16.c: Regenerate.
      	* generated/reshape_r4.c: Regenerate.
      	* generated/reshape_r8.c: Regenerate.
      	* generated/shape_i1.c: Regenerate.
      	* generated/shape_i16.c: Regenerate.
      	* generated/shape_i2.c: Regenerate.
      	* generated/shape_i4.c: Regenerate.
      	* generated/shape_i8.c: Regenerate.
      	* generated/spread_c10.c: Regenerate.
      	* generated/spread_c16.c: Regenerate.
      	* generated/spread_c4.c: Regenerate.
      	* generated/spread_c8.c: Regenerate.
      	* generated/spread_i1.c: Regenerate.
      	* generated/spread_i16.c: Regenerate.
      	* generated/spread_i2.c: Regenerate.
      	* generated/spread_i4.c: Regenerate.
      	* generated/spread_i8.c: Regenerate.
      	* generated/spread_r10.c: Regenerate.
      	* generated/spread_r16.c: Regenerate.
      	* generated/spread_r4.c: Regenerate.
      	* generated/spread_r8.c: Regenerate.
      	* generated/sum_c10.c: Regenerate.
      	* generated/sum_c16.c: Regenerate.
      	* generated/sum_c4.c: Regenerate.
      	* generated/sum_c8.c: Regenerate.
      	* generated/sum_i1.c: Regenerate.
      	* generated/sum_i16.c: Regenerate.
      	* generated/sum_i2.c: Regenerate.
      	* generated/sum_i4.c: Regenerate.
      	* generated/sum_i8.c: Regenerate.
      	* generated/sum_r10.c: Regenerate.
      	* generated/sum_r16.c: Regenerate.
      	* generated/sum_r4.c: Regenerate.
      	* generated/sum_r8.c: Regenerate.
      	* generated/unpack_c10.c: Regenerate.
      	* generated/unpack_c16.c: Regenerate.
      	* generated/unpack_c4.c: Regenerate.
      	* generated/unpack_c8.c: Regenerate.
      	* generated/unpack_i1.c: Regenerate.
      	* generated/unpack_i16.c: Regenerate.
      	* generated/unpack_i2.c: Regenerate.
      	* generated/unpack_i4.c: Regenerate.
      	* generated/unpack_i8.c: Regenerate.
      	* generated/unpack_r10.c: Regenerate.
      	* generated/unpack_r16.c: Regenerate.
      	* generated/unpack_r4.c: Regenerate.
      	* generated/unpack_r8.c: Regenerate.
      
      From-SVN: r243844
      Francois-Xavier Coudert committed
    • re PR libfortran/70311 (libgfortran build dies on "implicit declaration of function strncasecmp") · 71d9113f
      	PR libfortran/70311
      	* intrinsics/selected_char_kind.c: Include <strings.h> header.
      	* runtime/environ.c: Include <strings.h> header.
      	* runtime/string.c: Include <strings.h> header.
      
      From-SVN: r243843
      Francois-Xavier Coudert committed
  27. 19 Dec, 2016 3 commits
    • trans-decl.c (create_main_function): Remove unused elements to the set_options call. · 75b07bb4
      	* trans-decl.c (create_main_function): Remove unused elements to
      	the set_options call.
      
      	* runtime/compile_options.c (set_options): Remove unused elements.
      
      From-SVN: r243814
      Francois-Xavier Coudert committed
    • trans.h: Remove gfor_fndecl_stop_numeric_f08. · 03506f8c
      	* trans.h: Remove gfor_fndecl_stop_numeric_f08.
      	* trans-decl.c: Remove gfor_fndecl_stop_numeric_f08.
      	* trans-stmt.c (gfc_trans_stop): Use gfor_fndecl_stop_numeric
      	instead of gfor_fndecl_stop_numeric_f08.
      
      	* gfortran.map: Remove _gfortran_stop_numeric_f08.
      	* runtime/stop.c: Rename stop_numeric_f08 into stop_numeric.
      
      From-SVN: r243803
      Francois-Xavier Coudert committed
    • Remove unused libgfortran functions · 7e294024
      Now that the libgfortran ABI major version has been bumped, we can
      remove functions for which the frontend nowadays generates inline
      code.
      
      This removes the malloc, free, exponent, fraction, nearest, rrspacing,
      spacing, set_exponent and transpose intrinsics. Also the unused
      store_exe_path function is removed.
      
      2016-12-19  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* Makefile.am: Remove exponent, fraction, nearest, rrspacing,
      	set_exponent, spacing, transpose, malloc, transpose_generic.
      	* Makefile.in: Regenerate.
      	* generated/exponent_r10.c: Remove.
      	* generated/exponent_r16.c: Remove.
      	* generated/exponent_r4.c: Remove.
      	* generated/exponent_r8.c: Remove.
      	* generated/fraction_r10.c: Remove.
      	* generated/fraction_r16.c: Remove.
      	* generated/fraction_r4.c: Remove.
      	* generated/fraction_r8.c: Remove.
      	* generated/nearest_r10.c: Remove.
      	* generated/nearest_r16.c: Remove.
      	* generated/nearest_r4.c: Remove.
      	* generated/nearest_r8.c: Remove.
      	* generated/rrspacing_r10.c: Remove.
      	* generated/rrspacing_r16.c: Remove.
      	* generated/rrspacing_r4.c: Remove.
      	* generated/rrspacing_r8.c: Remove.
      	* generated/set_exponent_r10.c: Remove.
      	* generated/set_exponent_r16.c: Remove.
      	* generated/set_exponent_r4.c: Remove.
      	* generated/set_exponent_r8.c: Remove.
      	* generated/spacing_r10.c: Remove.
      	* generated/spacing_r16.c: Remove.
      	* generated/spacing_r4.c: Remove.
      	* generated/spacing_r8.c: Remove.
      	* generated/transpose_c10.c: Remove.
      	* generated/transpose_c16.c: Remove.
      	* generated/transpose_c4.c: Remove.
      	* generated/transpose_c8.c: Remove.
      	* generated/transpose_i16.c: Remove.
      	* generated/transpose_i4.c: Remove.
      	* generated/transpose_i8.c: Remove.
      	* generated/transpose_r10.c: Remove.
      	* generated/transpose_r16.c: Remove.
      	* generated/transpose_r4.c: Remove.
      	* generated/transpose_r8.c: Remove.
      	* gfortran.map: Remove exponent, fraction, nearest, rrspacing,
      	set_exponent, spacing, transpose, malloc, free, transpose_generic,
      	store_exe_path.
      	* intrinsics/malloc.c: Remove.
      	* intrinsics/transpose_generic.c: Remove.
      	* libgfortran.h (store_exe_path): Remove.
      	* m4/exponent.m4: Remove.
      	* m4/fraction.m4: Remove.
      	* m4/nearest.m4: Remove.
      	* m4/rrspacing.m4: Remove.
      	* m4/set_exponent.m4: Remove.
      	* m4/spacing.m4: Remove.
      	* m4/transpose.m4: Remove.
      	* runtime/main.c (store_exe_path): Remove.
      
      From-SVN: r243799
      Janne Blomqvist committed
  28. 11 Aug, 2016 1 commit
    • Replace KISS PRNG with xorshift1024* using per-thread state. · b152f5a2
      frontend:
      
      2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* check.c (gfc_check_random_seed): Use new seed size in check.
      	* intrinsic.texi (RANDOM_NUMBER): Updated documentation.
      	(RANDOM_SEED): Likewise.
      
      
      testsuite:
      
      2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* gfortran.dg/random_7.f90: Take into account that the last seed
      	value is the special p value.
      	* gfortran.dg/random_seed_1.f90: Seed size is now constant.
      
      
      libgfortran:
      2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* intrinsics/random.c: Replace KISS with xorshift1024* using
      	per-thread state.
      	* runtime/main.c (init): Don't call random_seed_i4.
      
      From-SVN: r239356
      Janne Blomqvist committed
  29. 23 Jan, 2016 1 commit
  30. 04 Jan, 2016 1 commit
  31. 04 Sep, 2015 1 commit
    • PR 53379 Print backtrace on error termination. · 71cda9ca
      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
      Janne Blomqvist committed
  32. 02 Sep, 2015 1 commit
    • PR 67414 Better diagnostics on backtrace failure, gf_strerror bugfix · 1b0b9fcb
      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
      Janne Blomqvist committed
  33. 26 Aug, 2015 1 commit