2026-08-07  Release Manager

	* GCC 16.2.0 released.

2026-07-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125866
	* expr.cc (is_CFI_desc): Add check for proc_name.

2026-07-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	Backported from master:
	2026-07-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/126386
	* frontend-passes.cc (matmul_lhs_realloc):  Fix size calculation of
	A2B1 case.

2026-07-27  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2026-07-27  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/126303
	* frontend-passes.cc (inner_loop_may_be_skipped): If inner loop iterator
	is not integral, return true.

2026-07-20  Mikael Morin  <mikael@gcc.gnu.org>

	Backported from master:
	2026-07-03  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/97592
	PR fortran/125998
	* trans-array.cc (gfc_conv_array_parameter): Always create a new
	descriptor.  Copy lbound and ubound from the original descriptor
	using matching dimension indexes.  Recalculate stride and
	offset.

2026-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/126234
	* module.cc (read_module): Walk the symtree instead of
	using gfc_find_symbol.

2026-07-12  Paul Thomas  <pault@gcc.gnu.org>

	Backported from master:
	2026-05-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/125172
	* resolve.cc (gfc_fixup_inferred_type_refs): Update kind for
	INQUIRY_RE and INQUIRY_IM references on inferred complex
	associate-name.
	(resolve_variable): For an inferred-type associate-name with
	no subobject ref, refresh e->ts from sym->ts.
	(resolve_assoc_var): For an inferred-type complex/character
	associate-name, refresh sym->ts from the resolved target when
	only the kind differs.

2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/126210
	* module.cc (read_module): Only skip re-importing a symbol
	already visible via host association from the same module
	when that symbol is a derived type.

2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-07-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/126170
	* class.cc (gfc_find_derived_vtab): Fix up a stale
	non-use-associated duplicate vtab symbol.
	(gfc_is_finalizable): Same fix-up, for the finalizer wrapper
	symbol.
	* module.cc (read_module): Skip re-importing a symbol already
	visible via host association from the same module.

2026-07-09  Harald Anlauf  <anlauf@gmx.de>

	Backported from master:
	2026-07-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/126127
	* interface.cc (find_symtree0): Check for NULL pointer.
	(gfc_find_sym_in_symtree): Also search user-defined operator list
	when the symbol refers to a function.

2026-07-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-07-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/103367
	* expr.cc (simplify_const_ref): Hoist the call to
	remove_subobject_ref up a level.
	* primary.cc (gfc_match_rvalue): Don't copy the value expr
	if the type is an EXPR_VARIABLE.
	* trans-array.cc (gfc_conv_array_initializer): Only copy the expr
	value if it does not have a ref.

2026-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/126018
	* match.cc (gfc_match_stopcode): Adjust the f2008 error check.If the
	STOP code expr type is unknown, do not error. It will be checked in
	gfc_resolve_code.
	* resolve.cc (gfc_resolve_code): Add checks for EXEC_STOP and
	EXEC_ERROR_STOP.

2026-06-29  Paul Thomas  <pault@gcc.gnu.org>

	Backported from master:
	2026-05-10  Andre Vehreschild  <vehre@gcc.gnu.org>
		    Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/125051
	* trans-decl.cc (gfc_get_symbol_decl): gfc_defer_symbol_init
	must not be called for PDT types, classes or types with PDT
	(gfc_generate_function_code): If gfc_current_ns is not the same
	as the function namespace, stash it,change it to the function
	namespace and restore after translation of the code.
	* trans-intrinsic.cc (gfc_conv_intrinsic_caf_get): If the array
	is in a module, use the symbol namespace.
	* trans-openmp.cc (gfc_trans_omp_array_reduction_or_udr): If the
	current namespace is not that of the procedure, change to the
	procedure namspace and revert on leaving this function.

2026-06-26  Harald Anlauf  <anlauf@gmx.de>

	Backported from master:
	2026-06-26  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/125902
	* dump-parse-tree.cc (needs_CFI_cdesc): New helper function to
	determine when struct CFI_cdesc_t is used.
	(has_cfi_cdesc): Use it here...
	(get_c_type_name): ... and here.

2026-06-24  Harald Anlauf  <anlauf@gmx.de>

	Backported from master:
	2026-06-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/125902
	* dump-parse-tree.cc (get_c_type_name): Use CFI_cdesc_t also for
	deferred shape and deferred length dummies, as well as for
	assumed-length scalar character dummies.

2026-06-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/60576
	* trans-array.cc (gfc_conv_array_parameter): For an assumed-rank
	actual argument passed to a CLASS assumed-rank formal, use a
	runtime-sized memcpy for the dim[] entries instead of a full
	GFC_MAX_DIMENSIONS static copy.  For a fixed-rank actual to a
	CLASS assumed-rank formal, pass lhs_type=false to
	gfc_class_array_data_assign so the dim[] copy is sized by the
	RHS descriptor type (dim_t[rank]).  Fixed-rank class formals
	retain lhs_type=true.
	* trans-expr.cc (gfc_conv_derived_to_class): For an assumed-rank
	actual, use a runtime-sized memcpy for the derived_array descriptor
	dim[] copy instead of a full GFC_MAX_DIMENSIONS static copy.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125430
	* trans-decl.cc (build_function_decl): Set TREE_PUBLIC for all
	module-contained procedures so submodules compiled as separate
	translation units can reach them via host association.  Also set
	DECL_VISIBILITY to VISIBILITY_HIDDEN for PRIVATE procedures,
	matching the existing treatment of module variables.

2026-06-15  Paul Thomas  <pault@gcc.gnu.org>

	Backported from master:
	2026-06-15  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/125527
	* class.cc (gfc_find_derived_vtab): Stash module namespace and
	use it as the last place to search for the vtab before building
	a new one.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125535
	* trans-array.cc (gfc_constructor_is_owned_alloc_comp): New function.
	(gfc_trans_array_constructor_value): Add OWNED_SWEEP parameter and,
	when set, suppress the per-element finalization.  Pass it through the
	recursive call.
	(trans_array_constructor): Compute OWNED_SWEEP and, when set,
	deallocate the allocatable components of the whole temporary in one
	sweep.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125650
	* match.cc (match_association_list): Handle ASSOCIATE selectors
	that are overloaded intrinsic operator expressions by extending
	them with gfc_extend_expr at parse time, so the associate name is
	typed before the construct body is parsed.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125481
	* interface.cc (gfc_compare_actual_formal): Add missing check that
	rejects a procedure-pointer actual argument corresponding to a
	data-object dummy argument (F23:15.5.2.5, para 2).  Restrict to
	EXPR_VARIABLE to avoid false positives on calls through procedure
	pointer components.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125527
	* class.cc (gfc_find_derived_vtab): Stop the top-level namespace
	walk at module/submodule boundaries to avoid escaping a submodule
	into its ancestor module namespace.
	* openmp.cc (gfc_omp_requires_add_clause): Likewise; treat the
	submodule as its own program unit for OMP REQUIRES.
	(gfc_match_omp_requires): Likewise; allow OMP REQUIRES in a submodule
	spec part even when gfc_current_ns->parent is now non-NULL.
	(gfc_match_omp_atomic): Likewise.
	* parse.cc (parse_module): After processing USE statements and
	host-association traversal, link the submodule namespace to its
	ancestor module namespace so internal subprograms are visible via
	host association (Fortran 2018, 14.6.1.3).
	(clean_up_modules): Reset gfc_current_ns->parent before gfc_done_2
	to prevent double-free of the ancestor module namespace.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125528
	* class.cc (find_typebound_proc_uop): Set root = NULL instead of
	returning NULL when derived type lacks f2k_derived, so parent-type
	type-bound procedures and operators are still found via inheritance.
	* match.cc (resolve_assoc_operand): New helper.
	(infer_typebound_uop_type): New helper.
	(extend_assoc_op): New helper.
	(match_association_list): Handle ASSOCIATE selectors that are
	type-bound user-defined operator expressions, including nested cases.
	* resolve.cc (resolve_typebound_procedures): Move resolve_symbol
	call for the parent type before the early return so inherited
	type-bound bindings are resolved even when the child type has none
	of its own.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125529
	* resolve.cc (check_default_none_expr): Use d->code instead of
	sym->ns->code to locate the DO CONCURRENT forall_iterator list,
	avoiding a wrong-union-member read when the symbol's namespace is
	an ASSOCIATE body.  Skip leading underscore when comparing iterator
	names for shadow iterators.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125530
	* match.cc (gfc_match_call): Route ASSOCIATE names followed by '%'
	to match_typebound_call without first resolving the selector, to
	avoid prematurely marking a contained-function selector as EXTERNAL.
	* symbol.cc (find_derived_types): Also search type-bound procedure
	names via gfc_find_typebound_proc when inferring the type of an
	inferred-type ASSOCIATE name; exclude vtable types.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125531
	* primary.cc (gfc_match_varspec): Before erroring on a zero-argument
	COMPCALL, check for a same-named data component and fall back to the
	data-component path.  For inferred-type ASSOCIATE names, retry
	gfc_find_component with noaccess=true when the normal search fails.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* resolve.cc (replace_in_code_recursive): Add EXEC_BLOCK case to
	replace shadow iterator references in ASSOCIATE selector expressions
	and the ASSOCIATE body namespace.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125534
	* trans-stmt.cc (gfc_trans_allocate): Use GFC_TYPE_ARRAY_RANK from
	the GFC descriptor type when se.expr is a descriptor, rather than
	expr->rank, for the rank passed to gfc_allocate_pdt_comp.  Apply
	the same fix to the CLASS path.
	(gfc_trans_deallocate): Likewise for gfc_deallocate_pdt_comp.

2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/125535
	* trans-expr.cc (gfc_conv_procedure_call): Move post block append
	to after the deep copy of allocatable components for transformational
	intrinsics, so that argument temporaries are not freed before the
	result components are copied.

2026-06-09  Paul Thomas  <pault@gcc.gnu.org>

	Backported from master:
	2026-06-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/125669
	* decl.cc (gfc_get_pdt_instance): If the bound expressions for
	and array component, of the length expression for a character
	component, gave simplified to a constant, do not set attributes
	pdt_array and pdt_string respectively.

2026-06-08  Harald Anlauf  <anlauf@gmx.de>

	Backported from master:
	2026-06-06  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/125606
	* trans-intrinsic.cc (gfc_conv_intrinsic_loc): When the argument
	of LOC() is not scalar or known to be simply contiguous, simply
	take the address of the argument array's first element.

2026-06-01  Harald Anlauf  <anlauf@gmx.de>

	Backported from master:
	2026-05-29  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/125393
	* interface.cc (get_expr_storage_size): Additionally return
	character length.
	(gfc_compare_actual_formal): When the formal is a scalar character
	variable, use character lengths, not array storage size for check.

2026-05-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Backported from master:
	2026-05-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/105582
	* trans-decl.cc (get_proc_pointer_decl): Add FL_LABEL check to
	route BLOCK-construct procedure pointers to gfc_add_decl_to_function
	rather than gfc_add_decl_to_parent_function.

2026-05-23  Paul Thomas  <pault@gcc.gnu.org>

	Backported from master:
	2026-05-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/125391
	* trans.cc (gfc_assignment_finalizer_call): For finalization of
	allocatable and pointer lhs before assignment, gfc_conv_expr
	should be used with se.descriptor_only. This avoids implicit of
	set_factored_descriptor_value by gfc_conv_expr_descriptor.

2026-05-22  Tobias Burnus  <tburnus@baylibre.com>

	Backported from master:
	2026-05-22  Tobias Burnus  <tburnus@baylibre.com>

	* dump-parse-tree.cc: Fix comment typo.
	* gfortran.texi: Fix typo.
	* intrinsic.texi: Likewise.
	* invoke.texi: Likewise.

2026-05-22  Tobias Burnus  <tburnus@baylibre.com>

	Backported from master:
	2026-05-22  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/125416
	* invoke.texi (fcoarray): Document 'shared'.

2026-05-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	Backported from master:
	2026-05-20  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/106546
	* frontend-passes.cc (create_var): Set attr->automatic on
	new symbol.
	(create_do_loop): Likewise on iteration variable.

2026-05-20  Thomas Koenig  <tkoenig@gcc.gnu.org>

	Backported from master:
	2026-05-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/115260
	* trans-expr.cc (gfc_conv_subref_array_arg): Pass false to
	dealloc argument of gfc_trans_scalar_assign if we are
	converting a g77-style argument.

2026-05-19  Andre Vehreschild  <vehre@gcc.gnu.org>

	Backported from master:
	2026-04-29  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/125021
	* coarray.cc (check_add_new_comp_handle_array): Prefix internal
	symbols by two underscores.
	(create_get_callback): Same.
	(create_allocated_callback): Same.
	(create_send_callback): Same.

2026-05-13  Mikael Morin  <mikael@gcc.gnu.org>

	Backported from master:
	2026-05-07  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/125192
	PR fortran/125198
	* trans-array.cc (gfc_conv_expr_descriptor): Add bounds checking
	code to the outermost loop's preliminary block.

2026-05-13  Mikael Morin  <mikael@gcc.gnu.org>

	Backported from master:
	2026-05-07  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.cc (trans_array_bound_check): Replace references
	to SE->PRE with references to the new argument BLOCK.  Remove
	argument SE.
	(array_bound_check_elemental): Likewise.  Update caller.
	(conv_array_index_offset): Update caller.
	(gfc_conv_expr_descriptor): Update caller.

2026-05-13  Harald Anlauf  <anlauf@gmx.de>

	Backported from master:
	2026-05-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/111952
	PR fortran/125059
	* trans-decl.cc (gfc_finish_var_decl): Remove bogus code forcing
	a DT variable with DTIO as static.
	* trans-io.cc (gfc_build_io_library_fndecls): Fix fnspec attribute.

2026-04-30  Release Manager

	* GCC 16.1.0 released.

2026-04-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/117077
	* trans-expr.cc (gfc_trans_scalar_assign): If the lhs and rhs
	TYPE_MAIN_VARIANTs are not the same, convert the rhs to the lhs
	type via a VIEW_CONVERT_EXPR.

2026-04-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* invoke.texi (fc-prototypes): Correct spelling for opindex.
	(fc-prototypes-external): Likewise.
	* lang.opt.urls: Regenerate.

2026-04-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/120140
	* resolve.cc (resolve_elemental_dependencies): New function,
	preceded by prototype for add_temp_assign_before_call.
	(resolve_call): If an elemental subroutine call has at least
	two actual erguments, call resolve_elemental_dependencies to
	generate temporary expressions for the arguments if required.
	(get_temp_from_expr): Add optional boolean argument, which if
	set, makes the resulting temporary unconditionally allocatable.
	(add_temp_assign_before_call): New function.

2026-04-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/124807
	* decl.cc (add_init_expr_to_sym): Suggested by Coverity:
	Check sym->as != NULL before dereferencing it.

2026-04-13  Christopher Albert  <albert@tugraz.at>

	PR fortran/101760
	PR fortran/102314
	* trans-openmp.cc (gfc_omp_finish_clause): Compute OMP_CLAUSE_SIZE
	from the array domain bounds and element size for VLA types instead
	of using TYPE_SIZE_UNIT directly, to avoid corrupting the type.

2026-04-11  Christopher Albert  <albert@tugraz.at>

	PR fortran/93814
	* trans-decl.cc (build_entry_thunks): Create local result buffer
	and length temporaries for bind(c) CHARACTER entry thunks when the
	master returns by reference but the thunk returns by value.

2026-04-11  Harald Anlauf  <anlauf@gmx.de>
	    Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/120140
	* dependency.cc (gfc_check_argument_var_dependency): For elemental
	subroutines skip the dependency check for array references.
	Correct description of function return value.
	* interface.cc (gfc_compare_actual_formal): Allow array sections
	with vector subscripts as actual arguments to elemental procedures
	in accordance with the Fortran standard.

2026-04-10  Christopher Albert  <albert@tugraz.at>

	PR fortran/94978
	* frontend-passes.cc (evaluate_loop_bound): New helper.
	(inner_loop_may_be_skipped): New helper.
	(do_subscript): Skip outer-loop bound warnings when nested inner loops
	may be zero-trip for the substituted bound.

2026-04-09  Christopher Albert  <albert@tugraz.at>

	PR fortran/103367
	* trans-array.cc (gfc_conv_array_initializer): Emit an error for
	invalid residual initializer expressions before returning a safe
	empty constructor.

2026-04-08  Christopher Albert  <albert@tugraz.at>

	PR fortran/96986
	* resolve.cc (resolve_global_procedure): Move entry symbol
	lookup outside the resolved != -1 block.

2026-04-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/93715
	* trans-decl.cc (gfc_trans_deferred_vars): Skip auto array
	allocation for scalar coarrays.

2026-04-07  Christopher Albert  <albert@tugraz.at>

	PR fortran/102430
	* openmp.cc (resolve_omp_clauses): Reject array/allocatable LINEAR on
	worksharing-loop constructs.

2026-04-07  Christopher Albert  <albert@tugraz.at>

	PR fortran/103367
	* trans-array.cc (gfc_conv_array_initializer): Return empty
	constructor for unexpected expression types after parameter
	substitution.

2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/124784
	* lang.opt.urls: Regenerated.

2026-04-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85352
	* resolve.cc (specification_expr_symbol): New variable.
	(entry_dummy_seen_p): Return whether a dummy appears in an already
	seen ENTRY.
	(gfc_resolve_formal_arglist): Remember the dummy whose specification
	expressions are being resolved.
	(resolve_variable): Accept unresolved sibling ENTRY dummy arguments
	while resolving the current dummy's specification expressions.
	(resolve_fl_variable): Preserve specification_expr_symbol.
	(resolve_symbol_array_spec): Likewise.

2026-04-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/107425
	* trans-decl.cc (gfc_finish_var_decl): Check for
	omp_affinity_iterators namespace before FL_LABEL BLOCK check.
	Only route actual iterator variables through add_decl_as_local;
	add other variables to the enclosing function.

2026-04-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/124780
	* resolve.cc (resolve_ordinary_assign): Do not add the class
	data component to an operator expression.
	* trans-expr.cc (gfc_trans_scalar_assign): If class to class
	assignment uses ordinary scalar assignment and neither lhs or
	rhs are class types, do a deep copy for allocatable components.

2026-04-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/124598
	* trans-expr.cc (gfc_conv_structure): Do not add parameterized
	components to a structure constructor.

2026-04-06  Christopher Albert  <albert@tugraz.at>

	PR fortran/79524
	PR fortran/79524
	* decl.cc (discard_pending_charlens): New helper.
	(add_init_expr_to_sym): Drop statement-local charlens when
	rejecting variable-length parameter arrays.
	(variable_decl, do_parm, enumerator_decl): Save the current
	namespace charlen list before parsing declarations with
	initializers.
	(match_procedure_decl): Adjust call to add_init_expr_to_sym.

2026-04-05  Christopher Albert  <albert@tugraz.at>

	PR fortran/109788
	* iresolve.cc (copy_intrinsic_sym): New helper.
	(gfc_resolve_spread): Copy the intrinsic descriptor before
	specializing the character formal argument type.

2026-04-04  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/66973
	* interface.cc (gfc_compare_actual_formal): Check that C_LOC and
	C_FUNLOC from ISO_C_BINDING as actual argument are passed to a
	dummy argument of matching type C_PTR/C_FUNPTR.

2026-04-03  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/124652
	* trans-expr.cc (gfc_conv_procedure_call): Do not clobber a
	procedure pointer intent(out) argument.
	* trans-intrinsic.cc (conv_isocbinding_function): When passing to
	C_FUNLOC a procedure pointer that is a dummy, dereference it.

2026-04-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/100155
	* trans-expr.cc (gfc_add_interface_mapping): 'new_sym' dummy
	attribute set to zero.
	(gfc_conv_procedure_call): Deallocate allocatable components of
	a class argument, enclosed in parentheses,wrap up the parmse
	and proceed to the next argument.

2026-04-02  Christopher Albert  <albert@tugraz.at>
	    Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/124751
	* trans-array.cc (gfc_conv_array_parameter): Build a packed
	descriptor for assumed-rank actual arguments instead of reusing
	stale metadata from the original descriptor.

2026-04-01  Gonzalosilvalde  <gonzalo.silvalde@gmail.com>

	PR fortran/79330
	* decl.cc (gfc_match_subroutine): Set has_import_set when
	matching a module procedure inside an interface block.
	(gfc_match_function_decl): Likewise.

2026-04-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/124739
	* io.cc (match_inquire_element): Change tag_id from a
	variable tag to an expression tag.

2026-04-01  Christopher Albert  <albert@tugraz.at>

	PR fortran/100194
	* trans-expr.cc (gfc_conv_procedure_call): Skip
	gfc_conv_subref_array_arg for assumed-rank actual arguments
	(e->rank == -1) when the dummy is contiguous.

2026-03-31  Mikael Morin  <mikael@gcc.gnu.org>
	    Christopher Albert  <albert@tugraz.at>

	PR fortran/121185
	PR fortran/124661
	* trans-array.cc (maybe_save_ref): New wrapper function around
	save ref.
	(set_factored_descriptor_value): Use the new wrapper function.
	Add argument PRELIMINARY_CODE.
	(gfc_conv_ss_descriptor): Update caller.

2026-03-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/124666
	* io.cc: Change uint value back to int.

2026-03-30  Christopher Albert  <albert@tugraz.at>

	* scanner.cc (skip_free_oacc_sentinel): Clear openmp_flag only for
	fresh OpenACC directive lines.
	(skip_free_omp_sentinel): Clear openacc_flag only for fresh OpenMP
	directive lines.

2026-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/124666
	* io.cc (format_lex): Use enclosing parens to subtract
	before adding.

2026-03-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/95879
	* parse.cc (fixup_st_func_formals): New function to update
	statement function formal argument lists referencing a symbol
	about to be freed.
	(gfc_fixup_sibling_symbols): Call fixup_st_func_formals before
	gfc_release_symbol.

2026-03-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/84245
	* match.cc (gfc_match_select_type): Free the temporary namespace
	only on MATCH_NO. Return immediately on MATCH_ERROR.

2026-03-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/102619
	* trans-expr.cc (gfc_get_interface_mapping_array): Add argument
	'assumed_rank_formal', which if true returns the descriptor in
	'ifm'.
	(gfc_add_interface_mapping): Detect an assumed rank formal arg
	of a non-intrinsic function to set 'assumed_rank_formal' and
	pass the descriptor to gfc_get_interface_mapping_array.

2026-03-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/124656
	* check.cc (min_max_args): Fix array index used for registering
	labeled arguments of the MIN/MAX intrinsics for subsequent
	duplicate label checks.

2026-03-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/124631
	* simplify.cc (gfc_simplify_eoshift): Initialize sstride[0] to
	prevent pointer arithmetic with undefined offset.  Fix several
	frontend memleaks.

2026-03-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/114021
	* symbol.cc (gfc_get_unique_symtree): If the namespace argument
	is NULL, allocate a new symtree and provide it with the unique
	name.
	* trans-expr.cc (trans_scalar_assign): In the deep copy of a
	derived type with allocatable components, fix the rhs value if
	it is not a constant or a variable.
	* trans-stmt.cc (gfc_trans_allocate): Do not deallocate
	allocatable components of a source that is not a variable and
	is a pointer. If the DECL_NAME or its IDENTIFIER_POINTER are
	null,use gfc_get_unique_symtree with NULL namespace to obtain a
	symtree for the assignment.

2026-03-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/115315
	* decl.cc (insert_parameter_exprs): Make strcmp condition more
	concise.
	(gfc_get_pdt_instance): Use gf_replace_expr where possible and
	use return value of gfc_simplify_expr. Correct error in which
	params->expr was being simplified instead of c2->initializer.
	* expr.cc (gfc_simplify_expr): If the substring 'start' value
	is less than zero, it is clearly out of range and so return
	false.

2026-03-25  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/124567
	* interface.cc (gfc_check_dummy_characteristics): Split shape check
	into a separate check for rank and a check for shape, taking into
	account a corner case where the ambiguity between deferred shape
	and assumed shape has not been fully resolved at the time of
	checking.

2026-03-25  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/119273
	* trans-array.cc (expr_contains_impure_fcn): New function.
	(gfc_expr_contains_impure_fcn): New function calling above fcn.
	(array_bound_check_elemental): Add indexse pre-block to se pre.
	Warn if the index expression contains a function not declared
	to be pure.

2026-03-22  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/124259
	* target-memory.cc (gfc_merge_initializers): Change struct
	gfc_typespec argument into a const reference.
	* target-memory.h (gfc_merge_initializers): Adjust prototype.
	* trans.cc (gfc_finalize_tree_expr): Change struct symbol_attribute
	argument into a const reference.
	* trans.h (gfc_finalize_tree_expr): Adjust prototype.

2026-03-20  Christopher Albert  <albert@tugraz.at>

	PR fortran/120723
	* trans-openmp.cc (gfc_trans_omp_clauses): Handle bare scalar
	OpenACC attach/detach clauses without pointer-mapping nodes.

2026-03-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/124161
	* resolve.cc (resolve_symbol): Do not apply the default
	initializer if the symbol is used in a submodule.

2026-03-17  Christopher Albert  <albert@tugraz.at>

	PR fortran/120286
	* trans-openmp.cc (gfc_is_class_pointer_type): New helper.
	(gfc_omp_clause_copy_ctor): Unwrap saved descriptors before
	deciding whether privatization should preserve only pointer
	association.  Handle scalar class pointers on that path too.
	(gfc_omp_clause_dtor): Likewise.

2026-03-16  Paul Thomas  <pault@gcc.gnu.org>
	    Steve Kargl  <kargls@comcast.net>

	PR fortran/93832
	* array.cc (resolve_array_bound): Emit error and return false
	if bound expression is derived type or class.
	* primary.cc (gfc_convert_to_structure_constructor): Do not
	dereference NULL in character component test. Define 'shorter'
	and use it help cure one of several whitespace issues.

2026-03-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/105168
	* trans-expr.cc (gfc_conv_class_to_class): If the argument expr
	is not a class type use the parent tree if that is a class.
	(gfc_conv_procedure_call): If the argument expression is not a
	variable, shift the bounds to give unity lbounds.
	(gfc_trans_arrayfunc_assign): Return NULL_TREE instead of NULL.

2026-03-15  Christopher Albert  <albert@tugraz.at>

	PR fortran/124482
	* decl.cc (gfc_match_data_decl): Defer CLASS container cleanup
	until after all failed components are unlinked.  Check remaining
	component list before freeing a shared container.

2026-03-13  Christopher Albert  <albert@tugraz.at>

	PR fortran/102459
	* trans-openmp.cc (gfc_trans_omp_clauses): Choose the scalar
	reference path from the full expression rank rather than the first
	array reference.
	(gfc_trans_omp_depobj): Likewise.

2026-03-12  Christopher Albert  <albert@tugraz.at>

	PR fortran/102596
	* trans-openmp.cc (gfc_omp_clause_default_ctor): Only require an
	outer reference when the constructor path actually uses it.

2026-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Gilles Gouaillardet  <gilles.gouaillardet@gmail.com>

	PR fortran/121743
	* trans-decl.cc (build_function_decl): Adjust the
	gcc_assert condition to avoid the ICE.

2026-03-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/115316
	* match.cc (spec_list_type): A version of gfc_spec_list_type,
	which returns true if any of the LEN parameters are deferred.
	(gfc_match_allocate): Use it to set saw_deferred if any of the
	parameters of the allocate object are deferred.

2026-03-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122696
	* resolve.cc (resolve_assoc_var): A generic function selector
	must be resolved to a specific function before doing anything
	more with the associate name.

2026-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/124450
	* trans-io.cc (transfer_expr): If code is NULL, call
	transfer_array_component with NULL where argument rather than
	&code->loc.

2026-03-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/97818
	* trans-decl.cc (gfc_trans_deferred_vars): Make sure that the
	result symbol is referenced before allocating parameterized
	components.

2026-03-12  Christopher Albert  <albert@tugraz.at>

	PR fortran/82721
	* decl.cc (discard_pending_charlen): New helper.
	(build_sym): Discard unattached CHARACTER length nodes when
	gfc_add_type rejects the declaration.

2026-03-12  Christopher Albert  <albert@tugraz.at>

	PR fortran/106946
	* decl.cc (gfc_match_data_decl): Remove CLASS components added by a
	failed declaration in a derived type, and guard symtree deletion.
	* gfortran.h (gfc_free_component, gfc_delete_symtree): Declare.
	* symbol.cc (gfc_free_component): New function.
	(free_components): Use it.
	(gfc_delete_symtree): Make non-static.

2026-03-12  Christopher Albert  <albert@tugraz.at>

	PR fortran/110877
	* trans-expr.cc (gfc_trans_assignment_1): Recover the class
	vptr for scalarized elements of nonpointer dummy arrays.

2026-03-11  Christopher Albert  <albert@tugraz.at>

	PR fortran/95338
	* trans-types.cc (gfc_get_entry_result_type): New helper to use the
	ABI return type for mixed ENTRY union fields.
	(gfc_get_mixed_entry_union): Use it for each entry result field.

2026-03-09  Jonathan Wakely  <jwakely@redhat.com>

	PR translation/124422
	* primary.cc (gfc_match_varspec): Fix spelling in diagnostic.

2026-03-09  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/121043
	* coarray.cc (check_add_new_component): Evaluate all functions
	on the source image.
	* trans-decl.cc (gfc_build_builtin_function_decls): The only
	argument of team_number() is of type void* in the library ABI.

2026-03-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122902
	* expr.cc (has_parameterized_comps): Moved from trans-array.cc.
	* gfortran.h : Add prototype for has_parameterized_comps.
	* trans-array.cc : Move has_parameterized_comps to expr.cc.
	* trans-expr.cc (gfc_trans_scalar_assign): Don't deep copy PDTs
	unless they have parameterized components.

2026-02-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/78187
	* trans-decl.cc (gfc_trans_deferred_vars): An initialization block
	shall be generated for deferred-length character results even
	when -fno-automatic is given.

2026-02-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/88076
	* invoke.texi: Use corrected english.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* trans-intrinsic.cc (conv_caf_send_to_remote): Fix treating constant
	char arrays when used in coarray sends.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/121360
	* resolve.cc: Introduce temporary holding rhs when lhs is a
	coarray expresssion.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* invoke.texi: Document new environment variable GFORTRAN_IMAGE_
	RESTARTS_LIMIT.

2026-02-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/88076
