]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/fortran/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
index 4828c7f0fbc7ec3753c8cd95d48b881754b7739c..69b337c64db0665119e43ca4790547d12e36c394 100644 (file)
@@ -1,3 +1,914 @@
+2020-11-17  Harald Anlauf  <anlauf@gmx.de>
+
+       * gfortran.texi: Fix description of GFC_RTCHECK_* to match actual
+       code.
+
+2020-11-16  Harald Anlauf  <anlauf@gmx.de>
+
+       * trans-intrinsic.c (gfc_conv_intrinsic_size): Generate runtime
+       checking code for status of argument.
+
+2020-11-13  Gergö Barany  <gergo@codesourcery.com>
+           Thomas Schwinge  <thomas@codesourcery.com>
+
+       * lang.opt (fopenacc-kernels): Add.
+
+2020-11-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * f95-lang.c (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST):
+       Define.
+       (gfc_init_builtin_functions): Add alloc_size and warn_unused_result
+       attributes to __builtin_GOMP_alloc.
+       * types.def (BT_PTRMODE): New primitive type.
+       (BT_FN_VOID_PTR_PTRMODE, BT_FN_PTR_SIZE_SIZE_PTRMODE): New function
+       types.
+
+2020-11-12  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/97782
+       * trans-openmp.c (gfc_trans_oacc_construct, gfc_trans_omp_parallel_do,
+       gfc_trans_omp_parallel_do_simd, gfc_trans_omp_parallel_sections,
+       gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
+       gfc_trans_omp_single, gfc_trans_omp_task, gfc_trans_omp_teams
+       gfc_trans_omp_target, gfc_trans_omp_target_data,
+       gfc_trans_omp_workshare): Use code->loc instead of input_location
+       when building the OMP_/OACC_ construct.
+
+2020-11-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/97768
+       * misc.c (gfc_typename): Use ex->value.character.length only if
+       ex->expr_type == EXPR_CONSTANT.  If ex->ts.deferred, print : instead
+       of length.  If ex->ts.u.cl && ex->ts.u.cl->length == NULL, print *
+       instead of length.  Otherwise if character length is non-constant,
+       print just CHARACTER or CHARACTER(KIND=N).
+
+2020-11-10  Tobias Burnus  <tobias@codesourcery.com>
+
+       * dump-parse-tree.c (show_omp_clauses): Handle new reduction enums.
+       * gfortran.h (OMP_LIST_REDUCTION_INSCAN, OMP_LIST_REDUCTION_TASK,
+       OMP_LIST_IN_REDUCTION, OMP_LIST_TASK_REDUCTION): Add enums.
+       * openmp.c (enum omp_mask1): Add OMP_CLAUSE_IN_REDUCTION
+       and OMP_CLAUSE_TASK_REDUCTION.
+       (gfc_match_omp_clause_reduction): Extend reduction handling;
+       moved from ...
+       (gfc_match_omp_clauses): ... here. Add calls to it.
+       (OMP_TASK_CLAUSES, OMP_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES):
+       Add OMP_CLAUSE_IN_REDUCTION.
+       (gfc_match_omp_taskgroup): Add task_reduction matching.
+       (resolve_omp_clauses): Update for new reduction clause changes;
+       remove removed nonmonotonic-schedule restrictions.
+       (gfc_resolve_omp_parallel_blocks): Add new enums to switch.
+       * trans-openmp.c (gfc_omp_clause_default_ctor,
+       gfc_trans_omp_reduction_list, gfc_trans_omp_clauses,
+       gfc_split_omp_clauses): Handle updated reduction clause.
+
+2020-11-10  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/95847
+       * trans-decl.c (gfc_get_symbol_decl): Do not (re)set the location
+       of an external procedure.
+       (build_entry_thunks, generate_coarray_init, create_main_function,
+       gfc_generate_function_code): Use fndecl's location in BIND_EXPR.
+
+2020-11-09  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/90111
+       * parse.c (case_decl): Move ST_OACC_ROUTINE and ST_OACC_DECLARE to ...
+       (case_omp_decl): ... here.
+       (verify_st_order): Update comment.
+
+2020-11-06  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * openmp.c (oacc_is_parallel, resolve_oacc_params_in_parallel):
+       Remove.
+       (resolve_oacc_loop_blocks): Don't call the former.
+
+2020-11-06  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.c (gfc_match_oacc_atomic): No longer accept 'update capture'.
+
+2020-11-06  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/97652
+       * module.c (mio_symbol): Fix symbol name for pdt_type.
+
+2020-11-03  Nathan Sidwell  <nathan@acm.org>
+
+       * cpp.c (gfc_cpp_add_dep): Only add dependency if we're recording
+       them.
+       (gfc_cpp_init): Likewise for target.
+
+2020-11-03  Tobias Burnus  <tobias@codesourcery.com>
+
+       * decl.c (ext_attr_list): Add EXT_ATTR_DEPRECATED.
+       * gfortran.h (ext_attr_id_t): Ditto.
+       * gfortran.texi (GCC$ ATTRIBUTES): Document it.
+       * resolve.c (resolve_variable, resolve_function,
+       resolve_call, resolve_values): Show -Wdeprecated-declarations warning.
+       * trans-decl.c (add_attributes_to_decl): Skip those
+       with no middle_end_name.
+
+2020-11-03  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR fortran/92793
+       * trans-openmp.c (gfc_trans_omp_clauses): More precise location
+       information for OpenACC 'gang', 'worker', 'vector' clauses with
+       argument.
+
+2020-11-02  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR fortran/92793
+       * trans.c (gfc_set_backend_locus): Use 'gfc_get_location'.
+       (gfc_restore_backend_locus): Adjust.
+
+2020-11-02  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/97655
+       * openmp.c (gfc_match_omp_atomic): Fix mem-order handling;
+       reject specifying update + capture together.
+
+2020-10-30  Tobias Burnus  <tobias@codesourcery.com>
+
+       * dump-parse-tree.c (show_omp_clauses): Handle atomic clauses.
+       (show_omp_node): Call it for atomic.
+       * gfortran.h (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_UNSET,
+       remove GFC_OMP_ATOMIC_SEQ_CST and GFC_OMP_ATOMIC_ACQ_REL.
+       (enum gfc_omp_memorder): Replace OMP_MEMORDER_LAST by
+       OMP_MEMORDER_UNSET, add OMP_MEMORDER_SEQ_CST/OMP_MEMORDER_RELAXED.
+       (gfc_omp_clauses): Add capture and atomic_op.
+       (gfc_code): remove omp_atomic.
+       * openmp.c (enum omp_mask1): Add atomic, capture, memorder clauses.
+       (gfc_match_omp_clauses): Match them.
+       (OMP_ATOMIC_CLAUSES): Add.
+       (gfc_match_omp_flush): Update for 'last' to 'unset' change.
+       (gfc_match_omp_oacc_atomic): Removed and placed content ..
+       (gfc_match_omp_atomic): ... here. Update for OpenMP 5 clauses.
+       (gfc_match_oacc_atomic): Match directly here.
+       (resolve_omp_atomic, gfc_resolve_omp_directive): Update.
+       * parse.c (parse_omp_oacc_atomic): Update for struct gfc_code changes.
+       * resolve.c (gfc_resolve_blocks): Update assert.
+       * st.c (gfc_free_statement): Also call for EXEC_O{ACC,MP}_ATOMIC.
+       * trans-openmp.c (gfc_trans_omp_atomic): Update.
+       (gfc_trans_omp_flush): Update for 'last' to 'unset' change.
+
+2020-10-30  Jan Hubicka  <jh@suse.cz>
+
+       * trans-types.c: Include alias.h
+       (gfc_get_array_type_bounds): Set typeless storage.
+
+2020-10-27  Harald Anlauf  <anlauf@gmx.de>
+
+       * resolve.c (gfc_impure_variable): A dummy argument with the VALUE
+       attribute may be redefined without making a procedure impure.
+
+2020-10-27  Richard Biener  <rguenther@suse.de>
+
+       * trans-array.c (gfc_get_descriptor_field): New helper.
+       (gfc_conv_descriptor_data_get): Use it - drop strange
+       REFERENCE_TYPE handling and make sure we don't trigger it.
+       (gfc_conv_descriptor_data_addr): Use gfc_get_descriptor_field.
+       (gfc_conv_descriptor_data_set): Likewise.
+       (gfc_conv_descriptor_offset): Likewise.
+       (gfc_conv_descriptor_dtype): Likewise.
+       (gfc_conv_descriptor_span): Likewise.
+       (gfc_get_descriptor_dimension): Likewise.
+       (gfc_conv_descriptor_token): Likewise.
+       (gfc_conv_descriptor_subfield): New helper.
+       (gfc_conv_descriptor_stride): Use it.
+       (gfc_conv_descriptor_lbound): Likewise.
+       (gfc_conv_descriptor_ubound): Likewise.
+
+2020-10-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/97454
+       * gfortran.h (gfc_symbol): Add pass_as_value flag.
+       (gfc_copy_formal_args_intr): Add optional argument
+       copy_type.
+       (gfc_get_intrinsic_function_symbol): Add prototype.
+       (gfc_find_intrinsic_symbol): Add prototype.
+       * intrinsic.c (gfc_get_intrinsic_function_symbol): New function.
+       (gfc_find_intrinsic_symbol): New function.
+       * symbol.c (gfc_copy_formal_args_intr): Add argument. Handle case
+       where the type needs to be copied from the actual argument.
+       * trans-intrinsic.c (remove_empty_actual_arguments): New function.
+       (specific_intrinsic_symbol): New function.
+       (gfc_conv_intrinsic_funcall): Use it.
+       (strip_kind_from_actual): Adjust so that the expression pointer
+       is set to NULL.
+       (gfc_conv_intrinsic_minmaxloc): Likewise.
+       (gfc_conv_intrinsic_minmaxval): Adjust removal of dim.
+       * trans-types.c (gfc_sym_type): If sym->pass_as_value is set, do
+       not pass by reference.
+
+2020-10-22  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.h (enum gfc_omp_memorder): Add.
+       (gfc_omp_clauses): Use it.
+       * openmp.c (gfc_match_omp_flush): Match memorder clauses.
+       * trans-openmp.c (gfc_trans_omp_flush): Handle them.
+       (gfc_trans_omp_directive): Update call.
+
+2020-10-21  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/45516
+       * class.c: Add _deallocate to the vtable documentation
+       comment.
+
+2020-10-16  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/95979
+       * expr.c (gfc_check_init_expr): Fix check of return code from
+       gfc_intrinsic_func_interface.
+       * intrinsic.c (gfc_intrinsic_func_interface): Add further attempt
+       of simplification of elemental intrinsics with array arguments.
+       * iresolve.c (gfc_resolve_index_func): Keep optional KIND argument
+       for simplification of elemental use of INDEX.
+
+2020-10-15  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       * trans-decl.c (gfc_build_builtin_function_decls): Fix the coarray fndecls.
+
+2020-10-14  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/97390
+       * scanner.c (load_line): Fix line-truncation warning for !$acc
+       and !gcc$ in free-form source code.
+
+2020-10-14  Steven G. Kargl  <kargl@gcc.gnu.org>
+           Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/95614
+       * decl.c (gfc_get_common): Use gfc_match_common_name instead
+       of match_common_name.
+       * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
+       of match_common_name.
+       * match.c : Rename match_common_name to gfc_match_common_name.
+       * match.c (gfc_match_common): Use gfc_match_common_name instead
+       of match_common_name.
+       * match.h : Rename match_common_name to gfc_match_common_name.
+       * resolve.c (resolve_common_vars): Check each symbol in a
+       common block has a global symbol.  If there is a global symbol
+       issue an error if the symbol type is a module or a program.
+
+2020-10-12  Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/96099
+       * decl.c (gfc_match_implicit): Check for numeric and logical
+       types.
+
+2020-10-07  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/47469
+       * trans-expr.c (arrayfunc_assign_needs_temporary): Tidy detection
+       of pointer and allocatable functions.
+
+2020-10-04  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/97272
+       * trans-intrinsic.c (strip_kind_from_actual): Helper function for
+       removal of KIND argument.
+       (gfc_conv_intrinsic_minmaxloc): Ignore KIND argument here, as it
+       is treated elsewhere.
+
+2020-10-02  Jan Hubicka  <hubicka@ucw.cz>
+
+       * trans-decl.c (gfc_build_library_function_decl_with_spec): Verify
+       fnspec.
+       (gfc_build_intrinsic_function_decls): Update fnspecs.
+       (gfc_build_builtin_function_decls): Update fnspecs.
+       * trans-io.c (gfc_build_io_library_fndecls): Update fnspecs.
+       * trans-types.c (create_fn_spec): Update fnspecs.
+
+2020-09-30  Jan Hubicka  <jh@suse.cz>
+
+       * trans-decl.c (gfc_build_intrinsic_function_decls): Add traling dots
+       to spec strings so they match the number of parameters; do not use
+       R and W for non-pointer parameters. Drop pointless specifier on
+       caf_stop_numeric and caf_get_team.
+
+2020-09-30  Jan Hubicka  <hubicka@ucw.cz>
+
+       * trans-io.c (gfc_build_io_library_fndecls): Add trailing dots so
+       length of spec string matches number of arguments.
+
+2020-09-30  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/97242
+       * expr.c (gfc_is_not_contiguous): Fix check.
+       (gfc_check_pointer_assign): Use it.
+
+2020-09-30  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/97045
+       * trans-array.c (gfc_conv_array_ref): Make sure that the class
+       decl is passed to build_array_ref in the case of unlimited
+       polymorphic entities.
+       * trans-expr.c (gfc_conv_derived_to_class): Ensure that array
+       refs do not preceed the _len component. Free the _len expr.
+       * trans-stmt.c (trans_associate_var): Reset 'need_len_assign'
+       for polymorphic scalars.
+       * trans.c (gfc_build_array_ref): When the vptr size is used for
+       span, multiply by the _len field of unlimited polymorphic
+       entities, when non-zero.
+
+2020-09-30  Tom de Vries  <tdevries@suse.de>
+
+       * f95-lang.c (gfc_init_builtin_functions):  Update
+       targetm.libc_has_function call.
+
+2020-09-28  Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       Revert:
+       2020-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
+                   Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/95614
+       * decl.c (gfc_get_common): Use gfc_match_common_name instead
+       of match_common_name.
+       * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
+       of match_common_name.
+       * match.c : Rename match_common_name to gfc_match_common_name.
+       * match.c (gfc_match_common): Use gfc_match_common_name instead
+       of match_common_name.
+       * match.h : Rename match_common_name to gfc_match_common_name.
+       * resolve.c (resolve_common_vars): Check each symbol in a
+       common block has a global symbol.  If there is a global symbol
+       issue an error if the symbol type is known as is not a common
+       block name.
+
+2020-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
+           Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/95614
+       * decl.c (gfc_get_common): Use gfc_match_common_name instead
+       of match_common_name.
+       * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
+       of match_common_name.
+       * match.c : Rename match_common_name to gfc_match_common_name.
+       * match.c (gfc_match_common): Use gfc_match_common_name instead
+       of match_common_name.
+       * match.h : Rename match_common_name to gfc_match_common_name.
+       * resolve.c (resolve_common_vars): Check each symbol in a
+       common block has a global symbol.  If there is a global symbol
+       issue an error if the symbol type is known as is not a common
+       block name.
+
+2020-09-24  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/96495
+       * trans-expr.c (gfc_conv_procedure_call): Take the deallocation
+       of allocatable result components of a scalar result outside the
+       scalarization loop. Find and use the stored result.
+
+2020-09-21  Harald Anlauf  <anlauf@gmx.de>
+           Paul Thomas   <pault@gcc.gnu.org>
+
+       * iresolve.c (gfc_resolve_mvbits): Remove unneeded conversion of
+       FROMPOS, LEN and TOPOS arguments to fit a C int.
+       * trans-intrinsic.c (gfc_conv_intrinsic_mvbits): Add inline
+       expansion of MVBITS intrinsic elemental subroutine and add code
+       for runtime argument checking.
+       (gfc_conv_intrinsic_subroutine): Recognise MVBITS intrinsic, but
+       defer handling to gfc_trans_call.
+       * trans-stmt.c (replace_ss):
+       (gfc_trans_call): Adjust to handle inline expansion, scalarization
+       of intrinsic subroutine MVBITS in gfc_conv_intrinsic_mvbits.
+       * trans.h (gfc_conv_intrinsic_mvbits): Add prototype for
+       gfc_conv_intrinsic_mvbits.
+
+2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * interface.c (gfc_compare_actual_formal): Add assertion after
+       main processing loop to silence maybe-uninitialized error.
+
+2020-09-19  Harald Anlauf  <anlauf@gmx.de>
+
+       * symbol.c (gfc_check_conflict): Allow ELEMENTAL RECURSIVE
+       procedure prefix for -std=f2018.
+
+2020-09-17  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/96041
+       PR fortran/93423
+       * decl.c (gfc_match_submod_proc): Avoid later double-free
+       in the error case.
+
+2020-09-16  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/97061
+       * trans-openmp.c (gfc_trans_omp_do): Handle simd with (last)private.
+
+2020-09-15  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/96668
+       * trans.h (gfc_omp_finish_clause): Add bool openacc arg.
+       * trans-openmp.c (gfc_omp_finish_clause): Ditto. Use
+       GOMP_MAP_ALWAYS_POINTER with PSET for pointers.
+       (gfc_trans_omp_clauses): Like the latter and also if the always
+       modifier is used.
+
+2020-09-09  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/95109
+       PR fortran/94690
+       * resolve.c (gfc_resolve_code): Also call
+       gfc_resolve_omp_parallel_blocks for 'distribute parallel do (simd)'.
+       * openmp.c (gfc_resolve_omp_parallel_blocks): Handle it.
+       (gfc_resolve_do_iterator): Remove special code for SIMD, which is
+       not needed.
+       * trans-openmp.c (gfc_trans_omp_target): For TARGET_PARALLEL_DO_SIMD,
+       call simd not do processing function.
+
+2020-09-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * intrinsic.texi: Fix description of FINDLOC result.
+
+2020-09-07  Harald Anlauf  <anlauf@gmx.de>
+
+       * trans-intrinsic.c (build_round_expr): Use temporary with
+       appropriate kind for conversion before rounding to nearest
+       integer when the result precision is 128 bits.
+
+2020-09-07  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/96896
+       * resolve.c (get_temp_from_expr): Also reset proc_pointer +
+       use_assoc attribute.
+       (resolve_ptr_fcn_assign): Use information from the LHS.
+
+2020-09-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * trans-types.c (gfc_get_derived_type): Fix argument types.
+
+2020-09-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * resolve.c (resolve_select_type): Provide a formal arg list.
+
+2020-09-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * trans-types.c (gfc_get_ppc_type): Add comment.
+
+2020-09-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * trans-types.c (gfc_get_ppc_type): Fix function arg types.
+
+2020-09-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/96947
+       * trans-stmt.c (gfc_trans_fail_image): caf_fail_image
+       expects no argument.
+
+2020-09-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/96859
+       * check.c (gfc_boz2real, gfc_boz2int): When clearing first two bits,
+       change also '2' to '0' and '3' to '1' rather than just handling '4'
+       through '7'.
+
+2020-09-01  Steven G. Kargl  <kargl@gcc.gnu.org>
+           Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/95398
+       * resolve.c (resolve_select_type): Add check for BT_CLASS
+       type before using the CLASS_DATA macro which will have a
+       NULL pointer to derive components if it isn't BT_CLASS.
+
+2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+
+       PR fortran/96728
+       * module.c (module_peek_char): Peek ahead function.
+       (parse_integer): Add code for parsing signed integers.
+       (parse_atom): Add code to handle signed integers.
+       (peek_atom): Add code to handle signed integers.
+
+2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+
+       PR fortran/96727
+       * expr.c (gfc_check_init_expr): Add default error message for the AS_ASSUMED_RANK case.
+
+2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+
+       PR fortran/96726
+       * expr.c (check_references): Change different relational operator
+       to less-than operator to avoid infinite loop.
+
+2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+
+       PR fortran/95352
+       * simplify.c (simplify_bound_dim): Add check for NULL pointer
+       before trying to access structure member.
+
+2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+
+       PR fortran/94110
+       * interface.c (gfc_compare_actual_formal): Add code to also raise
+       the actual argument cannot be an assumed-size array error when the
+       dummy arguments are deferred-shape or assumed-rank pointer.
+
+2020-08-28  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/94672
+       * trans-array.c (gfc_trans_g77_array): Check against the parm decl and
+       set the nonparm decl used for the is-present check to NULL if absent.
+
+2020-08-28  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/96624
+       * simplify.c (gfc_simplify_reshape): Detect zero shape and
+       clear index if found.
+
+2020-08-27  Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/95882
+       * decl.c (char_len_param_value): Check gfc_seen_div0 and
+       if it is set return MATCH_ERROR.
+
+2020-08-27  Martin Liska  <mliska@suse.cz>
+
+       * trans-openmp.c (gfc_trans_omp_do): Set exact argument of a vector
+       growth function to true.
+
+2020-08-26  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.h (enum gfc_omp_device_type): New.
+       (symbol_attribute, gfc_omp_clauses, gfc_common_head): Use it.
+       * module.c (enum ab_attribute): Add AB_OMP_DEVICE_TYPE_HOST,
+       AB_OMP_DEVICE_TYPE_NOHOST and AB_OMP_DEVICE_TYPE_ANY.
+       (attr_bits, mio_symbol_attribute): Handle it.
+       (load_commons, write_common_0): Handle omp_device_type flag.
+       * openmp.c (enum omp_mask1): Add OMP_CLAUSE_DEVICE_TYPE
+       (OMP_DECLARE_TARGET_CLAUSES): Likewise.
+       (gfc_match_omp_clauses): Match 'device_type'.
+       (gfc_match_omp_declare_target): Handle it.
+       * trans-common.c (build_common_decl): Write device-type clause.
+       * trans-decl.c (add_attributes_to_decl): Likewise.
+
+2020-08-23  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/96737
+       * trans-types.c (gfc_get_derived_type): Derived types that are
+       used in submodules are not compatible with TYPE_CANONICAL from
+       any of the global namespaces.
+
+2020-08-20  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/96100
+       PR fortran/96101
+       * trans-array.c (get_array_charlen): Tidy up the evaluation of
+       the string length for array constructors. Avoid trailing array
+       references. Ensure string lengths of deferred length components
+       are set. For parentheses operator apply string  length to both
+       the primary expression and the enclosed expression.
+
+2020-08-20  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       PR fortran/94958
+       * trans-array.c (gfc_bcast_alloc_comp): Use the correct variable.
+
+2020-08-20  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.c (gfc_match_omp_clauses): Re-order 'if' clause pasing
+       to avoid creating spurious symbols.
+
+2020-08-18  Harald Anlauf  <anlauf@gmx.de>
+
+       * check.c (check_rest): Reject MIN/MAX character arguments of
+       different kind.
+       * simplify.c (min_max_choose): The simplification result shall
+       have the highest kind value of the arguments.
+       * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Choose type and
+       kind of intermediate by looking at all arguments, not the result.
+
+2020-08-17  Martin Liska  <mliska@suse.cz>
+
+       * openmp.c (resolve_omp_clauses): Add static assert
+       for OMP_LIST_NUM and size of clause_names array.
+       Remove check that is always true.
+
+2020-08-17  Martin Liska  <mliska@suse.cz>
+
+       * openmp.c (resolve_omp_clauses): Add NONTEMPORAL to clause
+       names.
+
+2020-08-13  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       PR fortran/93671
+       * trans-array.c (structure_alloc_comps): Keep caf-mode when applying to
+       components; get the caf_token correctly for allocated scalar components.
+
+2020-08-13  Matthew Krupcale  <mkrupcale@matthewkrupcale.com>
+
+       PR fortran/96595
+       * invoke.texi: Fix typos.
+
+2020-08-12  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.h: Add OMP_LIST_NONTEMPORAL.
+       * dump-parse-tree.c (show_omp_clauses): Dump it
+       * openmp.c (enum omp_mask1): Add OMP_CLAUSE_NOTEMPORAL.
+       (OMP_SIMD_CLAUSES): Add it.
+       (gfc_match_omp_clauses): Match nontemporal clause.
+       * trans-openmp.c (gfc_trans_omp_clauses): Process
+       nontemporal clause.
+
+2020-08-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/96556
+       * frontend-passes.c (doloop_contained_function_call):
+       Do not dereference a NULL pointer for value.function.esym.
+
+2020-08-10  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/96312
+       * trans-expr.c (fcncall_realloc_result): Only compare shapes if
+       lhs was allocated..
+
+2020-08-10  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/96102
+       * resolve.c (check_host_association): Replace the gcc_assert
+       with an error for internal procedures.
+
+2020-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/96469
+       * frontend-passes.c (doloop_contained_function_call): New
+       function.
+       (doloop_contained_procedure_code): New function.
+       (CHECK_INQ): Macro for inquire checks.
+       (doloop_code): Invoke doloop_contained_procedure_code and
+       doloop_contained_function_call if appropriate.
+       (do_intent): Likewise.
+
+2020-08-04  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.c (resolve_omp_do): Detect not perfectly
+       nested loop with innermost collapse.
+
+2020-08-04  Tobias Burnus  <tobias@codesourcery.com>
+
+       * trans-openmp.c (gfc_trans_omp_do): Fix 'lastprivate(conditional:'.
+
+2020-08-03  Julian Brown  <julian@codesourcery.com>
+           Thomas Schwinge  <thomas@codesourcery.com>
+
+       * trans-openmp.c (gfc_trans_omp_clauses): Don't create present/release
+       mappings for array descriptors.
+
+2020-08-03  Martin Jambor  <mjambor@suse.cz>
+
+       * f95-lang.c (gfc_init_builtin_functions): Remove processing of
+       hsa-builtins.def.
+
+2020-08-03  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfc-internals.texi: Fix typos.
+       * gfortran.texi: Likewise.
+       * intrinsic.texi: Likewise.
+       * invoke.texi: Likewise.
+
+2020-08-02  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR target/96320
+       * interface.c (gfc_check_dummy_characteristics): If a module
+       procedure arrives with assumed shape in the interface and
+       deferred shape in the procedure itself, update the latter and
+       copy the lower bounds.
+
+2020-08-02  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/96325
+       * primary.c (gfc_match_varspec): In the case that a component
+       reference is added to an intrinsic type component, emit the
+       error message in this function.
+
+2020-07-29  Tobias Burnus  <tobias@codesourcery.com>
+
+       * dump-parse-tree.c (show_omp_clauses): Handle order(concurrent).
+       * gfortran.h (struct gfc_omp_clauses): Add order_concurrent.
+       * openmp.c (enum omp_mask1, OMP_DO_CLAUSES, OMP_SIMD_CLAUSES):
+       Add OMP_CLAUSE_ORDER.
+       * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
+       Handle order(concurrent) clause.
+
+2020-07-29  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.c (resolve_omp_clauses): Permit 'omp target data' without
+       map if use_device_{addr,ptr} is present.
+
+2020-07-29  Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/96319
+       * intrinsic.c (gfc_convert_type_warn):  Add check for
+       LOGICAL type so that warnings are not output.
+
+2020-07-29  Tobias Burnus  <tobias@codesourcery.com>
+
+       * module.c (mio_symbol_attribute): Fix indent of previous
+       commit.
+
+2020-07-29  Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/53298
+       * trans-array.c (gfc_walk_array_ref): If ref->ss.end is set
+       call gfc_get_scalar_ss.
+
+2020-07-29  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.h (enum gfc_statement): Add ST_OMP_REQUIRES.
+       (enum gfc_omp_requires_kind): New.
+       (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_ACQ_REL.
+       (struct gfc_namespace): Add omp_requires and omp_target_seen.
+       (gfc_omp_requires_add_clause,
+       (gfc_check_omp_requires): New.
+       * match.h (gfc_match_omp_requires): New.
+       * module.c (enum ab_attribute, attr_bits): Add omp requires clauses.
+       (mio_symbol_attribute): Read/write them.
+       * openmp.c (gfc_check_omp_requires, (gfc_omp_requires_add_clause,
+       gfc_match_omp_requires): New.
+       (gfc_match_omp_oacc_atomic): Use requires's default mem-order.
+       * parse.c (decode_omp_directive): Match requires, set omp_target_seen.
+       (gfc_ascii_statement): Handle ST_OMP_REQUIRES.
+       * trans-openmp.c (gfc_trans_omp_atomic): Handle GFC_OMP_ATOMIC_ACQ_REL.
+
+2020-07-27  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.c (gfc_resolve_omp_directive): Remove NULL check
+       for clauses in EXEC_OMP_CRITICAL as it no longer can be NULL.
+
+2020-07-23  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.h (gfc_omp_namelist): Add lastprivate_conditional.
+       * openmp.c (gfc_match_omp_clauses): Handle 'conditional:'
+       modifier of 'lastprivate'.
+       * trans-openmp.c (gfc_omp_clause_default_ctor): Don't assert
+       on OMP_CLAUSE__CONDTEMP_ and other OMP_*TEMP_.
+       (gfc_trans_omp_variable_list): Handle lastprivate_conditional.
+
+2020-07-23  Tobias Burnus  <tobias@codesourcery.com>
+
+       * intrinsic.texi (OMP_LIB_KINDS): Add omp_depend_kind.
+
+2020-07-23  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.texi (Standards): Update URL; state that OpenMP 4.5
+       is supported and 5.0 is partially.
+       * intrinsic.texi (OpenMP Modules): Refer also to OpenMP 5.0;
+       (OMP_LIB): Add missing derived type and new named constants.
+
+2020-07-22  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.h (enum gfc_omp_if_kind): Add OMP_IF_CANCEL and OMP_IF_SIMD.
+       * openmp.c (OMP_SIMD_CLAUSES): Add OMP_CLAUSE_IF.
+       (gfc_match_omp_clauses, resolve_omp_clauses): Handle 'if (simd/cancel:'.
+       * dump-parse-tree.c (show_omp_clauses): Likewise.
+       * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_cancel,
+       (gfc_split_omp_clauses): Likewise.
+
+2020-07-22  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.c (gfc_match_omp_critical): Fix handling hints; permit
+       hint clause without named critical.
+       (resolve_omp_clauses): Require nonnegative constant integer
+       for the hint clause.
+       (gfc_resolve_omp_directive): Check for no name but
+       nonzero value for hint clause.
+       * parse.c (parse_omp_structured_block): Fix same-name check
+       for critical.
+       * trans-openmp.c (gfc_trans_omp_critical): Handle hint clause properly.
+
+2020-07-21  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/89574
+       * trans-decl.c (gfc_get_extern_function_decl): Check whether a
+       symbol belongs to a different module.
+
+2020-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/96220
+       * dump-parse-tree.c (get_c_type_name): Always use the entries from
+       c_interop_kinds_table to find the correct C type.
+
+2020-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/96018
+       * frontend-passes.c (gfc_check_externals): Adjust formatting.
+       (implicit_pure_call): New function.
+       (implicit_pure_expr): New function.
+       (gfc_fix_implicit_pure): New function.
+       * gfortran.h (gfc_fix_implicit_pure): New prototype.
+       * parse.c (translate_all_program_units): Call gfc_fix_implicit_pure.
+
+2020-07-18  David Edelsohn  <dje.gcc@gmail.com>
+
+       * check.c (gfc_invalid_boz): Mark hint for translation using _().
+
+2020-07-16  Julian Brown  <julian@codesourcery.com>
+           Thomas Schwinge  <thomas@codesourcery.com>
+
+       * trans-openmp.c (gfc_trans_omp_clauses): Rework OpenACC
+       attach/detach handling for arrays with descriptors.
+
+2020-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>
+           Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/95612
+       * expr.c (gfc_check_pointer_assigb): Output an error if
+       rvalue is a zero sized array or output an error if rvalue
+       doesn't have a symbol tree.
+
+2020-07-14  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.c (gfc_match_omp_clauses): Match also derived-type
+       component refs in OMP_CLAUSE_MAP.
+       (resolve_omp_clauses): Resolve those.
+       * trans-openmp.c (gfc_trans_omp_array_section, gfc_trans_omp_clauses):
+       Handle OpenMP structure-element mapping.
+       (gfc_trans_oacc_construct, gfc_trans_oacc_executable_directive,
+       (gfc_trans_oacc_combined_directive, gfc_trans_oacc_declare): Update
+       add openacc=true in gfc_trans_omp_clauses call.
+
+2020-07-14  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/67311
+       * trans-openmp.c (gfc_has_alloc_comps): Return false also for
+       pointers to arrays.
+
+2020-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>
+           Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/96038
+       * decl.c (add_init_expr_sym):  For a symbol that is a
+       parameter accept an initialisation if it does not have a
+       value otherwise output a error and reject.
+
+2020-07-13  Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/45337
+       * resolve.c (resolve_fl_variable): Remove type and intent
+       checks from the check for dummy.
+
+2020-07-13  Steven G. Kargl  <kargl@gcc.gnu.org>
+           Mark Eggleston  <markeggleston@gcc.gnu.org>
+
+       PR fortran/95981
+       * check.c (dim_rank_check): Allow NULL references in call to
+       gfc_find_array_ref and return false if no reference is found.
+
+2020-07-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/96073
+       * frontend-passes.c (check_externals_procedure):  Add locus
+       information for new_sym.
+       * interface.c (gfc_check_dummy_characteristics): Do not warn
+       about INTENT for artificially generated variables.
+
+2020-07-10  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/95980
+       * class.c (gfc_add_component_ref, gfc_build_class_symbol):
+       Add checks for NULL pointer dereference.
+       * primary.c (gfc_variable_attr): Likewise.
+       * resolve.c (resolve_variable, resolve_assoc_var)
+       (resolve_fl_var_and_proc, resolve_fl_variable_derived)
+       (resolve_symbol): Likewise.
+
+2020-07-10  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/96086
+       * match.c (gfc_match_select_rank): Catch NULL pointer
+       dereference.
+       * resolve.c (resolve_assoc_var): Catch NULL pointer dereference
+       that may occur after an illegal declaration.
+
+2020-07-09  Julian Brown  <julian@codesourcery.com>
+
+       * trans-openmp.c (gfc_trans_omp_clauses): Use 'inner' not 'decl' for
+       derived type members which themselves have derived types.
+
+2020-07-08  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/96085
+       * resolve.c (gfc_resolve_code): Check whether assign target is a
+       parameter.
+
+2020-07-06  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/95980
+       * match.c (copy_ts_from_selector_to_associate, build_class_sym):
+       Distinguish between unlimited polymorphic and ordinary variables
+       to avoid NULL pointer dereference.
+       * resolve.c (resolve_select_type):
+       Distinguish between unlimited polymorphic and ordinary variables
+       to avoid NULL pointer dereference.
+
+2020-07-06  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/95709
+       * resolve.c (gfc_resolve_code): Check for valid arguments to
+       assigned GOTO.
+
 2020-07-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/27318