2026-06-12  Release Manager

	* GCC 15.3.0 released.

2026-06-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/125695
	* libgnat/s-genbig.adb ("**"): Do not drop the sign on the floor.
	(Big_Exp): Take into account the parity of the exponent for -2.

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

	* doc/gnat_rm/gnat_language_extensions.rst
	(Generalized Finalization): Document the new restriction.
	* sem_ch13.adb (Resolve_Finalizable_Argument): Adjust wording of
	error message.
	(Resolve_Finalization_Procedure.Is_Finalizable_Primitive): Require
	the procedure to be a primitive operation.
	* gnat_rm.texi: Regenerate.

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

	PR ada/125240
	* gen_il-gen-gen_entities.adb (Enumeration_Kind): Make
	Lit_Indexes and Lit_Strings be defined for root types only.
	* einfo.ads (Lit_Hash): Adjust description.
	(Lit_Indexes): Likewise.
	(Lit_Strings): Likewise.
	(E_Enumeration_Type): Likewise.
	* exp_imgv.adb (Expand_Image_Attribute): Do not fetch the root type
	for enumeration types, except for character types, and adjust.

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

	PR ada/125044
	* sem_disp.adb (Check_Controlling_Formals): Apply the same massaging
	to the result subtype as to the parameter subtypes.

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

	PR ada/125044
	* exp_ch6.ads (Needs_BIP_Task_Actuals): Adjust description.
	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Move activation
	chain for every build-in-place function with task formal parameters
	when the type of the return object might have tasks.

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-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-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-14  Matthias Klose  <doko@gcc.gnu.org>

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

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/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-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-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  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-09  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-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  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-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-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/68179
	* exp_ch3.adb (Expand_Freeze_Array_Type): Build an initialization
	procedure for a type derived from String declared with the aspect
	Default_Aspect_Component_Value.

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

	PR ada/123371
	* sem_aggr.adb (Resolve_Iterated_Association): Call Preanalyze
	instead of Analyze consistently, as well as Copy_Separate_Tree
	instead of New_Copy_Tree.

2025-12-27  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	PR ada/123306
	* sem_ch12.adb (Analyze_One_Association): Immediately freeze the
	root type of mutably tagged types used as actual type parameters.

2025-12-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	PR ada/123088
	* sem_aggr.adb (Resolve_Record_Aggregate): Add more robust guard.

2025-12-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	PR ada/123302
	* sem_ch12.adb (Save_Global_Reference.Save_References_In_Aggregate):
	Recurse on the scope of the type to find one that is visible, in the
	case of an actual in a subprogram call with a local type.

2025-12-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	PR ada/123289
	* sem_ch13.adb (Resolve_Aspect_Aggregate.Resolve_Operation): Give
	an error if the operation's name denotes more than one subprogram.

2025-12-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123185
	* sem_ch4.adb (Analyze_Overloaded_Selected_Component): Go to the
	root when the prefix has a class-wide type.
	* sem_res.adb (Resolve_Selected_Component): Likewise.

2025-12-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123060
	* gcc-interface/utils.cc (update_pointer_to): Streamline.

2025-12-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123060
	* gcc-interface/utils.cc (update_pointer_to): Preserve the alias
	sets present on the old pointer and old reference, if any.

2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123138
	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>:
	Override a universal numeric type only if the prefix is not an
	aggregate.

2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123060
	* gcc-interface/utils.cc (update_pointer_to): Synthesize a new
	TYPE_CANONICAL for the old pointer type in the case where there
	is no new pointer type.  Likewise for references.

2025-12-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123096
	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Call
	Incomplete_Or_Partial_View with Partial_Only set to True.

2025-12-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123088
	* sem_aggr.adb (Resolve_Record_Aggregate): Add missing guard.

2025-12-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/123037
	* rtinit.c [__MINGW32__]: Include <stdlib.h> and not <windows.h>.
	* rtfinal.c [__MINGW32__]: Do not include <windows.h>.

2025-12-06  Iain Sandoe  <iain@sandoe.co.uk>

	PR ada/115305
	* Makefile.rtl: Use s-oslock__darwin instead of the Posix version.
	* libgnat/s-oslock__darwin.ads: New file.

2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>

	* repinfo.adb (List_Location): Do not output the final comma.
	(List_Common_Type_Info): Adjust to above change.  Do not output
	"??" for an unknown alignment.
	(List_Entities): Do not output generic types.
	(List_Object_Info): Adjust to above change.
	(List_Subprogram_Info): Likewise.

2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_type.adb (Last_Overloaded): Fix typo.

2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/111433
	* sem_util.ads (Incomplete_Or_Partial_View): Add Partial_Only formal
	parameter.
	* sem_util.adb (Incomplete_Or_Partial_View): Likewise.  Do not look
	for an incomplete view if it is set to True.
	* sem_ch6.adb (Check_Conformance.Null_Exclusions_Match): Pass True
	for Partial_Only in the call to Incomplete_Or_Partial_View.

2025-11-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/122640
	* sem_ch3.adb (Analyze_Object_Declaration): Set Is_True_Constant
	on entry for constants and Never_Set_In_Source in all cases.
	If an initialization expression is present, set Has_Initial_Value
	and Is_True_Constant on variables.

2025-11-12  Ronan Desplanques  <desplanques@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Call Mutate_Ekind earlier.

2025-11-04  Bob Duff  <duff@adacore.com>

	PR ada/118208
	* exp_ch5.adb
	(Expand_Assign_With_Target_Names.Replace_Target):
	Remove code setting Entity to Empty.
	* sinfo.ads (Has_Target_Names):
	Improve comment: add "@" to clarify what "target name"
	means, and remove the content-free phrase "and must
	be expanded accordingly."

2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/118782
	* styleg.adb (Is_Box_Comment): Also stop the loop at EOF.

2025-10-24  Nicolas Boulenguez  <nicolas@debian.org>

	PR ada/81087
	* gnatlink.adb (Is_Prefix): Move around, streamline and return false
	when the prefix is not strict.
	(Gnatlink): Fix other instances of incorrect lower bound assumption.

2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/107536
	* exp_ch2.adb (Expand_Renaming): Mark the entity as referenced.

2025-10-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/118343
	* Makefile.rtl (LLVM_BUILD): Delete.

2025-09-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/117517
	* sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Try to
	resolve the reducer first.  Fix casing of error message.

2025-09-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/121968
	* sem_ch12.adb (Associations.Find_Assoc): Add guard for clauses.
	* sem_dim.adb (Analyze_Dimension_Array_Aggregate): Add test for
	N_Iterated_Component_Association nodes.

2025-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu)
	<N_Object_Renaming_Declaration>: Deal with objects whose elaboration
	is deferred.
	(process_freeze_entity): Deal with renamed objects whose elaboration
	is deferred.

2025-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* checks.adb (Apply_Discriminant_Check): Remove undocumented test
	on Is_Aliased_View applied to the left-hand side to skip the check
	in the case where the subtypes are the same, and replace it with a
	test that the subtypes are constrained.

2025-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Finalize_Address): In an untagged derivation, call
	Root_Type on the full view of the base type if the partial view is
	itself not a derived type.
	(Is_Untagged_Derivation): Minor formatting tweak.

2025-09-11  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Build_Container_Aggr_Code.Build_Size_Expr): In the case
	of an association with a single choice, only call Update_Choices when
	the choice expression is nonstatic.

2025-09-11  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb (Needs_One_Actual): Add support for untagged record
	types when the sources are compiled with Core Extensions allowed.

2025-09-11  Viljar Indus  <indus@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Definitions): Create a temporary
	pragma for the non-task and access type cases.

2025-09-11  Marc Poulhiès  <poulhies@adacore.com>

	* s-pack.adb.tmpl: Typo fix in comment.

2025-09-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Refine test for
	protected procedures; fix typo in comment.

2025-09-11  Denis Mazzucato  <mazzucato@adacore.com>

	* exp_ch3.adb (Init_Formals): Remove the check on Global_No_Tasking.
	* sem.adb: Fix typo.

2025-09-11  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Build_Container_Aggr_Code.To_Int): Replace existing
	conditional expression with call to Expr_Value.

2025-09-11  Steve Baird  <baird@adacore.com>

	* freeze.adb (Freeze_Profile): Do not emit a warning stating that
	a formal parameter's size is 8 if the parameter's size is not 8.

2025-09-11  Marc Poulhiès  <poulhies@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu): Fix typo in comment.

2025-08-08  Release Manager

	* GCC 15.2.0 released.

2025-07-31  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	PR ada/120440
	* gcc-interface/Makefile.in (GNATLINK_OBJS): Add s-excmac.o.
	(GNATMAKE_OBJS): Likewise.

2025-07-25  Bob Duff  <duff@adacore.com>

	* sem_ch12.adb (Check_Formal_Package_Instance):
	Do nothing in case of E_Subprogram_Body.

2025-07-25  Ronan Desplanques  <desplanques@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Set flag appropriately.

2025-07-22  Ronan Desplanques  <desplanques@adacore.com>

	* gen_il-fields.ads (Is_Implicit_Full_View): New field.
	* gen_il-gen-gen_entities.adb (Type_Kind): Use new field.
	* einfo.ads (Is_Implicit_Full_View): Document new field.
	* exp_ch7.adb (Make_Adjust_Call, Make_Init_Call, Make_Final_Call): Use
	new field.
	* exp_util.adb (Finalize_Address): Likewise.
	* sem_ch3.adb (Copy_And_Build): Set new field.

2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.ads (May_Generate_Large_Temp): Delete.
	* exp_util.adb (May_Generate_Large_Temp): Likewise.
	(Safe_Unchecked_Type_Conversion): Do not take stack checking into
	account to compute the result.

2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Safe_Unchecked_Type_Conversion): Always return True
	if the expression is the prefix of an N_Selected_Component.

2025-07-22  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Get_Actual_Subtype): Do the same for GCC and GNATprove
	backends.

2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.adb (Get_Actual_Subtype): Only create a new subtype when
	the expander is active.  Remove a useless test of type inequality,
	as well as a useless call to Set_Has_Delayed_Freeze on the subtype.

2025-07-22  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_util.adb (Finalize_Address): Prevent infinite loop

2025-07-21  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	PR ada/121184
	* styleg.adb (Check_Comment): Use consistent warning message.

2025-07-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/121056
	* sem_ch4.adb (Try_Object_Operation.Try_Primitive_Operation): Add
	test on Is_Record_Type before accessing Underlying_Record_View.

2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.cc (make_packable_type): Clear the TYPE_PACKED
	flag in the case where the alignment is bumped.

2025-07-04  Ronan Desplanques  <desplanques@adacore.com>

	* exp_ch7.adb (Make_Final_Call): Tweak search of Finalize primitive.
	* exp_util.adb (Finalize_Address): Likewise.

2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Check_Compile_Time_Size): Try harder to see whether
	the bounds of array types are known at compile time.

2025-07-04  Steve Baird  <baird@adacore.com>

	* mutably_tagged.adb (Make_CW_Size_Compile_Check): Include the
	value of the Size'Class limit in the message generated via a
	Compile_Time_Error pragma.

2025-07-04  Ronan Desplanques  <desplanques@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Fix error emission.

2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (gnatlib-sjlj): Delete.
	(gnatlib-zcx): Do not modify Frontend_Exceptions constant.
	* libgnat/system-linux-loongarch.ads (Frontend_Exceptions): Delete.

2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (addressable_p): Add COMPG third parameter.
	<COMPONENT_REF>: Do not return true out of alignment considerations
	for non-strict-alignment targets if COMPG is set.
	(Call_to_gnu): Pass true as COMPG in the call to the addressable_p
	predicate if the called subprogram is an initialization procedure.

2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu) <N_Allocator>: Allocate the
	bounds alongside the data if the Is_Constr_Array_Subt_With_Bounds
	flag is set on the designated type.
	<N_Free_Statement>: Take into account the allocated bounds if the
	Is_Constr_Array_Subt_With_Bounds flag is set on the designated type.

2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_component_type): Validate the
	Component_Size like the size of a type only if the component type
	is actually packed.

2025-07-03  Ronan Desplanques  <desplanques@adacore.com>

	* exp_util.adb (Insert_Actions): Fix check.

2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not bail out for the
	declarations of return objects.

2025-07-03  Ronan Desplanques  <desplanques@adacore.com>

	* exp_ch7.adb (Make_Deep_Record_Body): Fix case of absent Initialize
	primitive.

2025-07-03  Ronan Desplanques  <desplanques@adacore.com>

	* exp_aggr.adb (Generate_Finalization_Actions): Stop assuming that
	initialize primitive exists.

2025-07-03  Ronan Desplanques  <desplanques@adacore.com>

	* exp_ch7.adb (Insert_Actions_In_Scope_Around): Fix condition.

2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Handle_Changed_Representation): Alphabetize local
	variables.  Set the No_Finalize_Actions flag on the assignment.

2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/120705
	* exp_ch6.adb (Needs_BIP_Collection): Always return False if the
	type has relaxed finalization.

2025-07-01  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Test not Has_Relaxed_Finalization
	as a guard against retrieving BIP_Collection formal (and related code).

2025-07-01  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Constrain_Corresponding_Record): Inherit Class_Wide_Type on the
	created constrained subtype.

2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Shift_Address_For_Descriptor): Add dummy variable
	to make sure that System_Storage_Elements is loaded.

2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Shift_Address_For_Descriptor): New function.
	(Make_Address_For_Finalize): Call above function.
	(Make_Finalize_Address_Stmts): Likewise.
	* exp_util.ads (Is_Constr_Array_Subt_Of_Unc_With_Controlled): New
	predicate.
	* exp_util.adb (Is_Constr_Array_Subt_Of_Unc_With_Controlled): Ditto.
	(Remove_Side_Effects): Call above predicate.
	* sem_ch3.adb (Analyze_Object_Declaration): Likewise.
	* sem_ch4.adb (Analyze_Allocator): Allocate the bounds by setting
	Is_Constr_Array_Subt_With_Bounds when appropriate.

2025-07-01  Javier Miranda  <miranda@adacore.com>

	* sem_ch4.adb (Try_Object_Operation): Handle mutably tagged
	class-wide type prefix.

2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Finalize_Address): Do not go to the root type for
	array types.

2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.ads (Is_Finalizable_Access): New predicate.
	(Is_Non_BIP_Func_Call): Delete.
	(Is_Secondary_Stack_BIP_Func_Call): Likewise.
	* exp_util.adb (Is_Finalizable_Access): New predicate.
	(Initialized_By_Aliased_BIP_Func_Call): Delete.
	(Initialized_By_Reference): Likewise.
	(Is_Aliased): Only consider the nontransient object serviced by
	the transient scope.
	(Is_Part_Of_BIP_Return_Statement): Minor tweak.
	(Is_Finalizable_Transient): Remove calls to Initialized_By_Reference
	and Initialized_By_Aliased_BIP_Func_Call.
	Call Is_Finalizable_Access for access objects.
	(Is_Non_BIP_Func_Call): Delete.
	(Is_Secondary_Stack_BIP_Func_Call): Likewise.
	(Requires_Cleanup_Actions): Call Is_Finalizable_Access for access
	objects.
	(Side_Effect_Free): Return True for N_Reference.
	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Call
	Is_Finalizable_Access for access objects.

2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Is_Expression_Of_Func_Return): New predicate.
	(Is_Related_To_Func_Return): Call Is_Expression_Of_Func_Return.
	(Remove_Side_Effects): Generate a temporary for a function call
	that returns a constrained array type with controlled component
	and an unconstrained first subtype.

2025-06-30  Bob Duff  <duff@adacore.com>

	* exp_attr.adb (Attribute_Max_Size_In_Storage_Elements):
	Return Storage_Count'Last converted to universal_integer.

2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_prag.adb (Analyze_Pragma) <Pragma_No_Component_Reordering>:
	Call Find_Type on the first argument of the pragma.

2025-06-30  Steve Baird  <baird@adacore.com>

	* exp_put_image.adb (Build_Record_Put_Image_Procedure): If
	Discriminant_Specifications takes us from the full view of a type
	to an (intentionally) unanalyzed subtree, then instead find
	discriminant entities by calling Discriminant_Specifications on
	the partial view of the type.

2025-06-30  Ronan Desplanques  <desplanques@adacore.com>

	* sem_ch6.adb (Check_Delayed_Subprogram, Possible_Freeze): Restrict
	cases where freezing is delayed.
	* sem_ch6.ads (Check_Delayed_Subprogram): Improve documentation
	comment.
	* sprint.adb (Write_Itype): Improve output.

2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Process_Transient_In_Scope): Bail out if the object
	is an ignored ghost entity.

2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Insert_Actions): Extend special treatment applied
	to freeze nodes to the case of blocks generated for aggregates.

2025-06-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/120854
	* sem_eval.adb (Get_String_Val): Be prepared for an integer literal
	after a serious error is detected, and raise PE on other nodes.

2025-06-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/120665
	* sem_aggr.adb (Resolve_Container_Aggregate): Use robust guards.

2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_rm/gnat_language_extensions.rst
	(Generalized Finalization): Document the actual implementation.
	(No_Raise): Move to separate section.
	* gnat_rm.texi: Regenerate.

2025-06-12  Ronan Desplanques  <desplanques@adacore.com>

	* sem_ch3.adb (Build_Derived_Private_Type): Fix test.
	(Build_Derived_Record_Type): Adjust error recovery paths.

2025-06-12  Ronan Desplanques  <desplanques@adacore.com>

	* exp_util.adb (Insert_Actions): Refine test.

2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
	switches) <-O>: Fix long line.
	* gnat_ugn.texi: Regenerate.

2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>

	* usage.adb (Usage): Justify the documentation of common switches
	like that of other switches.  Rework that of the -O switch.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
	switches) <-O>: Rework and document 'z' and 'g' operands.
	* doc/gnat_ugn/gnat_and_program_execution.rst (Optimization Levels):
	Rework and document -Oz and -Og switches.
	* gnat_ugn.texi: Regenerate.

2025-06-10  Gary Dismukes  <dismukes@adacore.com>

	* einfo.ads: Revise comment about Dynamic_Predicate flag to make it
	more accurate.
	* sem_case.adb (Check_Choices): Test "not Has_Static_Predicate_Aspect"
	as additional guard for error about use of subtype with nonstatic
	predicate as a case choice. Improve related error message.

2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Freeze_Static_Object): Do not issue any error message
	for compiler-generated entities.

2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Deal with a
	transient scope being created around the declaration.
	* freeze.adb (Freeze_Entity): Do not call Freeze_Static_Object for
	a renaming declaration.

2025-06-10  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Build_Container_Aggr_Code.To_Int): Apply Enumeration_Pos
	to Entity (Expr) rather than Expr.

2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch12.adb (Copy_Generic_Node): Do not call Root_Type to find
	the root type of an aggregate of a derived tagged type.

2025-06-10  Ronan Desplanques  <desplanques@adacore.com>

	* libgnarl/s-stusta.adb (Compute_All_Tasks): Skip terminated tasks.

2025-06-09  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Constrain_Index): In the case of a fixed-lower-bound index,
	set Etype of the newly created itype's Scalar_Range from the index's Etype.
	* sem_ch12.adb (Validate_Array_Type_Instance): If the actual subtype is
	a fixed-lower-bound type, then check again the Etype of its Scalar_Range.

2025-06-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Fix conditions for legality checks on
	formal type declarations.

2025-06-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): If pragmas apply to a formal array
	type, then set the flags on the base type.

2025-06-09  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Expand_Container_Aggregate): Use the Base_Type of the
	subtype provided by the context as the subtype of the temporary object
	initialized by the aggregate.

2025-06-09  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): When expanding attribute
	Valid, use signedness from the validated view, not from its base type.

2025-06-09  Gary Dismukes  <dismukes@adacore.com>

	* contracts.adb (Inherit_Condition): Remove Assoc_List and its uses
	along with function Check_Condition, since mapping of formals will
	effectively be done in Build_Class_Wide_Expression (by Replace_Entity).
	* exp_util.adb (Replace_Entity): Only rewrite entity references in
	function calls that qualify according to the result of calling the
	new function Call_To_Parent_Dispatching_Op_Must_Be_Mapped.
	(Call_To_Parent_Dispatching_Op_Must_Be_Mapped): New function that
	determines whether a function call to a primitive of Par_Subp
	associated tagged type needs to be mapped (according to whether
	it has any actuals that reference controlling formals of the
	primitive).

2025-06-09  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Remove Decl
	formal parameter, add Typ and Const formal parameters.
	(Expand_N_Case_Expression): Fix pasto in comment.  Adjust call to
	Insert_Conditional_Object_Declaration and tidy up surrounding code.
	(Expand_N_If_Expression): Adjust couple of calls to
	Insert_Conditional_Object_Declaration.

2025-06-06  Javier Miranda  <miranda@adacore.com>

	* sem_ch4.adb (Constant_Indexing_OK): Add missing support for
	RM 4.1.6(13/3), and improve performance to avoid climbing more
	than needed. Add documentation.
	(Try_Indexing_Function): New subprogram.
	(Expr_Matches_In_Formal): Added new formals.
	(Handle_Selected_Component): New subprogram.
	(Has_IN_Mode): New subprogram.
	(Try_Container_Indexing): Add documentation, code reorganization
	and extend its functionality to improve its support for prefixed
	notation calls.

2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch10.adb (Install_Siblings.In_Context): Add missing guard.

2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Make sure the
	object is allocated properly by the code generator at library level.

2025-06-06  Steve Baird  <baird@adacore.com>

	* sem_ch4.adb
	(Find_Unary_Types): Because we reanalyze names in an instance,
	we sometimes have to take steps to filter out extraneous name
	resolution candidates that happen to be visible at the point of the
	instance declaration. Remove some code that appears to have been
	written with this in mind. This is done for two reasons. First, the
	code sometimes doesn't work (possibly because the In_Instance test
	is not specific enough - it probably should be testing to see whether
	we are in an instance of the particular generic in which the result
	of calling Corresponding_Generic_Type was declared) and causes correct
	code to be rejected. Second, the code seems to no longer be necessary
	(possibly because of subsequent fixes in this area which are not
	specific to unary operators).

2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Expand_Record_Aggregate): Use the named form for the
	second actual parameter in the call to Duplicate_Subexpr.
	* exp_attr.adb (Expand_Size_Attribute): Likewise.
	* exp_ch5.adb (Expand_Assign_Array): Likewise.
	(Expand_Assign_Array_Bitfield): Likewise.
	(Expand_Assign_Array_Bitfield_Fast): Likewise.
	* exp_util.ads (Duplicate_Subexpr): Add New_Scope formal parameter.
	(Duplicate_Subexpr_No_Checks): Likewise.
	(Duplicate_Subexpr_Move_Checks): Likewise.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Pass Proc_Id as the
	actual for New_Scope in the calls to Duplicate_Subexpr_No_Checks.
	(Duplicate_Subexpr): Add New_Scope formal parameter and forward it
	in the call to New_Copy_Tree.
	(Duplicate_Subexpr_No_Checks): Likewise.
	(Duplicate_Subexpr_Move_Checks): Likewise.

2025-06-06  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Insert_Valid_Check): Set flag Assignment_OK in the object
	declaration inserted for the validity checks.

2025-06-05  Javier Miranda  <miranda@adacore.com>

	* exp_ch7.adb (Process_Object_Declaration): Avoid generating
	duplicate names for master nodes.

2025-06-05  Steve Baird  <baird@adacore.com>

	* sem_util.adb
	(Side_Effect_Free_Statements): Return False if the statement list
	includes an explicit (i.e. Comes_From_Source) raise statement.

2025-06-05  Ronan Desplanques  <desplanques@adacore.com>

	* exp_ch4.adb (Tagged_Membership): Fix for protected types.

2025-06-05  Ronan Desplanques  <desplanques@adacore.com>

	* exp_attr.adb (Interunit_Ref_OK): Tweak categorization of compilation
	units.

2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Build_Two_Pass_Aggr_Code): New function containing
	most of the code initially present in Two_Pass_Aggregate_Expansion.
	(Two_Pass_Aggregate_Expansion): Remove redundant N parameter.
	Implement built-in-place expansion for (static) object declarations
	and allocators, using Build_Two_Pass_Aggr_Code for the main work.
	(Expand_Array_Aggregate): Adjust Two_Pass_Aggregate_Expansion call.
	Replace Etype (N) by Typ in a couple of places.
	* exp_ch3.adb (Expand_Freeze_Array_Type): Remove special case for
	two-pass array aggregates.
	(Expand_N_Object_Declaration): Do not adjust the object when it is
	initialized by a two-pass array aggregate.
	* exp_ch4.adb (Expand_Allocator_Expression): Apply the processing
	used for container aggregates to two-pass array aggregates.
	* exp_ch6.adb (Validate_Subprogram_Calls): Skip calls present in
	initialization expressions of N_Object_Declaration nodes that have
	No_Initialization set.
	* sem_ch3.adb (Analyze_Object_Declaration): Detect the cases of an
	array originally initialized by an aggregate consistently.

2025-06-05  Viljar Indus  <indus@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst: Update the
	documentation for Valid_Value.
	* sem_attr.adb (Analyze_Attribute): Reject types where
	the root type originates from Standard.
	* gnat_rm.texi: Regenerate.

2025-06-05  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Change call to Make_Assignment
	for the indexed aggregate object to call Change_Make_OK_Assignment instead.

2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Expand_Actuals): Remove obsolete comment.
	(Make_Build_In_Place_Call_In_Anonymous_Context): Always use a proper
	object declaration initialized with the function call in the cases
	where a temporary is needed, with Assignment_OK set on it.
	* sem_util.adb (Entity_Of): Deal with rewritten function call first.

2025-06-05  Steve Baird  <baird@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): When accessing the
	maps declared in package Cached_Attribute_Ops, the key value
	passed to Get or to Set should never be the entity node for a
	subtype. Use the entity of the corresponding type declaration
	instead.

2025-06-05  Steve Baird  <baird@adacore.com>

	* sem_res.adb
	(Set_Mixed_Mode_Operand): If we are about to call Resolve
	passing in Any_Fixed as the expected type, then instead pass in
	the fixed point type of the other operand (i.e., B_Typ).

2025-06-05  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb (Check_Function_Writable_Actuals): Add handling for
	N_Iterated_Component_Association and N_Iterated_Element_Association.
	Fix a typo in an RM reference (6.4.1(20/3) => 6.4.1(6.20/3)).
	(Collect_Expression_Ids): New procedure factoring code for collecting
	identifiers from expressions of aggregate associations.
	(Handle_Association_Choices): New procedure factoring code for handling
	id collection for expressions of aggregate associations with multiple
	choices. Removed redundant test of Box_Present from original code.

2025-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/120104
	* exp_ch3.adb (Expand_Freeze_Record_Type): For a controlled tagged
	type, freeze only the controlled primitives that are present.

2025-04-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/112958
	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) [x86 FreeBSD]: Add specific
	version of s-dorepr.adb.
