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

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

2025-05-23  Release Manager

	* GCC 14.3.0 released.

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.
	* libgnat/s-dorepr__freebsd.adb: New file.

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

	* libgnat/a-ngcoar.adb (Eigensystem): Adjust notation and fix the
	layout of the real symmetric matrix in the main comment.  Adjust
	the layout of the associated code accordingly and correctly turn
	the 2Nx1 real vectors into Nx1 complex ones.
	(Eigenvalues): Minor similar tweaks.
	* libgnat/a-ngrear.adb (Jacobi): Minor tweaks in the main comment.
	Adjust notation and corresponding parameter names of functions.
	Fix call to Unit_Matrix routine.  Adjust the comment describing
	the various kinds of iterations to match the implementation.

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

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Subtype>: Set
	the may_alias attribute if a specific GCC type is built.

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

	* gen_il-gen-gen_nodes.adb (N_Formal_Package_Declaration): Use
	N_Declaration instead of Node_Kind as ancestor.
	* sem_ch12.adb (Get_Formal_Entity): Remove obsolete alternative.
	(Instantiate_Formal_Package): Take into account the abbreviated
	instances in the main loop running over the actuals of the local
	package created for the formal package.

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

	PR ada/118712
	* sem_warn.adb (Check_References): Deal with small adjustments of
	references.

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

	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use the base type of
	the index type to find the type used to compute the length.

2025-01-05  Estevan Castilho (Tevo)  <estevan.cps@gmail.com>

	* libgnarl/s-taprop__dummy.adb: Remove use clause for
	System.Parameters.
	(Unlock): Remove Global_Lock formal parameter.
	(Write_Lock): Likewise.

2024-12-16  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (get_atomic_access): Deal specifically with
	nodes that are both Atomic and Volatile_Full_Access in Ada 2012.

2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/117996
	* libgnat/a-ngrear.adb (Jacobi): Remove default value for
	Compute_Vectors formal parameter.
	(Sort_Eigensystem): Add Compute_Vectors formal parameter.  Do not
	modify the Vectors if Compute_Vectors is False.
	(Eigensystem): Pass True as Compute_Vectors to Sort_Eigensystem.
	(Eigenvalues): Pass False as Compute_Vectors to Sort_Eigensystem.

2024-11-26  Arsen Arsenović  <arsen@aarsen.me>

	Backported from master:
	2024-08-19  Arsen Arsenović  <arsen@aarsen.me>

	PR ada/115917
	* gnatvsn.ads: Add note about the duplication of this value in
	version.c.
	* version.c (VER_LEN_MAX): Define to the same value as
	Gnatvsn.Ver_Len_Max.
	(gnat_version_string): Use VER_LEN_MAX as bound.

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

	PR ada/117328
	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use a type sized
	from the index type to compute the length.  Simplify and remove
	useless calls to New_Copy_Tree for this computation.

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

	PR ada/113868
	* par-ch6.adb (P_Subprogram) <Scan_Body_Or_Expression_Function>:
	Add delta aggregate alongside the other forms of aggregates.

2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/113036
	* freeze.adb (Freeze_Expression): Deal with freezing actions coming
	from within nested internal loops present in spec expressions.

2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Freeze_Expression): Also attach pending freeze nodes
	to the parent in the case of an internal block in a spec expression.

2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	* checks.adb (Selected_Length_Checks.Get_E_Length): For a
	component of a record with discriminants and if the expression is
	a selected component, try to build an actual subtype from its
	prefix instead of from the discriminal.

2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/116551
	* gcc-interface/trans.cc (node_is_atomic) <N_Identifier>: Return
	false if the type of the entity is an unconstrained array type.
	(node_is_volatile_full_access) <N_Identifier>: Likewise.

2024-10-14  Steve Baird  <baird@adacore.com>

	PR ada/114593
	* sem_res.adb (Valid_Conversion): Test In_Instance instead of
	In_Instance_Body.

2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.ads (Is_Two_Pass_Aggregate): New function declaration.
	* exp_aggr.adb (Is_Two_Pass_Aggregate): New function body.
	(Expand_Array_Aggregate): Call Is_Two_Pass_Aggregate to detect the
	aggregates that need the 2-pass expansion.
	* exp_ch3.adb (Expand_Freeze_Array_Type): In the anonymous array
	case, build the initialization procedure if the initial value in
	the object declaration is a 2-pass aggregate.

2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/115535
	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the size
	of the underlying type to find the support type.

2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/114640
	* exp_util.adb (Find_Hook_Context): For a node present within a
	conditional expression, do not return an N_Elsif_Part node.

2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/114636
	* sem_ch12.adb (Check_Formal_Package_Instance): For a defaulted
	formal discrete type, skip the generated implicit base type.

2024-10-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/116430
	* exp_ch7.adb (Build_Finalizer.Create_Finalizer): For the insertion
	point of the finalizer, deal with package bodies that are subunits.

2024-08-01  Release Manager

	* GCC 14.2.0 released.

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

	PR ada/114708
	* exp_util.adb (Finalize_Address): Add guard for incomplete types.

2024-06-10  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Might_Need_BIP_Task_Actuals): Add support
	for access-to-subprogram parameter types.
	* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
	Add dummy BIP parameters to access-to-subprogram types
	that may reference a function that has BIP parameters.

2024-05-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/115270
	* Makefile.rtl (PowerPC/Linux): Use libgnat/s-atopri__32.ads for
	the 32-bit library.
	(SPARC/Linux): Likewise.

2024-05-07  Release Manager

	* GCC 14.1.0 released.

2024-04-15  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_aspects.rst
	(Exceptional_Cases): Add description for aspect.
	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Exceptional_Cases): Add description for pragma.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

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

	PR ada/113979
	* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
	call Apply_Predicate_Check on the resulting access value if needed.

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

	PR ada/113893
	* exp_ch7.adb (Build_Anonymous_Master): Do not build the master
	for a local designated type.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin
	to false if no finalization master is attached to an access type
	and assert that it is anonymous in this case.
	* sem_res.adb (Resolve_Allocator): Mention that the object might
	not be finalized at all in the warning given when the type is an
	anonymous access-to-controlled type.

2024-01-23  Ronan Desplanques  <desplanques@adacore.com>

	* gnatvsn.ads: Update year.

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

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use the
	TYPE_CANONICAL of types when it comes to aliasing.
	* gcc-interface/utils.cc (relate_alias_sets): Likewise.

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

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
	separate FLD local variable to hold the first field of the fat
	pointer type being built.
	* gcc-interface/gigi.h (relate_alias_sets): Remove GNU_ prefix on
	the first two parameters.
	* gcc-interface/utils.cc (relate_alias_sets): Likewise and adjust.

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

	* sem_attr.adb: avoid marking a use of the Address attribute
	as a modification of its prefix.

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

	* exp_aggr.adb (Expand_Container_Aggregate): Change "not Present"
	tests to tests using "No" (in two places).

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

	* sem_ch12.adb (Instantiate_Type): Make the relevant error message
	conditional upon "Ekind (A_Gen_T) /= E_Incomplete_Type". Misc
	cleanup.

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

	* exp_aggr.adb (Expand_Container_Aggregate): Add code to determine
	whether the aggregate is an indexed aggregate, setting a flag
	(Is_Indexed_Aggregate), which is tested to have proper separation
	of treatment for the Add_Unnamed
	(for positional aggregates) and New_Indexed (for indexed
	aggregates) cases. In the code generating associations for indexed
	aggregates, remove the code for Expressions cases entirely, since
	the code for indexed aggregates is governed by the presence of
	Component_Associations, and add an assertion that Expressions must
	be Empty. Also, exclude empty aggregates from entering that code.

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

	* rtsfind.ads (RE_Id): Remove RE_Attach.
	(RE_Unit_Table): Likewise.
	* libgnat/s-finmas.ads (Attach): Delete.
	* libgnat/s-finmas.adb (Attach): Likewise.

2024-01-09  Tucker Taft  <taft@adacore.com>

	* pprint.adb (List_Name): Check for "Box_Present" when displaying
	a list, and emit "<>" if returns True.
	* sem_scil.adb (Check_SCIL_Node): Handle case when the type of a
	parameter is from a package that was mentioned in a limited with
	clause, and make no further checks, since this check routine does
	not have all the logic to check such a usage.

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

	* freeze.adb (Freeze_Expression.Has_Decl_In_List): Deal specifically
	with itypes that are class-wide subtypes.

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

	* libgnat/s-atopri.ads (Atomic_Store): New generic procedure.
	(Atomic_Store_8): New instantiated procedure.
	(Atomic_Store_16): Likewise.
	(Atomic_Store_32): Likewise.
	(Atomic_Store_64): Likewise.
	* libgnat/s-atopri__32.ads (Atomic_Store): New generic procedure.
	(Atomic_Store_8): New instantiated procedure.
	(Atomic_Store_16): Likewise.
	(Atomic_Store_32): Likewise.
	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Implement the
	support for __atomic_store_n and __sync_bool_compare_and_swap_n.
	* gcc-interface/gigi.h (list_second): New inline function.

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

	* sem_ch6.adb (Analyze_Subprogram_Specification): Do not replace
	the type of the formals with its corresponding record in
	init-procs.
	* sem_ch9.adb (Analyze_Requeue): Add missing support to requeue to
	a procedure that denotes a renaming of an entry.

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

	* exp_util.adb (Possible_Side_Effect_In_SPARK): Refine handling of
	itype declarations.

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

	* sem_ch6.adb (Analyze_Subprogram_Specification): Set Is_Inlined
	flag by default in GNATprove mode.
	* sem_res.adb (Resolve_Call): Only look at flag which is cleared
	when inlined subprogram is detected to be recursive.

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

	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call):
	Remove detection of recursive calls.

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

	* inline.adb (Cannot_Inline): Cleanup use of 'Length; remove
	dead code.

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

	* sem_aggr.adb (Resolve_Container_Aggregate): Use "No".
	* sem_ch8.adb (Find_Direct_Name): Likewise.

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

	* sem_util.adb (Enclosing_Declaration): Instead of returning a
	subprogram specification node, return its parent (which is
	presumably a subprogram declaration).
	* contracts.adb (Insert_Stable_Property_Check): Remove code
	formerly needed to compensate for incorrect behavior of
	Sem_Util.Enclosing_Declaration.
	* exp_attr.adb (In_Available_Context): Remove code formerly needed
	to compensate for incorrect behavior of
	Sem_Util.Enclosing_Declaration.
	* sem_ch8.adb (Is_Actual_Subp_Of_Inst): Remove code formerly
	needed to compensate for incorrect behavior of
	Sem_Util.Enclosing_Declaration.

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

	* sem_ch8.adb (Check_Constrained_Object): Before updating the
	subtype mark of an object renaming declaration by calling Rewrite,
	first check whether the destination of the Rewrite call exists.
	* atree.adb (Copy_Slots): Return without performing any updates if
	Destination equals Empty or Error, or if Source equals Empty. Any
	of those conditions indicates an error case.
	* sem_ch12.adb (Analyze_Formal_Derived_Type): Avoid cascading
	errors.
	* sem_ch3.adb (Analyze_Number_Declaration): In an error case, do
	not pass Error as destination in a call to Rewrite.
	(Find_Type_Of_Subtype_Indic): In an error case, do not pass Error
	or Empty as destination in a call to Rewrite.

2024-01-09  Joffrey Huguet  <huguet@adacore.com>

	* libgnat/i-cstrin.ads (Update): Fix precondition.

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

	* sem_aggr.adb (Resolve_Extension_Aggregate): Remove the unreachable
	call to Transform_BIP_Assignment as well as the procedure.

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

	* lib-xref.adb (Generate_Reference): Do not count it as a read
	reference if we're calling a TSS.

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

	* doc/gnat_rm/implementation_defined_aspects.rst,
	doc/gnat_rm/implementation_defined_pragmas.rst: Add sections for
	Always_Terminates.
	* gnat-style.texi: Regenerate.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

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

	PR ada/78207
	* libgnat/g-regexp.ads: Fix outdated comment.

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

	PR ada/112781
	* exp_ch6.ads (Is_Build_In_Place_Function): Adjust description.
	* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): Delete.
	(Is_Function_Call_With_BIP_Formals): New predicate.
	(Is_Build_In_Place_Function_Call): Restore original semantics.
	(Expand_Call_Helper): Adjust conditions guarding the calls to
	Add_Dummy_Build_In_Place_Actuals to above renaming.
	(Expand_N_Extended_Return_Statement): Adjust to above renaming.
	(Expand_Simple_Function_Return): Likewise.  Move the assertion
	to after the transformation into an extended return statement.
	(Make_Build_In_Place_Call_In_Allocator): Remove unreachable code.
	(Make_Build_In_Place_Call_In_Assignment): Likewise.

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

	PR ada/112781
	* sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type
	consistently to retrieve the ancestor for a derived type.
	* sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type
	consistently before accessing Designated_Type.

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

	* gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Relax
	assertion for regular pointer types.

2024-01-04  David Malcolm  <dmalcolm@redhat.com>

	* gcc-interface/lang.opt.urls: New file, autogenerated by
	regenerate-opt-urls.py.

2024-01-03  Jakub Jelinek  <jakub@redhat.com>

	* gnat_ugn.texi: Bump @copying's copyright year.
	* gnat_rm.texi: Likewise.


Copyright (C) 2024 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.
