]> 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 6df2843b9fb5ca68c16db458d7b72305681c2954..63d01e705adb8ea99ca4bd0951466cd8eebf76b7 100644 (file)
-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.
-
-2017-11-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR fortran/36313
-       * Makefile.am: Add i_maxloc0s_c, i_maxloc1s_c, i_maxloc2s_c,
-       i_minloc0s_c, i_minloc1s_c and i_minloc2s_c.
+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.
-        * generated/maxloc0_16_s1.c: New file.
-        * generated/maxloc0_16_s4.c: New file.
-        * generated/maxloc0_4_s1.c: New file.
-        * generated/maxloc0_4_s4.c: New file.
-        * generated/maxloc0_8_s1.c: New file.
-        * generated/maxloc0_8_s4.c: New file.
-        * generated/maxloc1_16_s1.c: New file.
-        * generated/maxloc1_16_s4.c: New file.
-        * generated/maxloc1_4_s1.c: New file.
-        * generated/maxloc1_4_s4.c: New file.
-        * generated/maxloc1_8_s1.c: New file.
-        * generated/maxloc1_8_s4.c: New file.
-        * generated/maxloc2_16_s1.c: New file.
-        * generated/maxloc2_16_s4.c: New file.
-        * generated/maxloc2_4_s1.c: New file.
-        * generated/maxloc2_4_s4.c: New file.
-        * generated/maxloc2_8_s1.c: New file.
-        * generated/maxloc2_8_s4.c: New file.
-        * generated/minloc0_16_s1.c: New file.
-        * generated/minloc0_16_s4.c: New file.
-        * generated/minloc0_4_s1.c: New file.
-        * generated/minloc0_4_s4.c: New file.
-        * generated/minloc0_8_s1.c: New file.
-        * generated/minloc0_8_s4.c: New file.
-        * generated/minloc1_16_s1.c: New file.
-        * generated/minloc1_16_s4.c: New file.
-        * generated/minloc1_4_s1.c: New file.
-        * generated/minloc1_4_s4.c: New file.
-        * generated/minloc1_8_s1.c: New file.
-        * generated/minloc1_8_s4.c: New file.
-        * generated/minloc2_16_s1.c: New file.
-        * generated/minloc2_16_s4.c: New file.
-        * generated/minloc2_4_s1.c: New file.
-        * generated/minloc2_4_s4.c: New file.
-        * generated/minloc2_8_s1.c: New file.
-        * generated/minloc2_8_s4.c: New file.
-        * m4/iforeach-s.m4: New file.
-        * m4/ifunction-s.m4: New file.
-        * m4/maxloc0s.m4: New file.
-        * m4/maxloc1s.m4: New file.
-        * m4/maxloc2s.m4: New file.
-        * m4/minloc0s.m4: New file.
-        * m4/minloc1s.m4: New file.
-        * m4/minloc2s.m4: New file.
-       * gfortran.map: Add new functions.
-       * libgfortran.h: Add gfc_array_s1 and gfc_array_s4.
-
-2017-11-22  Janne Blomqvist  <jb@gcc.gnu.org>
-
-       PR libfortran/83070
-       * intrinsics/eoshift0.c (eoshift0): Fix -Wsign-compare warning by
-       making a_ex and r_ex index_type instead of size_t.
-
-2017-11-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libgfortran/78549
-       * io/io.h (newunit_free): Add declaration. Clean some whitespace.
-       * io/transfer.c (st_read_done, st_write_done): Call newunit_free.
-       * io/unit.c (newunit_free): Change type from static void to void.
-
-2017-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
-
-       PR fortran/44292
-       * io/transfer.c (skip_record): Use gfc_offset to handle large
-       records.
-       (next_record_r): Likewise.
-       (sset): Likewise.
-       (next_record_w): Use gfc_offset/ptrdiff_t appropriately.
-
-2017-11-18  Janne Blomqvist  <jb@gcc.gnu.org>
-
-       PR fortran/83036
-       * io/io.h: Make nextrec a GFC_IO_INT*.
-
-2017-11-18  Janne Blomqvist  <jb@gcc.gnu.org>
-
-       PR fortran/44292
-       * io/io.h: Make recl_in a GC_IO_INT and recl_out a type
-       GFC_IO_INT*.
-
-2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
-
-       * acinclude.m4: Add enable.m4, cet.m4.
-       * Makefile.in: Regenerate.
-       * configure: Likewise.
-       * configure.ac: Set CET_FLAGS. Update AM_FCFLAGS,
-       AM_CFLAGS, CFLAGS.
-
-2017-10-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-           Rimvydas (RJ)
-
-       PR libgfortran/81938
-       io/format.c (free_format_data): Don't try to free vlist
-       descriptors past the end of the fnode array.
-
-2017-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR libfortran/82233
-       * intrinsics/execute_command_line.c (execute_command_line):
-       No call to runtime_error if cmdstat is present.
-
-2017-09-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
-
-       PR libgfortran/79612
-       * runtime/bounds.c: Use GFC_ASSERT.
-
-2017-09-10  Paul Thomas  <pault@gcc.gnu.org>
-
-       PR fortran/34640
-       * libgfortran/libgfortran.h: Add span field to descriptor.
-       * libgfortran/libtool-version : Bump up version number to 5:0:0.
-
-2017-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libgfortran/78387
-       * io/list_read.c (nml_read_obj): Remove use of stash.
-       * io/transfer.c (st_read_done, st_write_done): Likewise.
-       * io/unit.c (stash_internal_unit): Delete function.
-       (get_unit): Remove use of stash.
+       * 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_units): Likewise.
-       * io/write.c (nml_write_obj): 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.
 
-2017-07-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
+2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
 
-       PR fortran/81581
-       * m4/ifuntion.m4 (name`'rtype_qual`_'atype_code): Perform check
-       for dim.
-       (`m'name`'rtype_qual`_'atype_code): Likewise. Change type of rank
-       and tim to index_type.
-       (`s'name`'rtype_qual`_'atype_code): Perform check for dim.
-       * generated/iall_i16.c: Regenerated.
+       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_i16.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_i16.c: Regenerated.
        * generated/iparity_i1.c: Regenerated.
+       * generated/iparity_i16.c: Regenerated.
        * generated/iparity_i2.c: Regenerated.
        * generated/iparity_i4.c: Regenerated.
        * generated/iparity_i8.c: Regenerated.
-       * generated/maxloc1_16_i16.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_r16.c: Regenerated.
        * generated/maxloc1_16_r4.c: Regenerated.
        * generated/maxloc1_16_r8.c: Regenerated.
-       * generated/maxloc1_4_i16.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_r16.c: Regenerated.
        * generated/maxloc1_4_r4.c: Regenerated.
        * generated/maxloc1_4_r8.c: Regenerated.
-       * generated/maxloc1_8_i16.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_r16.c: Regenerated.
        * generated/maxloc1_8_r4.c: Regenerated.
        * generated/maxloc1_8_r8.c: Regenerated.
-       * generated/maxval_i16.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_r16.c: Regenerated.
        * generated/maxval_r4.c: Regenerated.
        * generated/maxval_r8.c: Regenerated.
-       * generated/minloc1_16_i16.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_r16.c: Regenerated.
        * generated/minloc1_16_r4.c: Regenerated.
        * generated/minloc1_16_r8.c: Regenerated.
-       * generated/minloc1_4_i16.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_r16.c: Regenerated.
        * generated/minloc1_4_r4.c: Regenerated.
        * generated/minloc1_4_r8.c: Regenerated.
-       * generated/minloc1_8_i16.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_r16.c: Regenerated.
        * generated/minloc1_8_r4.c: Regenerated.
        * generated/minloc1_8_r8.c: Regenerated.
-       * generated/minval_i16.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/norm2_r16.c: Regenerated.
        * generated/norm2_r4.c: Regenerated.
        * generated/norm2_r8.c: Regenerated.
-       * generated/parity_l16.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_c16.c: Regenerated.
        * generated/product_c4.c: Regenerated.
        * generated/product_c8.c: Regenerated.
-       * generated/product_i16.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/sum_c16.c: Regenerated.
        * generated/sum_c4.c: Regenerated.
        * generated/sum_c8.c: Regenerated.
-       * generated/sum_i16.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_r4.c: Regenerated.
        * generated/sum_r8.c: Regenerated.
 
-2017-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
+2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
 
-       PR fortran/80365
-       * io/unix.c (buf_write):  Return early if there is
-       nothing to write.
+       * configure: Regenerated.
 
-2017-07-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
+2018-04-19  Thomas Schwinge  <thomas@codesourcery.com>
 
-       * intrinsics/eoshift2.c (eoshift2):  Use memcpy
-       for innermost copy where possible.
-       * m4/eoshift1.m4 (eoshift1): Likewise.
-       * m4/eoshift3.m4 (eoshift3): Likewise.
-       * generated/eoshift1_16.c: Regenerated.
-       * generated/eoshift1_4.c: Regenerated.
-       * generated/eoshift1_8.c: Regenerated.
-       * generated/eoshift3_16.c: Regenerated.
-       * generated/eoshift3_4.c: Regenerated.
-       * generated/eoshift3_8.c: Regenerated.
+       PR libfortran/85166
+       PR libgomp/85463
+       * runtime/minimal.c (stop_numeric): Reimplement.
+       (stop_string, error_stop_string, error_stop_numeric): New
+       functions.
 
-2017-07-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+2018-04-19  Jakub Jelinek  <jakub@redhat.com>
 
-       * intrinsics/eoshift0.c:  For contiguous arrays, use
-       block algorithm.  Use memcpy where possible.
+       * configure: Regenerated.
 
-2017-06-26  Jim Wilson  <jim.wilson@r3-a15.aus-colo>
+2018-04-18  David Malcolm  <dmalcolm@redhat.com>
 
-       PR libfortran/81195
-       * io/unit.c (get_unit): Call __gthread_mutex_lock before newunit_stack
-       and newunit_tos references.  Call __gthread_mutex_unlock afterward.
+       PR jit/85384
+       * configure: Regenerate.
 
-2017-06-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
+2018-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
-        PR fortran/52473
-       * Makefile.am:  Add i_cshift1a_c.  Add rules to generate files
-       from cshift1a.m4.
-       * Makefile.in: Regenerated.
-       * m4/cshift1a.m4: New file.
-       * m4/cshift.m4 (cshift1): Split up inner loop by removing
-       condition. Use memcpy where possible.  Call helper functions
-       based on dtype.
-       * libgfortran.h: Add prototypes for cshift1_16_c10,
-       cshift1_16_c16, cshift1_16_c4, cshift1_16_c8, cshift1_16_i1,
-       cshift1_16_i16, cshift1_16_i2, cshift1_16_i4, cshift1_16_i8,
-       cshift1_16_r10, cshift1_16_r16, cshift1_16_r4, cshift1_16_r8,
-       cshift1_4_c10, cshift1_4_c16, cshift1_4_c4, cshift1_4_c8,
-       cshift1_4_i1, cshift1_4_i16, cshift1_4_i2, cshift1_4_i4,
-       cshift1_4_i8, cshift1_4_r10, cshift1_4_r16, cshift1_4_r4,
-       cshift1_4_r8, cshift1_8_c10, cshift1_8_c16, cshift1_8_c4,
-       cshift1_8_c8, cshift1_8_i1, cshift1_8_i16, cshift1_8_i2,
-       cshift1_8_i4, cshift1_8_i8, cshift1_8_r10, cshift1_8_r16,
-       cshift1_8_r4 and cshift1_8_r8.
-       * generated/cshift1_16_c10.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_c16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_c4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_c8.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_i1.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_i16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_i2.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_i4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_i8.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_r10.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_r16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_r4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_16_r8.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_c10.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_c16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_c4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_c8.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_i1.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_i16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_i2.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_i4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_i8.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_r10.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_r16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_r4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_4_r8.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_c10.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_c16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_c4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_c8.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_i1.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_i16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_i2.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_i4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_i8.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_r10.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_r16.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_r4.c: New file, generated from cshift1a.m4.
-       * generated/cshift1_8_r8.c: New file, generated from cshift1a.m4.
-
-2017-06-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR fortran/52473
-       * m4/cshift0.m4:  For arrays that are contiguous up to
-       shift, implement blocked algorighm for cshift.
-       * generated/cshift0_c10.c:  Regenerated.
-       * generated/cshift0_c16.c:  Regenerated.
-       * generated/cshift0_c4.c:  Regenerated.
-       * generated/cshift0_c8.c:  Regenerated.
-       * generated/cshift0_i1.c:  Regenerated.
-       * generated/cshift0_i16.c:  Regenerated.
-       * generated/cshift0_i2.c:  Regenerated.
-       * generated/cshift0_i4.c:  Regenerated.
-       * generated/cshift0_i8.c:  Regenerated.
-       * generated/cshift0_r10.c:  Regenerated.
-       * generated/cshift0_r16.c:  Regenerated.
-       * generated/cshift0_r4.c:  Regenerated.
-       * generated/cshift0_r8.c:  Regenerated.
-
-2017-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR fortran/80975
-       * m4/matmul_internal.m4:  Move zeroing before early return.
+       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.
-
-2017-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libgfortran/53029
-       * list_read.c (list_formatted_read_scala): Set the err return
-       value to the common.flags error values.
-
-2017-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-       * acinclude.m4 (LIBGFOR_CHECK_FMA3): Use test from
-       check_effective_target_fma in gcc.target/i386/i386.exp.
-       (LIBGFOR_CHECK_FMA4): Use test from check_effective_target_fma4.
+       * 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,
+       _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub.
+       Add _gfortran_kill and _gfortran_kill_sub.
+       * libgfortran/intrinsics/kill.c: Eliminate _gfortran_kill_i4,
+       _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub.
+       Add _gfortran_kill and _gfortran_kill_sub.
+
+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.
+
+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.
+
+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.
+
+2018-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       * caf/libcaf.h: Add type parameters to the caf_*_by_ref prototypes.
+       * caf/single.c (get_for_ref): Simplifications and now respecting
+       the type argument.
+       (_gfortran_caf_get_by_ref): Added source type handing to get_for_ref().
+       (send_by_ref): Simplifications and respecting the dst_type now.
+       (_gfortran_caf_send_by_ref): Added destination type hand over to
+       send_by_ref().
+       (_gfortran_caf_sendget_by_ref): Added general support and fixed stack
+       corruption.  The function is now really usable.
+
+2018-02-14  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+       PR target/84148
        * configure: Regenerate.
 
-2017-05-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR boostrap/80889
-       * acinclude.m4: Also set HAVE_AVX128 on the false
-       branch of LIBGFOR_CHECK_AVX128.
-       * configure:  Regenerated.
-
-2017-05-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR libfortran/78379
-       * Makefile.am: Add generated/matmulavx128_*.c files.
-       Handle them for compiling and setting the right flags.
-       * acinclude.m4: Add tests for FMA3, FMA4 and AVX128.
-       * configure.ac: Call them.
-       * Makefile.in: Regenerated.
-       * config.h.in: Regenerated.
-       * configure: Regenerated.
-       * m4/matmul.m4:  Handle AMD chips by calling 128-bit AVX
-       versions which use FMA3 or FMA4.
-       * m4/matmulavx128.m4: New file.
-        * 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: New file.
-        * generated/matmulavx128_c16.c: New file.
-        * generated/matmulavx128_c4.c: New file.
-        * generated/matmulavx128_c8.c: New file.
-        * generated/matmulavx128_i1.c: New file.
-        * generated/matmulavx128_i16.c: New file.
-        * generated/matmulavx128_i2.c: New file.
-        * generated/matmulavx128_i4.c: New file.
-        * generated/matmulavx128_i8.c: New file.
-        * generated/matmulavx128_r10.c: New file.
-        * generated/matmulavx128_r16.c: New file.
-        * generated/matmulavx128_r4.c: New file.
-        * generated/matmulavx128_r8.c: New file.
-
-2017-05-19  Paul Thomas  <pault@gcc.gnu.org>
-           Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR fortran/80333
-       * list_read.c (nml_read_obj): Compute pointer into class/type
-       arrays from the nl->dim information. Update it for each iteration
-       of the loop for the given object.
-
-2017-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libgfortran/80741
-       * transfer.c (finalize_transfer): Reset last_char to 'empty'.
-       * file_pos.c (formatted_backspace): Likewise.
-       (st_endfile): Likewise.
-       (st_rewind): Likewise.
-       (st_flush): Likewise.
-
-2017-05-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libgfortran/80727
-       * transfer.c (read_sf_internal): Remove bogus code to detect EOR.
-       (read_block_form): For internal units, generate EOR if no more
-       bytes left in unit and we are trying to read with ADVANCE='NO'.
-
-2017-05-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR fortran/80765
-        * m4/matmul_internal.m4: Set bystride to correct value in
-       vector-matrix multiplicatin for later calculation of buffer
-       size.
-        * 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.
-
-2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * runtime/environ.c (weak_secure_getenv): Fix "__secure_gettime"
-       vs. "__secure_getenv" typo.
-       (secure_getenv): Fix "HAVE__SECURE_GETENV"
-       vs. "HAVE___SECURE_GETENV" typo.
-
-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.
-
-2017-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-        PR fortran/80687
-        PR fortran/80696
-        * m4/matmul_internal.m4:  'matmul_name`:  Always
-        use malloc/free to allocate t1.
-        * 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.
-
-2017-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR fortran/80602
-       * m4/matmul_internal.m4:  'matmul_name`:  Change
-       t1 to a VLA of the required size.
-        * 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.
-
-2017-04-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       * close.c: Fix white space in pointer declarations and comment
-       formats where applicable.
-       * fbuf.c: Likewise.
-       * fbuf.h: Likewise.
-       * format.c: Likewise.
-       * inquire.c: Likewise.
-       * intrinsics.c: Likewise.
-       * list_read.c: Likewise.
-       * lock.c: Likewise.
-       * open.c: Likewise.
-       * read.c: Likewise.
-       * transfer.c: Likewise.
-       * unit.c: Likewise.
-       * unix.c: Likewise.
-       * unix.h: Likewise.
-       * write.c: Likewise.
-
-2017-03-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libgfortran/78670
-       * io/list_read.c (nml_get_obj_data): Delete code which calls the
-       child read procedure. (nml_read_obj): Insert the code which
-       calls the child procedure. Don't need to touch nodes if using
-       dtio since parent will not be traversing the components.
-
-2017-03-28  Janus Weil  <janus@gcc.gnu.org>
-
-       PR fortran/78661
-       * io/write.c (nml_write_obj): Build a class container only if necessary.
-
-2017-03-27  Dominique d'Humieres  <dominiq@lps.ens.fr>
-
-       * io/list_read.c: Insert /* Fall through. */ in the macro
-       CASE_SEPARATORS in order to silence warnings.
-
-2017-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libgfortran/78881
-       * io/io.h (st_parameter_dt): Rename unused component last_char to
-       child_saved_iostat. Move comment to gfc_unit.
-       * io/list_read.c (list_formatted_read_scalar): After call to
-       child READ procedure, save the returned iostat value for later
-       check. (finish_list_read): Only finish READ if child_saved_iostat
-       was OK.
-       * io/transfer.c (read_sf_internal): If there is a saved character
-       in last character, seek back one. Add a new check for EOR
-       condition. (read_sf): If there is a saved character
-       in last character, seek back one. (formatted_transfer_scalar_read):
-       Initialize last character before invoking child procedure.
-       (data_transfer_init): If child dtio, set advance
-       status to nonadvancing. Move update of size and check for EOR
-       condition to before child dtio return.
-
-2017-03-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR libfortran/79956
-       * m4/reshape.m4 (reshape_'rtype_ccode`):  Correct use
-       of GFC_ASSERT.
+2018-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/84412
+       * io/transfer.c (finalize_transfer): After completng an internal unit
+       I/O operation, clear internal_unit_kind.
+
+2018-02-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * libgfortran.h (GFC_ARRAY_DESCRIPTOR): Remove dimension
+       of descriptor to use vaiable members for dim.
+       Change usage of GFC_ARRAY_DESCRIPTOR accordingly.
+       (GFC_FILL_ARRAY_DESCRIPTOR): New macro.
+       (gfc_full_array_i4): New type.
+       * intrinsics/date_and_time.c (secnds): Use sizeof
+       (gfc_array_i4) + sizeof (descriptor_dimension) for memory
+       allocation.
+       * intrinsics/reshape_generic.c: Use GFC_FULL_ARRAY_DESCRIPTOR.
+       * io/format.c: Use sizeof (gfc_array_i4) + sizeof
+       (descriptor_dimension) for memoy allocation.
+       * io/list_read.c (list_formatted_read_scalar): Use
+       gfc_full_array_i4 for variable.
+       (nml_read_obj): Likewise.
+       * io/write.c (list_formatted_write_scalar): Likewise.
+       (nml_write_obj): Likewise.
+       * m4/reshape.m4: Use GFC_FULL_ARRAY_DESCRIPTOR.
        * generated/reshape_c10.c: Regenerated.
        * generated/reshape_c16.c: Regenerated.
        * generated/reshape_c4.c: Regenerated.
        * generated/reshape_r4.c: Regenerated.
        * generated/reshape_r8.c: Regenerated.
 
-2017-03-15  NightStrike  <nightstrike@gmail.com>
-           Janne Blomqvist  <jb@gcc.gnu.org>
-
-       * intrinsics/random.c (getosrandom): Remove check for __CYGWIN__
-       preprocessor flag.
-       * intrinsics/system_clock.c: Likewise.
-       (system_clock_4): Likewise.
-       (system_clock_8): Likewise.
-       * intrinsics/time_1.h: Don't include windows.h if __CYGWIN__ is
-       defined.
-
-2017-03-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR libfortran/79956
-       * libgfortran.h (GFC_ASSERT):  New macro.
-       * m4/reshape.m4 (reshape_'rtype_ccode`):  Use GFC_ASSERT
-       to specify that sdim > 0 and rdim > 0.
-       * intrinsic/reshape_generic.c (reshape_internal):  Likweise.
-       * generated/reshape_c10.c: Regenerated.
-       * generated/reshape_c16.c: Regenerated.
-       * generated/reshape_c4.c: Regenerated.
-       * generated/reshape_c8.c: Regenerated.
-       * generated/reshape_i16.c: Regenerated.
-       * generated/reshape_i4.c: Regenerated.
-       * generated/reshape_i8.c: Regenerated.
-       * generated/reshape_r10.c: Regenerated.
-       * generated/reshape_r16.c: Regenerated.
-       * generated/reshape_r4.c: Regenerated.
-       * generated/reshape_r8.c: Regenerated.
-
-2017-03-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libgfortran/78854
-       * io/list_read.c (nml_get_obj_data): Stash internal unit for
-       later use by child procedures.
-       * io/write.c (nml_write_obj): Likewise.
-       * io/tranfer.c (data_transfer_init): Minor whitespace.
-       * io/unit.c (set_internal_uit): Look for the stashed internal
-       unit and use it if found.
-
-2017-03-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR libfortran/79956
-       * m4/iforeach.m4:  Change exit condition from loop for
-       increasing dimension to >=.  Fix type in comment.
-       * m4/ifunction.m4:  Likewise.
-       * m4/ifunction_logical.m4: Likewise.
-       * generated/all_l1.c: Regenerated.
-       * generated/all_l16.c: Regenerated.
-       * generated/all_l2.c: Regenerated.
-       * generated/all_l4.c: Regenerated.
-       * generated/all_l8.c: Regenerated.
-       * generated/any_l1.c: Regenerated.
-       * generated/any_l16.c: Regenerated.
-       * generated/any_l2.c: Regenerated.
-       * generated/any_l4.c: Regenerated.
-       * generated/any_l8.c: Regenerated.
-       * generated/count_16_l.c: Regenerated.
-       * generated/count_1_l.c: Regenerated.
-       * generated/count_2_l.c: Regenerated.
-       * generated/count_4_l.c: Regenerated.
-       * generated/count_8_l.c: Regenerated.
+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.
+
+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.
+
+2018-01-25  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37577
+       * caf/single.c (_gfortran_caf_failed_images): Access the 'type'
+       and 'elem_len' fields of the dtype instead of the shifts.
+       (_gfortran_caf_stopped_images): Likewise.
+       * intrinsics/associated.c (associated): Compare the 'type' and
+       'elem_len' fields instead of the dtype.
+       * caf/date_and_time.c : Access the dtype fields rather using
+       shifts and masks.
+       * io/transfer.c (transfer_array ): Comment on item count.
+       (set_nml_var,st_set_nml_var): Change dtype type and use fields.
+       (st_set_nml_dtio_var): Likewise.
+       * libgfortran.h : Change definition of GFC_ARRAY_DESCRIPTOR and
+       add a typedef for the dtype_type. Change the GFC_DTYPE_* macros
+       to access the dtype fields.
+
+2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/54613
+       * m4/iparm.m4: Add back_arg macro if in minloc or maxloc.
+       * m4/iforeach-s.m4: Add optional argument back with back_arg
+       macro. Improve m4 quoting. If HAVE_BACK_ARG is defined, assert
+       that back is non-true.
+       * m4/iforeach.m4: Likewise.
+       * m4/ifunction-s.m4: Likewise.
+       * m4/ifunction.m4: Likewise.
+       * m4/maxloc0.m4: Include assert.h
+       * m4/minloc0.m4: Likewise.
+       * m4/maxloc0s.m4: #define HAVE_BACK_ARG.
+       * m4/minloc0s.m4: Likewise.
+       * m4/maxloc1s.m4: Likewise.
+       * m4/minloc1s.m4: Likewise.
+       * m4/maxloc1.m4: Include assert.h, #define HAVE_BACK_ARG.
+       * m4/minloc1.m4: Likewise.
+       * m4/maxloc2s.m4: Add assert.h, add back_arg, assert that
+       back is non-true.
+       * m4/minloc2s.m4: Likewise.
        * generated/iall_i1.c: Regenerated.
        * generated/iall_i16.c: Regenerated.
        * generated/iall_i2.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_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_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_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_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_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/maxval_i1.c: Regenerated.
        * generated/maxval_i16.c: Regenerated.
        * generated/maxval_i2.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_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_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_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_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_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/minval_i1.c: Regenerated.
        * generated/minval_i16.c: Regenerated.
        * generated/minval_i2.c: Regenerated.
        * generated/sum_r4.c: Regenerated.
        * generated/sum_r8.c: Regenerated.
 
-2017-03-05  Andre Vehreschild  <vehre@gcc.gnu.org>
-            Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
-
-       * caf/libcaf.h: Added prototypes and stat codes for failed and stopped
-       images.
-       * caf/single.c (void _gfortran_caf_fail_image): Add the routine.
-       (int _gfortran_caf_image_status): Same.
-       (_gfortran_caf_failed_images): Same.
-       (_gfortran_caf_stopped_images): Same.
-
-2017-03-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       * m4/matmul.m4 (matmul_'rtype_code`):  Avoid
-       race condition on storing function pointer.
-        * 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.
-
-2017-03-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
-
-       PR fortran/78379
-       * m4/matmul.m4: (matmul_'rtype_code`_avx2): Also generate for
-       reals.  Add fma to target options.
-       (matmul_'rtype_code`):  Call AVX2 only if FMA is available.
-        * 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.
-
-2017-02-27  Janne Blomqvist  <jb@gcc.gnu.org>
-
-       * intrinsics/random.c (getosrandom): Don't try to use rand_s on
-       CYGWIN.
-
-2017-02-16  Paul Thomas  <pault@gcc.gnu.org>
-
-       PR fortran/79382
-       * io/transfer.c (check_dtio_proc): New function.
-       (formatted_transfer_scalar_read): Use it.
-       (formatted_transfer_scalar_write): ditto.
-
-2017-01-31  Steven G. Kargl  <kargl@gcc.gnu.org>
-
-       PR fortran/79305
-       * c99_protos.h: Spell HAVE_EXPL correctly.
-       * intrinsics/c99_functions.c: Ditto.
-
-2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
-
-       PR target/78478
-       * acinclude.m4: Include ../config/ax_check_define.m4
-       * configure.ac: Check if _SOFT_FLOAT is defined.
-       * configure.host (i?86 | x86_64): Use fpu-generic when
-       have_soft_float is set.
-       * configure: Regenerate.
-
-2017-01-19  Jakub Jelinek  <jakub@redhat.com>
-
-       PR target/79127
-       * acinclude.m4 (LIBGFOR_CHECK_AVX512F): Ensure the test clobbers
-       some zmm16+ registers to verify they are handled by unwind info
-       properly if needed.
-       * configure: Regenerated.
-
-2017-01-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR other/79046
-       * configure.ac: Add GCC_BASE_VER.
-       * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
-       get version from BASE-VER file.
-       * configure: Regenerated.
-       * Makefile.in: Regenerated.
-
-2017-01-13  Andre Vehreschild  <vehre@gcc.gnu.org>
-
-       PR fortran/70696
-       * caf/single.c (_gfortran_caf_register): Allocate enough memory for
-       the event counter.
+2018-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/83811
+       * write.c (select_buffer): Adjust buffer size up by 1.
+
+2018-01-08  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR 78534, bugfix for r256322
+       * io/transfer.c (next_record_w): Use correct type for return value
+       of next_array_record.
+
+2018-01-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * libgfortran.h (GFC_DTYPE_COPY): New macro.
+       (GFC_DTYPE_COPY_SETRANK): New macro.
+       (GFC_DTYPE_IS_UNSET): New macro.
+       * intrinsics/cshift0.c (cshift0): Use new macros.
+       * intrinsics/eoshift0.c (eoshift0): Likewise.
+       * intrinsics/eoshift2.c (eoshift2): Likewise.
+       * intrinsics/move_alloc.c (move_alloc): Likewise.
+       * intrinsics/reshape_generic.c (reshape_internal): Likewise.
+       * intrinsics/spread_generic.c (spread_internal): Likewise.
+       * intrinsics/spread_generic.c (spread_scalar): Likewise.
+       * intrinsics/spread_generic.c (spread_char_scalar): Likewise.
+       * intrinsics/spread_generic.c (spread_char4_scalar): Likewise.
+       * intrinsics/unpack_generic.c (unpack0): Likewise.
+       * intrinsics/unpack_generic.c (unpack0_char): Likewise.
+       * intrinsics/unpack_generic.c (unpack0_char4): Likewise.
+       * m4/cshift1.m4 (cshift1): Likewise.
+       * m4/eoshift1.m4 (eoshift1): Likewise.
+       * m4/eoshift3.m4 (eoshift3): Likewise.
+       * m4/iforeach-s.m4: Likewise.
+       * m4/iforeach.m4: Likewise.
+       * m4/ifunction-s.m4: Likewise.
+       * m4/ifunction-s2.m4: Likewise.
+       * m4/ifunction.m4: Likewise.
+       * m4/ifunction_logical.m4: Likewise.
+       * m4/reshape.m4: Likewise.
+       * m4/spread.m4: Likewise.
+       * generated/all_l1.c : Regenerated.
+       * generated/all_l16.c : Regenerated.
+       * generated/all_l2.c : Regenerated.
+       * generated/all_l4.c : Regenerated.
+       * generated/all_l8.c : Regenerated.
+       * generated/any_l1.c : Regenerated.
+       * generated/any_l16.c : Regenerated.
+       * generated/any_l2.c : Regenerated.
+       * generated/any_l4.c : Regenerated.
+       * generated/any_l8.c : Regenerated.
+       * generated/count_16_l.c : Regenerated.
+       * generated/count_1_l.c : Regenerated.
+       * generated/count_2_l.c : Regenerated.
+       * generated/count_4_l.c : Regenerated.
+       * generated/count_8_l.c : Regenerated.
+       * generated/cshift1_16.c : Regenerated.
+       * generated/cshift1_4.c : Regenerated.
+       * generated/cshift1_8.c : Regenerated.
+       * generated/eoshift1_16.c : Regenerated.
+       * generated/eoshift1_4.c : Regenerated.
+       * generated/eoshift1_8.c : Regenerated.
+       * generated/eoshift3_16.c : Regenerated.
+       * generated/eoshift3_4.c : Regenerated.
+       * generated/eoshift3_8.c : Regenerated.
+       * generated/iall_i1.c : Regenerated.
+       * generated/iall_i16.c : Regenerated.
+       * generated/iall_i2.c : Regenerated.
+       * generated/iall_i4.c : Regenerated.
+       * generated/iall_i8.c : Regenerated.
+       * generated/iany_i1.c : Regenerated.
+       * generated/iany_i16.c : Regenerated.
+       * generated/iany_i2.c : Regenerated.
+       * generated/iany_i4.c : Regenerated.
+       * generated/iany_i8.c : Regenerated.
+       * generated/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/maxval1_s1.c : Regenerated.
+       * generated/maxval1_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/minval1_s1.c : Regenerated.
+       * generated/minval1_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/reshape_c10.c : Regenerated.
+       * generated/reshape_c16.c : Regenerated.
+       * generated/reshape_c4.c : Regenerated.
+       * generated/reshape_c8.c : Regenerated.
+       * generated/reshape_i16.c : Regenerated.
+       * generated/reshape_i4.c : Regenerated.
+       * generated/reshape_i8.c : Regenerated.
+       * generated/reshape_r10.c : Regenerated.
+       * generated/reshape_r16.c : Regenerated.
+       * generated/reshape_r4.c : Regenerated.
+       * generated/reshape_r8.c : Regenerated.
+       * generated/spread_c10.c : Regenerated.
+       * generated/spread_c16.c : Regenerated.
+       * generated/spread_c4.c : Regenerated.
+       * generated/spread_c8.c : Regenerated.
+       * generated/spread_i1.c : Regenerated.
+       * generated/spread_i16.c : Regenerated.
+       * generated/spread_i2.c : Regenerated.
+       * generated/spread_i4.c : Regenerated.
+       * generated/spread_i8.c : Regenerated.
+       * generated/spread_r10.c : Regenerated.
+       * generated/spread_r16.c : Regenerated.
+       * generated/spread_r4.c : Regenerated.
+       * generated/spread_r8.c : Regenerated.
+       * generated/sum_c10.c : Regenerated.
+       * generated/sum_c16.c : Regenerated.
+       * generated/sum_c4.c : Regenerated.
+       * generated/sum_c8.c : Regenerated.
+       * generated/sum_i1.c : Regenerated.
+       * generated/sum_i16.c : Regenerated.
+       * generated/sum_i2.c : Regenerated.
+       * generated/sum_i4.c : Regenerated.
+       * generated/sum_i8.c : Regenerated.
+       * generated/sum_r10.c : Regenerated.
+       * generated/sum_r16.c : Regenerated.
+       * generated/sum_r4.c : Regenerated.
+       * generated/sum_r8.c : Regenerated.
+
+2018-01-07  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR fortran/78534
+       PR fortran/83704
+       * io/fbuf.c (fbuf_init): Use size_t instead of int for length.
+       (fbuf_debug): Convert debug output to unsigned long.
+       (fbuf_reset): Use ptrdiff_t for return value.
+       (fbuf_alloc): Use size_t for length argument.
+       (fbuf_flush): Handle large buffers.
+       (fbuf_flush_list): Likewise.
+       (fbuf_seek): Use ptrdiff_t for offset and return value.
+       (fbuf_read): Use size_t for length argument.
+       (fbuf_getc_refill): Use size_t to match fbuf_read.
+       * io/fbuf.h (struct fbuf): Use size_t for lengths.
+       (fbuf_init): Use size_t instead of int for length.
+       (fbuf_reset): Use ptrdiff_t for return value.
+       (fbuf_alloc): Use size_t for length argument.
+       (fbuf_seek): Use ptrdiff_t for offset and return value.
+       (fbuf_read): Use size_t for length argument.
+       * io/io.h (read_block_form): Likewise.
+       (read_block_form4): Likewise.
+       (write_block): Likewise.
+       (read_a): Likewise.
+       (read_a_char4): Likewise.
+       (read_x): Likewise.
+       (write_a): Likewise.
+       (write_a_char4): Likewise.
+       * io/list_read.c (list_formatted_read_scalar): Use size_t to
+       handle large buffers.
+       * io/read.c (read_l): Likewise.
+       (read_utf8): Likewise.
+       (read_utf8_char1): Likewise.
+       (read_default_char1): Likewise.
+       (read_utf8_char4): Likewise.
+       (read_default_char4): Likewise.
+       (read_a): Likewise.
+       (read_a_char4): Likewise.
+       (eat_leading_spaces): Likewise.
+       (next_char): Likewise.
+       (read_decimal): Likewise.
+       (read_radix): Likewise.
+       (read_f): Likewise.
+       (read_x): Likewise.
+       * io/transfer.c (read_sf_internal): Likewise.
+       (read_sf): Likewise.
+       (read_block_form): Likewise.
+       (read_block_form4): Likewise.
+       (write_block): Likewise.
+       (formatted_transfer_scalar_write): Likewise.
+       (next_record_w): Likewise.
+       * io/unix.c (mem_alloc_r): Likewise.
+       (mem_alloc_r4): Likewise.
+       (mem_alloc_w): Likewise.
+       (mem_alloc_w4): Likewise.
+       (mem_read): Likewise.
+       (mem_read4): Likewise.
+       (mem_write): Likewise.
+       (mem_write4): Likewise.
+       (open_internal): Likewise.
+       (open_internal4): Likewise.
+       * io/unix.h (open_internal): Likewise.
+       (open_internal4): Likewise.
+       (mem_alloc_w): Likewise.
+       (mem_alloc_r): Likewise.
+       (mem_alloc_w4): Likewise.
+       (mem_alloc_r4): Likewise.
+       * io/write.c (write_check_cc): Likewise.
+       (write_cc): Likewise.
+       (write_a): Likewise.
+       (write_a_char4): Likewise.
+
+2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * io/write.c (namelist_write): Remove unused variable "i".
+
+2018-01-06  Dominique d'Humieres  <dominiq@lps.ens.fr>
+           Janne Blomqvist  <jb@gcc.gnu.org>
 
-2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>
+       PR fortran/83704
+       * io/write.c (write_character): Use size_t instead of int for
+       length.
+
+2018-01-05  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR fortran/78534
+       * intrinsics/args.c (getarg_i4): Use gfc_charlen_type.
+       (get_command_argument_i4): Likewise.
+       (get_command_i4): Likewise.
+       * intrinsics/chmod.c (chmod_internal): Likewise.
+       * intrinsics/env.c (get_environment_variable_i4): Likewise.
+       * intrinsics/extends_type_of.c (struct vtype): Use size_t for size
+       member.
+       * intrinsics/gerror.c (gerror): Use gfc_charlen_type.
+       * intrinsics/getlog.c (getlog): Likewise.
+       * intrinsics/hostnm.c (hostnm_0): Likewise.
+       * intrinsics/string_intrinsics_inc.c (string_len_trim): Rework to
+       work if gfc_charlen_type is unsigned.
+       (string_scan): Likewise.
+       * io/transfer.c (transfer_character): Modify prototype.
+       (transfer_character_write): Likewise.
+       (transfer_character_wide): Likewise.
+       (transfer_character_wide_write): Likewise.
+       (transfer_array): Typecast to avoid signed-unsigned comparison.
+       * io/unit.c (is_trim_ok): Use gfc_charlen_type.
+       * io/write.c (namelist_write): Likewise.
+       * libgfortran.h (gfc_charlen_type): Change typedef to size_t.
+
+2018-01-03  Jakub Jelinek  <jakub@redhat.com>
 
-       PR fortran/78781
-       PR fortran/78935
-       * caf/single.c (send_by_ref): Fix addressing of non-allocatable scalar
-       destination components.
+       Update copyright years.
 
-2017-01-01  Jakub Jelinek  <jakub@redhat.com>
+2018-01-02  Janne Blomqvist  <jb@gcc.gnu.org>
 
-       Update copyright years.
+       PR libgfortran/83649
+       * io/unix.c (MAX_CHUNK): New define.
+       (raw_read): For reads larger than MAX_CHUNK, loop.
+       (raw_write): Write no more than MAX_CHUNK bytes per iteration.
 \f
-Copyright (C) 2017 Free Software Foundation, Inc.
+Copyright (C) 2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright