2026-04-30  Release Manager

	* GCC 16.1.0 released.

2026-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124918
	* gcc-interface/Makefile.in (TOOLS1_LIBS): Restore.
	(../../gnatmake$(exeext)): Link with $(TOOLS1_LIBS).
	(../../gnatlink$(exeext)): Likewise.

2026-04-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124918
	* gcc-interface/Makefile.in (TGT_LIB): Move up.
	(LIBBACKTRACE): Likewise.
	(LIBIBERTY): Likewise.
	(LIBGNAT): Likewise.
	(LIBS): Likewise.
	(TOOLS_LIBS): Use $(LIBS).
	(TOOLS1_LIBS): Delete.
	(../../gnatmake$(exeext)): Do not link with $(TOOLS1_LIBS).
	(../../gnatlink$(exeext)): Likewise.

2026-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/107392
	* sem_res.adb: Add clauses for Ttypes.
	(Resolve.Patch_Up_Value): Do not try to convert real literals that
	do not fit in Universal_Integer.

2026-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/107391
	* urealp.adb (Decimal_Exponent_Hi): Check that the denominator is
	in range before invoking UI_To_Int on it, and cope with failure.
	(Decimal_Exponent_Lo): Likewise.

2026-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/105212
	* exp_aggr.adb (Build_Array_Aggr_Code): If the aggregate comes from
	source, call Set_Referenced_Modified on the target.

2026-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/87170
	* sem_res.adb (Resolve_String_Literal): Copy Comes_From_Source from
	the string literal to the character literals.

2026-04-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/95452
	* libgnat/g-heasor.adb (Sort.Sift): Add guard against overflow.
	* libgnat/g-hesorg.adb (Sort.Sift): Likewise.
	* libgnat/g-hesora.adb (Sort.Sift): Likewise.  Restore consistency.

2026-04-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/77535
	* libgnat/s-pehage.adb (New_Word): Rebase the input.

2026-04-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124836
	* adaint.c [__MINGW32__]: Do not include mingw32.h twice, and also
	include sys/param.h.

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

	PR other/124784
	* gcc-interface/lang.opt.urls: Regenerated.

2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Expand_Simple_Function_Return): Use a constant return
	object when the simple return is rewritten as an extended one.
	* libgnat/s-secsta.adb (SS_Allocate): Raise Storage_Error if the
	requested size is negative.
	* libgnat/s-secsta__cheri.adb (SS_Allocate): Likewise.

2026-04-03  Tonu Naks  <naks@adacore.com>

	* doc/gnat_rm/gnat_language_extensions.rst: Adjust rules for
	structural generic instantiations.
	* gnat_rm.texi: Regenerate.

2026-03-31  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_attr.adb (Analyze_Attribute) <Attribute_Reduce>: Rewrite the
	analysis of a non-overloaded reducer.  Moreover, when both actuals
	are overloaded, compute the set of possible interpretations.
	(Resolve_Attribute) <Attribute_Reduce>: Streamline the processing.

2026-03-27  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch12.adb (Analyze_Structural_Associations): Create a local
	instance instead of a structural instance when a local entity of
	a library-level package is used in a subprogram instantiation.

2026-03-27  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124596
	* sem_ch12.ads (Check_Private_View): Move around.
	* sem_ch12.adb (Check_Private_View): Retrieve the partial view
	by means of a call to Incomplete_Or_Partial_View.
	(Save_Global_References.Set_Global_Type): Do not force the full
	view of a type when only the partial declaration is visible.
	* sem_res.adb (Resolve_Actuals.Insert_Default): Remove obsolete
	code coping with the above kludge.

2026-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124607
	* sem_elab.adb (Has_Body.Find_Body): Fix thinko.

2026-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124606
	* sem_ch12.adb (Find_Actual_Type): Rename formal parameter.
	(Map_Formal_Package_Entities): Do not register base types.

2026-03-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/120669
	* sem_ch4.adb (Analyze_Explicit_Dereference): Remove interpretations
	of the prefix only if they are of access types.
	(Analyze_One_Call.Indicate_Name_And_Type): Check for an implicit
	dereference only after indicating the name and type of the call.
	* sem_ch5.adb (Analyze_Assignment): Do not remove interpretations
	for the LHS if they are for a type with implicit dereference.
	* sem_res.adb (Resolve): Streamline the processing of overloaded
	nodes once an interpretation is picked for them.  Add a specific
	handling for additional interpretations for generalized references.
	(Resolve_Explicit_Dereference): Remove interpretations of the prefix
	only if they are of access types.
	(Is_Ambiguous_Operand): Skip the direct interpretation for a limited
	type that has implicit dereference.
	* sem_type.adb (Add_One_Interp): Set the name of the first entry of
	the table of interpretations in more cases.

2026-03-14  Matthias Klose  <doko@gcc.gnu.org>

	PR ada/107475
	* Makefile.rtl (s390% linux%): Define MISCLIB.
	(arm% linux-gnueabi%): Likewise.
	(%x32 linux%): Likewise.

2026-03-12  Steve Baird  <baird@adacore.com>

	PR ada/124016
	* libgnat/a-cbinho.adb (Create_Subpool): Handle the case where
	the type Holder_Subpool has nontrivial finalization. Declare the
	local variable Subpool with its Import aspect specified (to avoid
	unwanted finalization), and make corresponding changes in order to
	initialize that variable.
	* libgnat/s-stposu.ads (_Adjust_Clone): New procedure.
	* libgnat/s-stposu.adb (_Adjust_Clone): New body.

2026-03-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124369
	* accessibility.adb (Accessibility_Message): Give an error instead
	of a warning in an instance when No_Dynamic_Accessibility_Checks is
	in effect.
	(Innermost_Master_Scope_Depth): Restore the original computation of
	the nearest enclosing dynamic scope.
	* sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Call the
	Accessibility_Message routine in all cases to give accessibility
	errors and do not return.  Call the Static_Accessibility_Level
	function in all cases to compute static accessibility levels.
	Add guard before calling Prefix_With_Safe_Accessibility_Level.

2026-03-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124376
	* sem_res.adb (Resolve_Actuals.Check_Aliased_Parameter): Deal with
	assignment statements.

2026-03-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124376
	* accessibility.adb (Accessibility_Level): Minor formatting tweaks.
	(Accessibility_Level.Function_Call_Or_Allocator_Level): Implement
	AI12-0402.  Reimplement the loop climbing up the parent chain to
	find an object being initialized.  Restrict the specific handling
	of N_Assignment_Statement nodes to the anonymous access type case.
	* doc/gnat_rm/implementation_of_ada_2022_features.rst: Adjust the
	entries of AI12-0277, AI12-0345 & AI12-0372, add one for AI12-0402.
	* gnat_rm.texi: Regenerate.

2026-03-07  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	PR target/124336
	* init.c (__gnat_adjust_context_for_raise) [x86/Linux]: Fix typo.

2026-03-07  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	PR target/124336
	* init.c (__gnat_adjust_context_for_raise) [x86/Linux]: Adjust
	pattern matching to new stack probes.

2026-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124285
	* gcc-interface/decl.cc (components_to_record): Force a packed
	layout for the innermost variant of an unchecked union type with
	fixed part and full representation clause.

2026-02-27  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124201
	PR ada/124282
	* exp_aggr.adb (Expand_Iterated_Component): Replace the iteration
	variable in the expression as well.
	* sem_aggr.adb (Resolve_Iterated_Component_Association): Preanalyze
	the expression directly as well.

2026-02-27  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123306
	* freeze.adb (Freeze_Entity): For a class-wide equivalent type of
	a non-interface root type, freeze the root type before it.
	* sem_ch3.adb (Derived_Type_Declaration): Minor tweak.
	* sem_ch12.adb (Analyze_One_Association): Revert latest change.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: When
	the prefix is a class-wide type, insert the declaration of the CW-
	equivalent type immediately after that of the root type, and the
	size check for the root type into its own freezing actions.

2026-02-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124201
	* exp_aggr.adb (Expand_Iterated_Component): Replace the iteration
	variable in the key expression and iterator filter, if any.
	* sem_aggr.adb (Resolve_Iterated_Component_Association): Preanalyze
	the specification and key expression directly.

2026-02-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124226
	* sem_res.adb (Resolve_Implicit_Dereference): Move declaration to...
	* sem_res.ads (Resolve_Implicit_Dereference): ...here.
	* sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Also call
	Resolve_Implicit_Dereference when resolving a protected operation.

2026-02-24  Eric Botcazou  <ebotcazou@adacore.com>
	    Liam Powell  <liam@liampwll.com>

	PR ada/124224
	* sem_aggr.adb (Resolve_Container_Aggregate): Minor tweaks.
	(Resolve_Iterated_Association): Compute Typ on all paths.

2026-02-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124192
	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
	(Max_Tasks): Adjust description.
	* gnat_rm.texi: Regenerate.

2026-02-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124179
	* sem_ch9.adb (Analyze_Triggering_Alternative): Use more robust
	test for delay and entry call statements and fix thinko in test
	for procedure call statements.

2026-02-20  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-stposu.adb (Finalize_Pool): Pass a local copy of the
	handle in the call to Finalize_And_Deallocate.

2026-02-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/124106
	* exp_ch4.adb (Expand_N_Allocator): Minor fix in commentary.
	(Expand_Allocator_Expression): Propagate the Subpool_Handle_Name
	of the original allocator onto the newly built allocators.
	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise.
	Use Preserve_Comes_From_Source to propagate Comes_From_Source.
	(Make_CPP_Constructor_Call_In_Allocator): Likewise.

2026-02-11  Steve Baird  <baird@adacore.com>

	PR ada/124016
	* doc/gnat_rm/implementation_defined_attributes.rst: Document
	that Finalization_Size attribute is defined for class-wide types.
	* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
	Add support for class-wide types.
	<Size>: Raise Constraint_Error for class-wide types.
	* exp_imgv.adb (Expand_Image_Attribute): Adjust call to renaming.
	(Expand_Wide_Image_Attribute): Likewise.
	(Expand_Wide_Wide_Image_Attribute): Likewise.
	* sem_attr.ads (Finalization_Size): Update comment.
	* sem_attr.adb (Analyze_Image): Adjust call to renaming.
	(Analyze_Attribute): Remove check disallowing Finalization_Size
	attribute for class-wide types.
	* sem_util.ads (Is_Object_Image): Rename into...
	(Is_Object_Prefix): ...this.
	* sem_util.adb (Is_Object_Image): Rename into...
	(Is_Object_Prefix): ...this.
	* libgnat/a-cbinho.ads (Extra_Storage): Use Descriptor_Size and
	Finalization_Size attributes.
	(Max_Allocation_Overhead_In_Storage_Elements): Delete.

2026-02-11  Eric Botcazou  <ebotcazou@adacore.com>
	    Liam Powell  <liam@liampwll.com>

	PR ada/124054
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Tidy up and pass
	Proc_Id as the new scope in the call to the New_Copy_Tree function.

2026-02-08  Eric Botcazou  <ebotcazou@adacore.com>
	    Liam Powell  <liam@liampwll.com>

	PR ada/124025
	* exp_ch9.adb (Expand_Entry_Barrier.Is_Global_Entity): Use
	Scope_Within_Or_Same to test whether the object is local.

2026-02-08  Eric Botcazou  <ebotcazou@adacore.com>
	    Liam Powell  <liam@liampwll.com>

	PR ada/121576
	* freeze.adb (Freeze_Array_Type): When the component size is
	specified, check that it is valid when the component type is
	either a fixed-point type or a bit-packed array type.

2026-02-03  Eric Botcazou  <ebotcazou@adacore.com>

	* checks.adb (Apply_Discriminant_Check): Bail out for a source type
	that is a class-wide type whose root type has no discriminants.
	* exp_ch4.adb (Expand_N_Type_Conversion): If the target type is an
	access type, emit null access checks before accessibility checks.
	* sem_util.adb (In_Return_Value): Deal again with assignments to
	return objects.

2026-02-02  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/89159
	* sem_ch6.adb (Conforming_Types.Is_Matching_Limited_View): Return
	true when the type is an incomplete view of the non-limited view.

2026-02-01  Eric Botcazou  <ebotcazou@adacore.com>
	    Liam Powell  <liam@liampwll.com>

	PR ada/123902
	* sem_ch4.adb (Analyze_Selected_Component): Also test
	Core_Extensions_Allowed for discriminated private types.
	Rework and augment commentary throughout the procedure.

2026-02-01  Eric Botcazou  <ebotcazou@adacore.com>
	    Liam Powell  <liam@liampwll.com>

	PR ada/121316
	* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Minor tweak.
	(Expand_Iterator_Loop_Over_Container): Likewise.
	(Expand_N_Loop_Statement): Use Statements (N) throughout.

2026-01-30  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch8.adb (End_Use_Type): Remove test of Prev_Use_Clause as
	as a condition for resetting In_Use and Current_Use_Clause, and
	change setting of that flag and field based on Prev_Use_Clause
	rather than setting them to Empty. Revise preceding comment.

2026-01-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123867
	* sem_ch10.adb (Analyze_Compilation_Unit): Output info message
	when -gnatdi is specified.
	(Install_Parents): Likewise.  Set the Is_Visible_Lib_Unit flag
	on the unit.
	(Install_Private_With_Clauses): Do not output info message here.
	(Remove_Parents): Output info message when -gnatdi is specified
	and clear the Is_Visible_Lib_Unit flag on the unit.

2026-01-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123861
	* sem_type.adb (Covers): Fix couple of typos in comment.
	(Specific_Type): Adjust to Covers' handling of types declared
	with the Aggregate aspect in Ada 2022.

2026-01-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123857
	* checks.adb (Apply_Parameter_Validity_Checks.Add_Validity_Check):
	Set Is_Checked on the generated {Pre,Post}_Condition pragma and
	bail out if the parameter is of an Unchecked_Union type.

2026-01-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123832
	* exp_imgv.adb: Add with and use clauses for Exp_Ch7.
	(Expand_Image_Attribute): Establish a transient scope before
	rewriting the attribute as a call to Put_Image.
	(Expand_Wide_Image_Attribute): Likewise.
	(Expand_Wide_Wide_Image_Attribute): Likewise.
	* exp_put_image.ads (Build_Image_Call): Add note about the
	need for a transient scope when the function is invoked.
	* exp_put_image.adb (Build_Image_Call): Call Insert_Actions
	to immediately insert the actions instead of wrapping them
	in an Expression_With_Actions node.

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

	* gcc-interface/lang.opt.urls: Regenerated.

2026-01-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123580
	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Replace call to
	Scope_Within_Or_Same (Current_Scope, S) with In_Open_Scopes (S) to
	test whether S is open in the current scope.
	* sem_util.adb (From_Nested_Package): Likewise.

2026-01-17  Eric Botcazou  <ebotcazou@adacore.com>
	    Lisa Felidae  <lisa@felidae.bam.moe>

	PR ada/68179
	PR ada/123589
	* exp_ch3.adb (Expand_Freeze_Array_Type): Build an initialization
	procedure for a bit-packed array type if Has_Default_Aspect is set
	on the base type, but make sure not to build it twice.  Also test
	Has_Default_Aspect for a type derived from String.

2026-01-10  Iain Sandoe  <iain@sandoe.co.uk>

	* libgnarl/s-osinte__darwin.adb: Delete unneeded use clause.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu): Add comment explaining why
	it is necessary to remove the padding for an object of a type with
	self-referential size when it is not converted to the result type.
	* gcc-interface/utils2.cc (build_binary_op) <MODIFY_EXPR>: For an
	assignment between small padded objects of the same type with self-
	referential size, and which have the same (constant) size, use the
	padded view of the objects.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu): For the LHS of an assignment
	or an actual parameter of a call, do not remove the padding even for
	a type of self-referential size when the padded size is small enough
	to be copied efficiently.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch12.ads (Save_Global_References_In_Aspects): Move to...
	* sem_ch12.adb (Save_Global_References_In_Aspects): Move to...
	* contracts.adb (Save_Global_References_In_Contract): ...here.

2026-01-09  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Remove previous patch
	and place the call to the constructor into a compound statement
	attached to the object; the compound statement will be moved to
	the freezing actions of the object if the object has an address
	clause.

2026-01-09  Denis Mazzucato  <mazzucato@adacore.com>

	* sem_ch13.adb (Check_Constructor_Initialization_Expression): The first
	parameter of an implicit constructor comes from Specification, not
	Corresponding_Spec.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Restore Comes_From_Source
	test on N itself instead of its parent node.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* accessibility.adb (Function_Call_Or_Allocator_Level): Return the
	level of the subprogram in Ada 95 only in the case where the result
	type is a return-by-reference type.

2026-01-09  Steve Baird  <baird@adacore.com>

	* libgnat/a-cbinho.ads: add Warnings pragmas.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* accessibility.adb (Function_Call_Or_Allocator_Level): Adjust the
	latest change to cope with _Wrapped_Statements functions.
	* einfo.ads (Wrapped_Statements): Fix description.
	* sem_util.adb (In_Return_Value): Fix typo in comment.

2026-01-09  Javier Miranda  <miranda@adacore.com>

	* checks.ads (Convert_From_Bignum): Add a new formal and update
	documentation.
	(Convert_To_Bignum): Update documentation.
	* checks.adb (Is_Signed_Integer_Arithmetic_Op): Renamed as
	Is_Overflow_Arithmetic_Op, and replace calls to function
	Is_Signed_Integer_Type by calls to Has_Overflow_Operations.
	(Apply_Arithmetic_Overflow_Minimized_Eliminated): Add support
	for types with the Unsigned_Base_Range aspect.
	(Apply_Divide_Checks): Replace calls to Is_Signed_Integer_Type
	by calls to Has_Overflow_Operations.
	(Compute_Range_For_Arithmetic_Op): Adjust comment.
	(Convert_To_Bignum): Add support for types with the Unsigned_
	Base_Range aspect.
	(Convert_From_Bignum): Add support for result type with the
	Unsigned_Base_Range aspect.
	(Minimize_Eliminate_Overflows): Add support for types with the
	Unsigned_Base_Range aspect.
	* exp_ch4.adb (Minimized_Eliminated_Overflow_Check): Replace
	call to Is_Signed_Integer_Type by call to Has_Overflow_Operations.
	(Expand_Compare_Minimize_Eliminate_Overflow): Add support for types
	with the Unsigned_Base_Range aspect.
	(Expand_Membership_Minimize_Eliminate_Overflow): Ditto.
	(Expand_N_Op_Expon): Ditto.
	(Expand_Exponentiation): New subprogram.
	* rtsfind.ads (RE_Id): Add RE_LLU_To_Bignum, RE_LLU_From_Bignum.
	* libgnat/s-bignum.ads (LLU_To_Bignum): New subprogram.
	(LLU_From_Bignum): New subprogram.
	* libgnat/s-bignum.adb (LLU_To_Bignum): New subprogram.
	(LLU_From_Bignum): New subprogram.
	* libgnat/s-genbig.ads (From_Bignum): New overloaded functions
	for Long_Long_Long_Unsigned and Long_Long_Unsigned types.
	(To_Bignum): Ditto.
	* libgnat/s-genbig.adb (From_Bignum): New overloaded functions
	for Long_Long_Long_Unsigned and Long_Long_Unsigned types.
	(To_Bignum): Ditto.
	* libgnat/s-expuns.ads (Exp_Unsigned): Fix documentation.
	* libgnat/s-expllu.ads (Exp_Long_Long_Unsigned): Ditto.
	* libgnat/s-explllu.ads (Exp_Long_Long_Long_Unsigned): Add missing
	documentation.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* accessibility.ads (Is_Special_Aliased_Formal_Access): Delete.
	* accessibility.adb (Is_Special_Aliased_Formal_Access): Likewise.
	(Accessibility_Level.Innermost_Master_Scope_Depth): Look for non-
	package bodies and statements directly.
	(Accessibility_Level.Function_Call_Or_Allocator_Level): For a
	function call in a return context, return the extra level of the
	master of the call only for dynamic checks.
	(Accessibility_Level) <N_Defining_Identifier>: Always return the
	library level for an explicitly aliased parameter in the context
	of a return from the subprogram where it is declared.
	* exp_ch4.adb (Expand_N_Allocator): Test manually whether the
	context is a return statement instead of calling In_Return_Value.
	(Expand_N_Type_Conversion): Do not apply accessibility checks to
	actuals of a tagged type in a synthesized subprogram call.
	* sem_attr.adb (Resolve_Attribute) <Access>: Remove specific test
	for explicitly aliased parameters.
	* sem_ch4.adb: Remove clauses for Accessibility package.
	(Analyze_Call): Do not apply static accessibility checks here...
	* sem_res.adb (Resolve_Actuals): ...but here instead.  Implement
	a generalized form of AI12-0402.
	(Valid_Conversion): Apply static accessibility checks in extended
	return statements too.
	* sem_util.ads (In_Return_Value): Adjust description.
	(Is_Master): Delete.
	* sem_util.adb (Is_Explicitly_Aliased): Reindent.
	(In_Return_Value): Reimplement.
	(Is_Master): Delete.

2026-01-09  Viljar Indus  <indus@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* errout.adb (Insert): New function to create an insertion fix.
	(Deletion): New function to create a deletion fix.
	* errout.ads: Likewise.
	* sem_warn.adb (Create_Add_Constant_Fix): New function to create
	a fix for adding a constant qualifier for a variable declaration.
	(Change_In_Out_To_In_Fix): New function to create a fix for
	convertinting an in out parameter direction to a an in direction.

2026-01-09  Tonu Naks  <naks@adacore.com>

	* doc/gnat_rm/implementation_of_ada_2022_features.rst: update
	AI12-0350, add AI12-0254.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2026-01-09  Ronan Desplanques  <desplanques@adacore.com>

	* adaint.c (__gnat_set_thread_description): New function.
	* libgnarl/s-taprop__mingw.adb (Enter_Task): Set thread description.
	* rtinit.c (__gnat_runtime_initialize): Set up function pointer.
	* mingw32.h (HRESULT, pSetThreadDescription): New.

2026-01-09  Denis Mazzucato  <mazzucato@adacore.com>

	* exp_ch3.adb (Build_Init_Procedure): Remove call to constructors.
	(Build_Default_Simple_Initialization): Implicit call to parameterless constructors in new
	allocations.
	(Expand_Freeze_Record_Type): Freeze constructors as we would freeze predefined operations.
	(Constructor_Freeze): Freeze all constructors.
	* sem_attr.adb (Analyze_Attribute): Handle missing parameterless constructors.
	* sem_ch3.adb: The default constructor is now called parameterless.
	* sem_util.adb (Find_Matching_Constructor): Return the constructor
	matching the given condition. Before it was just checking its
	existence.
	(Has_Copy_Constructor): Move it upward to maintain alphabetic
	order of utility subprograms.
	(Has_Parameterless_Constructor): The default constructor is now called parameterless.
	(Has_Explicit_Constructor): New utility to check for constructors
	defined by the user. Used to understand if an implicit
	parameterless constructor exists.
	(Is_Copy_Constructor): Refactor easier control flow.
	(Is_Parameterless_Constructor): New utility to check if a constructor has a profile
	compatible with the parameterless constructor.
	* sem_util.ads: Likewise.

2026-01-09  Viljar Indus  <indus@adacore.com>

	* errid-diagnostic_repository.ads: Update the diagnostic repository.
	* errid-switch_repository.ads: Update the switch repository.
	* errid.ads: Add new Diagnostic_Id-s.
	* sem_warn.adb (Check_References): Add Diagnostic_Id-s for
	error messages triggered by -gnatwk.

2026-01-09  Viljar Indus  <indus@adacore.com>

	* errid.adb (Check_Diagnostic_To_Switch_Consistency): New subprogram
	for checking the consistency of diagnostics.
	(Check_Switch_To_Diagnostic_Consistency) New subprogram for checking
	the consistency of switches.
	(Add_All_Diagnostic_Rules): Check diagnostic consitency.
	(Add_All_Switch_Rules): Check switch consitency.

2026-01-09  Viljar Indus  <indus@adacore.com>

	* debug.adb: remove use case for -gnatd_E
	* errout.adb (Output_Messages): remove printing of
	the diagnostic repository when -gnatd_E is used.
	* gnatcmd.adb: Add support for printing the diagnostic repository.

2026-01-09  Viljar Indus  <indus@adacore.com>

	* errid-diagnostic_repository.ads: New package for storing
	information about diagnostics.
	* errid-switch_repository.adb: New package for storing
	information about switches.
	* errid-switch_repository.ads: Likewise.
	* errid.adb: Move common methods related to Diagnostic_Id-s and
	Switch_Id-s to this pacakge.
	* errid.ads: Likewise.
	* errout.adb (Add_Unique_Diagnostics_And_Switches): New method
	for gathering all of the unique Diagnostic_Id-s and Switch_Id-s
	among all of the error messages.
	(Output_Messages): Use the new SARIF printer interface for printing
	the report.
	* erroutc-sarif_emitter.adb (Print_Relationship): New method for
	printing relationship nodes.
	(Print_Rule): Support printing switches as rules. Add support
	for printing relationship nodes under rules. Remove brackets around
	the rule name.
	(Print_Runs): Add a printer argument to pass all of the switches
	and diagnostics as rules in the SARIF report.
	(Print_Tool): Likewise.
	(Free): New method.
	(Get_Unique_Rules): Removed.
	(Print_Result): Remove brackets around the rule name.
	(Print_Rules): Print switches as rules.
	* erroutc-sarif_emitter.ads (SARIF_Printer): New record type for
	storing and passing all of the diagnostic and switch information
	around in the SARIF printer.
	(Report_Kind): New type for indicating the different reports the
	SARIF emitter can produce.
	(Free): New method for releasing all of the dynamically allocated
	memory.
	(Print_SARIF_Report): Add a SARIF_Printer argument.
	* erroutc.adb (Get_Human_Id): Removed.
	(Get_Switch): Removed.
	(Get_Doc_Switch): Simplify code.
	* erroutc.ads: (Get_Human_Id): Removed.
	(Get_Switch): Removed.
	* errsw.adb: Replaced by errid-switch_repository.adb.
	* errsw.ads: Replaced by errid-switch_repository.ads.
	* errutil.adb: Remove dependecy to errsw pacakge.
	* par-endh.adb: Fix whitespace.
	* gcc-interface/Make-lang.in: Update the dependencies.
	* gcc-interface/Makefile.in: Likewise.

2026-01-09  Steve Baird  <baird@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst: Document the
	From_Address attribute.
	* exp_attr.adb (Expand_N_Attribute_Reference): Implement expansion
	of a From_Address attribute reference.
	* sem_attr.adb (Analyze_Attribute): Implement analysis of a
	From_Address attribute reference.
	(Eval_Attribute): A From_Address attribute reference cannot be
	statically evaluated.
	* snames.ads-tmpl: Declare Name_From_Address and Attribute_From_Address.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2026-01-09  Steve Baird  <baird@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Add new legality
	checks for Super and Initialize aspect specifications, implemented
	by calling a new local procedure,
	Check_Constructor_Initialization_Expression.

2026-01-09  Steve Baird  <baird@adacore.com>

	* Makefile.rtl: add entry for new unit
	* impunit.adb: add entry for new unit
	* libgnat/a-cbinho.adb: new file with body for new unit
	* libgnat/a-cbinho.ads: new file with spec for new unit
	* libgnat/a-coboho.ads: add comment
	* libgnat/a-undesu.ads: add Preelaborate aspect specification,
	as per AI22-0050.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123003
	* accessibility.adb: Remove unused clauses.
	* aspects.adb: Likewise.
	* checks.adb: Likewise.
	* comperr.adb: Likewise.
	* contracts.adb: Likewise.
	* cstand.adb: Likewise.
	* debug_a.adb: Likewise.
	* errout.adb: Likewise.
	* eval_fat.adb: Likewise.
	* exp_aggr.adb: Likewise.
	* exp_atag.adb: Likewise.
	* exp_attr.adb: Likewise.
	* exp_cg.adb: Likewise.
	* exp_ch11.adb: Likewise.
	* exp_ch12.adb: Likewise.
	* exp_ch13.adb: Likewise.
	* exp_ch2.adb: Likewise.
	* exp_ch3.adb: Likewise.
	* exp_ch4.adb: Likewise.
	* exp_ch5.adb: Likewise.
	* exp_ch6.adb: Likewise.
	* exp_ch7.adb: Likewise.
	* exp_ch8.adb: Likewise.
	* exp_ch9.adb: Likewise.
	* exp_code.adb: Likewise.
	* exp_dbug.adb: Likewise.
	* exp_disp.adb: Likewise.
	* exp_dist.adb: Likewise.
	* exp_fixd.adb: Likewise.
	* exp_imgv.adb: Likewise.
	* exp_intr.adb: Likewise.
	* exp_pakd.adb: Likewise.
	* exp_prag.adb: Likewise.
	* exp_put_image.adb: Likewise.
	* exp_sel.adb: Likewise.
	* exp_smem.adb: Likewise.
	* exp_spark.adb: Likewise.
	* exp_strm.adb: Likewise.
	* exp_tss.adb: Likewise.
	* exp_unst.adb: Likewise.
	* exp_util.adb: Likewise.
	* exp_util.ads: Likewise.
	* expander.adb: Likewise.
	* freeze.adb: Likewise.
	* frontend.adb: Likewise.
	* ghost.adb: Likewise.
	* gnat1drv.adb: Likewise.
	* gnat_cuda.adb: Likewise.
	* impunit.adb: Likewise.
	* inline.adb: Likewise.
	* itypes.adb: Likewise.
	* itypes.ads: Likewise.
	* layout.adb: Likewise.
	* lib.adb: Likewise.
	* libgnarl/s-tasuti.adb: Likewise.
	* live.adb: Likewise.
	* local_restrict.adb: Likewise.
	* mutably_tagged.adb: Likewise.
	* nlists.adb: Likewise.
	* par.adb: Likewise.
	* par_sco.adb: Likewise.
	* pprint.adb: Likewise.
	* repinfo.adb: Likewise.
	* restrict.adb: Likewise.
	* rtsfind.adb: Likewise.
	* scil_ll.adb: Likewise.
	* scn.adb: Likewise.
	* sem.adb: Likewise.
	* sem_aggr.adb: Likewise.
	* sem_attr.adb: Likewise.
	* sem_aux.adb: Likewise.
	* sem_case.adb: Likewise.
	* sem_cat.adb: Likewise.
	* sem_ch10.adb: Likewise.
	* sem_ch11.adb: Likewise.
	* sem_ch12.adb: Likewise.
	* sem_ch13.adb: Likewise.
	* sem_ch2.adb: Likewise.
	* sem_ch3.adb: Likewise.
	* sem_ch4.adb: Likewise.
	* sem_ch5.adb: Likewise.
	* sem_ch6.adb: Likewise.
	* sem_ch7.adb: Likewise.
	* sem_ch9.adb: Likewise.
	* sem_dim.adb: Likewise.
	* sem_disp.adb: Likewise.
	* sem_dist.adb: Likewise.
	* sem_elab.adb: Likewise.
	* sem_elim.adb: Likewise.
	* sem_eval.adb: Likewise.
	* sem_intr.adb: Likewise.
	* sem_mech.adb: Likewise.
	* sem_prag.adb: Likewise.
	* sem_res.adb: Likewise.
	* sem_scil.adb: Likewise.
	* sem_smem.adb: Likewise.
	* sem_type.adb: Likewise.
	* sem_util.adb: Likewise.
	* sem_util.ads: Likewise.
	* sem_warn.adb: Likewise.
	* sinput.adb: Likewise.
	* sprint.adb: Likewise.
	* strub.adb: Likewise.
	* style.adb: Likewise.
	* styleg.adb: Likewise.
	* tbuild.adb: Likewise.
	* tbuild.ads: Likewise.
	* treepr.adb: Likewise.
	* uname.adb: Likewise.
	* sem_ch8.adb: Likewise.
	(Mark_Use_Clauses.Mark_Use_Package): Do not recurse on the prefix
	for a package given by an expanded name.

2026-01-09  Bob Duff  <duff@adacore.com>

	* debug.adb: Remove doc for gnatd_X; no longer used.
	* einfo.ads: Minor comment improvement.
	* exp_ch3.adb: Minor reformatting.
	* exp_ch6.adb (Check_BIP_Actuals): Export.
	(Validate_Subprogram_Calls): Move to Vast.
	* exp_ch6.ads (Check_BIP_Actuals): Export.
	* exp_ch7.adb (Make_Init_Call): Remove obsolete Set_Assignment_OK.
	* frontend.adb: Move Validate_Subprogram_Calls call to VAST,
	as the comment suggested.
	* par.adb: Minor comment improvements.
	* par-ch13.adb (Get_Aspect_Specifications):
	Misc cleanup, including removal of redundant setting
	of Aspects, and changing multiple 'if's to 'case'.
	* par-ch4.adb (P_Simple_Name_Resync): Do not refer to Token_Node
	when it is documented as not defined.
	* par-ch6.adb: Minor comment improvement.
	* par-util.adb (Bad_Spelling_Of): After setting Token from
	identifier to keyword, destroy Token_Node, so it doesn't get
	accidentally used.
	* scans.adb (Save_Scan_State, Restore_Scan_State):
	Put these in logical order. Make sure we're not saving
	and restoring bogus information in Token_Node.
	* scans.ads: Fix incorrect comment.
	* scn.ads: Minor comment improvements. Do not duplicate (wrong)
	information from Scans.
	* scng.adb: Set Token_Node to Empty initially, so we don't
	accidentally refer to bogus information from previous tokens.
	* scng.ads: Minor comment improvement (remove information
	about one actual from comment on the formal).
	* sem_aux.ads (Initialization_Suppressed):
	Minor comment improvement.
	* sem_ch6.adb: Remove usage of Debug_Flag_Underscore_XX.
	This code is pretty well tested by now, and anyway, it's
	only called from within pragmas Assert.
	* sem_util.adb (Enter_Name): Minor cleanup.
	* sprint.adb (Dump_Generated_Only): Fix incorrect comment.
	* vast.adb: Misc cleanup. Enable assertion about
	Errout.Compilation_Errors (should be False if back end
	is enabled).
	(Validate_Subprogram_Calls): Move here from frontend.adb.
	Move call to it here from frontend.adb.

2026-01-09  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): Conditionalize last actual of
	call to Error_Msg_NE to avoid blowup on N_Parameter_Association actuals.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_attr.adb (Expand_Size_Attribute): If the attribute is applied
	to a formal parameter allocated with an extra Constrained parameter,
	use the value of the latter to choose between the "unconstrained" or
	the "constrained" size of the formal parameter.

2026-01-09  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_Composite_Equality): Under Ada83 and Ada95
	modes, and compiling under -gnatw_q, search for an user-defined
	equality and report a warning if found since it will not be called.

2026-01-09  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/system-mingw.ads (Underlying_Priorities): Restore previous
	mapping with distinct values around Default_Priority.

2026-01-09  Denis Mazzucato  <mazzucato@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Do not expand copy
	constructor calls when unnecessary.
	* exp_ch3.adb
	(Build_Implicit_Copy_Constructor): If necessary, build the implicit copy
	constructor as part of the initialization procedures of its type.
	(Expand_N_Object_Declaration): Add implicit 'Make attribute calls for
	objects that may need construction.
	* exp_ch6.adb (Make_Parent_Constructor_Call): Constructor's procedure
	calls should be only generated from expansion of the 'Make attribute as
	there is hidden logic to handle copy constructors.
	* sem_attr.adb (Analyze_Attribute): Emit a specific error message if a
	non-copy constructor is called but no constructor is defined.
	* sem_ch13.adb (Analyze_Aspect_Specifications): The Ekind of the
	implicitly generated copy constructor is not a subprogram body.
	* sem_ch4.adb (Extended_Primitive_Ops): Extend the operation list that
	can be called via prefix notation to include constructors.
	* sem_ch6.adb (Check_For_Primitive_Subprogram): Skip constructors for
	primitive analysis.
	* sem_util.adb (Has_Matching_Constructor): Generic function to
	check for the existence of a constructor matching a given
	condition.
	(Has_Copy_Constructor): Check whether a type has an implicit or explicit
	copy constructor.
	(Has_Default_Constructor): Use Has_Matching_Constructor.
	(Is_Copy_Constructor): Check whether a subprogram is a copy constructor.
	(Is_Copy_Constructor_Call): Check whether an attribute call is call to a
	copy constructor.
	* sem_util.ads: Add specs for copy constructor utility functions.
	* snames.ads-tmpl (Snames): Add names Self and From.

2026-01-09  Martin Clochard  <clochard@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): For Old attribute,
	detect the anonymous access type case explicitly instead of
	implicitly within in Eligible_For_Conditional_Evaluation.
	* sem_util.ads: (Eligible_For_Conditional_Evaluation): Do not
	return True on anonymous access types. This was also breaking usage
	outside expansion (legality checks for Old).
	* sem_util.adb: (Conditional_Evaluation_Condition): Special case
	of no determiners for anonymous access types is no longer possible.

2026-01-09  Ronan Desplanques  <desplanques@adacore.com>

	* snames.ads-tmpl: Make "Destructor" an attribute name.
	* snames.adb-tmpl: Allow direct attribute definition for Destructor.
	* gen_il-fields.ads (Destructor): New field.
	(Is_Destructor): Remove.
	* gen_il-gen-gen_entities.adb: (Destructor): New field.
	(Is_Destructor): Remove.
	* einfo.ads (Destructor): Document new field.
	(Is_Destructor): Remove documentation.
	* aspects.ads (Aspect_Destructor): Remove.
	* exp_attr.adb (Expand_N_Attribute_Reference): Adapt after aspect
	removal.
	* exp_ch7.adb (Build_Finalize_Statements): Adapt to new destructor
	representation.
	* freeze.adb (Freeze_Entity): Remove obsolete check.
	* sem_attr.adb (Analyze_Attribute, Eval_Attribute): Adapt to new
	attribute.
	* sem_ch13.adb (Analyze_Aspect_Specifications,
	Check_Aspect_At_End_Of_Declarations): Adapt after aspect removal.
	* sem_ch6.adb (Analyze_Direct_Attribute_Definition): Add handling
	of Destructor attribute.
	(Can_Be_Destructor_Of): New function.
	* doc/gnat_rm/gnat_language_extensions.rst: Adapt documentation to
	new syntax.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2026-01-09  Tom Tromey  <tromey@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(GNATLLVM): Update debugging documentation.
	* gnat_ugn.texi: Regenerate.

2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.ads (Find_Hook_Context): Rename to...
	(Find_Master_Context): ...this and alphabetize.
	* exp_util.adb (Find_Master_Context): Rename to...
	(Find_Master_Context): ...this and alphabetize.
	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Adjust to
	above renaming.
	(Process_Transients_In_Expression): Likewise.

2026-01-09  Ronan Desplanques  <desplanques@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check direct
	attribute definitions for specs.

2026-01-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Adjust references in comments for
	pragma Side_Effects and Volatile_Function.

2026-01-09  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Build_Untagged_Record_Equality): Add missing
	support for incomplete and private types.

2026-01-09  Viljar Indus  <indus@adacore.com>

	* einfo-utils.adb (Can_Have_Formals): New function for checking
	if the entity can support formals.
