coroutines: Wrap co_await in a target expr where needed [PR95050]
[gcc.git] / libgfortran / ChangeLog
index 72b70a0c559411bf53bde462d2cbc00757f83f8c..c2358cbe4e75172638ecb88503899de1c1292d07 100644 (file)
-2019-05-02  Jakub Jelinek  <jakub@redhat.com>
+2020-06-01  Uroš Bizjak  <ubizjak@gmail.com>
 
-       * Makefile.am (gfor_cdir): Remove $(MULTISUBDIR).
-       * Makefile.in: Regenerated.
-
-2019-04-14  Paul Thomas  <pault@gcc.gnu.org>
-
-       PR fortran/89843
-       * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Only
-       return immediately if the source pointer is null. Bring
-       forward the extraction of the gfc type. Extract the kind so
-       that the element size can be correctly computed for sections
-       and components of derived type arrays. Remove the free of the
-       CFI descriptor since this is now done in trans-expr.c.
-       (gfc_desc_to_cfi_desc): Only allocate the CFI descriptor if it
-       is not null.
-       (CFI_section): Normalise the difference between the upper and
-       lower bounds by the stride to correctly calculate the extents
-       of the section.
-
-       PR fortran/89846
-       * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Use
-       the stride measure for the gfc span if it is not a multiple
-       of the element length. Otherwise use the element length.
-
-       PR fortran/90022
-       * runtime/ISO_Fortran_binding.c (CFI_is_contiguous) : Return
-       1 for true and 0 otherwise to comply with the standard. Correct
-       the contiguity check for rank 3 and greater by using the stride
-       measure of the lower dimension rather than the element length.
-
-2019-03-25  John David Anglin  <danglin@gcc.gnu.org>
-
-       PR libgfortran/79540
-       * io/write_float.def (build_float_string): Don't copy digits when
-       ndigits is negative.
-
-2019-03-05  Jakub Jelinek  <jakub@redhat.com>
-
-       PR libgfortran/89593
-       * caf/single.c (_gfortran_caf_sendget_by_ref): Cast &temp to
-       gfc_descriptor_t * to avoid warning.
-
-2019-02-26  Uroš Bizjak  <ubizjak@gmail.com>
+       PR libfortran/95418
+       * config/fpu-387.h (struct fenv): Add __attribute__ ((gcc_struct)).
 
-       * io/transfer.c (transfer_array_inner): Do not
-       cast charlen to index_type.
+2020-05-29  H.J. Lu  <hjl.tools@gmail.com>
 
-2019-02-25  Dominique d'Humieres  <dominiq@gcc.gnu.org>
+       PR bootstrap/95413
+       * configure: Regenerated.
 
-       PR libfortran/89274
-       * io/write.c (write_integer): Add width for INTEGER(16).
+2020-05-29  Jakub Jelinek  <jakub@redhat.com>
 
-2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
-
-       PR fortran/89385
-       PR fortran/89366
-       * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc) : In the
-       interchange between character and derived, the character type
-       was being set incorrectly.
-       (gfc_desc_to_cfi_desc) : Eliminate the interchange of types in
-       this function. Do not add the kind and length information to
-       the type field of structures. Lbounds were incorrectly being
-       set to zero for allocatable and pointer descriptors. Should
-       have been non-pointer, non-allocatables that received this
-       treatment.
-
-2019-01-30  Uroš Bizjak  <ubizjak@gmail.com>
-
-       PR libfortran/88678
-       Revert:
-       2016-11-16  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-       PR libfortran/78314
-       * config/fpu-glibc.h (support_fpu_trap): Use feenableexcept.
-
-2019-01-30  Uroš Bizjak  <ubizjak@gmail.com>
+       PR libfortran/95390
+       * Makefile.am (i_findloc0_c): Add findloc0_i10.c.
+       (i_findloc1_c): Add findloc1_i10.c.
+       * gfortran.map (GFORTRAN_10.2): New symbol version, export
+       _gfortran_{,m,s}findloc{0,1}_c10 symbols.
+       * Makefile.in: Regenerated.
+       * generated/findloc0_c10.c: Generated.
+       * generated/findloc1_c10.c: Generated.
 
-       PR libfortran/88678
-       * config/fpu-glibc.h (set_fpu_trap_exceptions): Clear stalled
-       exception flags before changing trap mode.  Optimize to call
-       feenableexcept and fedisableexcept only once.
+2020-05-28  Harald Anlauf  <anlauf@gmx.de>
 
-2019-01-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+       PR libfortran/95104
+       * io/unit.c (unlock_unit): Guard by check for NULL pointer.
 
-       * io/async.c (init_adv_cond): Use __GTHREAD_COND_INIT_FUNCTION().
+2020-05-26  Harald Anlauf  <anlauf@gmx.de>
+           Steven G. Kargl   <kargl@gcc.gnu.org>
 
-2019-01-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+       PR libfortran/95104
+       * io/transfer.c (st_wait_async): Do not dereference NULL pointer.
 
-       PR libfortran/89020
-       * io/close.c (st_close): Simplify text of error message to not
-       presume a specific cause of failure to remove file.
+2020-05-26  Harald Anlauf  <anlauf@gmx.de>
 
-2019-01-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+       PR fortran/95195
+       * io/transfer.c (finalize_transfer): Generate runtime error for
+       namelist input/output to unformatted file.
 
-       PR libfortran/89020
-       * io/close.c (st_close): Fix typo.
+2020-05-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
-2019-01-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+       PR libfortran/95191
+       * io/async.c (async_wait_id): Generate error if ID is higher
+       than the highest current ID.
+       * runtime/error.c (translate_error): Handle LIBERROR_BAD_WAIT_ID.
+
+2020-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * m4/matmul.m4: Don't include <config/i386/cpuinfo.h>.  Use
+       __builtin_cpu_is/__builtin_cpu_supports
+       * generated/matmul_c10.c: Regenerated.
+       * generated/matmul_c16.c: Likewise.
+       * generated/matmul_c4.c: Likewise.
+       * generated/matmul_c8.c: Likewise.
+       * generated/matmul_i1.c: Likewise.
+       * generated/matmul_i16.c: Likewise.
+       * generated/matmul_i2.c: Likewise.
+       * generated/matmul_i4.c: Likewise.
+       * generated/matmul_i8.c: Likewise.
+       * generated/matmul_r10.c: Likewise.
+       * generated/matmul_r16.c: Likewise.
+       * generated/matmul_r4.c: Likewise.
+       * generated/matmul_r8.c: Likewise.
+
+2020-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR bootstrap/95147
+       * configure: Regenerated.
+
+2020-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/95119
+       * io/close.c (close_status): Add CLOSE_INVALID.
+       (st_close): Return early on invalid STATUS parameter.
+
+2020-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2020-05-06  Uroš Bizjak  <ubizjak@gmail.com>
+
+       * config/fpu-387.h (__math_force_eval): Remove.
+       (__math_force_eval_div): New define.
+       (local_feraiseexcept): Use __math_force_eval_div to use
+       generic division to generate INVALID, DIVZERO and INEXACT
+       exceptions.
+       (struct fenv): Define named struct instead of typedef.
+
+2020-05-01  Uroš Bizjak  <ubizjak@gmail.com>
+
+       * config/fpu-387.h (__math_force_eval): New define.
+       (local_feraiseexcept): Use __math_force_eval to evaluate
+       generic division to generate INVALID and DIVZERO exceptions.
+
+2020-04-22  Fritz Reese  <foreese@gcc.gnu.org>
+
+       * intrinsics/trigd.c, intrinsics/trigd_lib.inc, intrinsics/trigd.inc:
+       Guard against unavailable math functions.
+       Use suffixes from kinds.h based on the REAL kind.
+
+2020-04-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libfortran/94694
+       PR libfortran/94586
+       * configure.ac: Add math func checks for fmaf, fma and fmal.  Add
+       HAVE_INLINE_BUILTIN_COPYSIGN check.
+       * c99_protos.h (copysign, fmaf, fma, fmal): Provide fallback
+       prototypes.
+       (HAVE_COPYSIGN, HAVE_FMAF, HAVE_FMA, HAVE_FMAL): Define if not
+       defined and fallback version is provided.
+       * intrinsics/c99_functions.c (copysign, fmaf, fma, fmal): Provide
+       fallback implementations if possible
+       * configure: Regenerated.
+       * config.h.in: Regenerated.
+
+2020-04-19  Uroš Bizjak  <ubizjak@gmail.com>
+
+       * config/fpu-387.h (local_feraiseexcept) [__SSE_MATH__]:
+       Remove unneeded assignments to volatile memory.
+
+2020-04-01  Fritz Reese  <foreese@gcc.gnu.org>
+           Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/93871
+       * Makefile.am, Makefile.in: New make rule for intrinsics/trigd.c.
+       * gfortran.map: New routines for {sind, cosd, tand}X{r4, r8, r10, r16}.
+       * intrinsics/trigd.c, intrinsics/trigd_lib.inc, intrinsics/trigd.inc:
+       New files. Defines native degree-valued trig functions.
+
+2020-02-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/93599
+       * io/async.c (destroy_adv_cond): Do not destroy lock.
+       (async_io): Make sure au->lock is locked for finishing of thread.
+       Do not lock/unlock around signalling emptysignal. Unlock au->lock
+       before return.
+       (init_adv_cond): Do not initialize lock.
+       (enqueue_transfer): Unlock after signal.
+       (enqueue_done_id): Likewise.
+       (enqueue_done): Likewise.
+       (enqueue_close): Likewise.
+       (enqueue_data_transfer): Likewise.
+       (async_wait_id): Do not lock/unlock around signalling au->work.
+       (async_wait): Unlock after signal.
+       * io/async.h (SIGNAL): Add comment about needed au->lock.
+       Remove locking/unlocking of advcond->lock.
+       (WAIT_SIGNAL_MUTEX): Add comment. Remove locking/unlocking of
+       advcond->lock.  Unlock mutex only at the end.  Loop on
+       __ghread_cond_wait returning zero.
+       (REVOKE_SIGNAL): Add comment. Remove locking/unlocking of
+       advcond->lock.
+       (struct adv_cond): Remove mutex from struct.
+
+2020-02-12  Sandra Loosemore  <sandra@codesourcery.com>
+
+       PR libstdc++/79193
+       PR libstdc++/88999
+
+       * configure: Regenerated.
+
+2020-01-24  Maciej W. Rozycki  <macro@wdc.com>
+
+       * configure.ac: Handle `--with-toolexeclibdir='.
+       * Makefile.in: Regenerate.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
 
-       PR libfortran/89020
-       * io/close.c (st_close): Generate error if calls to 'remove' return
-       an error.
+2020-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
-2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
-           Kwok Cheung Yeung  <kcy@codesourcery.com>
-           Julian Brown  <julian@codesourcery.com>
-           Tom de Vries  <tom@codesourcery.com>
+       PR libfortran/93234
+       * io/unit.c (set_internal_unit): Set round and sign flags
+       correctly.
 
-       * configure.ac: Use minimal mode for amdgcn.
-       * configure: Regenerate.
+2020-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
-2019-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libfortran/88776
-       * io/open.c (newunit): Free format buffer if the unit specified is for
-       stdin, stdout, or stderr.
-
-2019-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
-
-       PR libfortran/88776
-       * io/list_read.c (namelist_read): Use nml_err_ret path on read error
-       not based on stdin_unit.
-
-2019-01-12  Paul Thomas  <pault@gcc.gnu.org>
-
-       * ISO_Fortran_binding.h : New file.
-       * Makefile.am : Include ISO_Fortran_binding.c in the list of
-       files to compile.
-       * Makefile.in : Regenerated.
-       * gfortran.map : Add _gfortran_cfi_desc_to_gfc_desc,
-       _gfortran_gfc_desc_to_cfi_desc and the CFI API functions.
-       * runtime/ISO_Fortran_binding.c : New file containing the new
-       functions added to the map.
-
-2019-01-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR libfortran/88807
-       * m4/minloc0.m4: Reindent to avoid -Wmisleading-indentation warnings.
-       * generated/minloc0_4_i1.c: Regenerated.
-       * generated/minloc0_4_i2.c: Regenerated.
-       * generated/minloc0_4_i4.c: Regenerated.
-       * generated/minloc0_4_i8.c: Regenerated.
-       * generated/minloc0_4_i16.c: Regenerated.
-       * generated/minloc0_4_r4.c: Regenerated.
-       * generated/minloc0_4_r8.c: Regenerated.
-       * generated/minloc0_4_r10.c: Regenerated.
-       * generated/minloc0_4_r16.c: Regenerated.
-       * generated/minloc0_8_i1.c: Regenerated.
-       * generated/minloc0_8_i2.c: Regenerated.
-       * generated/minloc0_8_i4.c: Regenerated.
-       * generated/minloc0_8_i8.c: Regenerated.
-       * generated/minloc0_8_i16.c: Regenerated.
-       * generated/minloc0_8_r4.c: Regenerated.
-       * generated/minloc0_8_r8.c: Regenerated.
-       * generated/minloc0_8_r10.c: Regenerated.
-       * generated/minloc0_8_r16.c: Regenerated.
-       * generated/minloc0_16_i1.c: Regenerated.
-       * generated/minloc0_16_i2.c: Regenerated.
-       * generated/minloc0_16_i4.c: Regenerated.
-       * generated/minloc0_16_i8.c: Regenerated.
-       * generated/minloc0_16_i16.c: Regenerated.
-       * generated/minloc0_16_r4.c: Regenerated.
-       * generated/minloc0_16_r8.c: Regenerated.
-       * generated/minloc0_16_r10.c: Regenerated.
-       * generated/minloc0_16_r16.c: Regenerated.
-
-2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
-
-       PR other/16615
-       * caf/single.c: Mechanically replace "can not" with "cannot".
-       * io/unit.c: Likewise.
-
-2019-01-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
-           Harald Anlauf <anlauf@gmx.de>
-           Tobias Burnus <burnus@gcc.gnu.org>
-
-       PR fortran/45424
-       * Makefile.am: Add intrinsics/is_contiguous.c.
-       * Makefile.in: Regenerated.
-       * gfortran.map: Add _gfortran_is_contiguous0.
-       * intrinsics/is_contiguous.c: New file.
-       * libgfortran.h: Add prototype for is_contiguous0.
+       PR libfortran/90374
+       * io/format.c (parse_format_list): Zero width not allowed with
+       FMT_D.
+       * io/write_float.def (build_float_string): Include range of
+       higher exponent values that require wider width.
 
-2019-01-07  Janne Blomqvist  <jb@gcc.gnu.org>
+2020-01-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
-       * gfortran.map (GFORTRAN_9): Make GFORTRAN_9 node depend on
-       GFORTRAN_8.
+       PR libfortran/90374
+       * io/format.c (parse_format_list): Implement the E0 exponent
+       width to provide smallest possible width for exponent fields.
+       Refactor code for correct parsing and better readability of the
+       code.
+       * io/io.h (write_real_w0): Change interface to pass in pointer
+       to fnode.
+       * io/transfer.c: Update all calls to write_real_w0 to use the
+       new interface.
+       * io/write.c ((write_real_w0): Use the new interface with fnode
+       to access both the decimal precision and exponent widths used in
+       build_float_string.
+       * io/write_float.def (build_float_string): Use the passed in
+       exponent width to calculate the used width in the case of E0.
 
-2019-01-01  Jakub Jelinek  <jakub@redhat.com>
+2020-01-01  Jakub Jelinek  <jakub@redhat.com>
 
        Update copyright years.
 \f
-Copyright (C) 2019 Free Software Foundation, Inc.
+Copyright (C) 2020 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright