]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libgfortran/ChangeLog
2018-08-21 Nicolas Koenig <koenigni@gcc.gnu.org>
[thirdparty/gcc.git] / libgfortran / ChangeLog
index 2d40ef080cbf2ce7527aadb5b688c32b1163dd54..63d01e705adb8ea99ca4bd0951466cd8eebf76b7 100644 (file)
@@ -1,3 +1,804 @@
+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-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac: Check for <sys/random.h>.
+       * configure, config.h.in: Regenerate.
+       * intrinsics/random.c [HAVE_SYS_RANDOM_H]: Include <sys/random.h>.
+
+2018-08-13  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * configure.ac: Check for getentropy.
+       * intrinsics/random.c (getosrandom): Use getentropy if available.
+       * config.h.in: Regenerated.
+       * configure: Regenerated.
+
+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-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-06-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/86070
+       * io/write_float.def (build_float_string): Initialize *len.
+
+2018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/85816
+       PR fortran/85975
+       * libgfortran.h: Remove the GFC_DTYPE_COPY_SETRANK macro.
+       * intrinsics/reshape_generic.c: Directly assign rank.
+       * intrinsics/spread_generic.c: Ditto.
+       * m4/iforeach-s.m4: Ditto.
+       * m4/iforeach.m4: Ditto.
+       * m4/ifunction-s.m4: Ditto.
+       * m4/ifunction-s2.m4: Ditto.
+       * m4/ifunction.m4: Ditto.
+       * m4/ifunction_logical.m4: Ditto.
+       * m4/reshape.m4: Ditto.
+       * m4/spread.m4: Ditto.
+       * generated/all_l1.c: Regenerated from m4 files.
+       * generated/all_l16.c: Ditto.
+       * generated/all_l2.c: Ditto.
+       * generated/all_l4.c: Ditto.
+       * generated/all_l8.c: Ditto.
+       * generated/any_l1.c: Ditto.
+       * generated/any_l16.c: Ditto.
+       * generated/any_l2.c: Ditto.
+       * generated/any_l4.c: Ditto.
+       * generated/any_l8.c: Ditto.
+       * generated/count_16_l.c: Ditto.
+       * generated/count_1_l.c: Ditto.
+       * generated/count_2_l.c: Ditto.
+       * generated/count_4_l.c: Ditto.
+       * generated/count_8_l.c: Ditto.
+       * generated/iall_i1.c: Ditto.
+       * generated/iall_i16.c: Ditto.
+       * generated/iall_i2.c: Ditto.
+       * generated/iall_i4.c: Ditto.
+       * generated/iall_i8.c: Ditto.
+       * generated/iany_i1.c: Ditto.
+       * generated/iany_i16.c: Ditto.
+       * generated/iany_i2.c: Ditto.
+       * generated/iany_i4.c: Ditto.
+       * generated/iany_i8.c: Ditto.
+       * generated/iparity_i1.c: Ditto.
+       * generated/iparity_i16.c: Ditto.
+       * generated/iparity_i2.c: Ditto.
+       * generated/iparity_i4.c: Ditto.
+       * generated/iparity_i8.c: Ditto.
+       * generated/maxloc0_16_i1.c: Ditto.
+       * generated/maxloc0_16_i16.c: Ditto.
+       * generated/maxloc0_16_i2.c: Ditto.
+       * generated/maxloc0_16_i4.c: Ditto.
+       * generated/maxloc0_16_i8.c: Ditto.
+       * generated/maxloc0_16_r10.c: Ditto.
+       * generated/maxloc0_16_r16.c: Ditto.
+       * generated/maxloc0_16_r4.c: Ditto.
+       * generated/maxloc0_16_r8.c: Ditto.
+       * generated/maxloc0_16_s1.c: Ditto.
+       * generated/maxloc0_16_s4.c: Ditto.
+       * generated/maxloc0_4_i1.c: Ditto.
+       * generated/maxloc0_4_i16.c: Ditto.
+       * generated/maxloc0_4_i2.c: Ditto.
+       * generated/maxloc0_4_i4.c: Ditto.
+       * generated/maxloc0_4_i8.c: Ditto.
+       * generated/maxloc0_4_r10.c: Ditto.
+       * generated/maxloc0_4_r16.c: Ditto.
+       * generated/maxloc0_4_r4.c: Ditto.
+       * generated/maxloc0_4_r8.c: Ditto.
+       * generated/maxloc0_4_s1.c: Ditto.
+       * generated/maxloc0_4_s4.c: Ditto.
+       * generated/maxloc0_8_i1.c: Ditto.
+       * generated/maxloc0_8_i16.c: Ditto.
+       * generated/maxloc0_8_i2.c: Ditto.
+       * generated/maxloc0_8_i4.c: Ditto.
+       * generated/maxloc0_8_i8.c: Ditto.
+       * generated/maxloc0_8_r10.c: Ditto.
+       * generated/maxloc0_8_r16.c: Ditto.
+       * generated/maxloc0_8_r4.c: Ditto.
+       * generated/maxloc0_8_r8.c: Ditto.
+       * generated/maxloc0_8_s1.c: Ditto.
+       * generated/maxloc0_8_s4.c: Ditto.
+       * generated/maxloc1_16_i1.c: Ditto.
+       * generated/maxloc1_16_i16.c: Ditto.
+       * generated/maxloc1_16_i2.c: Ditto.
+       * generated/maxloc1_16_i4.c: Ditto.
+       * generated/maxloc1_16_i8.c: Ditto.
+       * generated/maxloc1_16_r10.c: Ditto.
+       * generated/maxloc1_16_r16.c: Ditto.
+       * generated/maxloc1_16_r4.c: Ditto.
+       * generated/maxloc1_16_r8.c: Ditto.
+       * generated/maxloc1_16_s1.c: Ditto.
+       * generated/maxloc1_16_s4.c: Ditto.
+       * generated/maxloc1_4_i1.c: Ditto.
+       * generated/maxloc1_4_i16.c: Ditto.
+       * generated/maxloc1_4_i2.c: Ditto.
+       * generated/maxloc1_4_i4.c: Ditto.
+       * generated/maxloc1_4_i8.c: Ditto.
+       * generated/maxloc1_4_r10.c: Ditto.
+       * generated/maxloc1_4_r16.c: Ditto.
+       * generated/maxloc1_4_r4.c: Ditto.
+       * generated/maxloc1_4_r8.c: Ditto.
+       * generated/maxloc1_4_s1.c: Ditto.
+       * generated/maxloc1_4_s4.c: Ditto.
+       * generated/maxloc1_8_i1.c: Ditto.
+       * generated/maxloc1_8_i16.c: Ditto.
+       * generated/maxloc1_8_i2.c: Ditto.
+       * generated/maxloc1_8_i4.c: Ditto.
+       * generated/maxloc1_8_i8.c: Ditto.
+       * generated/maxloc1_8_r10.c: Ditto.
+       * generated/maxloc1_8_r16.c: Ditto.
+       * generated/maxloc1_8_r4.c: Ditto.
+       * generated/maxloc1_8_r8.c: Ditto.
+       * generated/maxloc1_8_s1.c: Ditto.
+       * generated/maxloc1_8_s4.c: Ditto.
+       * generated/maxval1_s1.c: Ditto.
+       * generated/maxval1_s4.c: Ditto.
+       * generated/maxval_i1.c: Ditto.
+       * generated/maxval_i16.c: Ditto.
+       * generated/maxval_i2.c: Ditto.
+       * generated/maxval_i4.c: Ditto.
+       * generated/maxval_i8.c: Ditto.
+       * generated/maxval_r10.c: Ditto.
+       * generated/maxval_r16.c: Ditto.
+       * generated/maxval_r4.c: Ditto.
+       * generated/maxval_r8.c: Ditto.
+       * generated/minloc0_16_i1.c: Ditto.
+       * generated/minloc0_16_i16.c: Ditto.
+       * generated/minloc0_16_i2.c: Ditto.
+       * generated/minloc0_16_i4.c: Ditto.
+       * generated/minloc0_16_i8.c: Ditto.
+       * generated/minloc0_16_r10.c: Ditto.
+       * generated/minloc0_16_r16.c: Ditto.
+       * generated/minloc0_16_r4.c: Ditto.
+       * generated/minloc0_16_r8.c: Ditto.
+       * generated/minloc0_16_s1.c: Ditto.
+       * generated/minloc0_16_s4.c: Ditto.
+       * generated/minloc0_4_i1.c: Ditto.
+       * generated/minloc0_4_i16.c: Ditto.
+       * generated/minloc0_4_i2.c: Ditto.
+       * generated/minloc0_4_i4.c: Ditto.
+       * generated/minloc0_4_i8.c: Ditto.
+       * generated/minloc0_4_r10.c: Ditto.
+       * generated/minloc0_4_r16.c: Ditto.
+       * generated/minloc0_4_r4.c: Ditto.
+       * generated/minloc0_4_r8.c: Ditto.
+       * generated/minloc0_4_s1.c: Ditto.
+       * generated/minloc0_4_s4.c: Ditto.
+       * generated/minloc0_8_i1.c: Ditto.
+       * generated/minloc0_8_i16.c: Ditto.
+       * generated/minloc0_8_i2.c: Ditto.
+       * generated/minloc0_8_i4.c: Ditto.
+       * generated/minloc0_8_i8.c: Ditto.
+       * generated/minloc0_8_r10.c: Ditto.
+       * generated/minloc0_8_r16.c: Ditto.
+       * generated/minloc0_8_r4.c: Ditto.
+       * generated/minloc0_8_r8.c: Ditto.
+       * generated/minloc0_8_s1.c: Ditto.
+       * generated/minloc0_8_s4.c: Ditto.
+       * generated/minloc1_16_i1.c: Ditto.
+       * generated/minloc1_16_i16.c: Ditto.
+       * generated/minloc1_16_i2.c: Ditto.
+       * generated/minloc1_16_i4.c: Ditto.
+       * generated/minloc1_16_i8.c: Ditto.
+       * generated/minloc1_16_r10.c: Ditto.
+       * generated/minloc1_16_r16.c: Ditto.
+       * generated/minloc1_16_r4.c: Ditto.
+       * generated/minloc1_16_r8.c: Ditto.
+       * generated/minloc1_16_s1.c: Ditto.
+       * generated/minloc1_16_s4.c: Ditto.
+       * generated/minloc1_4_i1.c: Ditto.
+       * generated/minloc1_4_i16.c: Ditto.
+       * generated/minloc1_4_i2.c: Ditto.
+       * generated/minloc1_4_i4.c: Ditto.
+       * generated/minloc1_4_i8.c: Ditto.
+       * generated/minloc1_4_r10.c: Ditto.
+       * generated/minloc1_4_r16.c: Ditto.
+       * generated/minloc1_4_r4.c: Ditto.
+       * generated/minloc1_4_r8.c: Ditto.
+       * generated/minloc1_4_s1.c: Ditto.
+       * generated/minloc1_4_s4.c: Ditto.
+       * generated/minloc1_8_i1.c: Ditto.
+       * generated/minloc1_8_i16.c: Ditto.
+       * generated/minloc1_8_i2.c: Ditto.
+       * generated/minloc1_8_i4.c: Ditto.
+       * generated/minloc1_8_i8.c: Ditto.
+       * generated/minloc1_8_r10.c: Ditto.
+       * generated/minloc1_8_r16.c: Ditto.
+       * generated/minloc1_8_r4.c: Ditto.
+       * generated/minloc1_8_r8.c: Ditto.
+       * generated/minloc1_8_s1.c: Ditto.
+       * generated/minloc1_8_s4.c: Ditto.
+       * generated/minval1_s1.c: Ditto.
+       * generated/minval1_s4.c: Ditto.
+       * generated/minval_i1.c: Ditto.
+       * generated/minval_i16.c: Ditto.
+       * generated/minval_i2.c: Ditto.
+       * generated/minval_i4.c: Ditto.
+       * generated/minval_i8.c: Ditto.
+       * generated/minval_r10.c: Ditto.
+       * generated/minval_r16.c: Ditto.
+       * generated/minval_r4.c: Ditto.
+       * generated/minval_r8.c: Ditto.
+       * generated/norm2_r10.c: Ditto.
+       * generated/norm2_r16.c: Ditto.
+       * generated/norm2_r4.c: Ditto.
+       * generated/norm2_r8.c: Ditto.
+       * generated/parity_l1.c: Ditto.
+       * generated/parity_l16.c: Ditto.
+       * generated/parity_l2.c: Ditto.
+       * generated/parity_l4.c: Ditto.
+       * generated/parity_l8.c: Ditto.
+       * generated/product_c10.c: Ditto.
+       * generated/product_c16.c: Ditto.
+       * generated/product_c4.c: Ditto.
+       * generated/product_c8.c: Ditto.
+       * generated/product_i1.c: Ditto.
+       * generated/product_i16.c: Ditto.
+       * generated/product_i2.c: Ditto.
+       * generated/product_i4.c: Ditto.
+       * generated/product_i8.c: Ditto.
+       * generated/product_r10.c: Ditto.
+       * generated/product_r16.c: Ditto.
+       * generated/product_r4.c: Ditto.
+       * generated/product_r8.c: Ditto.
+       * generated/reshape_c10.c: Ditto.
+       * generated/reshape_c16.c: Ditto.
+       * generated/reshape_c4.c: Ditto.
+       * generated/reshape_c8.c: Ditto.
+       * generated/reshape_i16.c: Ditto.
+       * generated/reshape_i4.c: Ditto.
+       * generated/reshape_i8.c: Ditto.
+       * generated/reshape_r10.c: Ditto.
+       * generated/reshape_r16.c: Ditto.
+       * generated/reshape_r4.c: Ditto.
+       * generated/reshape_r8.c: Ditto.
+       * generated/spread_c10.c: Ditto.
+       * generated/spread_c16.c: Ditto.
+       * generated/spread_c4.c: Ditto.
+       * generated/spread_c8.c: Ditto.
+       * generated/spread_i1.c: Ditto.
+       * generated/spread_i16.c: Ditto.
+       * generated/spread_i2.c: Ditto.
+       * generated/spread_i4.c: Ditto.
+       * generated/spread_i8.c: Ditto.
+       * generated/spread_r10.c: Ditto.
+       * generated/spread_r16.c: Ditto.
+       * generated/spread_r4.c: Ditto.
+       * generated/spread_r8.c: Ditto.
+       * generated/sum_c10.c: Ditto.
+       * generated/sum_c16.c: Ditto.
+       * generated/sum_c4.c: Ditto.
+       * generated/sum_c8.c: Ditto.
+       * generated/sum_i1.c: Ditto.
+       * generated/sum_i16.c: Ditto.
+       * generated/sum_i2.c: Ditto.
+       * generated/sum_i4.c: Ditto.
+       * generated/sum_i8.c: Ditto.
+       * generated/sum_r10.c: Ditto.
+       * generated/sum_r16.c: Ditto.
+       * generated/sum_r4.c: Ditto.
+       * generated/sum_r8.c: Ditto.
+
+2018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/63570
+       * libgfortran/Makefile.am: Add random_init.f90 to build.
+       * libgfortran/Makefile.in: Regenerated.
+       * libgfortran/gfortran.map: Expose symbol for _gfortran_random_init.
+       * libgfortran/intrinsics/random_init.f90: Implementation.
+
+2018-05-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/85840
+       * io/write.c (write_real, write_real_g0, write_complex): Use
+       separate local variables for the float string length.
+
+2018-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/85906
+       * io/write.c (write_integer): Initialise the fnode format to
+       FMT_NONE, used for list directed write.
+       (BUF_STACK_SZ): Bump default buffer size up to avoid allocs on
+       small stuff.
+
+2018-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/85840
+       * io/write.c (write_float_0): Use separate local variable for
+       the float string length.
+
+2018-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/54613
+       * m4/iforeach-s.m4: Remove assertion that back is zero.
+       * m4/iforeach.m4: Likewise.  Remove leading 'do'
+       before implementation start.
+       * m4/ifunction-s.m4: Remove assertion that back is zero.
+       * m4/ifunction.m4: Likewise.  Remove for loop if HAVE_BACK_ARG
+       is defined.
+       * m4/maxloc0.m4: Reorganize loops. Split loops between >= and =,
+       depending if back is true.  Mark the condition of having
+       found a value which exceeds the limit as unlikely.
+       * m4/minloc0.m4: Likewise.
+       * m4/maxloc1.m4: Likewise.
+       * m4/minloc1.m4: Likewise.
+       * m4/maxloc1s.m4: Handle back argument.
+       * m4/minloc1s.m4: Likewise.
+       * m4/maxloc2s.m4: Remove assertion that back is zero.
+       Remove special handling of loop start. Handle back argument.
+       * m4/minloc2s.m4: Likewise.
+       * 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/maxloc0_16_i1.c: Regenerated.
+       * generated/maxloc0_16_i16.c: Regenerated.
+       * generated/maxloc0_16_i2.c: Regenerated.
+       * generated/maxloc0_16_i4.c: Regenerated.
+       * generated/maxloc0_16_i8.c: Regenerated.
+       * generated/maxloc0_16_r10.c: Regenerated.
+       * generated/maxloc0_16_r16.c: Regenerated.
+       * generated/maxloc0_16_r4.c: Regenerated.
+       * generated/maxloc0_16_r8.c: Regenerated.
+       * generated/maxloc0_16_s1.c: Regenerated.
+       * generated/maxloc0_16_s4.c: Regenerated.
+       * generated/maxloc0_4_i1.c: Regenerated.
+       * generated/maxloc0_4_i16.c: Regenerated.
+       * generated/maxloc0_4_i2.c: Regenerated.
+       * generated/maxloc0_4_i4.c: Regenerated.
+       * generated/maxloc0_4_i8.c: Regenerated.
+       * generated/maxloc0_4_r10.c: Regenerated.
+       * generated/maxloc0_4_r16.c: Regenerated.
+       * generated/maxloc0_4_r4.c: Regenerated.
+       * generated/maxloc0_4_r8.c: Regenerated.
+       * generated/maxloc0_4_s1.c: Regenerated.
+       * generated/maxloc0_4_s4.c: Regenerated.
+       * generated/maxloc0_8_i1.c: Regenerated.
+       * generated/maxloc0_8_i16.c: Regenerated.
+       * generated/maxloc0_8_i2.c: Regenerated.
+       * generated/maxloc0_8_i4.c: Regenerated.
+       * generated/maxloc0_8_i8.c: Regenerated.
+       * generated/maxloc0_8_r10.c: Regenerated.
+       * generated/maxloc0_8_r16.c: Regenerated.
+       * generated/maxloc0_8_r4.c: Regenerated.
+       * generated/maxloc0_8_r8.c: Regenerated.
+       * generated/maxloc0_8_s1.c: Regenerated.
+       * generated/maxloc0_8_s4.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_16_s1.c: Regenerated.
+       * generated/maxloc1_16_s4.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_4_s1.c: Regenerated.
+       * generated/maxloc1_4_s4.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/maxloc1_8_s1.c: Regenerated.
+       * generated/maxloc1_8_s4.c: Regenerated.
+       * generated/maxloc2_16_s1.c: Regenerated.
+       * generated/maxloc2_16_s4.c: Regenerated.
+       * generated/maxloc2_4_s1.c: Regenerated.
+       * generated/maxloc2_4_s4.c: Regenerated.
+       * generated/maxloc2_8_s1.c: Regenerated.
+       * generated/maxloc2_8_s4.c: Regenerated.
+       * generated/maxval_i1.c: Regenerated.
+       * generated/maxval_i16.c: Regenerated.
+       * generated/maxval_i2.c: Regenerated.
+       * generated/maxval_i4.c: Regenerated.
+       * generated/maxval_i8.c: Regenerated.
+       * generated/maxval_r10.c: Regenerated.
+       * generated/maxval_r16.c: Regenerated.
+       * generated/maxval_r4.c: Regenerated.
+       * generated/maxval_r8.c: Regenerated.
+       * generated/minloc0_16_i1.c: Regenerated.
+       * generated/minloc0_16_i16.c: Regenerated.
+       * generated/minloc0_16_i2.c: Regenerated.
+       * generated/minloc0_16_i4.c: Regenerated.
+       * generated/minloc0_16_i8.c: Regenerated.
+       * generated/minloc0_16_r10.c: Regenerated.
+       * generated/minloc0_16_r16.c: Regenerated.
+       * generated/minloc0_16_r4.c: Regenerated.
+       * generated/minloc0_16_r8.c: Regenerated.
+       * generated/minloc0_16_s1.c: Regenerated.
+       * generated/minloc0_16_s4.c: Regenerated.
+       * generated/minloc0_4_i1.c: Regenerated.
+       * generated/minloc0_4_i16.c: Regenerated.
+       * generated/minloc0_4_i2.c: Regenerated.
+       * generated/minloc0_4_i4.c: Regenerated.
+       * generated/minloc0_4_i8.c: Regenerated.
+       * generated/minloc0_4_r10.c: Regenerated.
+       * generated/minloc0_4_r16.c: Regenerated.
+       * generated/minloc0_4_r4.c: Regenerated.
+       * generated/minloc0_4_r8.c: Regenerated.
+       * generated/minloc0_4_s1.c: Regenerated.
+       * generated/minloc0_4_s4.c: Regenerated.
+       * generated/minloc0_8_i1.c: Regenerated.
+       * generated/minloc0_8_i16.c: Regenerated.
+       * generated/minloc0_8_i2.c: Regenerated.
+       * generated/minloc0_8_i4.c: Regenerated.
+       * generated/minloc0_8_i8.c: Regenerated.
+       * generated/minloc0_8_r10.c: Regenerated.
+       * generated/minloc0_8_r16.c: Regenerated.
+       * generated/minloc0_8_r4.c: Regenerated.
+       * generated/minloc0_8_r8.c: Regenerated.
+       * generated/minloc0_8_s1.c: Regenerated.
+       * generated/minloc0_8_s4.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_16_s1.c: Regenerated.
+       * generated/minloc1_16_s4.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_4_s1.c: Regenerated.
+       * generated/minloc1_4_s4.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/minloc1_8_s1.c: Regenerated.
+       * generated/minloc1_8_s4.c: Regenerated.
+       * generated/minloc2_16_s1.c: Regenerated.
+       * generated/minloc2_16_s4.c: Regenerated.
+       * generated/minloc2_4_s1.c: Regenerated.
+       * generated/minloc2_4_s4.c: Regenerated.
+       * generated/minloc2_8_s1.c: Regenerated.
+       * generated/minloc2_8_s4.c: Regenerated.
+       * generated/minval_i1.c: Regenerated.
+       * generated/minval_i16.c: Regenerated.
+       * generated/minval_i2.c: Regenerated.
+       * generated/minval_i4.c: Regenerated.
+       * generated/minval_i8.c: Regenerated.
+       * generated/minval_r10.c: Regenerated.
+       * generated/minval_r16.c: Regenerated.
+       * generated/minval_r4.c: Regenerated.
+       * generated/minval_r8.c: Regenerated.
+       * generated/norm2_r10.c: Regenerated.
+       * generated/norm2_r16.c: Regenerated.
+       * generated/norm2_r4.c: Regenerated.
+       * generated/norm2_r8.c: Regenerated.
+       * generated/parity_l1.c: Regenerated.
+       * generated/parity_l16.c: Regenerated.
+       * generated/parity_l2.c: Regenerated.
+       * generated/parity_l4.c: Regenerated.
+       * generated/parity_l8.c: Regenerated.
+       * generated/product_c10.c: Regenerated.
+       * generated/product_c16.c: Regenerated.
+       * generated/product_c4.c: Regenerated.
+       * generated/product_c8.c: Regenerated.
+       * generated/product_i1.c: Regenerated.
+       * generated/product_i16.c: Regenerated.
+       * generated/product_i2.c: Regenerated.
+       * generated/product_i4.c: Regenerated.
+       * generated/product_i8.c: Regenerated.
+       * generated/product_r10.c: Regenerated.
+       * generated/product_r16.c: Regenerated.
+       * generated/product_r4.c: Regenerated.
+       * generated/product_r8.c: Regenerated.
+       * generated/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.
+
+2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2018-04-19  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR libfortran/85166
+       PR libgomp/85463
+       * runtime/minimal.c (stop_numeric): Reimplement.
+       (stop_string, error_stop_string, error_stop_numeric): New
+       functions.
+
+2018-04-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * configure: Regenerated.
+
+2018-04-18  David Malcolm  <dmalcolm@redhat.com>
+
+       PR jit/85384
+       * configure: Regenerate.
+
+2018-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/85253
+       * m4/matmul_internal.m4: If ycount == 1, add one more row to
+       the internal buffer.
+       * generated/matmul_c10.c: Regenerated.
+       * generated/matmul_c16.c: Regenerated.
+       * generated/matmul_c4.c: Regenerated.
+       * generated/matmul_c8.c: Regenerated.
+       * generated/matmul_i1.c: Regenerated.
+       * generated/matmul_i16.c: Regenerated.
+       * generated/matmul_i2.c: Regenerated.
+       * generated/matmul_i4.c: Regenerated.
+       * generated/matmul_i8.c: Regenerated.
+       * generated/matmul_r10.c: Regenerated.
+       * generated/matmul_r16.c: Regenerated.
+       * generated/matmul_r4.c: Regenerated.
+       * generated/matmul_r8.c: Regenerated.
+       * generated/matmulavx128_c10.c: Regenerated.
+       * generated/matmulavx128_c16.c: Regenerated.
+       * generated/matmulavx128_c4.c: Regenerated.
+       * generated/matmulavx128_c8.c: Regenerated.
+       * generated/matmulavx128_i1.c: Regenerated.
+       * generated/matmulavx128_i16.c: Regenerated.
+       * generated/matmulavx128_i2.c: Regenerated.
+       * generated/matmulavx128_i4.c: Regenerated.
+       * generated/matmulavx128_i8.c: Regenerated.
+       * generated/matmulavx128_r10.c: Regenerated.
+       * generated/matmulavx128_r16.c: Regenerated.
+       * generated/matmulavx128_r4.c: Regenerated.
+       * generated/matmulavx128_r8.c: Regenerated.
+
+2018-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/85166
+       * runtime/minimal.c (stop_numeric): Add new function in order to
+       implement numeric stop on minimal targets.
+
+2018-03-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * io/io.h (IOPARM_DT_DEFAULT_EXP): Rename to ...
+       (IOPARM_DT_DEC_EXT): ... this.
+       * io/list_read.c (parse_real): Adjust for IOPARM_DT_DEFAULT_EXP
+       renaming to IOPARM_DT_DEC_EXT.
+       (read_real): Likewise.
+       * io/read.c (read_f): Likewise.
+
+2018-03-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libgfortran/84880
+       * intrinsics/kill.c (kill): Rename to...
+       (PREFIX (kill)): ... this.  Use export_proto_np instead of export_proto.
+
 2018-03-13  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        * libgfortran/gfortran.map: Remove _gfortran_kill_i4,