]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/fortran/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
index 147fb1d9d81eefc179f455fffea6a03531ab6b93..d937291cbbcfc1181cf87c9d04cf8110d0685f92 100644 (file)
@@ -1,3 +1,879 @@
+2023-11-28  Andrew Jenner  <andrew@codesourcery.com>
+           Tobias Burnus   <tobias@codesourcery.com>
+
+       PR fortran/110415
+       * trans-expr.cc (trans_class_vptr_len_assignment): Add
+       from_vptrp parameter. Populate it. Don't check for DECL_P
+       when deciding whether to create temporary.
+       (trans_class_pointer_fcn, gfc_trans_pointer_assignment): Add
+       NULL argument to trans_class_vptr_len_assignment calls.
+       (trans_class_assignment): Get rhs_vptr from
+       trans_class_vptr_len_assignment and use it for determining size
+       for allocation/reallocation. Use return value from realloc.
+
+2023-11-26  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/111880
+       * resolve.cc (resolve_common_vars): Do not call gfc_add_in_common
+       for symbols that are USE associated or used in a submodule.
+
+2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
+
+       * lang.opt (Wopenmp): Add, enabled by dafault and documented in C.
+       * openmp.cc (gfc_match_omp_declare_target, resolve_positive_int_expr,
+       resolve_nonnegative_int_expr, resolve_omp_clauses,
+       gfc_resolve_omp_do_blocks): Use OPT_Wopenmp with gfc_warning{,_now}.
+
+2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.cc (gfc_match_omp_depobj): Accept optionally an argument
+       to the destroy clause.
+
+2023-11-23  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/112609
+       * check.cc (gfc_check_system_clock): Add checks on integer arguments
+       to SYSTEM_CLOCK specific to F2023.
+       * error.cc (notify_std_msg): Adjust to handle new features added
+       in F2023.
+       * gfortran.texi (_gfortran_set_options): Document GFC_STD_F2023_DEL,
+       remove obsolete option GFC_STD_F2008_TS and fix enumeration values.
+       * libgfortran.h (GFC_STD_F2023_DEL): Add and use in GFC_STD_OPT_F23.
+       * options.cc (set_default_std_flags): Add GFC_STD_F2023_DEL.
+
+2023-11-17  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.texi (_gfortran_set_options): Document GFC_STD_F2023.
+       * invoke.texi (std,pedantic,Wampersand,Wtabs): Add -std=2023.
+       * lang.opt (std=f2023): Add.
+       * libgfortran.h (GFC_STD_F2023, GFC_STD_OPT_F23): Add.
+       * options.cc (set_default_std_flags): Add GFC_STD_F2023.
+       (gfc_init_options): Set max_continue_free to 1,000,000.
+       (gfc_post_options): Set flag_free_line_length if unset.
+       (gfc_handle_option): Add OPT_std_f2023, set max_continue_free = 255
+       for -std=f2003, f2008 and f2018.
+
+2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+
+       * error.cc (gfc_diagnostics_init): Use diagnostic_start_span.
+
+2023-11-07  Joseph Myers  <joseph@codesourcery.com>
+
+       * gfortran.h (gfc_real_info): Refer to C23 instead of C2X in
+       comment.
+
+2023-11-06  Martin Jambor  <mjambor@suse.cz>
+
+       * trans-decl.cc (gfc_build_builtin_function_decls): Fix fnspec of
+       generate_error.
+
+2023-11-04  David Malcolm  <dmalcolm@redhat.com>
+
+       * cpp.cc: Update for changes to diagnostic_context.
+       * error.cc: Likewise.
+       * options.cc: Likewise.
+
+2023-11-03  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/97245
+       * match.cc (gfc_match_call): If a procedure pointer has already been
+       resolved, do not create a new symbol in a procedure reference of
+       the same name shadowing the first one if it is host-associated.
+
+2023-11-03  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/92887
+       * trans-expr.cc (conv_cond_temp): Helper function for creation of a
+       conditional temporary.
+       (gfc_conv_procedure_call): Handle passing of allocatable or pointer
+       actual argument to dummy with OPTIONAL + VALUE attribute.  Actual
+       arguments that are not allocated or associated are treated as not
+       present.
+
+2023-11-03  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/98498
+       * interface.cc (upoly_ok): Defined operators using unlimited
+       polymorphic formal arguments must not override the intrinsic
+       operator use.
+
+2023-11-02  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/112316
+       * parse.cc (parse_associate): Remove condition that caused this
+       regression.
+
+2023-10-30  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/104555
+       * resolve.cc (resolve_select_type): If the selector expression
+       has no class component references and the expression is a
+       derived type, copy the typespec of the symbol to that of the
+       expression.
+
+2023-10-27  Harald Anlauf  <anlauf@gmx.de>
+           Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/104649
+       * decl.cc (gfc_match_formal_arglist): Handle conflicting declarations
+       of a MODULE PROCEDURE when one of the declarations is an alternate
+       return.
+
+2023-10-27  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/104625
+       * expr.cc (gfc_check_vardef_context): Check that the target
+       does have a vector index before emitting the specific error.
+       * match.cc (copy_ts_from_selector_to_associate): Ensure that
+       class valued operator expressions set the selector rank and
+       use the rank to provide the associate variable with an
+       appropriate array spec.
+       * resolve.cc (resolve_operator): Reduce stacked parentheses to
+       a single pair.
+       (fixup_array_ref): Extract selector symbol from parentheses.
+
+2023-10-26  Paul-Antoine Arras  <pa@codesourcery.com>
+           Tobias Burnus  <tobias@codesourcery.com>
+
+       * interface.cc (gfc_compare_types): Return true if one type is C_PTR
+       and the other is a compatible INTEGER(8).
+       * misc.cc (gfc_typename): Handle the case where an INTEGER(8) actually
+       holds a TYPE(C_PTR).
+
+2023-10-25  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * openmp.cc (omp_mask2): Split 'OMP_CLAUSE_HOST_SELF' into
+       'OMP_CLAUSE_SELF', 'OMP_CLAUSE_HOST'.
+       (gfc_match_omp_clauses, OACC_UPDATE_CLAUSES): Adjust.
+
+2023-10-25  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * gfortran.h (typedef struct gfc_omp_clauses): Add self_expr field.
+       * openmp.cc (enum omp_mask2): Add OMP_CLAUSE_SELF.
+       (gfc_match_omp_clauses): Add handling for OMP_CLAUSE_SELF.
+       (OACC_PARALLEL_CLAUSES): Add OMP_CLAUSE_SELF.
+       (OACC_KERNELS_CLAUSES): Likewise.
+       (OACC_SERIAL_CLAUSES): Likewise.
+       (resolve_omp_clauses): Add handling for omp_clauses->self_expr.
+       * trans-openmp.cc (gfc_trans_omp_clauses): Add handling of
+       clauses->self_expr and building of OMP_CLAUSE_SELF tree clause.
+       (gfc_split_omp_clauses): Add handling of self_expr field copy.
+
+2023-10-25  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * dump-parse-tree.cc (show_omp_clauses): Group handling of 'if'
+       clause without and with modifier.
+       * frontend-passes.cc (gfc_code_walker): Likewise.
+       * gfortran.h (gfc_omp_clauses): Likewise.
+       * openmp.cc (gfc_free_omp_clauses): Likewise.
+
+2023-10-18  Tobias Burnus  <tobias@codesourcery.com>
+
+       * intrinsic.texi (signal): Add 'intrinsic :: signal, sleep' to
+       the example to make it safer.
+
+2023-10-17  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/111837
+       * frontend-passes.cc (traverse_io_block): Dependency check of loop
+       nest shall be triangular, not banded.
+
+2023-10-17  Tobias Burnus  <tobias@codesourcery.com>
+
+       * intrinsic.texi (signal): Mention that the argument
+       passed to the signal handler procedure is passed by reference.
+       Extend example.
+
+2023-10-15  Tobias Burnus  <tobias@codesourcery.com>
+
+       * scanner.cc (skip_free_comments, skip_fixed_comments): Remove
+       leftover 'OpenACC' from comments about OpenMP's conditional
+       compilation sentinel.
+
+2023-10-14  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.h (ext_attr_t): Add omp_allocate flag.
+       * match.cc (gfc_free_omp_namelist): Void deleting same
+       u2.allocator multiple times now that a sequence can use
+       the same one.
+       * openmp.cc (gfc_match_omp_clauses, gfc_match_omp_allocate): Use
+       same allocator expr multiple times.
+       (is_predefined_allocator): Make static.
+       (gfc_resolve_omp_allocate): Update/extend restriction checks;
+       remove sorry message.
+       (resolve_omp_clauses): Reject corarrays in allocate/allocators
+       directive.
+       * parse.cc (check_omp_allocate_stmt): Permit procedure pointers
+       here (rejected later) for less misleading diagnostic.
+       * trans-array.cc (gfc_trans_auto_array_allocation): Propagate
+       size for GOMP_alloc and location to which it should be added to.
+       * trans-decl.cc (gfc_trans_deferred_vars): Handle 'omp allocate'
+       for stack variables; sorry for static variables/common blocks.
+       * trans-openmp.cc (gfc_trans_omp_clauses): Evaluate 'allocate'
+       clause's allocator only once; fix adding expressions to the
+       block.
+       (gfc_trans_omp_single): Pass a block to gfc_trans_omp_clauses.
+
+2023-10-13  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/104351
+       * decl.cc (get_proc_name): Extend name conflict detection between
+       internal procedure and previous declaration also to derived type.
+
+2023-10-13  Harald Anlauf  <anlauf@gmx.de>
+
+       PR fortran/110957
+       * invoke.texi: Update documentation to reflect '-ffpe-trap=none'.
+       * options.cc (gfc_handle_fpe_option): Fix mixup up of error messages
+       for options -ffpe-trap and -ffpe-summary.  Accept '-ffpe-trap=none'
+       to clear FPU traps previously set on command line.
+
+2023-10-13  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/111779
+       * trans-expr.cc (gfc_trans_assignment_1): Initialize
+       lhs_caf_attr and rhs_caf_attr codimension flag to avoid
+       false positive -Wuninitialized.
+
+2023-10-12  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/67740
+       * trans-expr.cc (gfc_trans_pointer_assignment): Set the hidden
+       string length component for pointer assignment to character
+       pointer components.
+
+2023-10-08  Tobias Burnus  <tobias@codesourcery.com>
+
+       * parse.cc (parse_omp_structured_block): Make the user code end
+       up inside of BLOCK construct for strictly structured blocks;
+       fix fallout for 'section' and 'teams'.
+       * openmp.cc (resolve_omp_target): Fix changed BLOCK handling
+       for teams in target checking.
+
+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