2026-05-26  Paul-Antoine Arras  <parras@baylibre.com>

	* dump-parse-tree.cc (debug): Add debug functions for gfc_omp_namelist
	and gfc_omp_clauses.

2026-05-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Harald Anlauf  <anlauf@gcc.gnu.org>

	PR fortran/93727
	* io.cc (enum format_token): Add FMT_EX, FMT_LPS, FMT_LPZ, FMT_LZ
	enums to identify specific tokens.
	(format_lex): Add parsing and checking of the EXw.d and EXw.dEe edit
	specifiers.

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

	PR fortran/125263
	* trans-expr.cc (gfc_trans_assignment_1): Pass scalar class to
	derived type assignment expressions to gfc_trans_scalar_assign.

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>

	* 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>

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

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

	PR fortran/125379
	* gfortran.h (gfc_find_symbol_by_name): Add prototype.
	* resolve.cc (gfc_verify_binding_labels): Call gfc_find_symbol_by_name
	if direct lookup fails.
	* symbol.cc (compare_target_sym_name): New function.
	(gfc_find_symbol_by_name): New function.

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-19  Julian Brown  <julian@codesourcery.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* dump-parse-tree.cc (show_attr): Show omp_udm_artificial_var flag.
	(show_omp_namelist): Support OMP_MAP_UNSET.
	* gfortran.h (enum gfc_statement): Add ST_OMP_DECLARE_MAPPER.
	(symbol_attribute): Add omp_udm_artificial_var attribute.
	(enum gfc_omp_map_op): Add OMP_MAP_UNSET.
	(gfc_omp_namelist_udm): New struct.
	(gfc_omp_namelist): Add udm pointer to u2 union.
	(gfc_symtree): Add omp_udm pointer.
	(gfc_namespace): Add omp_udm_root symtree and omp_udm_ns flag.
	(gfc_free_omp_udm, gfc_omp_udm_find, gfc_find_omp_udm,
	gfc_resolve_omp_udms): Add prototypes.
	* match.h (gfc_match_omp_declare_mapper): Add prototype.
	* match.cc (gfc_free_omp_namelist): Update for declare mapper's udm.
	* openmp.cc (gfc_omp_directives): Uncomment 'declare mapper'.
	(gfc_free_omp_udm, gfc_find_omp_udm, gfc_omp_udm_find,
	gfc_match_omp_declare_mapper, gfc_resolve_omp_udm,
	gfc_resolve_omp_udms): New.
	(gfc_match_omp_clauses): Take argument for the default map-type
	modifier; add support for the 'mapper' modifier.
	(resolve_omp_clauses): Update for declare-mapper map clauses.
	* parse.cc (decode_omp_directive): Add declare mapper support.
	(case_omp_decl): Add ST_OMP_DECLARE_MAPPER case.
	(gfc_ascii_statement): Add ST_OMP_DECLARE_MAPPER case.
	* resolve.cc (resolve_types): Call gfc_resolve_omp_udms.
	* symbol.cc (free_omp_udm_tree): New function.
	(gfc_free_namespace): Call it.

2026-05-19  Paul-Antoine Arras  <parras@baylibre.com>
	    Chung-Lin Tang  <cltang@baylibre.com>
	    Sandra Loosemore  <sloosemore@baylibre.com>

	* gfortran.h (enum gfc_omp_map_op): Dedicate the two LSB to TO and FROM.
	* openmp.cc (resolve_omp_clauses): Adjust to allow duplicate
	mapped variables for OpenMP.
	* trans-openmp.cc (gfc_trans_omp_clauses): Remove duplicates before
	clause expansion.

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-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/122245
	* dump-parse-tree.cc (write_formal_arglist): Take the formal
	arglist from the symbol's interface if it is present.

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

	PR fortran/125092
	* decl.cc (add_global_entry): Use string from the heap instead
	of a pointer to stack-allocated memory.
	* frontend-passes.cc (check_against_globals): If there is an error
	already, return early.
	* gfortran.h (gfc_symbol_rank): New prototype.
	* interface.cc (symbol_rank): Rename to
	(gfc_symbol_rank): this.
	(gfc_check_dummy_characteristics): Use new function name.
	(gfc_check_result_characteristics): Likewise.
	(gfc_compare_interfaces): Likewise.
	(compare_parameter): Likewise.
	(get_sym_storage_size): Likewise.
	(gfc_procedure_use): Likewise.
	* resolve.cc (decays_to_pointer): New function.
	(c_types_conform): New function.
	(compare_c_binding_arglists): New function.
	(gfc_verify_binding_labels): Check return types and rank
	plus argument lists if there is a pre-exisiting global
	symbol.

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

	* trans-openmp.cc (gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_cnt,
	gfc_omp_deep_mapping): Improve interface comment.

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

	* intrinsic.texi (OpenMP Modules): Add named parameters for
	omp_control_tool and omp_control_tool_result.

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

	* lang.opt (fcoarray=): Add shared enum value; update help text.
	* gfortranspec.cc (CAF_SHMEM_LIBRARY): New macro.
	(lang_specific_driver): Detect -fcoarray=shared in first pass and
	set need_caf_shmem flag.  In second pass, transform -fcoarray=shared
	to -fcoarray=lib for cc1.  Append -lcaf_shmem when need_caf_shmem
	is set and linking is active.

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-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-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-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-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-05-02  Tobias Burnus  <tburnus@baylibre.com>
	    Julian Brown  <julian@codesourcery.com>

	* gfortran.h (enum gfc_omp_list_type): Add this name
	to the existing OMP_LIST... enum; add OMP_LIST_NONE.
	(gfc_free_omp_namelist): Take that enum as arg instead of bool args.
	* match.cc (gfc_free_omp_namelist): Update.
	* openmp.cc (gfc_free_omp_clauses, gfc_free_omp_declare_variant_list,
	gfc_match_omp_clause_reduction, gfc_match_omp_clauses,
	gfc_match_omp_allocate, gfc_match_omp_flush,
	gfc_match_omp_declare_target, resolve_omp_clauses,
	gfc_resolve_omp_parallel_blocks, resolve_omp_do,
	gfc_resolve_oacc_blocks, gfc_resolve_oacc_declare): Update
	gfc_free_omp_namelist call and used enum type instead of
	int.
	* st.cc (gfc_free_statement): Likewise.

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-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
	* invoke.texi: Add description for use.

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

	* trans-expr.cc (get_scalar_to_descriptor_type): Fix coarray
	generation.
	(copy_coarray_desc_part): New function to copy coarray dimensions.
	(gfc_class_array_data_assign): Use the new function.
	(gfc_conv_derived_to_class): Same.

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

	* check.cc (gfc_check_image_status): Fix argument index of team=
	argument for correct error message.
	* trans-intrinsic.cc (conv_intrinsic_image_status): Team=
	argument is optional and is a pointer to the team handle.
	* trans-stmt.cc (gfc_trans_sync): Make images argument also a
	dereferencable pointer.  But treat errmsg as a pointer to a
	char array like in all other functions.

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

	* check.cc (gfc_check_failed_or_stopped_images): Support teams
	argument and check for incorrect type.

2026-02-25  Christopher Albert  <albert@tugraz.at>

	PR fortran/124235
	* trans-array.cc (generate_element_copy_wrapper): Use
	cgraph_node::finalize_function with no_collect=true instead
	of cgraph_node::add_new_function to avoid garbage collection
	while caller frames hold unrooted tree nodes.

2026-02-25  Christopher Albert  <albert@tugraz.at>

	PR fortran/124208
	* resolve.cc (gfc_max_forall_iterators_in_chain): Count
	iterators in EXEC_BLOCK namespaces.

2026-02-23  Gonzalo Silvalde Blanco  <gonzalo.silvalde@gmail.com>

	PR fortran/80012
	* symbol.cc (gfc_add_procedure): Split error into gfc_error and
	inform using auto_diagnostic_group.

2026-02-23  Paul-Antoine Arras  <parras@baylibre.com>

	PR fortran/120505
	* trans-openmp.cc (gfc_map_array_descriptor): New function.
	(gfc_trans_omp_clauses): Emit map clauses for intermediate array
	descriptors.

2026-02-23  Christopher Albert  <albert@tugraz.at>

	PR fortran/123949
	* trans-array.cc (structure_alloc_comps): Add missing
	gfc_init_se call in case ALLOCATE_PDT_COMP for scalar
	component default initializer.

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

	Revert:
	2026-02-20  Gonzalo Silvalde Blanco  <gonzalo.silvalde@gmail.com>

	PR fortran/80012
	* symbol.cc (gfc_add_procedure): Split error into gfc_error and
	inform using auto_diagnostic_group.

2026-02-20  Gonzalo Silvalde Blanco  <gonzalo.silvalde@gmail.com>

	PR fortran/80012
	* symbol.cc (gfc_add_procedure): Split error into gfc_error and
	inform using auto_diagnostic_group.

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

	PR fortran/123949
	* decl.cc (gfc_get_pdt_instance): Use full integer string encoding
	for PDT instance naming rather than 32-bit extraction, which caused
	ICEs for valid large KIND values.

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

	PR fortran/122491
	* decl.cc (gfc_match_end): Do not free current BLOCK namespace
	during malformed END cleanup.

2026-02-18  Tobias Burnus  <tburnus@baylibre.com>

	* symbol.cc (gfc_check_conflict): Reject mixing OpenMP threadprivate
	with groupprivate.
	* trans-common.cc (build_common_decl): Remove warning when mixing
	threadprivate with groupprivate.
	* trans-decl.cc (add_attributes_to_decl): Likewise.

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

	PR fortran/108663
	* decl.cc (gfc_get_pdt_instance): Use PDT_PREFIX and
	PDT_PREFIX_LEN.
	* gfortran.h : Define PDT_PREFIX and PDT_PREFIX_LEN. Note that
	PDT_PREFIX must have at least two upper case letters.
	* module.cc (read_module): Use PDT_PREFIX and PDT_PREFIX_LEN.
	* resolve.cc (resolve_typebound_procedure): Both pdt_template
	and pdt_type resolve_bindings_derived dummies should be tested
	for LEN type parameters being assumed.
	* symbol.cc (gfc_pdt_is_instance_of): Update preceding comment
	and use PDT_PREFIX_LEN.

2026-02-14  Christopher Albert  <albert@tugraz.at>
	    Harald Anlauf  <anlauf@gcc.gnu.org>

	PR fortran/123943
	* resolve.cc (gfc_max_forall_iterators_in_chain): New helper
	function for factorization of iterator-depth counting.
	(gfc_count_forall_iterators): Use it.

2026-02-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99250
	* check.cc (gfc_check_coshape): New function.
	* gfortran.h: Add GFC_ISYM_COSHAPE to gfc_isym_id.
	* intrinsic.cc (add_functions): Add the coshape prototype and
	its 'make_generic'.
	* intrinsic.h: Add prototypes for gfc_check_coshape and
	gfc_resolve_coshape.
	* intrinsic.texi : Add entries for coshape.
	* iresolve.cc (gfc_resolve_coshape): New function.
	* trans-array.cc (gfc_conv_ss_startstride): Add 'case
	GFC_ISYM_COSHAPE' in two places.
	* trans-intrinsic.cc (conv_intrinsic_cobound): Modify assert in
	scalarized section for lbound. Set bound to zero for scalar
	case of coshape. Keep the lbound and use it together with the
	scalarized ubound to obtain the coshape.
	(gfc_conv_intrinsic_function, gfc_add_intrinsic_ss_code and
	gfc_walk_intrinsic_function): Add 'case GFC_ISYM_COSHAPE' as
	appropriate.

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

	PR fortran/85547
	* decl.cc (gfc_match_volatile): Fix frontend memleak.
	(gfc_match_asynchronous): Likewise.
	* dump-parse-tree.cc (show_expr): Show type-spec for character
	array constructor when given.
	* simplify.cc (gfc_simplify_len): Simplify LEN() when type-spec
	is provided for character array constructor.
	* trans-intrinsic.cc (gfc_conv_intrinsic_len): Likewise.

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

	PR fortran/123961
	* check.cc (array_check): Extend check to class array functions.
	* class.cc (gfc_add_class_array_ref): Fix NULL pointer dereference.

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

	PR fortran/123545
	PR fortran/123673
	* decl.cc (gfc_get_pdt_instance): If a pdt_type component is
	allocatable or has allocatable components, mark it alloc_comp.
	(gfc_match_decl_type_spec): Sometimes in compiling contained
	functions, the symtree for the constructor points to the type
	instead of the constructor symbol. This corrects itself later
	in compilation so return MATCH_YES.
	* trans-decl.cc (gfc_generate_function_code): Unconditionally
	nullify allocatable components as well as applying the default
	initializer.
	* trans-expr.cc (gfc_trans_alloc_subarray_assign): Restrict the
	freeing of the destination data to non-allocatable expressions
	and, instead, add the se finalblock to the encompassing final_
	block.

2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	PR middle-end/123892
	* gfortran.h: Replace CONST_CAST with const_cast<>.
	* module.cc: Likewise.
	* openmp.cc: Likewise.
	* options.cc: Likewise.
	* parse.cc: Likewise.
	* scanner.cc: Likewise.
	* st.cc: Likewise.
	* trans-intrinsic.cc: Likewise.

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

	PR fortran/123941
	* intrinsic.texi: SPLIT is a subroutine, not a function.
	Improve documentation of its arguments.

2026-02-03  Kirill Chilikin  <chilikin.k@gmail.com>

	PR fortran/117303
	* trans-intrinsic.cc (conv_isocbinding_function):
	Assign the reference returned by C_FUNLOC to a variable.

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

	PR fortran/123952
	* symbol.cc (gfc_copy_dummy_sym): Ensure that external, array
	valued destination symbols have the correct interface so that
	conflicts do not arise when adding attributes.

2026-01-31  Paul Thomas  <pault@gcc.gnu.org>

	* array.cc (resolve_array_list): Use macro IS_PDT.
	* gfortran.h : Supply macros IS_PDT and IS_CLASS_PDT.
	* match.cc (gfc_match_type_is): Use IS_PDT and IS_CLASS_PDT as
	appropriate.
	* resolve.cc (gfc_resolve_ref, build_init_assign,
	resolve_component): Likewise.
	* trans-array.cc (gfc_trans_array_constructor_value,
	trans_array_constructor, structure_alloc_comps,
	has_parameterized_comps): Likewise.
	* trans-decl.cc (gfc_get_symbol_decl, gfc_init_default_dt,
	gfc_trans_deferred_vars, gfc_generate_function_code): Likewise.
	* trans-expr.cc (conv_dummy_value, gfc_conv_structure,
	gfc_trans_assignment_1): Likewise.
	* trans-stmt.cc (trans_associate_var, gfc_trans_allocate,
	gfc_trans_deallocate): Likewise.

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

	PR fortran/123868
	* trans-array.cc (structure_alloc_comps): For COPY_ALLOC_COMP,
	remove the add_when_allocated != NULL_TREE clause that PR121628
	added.  This clause was redundant for scalars and caused double
	allocation for arrays with nested allocatable components.

2026-01-27  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (resolve_omp_clauses): Reject groupprivate/device-local
	variables in MAP clauses.

2026-01-27  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	PR fortran/118955
	* decl.cc (gfc_match_gcc_builtin): Add 'fastmath' option which
	checks for fast-math before accepting a vector function.
	* gfortran.texi (!GCC$ builtin): Update documentation.

2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>

	* lang.opt.urls: Regenerated.

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

	PR fortran/123772
	* trans.cc: Add global variable is_assign_call.
	(gfc_finalize_tree_expr): Derived type function results
	with components that have defined assignements are
	handled in resolve.cc(generate_component_assignments), unless
	the assignment was replaced by a subroutine call to the
	subroutine associated with the assignment operator.
	(trans_code): In the case of EXEC_ASSIGN_CALL, set the
	is_asign_call before calling gfc_trans_call, then clear it
	after.

2026-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/123375
	* decl.cc (gfc_match_import): Check that imported entity within
	a interface is not from local scope.

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

	PR fortran/122957
	* invoke.texi: Add note that these features are incompatible
	with user defined derived type I/O. (DTIO)

2026-01-17  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/109512
	* resolve.cc (resolve_function): Check if an external
	attribute is required on a call to an external procedure.
	(resolve_call): Likewise.

2026-01-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/112460
	* array.cc (resolve_array_list): Stash the first PDT element
	and check its type specification parameters against those of
	subsequent elements.
	* expr.cc (get_parm_list_from_expr): New function to extract the
	type spec lists from expressions to be compared.
	(gfc_check_type_spec_parms): New function to compare type spec
	lists between two expressions. Emit an error if any constant
	values are different.
	(gfc_check_assign): Check that the PDT type specification parms
	are the same on lhs and rhs.
	* gfortran.h : Add prototype for gfc_check_type_spec_parms.
	* trans-expr.cc (copyable_array_p): PDT arrays are not copyable

2026-01-12  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/91960
	* resolve.cc (resolve_fl_parameter): Check the righthand symbol
	is a constant expression.

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

	PR fortran/123483
	* trans-array.cc (gfc_deallocate_alloc_comp): Ad the new
	finalization argument and pass it to structure_alloc_comps.
	* trans-array.h (gfc_deallocate_alloc_comp): Add a finalization
	flag that can be passed by gfc_conv_procedure_call.
	* trans-expr.cc (gfc_conv_procedure_call): Use the new
	finalization flag.

2026-01-08  Steve Kargl  <kargl@gcc.gnu.org>

	PR fortran/123321
	* trans-io.cc (transfer_namelist_element):  Adjust the
	conditions determining when to use the local name or
	the var name to build the object name.

2026-01-08  Steve Kargl  <kargl@gcc.gnu.org>

	PR fortran/123012
	* trans-io.cc (transfer_namelist_element): Adjust the
	conditions determining when to use the local name or
	the var name to build the object name.

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

	PR fortran/123071
	PR fortran/90218
	* resolve.cc (resolve_typebound_function): If a generic
	typebound procedure is marked as overridable and all the
	specific procedures are non-overridable, it is safe to resolve
	the compcall.
	* trans-array.cc (gfc_trans_array_constructor_value): PDT
	structure constructor elements must be finalized.
	(trans_array_constructor): Set 'finalize_required' for PDT
	constructors.
	* trans-decl.cc (gfc_get_symbol_decl): PDT initialization is
	required in contained namespaces as long as the parent is not
	a module.
	(gfc_init_default_pdt): Delete the stmtblock_t argument. Assign
	a variable 'value' expression using gfc_trans_assignment.
	Simplifiy the logic around the call to gfc_init_default_dt. In
	both cases return a tree expression or null tree.
	(gfc_trans_deferred_vars): Only call gfc_allocate_pdt_comp if
	gfc_init_default_pdt returns null tree.
	* trans-expr.cc (gfc_trans_alloc_subarray_assign): Add a static
	stmtblock_t pointer 'final_block'. Free 'dest' data pointer and
	add to final_block.
	(gfc_conv_structure): Set 'final_block' to the se's finalblock.
	(gfc_trans_assignment_1): Do not deallocate PDT array ctrs.
	trans-stmt.cc (gfc_trans_allocate): Also deallocate PDT expr3
	allocatable components.
	(gfc_trans_deallocate): Add PDT deallocation to se.pre instead
	of block.
	* trans-stmt.cc (gfc_trans_allocate): Free the allocatable
	components of a PDT expr3.
	(gfc_trans_deallocate): Add 'tmp' to se.pre rather than block.

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

	PR fortran/123029
	* io.cc (check_open_constraints): Delete erroneous check.

2026-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* libgfortran.h: Add enum for new LIBERROR_RECURSIVE_IO.

2026-01-06  supers1ngular  <supers1ngular@baylibre.com>

	* openmp.cc (gfc_match_omp_clauses): New diagnostic logic.

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

	PR fortran/123071
	* resolve.cc (resolve_typebound_function): Make sure that the
	class declared type is resolved.
	(resolve_allocate_deallocate): Any kind of expr3 array ref will
	need resolution not just constant size refs.
	* trans-decl.cc (gfc_trans_deferred_vars): Exclude vtabs from
	initialization.
	(emit_not_set_warning): New function using code extracted from
	gfc_generate_function_code.
	(gfc_generate_function_code): PDT module procedures results
	that have not been referenced must have the fake_result_decl
	added to the symbol and emit_not_set_warning called. Likewise
	replace explicit code with call to emit_not_set_warning.

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

	PR fortran/123352
	* gfortran.h: Add prototype for gfc_resolve_symbol.
	* interface.cc (matching_typebound_op): If the current
	namespace has not been resolved and the derived type is use
	associated, resolve the derived type with gfc_resolve_symbol.
	* match.cc (match_association_list): If the associate name is
	unknown type and the selector is an operator expression, copy
	the selector and call gfc_extend_expr. Replace the selector if
	there is a match, otherwise free the copy.
	* resolve.cc (gfc_resolve_symbol): New function.

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

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

	PR libfortran/119136
	* libgfortran.h: Add enum for new LIBERROR_RECURSIVE_IO.

2026-01-02  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/101399
	* io.cc (match_io): If the -Wtabs option is used, then Issue a
	warning for a <tab> character following a 'print' statement;
	otherwise ignore the <tab>.

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

	PR libfortran/119136
	* libgfortran.h: Add enum for new LIBERROR_RECURSIVE_IO.

2026-01-01  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) 2026 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.
