]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libgfortran/ChangeLog
Add missing config/i386/zn4zn5.md file
[thirdparty/gcc.git] / libgfortran / ChangeLog
index 55e6befffa6bdfda8e4ac3161f87c2c8a17742c4..f32771ee64d8d5be3a4cbe97a80ae6841eb6a96c 100644 (file)
-2023-12-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+2024-03-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
-       PR libfortran/110651
-       * libgfortran.spec.in: Remove duplicate libraries.
+       PR libfortran/105437
+       PR libfortran/114304
+       * io/list_read.c (eat_separator): Remove check for decimal
+       point mode and semicolon used as a seprator. Removes
+       the regression.
 
-2023-12-18  Harald Anlauf  <anlauf@gmx.de>
+2024-03-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
-       PR fortran/96580
-       * intrinsics/date_and_time.c (date_and_time): Handle VALUES argument
-       for kind=2 and kind=16 (if available).
-
-2023-12-11  Lipeng Zhu  <lipeng.zhu@intel.com>
-
-       * io/async.c (DEBUG_LINE): New macro.
-       * io/async.h (RWLOCK_DEBUG_ADD): New macro.
-       (CHECK_RDLOCK): New macro.
-       (CHECK_WRLOCK): New macro.
-       (TAIL_RWLOCK_DEBUG_QUEUE): New macro.
-       (IN_RWLOCK_DEBUG_QUEUE): New macro.
-       (RDLOCK): New macro.
-       (WRLOCK): New macro.
-       (RWUNLOCK): New macro.
-       (RD_TO_WRLOCK): New macro.
-       (INTERN_RDLOCK): New macro.
-       (INTERN_WRLOCK): New macro.
-       (INTERN_RWUNLOCK): New macro.
-       * io/io.h (struct gfc_unit): Change UNIT_LOCK to UNIT_RWLOCK in
-       a comment.
-       (unit_lock): Remove including associated internal_proto.
-       (unit_rwlock): New declarations including associated internal_proto.
-       (dec_waiting_unlocked): Use WRLOCK and RWUNLOCK on unit_rwlock
-       instead of __gthread_mutex_lock and __gthread_mutex_unlock on
-       unit_lock.
-       * io/transfer.c (st_read_done_worker): Use WRLOCK and RWUNLOCK on
-       unit_rwlock instead of LOCK and UNLOCK on unit_lock.
-       (st_write_done_worker): Likewise.
-       * io/unit.c: Change UNIT_LOCK to UNIT_RWLOCK in 'IO locking rules'
-       comment. Use unit_rwlock variable instead of unit_lock variable.
-       (get_gfc_unit_from_unit_root): New function.
-       (get_gfc_unit): Use RDLOCK, WRLOCK and RWUNLOCK on unit_rwlock
-       instead of LOCK and UNLOCK on unit_lock.
-       (close_unit_1): Use WRLOCK and RWUNLOCK on unit_rwlock instead of
-       LOCK and UNLOCK on unit_lock.
-       (close_units): Likewise.
-       (newunit_alloc): Use RWUNLOCK on unit_rwlock instead of UNLOCK on
-       unit_lock.
-       * io/unix.c (find_file): Use RDLOCK and RWUNLOCK on unit_rwlock
-       instead of LOCK and UNLOCK on unit_lock.
-       (flush_all_units): Use WRLOCK and RWUNLOCK on unit_rwlock instead
-       of LOCK and UNLOCK on unit_lock.
-
-2023-12-05  Florian Weimer  <fweimer@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       * io/list_read.c (list_formatted_read_scalar) <case BT_CLASS>:
-       Change types of unit and noiostat to GFC_INTEGER_4 from int, change
-       type of child_iostat from to GFC_INTEGER_4 * from int *, formatting
-       fixes.
+       PR libfortran/105456
+       * io/list_read.c (list_formatted_read_scalar): Use fstrcpy
+       from libgfortran/runtime/string.c to replace snprintf.
        (nml_read_obj): Likewise.
-       * io/write.c (list_formatted_write_scalar) <case BT_CLASS>: Likewise.
+       * io/transfer.c (unformatted_read): Likewise.
+       (unformatted_write): Likewise.
+       (formatted_transfer_scalar_read): Likewise.
+       (formatted_transfer_scalar_write): Likewise.
+       * io/write.c (list_formatted_write_scalar): Likewise.
        (nml_write_obj): Likewise.
-       * io/transfer.c (unformatted_read, unformatted_write): Likewise.
-
-2023-11-08  Mikael Morin  <mikael@gcc.gnu.org>
-
-       PR fortran/112371
-       * m4/ifunction.m4 (START_ARRAY_FUNCTION, START_MASKED_ARRAY_FUNCTION,
-       SCALAR_ARRAY_FUNCTION): Remove overwrite of the first dimension of the
-       array descriptor.
-       * m4/ifunction-s.m4 (START_ARRAY_FUNCTION, START_MASKED_ARRAY_FUNCTION,
-       SCALAR_ARRAY_FUNCTION): Ditto.
-       * m4/ifunction-s2.m4 (START_ARRAY_FUNCTION,
-       START_MASKED_ARRAY_FUNCTION, SCALAR_ARRAY_FUNCTION): Ditto.
-       * m4/ifunction_logical.m4 (START_ARRAY_FUNCTION): Ditto.
-       * m4/ifindloc1.m4: Ditto.
-       * generated/all_l1.c: Regenerate.
-       * generated/all_l16.c: Regenerate.
-       * generated/all_l2.c: Regenerate.
-       * generated/all_l4.c: Regenerate.
-       * generated/all_l8.c: Regenerate.
-       * generated/any_l1.c: Regenerate.
-       * generated/any_l16.c: Regenerate.
-       * generated/any_l2.c: Regenerate.
-       * generated/any_l4.c: Regenerate.
-       * generated/any_l8.c: Regenerate.
-       * generated/count_16_l.c: Regenerate.
-       * generated/count_1_l.c: Regenerate.
-       * generated/count_2_l.c: Regenerate.
-       * generated/count_4_l.c: Regenerate.
-       * generated/count_8_l.c: Regenerate.
-       * generated/findloc1_c10.c: Regenerate.
-       * generated/findloc1_c16.c: Regenerate.
-       * generated/findloc1_c17.c: Regenerate.
-       * generated/findloc1_c4.c: Regenerate.
-       * generated/findloc1_c8.c: Regenerate.
-       * generated/findloc1_i1.c: Regenerate.
-       * generated/findloc1_i16.c: Regenerate.
-       * generated/findloc1_i2.c: Regenerate.
-       * generated/findloc1_i4.c: Regenerate.
-       * generated/findloc1_i8.c: Regenerate.
-       * generated/findloc1_r10.c: Regenerate.
-       * generated/findloc1_r16.c: Regenerate.
-       * generated/findloc1_r17.c: Regenerate.
-       * generated/findloc1_r4.c: Regenerate.
-       * generated/findloc1_r8.c: Regenerate.
-       * generated/findloc1_s1.c: Regenerate.
-       * generated/findloc1_s4.c: Regenerate.
-       * generated/iall_i1.c: Regenerate.
-       * generated/iall_i16.c: Regenerate.
-       * generated/iall_i2.c: Regenerate.
-       * generated/iall_i4.c: Regenerate.
-       * generated/iall_i8.c: Regenerate.
-       * generated/iany_i1.c: Regenerate.
-       * generated/iany_i16.c: Regenerate.
-       * generated/iany_i2.c: Regenerate.
-       * generated/iany_i4.c: Regenerate.
-       * generated/iany_i8.c: Regenerate.
-       * generated/iparity_i1.c: Regenerate.
-       * generated/iparity_i16.c: Regenerate.
-       * generated/iparity_i2.c: Regenerate.
-       * generated/iparity_i4.c: Regenerate.
-       * generated/iparity_i8.c: Regenerate.
-       * generated/maxloc1_16_i1.c: Regenerate.
-       * generated/maxloc1_16_i16.c: Regenerate.
-       * generated/maxloc1_16_i2.c: Regenerate.
-       * generated/maxloc1_16_i4.c: Regenerate.
-       * generated/maxloc1_16_i8.c: Regenerate.
-       * generated/maxloc1_16_r10.c: Regenerate.
-       * generated/maxloc1_16_r16.c: Regenerate.
-       * generated/maxloc1_16_r17.c: Regenerate.
-       * generated/maxloc1_16_r4.c: Regenerate.
-       * generated/maxloc1_16_r8.c: Regenerate.
-       * generated/maxloc1_16_s1.c: Regenerate.
-       * generated/maxloc1_16_s4.c: Regenerate.
-       * generated/maxloc1_4_i1.c: Regenerate.
-       * generated/maxloc1_4_i16.c: Regenerate.
-       * generated/maxloc1_4_i2.c: Regenerate.
-       * generated/maxloc1_4_i4.c: Regenerate.
-       * generated/maxloc1_4_i8.c: Regenerate.
-       * generated/maxloc1_4_r10.c: Regenerate.
-       * generated/maxloc1_4_r16.c: Regenerate.
-       * generated/maxloc1_4_r17.c: Regenerate.
-       * generated/maxloc1_4_r4.c: Regenerate.
-       * generated/maxloc1_4_r8.c: Regenerate.
-       * generated/maxloc1_4_s1.c: Regenerate.
-       * generated/maxloc1_4_s4.c: Regenerate.
-       * generated/maxloc1_8_i1.c: Regenerate.
-       * generated/maxloc1_8_i16.c: Regenerate.
-       * generated/maxloc1_8_i2.c: Regenerate.
-       * generated/maxloc1_8_i4.c: Regenerate.
-       * generated/maxloc1_8_i8.c: Regenerate.
-       * generated/maxloc1_8_r10.c: Regenerate.
-       * generated/maxloc1_8_r16.c: Regenerate.
-       * generated/maxloc1_8_r17.c: Regenerate.
-       * generated/maxloc1_8_r4.c: Regenerate.
-       * generated/maxloc1_8_r8.c: Regenerate.
-       * generated/maxloc1_8_s1.c: Regenerate.
-       * generated/maxloc1_8_s4.c: Regenerate.
-       * generated/maxval1_s1.c: Regenerate.
-       * generated/maxval1_s4.c: Regenerate.
-       * generated/maxval_i1.c: Regenerate.
-       * generated/maxval_i16.c: Regenerate.
-       * generated/maxval_i2.c: Regenerate.
-       * generated/maxval_i4.c: Regenerate.
-       * generated/maxval_i8.c: Regenerate.
-       * generated/maxval_r10.c: Regenerate.
-       * generated/maxval_r16.c: Regenerate.
-       * generated/maxval_r17.c: Regenerate.
-       * generated/maxval_r4.c: Regenerate.
-       * generated/maxval_r8.c: Regenerate.
-       * generated/minloc1_16_i1.c: Regenerate.
-       * generated/minloc1_16_i16.c: Regenerate.
-       * generated/minloc1_16_i2.c: Regenerate.
-       * generated/minloc1_16_i4.c: Regenerate.
-       * generated/minloc1_16_i8.c: Regenerate.
-       * generated/minloc1_16_r10.c: Regenerate.
-       * generated/minloc1_16_r16.c: Regenerate.
-       * generated/minloc1_16_r17.c: Regenerate.
-       * generated/minloc1_16_r4.c: Regenerate.
-       * generated/minloc1_16_r8.c: Regenerate.
-       * generated/minloc1_16_s1.c: Regenerate.
-       * generated/minloc1_16_s4.c: Regenerate.
-       * generated/minloc1_4_i1.c: Regenerate.
-       * generated/minloc1_4_i16.c: Regenerate.
-       * generated/minloc1_4_i2.c: Regenerate.
-       * generated/minloc1_4_i4.c: Regenerate.
-       * generated/minloc1_4_i8.c: Regenerate.
-       * generated/minloc1_4_r10.c: Regenerate.
-       * generated/minloc1_4_r16.c: Regenerate.
-       * generated/minloc1_4_r17.c: Regenerate.
-       * generated/minloc1_4_r4.c: Regenerate.
-       * generated/minloc1_4_r8.c: Regenerate.
-       * generated/minloc1_4_s1.c: Regenerate.
-       * generated/minloc1_4_s4.c: Regenerate.
-       * generated/minloc1_8_i1.c: Regenerate.
-       * generated/minloc1_8_i16.c: Regenerate.
-       * generated/minloc1_8_i2.c: Regenerate.
-       * generated/minloc1_8_i4.c: Regenerate.
-       * generated/minloc1_8_i8.c: Regenerate.
-       * generated/minloc1_8_r10.c: Regenerate.
-       * generated/minloc1_8_r16.c: Regenerate.
-       * generated/minloc1_8_r17.c: Regenerate.
-       * generated/minloc1_8_r4.c: Regenerate.
-       * generated/minloc1_8_r8.c: Regenerate.
-       * generated/minloc1_8_s1.c: Regenerate.
-       * generated/minloc1_8_s4.c: Regenerate.
-       * generated/minval1_s1.c: Regenerate.
-       * generated/minval1_s4.c: Regenerate.
-       * generated/minval_i1.c: Regenerate.
-       * generated/minval_i16.c: Regenerate.
-       * generated/minval_i2.c: Regenerate.
-       * generated/minval_i4.c: Regenerate.
-       * generated/minval_i8.c: Regenerate.
-       * generated/minval_r10.c: Regenerate.
-       * generated/minval_r16.c: Regenerate.
-       * generated/minval_r17.c: Regenerate.
-       * generated/minval_r4.c: Regenerate.
-       * generated/minval_r8.c: Regenerate.
-       * generated/norm2_r10.c: Regenerate.
-       * generated/norm2_r16.c: Regenerate.
-       * generated/norm2_r17.c: Regenerate.
-       * generated/norm2_r4.c: Regenerate.
-       * generated/norm2_r8.c: Regenerate.
-       * generated/parity_l1.c: Regenerate.
-       * generated/parity_l16.c: Regenerate.
-       * generated/parity_l2.c: Regenerate.
-       * generated/parity_l4.c: Regenerate.
-       * generated/parity_l8.c: Regenerate.
-       * generated/product_c10.c: Regenerate.
-       * generated/product_c16.c: Regenerate.
-       * generated/product_c17.c: Regenerate.
-       * generated/product_c4.c: Regenerate.
-       * generated/product_c8.c: Regenerate.
-       * generated/product_i1.c: Regenerate.
-       * generated/product_i16.c: Regenerate.
-       * generated/product_i2.c: Regenerate.
-       * generated/product_i4.c: Regenerate.
-       * generated/product_i8.c: Regenerate.
-       * generated/product_r10.c: Regenerate.
-       * generated/product_r16.c: Regenerate.
-       * generated/product_r17.c: Regenerate.
-       * generated/product_r4.c: Regenerate.
-       * generated/product_r8.c: Regenerate.
-       * generated/sum_c10.c: Regenerate.
-       * generated/sum_c16.c: Regenerate.
-       * generated/sum_c17.c: Regenerate.
-       * generated/sum_c4.c: Regenerate.
-       * generated/sum_c8.c: Regenerate.
-       * generated/sum_i1.c: Regenerate.
-       * generated/sum_i16.c: Regenerate.
-       * generated/sum_i2.c: Regenerate.
-       * generated/sum_i4.c: Regenerate.
-       * generated/sum_i8.c: Regenerate.
-       * generated/sum_r10.c: Regenerate.
-       * generated/sum_r16.c: Regenerate.
-       * generated/sum_r17.c: Regenerate.
-       * generated/sum_r4.c: Regenerate.
-       * generated/sum_r8.c: Regenerate.
-
-2023-11-08  Mikael Morin  <mikael@gcc.gnu.org>
-
-       PR fortran/112371
-       * m4/ifunction.m4 (START_MASKED_ARRAY_FUNCTION): Remove early return if
-       extent is zero or less, and clamp negative value to zero.
-       * m4/ifunction-s.m4 (START_MASKED_ARRAY_FUNCTION): Ditto.
-       * m4/ifunction-s2.m4 (START_MASKED_ARRAY_FUNCTION): Ditto.
-       * generated/iall_i1.c: Regenerate.
-       * generated/iall_i16.c: Regenerate.
-       * generated/iall_i2.c: Regenerate.
-       * generated/iall_i4.c: Regenerate.
-       * generated/iall_i8.c: Regenerate.
-       * generated/iany_i1.c: Regenerate.
-       * generated/iany_i16.c: Regenerate.
-       * generated/iany_i2.c: Regenerate.
-       * generated/iany_i4.c: Regenerate.
-       * generated/iany_i8.c: Regenerate.
-       * generated/iparity_i1.c: Regenerate.
-       * generated/iparity_i16.c: Regenerate.
-       * generated/iparity_i2.c: Regenerate.
-       * generated/iparity_i4.c: Regenerate.
-       * generated/iparity_i8.c: Regenerate.
-       * generated/maxloc1_16_i1.c: Regenerate.
-       * generated/maxloc1_16_i16.c: Regenerate.
-       * generated/maxloc1_16_i2.c: Regenerate.
-       * generated/maxloc1_16_i4.c: Regenerate.
-       * generated/maxloc1_16_i8.c: Regenerate.
-       * generated/maxloc1_16_r10.c: Regenerate.
-       * generated/maxloc1_16_r16.c: Regenerate.
-       * generated/maxloc1_16_r17.c: Regenerate.
-       * generated/maxloc1_16_r4.c: Regenerate.
-       * generated/maxloc1_16_r8.c: Regenerate.
-       * generated/maxloc1_16_s1.c: Regenerate.
-       * generated/maxloc1_16_s4.c: Regenerate.
-       * generated/maxloc1_4_i1.c: Regenerate.
-       * generated/maxloc1_4_i16.c: Regenerate.
-       * generated/maxloc1_4_i2.c: Regenerate.
-       * generated/maxloc1_4_i4.c: Regenerate.
-       * generated/maxloc1_4_i8.c: Regenerate.
-       * generated/maxloc1_4_r10.c: Regenerate.
-       * generated/maxloc1_4_r16.c: Regenerate.
-       * generated/maxloc1_4_r17.c: Regenerate.
-       * generated/maxloc1_4_r4.c: Regenerate.
-       * generated/maxloc1_4_r8.c: Regenerate.
-       * generated/maxloc1_4_s1.c: Regenerate.
-       * generated/maxloc1_4_s4.c: Regenerate.
-       * generated/maxloc1_8_i1.c: Regenerate.
-       * generated/maxloc1_8_i16.c: Regenerate.
-       * generated/maxloc1_8_i2.c: Regenerate.
-       * generated/maxloc1_8_i4.c: Regenerate.
-       * generated/maxloc1_8_i8.c: Regenerate.
-       * generated/maxloc1_8_r10.c: Regenerate.
-       * generated/maxloc1_8_r16.c: Regenerate.
-       * generated/maxloc1_8_r17.c: Regenerate.
-       * generated/maxloc1_8_r4.c: Regenerate.
-       * generated/maxloc1_8_r8.c: Regenerate.
-       * generated/maxloc1_8_s1.c: Regenerate.
-       * generated/maxloc1_8_s4.c: Regenerate.
-       * generated/maxval1_s1.c: Regenerate.
-       * generated/maxval1_s4.c: Regenerate.
-       * generated/maxval_i1.c: Regenerate.
-       * generated/maxval_i16.c: Regenerate.
-       * generated/maxval_i2.c: Regenerate.
-       * generated/maxval_i4.c: Regenerate.
-       * generated/maxval_i8.c: Regenerate.
-       * generated/maxval_r10.c: Regenerate.
-       * generated/maxval_r16.c: Regenerate.
-       * generated/maxval_r17.c: Regenerate.
-       * generated/maxval_r4.c: Regenerate.
-       * generated/maxval_r8.c: Regenerate.
-       * generated/minloc1_16_i1.c: Regenerate.
-       * generated/minloc1_16_i16.c: Regenerate.
-       * generated/minloc1_16_i2.c: Regenerate.
-       * generated/minloc1_16_i4.c: Regenerate.
-       * generated/minloc1_16_i8.c: Regenerate.
-       * generated/minloc1_16_r10.c: Regenerate.
-       * generated/minloc1_16_r16.c: Regenerate.
-       * generated/minloc1_16_r17.c: Regenerate.
-       * generated/minloc1_16_r4.c: Regenerate.
-       * generated/minloc1_16_r8.c: Regenerate.
-       * generated/minloc1_16_s1.c: Regenerate.
-       * generated/minloc1_16_s4.c: Regenerate.
-       * generated/minloc1_4_i1.c: Regenerate.
-       * generated/minloc1_4_i16.c: Regenerate.
-       * generated/minloc1_4_i2.c: Regenerate.
-       * generated/minloc1_4_i4.c: Regenerate.
-       * generated/minloc1_4_i8.c: Regenerate.
-       * generated/minloc1_4_r10.c: Regenerate.
-       * generated/minloc1_4_r16.c: Regenerate.
-       * generated/minloc1_4_r17.c: Regenerate.
-       * generated/minloc1_4_r4.c: Regenerate.
-       * generated/minloc1_4_r8.c: Regenerate.
-       * generated/minloc1_4_s1.c: Regenerate.
-       * generated/minloc1_4_s4.c: Regenerate.
-       * generated/minloc1_8_i1.c: Regenerate.
-       * generated/minloc1_8_i16.c: Regenerate.
-       * generated/minloc1_8_i2.c: Regenerate.
-       * generated/minloc1_8_i4.c: Regenerate.
-       * generated/minloc1_8_i8.c: Regenerate.
-       * generated/minloc1_8_r10.c: Regenerate.
-       * generated/minloc1_8_r16.c: Regenerate.
-       * generated/minloc1_8_r17.c: Regenerate.
-       * generated/minloc1_8_r4.c: Regenerate.
-       * generated/minloc1_8_r8.c: Regenerate.
-       * generated/minloc1_8_s1.c: Regenerate.
-       * generated/minloc1_8_s4.c: Regenerate.
-       * generated/minval1_s1.c: Regenerate.
-       * generated/minval1_s4.c: Regenerate.
-       * generated/minval_i1.c: Regenerate.
-       * generated/minval_i16.c: Regenerate.
-       * generated/minval_i2.c: Regenerate.
-       * generated/minval_i4.c: Regenerate.
-       * generated/minval_i8.c: Regenerate.
-       * generated/minval_r10.c: Regenerate.
-       * generated/minval_r16.c: Regenerate.
-       * generated/minval_r17.c: Regenerate.
-       * generated/minval_r4.c: Regenerate.
-       * generated/minval_r8.c: Regenerate.
-       * generated/product_c10.c: Regenerate.
-       * generated/product_c16.c: Regenerate.
-       * generated/product_c17.c: Regenerate.
-       * generated/product_c4.c: Regenerate.
-       * generated/product_c8.c: Regenerate.
-       * generated/product_i1.c: Regenerate.
-       * generated/product_i16.c: Regenerate.
-       * generated/product_i2.c: Regenerate.
-       * generated/product_i4.c: Regenerate.
-       * generated/product_i8.c: Regenerate.
-       * generated/product_r10.c: Regenerate.
-       * generated/product_r16.c: Regenerate.
-       * generated/product_r17.c: Regenerate.
-       * generated/product_r4.c: Regenerate.
-       * generated/product_r8.c: Regenerate.
-       * generated/sum_c10.c: Regenerate.
-       * generated/sum_c16.c: Regenerate.
-       * generated/sum_c17.c: Regenerate.
-       * generated/sum_c4.c: Regenerate.
-       * generated/sum_c8.c: Regenerate.
-       * generated/sum_i1.c: Regenerate.
-       * generated/sum_i16.c: Regenerate.
-       * generated/sum_i2.c: Regenerate.
-       * generated/sum_i4.c: Regenerate.
-       * generated/sum_i8.c: Regenerate.
-       * generated/sum_r10.c: Regenerate.
-       * generated/sum_r16.c: Regenerate.
-       * generated/sum_r17.c: Regenerate.
-       * generated/sum_r4.c: Regenerate.
-       * generated/sum_r8.c: Regenerate.
-
-2023-11-08  Mikael Morin  <mikael@gcc.gnu.org>
-
-       PR fortran/112412
-       * m4/ifunction.m4 (START_MASKED_ARRAY_FUNCTION, SCALAR_ARRAY_FUNCTION):
-       Don't skip allocation if the allocation size is zero.
-       * m4/ifunction-s.m4 (START_MASKED_ARRAY_FUNCTION,
-       SCALAR_ARRAY_FUNCTION): Ditto.
-       * m4/ifunction-s2.m4 (START_MASKED_ARRAY_FUNCTION,
-       SCALAR_ARRAY_FUNCTION): Ditto.
-       * m4/ifunction_logical.m4 (START_ARRAY_FUNCTION): Ditto.
-       * generated/all_l1.c: Regenerate.
-       * generated/all_l16.c: Regenerate.
-       * generated/all_l2.c: Regenerate.
-       * generated/all_l4.c: Regenerate.
-       * generated/all_l8.c: Regenerate.
-       * generated/any_l1.c: Regenerate.
-       * generated/any_l16.c: Regenerate.
-       * generated/any_l2.c: Regenerate.
-       * generated/any_l4.c: Regenerate.
-       * generated/any_l8.c: Regenerate.
-       * generated/count_16_l.c: Regenerate.
-       * generated/count_1_l.c: Regenerate.
-       * generated/count_2_l.c: Regenerate.
-       * generated/count_4_l.c: Regenerate.
-       * generated/count_8_l.c: Regenerate.
-       * generated/iall_i1.c: Regenerate.
-       * generated/iall_i16.c: Regenerate.
-       * generated/iall_i2.c: Regenerate.
-       * generated/iall_i4.c: Regenerate.
-       * generated/iall_i8.c: Regenerate.
-       * generated/iany_i1.c: Regenerate.
-       * generated/iany_i16.c: Regenerate.
-       * generated/iany_i2.c: Regenerate.
-       * generated/iany_i4.c: Regenerate.
-       * generated/iany_i8.c: Regenerate.
-       * generated/iparity_i1.c: Regenerate.
-       * generated/iparity_i16.c: Regenerate.
-       * generated/iparity_i2.c: Regenerate.
-       * generated/iparity_i4.c: Regenerate.
-       * generated/iparity_i8.c: Regenerate.
-       * generated/maxloc1_16_i1.c: Regenerate.
-       * generated/maxloc1_16_i16.c: Regenerate.
-       * generated/maxloc1_16_i2.c: Regenerate.
-       * generated/maxloc1_16_i4.c: Regenerate.
-       * generated/maxloc1_16_i8.c: Regenerate.
-       * generated/maxloc1_16_r10.c: Regenerate.
-       * generated/maxloc1_16_r16.c: Regenerate.
-       * generated/maxloc1_16_r17.c: Regenerate.
-       * generated/maxloc1_16_r4.c: Regenerate.
-       * generated/maxloc1_16_r8.c: Regenerate.
-       * generated/maxloc1_16_s1.c: Regenerate.
-       * generated/maxloc1_16_s4.c: Regenerate.
-       * generated/maxloc1_4_i1.c: Regenerate.
-       * generated/maxloc1_4_i16.c: Regenerate.
-       * generated/maxloc1_4_i2.c: Regenerate.
-       * generated/maxloc1_4_i4.c: Regenerate.
-       * generated/maxloc1_4_i8.c: Regenerate.
-       * generated/maxloc1_4_r10.c: Regenerate.
-       * generated/maxloc1_4_r16.c: Regenerate.
-       * generated/maxloc1_4_r17.c: Regenerate.
-       * generated/maxloc1_4_r4.c: Regenerate.
-       * generated/maxloc1_4_r8.c: Regenerate.
-       * generated/maxloc1_4_s1.c: Regenerate.
-       * generated/maxloc1_4_s4.c: Regenerate.
-       * generated/maxloc1_8_i1.c: Regenerate.
-       * generated/maxloc1_8_i16.c: Regenerate.
-       * generated/maxloc1_8_i2.c: Regenerate.
-       * generated/maxloc1_8_i4.c: Regenerate.
-       * generated/maxloc1_8_i8.c: Regenerate.
-       * generated/maxloc1_8_r10.c: Regenerate.
-       * generated/maxloc1_8_r16.c: Regenerate.
-       * generated/maxloc1_8_r17.c: Regenerate.
-       * generated/maxloc1_8_r4.c: Regenerate.
-       * generated/maxloc1_8_r8.c: Regenerate.
-       * generated/maxloc1_8_s1.c: Regenerate.
-       * generated/maxloc1_8_s4.c: Regenerate.
-       * generated/maxval1_s1.c: Regenerate.
-       * generated/maxval1_s4.c: Regenerate.
-       * generated/maxval_i1.c: Regenerate.
-       * generated/maxval_i16.c: Regenerate.
-       * generated/maxval_i2.c: Regenerate.
-       * generated/maxval_i4.c: Regenerate.
-       * generated/maxval_i8.c: Regenerate.
-       * generated/maxval_r10.c: Regenerate.
-       * generated/maxval_r16.c: Regenerate.
-       * generated/maxval_r17.c: Regenerate.
-       * generated/maxval_r4.c: Regenerate.
-       * generated/maxval_r8.c: Regenerate.
-       * generated/minloc1_16_i1.c: Regenerate.
-       * generated/minloc1_16_i16.c: Regenerate.
-       * generated/minloc1_16_i2.c: Regenerate.
-       * generated/minloc1_16_i4.c: Regenerate.
-       * generated/minloc1_16_i8.c: Regenerate.
-       * generated/minloc1_16_r10.c: Regenerate.
-       * generated/minloc1_16_r16.c: Regenerate.
-       * generated/minloc1_16_r17.c: Regenerate.
-       * generated/minloc1_16_r4.c: Regenerate.
-       * generated/minloc1_16_r8.c: Regenerate.
-       * generated/minloc1_16_s1.c: Regenerate.
-       * generated/minloc1_16_s4.c: Regenerate.
-       * generated/minloc1_4_i1.c: Regenerate.
-       * generated/minloc1_4_i16.c: Regenerate.
-       * generated/minloc1_4_i2.c: Regenerate.
-       * generated/minloc1_4_i4.c: Regenerate.
-       * generated/minloc1_4_i8.c: Regenerate.
-       * generated/minloc1_4_r10.c: Regenerate.
-       * generated/minloc1_4_r16.c: Regenerate.
-       * generated/minloc1_4_r17.c: Regenerate.
-       * generated/minloc1_4_r4.c: Regenerate.
-       * generated/minloc1_4_r8.c: Regenerate.
-       * generated/minloc1_4_s1.c: Regenerate.
-       * generated/minloc1_4_s4.c: Regenerate.
-       * generated/minloc1_8_i1.c: Regenerate.
-       * generated/minloc1_8_i16.c: Regenerate.
-       * generated/minloc1_8_i2.c: Regenerate.
-       * generated/minloc1_8_i4.c: Regenerate.
-       * generated/minloc1_8_i8.c: Regenerate.
-       * generated/minloc1_8_r10.c: Regenerate.
-       * generated/minloc1_8_r16.c: Regenerate.
-       * generated/minloc1_8_r17.c: Regenerate.
-       * generated/minloc1_8_r4.c: Regenerate.
-       * generated/minloc1_8_r8.c: Regenerate.
-       * generated/minloc1_8_s1.c: Regenerate.
-       * generated/minloc1_8_s4.c: Regenerate.
-       * generated/minval1_s1.c: Regenerate.
-       * generated/minval1_s4.c: Regenerate.
-       * generated/minval_i1.c: Regenerate.
-       * generated/minval_i16.c: Regenerate.
-       * generated/minval_i2.c: Regenerate.
-       * generated/minval_i4.c: Regenerate.
-       * generated/minval_i8.c: Regenerate.
-       * generated/minval_r10.c: Regenerate.
-       * generated/minval_r16.c: Regenerate.
-       * generated/minval_r17.c: Regenerate.
-       * generated/minval_r4.c: Regenerate.
-       * generated/minval_r8.c: Regenerate.
-       * generated/product_c10.c: Regenerate.
-       * generated/product_c16.c: Regenerate.
-       * generated/product_c17.c: Regenerate.
-       * generated/product_c4.c: Regenerate.
-       * generated/product_c8.c: Regenerate.
-       * generated/product_i1.c: Regenerate.
-       * generated/product_i16.c: Regenerate.
-       * generated/product_i2.c: Regenerate.
-       * generated/product_i4.c: Regenerate.
-       * generated/product_i8.c: Regenerate.
-       * generated/product_r10.c: Regenerate.
-       * generated/product_r16.c: Regenerate.
-       * generated/product_r17.c: Regenerate.
-       * generated/product_r4.c: Regenerate.
-       * generated/product_r8.c: Regenerate.
-       * generated/sum_c10.c: Regenerate.
-       * generated/sum_c16.c: Regenerate.
-       * generated/sum_c17.c: Regenerate.
-       * generated/sum_c4.c: Regenerate.
-       * generated/sum_c8.c: Regenerate.
-       * generated/sum_i1.c: Regenerate.
-       * generated/sum_i16.c: Regenerate.
-       * generated/sum_i2.c: Regenerate.
-       * generated/sum_i4.c: Regenerate.
-       * generated/sum_i8.c: Regenerate.
-       * generated/sum_r10.c: Regenerate.
-       * generated/sum_r16.c: Regenerate.
-       * generated/sum_r17.c: Regenerate.
-       * generated/sum_r4.c: Regenerate.
-       * generated/sum_r8.c: Regenerate.
-
-2023-11-06  Tobias Burnus  <tobias@codesourcery.com>
-
-       PR libfortran/112364
-       * io/async.c (enqueue_transfer, enqueue_done_id, enqueue_done,
-       enqueue_close): Swap 1st and 2nd arg in calloc call.
-
-2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
-
-       * Makefile.am: Handle Darwin rpaths.
-       * Makefile.in: Regenerate.
-       * configure: Regenerate.
-       * configure.ac: Handle Darwin rpaths
-
-2023-09-28  Tobias Burnus  <tobias@codesourcery.com>
-
-       * io/write.c (xtoa_big): Change a 'GCC diagnostic ignored
-       "-Wstringop-overflow"' to an assumption (via __builtin_unreachable).t
-
-2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
-
-       * configure: Regenerate.
-
-2023-08-07  Alexander von Gluck IV  <kallisti5@unixzen.com>
-
-       * configure: Regenerate.
-
-2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
-
-       * configure: Regenerate.
-
-2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
-
-       * configure: Regenerate.
-
-2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
-
-       * configure: Regenerate.
-
-2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
-
-       * configure: Regenerate.
-
-2023-07-21  Andrew Pinski  <apinski@marvell.com>
-
-       PR libfortran/110759
-       * ieee/ieee_arithmetic.F90
-       (COMP_INTERFACE): Remove the comma after EXPAND_INTER_MACRO_16
-       and EXPAND_INTER_MACRO_10.
-       (EXPAND_INTER_MACRO_16): Add comma here if 16 byte fp exist.
-       (EXPAND_INTER_MACRO_10): Likewise.
-
-2023-07-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
-
-       * ieee/ieee_arithmetic.F90: Add IEEE_QUIET_* and
-       IEEE_SIGNALING_* functions.
-
-2023-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
-
-       PR libfortran/109373
-       * configure.ac: Remove support for --enable-intermodule
-       * Makefile.am: Remove onestep path.
-       * configure: Regenerate.
-       * Makefile.in: Regenerate.
-
-2023-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
-
-       * ieee/ieee_arithmetic.F90: Add IEEE_MIN_NUM, IEEE_MAX_NUM,
-       IEEE_MIN_NUM_MAG, and IEEE_MAX_NUM_MAG functions.
-
-2023-05-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR fortran/109662
-       * io/unit.c (set_internal_unit): Set the internal unit
-       last_char to zero so that previous EOF characters do not
-       influence the next read.
-
-2023-05-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
-
-       * caf/single.c (_gfortran_caf_register): Fix coding style.
-       * io/async.c (update_pdt, async_io): Likewise.
-       * io/format.c (free_format_data): Likewise.
-       * io/transfer.c (st_read_done_worker, st_write_done_worker): Likewise.
-       * io/unix.c (mem_close): Likewise.
-
-2023-05-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
-
-       * caf/single.c (_gfortran_caf_register): Call free() unconditionally.
-       * io/async.c (update_pdt, async_io): Likewise.
-       * io/format.c (free_format_data): Likewise.
-       * io/transfer.c (st_read_done_worker, st_write_done_worker): Likewise.
-       * io/unix.c (mem_close): Likewise.
-
-2023-05-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR fortran/109662
-       * io/list_read.c: Add check for a semicolon after a namelist
-       name in read input. Issue a runtime error message.
-
-2023-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR fortran/109662
-       * io/list_read.c: Add a check for a comma after a namelist
-       name in read input. Issue a runtime error message.
-
-2023-02-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       * generated/pack_c10.c (pack_c10): Regenerated.
-       * generated/pack_c16.c (pack_c16): Regenerated.
-       * generated/pack_c17.c (pack_c17): Regenerated.
-       * generated/pack_c4.c (pack_c4): Regenerated.
-       * generated/pack_c8.c (pack_c8): Regenerated.
-       * generated/pack_i1.c (pack_i1): Regenerated.
-       * generated/pack_i16.c (pack_i16): Regenerated.
-       * generated/pack_i2.c (pack_i2): Regenerated.
-       * generated/pack_i4.c (pack_i4): Regenerated.
-       * generated/pack_i8.c (pack_i8): Regenerated.
-       * generated/pack_r10.c (pack_r10): Regenerated.
-       * generated/pack_r16.c (pack_r16): Regenerated.
-       * generated/pack_r17.c (pack_r17): Regenerated.
-       * generated/pack_r4.c (pack_r4): Regenerated.
-       * generated/pack_r8.c (pack_r8): Regenerated.
-       * generated/spread_c10.c (spread_c10): Regenerated.
-       * generated/spread_c16.c (spread_c16): Regenerated.
-       * generated/spread_c17.c (spread_c17): Regenerated.
-       * generated/spread_c4.c (spread_c4): Regenerated.
-       * generated/spread_c8.c (spread_c8): Regenerated.
-       * generated/spread_i1.c (spread_i1): Regenerated.
-       * generated/spread_i16.c (spread_i16): Regenerated.
-       * generated/spread_i2.c (spread_i2): Regenerated.
-       * generated/spread_i4.c (spread_i4): Regenerated.
-       * generated/spread_i8.c (spread_i8): Regenerated.
-       * generated/spread_r10.c (spread_r10): Regenerated.
-       * generated/spread_r16.c (spread_r16): Regenerated.
-       * generated/spread_r17.c (spread_r17): Regenerated.
-       * generated/spread_r4.c (spread_r4): Regenerated.
-       * generated/spread_r8.c (spread_r8): Regenerated.
-       * intrinsics/execute_command_line.c (execute_command_line_i4),
-       (execute_command_line_i8): Set estat_initial to zero.
-       * intrinsics/pack_generic.c (pack_internal): Set sstride[0] and
-       mstride[0] to zero.
-       * intrinsics/spread_generic.c (spread_internal): Set sstride[0].
-       * m4/pack.m4: Set sstride[0] and mstride[0].
-       * m4/spread.m4: Set sstride[0].
-
-2023-01-18  Tobias Burnus  <tobias@codesourcery.com>
-
-       * intrinsics/execute_command_line.c (execute_command_line): On
-       Windows, regard system()'s return value of 9009 as EXEC_INVALIDCOMMAND.
-
-2023-01-07  LIU Hao  <lh_mouse@126.com>
 
-       PR middle-end/108300
-       * intrinsics/sleep.c: Define `WIN32_LEAN_AND_MEAN` before
-       <windows.h>.
+2024-03-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/105456
+       * io/io.h (IOMSG_LEN): Moved to here.
+       * io/list_read.c (MSGLEN): Removed MSGLEN.
+       (convert_integer): Changed MSGLEN to IOMSG_LEN.
+       (parse_repeat): Likewise.
+       (read_logical): Likewise.
+       (read_integer): Likewise.
+       (read_character): Likewise.
+       (parse_real): Likewise.
+       (read_complex): Likewise.
+       (read_real): Likewise.
+       (check_type): Likewise.
+       (list_formatted_read_scalar): Adjust to IOMSG_LEN.
+       (nml_read_obj): Add user defined error message.
+       * io/transfer.c (unformatted_read): Add user defined error
+       message.
+       (unformatted_write): Add user defined error message.
+       (formatted_transfer_scalar_read): Add user defined error message.
+       (formatted_transfer_scalar_write): Add user defined error message.
+       * io/write.c (list_formatted_write_scalar): Add user defined error message.
+       (nml_write_obj): Add user defined error message.
+
+2024-02-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/105456
+       * io/list_read.c (list_formatted_read_scalar): Add checks
+       for the case where a user defines their own error codes
+       and error messages and generate the runtime error.
+       * io/transfer.c (st_read_done): Whitespace.
+
+2024-02-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/105473
+       * io/list_read.c (eat_separator): Reject comma as a
+       seprator when it is being used as a decimal point.
+       (parse_real): Reject a '.' when is should be a comma.
+       (read_real): Likewise.
+       * io/read.c (read_f): Add more checks for ',' and '.'
+       conditions.
+
+2024-02-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/107068
+       * io/list_read.c (read_logical): When looking for a possible
+       variable name, check for left paren, indicating a possible
+       array reference.
+
+2024-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/99210
+       * io/read.c (read_x): If UTF-8 encoding is enabled, use
+       read_utf8 to move one character over in the read buffer.
+
+2024-02-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       * io/transfer.c (formatted_transfer_scalar_write): Adjust
+       bytes_used and pos variable for stream access.
+
+2024-02-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/111022
+       * io/format.c (get_fnode): Update initialization of fnode.
+       (parse_format_list): Initialization.
+       * io/format.h (struct fnode): Added the new 'pushed' component.
+       * io/write.c (select_buffer): Whitespace.
+       (write_real): Whitespace.
+       (write_real_w0): Adjust logic for the d == 0 condition.
+       * io/write_float.def (determine_precision): Whitespace.
+       (build_float_string): Calculate width of ..E0 exponents and
+       adjust logic accordingly.
+       (build_infnan_string): Whitespace.
+       (CALCULATE_EXP): Whitespace.
+       (quadmath_snprintf): Whitespace.
+       (determine_en_precision): Whitespace.
+
+2024-01-15  Lipeng Zhu  <lipeng.zhu@intel.com>
+
+       * io/io.h (dec_waiting_unlocked): Use
+       __gthread_rwlock_wrlock/__gthread_rwlock_unlock or
+       __gthread_mutex_lock/__gthread_mutex_unlock functions
+       to replace WRLOCK and RWUNLOCK macros.
+
+2024-01-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       * io/write.c (namelist_write): If internal_unit precede with space.
 
 \f
-Copyright (C) 2023 Free Software Foundation, Inc.
+Copyright (C) 2024 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright