]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/fortran/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
index bed68444aff9f4720a187fcba8cee33f8514ef64..144a2cc839d1c3de38f7179b77734d160c964493 100644 (file)
+2023-10-04  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37336
+       PR fortran/111674
+       * trans-expr.cc (gfc_trans_scalar_assign): Finalize components
+       on deallocation if derived type is not finalizable.
+
+2023-10-03  David Malcolm  <dmalcolm@redhat.com>
+
+       * error.cc (gfc_format_decoder): Update for "m_" prefixes to
+       text_info fields.
+
+2023-10-02  David Malcolm  <dmalcolm@redhat.com>
+
+       * error.cc (gfc_diagnostics_init): Update for change to start_span.
+
+2023-10-02  David Malcolm  <dmalcolm@redhat.com>
+
+       * error.cc (gfc_diagnostic_starter): Update for reorganization of
+       source-printing fields of diagnostic_context.
+       (gfc_diagnostics_init): Likewise.
+       (gfc_diagnostics_finish): Likewise.
+
+2023-09-29  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       PR fortran/37336
+       * trans-array.cc (structure_alloc_comps): Deref coarray.
+       (gfc_trans_deferred_array): Add freeing of components after
+       check for allocated coarray.
+
+2023-09-24  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/68155
+       PR fortran/111271
+       * decl.cc (fix_initializer_charlen): New function broken out of
+       add_init_expr_to_sym.
+       (add_init_expr_to_sym, build_struct): Call the new function.
+       * trans-expr.cc (gfc_conv_intrinsic_to_class): Remove repeated
+       condition.
+
+2023-09-23  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/95710
+       * class.cc (gfc_build_class_symbol): Do not try to build class
+       container for invalid typespec.
+       * resolve.cc (resolve_fl_var_and_proc): Prevent NULL pointer
+       dereference.
+       (resolve_symbol): Likewise.
+
+2023-09-19  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/70231
+       * trans-array.cc (trans_array_constructor): In absence of a typespec,
+       use string length determined by get_array_ctor_strlen() to reasonably
+       initialize auxiliary variable for bounds-checking.
+
+2023-09-15  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/30802
+       * trans-array.cc (trans_array_bound_check): Add optional argument
+       COMPNAME for explicit specification of array component name.
+       (array_bound_check_elemental): Helper function for generating
+       bounds-checking code for elemental dimensions.
+       (gfc_conv_expr_descriptor): Use bounds-checking also for elemental
+       dimensions, i.e. those not handled by the scalarizer.
+
+2023-09-15  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/108957
+       * gfortran.h (gfc_symbol): Add comment documenting reference counting.
+       * parse.cc (parse_interface): Remove reference count incrementation.
+
+2023-09-12  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/110996
+       * gfortran.h (gfc_release_symbol): Set return type to bool.
+       * symbol.cc (gfc_release_symbol): Ditto.  Return whether symbol was
+       freed.
+       (delete_symbol_from_ns): New, outline code from...
+       (gfc_restore_last_undo_checkpoint): ... here.  Delete new symbols
+       from two more namespaces.
+
+2023-09-09  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * bbt.cc (delete_treap): Add argument REMOVED, set it to the removed
+       element from the tree.  Change NULL to nullptr.
+       (gfc_delete_bbt): Return the removed element from the tree.
+       * gfortran.h (gfc_delete_symtree): Remove prototype.
+       (gfc_delete_bbt): Set return type to pointer.
+       * symbol.cc (gfc_delete_symtree): Make static.  Get the element to be
+       freed from the result of gfc_delete_bbt.  Remove the preliminary walk to
+       get it.
+
+2023-09-01  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/31059
+       * trans-array.cc (gfc_conv_ss_startstride): For array bounds checking,
+       consider also array constructors in expressions, and use their shape.
+
+2023-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * gfortran.texi: Likewise.
+
+2023-08-30  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/48776
+       * gfortran.h (gfc_drop_interface_elements_before): New prototype.
+       (gfc_current_interface_head): Return a reference to the pointer.
+       * interface.cc (gfc_current_interface_head): Ditto.
+       (free_interface_elements_until): New function, generalizing
+       gfc_free_interface.
+       (gfc_free_interface): Use free_interface_elements_until.
+       (gfc_drop_interface_elements_before): New function.
+       * parse.cc
+       (current_interface_ptr, previous_interface_head): New static variables.
+       (current_interface_valid_p, get_current_interface_ptr): New functions.
+       (decode_statement): Initialize previous_interface_head.
+       (reject_statement): Restore current interface pointer to point to
+       previous_interface_head.
+
+2023-08-26  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/92586
+       * trans-expr.cc (gfc_trans_arrayfunc_assign): Supply a missing
+       dereference for the call to gfc_deallocate_alloc_comp_no_caf.
+
+2023-08-25  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * gfortran.h (struct gfc_namespace): Add omp_structured_block bit.
+       * openmp.cc: Include omp-api.h.
+       (resolve_omp_clauses): Consolidate inscan reduction clause conflict
+       checking here.
+       (find_nested_loop_in_chain): New.
+       (find_nested_loop_in_block): New.
+       (gfc_resolve_omp_do_blocks): Set omp_current_do_collapse properly.
+       Handle imperfectly-nested loops when looking for nested omp scan.
+       Refactor to move inscan reduction clause conflict checking to
+       resolve_omp_clauses.
+       (gfc_resolve_do_iterator): Handle imperfectly-nested loops.
+       (struct icode_error_state): New.
+       (icode_code_error_callback): New.
+       (icode_expr_error_callback): New.
+       (diagnose_intervening_code_errors_1): New.
+       (diagnose_intervening_code_errors): New.
+       (make_structured_block): New.
+       (restructure_intervening_code): New.
+       (is_outer_iteration_variable): Do not assume loops are perfectly
+       nested.
+       (check_nested_loop_in_chain): New.
+       (check_nested_loop_in_block_state): New.
+       (check_nested_loop_in_block_symbol): New.
+       (check_nested_loop_in_block): New.
+       (expr_uses_intervening_var): New.
+       (is_intervening_var): New.
+       (expr_is_invariant): Do not assume loops are perfectly nested.
+       (resolve_omp_do): Handle imperfectly-nested loops.
+       * trans-stmt.cc (gfc_trans_block_construct): Generate
+       OMP_STRUCTURED_BLOCK if magic bit is set on block namespace.
+
+2023-08-25  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/35095
+       * data.cc (get_array_index): Add bounds-checking code and return error
+       status.  Overindexing will be allowed as an extension for -std=legacy
+       and generate an error in standard-conforming mode.
+       (gfc_assign_data_value): Use error status from get_array_index for
+       graceful error recovery.
+
+2023-08-25  Uros Bizjak  <ubizjak@gmail.com>
+
+       * match.cc (gfc_match_equivalence): Rename TRUE/FALSE to true/false.
+       * module.cc (check_access): Ditto.
+       * primary.cc (match_real_constant): Ditto.
+       * trans-array.cc (gfc_trans_allocate_array_storage): Ditto.
+       (get_array_ctor_strlen): Ditto.
+       * trans-common.cc (find_equivalence): Ditto.
+       (add_equivalences): Ditto.
+
+2023-08-23  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/32986
+       * resolve.cc (is_non_constant_shape_array): Add forward declaration.
+       (resolve_common_vars): Diagnose automatic array object in COMMON.
+       (resolve_symbol): Prevent confusing follow-on error.
+
+2023-08-22  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.h (enum gfc_omp_defaultmap_category):
+       Add OMP_DEFAULTMAP_CAT_ALL.
+       * openmp.cc (gfc_match_omp_clauses): Parse
+       'all' as category.
+       * trans-openmp.cc (gfc_trans_omp_clauses): Handle it.
+
+2023-08-22  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/49588
+       * data.cc (gfc_advance_section): Derive next index set and next offset
+       into DATA variable also for array references using vector sections.
+       Use auxiliary array to keep track of offsets into indexing vectors.
+       (gfc_get_section_index): Set up initial indices also for DATA variables
+       with array references using vector sections.
+       * data.h (gfc_get_section_index): Adjust prototype.
+       (gfc_advance_section): Likewise.
+       * resolve.cc (check_data_variable): Pass vector offsets.
+
+2023-08-16  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110360
+       * trans-expr.cc (conv_scalar_char_value): Use gfc_replace_expr to
+       avoid leaking replaced gfc_expr.
+
+2023-08-15  Martin Jambor  <mjambor@suse.cz>
+           Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110677
+       * resolve.cc (resolve_structure_cons): Check comp->ts is character
+       type before accessing stuff through comp->ts.u.cl.
+
+2023-08-15  Chung-Lin Tang  <cltang@codesourcery.com>
+           Thomas Schwinge  <thomas@codesourcery.com>
+
+       * openmp.cc (OACC_DATA_CLAUSES): Add OMP_CLAUSE_DEFAULT.
+
+2023-08-14  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/110360
+       PR fortran/110419
+       * trans-types.cc (gfc_sym_type): Use a bare character type for length
+       one value character dummy arguments.
+       * trans-expr.cc (gfc_conv_string_parameter): Handle single character
+       case.
+       (gfc_conv_procedure_call): Don't exclude interoperable kinds
+       from single character handling.  For single character dummy arguments,
+       extend the existing handling of non-constant expressions to constant
+       expressions.
+
+2023-08-14  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * gfortran.h (gfc_length_one_character_type_p): New inline
+       function.
+       * check.cc (is_c_interoperable): Use
+       gfc_length_one_character_type_p.
+       * decl.cc (verify_bind_c_sym): Same.
+       * trans-expr.cc (gfc_conv_procedure_call): Same.
+
+2023-08-09  Steve Kargl  <sgk@troutmask.apl.washington.edu>
+
+       PR fortran/109684
+       * resolve.cc (resolve_types): Exclude contained procedures with
+       the artificial attribute from test for pureness.
+
+2023-07-31  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * openmp.cc (resolve_omp_clauses): Add checking requiring
+       OpenACC host_data construct to have an use_device clause.
+
+2023-07-28  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110825
+       * gfortran.texi: Clarify argument passing convention.
+       * trans-expr.cc (gfc_conv_procedure_call): Do not pass the character
+       length as hidden argument when the declared dummy argument is
+       assumed-type.
+
+2023-07-27  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.cc (resolve_omp_target): Minor cleanup.
+       * parse.cc (decode_omp_directive): Find TARGET statement
+       also higher in the stack.
+
+2023-07-26  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/68569
+       * resolve.cc (check_data_variable): Do not accept strings with
+       deferred length or non-constant length in a DATA statement.
+       Reject also substrings of string variables of non-constant length.
+
+2023-07-25  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/110725
+       PR middle-end/71065
+       * gfortran.h (gfc_omp_clauses): Add target_first_st_is_teams.
+       * parse.cc (parse_omp_structured_block): Set it if the first
+       statement in the structured block of a TARGET is TEAMS or
+       a combined/composite starting with TEAMS.
+       * openmp.cc (resolve_omp_target): Also show an error for
+       contains_teams_construct without target_first_st_is_teams.
+
+2023-07-24  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/110725
+       PR middle-end/71065
+       * gfortran.h (gfc_omp_clauses): Add contains_teams_construct.
+       * openmp.cc (resolve_omp_target): New; check for teams nesting.
+       (gfc_resolve_omp_directive): Call it.
+       * parse.cc (decode_omp_directive): Set contains_teams_construct
+       on enclosing ST_OMP_TARGET.
+
+2023-07-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): Only
+       define it once.
+
+2023-07-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * f95-lang.cc (gfc_init_builtin_functions): Add __builtin_iseqsig.
+       * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): New
+       function.
+       (gfc_conv_ieee_arithmetic_function): Handle IEEE comparisons.
+
+2023-07-19  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR fortran/107424
+       * trans-openmp.cc (gfc_nonrect_loop_expr): Accept all
+       constant loop steps.
+       (gfc_trans_omp_do): Likewise; use sign to determine
+       loop direction.
+
+2023-07-17  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/95947
+       PR fortran/110658
+       * trans-expr.cc (gfc_conv_procedure_call): For intrinsic procedures
+       whose result characteristics depends on the first argument and which
+       can be of type character, the character length will not be deferred.
+
+2023-07-17  Tobias Burnus  <tobias@codesoucery.com>
+           Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * dump-parse-tree.cc (show_omp_namelist, show_omp_clauses): Dump
+       uses_allocators clause.
+       * gfortran.h (gfc_free_omp_namelist): Add memspace_sym to u union
+       and traits_sym to u2 union.
+       (OMP_LIST_USES_ALLOCATORS): New enum value.
+       (gfc_free_omp_namelist): Add 'bool free_mem_traits_space' arg.
+       * match.cc (gfc_free_omp_namelist): Likewise.
+       * openmp.cc (gfc_free_omp_clauses, gfc_match_omp_variable_list,
+       gfc_match_omp_to_link, gfc_match_omp_doacross_sink,
+       gfc_match_omp_clause_reduction, gfc_match_omp_allocate,
+       gfc_match_omp_flush): Update call.
+       (gfc_match_omp_clauses): Likewise. Parse uses_allocators clause.
+       (gfc_match_omp_clause_uses_allocators): New.
+       (enum omp_mask2): Add new OMP_CLAUSE_USES_ALLOCATORS.
+       (OMP_TARGET_CLAUSES): Accept it.
+       (resolve_omp_clauses): Resolve uses_allocators clause
+       * st.cc (gfc_free_statement): Update gfc_free_omp_namelist call.
+       * trans-openmp.cc (gfc_trans_omp_clauses): Handle
+       OMP_LIST_USES_ALLOCATORS; fail with sorry unless predefined allocator.
+       (gfc_split_omp_clauses): Handle uses_allocators.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/110618
+       * trans.h (gfc_deallocate_with_status): Add class container
+       argument.
+       (gfc_deallocate_scalar_with_status): Ditto.
+       * trans.cc (gfc_deallocate_with_status): Add class container
+       argument and pass it down to gfc_add_finalize_call.
+       (gfc_deallocate_scalar_with_status): Same.
+       * trans-array.cc (structure_alloc_comps): Update caller.
+       * trans-stmt.cc (gfc_trans_deallocate): Ditto.
+       * trans-expr.cc (gfc_conv_procedure_call): Ditto.  Pass
+       pre-evaluated class container argument if it's available.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/110618
+       * trans.h (gfc_add_finalizer_call): Add class container argument.
+       * trans.cc (gfc_add_finalizer_call): Ditto.  Pass down new
+       argument to get_final_proc_ref, get_elem_size, get_var_desc,
+       and get_vptr.
+       (get_elem_size): Add class container argument.
+       Use provided class container if it's available.
+       (get_var_descr): Same.
+       (get_vptr): Same.
+       (get_final_proc_ref): Same.  Add boolean telling the class
+       container argument is used.  Set it.  Don't try to use
+       final_wrapper if class container argument was used.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (get_var_descr): Factor scalar descriptor generation.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (get_vptr): New function.
+       (gfc_add_finalizer_call): Move virtual table pointer evaluation
+       to get_vptr.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (get_var_descr): Remove argument ts.  Use var->ts
+       instead.
+       (gfc_add_finalizer_call): Update caller.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (gfc_add_finalizer_call): Inline definition of
+       variable has_finalizer.  Merge nested conditions.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (gfc_add_finalizer_call): Remove local variable
+       final_expr.  Pass down expr to get_final_proc_ref and move
+       final procedure expression generation down to its one usage
+       in get_final_proc_ref.
+       (get_final_proc_ref): Add argument expr.  Remove argument
+       final_wrapper.  Recreate final_wrapper from expr.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (gfc_add_finalizer_call): Remove local variable
+       elem_size.  Pass expression to get_elem_size and move the
+       element size expression generation close to its usage there.
+       (get_elem_size): Add argument expr, remove class_size argument
+       and rebuild it from expr.  Remove ts argument and use the
+       type of expr instead.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (gfc_add_finalizer_call): Move pre and post code for
+       the final procedure pointer expression to the outer block.
+       Reuse the previously evaluated final procedure pointer
+       expression.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (gfc_add_finalizer_call): Add post code for desc_se
+       after the finalizer call.  Add post code for final_se and
+       size_se as well.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (gfc_build_final_call): Inline...
+       (gfc_add_finalizer_call): ... to its one caller.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (get_var_descr): New function.
+       (gfc_build_final_call): Outline the data reference descriptor
+       evaluation code to get_var_descr.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (get_elem_size): New function.
+       (gfc_build_final_call): Outline the element size evaluation
+       to get_elem_size.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (get_final_proc_ref): New function.
+       (gfc_build_final_call): Outline the pointer evaluation code
+       to get_final_proc_ref.
+
+2023-07-17  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.cc (gfc_build_final_call): Remove commented assertion.
+
+2023-07-14  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/92178
+       * trans.h (gfc_reset_vptr): Add class_container argument.
+       * trans-expr.cc (gfc_reset_vptr): Ditto.  If a valid vptr can
+       be obtained through class_container argument, bypass evaluation
+       of e.
+       (gfc_conv_procedure_call):  Wrap the argument evaluation code
+       in a conditional if the associated dummy is optional.  Evaluate
+       the data reference to a pointer now, and replace later
+       references with usage of the pointer.
+
+2023-07-14  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/92178
+       * trans.h (struct gfc_se): New field class_container.
+       (struct gfc_ss_info): Ditto.
+       (gfc_evaluate_data_ref_now): New prototype.
+       * trans.cc (gfc_evaluate_data_ref_now):  Implement it.
+       * trans-array.cc (gfc_conv_ss_descriptor): Copy class_container
+       field from gfc_se struct to gfc_ss_info struct.
+       (gfc_conv_expr_descriptor): Copy class_container field from
+       gfc_ss_info struct to gfc_se struct.
+       * trans-expr.cc (gfc_conv_class_to_class): Use class container
+       set in class_container field if available.
+       (gfc_conv_variable): Set class_container field on encountering
+       class variables or components, clear it on encountering
+       non-class components.
+       (gfc_conv_procedure_call): Evaluate data ref to a pointer now,
+       and replace later references by usage of the pointer.
+
+2023-07-14  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/92178
+       * trans-expr.cc (gfc_conv_procedure_call): Use a separate gfc_se
+       struct, initalized from parmse, to generate the class wrapper.
+       After the class wrapper code has been generated, copy it back
+       depending on whether parameter deallocation code has been
+       generated.
+
+2023-07-13  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/106050
+       * symbol.cc (gfc_restore_last_undo_checkpoint): Release symbols
+       in reverse order.
+
+2023-07-12  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       PR fortran/102003
+       * expr.cc (find_inquiry_ref): Replace len of pdt_string by
+       constant.
+       (simplify_ref_chain): Ensure input to find_inquiry_ref is
+       NULL.
+       (gfc_match_init_expr): Prevent PDT analysis for function calls.
+       (gfc_pdt_find_component_copy_initializer): Get the initializer
+       value for given component.
+       * gfortran.h (gfc_pdt_find_component_copy_initializer): New
+       function.
+       * simplify.cc (gfc_simplify_len): Replace len() of PDT with pdt
+       component ref or constant.
+
+2023-07-11  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110288
+       * symbol.cc (gfc_copy_formal_args_intr): When deriving the formal
+       argument attributes from the actual ones for intrinsic procedure
+       calls, take special care of CHARACTER arguments that we do not
+       wrongly treat them formally as deferred-length.
+
+2023-07-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>
+
+       PR fortran/99139
+       PR fortran/99368
+       * match.cc (gfc_match_namelist): Check for host associated or
+       defined types before applying default type.
+       (gfc_match_select_rank): Apply default type to selector of
+       unknown type if possible.
+       * resolve.cc (resolve_fl_variable): Do not apply local default
+       initialization to assumed rank entities.
+
+2023-07-08  Harald Anlauf  <anlauf@gmx.de>
+           Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/92178
+       * trans-expr.cc (gfc_conv_procedure_call): Check procedures for
+       allocatable dummy arguments with INTENT(OUT) and move deallocation
+       of actual arguments after evaluation of argument expressions before
+       the procedure is executed.
+
+2023-07-08  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110585
+       * arith.cc (gfc_compare_expr): Handle equality comparison of constant
+       complex gfc_expr arguments.
+
+2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
+           Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+       * trans-types.cc (gfc_type_for_mode): Ditto.
+
+2023-06-28  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110360
+       * trans-expr.cc (gfc_conv_procedure_call): For non-constant string
+       argument passed to CHARACTER(LEN=1),VALUE dummy, ensure proper
+       dereferencing and truncation of string to length 1.
+
+2023-06-28  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/49213
+       * expr.cc (gfc_is_ptr_fcn): Remove reference to class_pointer.
+       * resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow
+       associate names with pointer function targets to be used in
+       variable definition context.
+       * trans-decl.cc (get_symbol_decl): Remove extraneous line.
+       * trans-expr.cc (alloc_scalar_allocatable_subcomponent): Obtain
+       size of intrinsic and character expressions.
+       (gfc_trans_subcomponent_assign): Expand assignment to class
+       components to include intrinsic and character expressions.
+
+2023-06-24  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110360
+       * trans-expr.cc (gfc_conv_procedure_call): Truncate constant string
+       argument of length > 1 passed to scalar CHARACTER(1),VALUE dummy.
+
+2023-06-23  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110360
+       * trans-expr.cc (gfc_conv_procedure_call): Pass actual argument
+       to scalar CHARACTER(1),VALUE dummy argument by value.
+
+2023-06-21  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/87477
+       PR fortran/88688
+       PR fortran/94380
+       PR fortran/107900
+       PR fortran/110224
+       * decl.cc (char_len_param_value): Fix memory leak.
+       (resolve_block_construct): Remove unnecessary static decls.
+       * expr.cc (gfc_is_ptr_fcn): New function.
+       (gfc_check_vardef_context): Use it to permit pointer function
+       result selectors to be used for associate names in variable
+       definition context.
+       * gfortran.h: Prototype for gfc_is_ptr_fcn.
+       * match.cc (build_associate_name): New function.
+       (gfc_match_select_type): Use the new function to replace inline
+       version and to build a new associate name for the case where
+       the supplied associate name is already used for that purpose.
+       * resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow
+       associate names with pointer function targets to be used in
+       variable definition context.
+       * trans-decl.cc (gfc_get_symbol_decl): Unlimited polymorphic
+       variables need deferred initialisation of the vptr.
+       (gfc_trans_deferred_vars): Do the vptr initialisation.
+       * trans-stmt.cc (trans_associate_var): Ensure that a pointer
+       associate name points to the target of the selector and not
+       the selector itself.
+
+2023-06-21  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/108961
+       * trans-expr.cc (gfc_conv_procedure_call): The hidden string
+       length must not be passed to a formal arg of type(cptr).
+
+2023-06-20  Tobias Burnus  <tobias@codesourcery.com>
+
+       * dump-parse-tree.cc (show_omp_namelist): Fix dump of the allocator
+       modifier of OMP_LIST_ALLOCATE.
+
+2023-06-20  Tobias Burnus  <tobias@codesourcery.com>
+
+       * match.cc (gfc_match_char): Match with '%S' a symbol
+       with host_assoc = 1.
+
+2023-06-19  Tobias Burnus  <tobias@codesourcery.com>
+
+       * intrinsic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS): Also
+       add references to the OpenMP 5.1 and 5.2 spec; add omp_initial_device
+       and omp_invalid_device named constants.
+
+2023-06-13  Harald Anlauf  <anlauf@gmx.de>
+           Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/86277
+       * trans-array.cc (gfc_trans_allocate_array_storage): When passing a
+       zero-sized array with fixed (= non-dynamic) size, allocate temporary
+       by the caller, not by the callee.
+
+2023-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * f95-lang.cc (gfc_init_builtin_functions): Add fmax() and
+       fmin() built-ins, and their variants.
+       * mathbuiltins.def: Add FMAX and FMIN built-ins.
+       * trans-intrinsic.cc (conv_intrinsic_ieee_minmax): New function.
+       (gfc_conv_ieee_arithmetic_function): Handle IEEE_MIN_NUM and
+       IEEE_MAX_NUM functions.
+
+2023-06-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/96024
+       * primary.cc (gfc_convert_to_structure_constructor): Only do
+       constant string ctor length verification and truncation/padding
+       if constant length has INTEGER type.
+
+2023-06-08  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/87477
+       PR fortran/99350
+       PR fortran/107821
+       PR fortran/109451
+       * decl.cc (char_len_param_value): Simplify a copy of the expr
+       and replace the original if there is no error.
+       * gfortran.h : Remove the redundant field 'rankguessed' from
+       'gfc_association_list'.
+       * resolve.cc (resolve_assoc_var): Remove refs to 'rankguessed'.
+       (resolve_variable): Associate names with constant or structure
+       constructor targets cannot have array refs.
+       * trans-array.cc (gfc_conv_expr_descriptor): Guard expression
+       character length backend decl before using it. Suppress the
+       assignment if lhs equals rhs.
+       * trans-io.cc (gfc_trans_transfer): Scalarize transfer of
+       associate variables pointing to a variable. Add comment.
+       * trans-stmt.cc (trans_associate_var): Remove requirement that
+       the character length be deferred before assigning the value
+       returned by gfc_conv_expr_descriptor. Also, guard the backend
+       decl before testing with VAR_P.
+
+2023-06-06  Kwok Cheung Yeung  <kcy@codesourcery.com>
+           Tobias Burnus  <tobias@codesourcery.com>
+
+       * dump-parse-tree.cc (show_omp_namelist): Display 'present' map
+       modifier.
+       (show_omp_clauses): Display 'present' motion modifier for 'to'
+       and 'from' clauses.
+       * gfortran.h (enum gfc_omp_map_op): Add entries with 'present'
+       modifiers.
+       (struct gfc_omp_namelist): Add 'present_modifer'.
+       * openmp.cc (gfc_match_motion_var_list): New, handles optional
+       'present' modifier for to/from clauses.
+       (gfc_match_omp_clauses): Call it for to/from clauses; parse 'present'
+       in defaultmap and map clauses.
+       (resolve_omp_clauses): Allow 'present' modifiers on 'target',
+       'target data', 'target enter' and 'target exit' directives.
+       * trans-openmp.cc (gfc_trans_omp_clauses): Apply 'present' modifiers
+       to tree node for 'map', 'to' and 'from' clauses.  Apply 'present' for
+       defaultmap.
+
+2023-06-02  Steve Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/100607
+       * resolve.cc (resolve_select_rank): Remove duplicate error.
+       (resolve_fl_var_and_proc): Prevent NULL pointer dereference and
+       suppress error message for temporary.
+
+2023-06-02  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/87477
+       * parse.cc (parse_associate): Replace the existing evaluation
+       of the target rank with calls to gfc_resolve_ref and
+       gfc_expression_rank. Identify untyped target function results
+       with structure constructors by finding the appropriate derived
+       type.
+       * resolve.cc (resolve_symbol): Allow associate variables to be
+       assumed shape.
+
+2023-06-01  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/88552
+       * decl.cc (gfc_match_kind_spec): Use error path on missing right
+       parenthesis.
+       (gfc_match_decl_type_spec): Use error return when an error occurred
+       during matching a KIND specifier.
+
+2023-06-01  Tobias Burnus  <tobias@codesourcery.com>
+
+       * parse.cc (decode_omp_directive): Accept all pure directives
+       inside a PURE procedures; handle 'error at(execution).
+
+2023-05-26  Tobias Burnus  <tobias@codesourcery.com>
+
+       * dump-parse-tree.cc (show_omp_namelist): Update allocator, fix
+       align dump.
+       (show_omp_node, show_code_node): Handle EXEC_OMP_ALLOCATE.
+       * gfortran.h (enum gfc_statement): Add ST_OMP_ALLOCATE and ..._EXEC.
+       (enum gfc_exec_op): Add EXEC_OMP_ALLOCATE.
+       (struct gfc_omp_namelist): Add 'allocator' to 'u2' union.
+       (struct gfc_namespace): Add omp_allocate.
+       (gfc_resolve_omp_allocate): New.
+       * match.cc (gfc_free_omp_namelist): Free 'u2.allocator'.
+       * match.h (gfc_match_omp_allocate, gfc_match_omp_allocators): New.
+       * openmp.cc (gfc_omp_directives): Uncomment allocate/allocators.
+       (gfc_match_omp_variable_list): Add bool arg for
+       rejecting listening common-block vars separately.
+       (gfc_match_omp_clauses): Update for u2.allocators.
+       (OMP_ALLOCATORS_CLAUSES, gfc_match_omp_allocate,
+       gfc_match_omp_allocators, is_predefined_allocator,
+       gfc_resolve_omp_allocate): New.
+       (resolve_omp_clauses): Update 'allocate' clause checks.
+       (omp_code_to_statement, gfc_resolve_omp_directive): Handle
+       OMP ALLOCATE/ALLOCATORS.
+       * parse.cc (in_exec_part): New global var.
+       (check_omp_allocate_stmt, parse_openmp_allocate_block): New.
+       (decode_omp_directive, case_exec_markers, case_omp_decl,
+       gfc_ascii_statement, parse_omp_structured_block): Handle
+       OMP allocate/allocators.
+       (verify_st_order, parse_executable): Set in_exec_part.
+       * resolve.cc (gfc_resolve_blocks, resolve_codes): Handle
+       allocate/allocators.
+       * st.cc (gfc_free_statement): Likewise.
+       * trans.cc (trans_code): Likewise.
+       * trans-openmp.cc (gfc_trans_omp_directive): Likewise.
+       (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for
+       u2.allocator, fix for u.align.
+
+2023-05-24  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/104350
+       * simplify.cc (simplify_size): Reject DIM argument of intrinsic SIZE
+       with error when out of valid range.
+
+2023-05-24  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/103794
+       * check.cc (gfc_check_reshape): Expand constant arguments SHAPE and
+       ORDER before checking.
+       * gfortran.h (gfc_is_constant_array_expr): Add prototype.
+       * iresolve.cc (gfc_resolve_reshape): Expand constant argument SHAPE.
+       * simplify.cc (is_constant_array_expr): If array is determined to be
+       constant, expand small array constructors if needed.
+       (gfc_is_constant_array_expr): Wrapper for is_constant_array_expr.
+       (gfc_simplify_reshape): Fix check for insufficient elements in SOURCE
+       when no padding specified.
+
+2023-05-23  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/103716
+       * resolve.cc (gfc_resolve_ref): Conversion of array_ref into an
+       element should be done for all characters without a len expr,
+       not just deferred lens, and for integer expressions.
+       * trans-expr.cc (conv_inquiry): For len and kind inquiry refs,
+       set the se string_length to NULL_TREE.
+
+2023-05-23  Paul Thomas  <pault@gcc.gnu.org>
+           Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/97122
+       * decl.cc (variable_decl): Clean up white space issues.
+       (gfc_match_final_decl): Declaration of finalizable derived type
+       is allowed in a submodule.
+
+2023-05-19  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       * expr.cc (gfc_get_corank): Use CLASS_DATA from gfortran.h.
+       * resolve.cc (resolve_component): Same.
+       (resolve_fl_derived0): Same.
+       * simplify.cc (gfc_simplify_extends_type_of): Same.
+       (simplify_cobound): Same.
+
+2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       * trans-array.cc (is_pointer_array): Use _P() defines from tree.h.
+       (gfc_conv_scalarized_array_ref): Ditto.
+       (gfc_conv_array_ref): Ditto.
+       * trans-decl.cc (gfc_finish_decl): Ditto.
+       (gfc_get_symbol_decl): Ditto.
+       * trans-expr.cc (gfc_trans_pointer_assignment): Ditto.
+       (gfc_trans_arrayfunc_assign): Ditto.
+       (gfc_trans_assignment_1): Ditto.
+       * trans-intrinsic.cc (gfc_conv_intrinsic_minmax): Ditto.
+       (conv_intrinsic_ieee_value): Ditto.
+       * trans-io.cc (gfc_convert_array_to_string): Ditto.
+       * trans-openmp.cc (gfc_omp_is_optional_argument): Ditto.
+       (gfc_trans_omp_clauses): Ditto.
+       * trans-stmt.cc (gfc_conv_label_variable): Ditto.
+       * trans.cc (gfc_build_addr_expr): Ditto.
+       (get_array_span): Ditto.
+
+2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       PR fortran/78798
+       * array.cc (compare_bounds): Use narrower return type.
+       (gfc_compare_array_spec): Likewise.
+       (is_constant_element): Likewise.
+       (gfc_constant_ac): Likewise.
+       * check.cc (dim_rank_check): Likewise.
+       * cpp.cc (gfc_cpp_init_options): Likewise.
+       (dump_macro): Likewise.
+       * cpp.h (gfc_cpp_handle_option): Likewise.
+       * dependency.cc (gfc_ref_needs_temporary_p): Likewise.
+       (gfc_check_argument_dependency): Likewise.
+       (gfc_check_fncall_dependency): Likewise.
+       (ref_same_as_full_array): Likewise.
+       * dependency.h (gfc_check_fncall_dependency): Likewise.
+       (gfc_dep_resolver): Likewise.
+       (gfc_are_equivalenced_arrays): Likewise.
+       * expr.cc (gfc_copy_ref): Likewise.
+       (gfc_kind_max): Likewise.
+       (numeric_type): Likewise.
+       * gfortran.h (gfc_at_end): Likewise.
+       (gfc_at_eof): Likewise.
+       (gfc_at_bol): Likewise.
+       (gfc_at_eol): Likewise.
+       (gfc_define_undef_line): Likewise.
+       (gfc_wide_is_printable): Likewise.
+       (gfc_wide_is_digit): Likewise.
+       (gfc_wide_fits_in_byte): Likewise.
+       (gfc_find_sym_tree): Likewise.
+       (gfc_generic_intrinsic): Likewise.
+       (gfc_specific_intrinsic): Likewise.
+       (gfc_intrinsic_actual_ok): Likewise.
+       (gfc_has_vector_index): Likewise.
+       (gfc_numeric_ts): Likewise.
+       (gfc_impure_variable): Likewise.
+       (gfc_pure): Likewise.
+       (gfc_implicit_pure): Likewise.
+       (gfc_elemental): Likewise.
+       (gfc_pure_function): Likewise.
+       (gfc_implicit_pure_function): Likewise.
+       (gfc_compare_array_spec): Likewise.
+       (gfc_constant_ac): Likewise.
+       (gfc_expanded_ac): Likewise.
+       (gfc_check_digit): Likewise.
+       * intrinsic.cc (gfc_find_subroutine): Likewise.
+       (gfc_generic_intrinsic): Likewise.
+       (gfc_specific_intrinsic): Likewise.
+       * io.cc (compare_to_allowed_values): Likewise. And remove
+       unneeded forward declaration.
+       * parse.cc: Likewise.
+       * parse.h (gfc_check_do_variable): Likewise.
+       * primary.cc (gfc_check_digit): Likewise.
+       * resolve.cc (resolve_structure_cons): Likewise.
+       (pure_stmt_function): Likewise.
+       (gfc_pure_function): Likewise.
+       (impure_stmt_fcn): Likewise.
+       (resolve_forall_iterators): Likewise.
+       (resolve_data): Likewise.
+       (gfc_impure_variable): Likewise.
+       (gfc_pure): Likewise.
+       (gfc_unset_implicit_pure): Likewise.
+       * scanner.cc (wide_is_ascii): Likewise.
+       (gfc_wide_toupper): Likewise.
+       (gfc_open_included_file): Likewise.
+       (gfc_at_end): Likewise.
+       (gfc_at_eof): Likewise.
+       (gfc_at_bol): Likewise.
+       (skip_comment_line): Likewise.
+       (gfc_gobble_whitespace): Likewise.
+       * symbol.cc (gfc_find_symtree_in_proc): Likewise.
+       * trans-array.cc: Likewise.
+       * trans-decl.cc (gfc_set_decl_assembler_name): Likewise.
+       * trans-types.cc (gfc_get_element_type): Likewise.
+       (gfc_add_field_to_struct): Likewise.
+       * trans-types.h (gfc_copy_dt_decls_ifequal): Likewise.
+       (gfc_return_by_reference): Likewise.
+       (gfc_is_nodesc_array): Likewise.
+       * trans.h (gfc_can_put_var_on_stack): Likewise.
+
+2023-05-17  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/95374
+       PR fortran/104352
+       * decl.cc (add_init_expr_to_sym): Set shape of initializer also for
+       zero-sized arrays, so that bounds violations can be detected later.
+
+2023-05-17  Tobias Burnus  <tobias@codesourcery.com>
+
+       * trans-decl.cc (gfc_get_symbol_decl): Add attributes
+       such as 'declare target' also to hidden artificial
+       variable for deferred-length character variables.
+       * trans-openmp.cc (gfc_trans_omp_array_section,
+       gfc_trans_omp_clauses, gfc_trans_omp_target_exit_data):
+       Improve mapping of array descriptors and deferred-length
+       string variables.
+
+2023-05-16  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/105152
+       PR fortran/100193
+       PR fortran/87496
+       PR fortran/103389
+       PR fortran/104429
+       PR fortran/82774
+       * interface.cc (gfc_compare_actual_formal): Emit an error if an
+       unlimited polymorphic actual is not matched either to an
+       unlimited or assumed type formal argument.
+       * resolve.cc (resolve_ordinary_assign): Emit an error if the
+       var expression of an ordinary assignment is a proc pointer
+       component.
+       * trans-array.cc (gfc_walk_array_ref): Provide assumed shape
+       arrays coming from interface mapping with a viable arrayspec.
+       * trans-expr.cc (gfc_conv_intrinsic_to_class): Tidy up flagging
+       of unlimited polymorphic 'class_ts'.
+       (gfc_conv_gfc_desc_to_cfi_desc): Assumed type is unlimited
+       polymorphic and should accept any actual type.
+       (gfc_conv_procedure_call): Replace dreadful kludge with a call
+       to gfc_finalize_tree_expr. Avoid dereferencing a void pointer
+       by giving it the pointer type of the actual argument.
+       (alloc_scalar_allocatable_subcomponent): Shorten the function
+       name and replace the symbol argument with the se string length.
+       If a deferred length character length is either not present or
+       is not a variable, give the typespec a variable and assign the
+       string length to that. Use gfc_deferred_strlen to find the
+       hidden string length component.
+       (gfc_trans_subcomponent_assign): Convert the expression before
+       the call to alloc_scalar_allocatable_subcomponent so that a
+       good string length is provided.
+       (gfc_trans_structure_assign): Remove the unneeded derived type
+       symbol from calls to gfc_trans_subcomponent_assign.
+
+2023-05-15  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/109846
+       * expr.cc (gfc_check_vardef_context): Check appropriate pointer
+       attribute for CLASS vs. non-CLASS function result in variable
+       definition context.
+
+2023-05-11  Xi Ruoyao  <xry111@xry111.site>
+
+       * Make-lang.in: Use grep instead of fgrep.
+
+2023-05-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       * dump-parse-tree.cc (gfc_debug_expr): Remove forward declaration.
+       (debug): Add DEBUG_FUNCTION.
+       (show_code_node): Remove erroneous whitespace.
+
+2023-05-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       PR fortran/109624
+       * dump-parse-tree.cc (debug): New function for gfc_namespace.
+       (gfc_debug_code): Delete forward declaration.
+       (show_attr): Make sure to print balanced braces.
+
+2023-05-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       * resolve.cc (resolve_select_type): Fix coding style.
+
+2023-05-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       * resolve.cc (resolve_select_type): Call free() unconditionally.
+
+2023-05-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       PR fortran/68800
+       * expr.cc (find_array_section): Fix mpz memory leak.
+       * simplify.cc (gfc_simplify_reshape): Fix mpz memory leaks in
+       error paths.
+
+2023-05-05  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/109641
+       * arith.cc (eval_intrinsic): Check conformability of ranks of operands
+       for intrinsic binary operators before performing type conversions.
+       * gfortran.h (gfc_op_rank_conformable): Add prototype.
+       * resolve.cc (resolve_operator): Check conformability of ranks of
+       operands for intrinsic binary operators before performing type
+       conversions.
+       (gfc_op_rank_conformable): New helper function to compare ranks of
+       operands of binary operator.
+
+2023-05-04  Julian Brown  <julian@codesourcery.com>
+
+       PR fortran/109622
+       * openmp.cc (resolve_omp_clauses): Add diagnostic for
+       non-pointer/non-allocatable attach/detach.
+       * trans-openmp.cc (gfc_trans_omp_clauses): Remove dereference for
+       pointer-to-scalar derived type component attach/detach.  Fix
+       attach/detach handling for descriptors.
+
+2023-04-28  Julian Brown  <julian@codesourcery.com>
+
+       PR fortran/109622
+       * trans-openmp.cc (gfc_trans_omp_clauses): Attach/detach clause fixes.
+
+2023-04-28  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.texi: Fix typos.
+       * decl.cc: Fix typos in comments and in a variable name.
+       * arith.cc: Fix comment typos.
+       * check.cc: Likewise.
+       * class.cc: Likewise.
+       * dependency.cc: Likewise.
+       * expr.cc: Likewise.
+       * frontend-passes.cc: Likewise.
+       * gfortran.h: Likewise.
+       * intrinsic.cc: Likewise.
+       * iresolve.cc: Likewise.
+       * match.cc: Likewise.
+       * module.cc: Likewise.
+       * primary.cc: Likewise.
+       * resolve.cc: Likewise.
+       * simplify.cc: Likewise.
+       * trans-array.cc: Likewise.
+       * trans-decl.cc: Likewise.
+       * trans-expr.cc: Likewise.
+       * trans-intrinsic.cc: Likewise.
+       * trans-openmp.cc: Likewise.
+       * trans-stmt.cc: Likewise.
+
+2023-04-25  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.cc (gfc_resolve_omp_do_blocks): Handle zero
+       or more than one exec statements before/after 'omp scan'.
+       * trans-openmp.cc (gfc_trans_omp_do): Likewise.
+
+2023-04-22  Harald Anlauf  <anlauf@gmx.de>
+           Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/109500
+       * interface.cc (gfc_compare_actual_formal): Reject allocatable
+       functions being used as actual argument for allocable dummy.
+
+2023-04-14  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/109511
+       * simplify.cc (gfc_simplify_set_exponent): Fix implementation of
+       compile-time simplification of intrinsic SET_EXPONENT for argument
+       X < 1 and for I < 0.
+
+2023-04-14  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/104272
+       * gfortran.h : Add expr3_not_explicit bit field to gfc_code.
+       * resolve.cc (resolve_allocate_expr): Set bit field when the
+       default initializer is applied to expr3.
+       * trans-stmt.cc (gfc_trans_allocate): If expr3_not_explicit is
+       set, do not deallocate expr3.
+
+2023-04-13  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/109492
+       * trans-expr.cc (gfc_conv_power_op): Use absu_hwi and
+       unsigned HOST_WIDE_INT for portability.
+
+2023-04-12  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/104312
+       * resolve.cc (resolve_entries): Handle functions with ENTRY and
+       ALLOCATABLE results.
+       * trans-expr.cc (gfc_conv_procedure_call): Functions with a result
+       with the POINTER or ALLOCATABLE attribute shall not get any special
+       treatment with -ff2c, as they cannot be written in Fortran 77.
+       * trans-types.cc (gfc_return_by_reference): Likewise.
+       (gfc_get_function_type): Likewise.
+
+2023-04-12  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/61615
+       PR fortran/99982
+       * interface.cc (compare_parameter): Enable type and rank checks for
+       arguments of derived type from the intrinsic module ISO_C_BINDING.
+
 2023-04-08  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/87477