+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
+ 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.