|  | 2023-12-28  Rimvydas Jasinskas  <rimvydas.jas@gmail.com> | 
|  |  | 
|  | PR fortran/81615 | 
|  | * invoke.texi: Add Developer Options section.  Move '-fdump-*' | 
|  | to it.  Add small examples about changed '-save-temps' behavior. | 
|  |  | 
|  | 2023-12-20  Rimvydas Jasinskas  <rimvydas.jas@gmail.com> | 
|  |  | 
|  | PR fortran/81615 | 
|  | * lang-specs.h (F951_CPP_OPTIONS): Do not hardcode ".f90" extension | 
|  | (F951_CPP_EXTENSION): Use .fi/.fii for fixed/free form sources | 
|  | * options.cc (form_from_filename): Handle the new extensions | 
|  |  | 
|  | 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com> | 
|  |  | 
|  | * gfortran.h: Include omp-selectors.h. | 
|  | (enum gfc_omp_trait_property_kind): Delete, and replace all | 
|  | references with equivalent omp_tp_type enumerators. | 
|  | (struct gfc_omp_trait_property): Update for omp_tp_type. | 
|  | (struct gfc_omp_selector): Replace string name with new enumerator. | 
|  | (struct gfc_omp_set_selector): Likewise. | 
|  | * openmp.cc (gfc_free_omp_trait_property_list): Update for | 
|  | omp_tp_type. | 
|  | (omp_construct_selectors): Delete. | 
|  | (omp_device_selectors): Delete. | 
|  | (omp_implementation_selectors): Delete. | 
|  | (omp_user_selectors): Delete. | 
|  | (gfc_ignore_trait_property_extension): New. | 
|  | (gfc_ignore_trait_property_extension_list): New. | 
|  | (gfc_match_omp_selector): Adjust for new representations and simplify | 
|  | dispatch logic.  Uniformly warn instead of sometimes error when an | 
|  | unknown selector is found. | 
|  | (gfc_match_omp_context_selector): Adjust for new representations. | 
|  | Adjust error messages for extraneous/incorrect score. | 
|  | (gfc_match_omp_context_selector_specification): Likewise. | 
|  | * trans-openmp.cc (gfc_trans_omp_declare_variant): Adjust for | 
|  | new representations. | 
|  |  | 
|  | 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com> | 
|  |  | 
|  | * trans-openmp.cc (gfc_trans_omp_declare_varaint): Adjust for | 
|  | new namelist property representation. | 
|  |  | 
|  | 2023-12-19  Sandra Loosemore  <sandra@codesourcery.com> | 
|  |  | 
|  | * trans-openmp.cc (gfc_trans_omp_declare_variant): Use new | 
|  | constructors. | 
|  |  | 
|  | 2023-12-18  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/96580 | 
|  | * check.cc (array_size_check): New helper function. | 
|  | (gfc_check_date_and_time): Use it for checking minimum size of | 
|  | VALUES argument.  Update kind check to Fortran 2018. | 
|  | * intrinsic.texi: Fix documentation of DATE_AND_TIME. | 
|  |  | 
|  | 2023-12-17  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/97592 | 
|  | * trans-expr.cc (gfc_conv_procedure_call): For a contiguous dummy | 
|  | with the TARGET attribute, the effective argument may still be | 
|  | contiguous even if the actual argument is not simply-contiguous. | 
|  | Allow packing to be decided at runtime by _gfortran_internal_pack. | 
|  |  | 
|  | 2023-12-16  Paul Thomas  <pault@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/112459 | 
|  | * trans-array.cc (gfc_trans_array_constructor_value): Replace | 
|  | gfc_notification_std with explicit logical expression that | 
|  | selects F2003/2008 and excludes -std=default/gnu. | 
|  | * trans-expr.cc (gfc_conv_expr): Ditto. | 
|  |  | 
|  | 2023-12-16  Paul Thomas  <pault@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/112834 | 
|  | PR fortran/111853 | 
|  | * match.cc (build_associate_name): Fix whitespace issues. | 
|  | (select_type_set_tmp): If the selector is of unknown type, go | 
|  | the SELECT TYPE selector to see if this is a function and, if | 
|  | the result is available, use its typespec. | 
|  | * parse.cc (parse_associate): Again, use the function result if | 
|  | the type of the selector result is unknown. | 
|  | * trans-stmt.cc (trans_associate_var): The expression has to be | 
|  | of type class, for class_target to be true. Convert and fix | 
|  | class functions. Pass the fixed expression. | 
|  | * resolve.cc (gfc_expression_rank): Avoid null dereference. | 
|  |  | 
|  | 2023-12-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/112783 | 
|  | * intrinsic.texi: Fix where no COMPLEX allowed. | 
|  | * invoke.texi: Clarify -fdev-math. | 
|  |  | 
|  | 2023-12-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/112873 | 
|  | * gfortran.texi: Update to reflect the changes. | 
|  | * intrinsic.cc (add_functions): Update the standard that the | 
|  | various  degree trigonometric functions have been described in. | 
|  | (gfc_check_intrinsic_standard): Add an error string for F2023. | 
|  | * intrinsic.texi: Update accordingly. | 
|  |  | 
|  | 2023-12-13  Julian Brown  <julian@codesourcery.com> | 
|  |  | 
|  | * dependency.cc (gfc_omp_expr_prefix_same): New function. | 
|  | * dependency.h (gfc_omp_expr_prefix_same): Add prototype. | 
|  | * gfortran.h (gfc_omp_namelist): Add "duplicate_of" field to "u2" | 
|  | union. | 
|  | * trans-openmp.cc (dependency.h): Include. | 
|  | (gfc_trans_omp_array_section): Adjust mapping node arrangement for | 
|  | array descriptors.  Use GOMP_MAP_TO_PSET or | 
|  | GOMP_MAP_RELEASE/GOMP_MAP_DELETE with the OMP_CLAUSE_RELEASE_DESCRIPTOR | 
|  | flag set. | 
|  | (gfc_symbol_rooted_namelist): New function. | 
|  | (gfc_trans_omp_clauses): Check subcomponent and subarray/element | 
|  | accesses elsewhere in the clause list for pointers to derived types or | 
|  | array descriptors, and adjust or drop mapping nodes appropriately. | 
|  | Adjust for changes to mapping node arrangement. | 
|  | (gfc_trans_oacc_executable_directive): Pass code op through. | 
|  |  | 
|  | 2023-12-13  Julian Brown  <julian@codesourcery.com> | 
|  |  | 
|  | * trans-openmp.cc (gfc_trans_omp_array_section): Add OPENMP parameter. | 
|  | Use GOMP_MAP_ATTACH_DETACH instead of GOMP_MAP_ALWAYS_POINTER for | 
|  | derived type components. | 
|  | (gfc_trans_omp_clauses): Update calls to gfc_trans_omp_array_section. | 
|  |  | 
|  | 2023-12-11  Thomas Schwinge  <thomas@codesourcery.com> | 
|  |  | 
|  | * trans-openmp.cc (gfc_omp_call_is_alloc): Resolve ICE. | 
|  |  | 
|  | 2023-12-11  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | * gfortran.h (enum gfc_omp_requires_kind): Add | 
|  | OMP_REQ_ATOMIC_MEM_ORDER_ACQUIRE and OMP_REQ_ATOMIC_MEM_ORDER_RELEASE. | 
|  | (gfc_namespace): Add a 7th bit to omp_requires. | 
|  | * module.cc (enum ab_attribute): Add AB_OMP_REQ_MEM_ORDER_ACQUIRE | 
|  | and AB_OMP_REQ_MEM_ORDER_RELEASE | 
|  | (mio_symbol_attribute): Handle it. | 
|  | * openmp.cc (gfc_omp_requires_add_clause): Update for acquire/release. | 
|  | (gfc_match_omp_requires): Likewise. | 
|  | (gfc_match_omp_atomic): Handle them for atomic_default_mem_order. | 
|  | * parse.cc: Likewise. | 
|  |  | 
|  | 2023-12-11  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | * trans-openmp.cc (gfc_omp_call_add_alloc, | 
|  | gfc_omp_call_is_alloc): Set 'fn spec'. | 
|  |  | 
|  | 2023-12-10  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/111503 | 
|  | * expr.cc (gfc_is_simply_contiguous): Determine characteristics of | 
|  | NULL() from optional MOLD argument, otherwise treat as contiguous. | 
|  | * primary.cc (gfc_variable_attr): Derive attributes of NULL(MOLD) | 
|  | from MOLD. | 
|  |  | 
|  | 2023-12-10  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/105543 | 
|  | * resolve.cc (resolve_symbol): For a CLASS-valued function having a | 
|  | RESULT clause, ensure that attr.class_ok is set for its symbol as | 
|  | well as for its resolved result variable. | 
|  |  | 
|  | 2023-12-08  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_ALLOCATE | 
|  | and EXEC_OMP_ALLOCATORS. | 
|  | * f95-lang.cc (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): | 
|  | Add 'ECF_LEAF | ECF_MALLOC' to existing 'ECF_NOTHROW'. | 
|  | (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): Define. | 
|  | * gfortran.h (gfc_omp_clauses): Add contained_in_target_construct. | 
|  | * invoke.texi (-fopenacc, -fopenmp): Update based on C version. | 
|  | (-fopenmp-simd): New, based on C version. | 
|  | (-fopenmp-allocators): New. | 
|  | * lang.opt (fopenmp-allocators): Add. | 
|  | * openmp.cc (resolve_omp_clauses): For allocators/allocate directive, | 
|  | add target and no dynamic_allocators diagnostic and more invalid | 
|  | diagnostic. | 
|  | * parse.cc (decode_omp_directive): Set contains_teams_construct. | 
|  | * trans-array.h (gfc_array_allocate): Update prototype. | 
|  | (gfc_conv_descriptor_version): New prototype. | 
|  | * trans-decl.cc (gfc_init_default_dt): Fix comment. | 
|  | * trans-array.cc (gfc_conv_descriptor_version): New. | 
|  | (gfc_array_allocate): Support GOMP_alloc allocation. | 
|  | (gfc_alloc_allocatable_for_assignment, structure_alloc_comps): | 
|  | Handle GOMP_free/omp_realloc as needed. | 
|  | * trans-expr.cc (gfc_conv_procedure_call): Likewise. | 
|  | (alloc_scalar_allocatable_for_assignment): Likewise. | 
|  | * trans-intrinsic.cc (conv_intrinsic_move_alloc): Likewise. | 
|  | * trans-openmp.cc (gfc_trans_omp_allocators, | 
|  | gfc_trans_omp_directive): Handle allocators/allocate directive. | 
|  | (gfc_omp_call_add_alloc, gfc_omp_call_is_alloc): New. | 
|  | * trans-stmt.h (gfc_trans_allocate): Update prototype. | 
|  | * trans-stmt.cc (gfc_trans_allocate): Support GOMP_alloc. | 
|  | * trans-types.cc (gfc_get_dtype_rank_type): Set version field. | 
|  | * trans.cc (gfc_allocate_using_malloc, gfc_allocate_allocatable): | 
|  | Update to handle GOMP_alloc. | 
|  | (gfc_deallocate_with_status, gfc_deallocate_scalar_with_status): | 
|  | Handle GOMP_free. | 
|  | (trans_code): Update call. | 
|  | * trans.h (gfc_allocate_allocatable, gfc_allocate_using_malloc): | 
|  | Update prototype. | 
|  | (gfc_omp_call_add_alloc, gfc_omp_call_is_alloc): New prototype. | 
|  | * types.def (BT_FN_PTR_PTR_SIZE_PTRMODE_PTRMODE): New. | 
|  |  | 
|  | 2023-12-06  David Malcolm  <dmalcolm@redhat.com> | 
|  |  | 
|  | * error.cc (gfc_diagnostic_starter): Make diagnostic_info param | 
|  | const. | 
|  | (gfc_diagnostic_finalizer): Likewise. | 
|  |  | 
|  | 2023-12-05  Harald Anlauf  <anlauf@gmx.de> | 
|  | Tobias Burnus   <tobias@codesourcery.com> | 
|  |  | 
|  | PR fortran/100988 | 
|  | * gfortran.h (IS_PROC_POINTER): New macro. | 
|  | * trans-types.cc (gfc_sym_type): Use macro in determination if the | 
|  | restrict qualifier can be used for a dummy variable.  Fix logic to | 
|  | allow the restrict qualifier also for optional arguments, and to | 
|  | not apply it to pointer or proc_pointer arguments. | 
|  |  | 
|  | 2023-12-05  Richard Sandiford  <richard.sandiford@arm.com> | 
|  |  | 
|  | * f95-lang.cc (gfc_gnu_attribute_table): Add extra braces to work | 
|  | around PR 16333 in older compilers. | 
|  |  | 
|  | 2023-12-02  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/93762 | 
|  | PR fortran/100651 | 
|  | * trans-array.cc (gfc_trans_deferred_array): Add presence check | 
|  | for optional deferred-length character dummy arguments. | 
|  | * trans-expr.cc (gfc_conv_missing_dummy): The character length for | 
|  | deferred-length dummy arguments is passed by reference, so that | 
|  | its value can be returned.  Adjust handling for optional dummies. | 
|  |  | 
|  | 2023-12-02  Richard Sandiford  <richard.sandiford@arm.com> | 
|  |  | 
|  | * f95-lang.cc: Include attribs.h. | 
|  | (gfc_attribute_table): Change to an array of scoped_attribute_specs | 
|  | pointers, using... | 
|  | (gfc_gnu_attributes, gfc_gnu_attribute_table): ...these new globals. | 
|  |  | 
|  | 2023-12-01  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/112772 | 
|  | * trans-expr.cc (gfc_conv_class_to_class): Make copy-out conditional | 
|  | on the presence of an OPTIONAL CLASS argument passed to an OPTIONAL | 
|  | CLASS dummy. | 
|  |  | 
|  | 2023-11-30  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/112764 | 
|  | * primary.cc (gfc_variable_attr): Set TARGET attribute of associating | 
|  | entity dependent on TARGET or POINTER attribute of selector. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | 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 | 
|  | * iresolve.cc (gfc_resolve_adjustl, gfc_resolve_adjustr): if | 
|  | string length is deferred use the string typespec for result. | 
|  | * resolve.cc (resolve_assoc_var): Handle parentheses around the | 
|  | target expression. | 
|  | (resolve_block_construct): Remove unnecessary static decls. | 
|  | * trans-array.cc (gfc_conv_expr_descriptor): Guard string len | 
|  | expression in condition. Improve handling of string length and | 
|  | span, especially for substrings of the descriptor. | 
|  | (duplicate_allocatable): Make element type more explicit with | 
|  | 'eltype'. | 
|  | * trans-decl.cc (gfc_get_symbol_decl): Emit a fatal error with | 
|  | appropriate message instead of ICE if symbol type is unknown. | 
|  | (gfc_generate_function_code): Set current locus to proc_sym | 
|  | declared_at. | 
|  | * trans-expr.cc (gfc_get_expr_charlen): Retain last charlen in | 
|  | 'previous' and use if end expression in substring reference is | 
|  | null. | 
|  | (gfc_conv_string_length): Use gfc_conv_expr_descriptor if | 
|  | 'expr_flat' is an array. Add post block to catch deallocation | 
|  | of temporaries. | 
|  | (gfc_conv_procedure_call): Assign the parmse string length to | 
|  | the expression string length, if it is deferred. | 
|  | (gfc_trans_alloc_subarray_assign): If this is a deferred string | 
|  | length component, store the string length in the hidden comp. | 
|  | Update the typespec length accordingly. Generate a new type | 
|  | spec for the call to gfc_duplicate-allocatable in this case. | 
|  | * trans-io.cc (gfc_trans_transfer): Scalarize transfer of | 
|  | deferred character array components. | 
|  |  | 
|  | 2023-04-04  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/104349 | 
|  | * expr.cc (check_restricted): Adjust check for valid variables in | 
|  | restricted expressions: make no exception for module variables. | 
|  |  | 
|  | 2023-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org> | 
|  |  | 
|  | * dump-parse-tree.cc (get_c_type_name): Fix "long_long" | 
|  | type name to be "long long". | 
|  |  | 
|  | 2023-03-30  Andrew Pinski  <apinski@marvell.com> | 
|  |  | 
|  | * dump-parse-tree.cc (get_c_type_name): Fix "long_long" | 
|  | type name to be "long long". Add a comment on why adding | 
|  | 2 to the name too. | 
|  |  | 
|  | 2023-03-28  Jakub Jelinek  <jakub@redhat.com> | 
|  |  | 
|  | PR fortran/109314 | 
|  | * openmp.cc (gfc_omp_absent_contains_clause): Fix typo in diagnostics | 
|  | - composit -> composite. | 
|  |  | 
|  | 2023-03-25  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/104321 | 
|  | * trans-decl.cc (gfc_conv_cfi_to_gfc): Remove dead code. | 
|  |  | 
|  | 2023-03-24  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | * expr.cc (free_expr0): Free also BOZ strings as part of an expression. | 
|  |  | 
|  | 2023-03-24  Haochen Gui  <guihaoc@gcc.gnu.org> | 
|  | Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | PR target/103628 | 
|  | * target-memory.cc (gfc_interpret_float): Return FAIL when | 
|  | native_interpret_expr gets a NULL tree. | 
|  | * arith.cc (gfc_hollerith2real): Return NULL when | 
|  | gfc_interpret_float fails. | 
|  | * error.cc (gfc_buffered_p): Define. | 
|  | * gfortran.h (gfc_buffered_p): Declare. | 
|  | * intrinsic.cc: Add diagnostic.h to include list. | 
|  | (do_simplify): Save errorcount and check it at finish.  Report a | 
|  | "Cannot simplify expression" error on a bad result if error count | 
|  | doesn't change and no other errors buffered. | 
|  |  | 
|  | 2023-03-22  Harald Anlauf  <anlauf@gmx.de> | 
|  | Steven G. Kargl  <kargl@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/104572 | 
|  | * resolve.cc (gfc_resolve_finalizers): Argument of a FINAL subroutine | 
|  | cannot be an alternate return. | 
|  |  | 
|  | 2023-03-21  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/99036 | 
|  | * decl.cc (gfc_match_modproc): Reject MODULE PROCEDURE if not in a | 
|  | generic module interface. | 
|  |  | 
|  | 2023-03-21  Arsen Arsenović  <arsen@aarsen.me> | 
|  |  | 
|  | * invoke.texi: Remove usages of @gol. | 
|  | * intrinsic.texi: Ditto. | 
|  |  | 
|  | 2023-03-21  Paul Thomas  <pault@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/109206 | 
|  | * trans-array.cc (gfc_trans_array_constructor_value): Correct | 
|  | incorrect setting of typespec. | 
|  |  | 
|  | 2023-03-21  Paul Thomas  <pault@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/109209 | 
|  | * resolve.cc (generate_component_assignments): Restore the | 
|  | exclusion of allocatable components from the loop. | 
|  |  | 
|  | 2023-03-20  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/109216 | 
|  | * invoke.texi: Correct documentation of how underscores are appended | 
|  | to external names. | 
|  |  | 
|  | 2023-03-20  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/109186 | 
|  | * simplify.cc (gfc_simplify_nearest): Fix off-by-one error in setting | 
|  | up real kind-specific maximum exponent for mpfr. | 
|  |  | 
|  | 2023-03-20  Paul Thomas  <pault@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/87127 | 
|  | * resolve.cc (check_host_association): If an external function | 
|  | is typed but not declared explicitly to be external, change the | 
|  | old symbol from a variable to an external function. | 
|  |  | 
|  | 2023-03-19  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/85877 | 
|  | * resolve.cc (resolve_fl_procedure): Check for an explicit interface | 
|  | of procedures with the BIND(C) attribute (F2018:15.4.2.2). | 
|  |  | 
|  | 2023-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org> | 
|  |  | 
|  | * gfortran.texi: Mention behavior on overflow. | 
|  |  | 
|  | 2023-03-18  Paul Thomas  <pault@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/103854 | 
|  | PR fortran/96122 | 
|  | PR fortran/37336 | 
|  | * class.cc (finalize_component): Include the missing arguments | 
|  | in the call to the component's finalizer wrapper. | 
|  | (has_finalizer_component): Do not return true for procedure | 
|  | pointer components. | 
|  | (finalizer_insert_packed_call): Remove the redundant argument | 
|  | in the call to the final subroutine. | 
|  | (generate_finalization_wrapper): Add support for assumed rank | 
|  | finalizers. | 
|  | (gfc_may_be_finalized): New helper function. | 
|  | * dump-parse-tree.cc (write_proc): Whitespace. | 
|  | * gfortran.h : Add prototype for gfc_may_be_finalized. | 
|  | * resolve.cc (resolve_function): Correct derived types that | 
|  | have an incomplete namespace. | 
|  | (resolve_where, gfc_resolve_where_code_in_forall, | 
|  | gfc_resolve_forall_body, gfc_resolve_code): Check that the op | 
|  | code is still EXEC_ASSIGN. If it is set lhs to must finalize. | 
|  | (is_finalizable_type): New function. | 
|  | (generate_component_assignments): Set must_finalize if needed. | 
|  | (gfc_resolve_finalizers): Error if assumed rank finalizer is | 
|  | not the only one. Warning on lack of scalar finalizer modified | 
|  | to account for assumed rank finalizers. | 
|  | (generate_final_call): New function. | 
|  | (generate_component_assignments): Enclose the outermost call in | 
|  | a block to capture automatic deallocation and final calls. | 
|  | Set must_finalize as required to satisfy the standards. Use an | 
|  | explicit pointer assignment for pointer components to capture | 
|  | finalization of the target. Likewise use explicit assignment | 
|  | for allocatable components. Do not use the temporary copy of | 
|  | the lhs in defined assignment if the component is allocatable. | 
|  | Put the temporary in the same namespace as the lhs symbol if | 
|  | the component may be finalized. Remove the leading assignment | 
|  | from the expansion of assignment of components that have their | 
|  | own defined assignment components. Suppress finalization of | 
|  | assignment of temporary components to the lhs. Make an explicit | 
|  | final call for the rhs function temporary if it exists. | 
|  | (gfc_resolve_code): Set must_finalize for assignments with an | 
|  | array constructor on the rhs. | 
|  | (gfc_resolve_finalizers): Ensure that an assumed rank finalizer | 
|  | is the only finalizer for that type and correct the surprising | 
|  | warning for the lack of a scalar finalizer. | 
|  | (check_defined_assignments): Handle allocatable components. | 
|  | (resolve_fl_derived): Set referenced the vtab for use | 
|  | associated symbols. | 
|  | (resolve_symbol): Set referenced an unreferenced symbol that | 
|  | will be finalized. | 
|  | * trans-array.cc (gfc_trans_array_constructor_value): Add code | 
|  | to finalize the constructor result. Warn that this feature was | 
|  | removed in F2018 and that it is suppressed by -std=2018. | 
|  | (trans_array_constructor): Add finalblock, pass to previous | 
|  | and apply to loop->post if filled. | 
|  | (gfc_add_loop_ss_code): Add se finalblock to outer loop post. | 
|  | (gfc_trans_array_cobounds, gfc_trans_array_bounds): Add any | 
|  | generated finalization code to the main block. | 
|  | (structure_alloc_comps): Add boolean argument to suppress | 
|  | finalization and use it for calls from | 
|  | gfc_deallocate_alloc_comp_no_caf. Otherwise it defaults to | 
|  | false. | 
|  | (gfc_copy_alloc_comp_no_fini): New wrapper for | 
|  | structure_alloc_comps. | 
|  | (gfc_alloc_allocatable_for_assignment): Suppress finalization | 
|  | by setting new arg in call to gfc_deallocate_alloc_comp_no_caf. | 
|  | (gfc_trans_deferred_array): Use gfc_may_be_finalized and do not | 
|  | deallocate the components of entities with a leading '_' in the | 
|  | name that are also marked as artificial. | 
|  | * trans-array.h : Add the new boolean argument to the prototype | 
|  | of gfc_deallocate_alloc_comp_no_caf with a default of false. | 
|  | Add prototype for gfc_copy_alloc_comp_no_fini. | 
|  | * trans-decl.cc(init_intent_out_dt): Tidy up the code. | 
|  | * trans-expr.cc (gfc_init_se): Initialize finalblock. | 
|  | (gfc_conv_procedure_call): Use gfc_finalize_tree_expr to | 
|  | finalize function results. Replace in-line block for class | 
|  | results with call to new function. | 
|  | (gfc_conv_expr): Finalize structure constructors for F2003 and | 
|  | F2008. Warn that this feature was deleted in F2018 and, unlike | 
|  | array constructors, is not default. Add array constructor | 
|  | finalblock to the post block. | 
|  | (gfc_trans_scalar_assign): Suppress finalization by setting new | 
|  | argument in call to gfc_deallocate_alloc_comp_no_caf. Add the | 
|  | finalization blocks to the main block. | 
|  | (gfc_trans_arrayfunc_assign): Use gfc_assignment_finalizer_call | 
|  | and ensure that finalization occurs after the evaluation of the | 
|  | rhs but using the initial value for the lhs. Finalize rhs | 
|  | function results using gfc_finalize_tree_expr. | 
|  | (trans_class_assignment, gfc_trans_assignment_1): As previous | 
|  | function, taking care to order evaluation, assignment and | 
|  | finalization correctly. | 
|  | * trans-io.cc (gfc_trans_transfer): Add the final block. | 
|  | * trans-stmt.cc (gfc_trans_call, gfc_trans_allocate): likewise. | 
|  | (trans_associate_var): Nullify derived allocatable components | 
|  | and finalize function targets with defined assignment | 
|  | components on leaving the block scope. | 
|  | (trans_allocate): Finalize source expressions, if required, | 
|  | and set init_expr artificial temporarily to suppress the | 
|  | finalization in gfc_trans_assignment. | 
|  | * trans.cc (gfc_add_finalizer_call): Do not finalize the | 
|  | temporaries generated in type assignment with defined | 
|  | assignment components. | 
|  | (gfc_assignment_finalizer_call): New function. | 
|  | (gfc_finalize_tree_expr): New function. | 
|  | * trans.h: Add finalblock to gfc_se. Add the prototypes for | 
|  | gfc_finalize_tree_expr and gfc_assignment_finalizer_call. | 
|  |  | 
|  | 2023-03-15  Harald Anlauf  <anlauf@gmx.de> | 
|  | Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | PR fortran/58331 | 
|  | * interface.cc (compare_parameter): Adjust check of array dummy | 
|  | arguments to handle the case of CLASS variables. | 
|  |  | 
|  | 2023-03-11  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/106945 | 
|  | * trans-expr.cc (gfc_copy_class_to_class): Convert element counts in | 
|  | bounds check to common type for comparison. | 
|  |  | 
|  | 2023-03-10  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/104332 | 
|  | * resolve.cc (resolve_symbol): Avoid NULL pointer dereference while | 
|  | checking a symbol with the BIND(C) attribute. | 
|  |  | 
|  | 2023-03-05  Harald Anlauf  <anlauf@gmx.de> | 
|  | Tobias Burnus   <tobias@codesourcery.com> | 
|  |  | 
|  | PR fortran/106856 | 
|  | * class.cc (gfc_build_class_symbol): Handle update of attributes of | 
|  | existing class container. | 
|  | (gfc_find_derived_vtab): Fix several memory leaks. | 
|  | (find_intrinsic_vtab): Ditto. | 
|  | * decl.cc (attr_decl1): Manage update of symbol attributes from | 
|  | CLASS attributes. | 
|  | * primary.cc (gfc_variable_attr): OPTIONAL shall not be taken or | 
|  | updated from the class container. | 
|  | * symbol.cc (free_old_symbol): Adjust management of symbol versions | 
|  | to not prematurely free array specs while working on the declation | 
|  | of CLASS variables. | 
|  |  | 
|  | 2023-03-01  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | PR middle-end/108546 | 
|  | * trans-openmp.cc (gfc_trans_omp_clauses): Fix mapping of | 
|  | type(C_ptr) variables. | 
|  |  | 
|  | 2023-02-27  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108937 | 
|  | * trans-intrinsic.cc (gfc_conv_intrinsic_ibits): Handle corner case | 
|  | LEN argument of IBITS equal to BITSIZE(I). | 
|  |  | 
|  | 2023-02-25  Mikael Morin  <mikael@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/108923 | 
|  | * intrinsic.cc (get_intrinsic_dummy_arg, | 
|  | set_intrinsic_dummy_arg): Rename the former to the latter. | 
|  | Remove the return value, add a reference to the lhs as argument, | 
|  | and do the pointer assignment inside the function.  Don't do | 
|  | it if the pointer is already non-NULL. | 
|  | (sort_actual): Update caller. | 
|  |  | 
|  | 2023-02-25  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | * arith.cc (gfc_real2int): Clear mpfr variable after use. | 
|  |  | 
|  | 2023-02-25  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | PR fortran/108621 | 
|  | * trans-expr.cc (gfc_conv_gfc_desc_to_cfi_desc): Skip setting of | 
|  | bounds of CFI desc for 'pointer,intent(out)'. | 
|  |  | 
|  | 2023-02-24  Rimvydas Jasinskas  <rimvydas.jas@gmail.com> | 
|  |  | 
|  | * trans-decl.cc (gfc_finish_var_decl): Apply attribute. | 
|  | (generate_local_decl): Add diagnostic for dummy and local variables. | 
|  |  | 
|  | 2023-02-24  Mikael Morin  <mikael@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/108923 | 
|  | * expr.cc (gfc_free_actual_arglist): Free associated_dummy | 
|  | memory. | 
|  | (gfc_copy_actual_arglist): Make a copy of the associated_dummy | 
|  | field if it is set in the original element. | 
|  |  | 
|  | 2023-02-24  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108924 | 
|  | * frontend-passes.cc (do_subscript): Clear used gmp variable. | 
|  |  | 
|  | 2023-02-23  Arsen Arsenović  <arsen@aarsen.me> | 
|  |  | 
|  | * invoke.texi: Reorder index entries around @items. | 
|  |  | 
|  | 2023-02-23  Arsen Arsenović  <arsen@aarsen.me> | 
|  |  | 
|  | * invoke.texi: Reorder @opindex commands to precede @items they | 
|  | relate to. | 
|  |  | 
|  | 2023-02-22  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/96024 | 
|  | * resolve.cc (resolve_component): The type of a CHARACTER length | 
|  | expression must be INTEGER. | 
|  |  | 
|  | 2023-02-21  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/96025 | 
|  | * parse.cc (check_function_result_typed): Improve type check of | 
|  | specification expression for character length and return status. | 
|  | (parse_spec): Use status from above. | 
|  | * resolve.cc (resolve_fntype): Prevent use of invalid specification | 
|  | expression for character length. | 
|  |  | 
|  | 2023-02-16  Patrick Palka  <ppalka@redhat.com> | 
|  |  | 
|  | * gfortran.h: Mechanically drop static from static inline | 
|  | functions via s/^static inline/inline/g. | 
|  |  | 
|  | 2023-02-15  Steve Kargl  <kargl@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/103608 | 
|  | * frontend-passes.cc (do_intent): Catch NULL pointer dereference on | 
|  | reference to invalid formal argument. | 
|  |  | 
|  | 2023-02-15  Steve Kargl  <kargl@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/104554 | 
|  | * resolve.cc (check_assumed_size_reference): Avoid NULL pointer | 
|  | dereference. | 
|  |  | 
|  | 2023-02-15  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | PR fortran/108512 | 
|  | * openmp.cc (gfc_resolve_omp_parallel_blocks): Handle combined 'loop' | 
|  | directives. | 
|  | (gfc_resolve_do_iterator): Set a source location for added | 
|  | 'private'-clause arguments. | 
|  | * resolve.cc (gfc_resolve_code): Call gfc_resolve_omp_do_blocks | 
|  | also for EXEC_OMP_LOOP and gfc_resolve_omp_parallel_blocks for | 
|  | combined directives with loop + '{masked,master} taskloop (simd)'. | 
|  |  | 
|  | 2023-02-13  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/103475 | 
|  | * primary.cc (gfc_expr_attr): Avoid NULL pointer dereference for | 
|  | invalid use of CLASS variable. | 
|  |  | 
|  | 2023-02-13  Rimvydas Jasinskas  <rimvydas.jas@gmail.com> | 
|  |  | 
|  | * decl.cc: Add EXT_ATTR_NOINLINE, EXT_ATTR_NORETURN, EXT_ATTR_WEAK. | 
|  | * gfortran.h (ext_attr_id_t): Ditto. | 
|  | * gfortran.texi (GCC$ ATTRIBUTES): Document them. | 
|  | * trans-decl.cc (build_function_decl): Apply them. | 
|  |  | 
|  | 2023-02-09  Harald Anlauf  <anlauf@gmx.de> | 
|  | Steven G. Kargl  <kargl@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/69636 | 
|  | PR fortran/103779 | 
|  | * intrinsic.cc (gfc_convert_chartype): Recover on invalid character | 
|  | kind in conversion instead of generating an internal error. | 
|  |  | 
|  | 2023-02-09  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | PR fortran/107424 | 
|  | * trans-openmp.cc (struct dovar_init_d): Add 'sym' and | 
|  | 'non_unit_incr' members. | 
|  | (gfc_nonrect_loop_expr): New. | 
|  | (gfc_trans_omp_do): Call it; use normal loop bounds | 
|  | for unit stride - and only create local loop var. | 
|  |  | 
|  | 2023-02-09  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | * parse.cc (decode_omp_directive): Really ignore 'assumes' with | 
|  | -fopenmp-simd. | 
|  |  | 
|  | 2023-02-08  Steve Kargl  <kargl@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/103259 | 
|  | * resolve.cc (resolve_common_vars): Avoid NULL pointer dereference | 
|  | when a symbol's location is not set. | 
|  |  | 
|  | 2023-02-07  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/95107 | 
|  | * trans-decl.cc (gfc_finish_var_decl): With -fno-automatic, do not | 
|  | make ASSOCIATE variables TREE_STATIC. | 
|  |  | 
|  | 2023-02-05  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108592 | 
|  | * arith.cc (gfc_arith_divide): Emit integer division truncation | 
|  | warnings using gfc_warning instead of gfc_warning_now to prevent | 
|  | redundant messages. | 
|  |  | 
|  | 2023-02-03  Jakub Jelinek  <jakub@redhat.com> | 
|  |  | 
|  | PR fortran/108451 | 
|  | * trans-decl.cc (gfc_trans_use_stmts): Call clear_slot before | 
|  | doing continue. | 
|  |  | 
|  | 2023-02-01  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108609 | 
|  | * expr.cc (find_array_section): Add check to prevent interpreting an | 
|  | mpz non-integer constant as an integer. | 
|  |  | 
|  | 2023-02-01  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | * openmp.cc (resolve_omp_clauses): Check also for | 
|  | power of two. | 
|  |  | 
|  | 2023-01-29  Mikael Morin  <mikael@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/108450 | 
|  | * check.cc (gfc_check_minloc_maxloc): Explicitly set argument name. | 
|  | (gfc_check_findloc): Ditto. | 
|  |  | 
|  | 2023-01-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/103506 | 
|  | * parse.cc (parse_module): Remove use of a bool error value | 
|  | that prevented proper setting of the namespace pointer. | 
|  |  | 
|  | 2023-01-28  Harald Anlauf  <anlauf@gmx.de> | 
|  | Steven G. Kargl  <kargl@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/108527 | 
|  | * resolve.cc (compare_bound_int): Expression to compare must be of | 
|  | type INTEGER. | 
|  | (compare_bound_mpz_t): Likewise. | 
|  | (check_dimension): Fix comment on checks applied to array section | 
|  | and clean up associated logic. | 
|  |  | 
|  | 2023-01-28  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108453 | 
|  | * match.cc (gfc_match_common): A USE associated name shall not appear | 
|  | in a COMMON block (F2018:C8121). | 
|  |  | 
|  | 2023-01-27  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | PR fortran/108558 | 
|  | * trans-openmp.cc (gfc_split_omp_clauses): Handle has_device_addr. | 
|  |  | 
|  | 2023-01-26  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108544 | 
|  | * resolve.cc (check_host_association): Extend host association check | 
|  | so that it is not restricted to functions.  Also prevent NULL pointer | 
|  | dereference. | 
|  |  | 
|  | 2023-01-25  Steve Kargl  <kargl@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/108528 | 
|  | * array.cc (compare_bounds): Return false instead of generating an | 
|  | internal error on an invalid argument type. | 
|  |  | 
|  | 2023-01-24  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108529 | 
|  | * simplify.cc (simplify_transformation): Do not try to simplify | 
|  | transformational intrinsic when the ARRAY argument has a NULL shape. | 
|  |  | 
|  | 2023-01-23  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108502 | 
|  | * dependency.cc (gfc_check_dependency): Prevent NULL pointer | 
|  | dereference while recursively checking expressions. | 
|  |  | 
|  | 2023-01-23  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108501 | 
|  | * interface.cc (get_expr_storage_size): Check array subscript triplets | 
|  | that we actually have integer values before trying to extract with | 
|  | mpz_get_si. | 
|  |  | 
|  | 2023-01-23  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108420 | 
|  | * iresolve.cc (check_charlen_present): Preserve character length if | 
|  | there is no array constructor. | 
|  |  | 
|  | 2023-01-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org> | 
|  |  | 
|  | PR fortran/102595 | 
|  | * data.cc (gfc_assign_data_value): Remove check for PARAMETER in DATA. | 
|  | * primary.cc (match_variable): Add check for PARAMETER in DATA. | 
|  |  | 
|  | 2023-01-19  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108434 | 
|  | * expr.cc (class_allocatable): Prevent NULL pointer dereference | 
|  | or invalid read. | 
|  | (class_pointer): Likewise. | 
|  |  | 
|  | 2023-01-17  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/108421 | 
|  | * interface.cc (get_expr_storage_size): Check that we actually have | 
|  | an integer value before trying to extract it with mpz_get_si. | 
|  |  | 
|  | 2023-01-12  Tobias Burnus  <tobias@codesourcery.com> | 
|  |  | 
|  | PR fortran/107706 | 
|  | * openmp.cc (gfc_resolve_omp_assumptions): Reject nonscalars. | 
|  |  | 
|  | 2023-01-11  Jakub Jelinek  <jakub@redhat.com> | 
|  |  | 
|  | PR fortran/108349 | 
|  | * f95-lang.cc (gfc_init_builtin_function): Fix up function types | 
|  | for BUILT_IN_REALLOC and BUILT_IN_SINCOS{F,,L}.  Formatting fixes. | 
|  |  | 
|  | 2023-01-10  Harald Anlauf  <anlauf@gmx.de> | 
|  |  | 
|  | PR fortran/97345 | 
|  | * frontend-passes.cc (do_subscript): Clear used gmp variables. | 
|  |  | 
|  | 2023-01-02  Jakub Jelinek  <jakub@redhat.com> | 
|  |  | 
|  | * gfortranspec.cc (lang_specific_driver): Update copyright notice | 
|  | dates. | 
|  | * gfc-internals.texi: Bump @copying's copyright year. | 
|  | * gfortran.texi: Ditto. | 
|  | * intrinsic.texi: Ditto. | 
|  | * invoke.texi: Ditto. | 
|  |  | 
|  | Copyright (C) 2023 Free Software Foundation, Inc. | 
|  |  | 
|  | Copying and distribution of this file, with or without modification, | 
|  | are permitted in any medium without royalty provided the copyright | 
|  | notice and this notice are preserved. |