2025-12-19  Jakub Jelinek  <jakub@redhat.com>

	* dump-parse-tree.cc (show_omp_clauses): Add default: with
	gcc_unreachable () to avoid spurious -Wmaybe-uninitialized warnings.

2025-12-19  Jakub Jelinek  <jakub@redhat.com>

	* gfortran.texi: Fix typo, transfered -> transferred.
	* resolve.cc (resolve_where): Fix comment typo, outmost -> outermost.

2025-12-19  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/71565
	* expr.cc (gfc_check_vardef_context): Fix treatment of INTENT(IN)
	checks for ASSOCIATE variables.  Correct checking of PROTECTED
	objects, as subobjects inherit the PROTECTED attribute.

2025-12-19  Christopher Albert  <albert@tugraz.at>

	PR fortran/92613
	* cpp.cc (gfc_cpp_preprocess): Skip libcpp for -fpreprocessed.
	Error out for -fpreprocessed -E.
	* f95-lang.cc (gfc_init): Skip libcpp init for -fpreprocessed.
	* scanner.cc (gfc_new_file): Load source directly if preprocessed.
	* invoke.texi (Preprocessing Options): Document -fpreprocessed.

2025-12-19  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (gfc_match_omp_clause_uses_allocators): Accept
	multiple clause-argument-specifications separated by ';'.

2025-12-18  Tobias Burnus  <tburnus@baylibre.com>

	* dump-parse-tree.cc (show_omp_assumes): Handle
	no_openmp_constructs clause.
	* gfortran.h (struct gfc_omp_assumptions): Add
	no_openmp_constructs.
	* openmp.cc (gfc_match_dupl_check): For free-form
	Fortran, avoid substring matching.
	(gfc_match_omp_clauses): Match no_openmp_constructs clause.
	Remove no longer needed 'needs_space', match 'order' followed by
	parenthesis instead of 'order' with parenthesis; reorder 'order'
	and 'ordering' clauses for free-form Fortran.
	(gfc_match_omp_assumes): Handle no_openmp_constructs clause.

2025-12-18  Tobias Burnus  <tburnus@baylibre.com>

	* dump-parse-tree.cc (show_omp_clauses): Handle
	device_type clause.
	* openmp.cc (gfc_match_omp_clauses): Reorder to
	match 'device' after 'device_...' to avoid parse
	errors.
	(OMP_TARGET_CLAUSES): Add device_type clause.
	* trans-openmp.cc (gfc_trans_omp_clauses,
	gfc_split_omp_clauses): Handle device_type clause.

2025-12-12  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (gfc_match_omp_clause_uses_allocators): Mention
	new syntax in deprecation warning.

2025-12-12  Tobias Burnus  <tburnus@baylibre.com>

	* intrinsic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS): Link
	also to OpenMP 6.0, move 'partially supported' to the end of the
	list of OpenMP versions. Mark 'omp_lock_hint_...' and
	'omp_atv_sequential' constants as deprecated.

2025-12-12  Chung-Lin Tang  <cltang@baylibre.com>
	    Tobias Burnus  <tburnus@baylibre.com>
	    Andrew Stubbs  <ams@baylibre.com>

	* openmp.cc (resolve_omp_clauses): Handle omp_null_allocator.
	* trans-openmp.cc (gfc_trans_omp_clauses): Mention it in a comment.

2025-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/107406
	* parse.cc (check_component): Adjust the error check to
	require a codimension if the allocatable type has
	a non-coarray LOCK_TYPE component.

2025-12-11  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/123098
	* openmp.cc (gfc_match_omp_clause_reduction): Only emit
	-Wdeprecated-openmp warning for '-' if !openacc.

2025-12-11  Jakub Jelinek  <jakub@redhat.com>

	* openmp.cc (gfc_match_omp_clause_reduction,
	gfc_match_omp_clause_uses_allocators, gfc_match_omp_clauses,
	match_omp_metadirective, gfc_match_omp_parallel_master,
	gfc_match_omp_parallel_master_taskloop,
	gfc_match_omp_parallel_master_taskloop_simd,
	gfc_match_omp_master, gfc_match_omp_master_taskloop,
	gfc_match_omp_master_taskloop_simd, resolve_omp_clauses): Formatting
	fixes.

2025-12-11  Jakub Jelinek  <jakub@redhat.com>

	* trans-expr.cc (gfc_conv_procedure_call): Fix comment typo, passe
	-> pass.

2025-12-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/107142
	* match.cc (gfc_match_type_spec): Change original declaration
	to static match_type_spec and call from gfc_match_type_spec,
	where the gfc_current_ns is stashed and restored after call.
	(gfc_match_type_is): Before emitting the syntax error message
	check if there are any pending error messages and use them
	instead.

2025-12-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/110012
	* decl.cc (gfc_get_pdt_instance): Continue to loop through the
	type parameters components if param_list is null and the
	parameter is not KIND with a default initializer.
	* resolve.cc (resolve_fl_derived): If the data component is a
	PDT template, find the instance and build the class.

2025-12-11  supers1ngular  <supers1ngular@baylibre.com>

	* gfortran.texi: Bump version and clarify implementation status.
	* intrinsic.texi: Bump version and note deprecation of
	'omp_proc_bind_master'.

2025-12-11  supers1ngular  <supers1ngular@baylibre.com>

	* openmp.cc (gfc_match_omp_clause_reduction): Deprecate '-'
	operator for reductions.
	(gfc_match_omp_clause_uses_allocators): Deprecate
	allocator(traits) pattern for 'uses_allocators'.
	(gfc_match_omp_clauses): Deprecate 'sink' and 'source' for
	'depend' clause. Deprecate list items as arguments with 'linear'
	clause. Deprecate non-comma-separated modifiers for the map
	clause. Deprecate 'to' clause with declare target.
	(gfc_match_omp_declare_target): Whitespace.
	(match_omp_metadirective): Deprecate 'default' clause on
	metadirectives.
	(resolve_omp_clauses): Deprecate executable allocate directives.

2025-12-11  supers1ngular  <supers1ngular@baylibre.com>

	* cpp.cc (cpp_define_builtins): Bump _OPENMP version.
	* invoke.texi: Update docs for '-Wdeprecated-openmp'.
	* lang.opt (Wdeprecated-openmp): Add warning.
	* lang.opt.urls: Regenerated.
	* openmp.cc (gfc_match_omp_clauses): Deprecate master affinity
	policy.
	(gfc_match_omp_parallel_master): Deprecate master construct.
	(gfc_match_omp_parallel_master_taskloop): Ditto.
	(gfc_match_omp_parallel_master_taskloop_simd): Ditto.
	(gfc_match_omp_master): Ditto.
	(gfc_match_omp_master_taskloop): Ditto.
	(gfc_match_omp_master_taskloop_simd): Ditto.
	(resolve_omp_clauses): Warn for deprecated use of
	{use,is}_device_ptr.

2025-12-08  Harald Anlauf  <anlauf@gmx.de>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/123025
	* decl.cc (match_char_length): Add a check for the
	obsolete '*' style of character declarations in the
	alternate branch of checking so we dont miss two
	use cases:

2025-12-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122693
	* array.cc (gfc_match_array_constructor): Stash and restore
	gfc_current_ns after the call to 'gfc_match_type_spec'.

2025-12-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122670
	* decl.cc (gfc_get_pdt_instance): Ensure that, in an interface
	body, PDT instances imported implicitly if the template has
	been explicitly imported.
	* module.cc (read_module): If a PDT template appears in a use
	only statement, implicitly add the instances as well.

2025-12-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122669
	* resolve.cc (resolve_allocate_deallocate): Mold expressions
	with an array reference and a constant size must be resolved
	for each allocate object.

2025-12-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122578
	* primary.cc (gfc_match_varspec): Try to resolve a typebound
	generic procedure selector expression to provide the associate
	name with a type. Also, resolve component calls. In both cases,
	make a copy of the selector expression to guard against changes
	made by gfc_resolve_expr.

2025-12-05  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/122977
	* expr.cc (gfc_is_simply_contiguous): For an associate variable
	check whether the associate target is contiguous.
	* resolve.cc (resolve_symbol): Skip array type check for an
	associate variable when	the target has the contiguous attribute.

2025-12-05  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (resolve_omp_clauses): Permit zero with
	DYN_GROUPPRIVATE clause.
	* trans-openmp.cc (fallback): Generate TREE code
	for DYN_GROUPPRIVATE and remove 'sorry'.

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

	PR fortran/103371
	* decl.cc (gfc_get_pdt_instance): Remove the requirement that
	PDT components be of the same type as the enclosing type. Apply
	initializers other than the default to PDT components.
	* primary.cc (gfc_match_rvalue): Make combination of the two
	actual_arglists conditional on 'type_spec_list' having been
	seen as well together with applying component names to all the
	arguments.
	* trans-decl.cc (gfc_init_default_dt): Add 'pdt_ok' to the args
	and use it to signal that a PDT can be default initialized.
	(gfc_init_default_pdt): New function to check that a pdt is OK
	for default intialization before calling gfc_init_default_dt.
	(gfc_trans_deferred_vars): Use gfc_init_default_pdt.
	* trans.h: Add bool 'pdt_ok' to prototype with defaul value of
	false.

2025-12-01  Christopher Albert  <albert@tugraz.at>
	    Harald Anlauf  <anlauf@gcc.gnu.org>

	PR fortran/107721
	PR fortran/102417
	* arith.cc (eval_intrinsic): Call gfc_check_constructor_type on
	array constructor operands with explicit type-spec to ensure
	element type conversion before operations.  Resolve character
	array constructors before CONCAT operations.
	(reduce_binary_ac, reduce_binary_ca, reduce_binary_aa): Preserve
	character length info in result arrays.
	* array.cc (check_constructor_type): Simplify non-constant
	expressions before type checking to handle parenthesized elements.
	Handle nested character array constructors with explicit type-spec
	when outer constructor has no type-spec.
	(gfc_resolve_character_array_constructor): Recursively propagate
	type-spec to nested array constructors.  If the nested constructor
	has an explicit type-spec, resolve it first before propagating
	the outer type-spec.

2025-12-01  Tobias Burnus  <tburnus@baylibre.com>

	* gfortran.texi (Default exponents): Remove spurious @menu entry.

2025-11-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* lang.opt.urls: Regenerate.

2025-11-28  Tobias Burnus  <tburnus@baylibre.com>

	PR c/122892
	* openmp.cc (gfc_resolve_omp_allocate): Reject non-local
	static variables with cgroup/pteam/thread allocators.
	* parse.cc: Permit OMP ALLOCATE in BLOCK DATA.

2025-11-26  Tobias Burnus  <tburnus@baylibre.com>

	* dump-parse-tree.cc (show_attr): Handle OpenMP's 'local' clause
	and the 'groupprivate' directive.
	(show_omp_clauses): Handle dyn_groupprivate.
	* frontend-passes.cc (gfc_code_walker): Walk dyn_groupprivate.
	* gfortran.h (enum gfc_statement): Add ST_OMP_GROUPPRIVATE.
	(enum gfc_omp_fallback, gfc_add_omp_groupprivate,
	gfc_add_omp_declare_target_local): New.
	* match.h (gfc_match_omp_groupprivate): New.
	* module.cc (enum ab_attribute, mio_symbol_attribute, load_commons,
	write_common_0): Handle 'groupprivate' + declare target's 'local'.
	* openmp.cc (gfc_omp_directives): Add 'groupprivate'.
	(gfc_free_omp_clauses): Free dyn_groupprivate.
	(enum omp_mask2): Add OMP_CLAUSE_LOCAL and OMP_CLAUSE_DYN_GROUPPRIVATE.
	(gfc_match_omp_clauses): Match them.
	(OMP_TARGET_CLAUSES): Add OMP_CLAUSE_DYN_GROUPPRIVATE.
	(OMP_DECLARE_TARGET_CLAUSES): Add OMP_CLAUSE_LOCAL.
	(gfc_match_omp_declare_target): Handle groupprivate + fixes.
	(gfc_match_omp_threadprivate): Code move to and calling now ...
	(gfc_match_omp_thread_group_private): ... this new function.
	Also handle groupprivate.
	(gfc_match_omp_groupprivate): New.
	(resolve_omp_clauses): Resolve dyn_groupprivate.
	* parse.cc (decode_omp_directive): Match groupprivate.
	(case_omp_decl, parse_spec, gfc_ascii_statement): Handle it.
	* resolve.cc (resolve_symbol): Handle groupprivate.
	* symbol.cc (gfc_check_conflict, gfc_copy_attr): Handle 'local'
	and 'groupprivate'.
	(gfc_add_omp_groupprivate, gfc_add_omp_declare_target_local): New.
	* trans-common.cc (build_common_decl,
	accumulate_equivalence_attributes): Print 'sorry' for
	groupprivate and declare target's local.
	* trans-decl.cc (add_attributes_to_decl): Likewise..
	* trans-openmp.cc (gfc_trans_omp_clauses): Print 'sorry' for
	dyn_groupprivate.
	(fallback): Process declare target with link/local as
	done for 'enter'.

2025-11-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/104650
	* decl.cc (gfc_get_pdt_instance): If the PDT template has
	finalizers, make a new f2k_derived namespace for this intance
	and copy the template namespace into it. Set the instance
	template_sym field to point to the template.
	* expr.cc (gfc_check_pointer_assign): Allow array value pointer
	lvalues to point to scalar null expressions in initialization.
	* gfortran.h : Add the template_sym field to gfc_symbol.
	* resolve.cc (gfc_resolve_finalizers): For a pdt_type, copy the
	final subroutines with the same type argument into the pdt_type
	finalizer list. Prevent final subroutine type checking and
	creation of the vtab for pdt_templates.
	* symbol.cc (gfc_free_symbol): Do not call gfc_free_namespace
	for pdt_type with finalizers. Instead, free the finalizers and
	the namespace.

2025-11-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122766
	* decl.cc (gfc_match_decl_type_spec): A pdt_type found while
	parsing a contains section can only arise from the typespec of
	a function declaration. This can be retained in the typespec.
	Once we are parsing the function, the first reference to this
	derived type will find that it has no symtree. Provide it with
	one so that gfc_use_derived does not complain and, again,retain
	it in the typespec.

2025-11-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/32365
	* parse.cc (parse_executable): Reject declaration/OpenMP
	specification statements seen after executable code
	unconditionally, keeping the legacy DATA diagnostic as
	a warning.

2025-11-17  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/122709
	* resolve.cc (resolve_assoc_var): If the associate target is a
	contiguous pointer, so is the associate variable.

2025-11-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.texi: Remove section "Experimental features for future
	Fortran revisions". Move documentation of UNSIGNED into Extensions.
	Mention flang compatibility.

2025-11-17  Jakub Jelinek  <jakub@redhat.com>

	* parse.cc (gfc_parse_file): Avoid arithmetics or
	bitwise operations between enumerators from different enums.

2025-11-14  Yuao Ma  <c8ef@outlook.com>

	* trans-expr.cc (conv_dummy_value): Add check for NULL allocatable.

2025-11-14  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/117070
	* array.cc (check_constructor): Allow procedures as potential
	target of a procedure pointer.

2025-11-13  Andrew Stubbs  <ams@codesourcery.com>
	    Kwok Cheung Yeung  <kcyeung@baylibre.com>
	    Thomas Schwinge  <tschwinge@baylibre.com>

	* openmp.cc (is_predefined_allocator): Use GOMP_OMP_PREDEF_ALLOC_MAX
	and GOMP_OMPX_PREDEF_ALLOC_MIN/MAX instead of hardcoded values in the
	comment.

2025-11-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR other/122638
	* gfortran.texi (OpenMP): Fix syntax.
	* intrinsic.texi (UINT): Fix syntax.

2025-11-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/96255
	* match.cc (apply_typespec_to_iterator): Call gfc_set_sym_referenced
	for both new and shadow iterator symbols.

2025-11-12  Tobias Burnus  <tburnus@baylibre.com>

	PR libgomp/119677
	* intrinsic.texi (OpenMP Modules): Add omp_default_device.
	* openmp.cc (gfc_resolve_omp_context_selector): Accept
	omp_default_device as conforming device number.

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

	PR fortran/96255
	* resolve.cc (gfc_resolve_forall): Delete outer_sym

2025-11-11  Christopher Albert  <albert@tugraz.at>

	PR fortran/90519
	* trans-expr.cc (strip_parentheses): New helper function to strip
	INTRINSIC_PARENTHESES operators from expressions.
	(is_runtime_conformable): Use strip_parentheses to handle cases
	like a = (a) when checking for self-assignment.
	(gfc_trans_assignment_1): Strip parentheses before checking if
	expr2 is a variable, ensuring deep_copy is enabled for cases like
	a = (a). Also strip parentheses when checking for self-assignment
	to avoid use-after-free in finalization.
	(gfc_trans_scalar_assign): Add comment about parentheses handling.
	* class.cc (generate_finalization_wrapper): Create separate result
	symbol for finalizer wrapper functions instead of self-referencing
	the procedure symbol, avoiding ICE in gimplify_call_expr.

2025-11-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Steve Kargl  <kargl@gcc.gnu.org>

	PR fortran/96255
	* gfortran.h (gfc_forall_iterator): Add bool shadow field.
	* match.cc (apply_typespec_to_iterator): New helper function to
	consolidate shadow variable creation logic.
	(match_forall_header): Add type-spec parsing for DO CONCURRENT
	and FORALL. Create shadow variables when type-spec differs from
	outer scope. Replace duplicated code with apply_typespec_to_iterator.
	* resolve.cc (replace_in_expr_recursive): New function to recursively
	walk expressions and replace symbol references.
	(replace_in_code_recursive): New function to recursively walk code
	blocks and replace symbol references.
	(gfc_replace_forall_variable): New entry point for shadow variable
	substitution.
	(gfc_resolve_assign_in_forall): Skip many-to-one assignment warning
	for DO CONCURRENT.
	(gfc_count_forall_iterators): Handle both EXEC_FORALL and
	EXEC_DO_CONCURRENT with assertion.
	(gfc_resolve_forall): Skip F2018 obsolescence warning for DO
	CONCURRENT. Fix memory allocation check. Add NULL checks for shadow
	variables. Implement shadow variable walker.
	(gfc_resolve_code): Set gfc_do_concurrent_flag for DO CONCURRENT
	constructs to enable constraint checking.

2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>

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

2025-11-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/113338
	* decl.cc (gfc_verify_c_interop_param): Allow further types of
	dummy argument without the VALUE attribute as specified in
	F2018 18.3.6 item (5).

2025-11-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/121628
	* trans-array.cc (seen_derived_types): Move to file scope and
	preserve/restore around generate_element_copy_wrapper.
	* trans-intrinsic.cc (conv_intrinsic_atomic_op): Reuse
	gfc_trans_force_lval when forcing addressable CAF temps.

2025-11-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/121628
	* trans-array.cc (get_copy_helper_function_type): New function to
	create function type for element copy helpers.
	(get_copy_helper_pointer_type): New function to create pointer type
	for element copy helpers.
	(generate_element_copy_wrapper): New function to generate runtime
	helper for element-wise deep copying of recursive types.
	(structure_alloc_comps): Detect recursive allocatable array
	components and use runtime helper instead of inline recursion.
	Add includes for cgraph.h and function.h.
	* trans-decl.cc (gfor_fndecl_cfi_deep_copy_array): New declaration
	for runtime deep copy helper.
	(gfc_build_builtin_function_decls): Initialize the runtime helper
	declaration.
	* trans-intrinsic.cc (conv_intrinsic_atomic_op): Enhance handling of
	constant values in coarray atomic operations by detecting and
	materializing address-of-constant expressions.
	* trans.h (gfor_fndecl_cfi_deep_copy_array): Add external declaration.

2025-11-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122566
	* decl.cc (gfc_get_pdt_instance): Add non-PDT type exstention.

2025-11-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122501
	PR fortran/122524
	* primary.cc (gfc_convert_to_structure_constructor): Correct
	whitespace issue.
	(gfc_match_rvalue): Remove the attempt to match specific procs
	before filling out PDT constructor. Instead, defer this until
	resolution with the condition that there not be a following
	arglist and more than one procedure in the generic interface.

2025-11-05  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/122570
	* openmp.cc (resolve_omp_metadirective): Fix 'skip' of
	never matchable metadirective variants.

2025-11-04  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/122564
	* resolve.cc (resolve_locality_spec): Delete temporary hash_set.

2025-11-04  Paul-Antoine Arras  <parras@baylibre.com>

	PR fortran/122369
	PR fortran/122508
	* gfortran.h (gfc_rebind_label): Declare new function.
	* parse.cc (parse_omp_metadirective_body): Rebind labels to the outer
	region. Maintain a vector of metadirective regions.
	(gfc_parse_file): Initialise it.
	* parse.h (GFC_PARSE_H): Declare it.
	* symbol.cc (gfc_get_st_label): Look for existing labels in outer
	metadirective regions.
	(gfc_rebind_label): Define new function.
	(gfc_define_st_label): Accept duplicate labels in metadirective body.
	(gfc_reference_st_label): Accept shared DO termination labels in
	metadirective body.

2025-11-03  Steve Kargl  <kargls@comcast.net>

	PR fortran/122513
	* resolve.cc (check_default_none_expr): Do not allow an
	iterator in a locality spec. Allow a named constant to be
	used within the loop.

2025-11-01  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/78640
	* resolve.cc (resolve_fl_procedure): Check function result of a
	pure function against F2018:C1585.

2025-10-31  Yuao Ma  <c8ef@outlook.com>

	* intrinsic.texi: Fix typo.
	* trans-intrinsic.cc (conv_intrinsic_atomic_cas): Remove unreachable
	code.

2025-10-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122452
	* primary.cc (gfc_match_rvalue): Give priority to specific
	procedures in a generic interface with the same name as a
	PDT template. If found, use as the procedure instead of the
	constructor generated from the PDT template.

2025-10-30  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.cc: Cleanup obsolete comment.

2025-10-29  Yuao Ma  <c8ef@outlook.com>

	* trans-expr.cc (gfc_conv_gfc_desc_to_cfi_desc): Remove unreachable
	code.

2025-10-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122165
	* primary.cc (gfc_match_varspec): If the previous component ref
	was a type specification parameter, a type inquiry ref cannot
	follow.

2025-10-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122433
	PR fortran/122434
	* decl.cc (gfc_get_pdt_instance): Prevent a PDT component of
	the same type as the template from being converted into an
	instance.
	* resolve.cc (gfc_impure_variable): The result of a pure
	function is a valid allocate object since it is pure.

2025-10-28  Yuao Ma  <c8ef@outlook.com>

	PR fortran/122342
	* trans-const.cc (gfc_conv_constant): Create a variable for the
	non-char pointer.

2025-10-28  Paul-Antoine Arras  <parras@baylibre.com>

	PR fortran/122439
	* openmp.cc (gfc_resolve_omp_context_selector): Skip selectors that have
	OMP_TRAIT_INVALID.

2025-10-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/922290
	PR fortran/95541
	* resolve.cc (resolve_typebound_intrinsic_op): Add pdt_template
	to the list of preemted specifics.
	* trans-stmt.cc (trans_associate_var): PDT array and string
	components are separately allocated for each element of a PDT
	array, so copy in and copy out the selector expression.

2025-10-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/122325
	* options.cc (gfc_init_options_struct): Set flag_complex_method
	to fortran rules.

2025-10-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122290
	* decl.cc (variable_decl): Matching component initializer
	expressions in PDT templates should be done with gfc_match_expr
	to avoid reduction too early. If the expression type is unknown
	copy the component typespec.
	(gfc_get_pdt_instance): Change comment from a TODO to an
	explanation. Insert parameter values in initializers. For
	components that are not marked with PDT attributes, do the
	full reduction for init expressions.
	* primary.cc (gfc_match_actual_arglist): Convert PDT kind exprs
	using the component initializer.
	* resolve.cc (resolve_typebound_intrinsic_op): Preempt
	gfc_check_new_interface for pdt_types as well as entities used
	in submodules.
	* simplify.cc (get_kind): Remove PDT kind conversion.

2025-10-25  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/114023
	* trans-expr.cc (gfc_trans_pointer_assignment): Always set dtype
	when remapping a pointer.  For unlimited polymorphic LHS use
	elem_len from RHS.
	* trans-intrinsic.cc (gfc_conv_is_contiguous_expr): Extend inline
	generated code for IS_CONTIGUOUS for pointer arguments to detect
	when span differs from the element size.

2025-10-24  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/122386
	* dependency.cc (gfc_ref_needs_temporary_p): Revert r16-518.
	* trans-intrinsic.cc (gfc_conv_intrinsic_transfer): Force temporary
	for SOURCE not being a simply-contiguous array.

2025-10-24  Paul-Antoine Arras  <parras@baylibre.com>

	PR fortran/121452
	* openmp.cc (resolve_omp_do): Allow CONTINUE as end statement of a
	perfectly nested loop.

2025-10-21  Paul-Antoine Arras  <parras@baylibre.com>

	PR c/120180
	PR fortran/122306
	* gfortran.h (enum gfc_exec_op): Add EXEC_OMP_FIRST_OPENMP_EXEC and
	EXEC_OMP_LAST_OPENMP_EXEC.
	* openmp.cc (gfc_match_omp_context_selector): Remove static. Remove
	checks on score. Add cleanup. Remove checks on trait properties.
	(gfc_match_omp_context_selector_specification): Remove static. Adjust
	calls to gfc_match_omp_context_selector.
	(gfc_match_omp_declare_variant): Adjust call to
	gfc_match_omp_context_selector_specification.
	(match_omp_metadirective): Likewise.
	(icode_code_error_callback): Reject all statements except
	'assume' and 'metadirective'.
	(gfc_resolve_omp_context_selector): New function.
	(resolve_omp_metadirective): Skip metadirectives which context selectors
	can be statically resolved to false. Replace metadirective by its body
	if only 'nothing' remains.
	(gfc_resolve_omp_declare): Call gfc_resolve_omp_context_selector for
	each variant.

2025-10-21  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (gfc_omp_directive): Add comment to 'allocate';
	add 6.x unimplemented directives as comment-out entries.

2025-10-18  Yuao Ma  <c8ef@outlook.com>

	* resolve.cc (resolve_conditional): Allow character in cond-expr.
	* trans-const.cc (gfc_conv_constant): Handle want_pointer.
	* trans-expr.cc (gfc_conv_conditional_expr): Fill se->string_length.
	(gfc_conv_string_parameter): Handle COND_EXPR tree code.

2025-10-17  Josef Melcr  <jmelcr02@gmail.com>

	* f95-lang.cc (ATTR_CALLBACK_GOMP_LIST): New attr list
	corresponding to the list in builtin-attrs.def.

2025-10-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/121191
	* trans-array.cc (has_parameterized_comps): New function which
	checks if a derived type has parameterized components.
	( gfc_deallocate_pdt_comp): Use it to prevent deallocation of
	PDTs if there are no parameterized components.

2025-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/95543
	PR fortran/103748
	* decl.cc (insert_parameter_exprs): Guard param->expr before
	using it.
	(gfc_get_pdt_instance): Substitute paramaters in kind default
	initializers.
	(gfc_match_decl_type_spec): Emit an error if a type paramter
	specification list appears in a variable declaraion with a
	non-parameterized type.
	* primary.cc (gfc_match_rvalue): Emit an error if a type spec
	list is empty.

2025-10-11  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/50377
	PR fortran/122257
	* resolve.cc (resolve_actual_arglist): Initialize variable.

2025-10-10  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/50377
	* resolve.cc (resolve_actual_arglist): Check procedure actual
	arguments.

2025-10-09  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/122206
	* trans-types.cc (gfc_get_function_type): Do not clobber an
	existing procedure interface.

2025-10-09  David Malcolm  <dmalcolm@redhat.com>

	* error.cc: Define INCLUDE_VECTOR.

2025-10-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/49111
	* decl.cc (verify_bind_c_sym): Modify condition for generation of
	accessibility warning, and adjust warning message.

2025-10-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/93175
	PR fortran/102240
	PR fortran/102686
	* array.cc (match_array_element_spec): For pdt templates, call
	gfc_correct_parm_expr to elimante extraneous symbols from the
	bound expressions.
	* decl.cc (correct_parm_expr, gfc_correct_parm_expr): New fcns
	that remove symbols that are not PDT parameters from the type
	specification expressions.
	(insert_parameter_exprs): Process function symbols as if they
	are variables in the substitution with parameter expressions.
	(gfc_get_pdt_instance): Make sure that the parameter list of
	PDT components is updated as the instance is built. Move the
	construction of pdt_strings down a bit in the function and
	remove the tie up with pdt_arrays.
	* gfortran.h: Add prototype for gfc_correct_parm_expr.
	* resolve.cc (resolve_component): Skip testing for constant
	specification expressions in pdt_template component string
	lengths and pdt_strings.
	* trans-array.cc (structure_alloc_comps): Remove testing for
	deferred parameters and instead make sure that components of
	PDT type have parameters substituted with the parameter exprs
	of the enclosing PDT.

2025-10-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/102901
	* trans-array.cc (structure_alloc_comps): Do not use
	gfc_check_pdt_dummy with pointer or allocatable components.

2025-10-04  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/107968
	* trans-io.cc (gfc_trans_transfer): Also scalarize I/O of section
	of an array pointer.

2025-10-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122089
	* decl.cc (gfc_get_pdt_instance): If gfc_extract_int is true an
	error has occurred because the kind expr was not provided. Use
	the template in this case and return MATCH_YES.

2025-10-01  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/122080
	* trans-array.cc (gfc_conv_array_parameter): Wrap the derivation of
	bounds and strides for the descriptor of an optional dummy array
	argument by a test on argument presence when it is supposed to be
	passed to an optional argument.

2025-10-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/122089
	* decl.cc (gfc_get_pdt_instance): If the pdt_template is use
	associated, 'module' field should be copied to this instance.

2025-09-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/102241
	* gfortran.h: Add symbol attribute 'pdt_comp'.
	* module.cc : Add 'pdt_comp' to 'ab_attribute' and 'attr_bits'.
	(mio_symbol_attribute): Set 'pdt_comp'.
	* resolve.cc (resolve_component): If a PDT component is found
	in a non-PDT type, generate the PDT instance, if necessary, and
	set the 'pdt_comp' attribute. Fix some whitespace issues.
	* trans-decl.cc (gfc_get_symbol_decl, gfc_trans_deferred_vars):
	If 'pdt_comp' set, initialize the PDT components.
	* trans-stmt.cc (gfc_trans_deallocate): Verify that a typespec
	parameter list is available for PDT components of ordinary
	derived types.

2025-09-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87908
	* interface.cc (check_interface0): Revert changes.

2025-09-26  Harald Anlauf  <anlauf@gcc.gnu.org>

	PR fortran/122002
	* decl.cc (gfc_get_pdt_instance): Initialize 'instance' to NULL
	and set 'kind_value' to zero before calling gfc_extract_int.
	* primary.cc (gfc_match_rvalue): Intitialize 'ctr_arglist' to
	NULL and test for default values if gfc_get_pdt_instance
	returns NULL.

2025-09-25  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/121939
	* trans-types.cc (gfc_init_types): Set string flag for all
	character types.

2025-09-24  Mikael Morin  <morin-mikael@orange.fr>

	PR fortran/122046
	* symbol.cc (gfc_get_procedure_ns): Try to find the namespace
	among the list of contained namespaces before returning the
	value from the formal_ns field.

2025-09-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87908
	* interface.cc (check_interface0): If a vtable is found in the
	interface list, check that it is either a subroutine or a
	function. Let resolve.cc do any further checking.

2025-09-22  Steve Kargl  <pault@gcc.gnu.org>

	PR fortran/103508
	* decl.cc (gfc_match_end): Remove only the current partial
	rather than removing the entire sibling chain.

2025-09-21  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/109010
	* st.cc (gfc_free_statement): Also free components expr3 and expr4.

2025-09-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/121161
	* invoke.texi: Mention that -ffrontend-optimize is required
	for -fexternal-blas64.
	* options.cc (gfc_post_options): Fatal error if -fexternal-blas64
	is specified without -ffrontend-optimize.
	* trans-types.cc (gfc_init_kinds): Fatal error if -fexternal-blas64
	is specified on a system which does not have 64-bit ptrdiff_t.

2025-09-21  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/108581
	* trans-array.cc (gfc_conv_expr_descriptor): Take the dynamic
	string length into account when deriving the dataptr offset for
	a deferred-length character array.

2025-09-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83746
	* trans-decl.cc (gfc_trans_deferred_vars): If a procedure with
	an non-allocatable, non-pointer explicit PDT result has no
	default initializer, the parameterized components should be
	allocated.

2025-09-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83746
	* trans-array.cc (structure_alloc_comps): Add the pre and post
	blocks to 'fnblock' for all the evaluations of parameterized
	expressions in PDT component allocatation.

2025-09-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/121948
	* decl.cc (gfc_get_pdt_instance): Copy the contents of 'tb' and
	not the pointer.
	* primary.cc (gfc_match_rvalue): If there is only one actual
	argument list, use if for the type spec parameter values. If
	this fails try the default type specification values and use
	the actual arguments for the component values.
	* resolve.cc (build_init_assign): Don't initialize implicit PDT
	function results.

2025-09-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.cc (optimize_namespace): Handle
	flag_external_blas64.
	(call_external_blas): If flag_external_blas is set, use
	gfc_integer_4_kind as the argument kind, gfc_integer_8_kind otherwise.
	* gfortran.h (gfc_integer_8_kind): Define.
	* invoke.texi: Document -fexternal-blas64.
	* lang.opt: Add -fexternal-blas64.
	* lang.opt.urls: Regenerated.
	* options.cc (gfc_post_options): -fexternal-blas is incompatible
	with -fexternal-blas64.

2025-09-15  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83763
	* trans-decl.cc (gfc_trans_deferred_vars): Ensure that the
	parameterized components of PDTs that do not have allocatable
	components are deallocated on leaving scope.
	* trans-expr.cc (gfc_trans_assignment_1): Do a dependency check
	on PDT assignments. If there is a dependency between lhs and
	rhs, deallocate the lhs parameterized components after the rhs
	has been evaluated.

2025-09-14  Yuao Ma  <c8ef@outlook.com>

	* dump-parse-tree.cc (show_expr): Add support for EXPR_CONDITIONAL.
	* expr.cc (gfc_get_conditional_expr): Add cond-expr constructor.
	(gfc_copy_expr, free_expr0, gfc_is_constant_expr,
	simplify_conditional, gfc_simplify_expr, gfc_check_init_expr,
	check_restricted, gfc_traverse_expr): Add support for EXPR_CONDITIONAL.
	* frontend-passes.cc (gfc_expr_walker): Ditto.
	* gfortran.h (enum expr_t): Add EXPR_CONDITIONAL.
	(gfc_get_operator_expr): Format fix.
	(gfc_get_conditional_expr): New decl.
	* matchexp.cc
	(match_conditional, match_primary): Parsing for EXPR_CONDITIONAL.
	* module.cc (mio_expr): Add support for EXPR_CONDITIONAL.
	* resolve.cc (resolve_conditional, gfc_resolve_expr): Ditto.
	* trans-array.cc (gfc_walk_conditional_expr, gfc_walk_subexpr): Ditto.
	* trans-expr.cc
	(gfc_conv_conditional_expr): Codegen for EXPR_CONDITIONAL.
	(gfc_apply_interface_mapping_to_expr, gfc_conv_expr,
	gfc_conv_expr_reference): Add support for EXPR_CONDITIONAL.

2025-09-11  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/121616
	* primary.cc (gfc_variable_attr): Properly set dimension attribute
	from a component ref.

2025-09-09  Harald Anlauf  <anlauf@gmx.de>

	* trans-intrinsic.cc (conv_intrinsic_fstat_lstat_stat_sub): Init
	some variables.

2025-09-09  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/82480
	* check.cc (error_unsupported_kind): Helper function to report an
	unsupported kind of an argument.
	(check_minrange4): Helper function to report if an integer variable
	does not have a decimal range of at least four.
	(gfc_check_fstat): Adjust checks for generalization of instrinsic
	function FSTAT.
	(gfc_check_fstat_sub): Likewise for subroutine FSTAT.
	(gfc_check_stat): Likewise for functio STAT.
	(gfc_check_stat_sub): Likewise for subroutine STAT.
	* intrinsic.texi: Document generalized versions of intrinsics
	STAT/LSTAT/FSTAT.
	* iresolve.cc (gfc_resolve_stat): STAT function result shall have
	the same kind as the VALUES argument.
	(gfc_resolve_lstat): Likewise for LSTAT.
	(gfc_resolve_fstat): Likewise for FSTAT.
	(gfc_resolve_stat_sub): Resolve proper library subroutine for STAT.
	(gfc_resolve_lstat_sub): Likewise for LSTAT.
	* trans-decl.cc (gfc_build_intrinsic_function_decls): Declare
	fndecls for required subroutines in runtine library.
	* trans-intrinsic.cc (conv_intrinsic_fstat_lstat_stat_sub): Emit
	runtime wrapper code for the library functions, taking care of
	possible kind conversion of the optional STATUS argument of the
	subroutine versions of the intrinsics.
	(gfc_conv_intrinsic_subroutine): Use it.
	* trans.h (GTY): Declare prototypes.

2025-09-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/84008
	* decl.cc (insert_parameter_exprs): Correct the typespec of new
	variable declarations, where the type is set to BT_PROCEDURE as
	a precaution for resolution of the whole program unit.

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

	PR fortran/84119
	* resolve.cc (reset_array_ref_to_scalar): New function using
	chunk broken out from gfc_resolve_ref.
	(gfc_resolve_ref): Call the new function, the first time for
	PDT type parameters and the second time for LEN inquiry refs.

2025-09-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/84432
	PR fortran/114815
	* expr.cc (gfc_check_assign_symbol): Check that components in a
	PDT with a default initializer have type and length parameters
	that reduce to constant integer expressions.
	* trans-expr.cc (gfc_trans_assignment_1): Parameterized
	components cannot have default initializers so they must be
	allocated after initialization.

2025-09-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83762
	PR fortran/102457
	* decl.cc (gfc_get_pdt_instance): Check that variable PDT parm
	expressions are of type integer. Note that the symbol must be
	tested since the expression often appears as BT_PROCEDURE.

2025-09-03  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/121263
	* trans-intrinsic.cc (gfc_conv_intrinsic_transfer): For an
	unlimited polymorphic SOURCE to TRANSFER use saved descriptor
	if possible.

2025-09-02  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/89707
	* decl.cc (gfc_get_pdt_instance): Copy the typebound procedure
	field from the PDT template. If the template interface has
	kind=0, provide the new instance with an interface with a type
	spec that points to that of the parameterized component.
	(match_ppc_decl): When 'saved_kind_expr' this is a PDT and the
	expression should be copied to the component kind_expr.
	* gfortran.h: Define gfc_get_tbp.

2025-09-02  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87669
	* expr.cc (gfc_spec_list_type): If no LEN components are seen,
	unconditionally return 'SPEC_ASSUMED'. This suppresses an
	invalid error in match.cc(gfc_match_type_is).

2025-09-01  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/121727
	* trans-expr.cc (gfc_const_length_character_type_p): New helper
	function.
	(conv_dummy_value): Use it to determine if a character actual
	argument has a constant length.  If a character actual argument is
	constant and longer than the dummy, truncate it at compile time.

2025-08-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/99709
	* trans-array.cc (structure_alloc_comps): For the case
	COPY_ALLOC_COMP, do a deep copy of non-allocatable PDT arrays
	Suppress the use of 'duplicate_allocatable' for PDT arrays.
	* trans-expr.cc (conv_dummy_value): When passing to a PDT dummy
	with the VALUE attribute, do a deep copy to ensure that
	parameterized components are reallocated.

2025-08-29  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/93330
	* interface.cc (get_sym_storage_size): Add argument size_known to
	indicate that the storage size could be successfully determined.
	(get_expr_storage_size): Likewise.
	(gfc_compare_actual_formal): Use them to handle zero-sized dummy
	and actual arguments.
	If a character formal argument has the pointer or allocatable
	attribute, or is an array that is not assumed or explicit size,
	we generate an error by default unless -std=legacy is specified,
	which falls back to just giving a warning.
	If -Wcharacter-truncation is given, warn on a character actual
	argument longer than the dummy.  Generate an error for too short
	scalar character arguments if -std=f* is given instead of just a
	warning.

2025-08-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82843
	* intrinsic.cc (gfc_convert_type_warn): If the 'from_ts' is a
	PDT instance, copy the derived type to the target ts.
	* resolve.cc (gfc_resolve_ref): A PDT component in a component
	reference can be that of the pdt_template. Unconditionally use
	component of the PDT instance to ensure that the backend_decl
	is set during translation. Likewise if a component is
	encountered that is a PDT template type, use the component
	parmeters to convert to the correct PDT instance.

2025-08-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82205
	* decl.cc (gfc_get_pdt_instance): Copy the default initializer
	for components that are not PDT parameters or parameterized. If
	any component is a pointer or allocatable set the attributes
	'pointer_comp' or 'alloc_comp' of the new PDT instance.
	* primary.cc (gfc_match_rvalue): Implement the correct form of
	PDT constructors with 'name (type parms)(component values)'.
	* trans-array.cc (structure_alloc_comps): Apply scalar default
	initializers. Array initializers await the coming change in PDT
	representation.
	* trans-io.cc (transfer_expr): Do not output the type parms of
	a PDT in list directed output.

2025-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/114611
	* io.cc: Issue an error on use of the H descriptor in
	a format with -std=f95 or higher. Otherwise, issue a
	warning.

2025-08-26  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/118839
	* trans-openmp.cc (gfc_trans_omp_declare_variant): Error if variant
	is the same as base.

2025-08-26  Sandra Loosemore  <sloosemore@baylibre.com>

	* openmp.cc (gfc_match_omp_declare_variant): Make check for a
	missing "match" clause unconditional.

2025-08-21  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/121627
	* module.cc (create_int_parameter_array):  Avoid NULL
	pointer dereference and enhance error message.

2025-08-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/84122
	PR fortran/85942
	* parse.cc (parse_derived): PDT type parameters are not allowed
	an explicit access specification and must appear before a
	PRIVATE statement. If a PRIVATE statement is seen, mark all the
	other components as PRIVATE.
	* simplify.cc (get_kind): Convert a PDT KIND component into a
	specification expression using the default initializer.

2025-08-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* intrinsic.texi: Correct the example given for FRACTION.
	Move the TEAM_NUMBER section to after the TANPI to align
	with the order gven in the index.

2025-08-16  H.J. Lu  <hjl.tools@gmail.com>

	PR fortran/107421
	* trans-common.cc (build_common_decl): Call set_decl_tls_model
	after processing a variable.
	* trans-decl.cc (gfc_finish_var_decl): Likewise.
	(get_proc_pointer_decl): Likewise.

2025-08-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/89092
	* resolve.cc (was_declared): Add subroutine attribute.

2025-08-12  Yuao Ma  <c8ef@outlook.com>

	* check.cc (gfc_check_c_f_pointer): Check lower arg legitimacy.
	* intrinsic.cc (add_subroutines): Teach c_f_pointer about lower arg.
	* intrinsic.h (gfc_check_c_f_pointer): Add lower arg.
	* intrinsic.texi: Update lower arg for c_f_pointer.
	* trans-intrinsic.cc (conv_isocbinding_subroutine): Add logic handle lower.

2025-08-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/121398
	* resolve.cc (check_pdt_args): New function.
	(check_generic_tbp_ambiguity): Use it to ensure that args to
	typebound procedures that do not have the same declared type as
	the containing derived type have 'pass1/2' set to null. This
	avoids false ambiguity errors.
	(resolve_typebound_procedure): Do not generate a wrong type
	error for typebound procedures marked as pass if they are of a
	different declared type to the containing pdt_type.

2025-08-11  Jakub Jelinek  <jakub@redhat.com>

	* gfortran.h (gfc_case): Fix comment typo, singe -> single.

2025-08-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/121182
	* decl.cc (match_generic_stmt): New function based on original
	gfc_match_generic but feeding namespace rather than typebound
	generics.
	(match_typebound_generic): Renamed original gfc_match_generic.
	(gfc_match_generic): New function that selects between type
	bound generic and other generic statements and calls one of the
	above two functions as appropriate.
	* parse.cc (decode_specification_statement): Allow generic
	statements.
	(parse_spec): Accept a generic statement in a specification
	block.

2025-08-05  Mikael Morin  <morin-mikael@orange.fr>

	* trans-stmt.cc (trans_associate_var): Remove overwrite of
	the polymorphic associate variable's array descriptor offset.

2025-08-05  Mikael Morin  <morin-mikael@orange.fr>

	* trans-array.cc (trans_array_constructor): Remove the update of
	the array descriptor upper bound after array constructor
	expansion.

2025-08-05  Mikael Morin  <morin-mikael@orange.fr>

	* trans-array.cc (gfc_conv_expr_descriptor): Remove
	isolated initialization of the span field before passing to
	the function that will do the initialization.

2025-08-05  Mikael Morin  <morin-mikael@orange.fr>

	* trans-decl.cc (gfc_trans_deferred_vars): Don't default
	initialize the span of local pointer arrays.

2025-08-05  Mikael Morin  <morin-mikael@orange.fr>

	* trans-stmt.cc (trans_associate_var): Remove overwrite of the
	span field of the associate variable's array descriptor.

2025-08-05  Mikael Morin  <morin-mikael@orange.fr>

	* trans-expr.cc (gfc_trans_pointer_assignment): Remove overwrite
	of the span after assignment of the array descriptor in the
	polymorphic function result to non-polymorphic pointer case.

2025-08-05  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.h (gfc_se): Remove field use_offset.
	* trans-expr.cc (gfc_conv_intrinsic_to_class): Remove use_offset
	initialization.
	(gfc_conv_procedure_call): Likewise.
	* trans-stmt.cc (trans_associate_var): Likewise.

2025-08-05  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.cc (gfc_alloc_allocatable_for_assignment): Use the
	offset setter instead of generating a write to the offset.
	(gfc_conv_array_parameter): Use the offset setter instead of
	generating a write to the value returned by the offset getter.
	* trans-expr.cc (gfc_trans_alloc_subarray_assign): Likewise.

2025-08-05  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.cc (gfc_conv_descriptor_data_addr): Remove.
	* trans-array.h (gfc_conv_descriptor_data_addr): Remove.
	* trans-decl.cc (gfc_trans_deferred_vars): Use
	gfc_conv_descriptor_data_get.

2025-08-05  Mikael Morin  <mikael@gcc.gnu.org>

	* trans.cc (gfc_finalize_tree_expr): Use the data setter instead
	of writing to the value returned by the data getter.
	* trans-decl.cc (gfc_trans_deferred_vars): Likewise.
	* trans-stmt.cc (trans_associate_var): Use the data setter
	instead of writing to the value dereferenced from the data
	address.

2025-08-01  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-decl.cc (gfc_trans_deferred_vars): Fix closing brace in
	a comment.

2025-07-31  Mikael Morin  <morin-mikael@orange.fr>

	PR fortran/121342
	* trans-expr.cc (gfc_conv_subref_array_arg): Remove offset
	update.
	(gfc_conv_procedure_call): For polymorphic functions, move the
	scalarizer descriptor information...
	* trans-array.cc (gfc_add_loop_ss_code): ... here, and evaluate
	the bounds to fresh variables.
	(get_class_info_from_ss): Remove offset update.
	(gfc_conv_ss_startstride): Don't set a zero value for function
	result upper bounds.
	(late_set_loop_bounds): New.
	(gfc_conv_loop_setup): If the bounds of a function result have
	been set, and no other array provided loop bounds for a
	dimension, use the function result bounds as loop bounds for
	that dimension.
	(gfc_set_delta): Don't skip delta setting for polymorphic
	function results.

2025-07-30  Mikael Morin  <morin-mikael@orange.fr>

	* trans-array.cc (gfc_array_init_size): Remove the nelems
	argument.
	(gfc_array_allocate): Update caller.  Remove the nelems
	argument.
	* trans-stmt.cc (gfc_trans_allocate): Update caller.  Remove the
	nelems variable.
	* trans-array.h (gfc_array_allocate): Update prototype.

2025-07-30  Yuao Ma  <c8ef@outlook.com>

	* check.cc (gfc_check_split): Argument check for SPLIT.
	* gfortran.h (enum gfc_isym_id): Define GFC_ISYM_SPLIT.
	* intrinsic.cc (add_subroutines): Register SPLIT intrinsic.
	* intrinsic.h (gfc_check_split): New decl.
	(gfc_resolve_split): Ditto.
	* intrinsic.texi: SPLIT documentation.
	* iresolve.cc (gfc_resolve_split): Add resolved_sym for SPLIT.
	* trans-decl.cc (gfc_build_intrinsic_function_decls): Add decl for
	SPLIT in libgfortran.
	* trans-intrinsic.cc (conv_intrinsic_split): SPLIT codegen.
	(gfc_conv_intrinsic_subroutine): Handle SPLIT case.
	* trans.h (GTY): Declare gfor_fndecl_string_split{, _char4}.

2025-07-27  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/121185
	* trans-expr.cc (gfc_trans_assignment_1): Use the same condition
	to set the is_alloc_lhs flag and to decide to generate
	reallocation code.  Add explicit call to gfc_fix_class_refs
	before evaluating the condition.

2025-07-27  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/121185
	* trans-array.cc (set_factored_descriptor_value): Also trigger
	the saving of the previously selected reference on encountering
	an INDIRECT_REF.  Extract the saving code...
	(save_ref): ... here as a new function.

2025-07-27  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/121185
	* trans-expr.cc (gfc_get_class_from_expr): Give up class
	container lookup on the second COMPONENT_REF after an array
	descriptor.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* error.cc: Make diagnostics::context::m_source_printing private.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* cpp.cc: Update usage of "diagnostic_info" to explicitly refer to
	"diagnostics::diagnostic_info".
	* error.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* cpp.cc: Update for diagnostic_t becoming
	enum class diagnostics::kind.
	* error.cc: Likewise.
	* options.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* cpp.cc: Update for renaming of
	diagnostic_option_id to diagnostics::option_id.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* error.cc: Update for move of diagnostic-color.h to
	diagnostics/color.h.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* error.cc: Update for diagnostic_context becoming
	diagnostics::context.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* error.cc: Update to add "m_" prefix to fields of
	diagnostic_info throughout.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* error.cc: Update for move of diagnostics output formats into
	namespace "diagnostics" as "sinks".
	* gfortran.h: Likewise.

2025-07-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/121203
	* trans-expr.cc (gfc_conv_procedure_call): Obtain the character
	length of an assumed character length procedure from the typespec
	of the actual argument even if there is no explicit interface.

2025-07-21  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-decl.cc (gfc_trans_deferred_vars): Fix indentation.

2025-07-21  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/119106
	* expr.cc (simplify_constructor): Do not simplify constants.
	(gfc_simplify_expr): Continue to simplify expression when an
	iterator is present.

2025-07-21  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.cc (gfc_conv_ss_descriptor): Move the descriptor
	expression initialisation...
	(set_factored_descriptor_value): ... to this new function.
	Before initialisation, walk the reference expression passed as
	argument and save some of its subexpressions to a variable.
	(substitute_t): New struct.
	(maybe_substitute_expr): New function.
	(substitute_subexpr_in_expr): New function.

2025-07-18  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/121145
	* trans-expr.cc (gfc_conv_procedure_call): Do not create pointer
	check for proc-pointer actual passed to optional dummy.

2025-07-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/121060
	* interface.cc (matching_typebound_op): Defer determination of
	specific procedure until resolution by returning NULL.

2025-07-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>

	* decl.cc (gfc_match_import): Correct minor whitespace snafu
	and fix NULL pointer dereferences in two places.

2025-07-15  Kwok Cheung Yeung  <kcyeung@baylibre.com>

	PR fortran/104428
	* trans-openmp.cc (gfc_trans_omp_declare_variant): Check that proc_st
	is non-NULL before dereferencing.  Add line number to error message.

2025-07-15  Mikael Morin  <mikael@gcc.gnu.org>

	* gfortran.h (gfc_symbol): Remove field allocated_in_scope.
	* trans-array.cc (gfc_array_allocate): Don't set it.
	(gfc_alloc_allocatable_for_assignment): Likewise.
	Generate the unallocated descriptor bounds initialisation
	before the opening of the reallocation code block.  Create a
	variable and use it as additional condition to the unallocated
	descriptor bounds initialisation.

2025-07-15  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.cc (gfc_conv_ss_descriptor): Don't evaluate
	offset and data to a variable if is_alloc_lhs is set.  Move the
	existing evaluation decision condition for data...
	(save_descriptor_data): ... here as a new predicate.
	(evaluate_bound): Add argument save_value.  Omit the evaluation
	of the value to a variable if that argument isn't set.
	(gfc_conv_expr_descriptor): Update caller.
	(gfc_conv_section_startstride): Update caller.  Set save_value
	if is_alloc_lhs is not set.  Omit the evaluation of stride to a
	variable if save_value isn't set.
	(gfc_set_delta): Omit the evaluation of delta to a variable
	if is_alloc_lhs is set.
	(gfc_is_reallocatable_lhs): Return false if flag_realloc_lhs
	isn't set.
	(gfc_alloc_allocatable_for_assignment): Don't update
	the variables that may be stored in saved_offset, delta, and
	data.  Call instead...
	(update_reallocated_descriptor): ... this new procedure.
	* trans-expr.cc (gfc_trans_assignment_1): Don't omit setting the
	is_alloc_lhs flag if the right hand side is an intrinsic
	function.  Clear the flag if the right hand side is scalar.

2025-07-15  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-expr.cc (gfc_trans_assignment_1): Generate array
	reallocation code before entering the scalarisation loops.

2025-07-15  Filip Kastl  <fkastl@suse.cz>

	* resolve.cc (resolve_select_type): Fix indentation.

2025-07-12  Tobias Burnus  <tburnus@baylibre.com>

	* invoke.texi (-Wsurprising): Note about OpenACC warning
	related to PARAMATER.
	* openmp.cc (resolve_omp_clauses, gfc_resolve_oacc_declare):
	Accept PARAMETER for OpenACC but add surprising warning.
	* trans-openmp.cc (gfc_trans_omp_variable_list,
	gfc_trans_omp_clauses): Ignore PARAMETER inside clauses.

2025-07-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/106035
	* decl.cc (build_sym): Emit an error if a symbol associated by
	an IMPORT, ONLY or IMPORT, all statement is being redeclared.
	(gfc_match_import): Parse and check the F2018 versions of the
	IMPORT statement. For scopes other than and interface body, if
	the symbol cannot be found in the host scope, generate it and
	set it up such that gfc_fixup_sibling_symbols can transfer its
	'imported attribute' if it turnes out to be a not yet parsed
	procedure. Test for violations of C897-8100.
	* gfortran.h : Add 'import_only' to the gfc_symtree structure.
	Add the enum, 'importstate', which is used for values the new
	field 'import_state' in gfc_namespace.
	* parse.cc (gfc_fixup_sibling_symbols): Transfer the attribute
	'imported' to the new symbol.
	* resolve.cc (check_sym_import_status, check_import_status):
	New functions to test symbols and expressions for violations of
	F2018:C8102.
	(resolve_call): Test the 'resolved_sym' against C8102 by a call
	to 'check_sym_import_status'.
	(gfc_resolve_expr): If the expression is OK and an IMPORT
	statement has been registered in the current scope, test C102
	by calling 'check_import_status'.
	(resolve_select_type): Test the declared derived type in TYPE
	IS and CLASS IS statements.

2025-07-08  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/120637
	* class.cc (finalize_component): Return true, when a finalizable
	component was detect and do not free it.

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

	* trans-intrinsic.cc (conv_intrinsic_move_alloc): Add pre and
	post code for the FROM and TO arguments.

2025-07-04  Martin Jambor  <mjambor@suse.cz>

	* io.cc (format_asterisk): Add a brace around static initialization
	location part of the field locus.

2025-07-03  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/120843
	* resolve.cc (resolve_operator): Remove conformability check,
	because it is not in the standard.

2025-07-01  Harald Anlauf  <anlauf@gmx.de>

	* coarray.cc (check_add_new_component): Treat pure and elemental
	intrinsic functions the same as non-intrinsic ones.
	(create_caf_add_data_parameter_type): Fix front-end memleaks.
	* trans-intrinsic.cc (conv_caf_func_index): Likewise.

2025-07-01  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/120847
	* coarray.cc (check_add_new_comp_handle_array): Make the count
	of components static to be able to create more than one.  Create
	an array component only for array expressions.

2025-07-01  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/120843
	* resolve.cc (resolve_operator): Report inconsistent coranks
	only when not referencing this_image.
	(gfc_op_rank_conformable): Treat coranks as inconformable only
	when a coindex other then implicit this_image is used.

2025-06-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/120784
	* interface.cc (gfc_match_end_interface): Detect empty local_name.

2025-06-26  Martin Jambor  <mjambor@suse.cz>

	* match.cc (gfc_match_nullify): Initialize p to NULL;

2025-06-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* trans.cc (gfc_allocate_using_malloc): Prevent possible memory
	leak when allocation was already done.

2025-06-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	* resolve.cc (resolve_fl_derived0): Do not create the token
	component when not in coarray lib mode.
	* trans-types.cc: Do not access the token when not in coarray
	lib mode.

2025-06-26  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/120711
	* trans-array.cc (gfc_trans_array_ctor_element): Store the value
	of the offset for reuse.

2025-06-24  Tobias Burnus  <tburnus@baylibre.com>

	* trans-stmt.cc (gfc_trans_call_acc_attach_detach): New.
	(gfc_trans_call): Call it.

2025-06-24  Harald Anlauf  <anlauf@gmx.de>
	    Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/120743
	* trans-expr.cc (gfc_conv_substring): Substring indices are of
	type gfc_charlen_type_node.  Convert to size_type_node for
	pointer arithmetic only after offset adjustments have been made.

2025-06-24  Mikael Morin  <morin-mikael@orange.fr>

	* misc.cc (gfc_var_name_for_select_type_temp): New function.
	* gfortran.h (gfc_var_name_for_select_type_temp): Declare it.
	* resolve.cc (resolve_select_type): Pick a discriminating name
	from the SELECT TYPE variable reference and use it in the name
	of the temporary variable that is generated.  Truncate name to
	the buffer size.
	* match.cc (select_type_set_tmp): Likewise.  Pass the
	discriminating name...
	(select_intrinsic_set_tmp): ... to this function.  Use the
	discriminating name likewise.  Augment the buffer size to match
	that of select_type_set_tmp and resolve_select_type.

2025-06-23  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (OACC_WAIT_CLAUSES): Add if clause.
	* trans-openmp.cc (gfc_trans_oacc_wait_directive): Handle it.

2025-06-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/120784
	* interface.cc (gfc_match_end_interface): If a use-associated
	symbol is renamed, use the local_name for checking.

2025-06-19  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/120713
	* trans-array.cc (gfc_trans_deferred_array): Statically
	initialize deferred length variable for SAVEd character arrays.

2025-06-18  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/82480
	* check.cc (gfc_check_fstat): Extend checks to INTENT(OUT) arguments.
	(gfc_check_fstat_sub): Likewise.
	(gfc_check_stat): Likewise.
	(gfc_check_stat_sub): Likewise.
	* intrinsic.texi: Adjust documentation.

2025-06-16  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/51961
	* resolve.cc (conformable_arrays): Use modified rank check when
	MOLD= expression is given.

2025-06-12  Yuao Ma  <c8ef@outlook.com>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/113152
	* intrinsic.texi: Document new half-revolution trigonometric
	functions. Reorder doc for atand.

2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
	    Sandra Loosemore  <sloosemore@baylibre.com>

	* f95-lang.cc (ATTR_PURE_NOTHROW_LIST): Define.
	* trans-expr.cc (get_builtin_fn): Handle omp_get_num_devices
	and omp_get_intrinsic_device.
	* gfortran.h (gfc_option_t): Add disable_omp_... for them.
	* options.cc (gfc_handle_option): Handle them with
	-fno-builtin-.

2025-06-04  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/120483
	* trans-expr.cc (gfc_conv_substring): Use pointer arithmetic on
	static allocatable char arrays.

2025-06-03  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/99838
	* data.cc (gfc_assign_data_value): For a new initializer use the
	location from the constructor as fallback.

2025-05-30  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102599
	PR fortran/114022
	* expr.cc (simplify_complex_array_inquiry_ref): Helper function for
	simplification of inquiry references (%re/%im) of constant complex
	arrays.
	(find_inquiry_ref): Use it for handling %re/%im inquiry references
	of complex arrays.
	(scalarize_intrinsic_call): Fix frontend memleak.
	* primary.cc (gfc_match_varspec): When the reference is NULL, the
	previous simplification has succeeded in evaluating inquiry
	references also of arrays.

2025-05-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/120355
	* interface.cc (compare_parameter): If the global function has a
	result clause, take typespec from there for the comparison against
	the dummy argument.

2025-05-30  Julian Brown  <julian@codesourcery.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* parse.cc (tree.h, fold-const.h, tree-hash-traits.h): Add includes
	(for additions to omp-general.h).

2025-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/120049
	* check.cc(check_c_ptr_2): Rephrase error message
	for clarity.

2025-05-28  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/113152
	* simplify.cc (gfc_simplify_cospi, gfc_simplify_sinpi): Avoid using
	mpfr_fmod_ui in the MPFR < 4.2.0 version.

2025-05-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/119856
	* io.cc: Set missing comma error checks to STD_STD_LEGACY.

2025-05-28  Yuao Ma  <c8ef@outlook.com>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/113152
	* gfortran.h (enum gfc_isym_id): Add new enum.
	* intrinsic.cc (add_functions): Register new intrinsics. Changing the call
	from gfc_resolve_trigd{,2} to gfc_resolve_trig{,2}.
	* intrinsic.h (gfc_simplify_acospi, gfc_simplify_asinpi,
	gfc_simplify_asinpi, gfc_simplify_atanpi, gfc_simplify_atan2pi,
	gfc_simplify_cospi, gfc_simplify_sinpi, gfc_simplify_tanpi): New.
	(gfc_resolve_trig): Rename from gfc_resolve_trigd.
	(gfc_resolve_trig2): Rename from gfc_resolve_trigd2.
	* iresolve.cc (gfc_resolve_trig): Rename from gfc_resolve_trigd.
	(gfc_resolve_trig2): Rename from gfc_resolve_trigd2.
	* mathbuiltins.def: Add 7 new math builtins and re-align.
	* simplify.cc (gfc_simplify_acos, gfc_simplify_asin,
	gfc_simplify_acosd, gfc_simplify_asind): Revise error message.
	(gfc_simplify_acospi, gfc_simplify_asinpi,
	gfc_simplify_asinpi, gfc_simplify_atanpi, gfc_simplify_atan2pi,
	gfc_simplify_cospi, gfc_simplify_sinpi, gfc_simplify_tanpi): New.

2025-05-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101735
	* primary.cc (gfc_match_varspec): Correct order of logic.

2025-05-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/120049
	* check.cc (gfc_check_c_associated): Use new helper functions.
	Only call check_c_ptr_1 if optional c_ptr_2 tests succeed.
	(check_c_ptr_1): Handle only c_ptr_1 checks.
	(check_c_ptr_2): Expand checks for c_ptr_2 and handle cases
	where there is no derived pointer in the gfc_expr and check
	the inmod_sym_id only if it exists.
	* misc.cc (gfc_typename): Handle the case for BT_VOID rather
	than throw an internal error.

2025-05-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101735
	* expr.cc (find_inquiry_ref): If an inquiry reference applies to
	a substring, use that, and calculate substring length if needed.
	* primary.cc (extend_ref): Also handle attaching to end of
	reference chain for appending.
	(gfc_match_varspec): Discrimate between arrays of character and
	substrings of them.  If a substring is taken from a character
	component of a derived type, get the proper typespec so that
	inquiry references work correctly.
	(gfc_match_rvalue): Handle corner case where we hit a seemingly
	dangling '%' and missed an inquiry reference. Try another match.

2025-05-27  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* error.cc (gfc_diagnostic_start_span): Update for diagnostic.h
	changes.

2025-05-19  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/120099
	* trans-types.cc (gfc_return_by_reference): Intrinsic functions
	returning complex numbers may return their result by reference
	with -ff2c.

2025-05-15  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/85750
	* resolve.cc (resolve_symbol): Reorder conditions when to apply
	default-initializers.

2025-05-15  Tobias Burnus  <tburnus@baylibre.com>

	* trans-openmp.cc (gfc_omp_deep_mapping_do): Handle SSA_NAME if
	a def_stmt is available.

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

	PR fortran/120139
	* dump-parse-tree.cc (get_c_type_name): If no constant
	size of an array exists, output an asterisk.

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

	PR fortran/120107
	* dump-parse-tree.cc (write_type): Do not dump non-interoperable
	types.

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

	PR fortran/120225
	* simplify.cc (gfc_simplify_cotand): Fix used argument in
	mpfr_tanu call.

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

	PR fortran/120225
	* simplify.cc: Include "trigd_fe.inc" only with MPFR < 4.2.0.
	(rad2deg, rad2deg): Only define if MPFR < 4.2.0.
	(gfc_simplify_acosd, gfc_simplify_asind, gfc_simplify_atand,
	gfc_simplify_atan2d, gfc_simplify_cosd, gfc_simplify_tand,
	gfc_simplify_cotand): Use mpfr_...u functions with MPFR >= 4.2.0.

2025-05-13  Yuao Ma  <c8ef@outlook.com>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/113413
	* intrinsic.cc (do_check): Minor doc polish.
	(add_functions): Add atand(y, x) mapping.
	* intrinsic.texi: Update atand example.

2025-05-13  Jakub Jelinek  <jakub@redhat.com>
	    Daniil Kochergin  <daniil2472s@gmail.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/120191
	* trans-intrinsic.cc (strip_kind_from_actual): Remove.
	(gfc_conv_intrinsic_minmaxloc): Don't call strip_kind_from_actual.
	Free and clear kind_arg->expr if non-NULL.  Set back_arg->name to
	"%VAL" instead of a loop looking for last argument.  Remove actual
	variable, use array_arg instead.  Free and clear dim_arg->expr if
	non-NULL for BT_CHARACTER cases instead of using a loop.

2025-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/120163
	* gfortran.h: Add formal_resolved to gfc_symbol.
	* resolve.cc (gfc_resolve_formal_arglist): Set it.
	(resolve_function): Do not call gfc_get_formal_from_actual_arglist
	if we already resolved a formal arglist.
	(resolve_call): Likewise.

2025-05-10  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102891
	* dependency.cc (gfc_ref_needs_temporary_p): Within an array
	reference, inquiry references of complex variables generally
	need a temporary.

2025-05-10  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/120193
	* trans-types.cc (gfc_init_types): For flag_unsigned use
	build_distinct_type_copy or build_variant_type_copy from
	gfc_character_types[index_char] if index_char > -1 instead of
	gfc_character_types[index_char] or
	gfc_build_unsigned_type (&gfc_unsigned_kinds[index]).

2025-05-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/120179
	* match.cc (gfc_match_do): Do not attempt to match end-of-statement
	twice.

2025-05-07  Paul Thomas  <pault@gcc.gnu.org>
	    and Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/119948
	* primary.cc (match_variable): Module procedures with sym the
	same as result can be treated as variables, although marked
	external.

2025-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/120049
	* check.cc (gfc_check_c_associated): Modify checks to avoid
	ICE and allow use, intrinsic :: iso_c_binding from a separate
	module file.

2025-05-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/119928
	* interface.cc (gfc_check_dummy_characteristics): Do not issue
	error if one dummy symbol has been generated from an actual
	argument and the other one has OPTIONAL, INTENT, ALLOCATABLE,
	POINTER, TARGET, VALUE, ASYNCHRONOUS or CONTIGUOUS.
	(gfc_get_formal_from_actual_arglist): Do nothing if symbol
	is a class.

2025-05-04  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/119986
	* expr.cc (is_subref_array): When searching for array references,
	do not terminate early so that inquiry references to complex
	components work.
	* primary.cc (gfc_variable_attr): A substring reference can refer
	to either a scalar or array character variable.  Adjust search
	accordingly.

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

	PR fortran/119948
	* resolve.cc (gfc_impure_variable): The result of a module
	procedure with an interface declaration is not impure even if
	the current namespace is not the same as the symbol's.

2025-04-25  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/102900
	* trans-decl.cc (gfc_generate_function_code): Use sym->result
	when generating fake result decl for functions returning
	allocatable or pointer results.
	* trans-expr.cc (gfc_conv_procedure_call): When checking the
	pointer status of an actual argument passed to a non-allocatable,
	non-pointer dummy which is of type CLASS, do not check the
	class container of the actual if it is just a procedure pointer.
	(gfc_trans_pointer_assignment): Fix treatment of assignment to
	NULL of a procedure pointer.

2025-04-23  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/119200
	* check.cc (gfc_check_lcobound): Use locus from intrinsic_where.
	(gfc_check_image_index): Same.
	(gfc_check_num_images): Same.
	(gfc_check_team_number): Same.
	(gfc_check_this_image): Same.
	(gfc_check_ucobound): Same.

2025-04-22  Andre Vehreschild  <vehre@gcc.gnu.org>

	* match.cc (match_exit_cycle): Allow to exit team block.
	(gfc_match_end_team): Create end_team node also without
	parameter list.
	* trans-intrinsic.cc (conv_stat_and_team): Team and team_number
	only need to be a single pointer.
	* trans-stmt.cc (trans_associate_var): Create a mapping coarray
	token for coarray associations or it is not addressed correctly.
	* trans.h (enum gfc_coarray_regtype): Add mapping mode to
	coarray register.

2025-04-22  Andre Vehreschild  <vehre@gcc.gnu.org>

	* check.cc (gfc_check_image_index): Check for team or
	team_number correctnes.
	(gfc_check_num_images): Same.
	* gfortran.texi: Update documentation on num_images' API
	function.
	* intrinsic.cc (add_functions): Update signature of image_index
	and num_images.  Both can take either a team handle or number.
	* intrinsic.h (gfc_check_num_images): Update signature to take
	either team or team_number.
	(gfc_check_image_index): Can take coarray, subscripts and team
	or team number now.
	(gfc_simplify_image_index): Same.
	(gfc_simplify_num_images): Same.
	(gfc_resolve_image_index): Same.
	* intrinsic.texi: Update documentation of num_images() Fortran
	function.
	* iresolve.cc (gfc_resolve_image_index): Update signature.
	* simplify.cc (gfc_simplify_num_images): Update signature and
	remove undocumented failed argument.
	(gfc_simplify_image_index): Add team or team number argument.
	* trans-intrinsic.cc (conv_stat_and_team): Because being
	optional teams need to be a pointer to the opaque pointer.
	(conv_caf_sendget): Correct call; was two arguments short.
	(trans_image_index): Support team or team_number.
	(trans_num_images): Same.
	(conv_intrinsic_cobound): Adapt to changed signature of
	num_images in call.
	* trans-stmt.cc (gfc_trans_sync): Same.

2025-04-22  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/87326
	* check.cc (gfc_check_this_image): Check the three different
	parameter lists possible for this_image and sort them correctly.
	* gfortran.texi: Update documentation on this_image's API.
	* intrinsic.cc (add_functions): Update this_image's signature.
	(check_specific): Add specific check for this_image.
	* intrinsic.h (gfc_check_this_image): Change to flexible
	argument list.
	* intrinsic.texi: Update documentation on this_image().
	* iresolve.cc (gfc_resolve_this_image): Resolve the different
	arguments.
	* simplify.cc (gfc_simplify_this_image): Simplify the simplify
	routine.
	* trans-decl.cc (gfc_build_builtin_function_decls): Update
	signature of this_image.
	* trans-expr.cc (gfc_caf_get_image_index): Use correct signature
	of this_image.
	* trans-intrinsic.cc (trans_this_image): Adapt to correct
	signature.

2025-04-22  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/88154
	PR fortran/88960
	PR fortran/97210
	PR fortran/103001
	* check.cc (team_type_check): Check a type for being team_type
	from the iso_fortran_env module.
	(gfc_check_image_status): Use team_type check.
	(gfc_check_get_team): Check for level argument.
	(gfc_check_team_number): Use team_type check.
	* expr.cc (gfc_check_assign): Add treatment for returning
	team_type in caf-single mode.
	* gfortran.texi: Add/Update documentation for get_team and
	team_number API functions.
	* intrinsic.cc (add_functions): Update get_team signature.
	* intrinsic.h (gfc_resolve_get_team): Add prototype.
	* intrinsic.texi: Add/Update documentation for get_team and
	team_number Fortran functions.
	* iresolve.cc (gfc_resolve_get_team): Resolve return type to be
	of type team_type.
	* iso-fortran-env.def: Update STAT_LOCK constants.  They have
	nothing to do with files.  Add level constants for get_team.
	* libgfortran.h: Add level and unlock_stat constants.
	* simplify.cc (gfc_simplify_get_team): Simply to correct return
	type team_type.
	* trans-decl.cc (gfc_build_builtin_function_decls): Update
	get_team and image_status API prototypes to correct signatures.
	* trans-intrinsic.cc (conv_intrinsic_image_status): Translate
	second parameter correctly.
	(conv_intrinsic_team_number): Translate optional single team
	argument correctly.
	(gfc_conv_intrinsic_function): Add translation of get_team.

2025-04-22  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/87326
	PR fortran/87556
	PR fortran/88254
	PR fortran/103796
	* coarray.cc (split_expr_at_caf_ref): Treat polymorphic types
	correctly.  Ensure resolve of expression after coindex.
	(create_allocated_callback): Fix parameter of allocated function
	for coarrays.
	(coindexed_expr_callback): Improve detection of coarrays in
	allocated function.
	* decl.cc (gfc_match_end): Add team block matching.
	* dump-parse-tree.cc (show_code_node): Dump change team block as
	such.
	* frontend-passes.cc (gfc_code_walker): Recognice team block.
	* gfortran.texi: Add documentation for team api functions.
	* intrinsic.texi: Add documentation about team_type in
	iso_fortran_env module.
	* iso-fortran-env.def (team_type): Use helper to get pointer
	kind.
	* match.cc (gfc_match_associate): Factor out matching of
	association list, because it is used in change team as well.
	(check_coarray_assoc): Ensure, that the association is to a
	coarray.
	(match_association_list): Match a list of association either in
	associate or in change team.
	(gfc_match_form_team): Match form team correctly include
	new_index.
	(gfc_match_change_team): Match change team with association
	list.
	(gfc_match_end_team): Match end team including stat and errmsg.
	(gfc_match_return): Prevent return from team block.
	* parse.cc (decode_statement): Sort team block.
	(next_statement): Same.
	(check_statement_label): Same.
	(accept_statement): Same.
	(verify_st_order): Same.
	(parse_associate): Renamed to move_associates_to_block...
	(move_associates_to_block): ... to enable reuse for change team.
	(parse_change_team): Parse it as block.
	(parse_executable): Same.
	* parse.h (enum gfc_compile_state): Add team block as compiler
	state.
	* resolve.cc (resolve_scalar_argument): New function to resolve
	an argument to a statement as a scalar.
	(resolve_form_team): Resolve its members.
	(resolve_change_team): Same.
	(resolve_branch): Prevent branch from jumping out of team block.
	(check_team): Removed.
	* trans-decl.cc (gfc_build_builtin_function_decls): Add stat and
	errmsg to team API functions and update their arguments.
	* trans-expr.cc (gfc_trans_subcomponent_assign): Also null the
	token when moving memory or an allocated() will not detect a
	free.
	* trans-intrinsic.cc (gfc_conv_intrinsic_caf_is_present_remote):
	Adapt to signature change no longer a pointer-pointer.
	* trans-stmt.cc (gfc_trans_form_team): Translate a form team
	including new_index.
	(gfc_trans_change_team): Translate a change team as a block.

2025-04-22  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/87939
	* check.cc (gfc_check_move_alloc): Add stat and errmsg to
	move_alloc.
	* dump-parse-tree.cc (show_sync_stat): New helper function.
	(show_code_node): Use show_sync_stat to print stat and errmsg.
	* gfortran.h (struct sync_stat): New struct to unify stat and
	errmsg handling.
	* intrinsic.cc (add_subroutines): Correct signature of
	move_alloc.
	* intrinsic.h (gfc_check_move_alloc): Correct signature of
	check_move_alloc.
	* match.cc (match_named_arg): Match an optional argument to a
	statement.
	(match_stat_errmsg): Match a stat= or errmsg= named argument.
	(gfc_match_critical): Use match_stat_errmsg to match the named
	arguments.
	(gfc_match_sync_team): Same.
	* resolve.cc (resolve_team_argument): Resolve an expr to have
	type TEAM_TYPE from iso_fortran_env.
	(resolve_scalar_variable_as_arg): Resolve an argument as a
	scalar type.
	(resolve_sync_stat): Resolve stat and errmsg expressions.
	(resolve_sync_team): Resolve a sync team statement using
	sync_stat helper.
	(resolve_end_team): Same.
	(resolve_critical): Same.
	* trans-decl.cc (gfc_build_builtin_function_decls): Correct
	sync_team signature.
	* trans-intrinsic.cc (conv_intrinsic_move_alloc): Store stat
	an errmsg optional arguments in helper struct and use helper
	to translate.
	* trans-stmt.cc (trans_exit): Implement DRY pattern for
	generating an _exit().
	(gfc_trans_sync_stat): Translate stat and errmsg contents.
	(gfc_trans_end_team): Use helper to translate stat and errmsg.
	(gfc_trans_sync_team): Same.
	(gfc_trans_critical): Same.
	* trans-stmt.h (gfc_trans_sync_stat): New function.
	* trans.cc (gfc_deallocate_with_status): Parameterize check at
	runtime to allow unallocated (co-)array when freeing a
	structure.
	(gfc_deallocate_scalar_with_status): Same and also add errmsg.
	* trans.h (gfc_deallocate_with_status): Signature changes.
	(gfc_deallocate_scalar_with_status): Same.

2025-04-19  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/119836
	* resolve.cc (check_pure_function): Fix checking for
	an impure subprogram within a DO CONCURRENT construct.
	(pure_subroutine): Ditto.

2025-04-16  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/106948
	* resolve.cc (gfc_pure_function): If a function has been resolved,
	but esym is not yet set, look at its attributes to see whether it
	is pure or elemental.

2025-04-15  Tobias Burnus  <tburnus@baylibre.com>

	* f95-lang.cc (LANG_HOOKS_OMP_DEEP_MAPPING,
	LANG_HOOKS_OMP_DEEP_MAPPING_P, LANG_HOOKS_OMP_DEEP_MAPPING_CNT):
	Define.
	* openmp.cc (gfc_match_omp_clause_reduction): Fix location setting.
	(resolve_omp_clauses): Permit allocatable components, reject
	them and polymorphic variables in PRIVATE/FIRSTPRIVATE.
	* trans-decl.cc (add_clause): Set clause location.
	* trans-openmp.cc (gfc_has_alloc_comps): Add ptr_ok and
	shallow_alloc_only Boolean arguments.
	(gfc_omp_replace_alloc_by_to_mapping): New.
	(gfc_omp_private_outer_ref, gfc_walk_alloc_comps,
	gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
	gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Update call to it.
	(gfc_omp_finish_clause): Minor cleanups, improve location data,
	handle allocatable components.
	(gfc_omp_deep_mapping_map, gfc_omp_deep_mapping_item,
	gfc_omp_deep_mapping_comps, gfc_omp_gen_simple_loop,
	gfc_omp_get_array_size, gfc_omp_elmental_loop,
	gfc_omp_deep_map_kind_p, gfc_omp_deep_mapping_int_p,
	gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_do,
	gfc_omp_deep_mapping_cnt, gfc_omp_deep_mapping): New.
	(gfc_trans_omp_array_section): Save array descriptor in case
	deep-mapping lang hook will need it.
	(gfc_trans_omp_clauses): Likewise; use better clause location data.
	* trans.h (gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_cnt,
	gfc_omp_deep_mapping): Add function prototypes.

2025-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/119669
	* interface.cc (compare_parameter): Error when mismatch between
	formal argument as subroutine and function.  If the dummy
	argument is a known function, set its typespec.

2025-04-12  Thomas Schwinge  <tschwinge@baylibre.com>

	PR fortran/101602
	* trans-stmt.cc (gfc_trans_concurrent_locality_spec): Fix
	'static_assert'.

2025-04-09  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/119656
	* interface.cc (gfc_compare_actual_formal): Fix front-end memleak
	when searching for matching interfaces.
	* trans-expr.cc (gfc_conv_procedure_call): If there is a formal
	dummy corresponding to an absent argument, use its type, and only
	fall back to inferred type otherwise.

2025-04-09  Paul Thomas  <pault@gcc.gnu.org>
	    and Harald Anlauf  <anlauf@gcc.gnu.org>

	PR fortran/119460
	* iresolve.cc (generate_reduce_op_wrapper): Increase the size
	of 'tname'. Change intent of 'a' and 'b' to intent_in.
	* trans-decl.cc (add_argument_checking): Do not test artificial
	formal symbols.
	* trans-expr.cc (gfc_conv_procedure_call): Remove reduce_scalar
	and the blocks triggered by it.
	* trans-intrinsic.cc (gfc_conv_intrinsic_function): Set the
	result of non-character, scalar reduce to be allocatable.

2025-04-09  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/101602
	* resolve.cc (resolve_locality_spec): Remove 'sorry, unimplemented'.
	* trans-stmt.cc (struct symbol_and_tree_t): New.
	(gfc_trans_concurrent_locality_spec): New.
	(gfc_trans_forall_1): Call it; update to handle local and local_init.
	* trans-decl.cc (gfc_start_saved_local_decls,
	gfc_stop_saved_local_decls): New; moved code from ...
	(gfc_process_block_locals): ... here. Call it.
	* trans.h (gfc_start_saved_local_decls,
	gfc_stop_saved_local_decls): Declare.

2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/118965
	* openmp.cc (gfc_parser_omp_clause_init_modifiers): Fix some
	inconsistent code indentation.  Remove code for recognizing
	clauses	without modifiers.  Diagnose prefer_type without a
	following paren.  Adjust error message for an unrecognized modifier.
	Diagnose missing target/targetsync modifier.
	(gfc_match_omp_init): Fix more inconsistent code indentation.

2025-03-28  Harald Anlauf  <anlauf@gmx.de>

	* check.cc (gfc_invalid_boz): Correct spelling of compiler flag in
	hint to -fallow-invalid-boz.

2025-03-26  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/118796
	* resolve.cc: Do not apply default initialization to a derived-type
	function result if the resolved function is use-associated.

2025-03-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/119419
	* dump-parse-tree.cc (write_funptr_fcn): New function.
	(write_type): Invoke it for C_FUNPTR.
	(write_interop_decl): Do not dump vtabs.

2025-03-25  Sandra Loosemore  <sloosemore@baylibre.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* trans-openmp.cc (gfc_trans_omp_declare_variant): Remove accidental
	redeclaration of pref.

2025-03-22  Jakub Jelinek  <jakub@redhat.com>

	* resolve.cc (resolve_procedure_expression): Remove extraneous space
	from the middle of diagnostics.

2025-03-21  Paul-Antoine Arras  <parras@baylibre.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* trans-openmp.cc (gfc_trans_omp_clauses): Make OMP_CLAUSE_DESTROY and
	OMP_CLAUSE_INIT addressable.
	* types.def (BT_FN_VOID_INT_INT_PTR_PTR_PTR_INT_PTR_INT_PTR_UINT_PTR):
	New.

2025-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/119406
	* resolve.cc (resolve_locality_spec): Add space in error
	message.

2025-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/119403
	* interface.cc (compare_parameter): Fix typo.

2025-03-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85836
	* check.cc (get_ul_from_cst_cl): New function used in
	check_operation.
	(check_operation): New function used in check_reduce and
	check_co_reduce.
	(gfc_check_co_reduce): Use it.
	(gfc_check_reduce): New function.
	(gfc_check_rename): Add prototype for intrinsic with 6 arguments.
	* gfortran.h : Add isym id for reduce and prototype for f6.
	* intrinsic.cc (do_check): Add another argument expression and use
	it in the call to the six argument specific check.
	(add_sym_6): New function.
	(add_functions): Add the discription of the reduce intrinsic and
	add it to the intrinsic list.
	* intrinsic.h : Add prototypes for gfc_check_reduce and
	gfc_resolve_reduce.
	* iresolve.cc (generate_reduce_op_wrapper): Generate a wrapper
	subroutine for the 'operation' function to enable the library
	implementation to be type agnostic and use pointer arithmetic
	throughout.
	(gfc_resolve_reduce): New function.
	* trans-expr.cc (gfc_conv_procedure_call): Add flag for scalar
	reduce. Generate a return variable 'sr' for scalar reduce, pass its
	address to the library function and return it as the scalar result.
	* trans-intrinsic.cc (gfc_conv_intrinsic_function): Array valued
	reduce is called in same way as reshape. Fall through for call to
	the scalar version.

2025-03-21  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/119380
	* trans-array.cc (structure_alloc_comps): Prevent freeing of
	procedure pointer components.

2025-03-21  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/119349
	* trans-expr.cc (gfc_conv_procedure_call): Prevent deallocation
	of array temporary for polymorphic temporary argument.

2025-03-19  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/116706
	* trans-array.cc (gfc_is_reallocatable_lhs): Fix check on
	allocatable components of derived type or class objects.

2025-03-19  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/119272
	* resolve.cc (resolve_compcall): Postpone error report when
	symbol is not resolved yet for component call resolve.

2025-03-18  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/119338
	* resolve.cc (resolve_allocate_expr): Check F2003:C626: Type-spec
	in ALLOCATE of an assumed-length character dummy argument shall be
	an asterisk.

2025-03-16  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/60560
	* expr.cc (gfc_traverse_expr): Do not descend into length type
	parameter for negative values of auxiliary parameter f.
	* resolve.cc (gfc_find_var_in_expr): New helper function to check
	dependence of an expression on given variable.
	(resolve_allocate_expr): Use it to determine if array bounds in an
	ALLOCATE statement depend explicitly on a variable.

2025-03-15  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/115271
	* module.cc (mio_omp_declare_simd_clauses): New, moved from ...
	(mio_omp_declare_simd): ... here. Update call, write empty '( )'
	if there is no declare simd but a declare variant.
	(mio_omp_declare_variant): New.
	(mio_symbol): Call it.
	* openmp.cc (gfc_match_omp_context_selector): Add comment about
	module.cc to TODO note.
	* trans-stmt.h (gfc_trans_omp_declare_variant): Take additional
	parent_ns argument.
	* trans-decl.cc (create_function_arglist,
	gfc_create_function_decl): Update call.
	* trans-openmp.cc (gfc_trans_omp_declare_variant): Take new
	argument, add some special case handling for attr.use_assoc.

2025-03-13  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/119118
	* dependency.cc (contains_forall_index_p): Let loop over elements
	of a constructor update its control variable.  Handle REF_INQUIRY
	in switch statement.
	(gfc_contains_implied_index_p): Likewise.

2025-03-12  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/98903
	* array.cc (gfc_copy_array_ref): Copy team, team_type and stat.
	(match_team_or_stat): Match a single team(_number)= or stat=.
	(gfc_match_array_ref): Add switching to image_selector_parsing
	and error handling when indices come after named arguments.
	* coarray.cc (move_coarray_ref): Move also team_type.
	* expr.cc (gfc_free_ref_list): Free team and stat expression.
	(gfc_find_team_co): Find team or team_number in array-ref.
	* gfortran.h (enum gfc_array_ref_team_type): New enum to
	distinguish unset, team or team_number expression.
	(gfc_find_team_co): Default searching to team= expressions.
	* resolve.cc (resolve_array_ref): Check for type correctness of
	team(_number) and stats in coindices.
	* trans-array.cc (gfc_conv_array_ref): Ensure stat is cleared
	when fcoarray=single is used.
	* trans-intrinsic.cc (conv_stat_and_team): Including team_number
	in conversion.
	(gfc_conv_intrinsic_caf_get): Propagate team_number to ABI
	routine.
	(conv_caf_send_to_remote): Same.
	(conv_caf_sendget): Same.

2025-03-11  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/119199
	* decl.cc (gfc_match_save): Reject SAVE statement of a COMMON block
	when in a BLOCK construct.
	* trans-common.cc (translate_common): Avoid NULL pointer dereference.

2025-03-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/119078
	* frontend-passes.cc (check_against_globals): Do not check
	for abstract interfaces or dummy arguments.
	* resolve.cc (gfc_verify_binding_labels): Adjust comment.
	Do not put abstract interfaces or dummy argument into global
	namespace.

2025-03-10  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107143
	* dependency.cc (check_data_pointer_types): Do not just compare
	for derived type, but for same derived type.

2025-03-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/119157
	* gfortran.h (gfc_pop_undo_symbol): Remove prototype.
	* interface.cc (gfc_get_formal_from_actual_arglist): Use
	gfc_commit_symbol() instead of gfc_pop_undo_symbol().
	* symbol.cc (gfc_pop_undo_symbol): Remove.

2025-03-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/119157
	* gfortran.h (gfc_symbol): Make ext_dummy_arglist_mismatch a
	one-bit bitfield
	(gfc_pop_undo_symbol): Declare prototype.
	* symbol.cc (gfc_pop_undo_symbol): New function.
	* interface.cc (gfc_get_formal_from_actual_arglist): Call it
	for artificially introduced formal variables.

2025-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/119054
	* resolve.cc (resolve_elemental_actual): When checking other
	actual arguments to elemental procedures, don't check
	attributes of literals and function calls.

2025-03-06  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/119118
	* dependency.cc (gfc_contains_implied_index_p): Helper function to
	determine if an expression has a dependence on an implied-do index.
	* dependency.h (gfc_contains_implied_index_p): Add prototype.
	* trans-expr.cc (gfc_conv_substring): Adjust logic to not generate
	substring bounds checks before implied-do indices have been
	substituted.

2025-03-05  Mark Wielaard  <mark@klomp.org>

	* lang.opt.urls: Regenerated.

2025-03-05  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/104684
	* trans-array.cc (gfc_conv_expr_descriptor): Look at the
	lang-specific akind and do a view convert when only the akind
	attribute differs between pointer and allocatable array.

2025-03-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/119049
	PR fortran/119074
	* dump-parse-tree.cc (seen_conflict): New static varaible.
	(gfc_dump_external_c_prototypes): Initialize it. If it was
	set, write out a warning that -std=c23 will not work.
	(write_proc): Move the work of actually writing out the
	formal arglist to...
	(write_formal_arglist): New function. Handle external dummy
	parameters and their argument lists. If there were mismatched
	arguments, output an empty argument list in pre-C23 style.
	* gfortran.h (struct gfc_symbol): Add ext_dummy_arglist_mismatch
	flag and formal_at.
	* invoke.texi: Document -Wexternal-argument-mismatch.
	* lang.opt: Put it in.
	* resolve.cc (resolve_function): If warning about external
	argument mismatches, build a formal from actual arglist the
	first time around, and later compare and warn.
	(resolve_call): Likewise

2025-03-04  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/103391
	* trans-expr.cc (gfc_trans_assignment_1): Do not use poly assign
	for pointer arrays on lhs (as it is done for allocatables
	already).

2025-03-04  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/77872
	* trans-expr.cc (gfc_get_tree_for_caf_expr): Pick up token from
	decl when it is present there for class types.

2025-03-04  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/77872
	* trans-expr.cc (gfc_conv_procedure_call): Use attr instead of
	doing type check and branching for BT_CLASS.

2025-03-03  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/101577
	* symbol.cc (verify_bind_c_derived_type): Generate error message
	for derived type with no components in standard conformance mode,
	indicating that this is a GNU extension.

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

	PR fortran/118747
	* trans-array.cc (gfc_trans_array_ctor_element): Remove copy to
	temporary variable.
	* trans-expr.cc (gfc_conv_procedure_call): Use references to
	array members instead of copies when freeing after use.
	Formatting fix.

2025-03-02  Sandra Loosemore  <sloosemore@baylibre.com>

	* intrinsic.texi: Fix inconsistent capitalization of argument
	names and other minor copy-editing.

2025-03-02  Sandra Loosemore  <sloosemore@baylibre.com>

	PR fortran/47928
	* intrinsic.texi: Move the "Standard" subheading farther down.

2025-03-02  Sandra Loosemore  <sloosemore@baylibre.com>

	PR fortran/47928
	* gfortran.texi: Move all the "Syntax" subheadings ahead of
	"Description", and rename to "Synopsis".
	* intrinsic.texi: Likewise.

2025-03-02  Sandra Loosemore  <sloosemore@baylibre.com>

	PR fortran/47928
	* intrinsic.texi: Put a blank line between "@item @emph{}"
	subheadings, but not more than one.

2025-03-02  Sandra Loosemore  <sloosemore@baylibre.com>

	PR fortran/47928
	* gfortran.texi: Consistently use "@emph{Notes}:" instead of
	other spellings.
	* intrinsic.texi: Likewise.  Also fix an inconsistent capitalization
	and remove a redundant "Standard" entry.

2025-03-01  Harald Anlauf  <anlauf@gmx.de>

	* match.cc (gfc_match_nullify): Free matched expression when
	cleaning up.
	* primary.cc (match_variable): Initialize result to NULL.

2025-02-28  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/118730
	* resolve.cc: Mark unused derived type variable with finalizers
	referenced to execute finalizer when leaving scope.

2025-02-27  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/118789
	* trans-stmt.cc (trans_associate_var): Compare pointed to types when
	expr to associate is already a pointer.

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

	PR fortran/108233
	* trans-expr.cc (gfc_trans_assignment_1): Remove SAVE_EXPR on lhs.

2025-02-25  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* coarray.cc (fixup_comp_refs): For class types set correct
	component (class) type.
	(split_expr_at_caf_ref): Provide location.
	* trans-intrinsic.cc (conv_caf_send_to_remote): Look at
	generated formal argument and not declared one to detect
	descriptor arrays.
	(conv_caf_sendget): Same.

2025-02-25  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* trans-intrinsic.cc (conv_caf_sendget): Use the size of data
	transferred between the two images and not the descritor's size.

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

	PR fortran/48958
	* trans-array.cc (gfc_trans_deferred_array): Initialize the data
	component of non-saved pointers when -fcheck=pointer is set.

2025-02-21  Tobias Burnus  <tburnus@baylibre.com>

	* trans-array.cc (gfc_full_array_size): Obtain the rank from
	the array descriptor for assumed rank.
	(gfc_tree_array_size): Likewise; permit expr = NULL to operate
	only the tree.
	(gfc_conv_descriptor_stride_get): Update for added assumed-rank
	array types.
	* trans-openmp.cc (gfc_omp_finish_clause): Likewise.
	* trans-types.cc (gfc_build_array_type, gfc_get_derived_type,
	gfc_get_array_descr_info): Likewise.
	* trans.h (enum gfc_array_kind): Add
	GFC_ARRAY_ASSUMED_RANK_{ALLOCATABLE,POINTER{,_CONT}}.

2025-02-20  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* gfortran.texi: Remove deprecated functions from documentation.
	* trans-decl.cc (gfc_build_builtin_function_decls): Remove
	decprecated function decls.
	* trans-intrinsic.cc (gfc_conv_intrinsic_exponent): Remove
	deprecated/no longer needed routines.
	* trans.h: Remove unused decls.

2025-02-20  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* coarray.cc (rewrite_caf_send): Rewrite to
	transfer_between_remotes when both sides of the assignment have
	a coarray.
	(coindexed_code_callback): Prevent duplicate rewrite.
	* gfortran.texi: Add documentation for transfer_between_remotes.
	* intrinsic.cc (add_subroutines): Add intrinsic symbol for
	caf_sendget to allow easy rewrite to transfer_between_remotes.
	* trans-decl.cc (gfc_build_builtin_function_decls): Add
	prototype for transfer_between_remotes.
	* trans-intrinsic.cc (conv_caf_vector_subscript_elem): Mark as
	deprecated.
	(conv_caf_vector_subscript): Same.
	(compute_component_offset): Same.
	(conv_expr_ref_to_caf_ref): Same.
	(conv_stat_and_team): Extract stat and team from expr.
	(gfc_conv_intrinsic_caf_get): Use conv_stat_and_team.
	(conv_caf_send_to_remote): Same.
	(has_ref_after_cafref): Mark as deprecated.
	(conv_caf_sendget): Translate to transfer_between_remotes.
	* trans.h: Add prototype for transfer_between_remotes.

2025-02-20  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* coarray.cc (move_coarray_ref): Move the coarray reference out
	of the given one.  Especially when there is a regular array ref.
	(fixup_comp_refs): Move components refs to a derived type where
	the codim has been removed, aka a new type.
	(split_expr_at_caf_ref): Correctly split the reference chain.
	(remove_caf_ref): Simplify.
	(create_get_callback): Fix some deficiencies.
	(create_allocated_callback): Adapt to new signature of split.
	(create_send_callback): New function.
	(rewrite_caf_send): Rewrite a call to caf_send to
	caf_send_to_remote.
	(coindexed_code_callback): Treat caf_send and caf_sendget
	correctly.
	* gfortran.h (enum gfc_isym_id): Add SENDGET-isym.
	* gfortran.texi: Add documentation for send_to_remote.
	* resolve.cc (gfc_resolve_code): No longer generate send_by_ref
	when allocatable coarray (component) is on the lhs.
	* trans-decl.cc (gfc_build_builtin_function_decls): Add
	caf_send_to_remote decl.
	* trans-intrinsic.cc (conv_caf_func_index): Ensure the static
	variables created are not in a block-scope.
	(conv_caf_send_to_remote): Translate caf_send_to_remote calls.
	(conv_caf_send): Renamed to conv_caf_sendget.
	(conv_caf_sendget): Renamed from conv_caf_send.
	(gfc_conv_intrinsic_subroutine): Branch correctly for
	conv_caf_send and sendget.
	* trans.h: Correct decl.

2025-02-20  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* coarray.cc (create_allocated_callback): Add creating remote
	side procedure for checking allocation status of coarray.
	(rewrite_caf_allocated): Rewrite ALLOCATED on coarray to use caf
	routine.
	(coindexed_expr_callback): Exempt caf_is_present_on_remote from
	being rewritten again.
	* gfortran.h (enum gfc_isym_id): Add caf_is_present_on_remote
	id.
	* gfortran.texi: Add documentation for caf_is_present_on_remote.
	* intrinsic.cc (add_functions): Add caf_is_present_on_remote
	symbol.
	* trans-decl.cc (gfc_build_builtin_function_decls): Define
	interface of caf_is_present_on_remote.
	* trans-intrinsic.cc (gfc_conv_intrinsic_caf_is_present_remote):
	Translate caf_is_present_on_remote.
	(trans_caf_is_present): Remove.
	(caf_this_image_ref): Remove.
	(gfc_conv_allocated): Take out coarray treatment, because that
	is rewritten to caf_is_present_on_remote now.
	(gfc_conv_intrinsic_function): Handle caf_is_present_on_remote
	calls.
	* trans.h: Add symbol for caf_is_present_on_remote and remove
	old one.

2025-02-20  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* coarray.cc (get_arrayspec_from_expr): Treat array result of
	function calls correctly.
	(remove_coarray_from_derived_type): Prevent memory loss.
	(add_caf_get_from_remote): Correct locus.
	(find_comp): New function to find or create a new component in a
	derived type.
	(check_add_new_comp_handle_array): Handle allocatable arrays or
	non-pure/non-elemental functions in indexes of coarrays.
	(check_add_new_component): Use above function.
	(create_get_parameter_type): Rename to
	create_caf_add_data_parameter_type.
	(create_caf_add_data_parameter_type): Renaming of variable and
	make the additional data a coarray.
	(remove_caf_ref): Factor out to reuse in other caf-functions.
	(create_get_callback): Use function factored out, set locus
	correctly and ensure a kind is set for parameters.
	(add_caf_get_intrinsic): Rename to add_caf_get_from_remote and
	rename some variables.
	(coindexed_expr_callback): Skip over function created by the
	rewriter.
	(coindexed_code_callback): Filter some intrinsics not to
	process.
	(gfc_coarray_rewrite): Rewrite also contained functions.
	* trans-intrinsic.cc (gfc_conv_intrinsic_caf_get): Reflect
	changed order on caf_get_from_remote ().

2025-02-20  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* gfortran.texi: Rename caf_get_by_ct to caf_get_from_remote.
	* trans-decl.cc (gfc_build_builtin_function_decls): Rename
	intrinsic.
	* trans-intrinsic.cc (conv_caf_func_index): Factor out
	functionality to be reused by other caf-functions.
	(conv_caf_add_call_data): Same.
	(gfc_conv_intrinsic_caf_get): Use functions factored out.
	* trans.h: Rename intrinsic symbol.

2025-02-20  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/107635
	* Make-lang.in: Add coarray.cc.
	* coarray.cc: New file.
	* gfortran.h (gfc_coarray_rewrite): New procedure.
	* parse.cc (rewrite_expr_tree): Add entrypoint for rewriting
	expression trees.
	* resolve.cc (gfc_resolve_ref): Remove caf_lhs handling.
	(get_arrayspec_from_expr): Moved to rewrite.cc.
	(remove_coarray_from_derived_type): Same.
	(convert_coarray_class_to_derived_type): Same.
	(split_expr_at_caf_ref): Same.
	(check_add_new_component): Same.
	(create_get_parameter_type): Same.
	(create_get_callback): Same.
	(add_caf_get_intrinsic): Same.
	(resolve_variable): Remove caf_lhs handling.

2025-02-17  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/115271
	* gfortran.h (gfc_omp_namelist): Change need_device_ptr to adj_args
	union and add more flags.
	* openmp.cc (gfc_match_omp_declare_variant,
	gfc_resolve_omp_declare): For adjust_args, handle need_device_addr
	and numeric values/ranges besides dummy argument names.
	(resolve_omp_dispatch): Remove bogus a adjust_args check.
	* trans-decl.cc (gfc_handle_omp_declare_variant): New.
	(gfc_generate_module_vars, gfc_generate_function_code): Call it.
	* trans-openmp.cc (gfc_trans_omp_declare_variant): Handle numeric
	values/ranges besides dummy argument names.

2025-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/118862
	* trans-expr.cc (gfc_conv_cst_int_power): Use functions for
	unsigned wide integer.
	(gfc_conv_cst_uint_power): Avoid generating the mask if it would
	overflow an unsigned HOST_WIDE_INT.  Format fixes.

2025-02-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump-parse-tree.cc (show_attr): Remove double output
	of attr->save.

2025-02-15  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/118080
	* gfortran.texi: Adjust documentation.
	* trans-decl.cc (create_function_arglist): Adjust to pass hidden
	presence flag also for derived type dummies with VALUE,OPTIONAL
	attribute.
	* trans-expr.cc (gfc_conv_expr_present): Expect hidden presence
	flag also for derived type dummies with VALUE,OPTIONAL attribute.
	(conv_cond_temp): Adjust to allow derived types.
	(conv_dummy_value): Extend to handle derived type dummies with
	VALUE,OPTIONAL attribute.
	(gfc_conv_procedure_call): Adjust for actual arguments passed to
	derived type dummies with VALUE,OPTIONAL attribute.
	* trans-types.cc (gfc_get_function_type): Adjust fndecl for
	hidden presence flag.

2025-02-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/117430
	* resolve.cc (resolve_transfer): Change gfc_notify_std to
	gfc_error.

2025-02-15  Andrew Pinski  <pinskia@gcc.gnu.org>

	PR fortran/118159
	* invoke.texi: Remove mention of defunct web site for Coco.

2025-02-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.cc (check_externals_procedure): Copy
	typespec from old to new symbol.

2025-02-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/118845
	* interface.cc (compare_parameter): If the formal attribute has been
	generated from an actual argument list, also output an pointer to
	there in case of an error.
	(gfc_get_formal_from_actual_arglist): Set function and subroutine
	attributes and (if it is a function) the typespec from the actual
	argument.

2025-02-11  Sandra Loosemore  <sloosemore@baylibre.com>

	* trans-openmp.cc (gfc_trans_omp_declare_variant): Update call to
	omp_check_context_selector.
	(gfc_trans_omp_metadirective): Likewise.

2025-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/24878
	* interface.cc (compare_parameter): Better wording on
	error message.

2025-02-10  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/56423
	* resolve.cc (resolve_structure_cons): Check rank of pointer target;
	reject pointer target with vector subscripts.

2025-02-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/24878
	* interface.cc (compare_parameter): Check global subroutines
	passed as actual arguments for subroutine / function and
	function type.

2025-02-08  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/107067
	* parse.cc (parse_omp_do): Diagnose missing "OMP END METADIRECTIVE"
	after loop.
	(parse_omp_structured_block): Likewise for strictly structured block.
	(parse_omp_metadirective_body): Use better test for variants ending
	at different places.  Issue a user diagnostic at the end if any
	were inconsistent, instead of calling gcc_assert.

2025-02-07  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/59252
	* trans-expr.cc (gfc_trans_subcomponent_assign): Initialize
	allocatable non-deferred character with NULL properly.

2025-02-07  Tomáš Trnka  <trnka@scm.com>

	PR fortran/116829
	* trans-decl.cc (init_intent_out_dt): Always call
	gfc_init_default_dt() for BT_DERIVED to apply s->value if the
	symbol isn't allocatable. Also simplify the logic a bit.

2025-02-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/118750
	* resolve.cc (resolve_assoc_var): If the target expression has
	a rank, do not use gfc_expression_rank, since it will return 0
	if the function is elemental. Resolution will have produced the
	correct rank.

2025-02-05  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/118740
	* openmp.cc (gfc_match_omp_context_selector, match_omp_metadirective):
	Change sorry to sorry_at and use gfc_current_locus as location.
	* trans-openmp.cc (gfc_trans_omp_clauses): Likewise, but use n->where.

2025-02-05  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/118745
	* trans-openmp.cc (gfc_trans_omp_declare_variant): Use
	append_args_list in the condition for the append_arg location.

2025-02-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/47485
	* cpp.cc: fix -MT/-MQ adding additional target instead of
	replacing the default.

2025-02-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* arith.cc (arith_power): Handle modular arithmetic for
	BT_UNSIGNED.
	(eval_intrinsic):  Error for unsigned exponentiation with
	-pedantic.
	* expr.cc (gfc_type_convert_binary): Use type of first
	argument for unsigned exponentiation.
	* gfortran.texi: Mention arithmetic exponentiation.
	* resolve.cc (resolve_operator): Allow unsigned exponentiation.
	* trans-decl.cc (gfc_build_intrinsic_function_decls): Build
	declarations for unsigned exponentiation.
	* trans-expr.cc (gfc_conv_cst_uint_power): New function.
	(gfc_conv_power_op): Call it.  Handle unsigned exponentiation.
	* trans.h (gfor_fndecl_unsigned_pow_list):  Add declaration.

2025-02-03  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/93289
	* decl.cc (gfc_set_constant_character_len): Downgrade different
	string lengths in character array constructor to legacy extension.

2025-01-31  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/108454
	* resolve.cc (resolve_common_blocks): Initialize variable.
	(resolve_symbol): If a symbol is already registered with a COMMON
	block, do not search for an interface with the same name.

2025-01-31  Paul-Antoine Arras  <parras@baylibre.com>

	PR fortran/118714
	* parse.cc (parse_omp_dispatch): Add missing pop_state.

2025-01-30  Sandra Loosemore  <sloosemore@baylibre.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>
	    Tobias Burnus  <tobias@codesourcery.com>
	    Paul-Antoine Arras  <pa@codesourcery.com>

	PR middle-end/112779
	PR middle-end/113904
	* decl.cc (gfc_match_end): Handle COMP_OMP_BEGIN_METADIRECTIVE and
	COMP_OMP_METADIRECTIVE.
	* dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_METADIRECTIVE.
	(show_code_node): Likewise.
	* gfortran.h (enum gfc_statement): Add ST_OMP_METADIRECTIVE,
	ST_OMP_BEGIN_METADIRECTIVE, and ST_OMP_END_METADIRECTIVE.
	(struct gfc_omp_clauses): Rename target_first_st_is_teams to
	target_first_st_is_teams_or_meta.
	(struct gfc_omp_variant): New.
	(gfc_get_omp_variant): New.
	(struct gfc_st_label): Add omp_region field.
	(enum gfc_exec_op): Add EXEC_OMP_METADIRECTIVE.
	(struct gfc_code): Add omp_variants fields.
	(gfc_free_omp_variants): Declare.
	(match_omp_directive): Declare.
	(is_omp_declarative_stmt): Declare.
	* io.cc (format_asterisk): Adjust initializer.
	* match.h (gfc_match_omp_begin_metadirective): Declare.
	(gfc_match_omp_metadirective): Declare.
	* openmp.cc (gfc_omp_directives): Uncomment metadirective.
	(gfc_match_omp_eos): Adjust to match context selectors.
	(gfc_free_omp_variants): New.
	(gfc_match_omp_clauses): Remove context_selector parameter and adjust
	to use gfc_match_omp_eos instead.
	(match_omp): Adjust call to gfc_match_omp_clauses.
	(gfc_match_omp_context_selector): Add metadirective_p parameter and
	adjust error-checking.  Adjust matching of simd clauses.
	(gfc_match_omp_context_selector_specification): Adjust parameters
	so it can be used for metadirective as well as declare variant.
	(match_omp_metadirective): New.
	(gfc_match_omp_begin_metadirective): New.
	(gfc_match_omp_metadirective): New.
	(resolve_omp_metadirective): New.
	(resolve_omp_target): Handle metadirectives.
	(gfc_resolve_omp_directive): Handle EXEC_OMP_METADIRECTIVE.
	* parse.cc (gfc_matching_omp_context_selector): New.
	(gfc_in_omp_metadirective_body): New.
	(gfc_omp_region_count): New.
	(decode_omp_directive): Handle ST_OMP_BEGIN_METADIRECTIVE and
	ST_OMP_METADIRECTIVE.
	(match_omp_directive): New.
	(case_omp_structured_block): Define.
	(case_omp_do): Define.
	(gfc_ascii_statement): Handle ST_OMP_BEGIN_METADIRECTIVE,
	ST_OMP_END_METADIRECTIVE, and ST_OMP_METADIRECTIVE.
	(accept_statement):  Handle ST_OMP_METADIRECTIVE and
	ST_OMP_BEGIN_METADIRECTIVE.
	(gfc_omp_end_stmt): New, split from...
	(parse_omp_do): ...here, and...
	(parse_omp_structured_block): ...here.  Handle metadirectives,
	plus "allocate", "atomic", and "dispatch" which were missing.
	(parse_omp_oacc_atomic): Handle "end metadirective".
	(parse_openmp_allocate_block): Likewise.
	(parse_omp_dispatch): Likewise.
	(parse_omp_metadirective_body): New.
	(parse_executable): Handle metadirective.  Use new case macros
	defined above.
	(gfc_parse_file): Initialize metadirective state.
	(is_omp_declarative_stmt): New.
	* parse.h (enum gfc_compile_state): Add COMP_OMP_METADIRECTIVE
	and COMP_OMP_BEGIN_METADIRECTIVE.
	(gfc_omp_end_stmt): Declare.
	(gfc_matching_omp_context_selector): Declare.
	(gfc_in_omp_metadirective_body): Declare.
	(gfc_omp_metadirective_region_count): Declare.
	* resolve.cc (gfc_resolve_code): Handle EXEC_OMP_METADIRECTIVE.
	* st.cc (gfc_free_statement): Likewise.
	* symbol.cc (compare_st_labels): Handle labels within a metadirective
	body.
	(gfc_get_st_label): Likewise.
	* trans-decl.cc (gfc_get_label_decl): Encode the metadirective region
	in the label_name.
	* trans-openmp.cc (gfc_trans_omp_directive): Handle
	EXEC_OMP_METADIRECTIVE.
	(gfc_trans_omp_set_selector): New, split/adapted from code....
	(gfc_trans_omp_declare_variant): ...here.
	(gfc_trans_omp_metadirective): New.
	* trans-stmt.h 	(gfc_trans_omp_metadirective): Declare.
	* trans.cc (trans_code): Handle EXEC_OMP_METADIRECTIVE.

2025-01-30  Tobias Burnus  <tburnus@baylibre.com>

	* gfortran.h (gfc_omp_declare_variant): Add append_args_list.
	* openmp.cc (gfc_parser_omp_clause_init_modifiers): New;
	splitt of from ...
	(gfc_match_omp_init): ... here; call it.
	(gfc_match_omp_declare_variant): Update to handle append_args
	clause; some syntax handling fixes.
	* trans-openmp.cc (gfc_trans_omp_declare_variant): Handle
	append_args clause; add some diagnostic.

2025-01-29  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/118683
	* trans-expr.cc (gfc_conv_procedure_call): The bounds update for
	passing to assumed-rank dummies shall also handle component
	references besides inquiry references.

2025-01-27  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/110993
	* frontend-passes.cc (check_externals_procedure): Do not compare
	interfaces of a non-bind(C) procedure against a bind(C) global one.
	(check_against_globals): Use local name from rename-on-use in the
	search for interfaces.

2025-01-27  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/118640
	* resolve.cc (generate_component_assignments): Make sure that
	the rhs temporary does not pick up the optional attribute from
	the lhs.

2025-01-26  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (gfc_omp_directives): Uncomment unroll and tile lines
	as the directives are by now implemented.

2025-01-26  Sandra Loosemore  <sloosemore@baylibre.com>

	* openmp.cc (resolve_omp_atomic): Fix typo in error message.

2025-01-25  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/58857
	* class.cc (gfc_find_derived_vtab): Declare some frontend generated
	variables and procedures (_vtab, _copy, _deallocate) as artificial.
	(find_intrinsic_vtab): Likewise.
	* trans-decl.cc (check_block_data_decls): New helper function.
	(gfc_generate_block_data): Use it to emit warnings for variables
	declared in a BLOCK DATA program unit but not in a COMMON block.

2025-01-23  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/118613
	* trans-intrinsic.cc (gfc_conv_intrinsic_minmaxval): Adjust algorithm
	for inlined version of MINLOC and MAXLOC so that arguments are only
	evaluted once, and create temporaries where necessary.  Document
	change of algorithm.

2025-01-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/96087
	* trans-decl.cc (gfc_get_symbol_decl): If a dummy is missing a
	backend decl, it is likely that it has come from a module proc
	interface. Look for the formal symbol by name in the containing
	proc and use its backend decl.
	* trans-expr.cc (gfc_apply_interface_mapping_to_expr): For the
	same reason, match the name, rather than the symbol address to
	perform the mapping.

2025-01-20  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/107122
	* openmp.cc (resolve_omp_clauses): Add 'with' to error message text.

2025-01-20  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/81978
	* trans-array.cc (gfc_conv_array_parameter): Do not copy back data
	if actual array parameter has the PARAMETER attribute.
	* trans-expr.cc (gfc_conv_subref_array_arg): Likewise.

2025-01-16  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/118321
	* trans-openmp.cc (gfc_trans_omp_declare_variant): Honor hidden
	arguments for append_arg's need_device_ptr.

2025-01-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/118359
	* dump-parse-tree.cc (show_external_symbol): New function.
	(write_type): Add prototype, put in restrictions on what not to dump.
	(has_cfi_cdesc): New function.
	(need_iso_fortran_binding): New function.
	(gfc_dump_c_prototypes): Adjust to take only a file output.  Add
	"#include <ISO_Fortran_binding.h" if CFI_cdesc_t is found.
	Traverse global namespaces to dump types and the globalsymol list
	to dump external symbols.
	(gfc_dump_external_c_prototypes): Traverse global namespaces.
	(get_c_type_name): Handle CFI_cdesc_t.
	(write_proc): Also pass array spec to get_c_type_name.
	* gfortran.h (gfc_dump_c_prototypes): Adjust prototype.
	* parse.cc (gfc_parse_file): Adjust call to gfc_dump_c_prototypes.

2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>

	* openmp.cc (gfc_omp_absent_contains_clause): Use an Oxford comma
	in the message.

2025-01-16  Tobias Burnus  <tburnus@baylibre.com>

	PR fortran/118441
	* trans-intrinsic.cc (gfc_get_symbol_for_expr): Use
	gfc_new_charlen for character-returning functions.

2025-01-15  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/71884
	* resolve.cc (resolve_allocate_expr): Reject intrinsic NULL as
	source-expr.

2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>
	    Marcel Vollweiler  <marcel@codesourcery.com>

	PR middle-end/114596
	PR middle-end/112779
	PR middle-end/113904
	* trans-openmp.cc (gfc_trans_omp_declare_variant): Update for changes
	to omp-general.h interfaces.

2025-01-14  Anuj Mohite  <anujmohite001@gmail.com>

	* dump-parse-tree.cc (show_code_node):  Updated to use
	c->ext.concur.forall_iterator instead of c->ext.forall_iterator.
	* frontend-passes.cc (index_interchange): Updated to
	use c->ext.concur.forall_iterator instead of c->ext.forall_iterator.
	(gfc_code_walker): Likewise.
	* gfortran.h (enum locality_type): Added new enum for locality types
	in DO CONCURRENT constructs.
	* match.cc (match_simple_forall): Updated to use
	new_st.ext.concur.forall_iterator instead of new_st.ext.forall_iterator.
	(gfc_match_forall): Likewise.
	(gfc_match_do):  Implemented support for matching DO CONCURRENT locality
	specifiers (LOCAL, LOCAL_INIT, SHARED, DEFAULT(NONE), and REDUCE).
	* parse.cc (parse_do_block): Updated to use
	new_st.ext.concur.forall_iterator instead of new_st.ext.forall_iterator.
	* resolve.cc (struct check_default_none_data): Added struct
	check_default_none_data.
	(do_concur_locality_specs_f2023): New function to check compliance
	with F2023's C1133 constraint for DO CONCURRENT.
	(check_default_none_expr): New function to check DEFAULT(NONE)
	compliance.
	(resolve_locality_spec): New function to resolve locality specs.
	(gfc_count_forall_iterators): Updated to use
	code->ext.concur.forall_iterator.
	(gfc_resolve_forall): Updated to use code->ext.concur.forall_iterator.
	* st.cc (gfc_free_statement): Updated to free locality specifications
	and use p->ext.concur.forall_iterator.
	* trans-stmt.cc (gfc_trans_forall_1): Updated to use
	code->ext.concur.forall_iterator.

2025-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump-parse-tree.cc (show_attr): Fix typos for in_equivalence.

2025-01-13  Paul-Antoine Arras  <parras@baylibre.com>

	* openmp.cc (gfc_match_omp_declare_variant): Match comma after directive
	name and between clauses. Emit more useful diagnostics.

2025-01-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump-parse-tree.cc (show_attr): Dump all symbol attributes.

2025-01-12  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/115788
	* check.cc (gfc_check_out_of_range): Check arguments to intrinsic.
	* expr.cc (free_expr0): Fix a memleak with unsigned literals.
	* gfortran.h (enum gfc_isym_id): Define GFC_ISYM_OUT_OF_RANGE.
	* gfortran.texi: Add OUT_OF_RANGE to list of intrinsics supporting
	UNSIGNED.
	* intrinsic.cc (add_functions): Add Fortran prototype.  Break some
	nearby lines with excessive length.
	* intrinsic.h (gfc_check_out_of_range): Add prototypes.
	* intrinsic.texi: Fortran documentation of OUT_OF_RANGE.
	* simplify.cc (gfc_simplify_out_of_range): Compile-time simplification
	of OUT_OF_RANGE.
	* trans-intrinsic.cc (gfc_conv_intrinsic_out_of_range): Generate
	inline expansion of runtime code for OUT_OF_RANGE.
	(gfc_conv_intrinsic_function): Use it.

2025-01-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/118432
	* frontend-passes.cc (doloop_code): Select correct member
	of co->ext.union for inquire.

2025-01-11  Tobias Burnus  <tburnus@baylibre.com>

	* gfortran.h: Add OMP_LIST_INTEROP to the unnamed OMP_LIST_ enum.
	* openmp.cc (gfc_match_omp_variable_list): Add reverse_order
	boolean argument, defaulting to false.
	(enum omp_mask2, OMP_DISPATCH_CLAUSES): Add OMP_CLAUSE_INTEROP.
	(gfc_match_omp_clauses, resolve_omp_clauses): Handle dispatch's
	'interop' clause.
	* trans-decl.cc (gfc_get_extern_function_decl): Use sym->declared_at
	instead input_location as DECL_SOURCE_LOCATION.
	* trans-openmp.cc (gfc_trans_omp_clauses): Handle OMP_LIST_INTEROP.

2025-01-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/108434
	* class.cc (generate_finalization_wrapper): To avoid memory
	leaks from callocs, return immediately if the derived type
	error flag is set.
	* decl.cc (build_struct): If the declaration of a derived type
	or class component does not have a deferred arrayspec, correct,
	set the error flag of the derived type and emit an immediate
	error.

2025-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/118337
	* module.cc (use_iso_fortran_env_module): Add a comment explaining
	the optimization performed.  Add gcc_checking_assert that i was
	incremented for all the elements.  Formatting fix.

2025-01-09  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/118337
	* resolve.cc (resolve_fl_derived0): Exempt vtypes from cycle
	detection.

2025-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/118337
	* module.cc (COMPAT_MOD_VERSIONS): Define.
	(use_iso_fortran_env_module): Don't assume all NAMED_INTCSTs come
	first followed by NAMED_UINTCSTs.
	(gfc_use_module): Accept also COMPAT_MOD_VERSIONS for compatibility.
	* iso-c-binding.def: Reorder entries so that the GCC 14 ones come
	before the ones new in GCC 15.
	* iso-fortran-env.def: Likewise.

2025-01-09  Tobias Burnus  <tburnus@baylibre.com>

	* types.def (BT_FN_PTRMODE_PTR_INT_PTR): Add.

2025-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/118337
	* module.cc (MOD_VERSION): Bump to "16".

2025-01-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* intrinsic.texi (ISO_FORTRAN_ENV):  Also mention INT8 in the
	text. Document UINT8, UINT16, UINT32 and UINT64.
	(ISO_C_BINDING): New table for unsigned KIND numbers.

2025-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/114612
	* trans-array.cc (structure_alloc_comps): Ensure deep copy is
	also done for types having cycles.

2025-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/116669
	* class.cc (gfc_find_derived_vtab): Use attr to determine cyclic
	type dependendies.
	* expr.cc (gfc_has_default_initializer): Prevent endless
	recursion by storing already visited derived types.
	* resolve.cc (resolve_cyclic_derived_type): Determine if a type
	is used in its hierarchy in a cyclic way.
	(resolve_fl_derived0): Call resolve_cyclic_derived_type.
	(resolve_fl_derived): Ensure vtab is generated when cyclic
	derived types have allocatable components.
	* trans-array.cc (structure_alloc_comps): Prevent endless loop
	for derived type cycles.
	* trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token):
	Off topic, just prevent memory leaks.

2025-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.texi: New subsection "Generating C prototypes from
	Fortran".

2025-01-03  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/106692
	* trans-expr.cc (gfc_conv_expr_op): Inhibit excessive optimization
	of Cray pointers by treating them as volatile in comparisons.

2025-01-03  Sandra Loosemore  <sloosemore@baylibre.com>

	* intrinsic.texi (ATAN): Add missing verb.

2025-01-02  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (OMP_DISPATCH_CLAUSES): Add OMP_CLAUSE_HAS_DEVICE_ADDR.

2025-01-02  Paul-Antoine Arras  <parras@baylibre.com>

	* dump-parse-tree.cc (show_omp_clauses): Handle novariants and nocontext
	clauses.
	(show_omp_node): Handle EXEC_OMP_DISPATCH.
	(show_code_node): Likewise.
	* frontend-passes.cc (gfc_code_walker): Handle novariants and nocontext.
	* gfortran.h (enum gfc_statement): Add ST_OMP_DISPATCH.
	(symbol_attribute): Add omp_declare_variant_need_device_ptr.
	(gfc_omp_clauses): Add novariants and nocontext.
	(gfc_omp_declare_variant): Add need_device_ptr_arg_list.
	(enum gfc_exec_op): Add EXEC_OMP_DISPATCH.
	* match.h (gfc_match_omp_dispatch): Declare.
	* openmp.cc (gfc_free_omp_clauses): Free novariants and nocontext
	clauses.
	(gfc_free_omp_declare_variant_list): Free need_device_ptr_arg_list
	namelist.
	(enum omp_mask2): Add OMP_CLAUSE_NOVARIANTS and OMP_CLAUSE_NOCONTEXT.
	(gfc_match_omp_clauses): Handle OMP_CLAUSE_NOVARIANTS and
	OMP_CLAUSE_NOCONTEXT.
	(OMP_DISPATCH_CLAUSES): Define.
	(gfc_match_omp_dispatch): New function.
	(gfc_match_omp_declare_variant): Parse adjust_args.
	(resolve_omp_clauses): Handle adjust_args, novariants and nocontext.
	Adjust handling of OMP_LIST_IS_DEVICE_PTR.
	(icode_code_error_callback): Handle EXEC_OMP_DISPATCH.
	(omp_code_to_statement): Likewise.
	(resolve_omp_dispatch): New function.
	(gfc_resolve_omp_directive): Handle EXEC_OMP_DISPATCH.
	* parse.cc (decode_omp_directive): Match dispatch.
	(next_statement): Handle ST_OMP_DISPATCH.
	(gfc_ascii_statement): Likewise.
	(parse_omp_dispatch): New function.
	(parse_executable): Handle ST_OMP_DISPATCH.
	* resolve.cc (gfc_resolve_blocks): Handle EXEC_OMP_DISPATCH.
	* st.cc (gfc_free_statement): Likewise.
	* trans-decl.cc (create_function_arglist): Declare.
	(gfc_get_extern_function_decl): Call it.
	* trans-openmp.cc (gfc_trans_omp_clauses): Handle novariants and
	nocontext.
	(replace_omp_dispatch_call): New function.
	(gfc_trans_omp_dispatch): New function.
	(gfc_trans_omp_directive): Handle EXEC_OMP_DISPATCH.
	(gfc_trans_omp_declare_variant): Handle adjust_args.
	* trans.cc (trans_code): Handle EXEC_OMP_DISPATCH:.

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

2025-01-01  Sandra Loosemore  <sloosemore@baylibre.com>

	* gfortran.texi (Function ABI Documentation): Make menu ordering
	consistent with subsection ordering.

2025-01-01  Sandra Loosemore  <sloosemore@baylibre.com>

	* gfortran.texi: Clean up that/which usage throughout the file.
	* intrinsic.texi: Likewise.
	* invoke.texi: Likewise.

2025-01-01  Sandra Loosemore  <sloosemore@baylibre.com>

	* intrinsic.texi: Grammar and markup fixes throughout
	the file.

Copyright (C) 2025 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.
