2022-12-29  Alexandre Oliva  <oliva@adacore.com>

	* gcc-interface/trans.cc (Sloc_to_locus): Don't map NULL decl.

2022-12-06  Yannick Moy  <moy@adacore.com>

	* contracts.adb (Add_Contract_Item): Allow No_Caching on types.
	(Check_Type_Or_Object_External_Properties): Check No_Caching.
	Check that non-effectively volatile types does not contain an
	effectively volatile component (instead of just a volatile
	component).
	(Analyze_Object_Contract): Remove shared checking of No_Caching.
	* sem_prag.adb (Analyze_External_Property_In_Decl_Part): Adapt checking
	of No_Caching for types.
	(Analyze_Pragma): Allow No_Caching on types.
	* sem_util.adb (Has_Effectively_Volatile_Component): New query function.
	(Is_Effectively_Volatile): Type with Volatile and No_Caching is not
	effectively volatile.
	(No_Caching_Enabled): Remove assertion to apply to all entities.
	* sem_util.ads: Same.

2022-12-06  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb
	(Build_Static_Check_Helper_Call): Perform implicit type conversion
	to ensure matching types and avoid reporting spurious errors.

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

	* sem_warn.adb (Warn_On_Constant_Valid_Condition): Bail out for a
	membership test with a mark for a subtype that is predicated.

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

	* sem_elab.adb (Processing_In_State): Add Within_Freezing_Actions
	component.
	(Process_Conditional_ABE_Call): Compute its value.
	(Process_Conditional_ABE_Call_SPARK): For a call and a target in
	the main unit, do not emit any ABE diagnostics if the call occurs
	in a freezing actions context.

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

	* einfo.ads (Actual_Subtype): Document additional usage.
	* exp_aggr.adb (Expand_Array_Aggregate): Replace test on
	Is_Build_In_Place_Return_Object with Is_Special_Return_Object.
	* exp_ch3.adb (Expand_N_Object_Declaration): Factor out parts of the
	processing done for build-in-place return objects and reuse them to
	implement a similar processing for specific return objects.
	* exp_ch4.adb (Expand_Allocator_Expression): Do not generate a tag
	assignment or an adjustment if the allocator was made for a special
	return object.
	(Expand_Concatenate): If the result is allocated on the secondary
	stack, use an unconstrained allocation.
	* exp_ch6.ads (Apply_CW_Accessibility_Check): New declaration.
	(Is_By_Reference_Return_Object): Likewise.
	(Is_Secondary_Stack_Return_Object): Likewise.
	(Is_Special_Return_Object): Likewise.
	* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not bail out for the
	expression in the declaration of a special return object.
	(Expand_N_Extended_Return_Statement): Add missing guard and move
	the class-wide accessibility check to Expand_N_Object_Declaration.
	(Expand_Simple_Function_Return): Delete obsolete commentary.
	Skip the special processing for types that require finalization or
	are returned on the secondary stack if the return originally comes
	from an extended return statement.  Add missing Constant_Present.
	(Is_By_Reference_Return_Object): New predicate.
	(Is_Secondary_Stack_Return_Object): Likewise.
	(Is_Special_Return_Object): Likewise.
	* exp_util.adb (Is_Related_To_Func_Return): Also return true if the
	parent of the expression is the renaming declaration generated for
	the expansion of a return object.
	* gen_il-fields.ads (Opt_Field_Enum): Replace Alloc_For_BIP_Return
	with For_Special_Return_Object.
	* gen_il-gen-gen_nodes.adb (N_Allocator): Likewise.
	* gen_il-internals.adb (Image): Remove Alloc_For_BIP_Return.
	* sem_ch3.adb (Check_Return_Subtype_Indication): New procedure
	moved from sem_ch6.adb.
	(Analyze_Object_Declaration): Call it on a return object.
	* sem_ch4.adb: Add with and use clauses for Rtsfind.
	(Analyze_Allocator): Test For_Special_Return_Object to skip checks
	for allocators made for special return objects.
	Do not report restriction violations for the return stack pool.
	* sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Return the
	Actual_Subtype for return objects that live on the secondary stack.
	* sem_ch6.adb (Check_Return_Subtype_Indication): Move procedure to
	sem_ch3.adb.
	(Analyze_Function_Return): Do not call above procedure.
	* sem_res.adb (Resolve_Allocator): Replace Alloc_For_BIP_Return
	with For_Special_Return_Object.
	* sinfo.ads: Likewise.
	* treepr.adb (Image): Remove Alloc_For_BIP_Return.
	* gcc-interface/trans.cc (gnat_to_gnu): Do not convert to the result
	type in the unconstrained array type case if the parent is a simple
	return statement.

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

	* sem_res.adb (Resolve_Membership_Op): Adjust latest change.

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

	* exp_ch4.adb (Expand_N_In) <Substitute_Valid_Check>: Rename to...
	<Substitute_Valid_Test>: ...this.
	Use Is_Entity_Name to test for the presence of entity references.
	Do not warn or substitute a valid test for a test with a mark for
	a subtype that is predicated.
	Apply the same transformation for a test with a mark for a subtype
	that is predicated as for a subtype that is not.
	Remove useless return statement.
	* sem_res.adb (Resolve_Membership_Op): Perform a special resolution
	if the left operand is of a universal numeric type.

2022-12-06  Justin Squirek  <squirek@adacore.com>

	* accessibility.adb, accessibility.ads
	(Accessibility_Message): Moved from sem_attr.
	(Apply_Accessibility_Check): Moved from checks.
	(Apply_Accessibility_Check_For_Allocator): Moved from exp_ch4 and
	renamed
	(Check_Return_Construct_Accessibility): Moved from sem_ch6.
	(Innermost_Master_Scope_Depth): Moved from sem_util. Add condition
	to detect expanded iterators.
	(Prefix_With_Safe_Accessibility_Level): Moved from sem_attr.
	(Static_Accessibility_Level): Moved from sem_util.
	(Has_Unconstrained_Access_Discriminants): Likewise.
	(Has_Anonymous_Access_Discriminant): Likewise.
	(Is_Anonymous_Access_Actual): Likewise.
	(Is_Special_Aliased_Formal_Access): Likewise.
	(Needs_Result_Accessibility_Level): Likewise.
	(Subprogram_Access_Level): Likewise.
	(Type_Access_Level): Likewise.
	(Deepest_Type_Access_Level): Likewise.
	(Effective_Extra_Accessibility): Likewise.
	(Get_Dynamic_Accessibility): Likewise.
	(Has_Access_Values): Likewise.
	(Accessibility_Level): Likewise.
	* exp_attr.adb (Access_Cases): Obtain the proper enclosing object
	which applies to a given 'Access by looking through type
	conversions.
	* exp_ch4.adb (Apply_Accessibility_Check): Moved to accessibility.
	* exp_ch5.adb: Likewise.
	* exp_ch6.adb: Likewise.
	* exp_ch9.adb: Likewise.
	* exp_disp.adb: Likewise.
	* gen_il-fields.ads: Add new flag Comes_From_Iterator.
	* gen_il-gen-gen_nodes.adb: Add new flag Comes_From_Iterator for
	N_Object_Renaming_Declaration.
	* sem_ch5.adb (Analyze_Iterator_Specification): Mark object
	renamings resulting from iterator expansion with the new flag
	Comes_From_Iterator.
	* sem_aggr.adb (Resolve_Container_Aggregate): Refine test.
	* sem_ch13.adb: Add dependence on the accessibility package.
	* sem_ch3.adb: Likewise.
	* sem_ch4.adb: Likewise.
	* sem_ch9.adb: Likewise.
	* sem_res.adb: Likewise.
	* sem_warn.adb: Likewise.
	* exp_ch3.adb: Likewise.
	* sem_attr.adb (Accessibility_Message): Moved to accessibility.
	(Prefix_With_Safe_Accessibility_Level): Likewise.
	* checks.adb, checks.ads (Apply_Accessibility_Check): Likewise.
	* sem_ch6.adb (Check_Return_Construct_Accessibility): Likewise.
	* sem_util.adb, sem_util.ads
	(Accessibility_Level): Likewise.
	(Deepest_Type_Access_Level): Likewise.
	(Effective_Extra_Accessibility): Likewise.
	(Get_Dynamic_Accessibility): Likewise.
	(Has_Access_Values): Likewise.
	(Has_Anonymous_Access_Discriminant): Likewise.
	(Static_Accessibility_Level): Likewise.
	(Has_Unconstrained_Access_Discriminants): Likewise.
	(Is_Anonymous_Access_Actual): Likewise.
	(Is_Special_Aliased_Formal_Access): Likewise.
	(Needs_Result_Accessibility_Level): Likewise.
	(Subprogram_Access_Level): Likewise.
	(Type_Access_Level): Likewise.
	* sinfo.ads: Document new flag Comes_From_Iterator.
	* gcc-interface/Make-lang.in: Add entry for new Accessibility package.

2022-12-06  Liaiss Merzougue  <merzougue@adacore.com>

	* libgnat/i-c.adb (To_C): Simplify code for having a single
	exception raise. Add pragma annotate about uninitialized value
	which happen only on exception raising.

2022-12-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (get_storage_model_access): Strip any type
	conversion around the node before looking into it.

2022-12-01  Steve Baird  <baird@adacore.com>

	* sem_ch13.adb
	(Validate_Aspect_Aggregate): Reject illegal case where none of
	Add_Named, Add_Unnamed, and Assign_Indexed are specified.

2022-12-01  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_ugn/gnat_and_program_execution.rst (Non-Symbolic
	Traceback): Add compilation line.
	(Symbolic Traceback): Remove obsolete stuff.
	* doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize): Adjust.
	* gnat_ugn.texi: Regenerate.

2022-12-01  Ronan Desplanques  <desplanques@adacore.com>

	* lib-xref.adb (Generate_Reference): Fix misphrasing in comment.

2022-12-01  Gary Dismukes  <dismukes@adacore.com>

	* sem_attr.adb (Analyze_Attribute, Attribute_Address): In the case
	where the attribute's prefix is a dereference of a value of an
	access type that has aspect Designated_Storage_Model (or a
	renaming of such a dereference), set the attribute's type to the
	corresponding Storage_Model_Type's associated address type rather
	than System.Address.

2022-12-01  Ronan Desplanques  <desplanques@adacore.com>

	* doc/gnat_rm/the_gnat_library.rst: Fix minor issues.
	* gnat_rm.texi: Regenerate.

2022-12-01  Josue Nava Bello  <nava@adacore.com>

	* doc/share/conf.py: minor updates

2022-11-28  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/g-traceb.ads: Minor tweaks in the commentary.
	(Executable_Load_Address): New function.
	* doc/gnat_ugn/gnat_and_program_execution.rst (Non-Symbolic
	Traceback): Adjust to PIE default on Linux.
	(Symbolic Traceback): Likewise.
	* doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize): Likewise.
	* gnat_ugn.texi: Regenerate.

2022-11-28  Joel Brobecker  <brobecker@adacore.com>

	* doc/share/conf.py (extensions): Add 'sphinx_rtd_theme'.
	(html_theme): Set to 'sphinx_rtd_theme'.

2022-11-28  Claire Dross  <dross@adacore.com>

	* libgnat/g-souinf.ads (Source_Code_Information): Add a new
	volatile abstract state and add it in the global contract of all
	functions defined in Source_Info.

2022-11-28  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Expand_Actuals.Add_Call_By_Copy_Code): Deal with a
	reference to a validation variable in the actual.
	(Expand_Actuals.Add_Validation_Call_By_Copy_Code): Minor tweak.
	(Expand_Actuals): Call Add_Validation_Call_By_Copy_Code directly
	only if Add_Call_By_Copy_Code is not to be invoked.

2022-11-28  Eric Botcazou  <ebotcazou@adacore.com>

	* adaint.c [Linux]: Include <link.h>.
	(__gnat_get_executable_load_address) [Linux]: Enable.

2022-11-28  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Check_Part_Of_Abstract_State): Add verification
	related to use of Part_Of, so that constituents in private childs
	that refer to state in a sibling or parent unit force that unit to
	have a body.
	* sem_util.adb (Check_State_Refinements): Drop the requirement to
	have always a package body for state refinement, when the package
	state is mentioned in no Part_Of specification.
	* sem_ch3.adb (Analyze_Declarations): Refresh SPARK refs in comment.
	* sem_ch7.adb (Analyze_Package_Declaration): Likewise.

2022-11-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu) <N_Assignment_Statement>: Add
	assertion that memset is not supposed to be used when the target has
	a storage model with Copy_To routine.

2022-11-24  Justin Squirek  <squirek@adacore.com>

	* sem_ch8.adb
	(Find_Direct_Name): Remove bypass to reanalyze incorrectly
	analyzed discriminals.
	(Set_Entity_Or_Discriminal): Avoid resetting the entity field of a
	discriminant reference to be the internally generated renaming
	when we are in strict preanalysis mode.

2022-11-22  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Depends_Global): Accept aspects on
	abstract subprograms.

2022-11-22  Ghjuvan Lacambre  <lacambre@adacore.com>

	* frontend.adb (Frontend): Re-enable Validate_Subprogram_Calls.
	* exp_ch6.adb (Check_BIP_Actuals): When in CodePeer mode, do not
	attempt to validate procedures coming from an
	Elab_Spec/Elab_Body/Elab_Subp_Body procedure.

2022-11-22  Piotr Trojanek  <trojanek@adacore.com>

	* errout.adb (To_Be_Removed): Decrease total number of errors when
	removing a warning that has been escalated into error.
	* erroutc.adb (dmsg): Print Warn_Runtime_Raise flag.

2022-11-22  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Make_Tag_Assignment): Fix formatting glitches.

2022-11-22  Eric Botcazou  <ebotcazou@adacore.com>

	* contracts.adb (Build_Subprogram_Contract_Wrapper): Do not fiddle
	with the Was_Expression_Function flag. Move a few lines around.

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

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Constant>: Revert
	latest change.
	* gcc-interface/trans.cc (gnat_to_gnu) <N_Object_Declaration>:
	Tweak latest change.

2022-11-21  Marc Poulhiès  <poulhies@adacore.com>

	* exp_pakd.adb (Create_Packed_Array_Impl_Type): Do not share PAT
	if sizes of types differ.

2022-11-21  Ronan Desplanques  <desplanques@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Restore
	alphabetical ordering.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

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

	* sem_util.adb (Needs_Secondary_Stack): Test Is_Constrained
	directly instead of Is_Definite_Subtype for an array subtype.

2022-11-21  Steve Baird  <baird@adacore.com>

	* libgnat/s-rident.ads: Define a new restriction,
	No_Task_Hierarchy_Implicit. This is like the No_Task_Hierarchy
	restriction, but with the difference that setting this restriction
	does not mean the H.6(6) post-compilation check is satisified.
	* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): If it is
	known that the function result cannot have tasks, then pass in a
	null literal for the activation chain actual parameter. This
	avoids generating a reference to an entity that
	Build_Activation_Chain_Entity may have chosen not to generate a
	declaration for.
	* gnatbind.adb (List_Applicable_Restrictions): Do not list the
	No_Task_Hierarchy_Implicit restriction.
	* restrict.adb: Special treatment for the
	No_Task_Hierarchy_Implicit restriction in functions
	Get_Restriction_Id and Restriction_Active. The former is needed to
	disallow the (unlikely) case that a user tries to explicitly
	reference the No_Task_Hierarchy_Implicit restriction.
	* sem_prag.adb (Analyze_Pragma): If a Sequential
	Partition_Elaboration_Policy is specified (and the
	No_Task_Hierarchy restriction is not already enabled), then enable
	the No_Task_Hierarchy_Implicit restriction.

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

	* exp_ch3.adb (Expand_N_Object_Declaration): Use Typ local
	constant throughout, remove Ret_Obj_Typ local constant, rename
	Ref_Type into Acc_Typ in a couple of places, remove a useless call
	to Set_Etype, use a consistent checks suppression scheme, adjust
	comments for the sake of consistencty and alphabetize some local
	declarations.
	* exp_ch6.adb (Expand_Simple_Function_Return): Remove a couple of
	redundant local constants.

2022-11-21  Steve Baird  <baird@adacore.com>

	* libgnat/a-sttebu.adb (Put): Add missing call to Encode.
	* libgnat/a-strsup.ads: Declare new Put_Image procedure and add
	Put_Image aspect specification for type Super_String.
	* libgnat/a-strsup.adb (Put_Image): New procedure.
	* libgnat/a-stwisu.ads: Declare new Put_Image procedure and add
	Put_Image aspect specification for type Super_String.
	* libgnat/a-stwisu.adb (Put_Image): New procedure.
	* libgnat/a-stzsup.ads: Declare new Put_Image procedure and add
	Put_Image aspect specification for type Super_String.
	* libgnat/a-stzsup.adb (Put_Image): New procedure.

2022-11-21  Ghjuvan Lacambre  <lacambre@adacore.com>

	* frontend.adb (Frontend): Disable subprogram call validation.

2022-11-21  Bob Duff  <duff@adacore.com>

	* warnsw.ads, warnsw.adb: Move warning flags here from package
	Opt. Rename Warning_Record to be Warnings_State. Use an array
	instead of a record; this simplifies the code. Add renamings of
	all the array components for easy reference outside this package.
	Pass the "Family" to Set_Warning_Switch. Use more table-driven
	code. Misc cleanup and comment fixes.
	* opt.ads: Move warning switches to Warnsw.
	* gnat1drv.adb
	(Adjust_Global_Switches): Expanded names needed.
	* inline.ads: Rename Warning_Record to be Warnings_State.
	* sem_ch12.adb: Likewise.
	* sem_prag.adb: Use new Set_Warning_Switch.
	* contracts.adb, errout.adb, exp_aggr.adb, exp_ch11.adb: Adjust
	imports for move to Warnsw.
	* exp_ch5.adb, exp_prag.adb, exp_util.adb, frontend.adb: Likewise.
	* layout.adb, lib-xref.adb, restrict.adb, scn.adb, sem_aggr.adb:
	Likewise.
	* sem_attr.adb, sem_case.adb, sem_ch10.adb, sem_ch11.adb:
	Likewise.
	* sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb: Likewise.
	* sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb: Likewise.
	* sem_eval.adb, sem_res.adb, sem_util.adb, sem_warn.adb: Likewise.
	* switch-c.adb: Likewise.

2022-11-21  Steve Baird  <baird@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Improve
	the description of how the -gnatw.h switch interacts with
	"partial" record layout specifications (i.e., specifications where
	the locations of some components are left unspecified).
	* gnat_ugn.texi: Regenerate.

2022-11-21  Marc Poulhiès  <poulhies@adacore.com>

	* sem_ch13.adb (Check_One_Attr): produce error when Size attribute
	used on aliased object of elementary types with nonconfirming
	value.

2022-11-21  Ronan Desplanques  <desplanques@adacore.com>

	* sfn_scan.adb (Scan_SFN_Pragmas): Improve handling of comments.

2022-11-21  Ronan Desplanques  <desplanques@adacore.com>

	* par-ch3.adb (P_Declarative_Item): Tweak handling of with keyword.

2022-11-14  Boris Yakobowski  <yakobowski@adacore.com>

	* sem_case.adb: silence false positive warning emitted by CodePeer
	on predefined equality for type Choice_Range_Info.

2022-11-14  Bob Duff  <duff@adacore.com>

	* atree.ads: Remove some comments.
	* err_vars.ads: Likewise.
	* scans.ads: Likewise.
	* sinput.ads: Likewise.
	* checks.ads: Likewise. Also add a "???" comment indicating an
	obsolete comment that is too difficult to correct at this time.
	* sem_attr.adb: Minor comment rewrite.

2022-11-14  Javier Miranda  <miranda@adacore.com>

	* exp_intr.adb
	(Expand_Dispatching_Constructor_Call): Improve warning message.
	* freeze.adb
	(Check_No_Parts_Violations): Improve error message.

2022-11-14  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst: Document optional
	hardcfr checkpoints.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2022-11-14  Gary Dismukes  <dismukes@adacore.com>

	* checks.adb
	(Apply_Type_Conversion_Checks): Apply Root_Type to the type of the
	prefix of a Pos attribute when checking whether the type is a
	formal discrete type.

2022-11-14  Ronan Desplanques  <desplanques@adacore.com>

	* libgnat/s-regpat.adb
	(Parse): Fix handling of non-capturing parentheses.

2022-11-14  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Add special case for the special
	local subprogram created for contracts.

2022-11-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Build_Subprogram_Wrappers): Adjust slocs of the
	copied aspects, just like we do in Build_Class_Wide_Expression for
	inherited class-wide contracts.

2022-11-14  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Replace_Formal): Tune whitespace.
	* sem_ch12.adb (Check_Overloaded_Formal_Subprogram): Refine type
	of a formal parameter and local variable; this routine operates on
	nodes and not entities.
	* sem_ch12.ads: Tune whitespace.

2022-11-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Analyze_Associations): Expand wrappers for
	GNATprove.

2022-11-14  Patrick Bernardi  <bernardi@adacore.com>

	* libgnat/system-qnx-arm.ads: Set Support_Atomic_Primitives to
	True.
	* libgnat/system-rtems.ads: Add Support_Atomic_Primitives.

2022-11-14  Yannick Moy  <moy@adacore.com>

	* errout.adb (Error_Msg_Internal): Store span for Optr field, and
	adapt to new type of Optr.
	(Finalize. Output_JSON_Message, Remove_Warning_Messages): Adapt to
	new type of Optr.
	(Output_Messages): Use Optr instead of Sptr to display code
	snippet closer to error.
	* erroutc.adb (dmsg): Adapt to new type of Optr.
	* erroutc.ads (Error_Msg_Object): Make Optr a span like Sptr.
	* errutil.adb (Error_Msg): Likewise.

2022-11-14  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Remove gnatcheck
	reference.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/gnat-style.rst: Moved to...
	* doc/gnat-style/index.rst: ...here.
	* doc/gnat_rm.rst: Moved to...
	* doc/gnat_rm/index.rst: ...here.
	* doc/gnat_ugn.rst: Moved to...
	* doc/gnat_ugn/index.rst: ...here.
	* doc/share/latex_elements.py: Moved to...
	* doc/share/ada_latex_elements.py: ...here.
	* gcc-interface/Make-lang.in:
	* doc/Makefile: Removed.
	* doc/share/conf.py: Removed.
	* doc/share/gnu_free_documentation_license.rst: Removed.
	* gnat-style.texi: Removed.
	* gnat_rm.texi: Removed.
	* gnat_ugn.texi: Removed.
	* doc/gnat-style/conf.py: New file.
	* doc/gnat-style/gnu_free_documentation_license.rst: New file.
	* doc/gnat_rm/conf.py: New file.
	* doc/gnat_rm/gnu_free_documentation_license.rst: New file.
	* doc/gnat_ugn/conf.py: New file.
	* doc/gnat_ugn/gnu_free_documentation_license.rst: New file.
	* doc/share/adabaseconf.py: New file.
	* doc/gnat_rm/security_hardening_features.rst: Add role.
	* doc/gnat_ugn/platform_specific_information.rst: Remove
	duplicate definition of |nbsp|.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* gcc-interface/Make-lang.in: Support --with-sphinx-build.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/gnat_rm/index.rst: Fix cross manual refs.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* gcc-interface/Make-lang.in:
	Support installation if sphinx-build is missing.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* gcc-interface/Make-lang.in:
	Support installation if sphinx-build is missing.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/gnat_rm/index.rst: Fix cross manual refs.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* gcc-interface/Make-lang.in: Support --with-sphinx-build.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/gnat-style.rst: Moved to...
	* doc/gnat-style/index.rst: ...here.
	* doc/gnat_rm.rst: Moved to...
	* doc/gnat_rm/index.rst: ...here.
	* doc/gnat_ugn.rst: Moved to...
	* doc/gnat_ugn/index.rst: ...here.
	* doc/share/latex_elements.py: Moved to...
	* doc/share/ada_latex_elements.py: ...here.
	* gcc-interface/Make-lang.in:
	* doc/Makefile: Removed.
	* doc/share/conf.py: Removed.
	* doc/share/gnu_free_documentation_license.rst: Removed.
	* gnat-style.texi: Removed.
	* gnat_rm.texi: Removed.
	* gnat_ugn.texi: Removed.
	* doc/gnat-style/conf.py: New file.
	* doc/gnat-style/gnu_free_documentation_license.rst: New file.
	* doc/gnat_rm/conf.py: New file.
	* doc/gnat_rm/gnu_free_documentation_license.rst: New file.
	* doc/gnat_ugn/conf.py: New file.
	* doc/gnat_ugn/gnu_free_documentation_license.rst: New file.
	* doc/share/adabaseconf.py: New file.
	* doc/gnat_rm/security_hardening_features.rst: Add role.
	* doc/gnat_ugn/platform_specific_information.rst: Remove
	duplicate definition of |nbsp|.

2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.cc (build_allocator): For unconstrained
	array types with a storage model and an initializing expression,
	copy the initialization expression separately from the bounds. In
	all cases with a storage model, pass the locally computed size for
	the store.

2022-11-08  Steve Baird  <baird@adacore.com>

	* sem_attr.adb
	(Eval_Attribute): Don't simplify 'Image call if Put_Image has been
	specified.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb, exp_put_image.adb, sem_aggr.adb, sem_attr.adb,
	sem_ch5.adb, sem_type.adb, sem_util.adb: Replace
	"Present (Find_Aspect (...))" with "Has_Aspect".

2022-11-08  Ronan Desplanques  <desplanques@adacore.com>

	* contracts.adb
	(Preanalyze_Class_Conditions): New procedure.
	(Preanalyze_Condition): Moved out from Merge_Class_Conditions in
	order to be spec-visible.
	* contracts.ads
	(Preanalyze_Class_Conditions): New procedure.
	* sem_prag.adb
	(Analyze_Pre_Post_Condition_In_Decl_Part): Call
	Preanalyze_Class_Conditions when necessary.

2022-11-08  Johannes Kliemann  <kliemann@adacore.com>

	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Set
	Support_Atomic_Primitives to True.
	* libgnat/system-vxworks7-aarch64.ads: Set
	Support_Atomic_Primitives to True.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Set
	Support_Atomic_Primitives to True.
	* libgnat/system-vxworks7-arm.ads: Set Support_Atomic_Primitives
	to True.
	* libgnat/system-vxworks7-ppc-kernel.ads: Set
	Support_Atomic_Primitives to False.
	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Set
	Support_Atomic_Primitives to False.
	* libgnat/system-vxworks7-ppc64-kernel.ads: Set
	Support_Atomic_Primitives to True.
	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Set
	Support_Atomic_Primitives to True.
	* libgnat/system-vxworks7-x86-kernel.ads: Set
	Support_Atomic_Primitives to True.
	* libgnat/system-vxworks7-x86-rtp-smp.ads: Set
	Support_Atomic_Primitives to True.
	* libgnat/system-vxworks7-x86_64-kernel.ads: Set
	Support_Atomic_Primitives to True.
	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Set
	Support_Atomic_Primitives to True.

2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* fe.h (Get_Warn_On_Questionable_Layout): Add void parameter.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Instantiate_Formal_Subprogram): Copy aspect Ghost
	from formal subprogram declaration to the internally generated
	procedure.

2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch4.adb (Analyze_Case_Expression): Compute the
	interpretations of the expression only at the end of the analysis,
	but skip doing it if it is the operand of a type conversion.
	(Analyze_If_Expression): Likewise.
	* sem_res.adb (Resolve): Deal specially with conditional
	expression that is the operand of a type conversion.
	(Resolve_Dependent_Expression): New procedure.
	(Resolve_Case_Expression): Call Resolve_Dependent_Expression.
	(Resolve_If_Expression): Likewise.
	(Resolve_If_Expression.Apply_Check): Take result type as
	parameter.
	(Resolve_Type_Conversion): Do not warn about a redundant
	conversion when the operand is a conditional expression.

2022-11-08  Javier Miranda  <miranda@adacore.com>

	* debug.adb
	(Debug_Flag_Underscore_XX): Switch -gnatd_X used temporarily to allow
	disabling extra formal checks.
	* exp_attr.adb
	(Expand_N_Attribute_Reference [access types]): Add extra formals
	to the subprogram referenced in the prefix of 'Unchecked_Access,
	'Unrestricted_Access or 'Access; required to check that its extra
	formals match the extra formals of the corresponding subprogram type.
	* exp_ch3.adb
	(Stream_Operation_OK): Declaration moved to the public part of the
	package.
	(Validate_Tagged_Type_Extra_Formals): New subprogram.
	(Expand_Freeze_Record_Type): Improve the code that takes care of
	adding the extra formals of dispatching primitives; extended to
	add also the extra formals to renamings of dispatching primitives.
	* exp_ch3.ads
	(Stream_Operation_OK): Declaration moved from the package body.
	* exp_ch6.adb
	(Check_BIP_Actuals): Complete documentation.
	(Has_BIP_Extra_Formal): Subprogram declaration moved to the public
	part of the package. In addition, a parameter has been added to
	disable an assertion that requires its use with frozen entities.
	(Duplicate_Params_Without_Extra_Actuals): New subprogram.
	(Check_Subprogram_Variant): Emit the call without duplicating the
	extra formals since they will be added when the call is analyzed.
	(Expand_Call_Helper): Ensure that the called subprogram has all its
	extra formals, enforce assertion checking extra formals on thunks,
	and mark calls from thunks as processed-BIP-calls to avoid adding
	their extra formals twice.
	(Is_Build_In_Place_Function): Return False for entities with foreign
	convention.
	(Is_Build_In_Place_Function_Call): Return True also for not BIP functions
	that have BIP formals since the extra actuals are required.
	(Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
	Is_Return_Object replaced by the local variable Is_OK_Return_Object
	that evaluates to False for scopes with foreign convention.
	(Might_Have_Tasks): Fix check of class-wide limited record types.
	(Needs_BIP_Task_Actuals): Remove assertion to allow calling this
	function in more contexts; in addition it returns False for functions
	returning objects with foreign convention.
	(Needs_BIP_Finalization_Master): Likewise.
	(Needs_BIP_Alloc_Form): Likewise.
	(Validate_Subprogram_Calls): Check that the number of actuals (including
	extra actuals) of calls in the subtree N match their corresponding
	formals.
	* exp_ch6.ads
	(Has_BIP_Extra_Formal): Subprogram declaration moved to the public
	part of the package. In addition, a parameter has been added to
	disable an assertion that requires its use with frozen entities.
	(Is_Build_In_Place_Function_Call): Complete documentation.
	(Validate_Subprogram_Calls): Check that the number of actuals (including
	extra actuals) of calls in the subtree N match their corresponding
	formals.
	* freeze.adb
	(Check_Itype): Add extra formals to anonymous access subprogram itypes.
	(Freeze_Expression): Improve code that disables the addition of extra
	formals to functions with foreign convention.
	(Check_Extra_Formals): Moved to package Sem_Ch6 as Extra_Formals_OK.
	(Freeze_Subprogram): Add extra formals to non-dispatching subprograms.
	* frontend.adb
	(Frontend): Validate all the subprogram calls; it can be disabled using
	switch -gnatd_X
	* sem_ch3.adb
	(Access_Subprogram_Declaration): Defer the addition of extra formals to
	the freezing point so that we know the convention.
	(Check_Anonymous_Access_Component): Likewise.
	(Derive_Subprogram): Fix documentation.
	* sem_ch6.adb
	(Has_Reliable_Extra_Formals): New subprogram.
	(Check_Anonymous_Return): Fix check of access to class-wide limited
	record types.
	(Check_Untagged_Equality): Placed in alphabetical order.
	(Extra_Formals_OK): Subprogram moved from freeze.adb.
	(Extra_Formals_Match_OK): New subprogram.
	(Has_BIP_Formals): New subprogram.
	(Has_Extra_Formals): New subprograms.
	(Needs_Accessibility_Check_Extra): New subprogram.
	(Parent_Subprogram): New subprogram.
	(Add_Extra_Formal): Minor code cleanup.
	(Create_Extra_Formals): Enforce matching extra formals on overridden
	and aliased entities.
	* sem_ch6.ads
	(Extra_Formals_Match_OK): New subprogram.
	(Extra_Formals_OK): Subprogram moved from freeze.adb.
	* sem_eval.adb
	(Compile_Time_Known_Value): Improve predicate to avoid assertion
	failure; found working on this ticket; this change does not
	affect the behavior of the compiler because this subprogram
	has an exception handler that returns False when the assertion
	fails.
	* sem_util.adb
	(Needs_Result_Accessibility_Level): Do not return False for dispatching
	operations compiled with Ada_Version < 2012 since they they may be
	overridden by primitives compiled with Ada_Version >= Ada_2012.

2022-11-08  Bob Duff  <duff@adacore.com>

	* warnsw.ads, warnsw.adb, fe.h, err_vars.ads, errout.ads: Move
	Warning_Doc_Switch from Err_Vars to Warnsw. Access
	Warn_On_Questionable_Layout on the C side via a function rather
	than a variable, because we plan to turn the variables into
	renamings, and you can't Export renamings.
	* erroutc.adb, switch-c.adb, errout.adb: Likewise.
	* gcc-interface/decl.cc: Use Get_Warn_On_Questionable_Layout
	instead of Warn_On_Questionable_Layout.
	* gcc-interface/Makefile.in (GNATMAKE_OBJS): Add warnsw.o, because
	it is indirectly imported via Errout.
	* gcc-interface/Make-lang.in (GNATBIND_OBJS): Likewise and remove
	restrict.o (not needed).

2022-11-08  Ronan Desplanques  <desplanques@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(-gnatwc): Fix flag documentation.
	* gnat_ugn.texi: Regenerate.

2022-11-08  Steve Baird  <baird@adacore.com>

	* sem_ch3.adb
	(Analyze_Object_Declaration): Do not perform expansion actions if
	In_Spec_Expression is true.

2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch4.adb (Analyze_Qualified_Expression): Analyze the
	expression only after setting the type.
	(Analyze_Unchecked_Type_Conversion): Likewise.
	(Analyze_Short_Circuit): Likewise for the operands.
	(Analyze_Type_Conversion): Minor tweaks.
	(Analyze_Unchecked_Expression): Likewise.

2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch4.adb (Analyze_Qualified_Expression): Remove redundant
	line.

2022-11-08  Ronan Desplanques  <desplanques@adacore.com>

	* contracts.adb (Preanalyze_Condition): Use
	Preanalyze_Spec_Expression.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* exp_imgv.adb
	(Expand_Wide_Image_Attribute): Handle just like attribute Image.
	(Expand_Wide_Wide_Image_Attribute): Likewise.
	* exp_put_image.adb
	(Build_Image_Call): Adapt to also work for Wide and Wide_Wide
	attributes.
	* exp_put_image.ads
	(Build_Image_Call): Update comment.
	* rtsfind.ads
	(RE_Id): Support wide variants of Get.
	(RE_Unit_Table): Likewise.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/a-ngcoar.ads, libgnat/a-ngcoar.adb: Remove extra spaces.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Validate_Formal_Type_Default): Remove call to
	Collect_Interfaces, which had no effect apart from populating a
	list that was not used; fix style.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (SPARK_Freeze_Type): Refine type of a local
	object.
	* sem_ch3.adb (Derive_Subprograms): Remove initial value for
	New_Subp, which is in only written as an out parameter and never
	read.

2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_res.adb (Resolve_If_Expression): Remove obsolete special
	case.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Delta_Aggregate): Implement rules related
	to limited objects appearing as the base expression.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (OK_For_Limited_Init_In_05): Handle delta aggregates
	just like other aggregates.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject
	expressions of a limited types.

2022-11-08  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb
	(Build_Master_Entity): Handle missing case: when the context of
	the master is a BIP function whose result type has tasks.

2022-11-08  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/a-tags.adb
	(Interface_Ancestor_Tags): Raise Tag_Error on No_Tag.
	(Is_Descendant_At_Same_Level): Likewise.

2022-11-08  Bob Duff  <duff@adacore.com>

	* usage.adb: Add -gnatw_q and -gnatw_Q.

2022-11-07  Cedric Landet  <landet@adacore.com>

	* doc/gnat_ugn/gnat_and_program_execution.rst: Mention the needed
	-no-pie for windows to use gprof.
	* gnat_ugn.texi: Regenerate.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* lib-xref.adb (Hash): Tune hash function.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Non_Significant_Pragma_Reference): Detect
	references with aggregates; only assign local variables Id and C
	when necessary.

2022-11-07  Bob Duff  <duff@adacore.com>

	* exp_ch4.adb
	(Component_Equality, Expand_Array_Equality)
	(Expand_Record_Equality): Use named notation.

2022-11-07  Bob Duff  <duff@adacore.com>

	* exp_ch4.adb
	(Expand_Array_Equality): Do not test Ltyp = Rtyp here, because
	that is necessarily true. Move assertion thereof to more general
	place.
	(Expand_Composite_Equality): Pass in Outer_Type, for use in
	warnings. Rename Typ to be Comp_Type, to more clearly distinguish
	it from Outer_Type. Print warning when appropriate.
	* exp_ch4.ads: Minor comment fix.
	* errout.ads: There is no such pragma as Warning_As_Pragma --
	Warning_As_Error must have been intended. Improve comment for ?x?.
	* exp_ch3.adb
	(Build_Untagged_Equality): Update comment to be accurate for more
	recent versions of Ada.
	* sem_case.adb
	(Choice_Analysis): Declare user-defined "=" functions as abstract.
	* sem_util.ads
	(Is_Bounded_String): Give RM reference in comment.
	* warnsw.ads, warnsw.adb
	(Warn_On_Ignored_Equality): Implement new warning switch -gnatw_q.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Document new warning switch.
	* gnat_ugn.texi: Regenerate.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aux.ads (Is_Body): Annotate with Inline.
	* sem_util.ads (Is_Body_Or_Package_Declaration): Likewise.

2022-11-07  Bob Duff  <duff@adacore.com>

	* freeze.adb
	(Build_Inherited_Condition_Pragmas): Do nothing if A_Post is
	empty.

2022-11-07  Quentin Ochem  <ochem@adacore.com>
	    Steve Baird  <baird@adacore.com>

	* bindgen.adb: fixed the way the device init and final symbols are
	computed, re-using the normal way these symbols would be computed
	with a __device_ prefix. Also fixed the "is null;" procedure on
	the host side which are not Ada 95, replaced with a procedure
	raising an exception as it should never be called. Remove the
	unused function Device_Ada_Final_Link_Name.

2022-11-07  Steve Baird  <baird@adacore.com>

	* opt.ads: Declare new string pointer variable, CUDA_Device_Library_Name.
	Modify comments for existing Boolean variable Enable_CUDA_Device_Expansion.
	* switch-b.adb: When "-d_c" switch is encountered, check that the next
	character is an "'='; use the remaining characters to initialize
	Opt.CUDA_Device_Library_Name.
	* bindgen.adb: Remove (for now) most support for host-side invocation of
	device-side finalization. Make use of the new CUDA_Device_Library_Name
	in determining the string used to refer (on the host side) to the
	device-side initialization procedure. Declare the placeholder routine
	that is named in the CUDA_Execute pragma (and the CUDA_Register_Function
	call) as an exported null procedure, rather than as an imported procedure.
	It is not clear whether it is really necessary to specify the link-name
	for this should-never-be-called subprogram on the host side, but for now it
	shouldn't hurt to do so.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Expand_Protected_Subprogram_Call): Examine scope
	tree and not the scope stack.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* mdll.ads (Build_Import_Library): Fix grammar in comment.
	* mdll.adb (Build_Import_Library): Directly execute code of a
	nested routine; rename No_Lib_Prefix to Strip_Lib_Prefix.

2022-11-07  Bob Duff  <duff@adacore.com>

	* sem_warn.adb
	(Check_For_Warnings): Remove unnecessary exception handler.
	(Warn_On_Known_Condition): Suppress warning when we detect a True
	or False that has been turned into a more complex expression
	because True is represented as "nonzero". (Note that the complex
	expression will subsequently be constant-folded to a Boolean True
	or False). Also simplify to always print "condition is always ..."
	instead of special-casing object names. The special case was
	unhelpful, and indeed wrong when the expression is a literal.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Safe_To_Capture_In_Parameter_Value): Remove.
	* sem_util.adb (Safe_To_Capture_Value): Stop search at the current
	body.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Warn_On_In_Out): Remove No_ prefix; flip return
	values between True and False; adapt caller.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Add_Call): Just look at Instantiation_Depth.
	* sem_ch3.adb (Derive_Subprograms): Likewise.
	* sem_warn.adb (Check_References): Remove redundant filtering with
	Instantiation_Depth that follows filtering with
	Instantiation_Location.
	* sinput.adb (Instantiation_Depth): Reuse Instantiation_Location.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb
	(No_Warn_On_In_Out): For subprograms we can simply call
	Warnings_Off.
	(Output_Non_Modified_In_Out_Warnings): Remove repeated
	suppression.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): Reject boxes in
	delta array aggregates.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Enclosing_Declaration_Or_Statement): Moved to
	Sem_Util.
	* sem_util.ads (Enclosing_Declaration_Or_Statement): Moved from
	Sem_Res.
	* sem_util.adb (Enclosing_Declaration_Or_Statement): Likewise.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve): Only call Comes_From_Predefined_Lib_Unit
	when its result might be needed.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Check_Generic_Actuals): Remove redundant parens;
	refactor an excessive if-statement; remove repeated call to Node.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Move
	comment next to a condition that it describes.

2022-11-07  Steve Baird  <baird@adacore.com>

	* exp_put_image.adb
	(Image_Should_Call_Put_Image): Correctly handle the case of an
	inherited Put_Image aspect specification for a scalar type.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* libgnarl/s-interr.adb: Tune whitespace.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* libgnarl/s-interr.adb: Reorder context items and pragmas.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb
	(Expand_Modular_Addition): Rewrite using Make_XXX calls.
	(Expand_Modular_Op): Likewise.
	(Expand_Modular_Subtraction): Likewise.
	* exp_imgv.adb
	(Expand_User_Defined_Enumeration_Image): Likewise.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Apply_Arithmetic_Overflow_Strict): Rewrite using a
	newly created operator node.
	* exp_ch4.adb (Expand_Array_Comparison): Likewise.
	* exp_ch6.adb (Add_Call_By_Copy_Code): Rewriting actual parameter
	using its own location and not the location of the subprogram
	call.
	* sem_warn.adb (Check_References): Looping with Original_Node is
	no longer needed.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Is_In_Context_Clause): Rewrite without negations
	and inequalities.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma [Pragma_Obsolescent]): Reject
	misplaced pragma.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warnings
	about obsolescent functions just like we tag similar warnings for
	packages and procedures.

2022-11-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Remove useless
	skipping for attribute Input.

2022-11-04  Justin Squirek  <squirek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Skip operand
	validity checks for attributes Has_Same_Storage and
	Overlaps_Storage.

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

	* errout.adb (Remove_Warning_Messages.Check_For_Warning): Do not
	reinstate the Original_Node in the tree.
	* exp_aggr.adb (Build_Array_Aggr_Code.Gen_Loop): Copy the bounds
	on all paths.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/g-excact.ads
	(Register_Global_Action): Refill comment.
	(Name_To_Id): Change pragma Restriction from singular to plural.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Check_References): Remove redundant guard, as it
	is implied by a preceding call to Referenced_Check_Spec.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Check_References): Remove useless query for "spec"
	of a variable; refactor nested if-statements into a single
	condition.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb
	(In_Pragma_Expression): Add standard guard against searching too
	far.
	(In_Quantified_Expression): Likewise.
	* sem_warn.adb
	(May_Need_Initialized_Actual): Remove redundant parens.
	(Check_References): Remove guard that duplicates a condition from
	the enclosing if-statement; only assign E1T variable when
	necessary.
	(Within_Postcondition): Fix layout.
	(No_Warn_On_In_Out): Balance parens in comment.

2022-11-04  Steve Baird  <baird@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Add the standard
	'... "On" enables this extension.' sentence to the description of
	static intrinsic functions.
	* sem_ch13.adb
	(Analyze_Aspect_Spec): In the call to Error_Msg_GNAT_Extension for
	a Static aspect specification for an intrinsic function, specify
	Is_Core_Extension => True.
	* sem_eval.adb
	(Eval_Intrinsic_Call): Test Core_Extensions_Allowed instead of
	testing All_Extensions_Allowed.
	* gnat_rm.texi: Regenerate.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* aspects.adb (Relocate_Aspect): Remove call to Set_Has_Aspects.
	* sem_ch12.adb (Analyze_Formal_Package_Declaration): Likewise.
	* sem_util.adb (Copy_Ghost_Aspect, Copy_SPARK_Mode_Aspect):
	Likewise.

2022-11-04  Javier Miranda  <miranda@adacore.com>

	* exp_intr.adb
	(Expand_Dispatching_Constructor_Call): Report an error on
	unsupported dispatching constructor calls and report a warning on
	calls that may fail at run time.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb
	(Check_Components): Iterate using
	First/Next_Component_Or_Discriminant.
	(Has_Preelaborable_Initialization): Avoid repeated iteration with
	calls to Check_Components with First_Entity and
	First_Private_Entity.
	(Is_Independent_Object_Entity): Tune indentation.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch7.adb (Clear_Constants): Only iterate from First_Entity
	through Next_Entity; only examine variables because packages have
	no assignable formal parameters.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
	typos.
	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Fix typos
	and refill as necessary; remove trailing whitespace.
	* doc/gnat_ugn/gnat_and_program_execution.rst: Fix typos.
	* gnat_ugn.texi: Regenerate.

2022-11-04  Marc Poulhiès  <poulhies@adacore.com>

	* sem_util.ads (Add_Block_Identifier): Add new extra Scope
	argument.
	* sem_util.adb (Add_Block_Identifier): Likewise and use this scope
	variable instead of Current_Scope.
	* exp_util.adb (Wrap_Statements_In_Block): Add new scope argument
	to Add_Block_Identifier call.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Kill_Current_Values): Only iterate from
	First_Entity through Next_Entity.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch6.adb (Controlling_Formal): Iterate with First/Next_Formal
	and not with First/Next_Entity.

2022-11-04  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb
	(Expand_Interface_Conversion): Fix typo in comment.

2022-11-04  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb
	(Expand_Interface_Conversion): Under configurable runtime, when
	the target type is an interface that is an ancestor of the operand
	type, skip generating code to displace the pointer to reference
	the target dispatch table.
	* sem_disp.adb
	(Propagate_Tag): Handle class-wide types when checking for the
	addition of an implicit interface conversion.

2022-11-04  Ronan Desplanques  <desplanques@adacore.com>

	* doc/gnat_rm/standard_library_routines.rst: Fix typo.
	* gnat_rm.texi: Regenerate.

2022-11-04  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sa_messages.ads, sa_messages.adb: Remove files.

2022-11-04  Ghjuvan Lacambre  <lacambre@adacore.com>

	* checks.adb, exp_atag.adb, exp_attr.adb, exp_ch4.adb, exp_ch6.adb,
	exp_ch7.adb, exp_dbug.adb, exp_disp.adb, exp_unst.adb, exp_util.adb,
	freeze.adb, layout.adb, pprint.adb, rtsfind.adb, sem_aggr.adb,
	sem_attr.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
	sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb,
	sem_util.adb, sem_warn.adb:
	Replace uses of `not Present (X)` with `No (X)`.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.ads: Fix typos in comments; refill as necessary.
	* sinfo.ads: Likewise.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_aspects.rst: Fix typos.
	* doc/gnat_rm/implementation_defined_attributes.rst: Likewise
	* doc/gnat_rm/implementation_defined_characteristics.rst: Likewise
	* doc/gnat_rm/implementation_defined_pragmas.rst: Likewise
	* doc/gnat_rm/standard_library_routines.rst: Likewise.
	* gnat_rm.texi: Regenerate.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch8.adb (Restore_Scope_Stack): Remove elements from the head
	and not the tail of an element list.

2022-11-04  Ronan Desplanques  <desplanques@adacore.com>

	* sinfo.ads: Small editorial changes.

2022-11-04  Steve Baird  <baird@adacore.com>

	* opt.ads: Replace Ada_Version_Type enumeration literal
	Ada_With_Extensions with two literals, Ada_With_Core_Extensions
	and Ada_With_All_Extensions. Update uses of the deleted literal.
	Replace Extensions_Allowed function with two functions:
	All_Extensions_Allowed and Core_Extensions_Allowed.
	* errout.ads, errout.adb: Add Boolean parameter to
	Error_Msg_GNAT_Extension to indicate whether the construct in
	question belongs to the curated subset.
	* exp_ch5.adb, par-ch4.adb, sem_case.adb, sem_ch3.adb:
	* sem_ch4.adb, sem_ch5.adb, sem_ch8.adb: Replace calls to
	Extensions_Allowed with calls to Core_Extensions_Allowed for
	constructs that are in the curated subset.
	* sem_attr.adb, sem_ch13.adb, sem_eval.adb, sem_util.adb: Replace
	calls to Extensions_Allowed with calls to All_Extensions_Allowed
	for constructs that are not in the curated subset.
	* par-ch3.adb: Override default for new parameter in calls to
	Error_Msg_GNAT_Extension for constructs in the curated subset.
	* par-prag.adb: Add Boolean parameter to Check_Arg_Is_On_Or_Off to
	also allow ALL. Set Opt.Ada_Version appropriately for ALL or ON
	arguments.
	* sem_prag.adb: Allowed ALL argument for an Extensions_Allowed
	pragma. Set Opt.Ada_Version appropriately for ALL or ON arguments.
	* switch-c.adb: The -gnatX switch now enables only the curated
	subset of language extensions (formerly it enabled all of them);
	the new -gnatX0 switch enables all of them.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Document new "-gnatX0" switch and update documentation for
	"-gnatX" switch.
	* doc/gnat_rm/implementation_defined_pragmas.rst: Document new ALL
	argument for pragma Extensions_Allowed and update documentation
	for the ON argument. Delete mention of Ada 2022 Reduce attribute
	as an extension.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2022-11-04  Steve Baird  <baird@adacore.com>

	* bindgen.adb: Introduce two new string constants for the names of
	the C-String variables that are assigned the names for adainit and
	adafinal. Replace string literals in Gen_CUDA_Init with references
	to these constants. In Gen_CUDA_Defs, generate C-String variable
	declarations where these constants are the names of the variables.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch9.adb (Satisfies_Lock_Free_Requirements): Ignore
	references to global variables inserted due to pragma
	Initialize_Scalars.

2022-11-04  Cedric Landet  <landet@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Remove VxWorks
	version 6.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2022-11-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch9.adb (Satisfies_Lock_Free_Requirements): Detect
	references via expanded names.

2022-11-04  Steve Baird  <baird@adacore.com>

	* bindgen.adb
	(Gen_CUDA_Init): Move existing loop body into a new local
	procedure, Gen_CUDA_Register_Function_Call, and replace that loop
	body with a call to this procedure. This first part is just
	semantics-preserving refactoring. The second part is to add
	Gen_CUDA_Register_Function_Call calls after the loop for the
	device-side adainit and adafinal procedures.

2022-10-11  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/system-linux-sparc.ads (Support_Atomic_Primitives): New
	constant set to True.

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

	* gcc-interface/ada-tree.def (LOAD_EXPR): New expression code.
	* gcc-interface/gigi.h (build_storage_model_load): Declare.
	(build_storage_model_store): Likewise.
	(instantiate_load_in_expr): Likewise.
	(INSTANTIATE_LOAD_IN_EXPR): New macro.
	(instantiate_load_in_array_ref): Declare.
	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Type>: Set a
	fake discriminant number on the fields of the template type.
	(gnat_to_gnu_field): Use integer for DECL_DISCRIMINANT_NUMBER.
	* gcc-interface/misc.cc (gnat_init_ts): Mark LOAD_EXPR as typed.
	* gcc-interface/trans.cc (fold_constant_decl_in_expr) <ARRAY_REF>:
	Also preserve the 4th operand.
	(Attribute_to_gnu): Deal with LOAD_EXPR of unconstrained array type.
	<Attr_Size>: Call INSTANTIATE_LOAD_IN_EXPR for a storage model.
	<Attr_Length>: Likewise.
	<Attr_Bit_Position>: Likewise.
	(get_storage_model): New function.
	(get_storage_model_access): Likewise.
	(storage_model_access_required_p): Likewise.
	(Call_to_gnu): Add GNAT_STORAGE_MODEL parameter and deal with it.
	Also deal with actual parameters that have a storage model.
	(gnat_to_gnu) <N_Object_Declaratio>: Adjust call to Call_to_gnu.
	<N_Explicit_Dereference>: Deal with a storage model access.
	<N_Indexed_Component>: Likewise.
	<N_Slice>: Likewise.
	<N_Selected_Component>: Likewise.
	<N_Assignment_Statement>: Adjust call to Call_to_gnu.  Deal with a
	storage model access either on the LHS, on the RHS or on both.
	<N_Function_Cal>: Adjust call to Call_to_gnu.
	<N_Free_Statement>: Deal with a pool that is a storage model.
	Replace test for UNCONSTRAINED_ARRAY_REF with test on the type.
	(gnat_gimplify_expr) <CALL_EXPR>: Tidy up.
	<LOAD_EXPR>: New case.
	<UNCONSTRAINED_ARRAY_REF>: Move down.
	* gcc-interface/utils.cc (maybe_unconstrained_array): Deal with a
	LOAD_EXPR by recursing on its first operand.
	* gcc-interface/utils2.cc (build_allocator): Deal with a pool that
	is a storage model.
	(build_storage_model_copy): New function.
	(build_storage_model_load): Likewise.
	(build_storage_model_store): Likewise.
	(instantiate_load_in_expr): Likewise.
	(instantiate_load_in_array_ref): Likewise.
	(gnat_rewrite_reference) <ARRAY_REF>: Also preserve the 4th operand.
	(get_inner_constant_reference) <ARRAY_REF>: Remove useless test.
	(gnat_invariant_expr) <ARRAY_REF>: Rewrite test.

2022-10-06  Steve Baird  <baird@adacore.com>

	* sem_ch6.adb
	(Analyze_Procedure_Call): Replace "return;" with "goto Leave;", as
	per comment preceding body of Analyze_Procedure_Call.

2022-10-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch9.adb (Allows_Lock_Free_Implementation): Reject
	conditional goto statements.

2022-10-06  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Lock_Free): Remove inconsistent periods that end item
	descriptions.
	* sem_ch9.adb
	(Allows_Lock_Free_Implementation): Remove unnecessary guard
	against an empty list of parameters; replace low-level entity kind
	membership test with a high-level query; refill error message.
	* gnat_rm.texi: Regenerate.

2022-10-06  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst: Add examples of
	codegen changes in hardened conditionals.
	* gnat_rm.texi: Regenerate.

2022-10-06  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst: Add examples of
	codegen changes in hardened booleans. Mention that C traps where
	Ada raises exceptions.
	* gnat_rm.texi: Regenerate.

2022-10-06  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst: Add examples of
	codegen changes in stack scrubbing.
	* gnat_rm.texi: Regenerate.

2022-10-06  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch9.adb (Build_Lock_Free_Protected_Subprogram_Body): Replace
	shallow copy of protected statements with a deep copy.

2022-10-06  Marc Poulhiès  <poulhies@adacore.com>

	* fe.h (Has_Storage_Model_Type_Aspect)
	(Has_Designated_Storage_Model_Aspect, Storage_Model_Object)
	(Storage_Model_Copy_From, Storage_Model_Copy_To): Add
	declarations.
	* sem_util.ads: Add WARNING markers for functions for which a new
	C declaration has been added in fe.h

2022-10-06  Steve Baird  <baird@adacore.com>

	* exp_util.adb
	(Get_Current_Value_Condition): Treat references occurring within
	the condition of an if statement, an elsif, or a while loop in the
	same way as references that occur before the start of that
	enclosing construct.

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

	* sem_ch4.adb (Analyze_Call): Add test of Comes_From_Source on the
	enclosing subprogram's Entity_Id for determining whether to
	perform the compile-time accessibility check on actuals passed to
	aliased formals in a function call occurring within a return
	statement. That test excludes cases where the call occurs within
	the return statement of a Pre'Class wrapper function.

2022-10-06  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb
	(Expand_Assign_Array_Loop_Or_Bitfield): Minor cleanups.

2022-10-06  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Ignore one variant of pragma
	Warnings in GNATprove mode.

2022-10-06  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb
	(Expand_Assign_Array_Loop_Or_Bitfield): Disable the
	Fast_Copy_Bitfield optimization in certain cases.

2022-10-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb
	(Sig_Pragma): Change flag for pragma Refined_State to mean "not
	significant"; this is primarily for documentation, because the
	exact value of the flag is not really taken into account for
	Refined_State.
	(Is_Non_Significant_Pragma_Reference): Add special handling for
	pragma Refined_State.

2022-09-29  Ronan Desplanques  <desplanques@adacore.com>

	* einfo.ads: remove documentation duplicate

2022-09-29  Eric Botcazou  <ebotcazou@adacore.com>

	* contracts.adb (Build_Subprogram_Contract_Wrapper): Put back the
	extended return statement if the result type is built-in-place.
	* sem_attr.adb (Analyze_Attribute_Old_Result): Also expect an
	extended return statement.

2022-09-29  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb
	(Expand_Assign_Array_Loop_Or_Bitfield): Make the checks for
	volatile and independent objects more precise.

2022-09-29  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Collect_Visible_States): Ignore package renamings.

2022-09-26  Ghjuvan Lacambre  <lacambre@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst: Rename Valid_Image.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Build_Instance_Compilation_Unit_Nodes): Relocate
	auxiliary declarations from the original compilation unit to the
	newly created compilation unit for the spec.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* rtsfind.ads
	(RTU_Id): Remove unreferenced packages; fix whitespace.
	(RE_Id): Remove unreferenced entities; add comment about entity
	that is only used by GNATprove and not by GNAT.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* s-oscons-tmplt.c (STR, STR1): Remove.

2022-09-26  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(-gnateT): Document new parameter Long_Long_Long_Size.
	* gnat_ugn.texi: Regenerate.

2022-09-26  Steve Baird  <baird@adacore.com>

	* bindgen.adb: When the binder is invoked for the device, specify
	the CUDA_Global aspect for the adainit and adafinal procedures via
	a pragma instead of via an aspect_specification.

2022-09-26  Kévin Le Gouguec  <legouguec@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(Linker Switches): Document support for mold along with gold; add some
	advice regarding OpenSSL in the Pro version.
	* gnat_ugn.texi: Regenerate.

2022-09-26  Tucker Taft  <taft@adacore.com>

	* sem_util.adb (Original_Aspect_Pragma_Name): Check for Check
	pragmas.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion
	based on Full_Analysis flag.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion of
	for iterated component association just like it is done within
	quantified expression.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb (Analyze_Object_Contract): Check SPARK_Mode before
	applying SPARK rule.

2022-09-26  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb
	(Accessibility_Level): Modify indexed and selected components case
	by reducing the scope where Original_Node gets used.

2022-09-26  Boris Yakobowski  <yakobowski@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation for
	gnatmetric.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* gsocket.h: Remove redefinition of _WIN32_WINNT.
	* mingw32.h: Remove conditional definition of _WIN32_WINNT.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* mingw32.h: Remove condition definition of MAXPATHLEN; the include
	directive for stdlib.h was most likely intended to provide the
	MAX_PATH.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* adaint.c: Remove conditional #include directives for old MinGW.
	* cal.c: Always include winsock.h, since it is part of modern
	MinGW.
	* cstreams.c: Remove workaround for old MinGW.
	* expect.c: Remove conditional #include directive for old MinGW.
	* mingw32.h: Remove STD_MINGW and OLD_MINGW declarations.
	* sysdep.c: Remove conditional #include directive for old MinGW.

2022-09-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.ads (Has_Junk_Name): Reword comment.

2022-09-20  Martin Liska  <mliska@suse.cz>

	* exp_ch6.adb: Replace "the the" with "the".
	* sem_ch6.adb: Likewise.
	* sem_disp.ads: Likewise.

2022-09-15  Richard Biener  <rguenther@suse.de>

	* gcc-interface/trans.cc (gigi): Do not initialize void_list_node.

2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity): Relax assertion when
	front-end unnesting is enabled.

2022-09-12  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb
	(Innermost_Master_Scope_Depth): Detect and handle case where scope
	depth is not set on an enclosing scope.

2022-09-12  Steve Baird  <baird@adacore.com>

	* bindgen.adb: When the binder is invoked for the host, generate a
	"with CUDA.Internal;" with clause.

2022-09-12  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Pragma Unreferenced): Sync description with
	Sem_Warn.Has_Junk_Name routine.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2022-09-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute [Valid_Scalars]): Move check for
	unchecked union before checks for private and public types.

2022-09-12  Steve Baird  <baird@adacore.com>

	* bindgen.adb: When the binder is invoked for the host, it
	declares imported subprograms corresponding to the Adainit and
	Adafinal routines on the device. Declare string constants and
	expression functions for the Ada source names and the link names
	of these routines. Generate these subprogram declarations (and
	accompanying Import pragmas) in Gen_CUDA_Defs. Generate
	CUDA_Execute pragmas to call these subprograms from the host in
	Gen_Adafinal and Gen_CUDA_Init. When the binder is invoked for the
	device, include a CUDA_Global aspect declaration in the
	declarations of Adainit and Adafinal and use the aforementioned
	link names in the Export pragmas generated for those two routines.
	* debug.adb: Update comments about "d_c" and "d_d" switches.
	* opt.ads: Declare new Boolean variable,
	Enable_CUDA_Device_Expansion. This complements the existing
	Enable_CUDA_Expansion variable, which is used to enable host-side
	CUDA expansion. The new variable enables device-side CUDA
	expansion. It is currently never set during compilation; it is
	only set via a binder switch.
	* switch-b.adb
	(scan_debug_switches): Add new use of the "-d_d" binder switch.
	The new switch and the variable Opt.Enabled_CUDA_Device_Expansion
	follow the existing pattern of the "-d_c" switch and the variable
	Opt.Enabled_CUDA_Expansion. Flag error if both "-d_c" and "-d_d"
	are specified.

2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	* contracts.adb (Build_Subprogram_Contract_Wrapper): Remove useless
	local variable. In the case of a function, replace the extended
	return statement by a block statement declaring a renaming of the
	call to the local subprogram after removing side effects manually.
	(Expand_Subprogram_Contract): Adjust description accordingly.
	* exp_ch6.adb (Expand_Ctrl_Function_Call): Rewrite obsolete
	comment and do not apply the transformation twice.
	* sem_attr.adb (Analyze_Attribute_Old_Result): Now expect a block
	statement instead of an extended return statement.

2022-09-12  Piotr Trojanek  <trojanek@adacore.com>

	* erroutc.adb (Set_Msg_Insertion_Name): Special-case printing with
	acronyms.

2022-09-12  Yannick Moy  <moy@adacore.com>

	* libgnat/s-imagei.adb (Image_Integer): Add justification.

2022-09-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Get_SPARK_Mode_Type): Fix header box; replace
	chained IF with a CASE statement.

2022-09-12  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Accept SPARK_Mode=>Auto as
	configuration pragma.
	(Get_SPARK_Mode): Make the value for Auto explicit.
	* snames.ads-tmpl (Name_Auto): Add name.

2022-09-12  Joffrey Huguet  <huguet@adacore.com>

	* doc/gnat_rm/the_gnat_library.rst: Remove paragraphs about SPARK
	containers.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2022-09-12  Yannick Moy  <moy@adacore.com>

	* libgnat/s-maccod.ads: Mark package as SPARK_Mode Off.

2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	* fe.h (Unnest_Subprogram_Mode): Declare.

2022-09-12  Steve Baird  <baird@adacore.com>

	* contracts.adb
	(Analyze_Package_Contract): Do not analyze the contract of a
	temporary package created just to check conformance of an actual
	package.

2022-09-12  Joffrey Huguet  <huguet@adacore.com>

	* Makefile.rtl: Remove SPARK containers filenames.
	* impunit.adb: Remove SPARK containers packages names.
	* libgnat/a-cfdlli.adb, libgnat/a-cfdlli.ads: Remove content and
	add pragma Compile_Time_Error with suitable message.
	* libgnat/a-cfhama.adb, libgnat/a-cfhama.ads: Likewise.
	* libgnat/a-cfhase.adb, libgnat/a-cfhase.ads: Likewise.
	* libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Likewise.
	* libgnat/a-cfinse.adb, libgnat/a-cfinse.ads: Likewise.
	* libgnat/a-cfinve.adb, libgnat/a-cfinve.ads: Likewise.
	* libgnat/a-cforma.adb, libgnat/a-cforma.ads: Likewise.
	* libgnat/a-cforse.adb, libgnat/a-cforse.ads: Likewise.
	* libgnat/a-cofove.adb, libgnat/a-cofove.ads: Likewise.
	* libgnat/a-cofuma.adb, libgnat/a-cofuma.ads: Likewise.
	* libgnat/a-cofuse.adb, libgnat/a-cofuse.ads: Likewise.
	* libgnat/a-cofuve.adb, libgnat/a-cofuve.ads: Likewise.
	* libgnat/a-cofuba.adb, libgnat/a-cofuba.ads: Remove package.

2022-09-12  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
	Adapt to object declaration being rewritten into object renaming.

2022-09-12  Justin Squirek  <squirek@adacore.com>

	* contracts.adb, contracts.ads
	(Analyze_Pragmas_In_Declarations): Added to aid in the new
	expansion model so that pragmas relating to contracts can get
	processed early before the rest of the subprogram containing them.
	(Build_Subprogram_Contract_Wrapper): Created to do the majority of
	expansion for postconditions. It builds a local wrapper with the
	statements and declarations within a given subprogram.
	(Is_Prologue_Renaming): Moved out from Process_Preconditions to be
	used generally within the contracts package.
	(Build_Entry_Contract_Wrapper): Moved from exp_ch7.
	(Expand_Subprogram_Contract): Add new local variable Decls to
	store expanded declarations needed for evaluation of contracts.
	Call new wrapper building procedure and modify comments to match
	new expansion model.
	(Get_Postcond_Enabled): Deleted.
	(Get_Result_Object_For_Postcond): Deleted.
	(Get_Return_Success_For_Postcond): Deleted.
	(Process_Contract_Cases): Add new parameter to store declarations.
	(Process_Postconditions): Add new parameter to store declarations.
	(Process_Preconditions): Add new parameter to store declarations.
	Add code to move entry-call prologue renamings
	* einfo.ads: Document new field Wrapped_Statements and modify
	comment for Postconditions_Proc.
	* exp_attr.adb
	(Analyze_Attribute): Modify expansion of the 'Old attribute to
	recognize new expansion model and use Wrapped_Statements instead
	of Postconditions_Proc.
	* exp_ch6.adb
	(Add_Return): Remove special expansion for postconditions.
	(Expand_Call): Modify condition checking for calls to access
	subprogram wrappers to handle new expansion models.
	(Expand_Call_Helper): Remove special expansion for postconditions.
	(Expand_Non_Function_Return): Remove special expansion for
	postconditions.
	(Expand_Simple_Function_Return): Remove special expansion for
	postconditions.
	* exp_ch7.adb
	(Build_Finalizer): Deleted, but replaced by code in
	Build_Finalizer_Helper
	(Build_Finalizer_Helper): Renamed to Build_Finalizer, and special
	handling of 'Old objects removed.
	* exp_ch9.adb
	(Build_Contract_Wrapper): Renamed and moved to contracts package.
	* exp_prag.adb
	(Expand_Pragma_Contract_Cases): Delay analysis of contracts since
	they now instead get analyzed as part of the wrapper generation
	instead of after analysis of their corresponding subprogram's
	body.
	(Expand_Pragma_Check): Label expanded if-statements which come
	from the expansion of assertion statements as
	Comes_From_Check_Or_Contract.
	* freeze.adb
	(Freeze_Entity): Add special case to avoid freezing when a freeze
	node gets generated as part of the expansion of a postcondition
	check.
	* gen_il-gen-gen_nodes.adb: Add new flag
	Comes_From_Check_Or_Contract.
	* gen_il-fields.ads: Add new field Wrapped_Statements. Add new
	flag Comes_From_Check_Or_Contract.
	* gen_il-gen-gen_entities.adb: Add new field Wrapped_Statements.
	* ghost.adb
	(Is_OK_Declaration): Replace Name_uPostconditions with
	Name_uWrapped_Statements.
	(Is_OK_Statement): Simplify condition due to the loss of
	Original_Node as a result of the new expansion model of contracts
	and use new flag Comes_From_Check_Or_Contract in its place.
	* inline.adb
	(Declare_Postconditions_Result): Replace Name_uPostconditions with
	Name_uWrapped_Statements.
	(Expand_Inlined_Call): Replace Name_uPostconditions with
	Name_uWrapped_Statements.
	* lib.adb, lib.ads
	(ipu): Created to aid in debugging.
	* lib-xref.adb
	(Generate_References): Remove special handling for postcondition
	procedures.
	* sem_attr.adb
	(Analyze_Attribute_Old_Result): Add new context in which 'Old can
	appear due to the changes in expansion. Replace
	Name_uPostconditions with Name_uWrapped_Statements.
	(Result): Replace Name_uPostconditions with
	Name_uWrapped_Statements.
	* sem_ch11.adb
	(Analyze_Handled_Statements): Remove check to exclude warnings on
	useless assignments within postcondition procedures since
	postconditions no longer get isolated into separate subprograms.
	* sem_ch6.adb
	(Analyze_Generic_Subprogram_Body): Modify expansion of generic
	subprogram bodies so that contracts (and their associated pragmas)
	get analyzed first.
	(Analyze_Subprogram_Body_Helper): Remove global HSS variable due
	to the HSS of the body potentially changing during the expansion
	of contracts. In cases where it was used instead directly call
	Handled_Statement_Sequence. Modify expansion of subprogram bodies
	so that contracts (and their associated pragmas) get analyzed
	first.
	(Check_Missing_Return): Create local HSS variable instead of using
	a global one.
	(Move_Pragmas): Use new pragma table instead of an explicit list.
	* sem_elab.adb
	(Is_Postconditions_Proc): Deleted since the new scheme of
	expansion no longer divides postcondition checks to a separate
	subprogram and so cannot be easily identified (similar to
	pre-condition checks).
	(Info_Call): Remove info printing for _Postconditions subprograms.
	(Is_Assertion_Pragma_Target): Remove check for postconditions
	procedure
	(Is_Bridge_Target): Remove check for postconditions procedure.
	(Get_Invocation_Attributes): Remove unneeded local variables and
	check for postconditions procedure.
	(Output_Call): Remove info printing for _Postconditions
	subprograms.
	* sem_prag.adb, sem_prag.ads: Add new Pragma table for pragmas
	significant to subprograms, along with tech-debt comment.
	(Check_Arg_Is_Local_Name): Modified to recognize the new
	_Wrapped_Statements internal subprogram and the new expansion
	model.
	(Relocate_Pragmas_To_Body): Replace Name_uPostconditions with
	Name_uWrapped_Statements.
	* sem_res.adb
	(Resolve_Entry_Call): Add conditional to detect both contract
	based wrappers of entries, but also wrappers generated as part of
	general contract expansion (e.g. local postconditions
	subprograms).
	* sem_util.adb
	(Accessibility_Level): Verify 'Access is not taken based on a
	component of a function result.
	(Has_Significant_Contracts): Replace Name_uPostconditions with
	Name_uWrapped_Statements.
	(Same_Or_Aliased_Subprogram): Add conditional to detect and obtain
	the original subprogram based on the new concept of
	"postcondition" wrappers.
	* sinfo.ads: Add documentation for new flag
	Comes_From_Check_Or_Contract.
	* snames.ads-tmpl: Remove Name_uPostconditions and add
	Name_uWrapped_Statements

2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_unst.adb (Unnest_Subprograms.Search_Subprograms): Skip the
	subprogram bodies that are not to be unnested.

2022-09-12  Steve Baird  <baird@adacore.com>

	* sem_aggr.adb
	(Resolve_Array_Aggregate): Generate an appropriate error message
	in the case where an error in the source code leads to an
	N_Iterated_Element_Association node in a bad context.

2022-09-12  Steve Baird  <baird@adacore.com>

	* sem_ch4.adb
	(Analyze_Selected_Component): Initialize the local variable Comp
	to avoid having CodePeer generate an uninitialized variable
	warning.

2022-09-12  Steve Baird  <baird@adacore.com>

	* sem_ch4.adb
	(Analyze_Selected_Component): Avoid initializing the local
	variable Comp if the variable is not going to be subsequently
	referenced. This is a correctness issue because the call to
	First_Entity can fail.

2022-09-12  Steve Baird  <baird@adacore.com>

	* sem_ch9.adb
	(Satisfies_Lock_Free_Requirements): If Ceiling_Locking locking
	policy has been specified, then either return False (if Lock_Free
	was not explicitly specified) or generate a warning that ceiling
	locking will not be implemented for this protected unit (if
	Lock_Free was explicitly specified). Generate an error message (in
	addition to returning False) if an explicit Lock_Free aspect
	specification is rejected because atomic primitives are not
	supported on the given target.
	* doc/gnat_rm/implementation_defined_pragmas.rst: Clarify that the
	Lock_Free aspect for a protected unit takes precedence over the
	Ceiling_Locking locking policy in the case where both apply.
	* gnat_rm.texi: Regenerate.

2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch9.adb (Build_Protected_Spec): Tidy up and propagate the
	Comes_From_Source flag onto the new formal parameters.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not check
	references for subprograms generated for protected subprograms.

2022-09-12  Gary Dismukes  <dismukes@adacore.com>

	* sem_res.adb
	(Resolve_Equality_Op): Add handling for equality ops with
	user-defined literal operands.
	* sem_util.ads
	(Is_User_Defined_Literal): Update spec comment to indicate
	inclusion of named number cases.
	* sem_util.adb
	(Corresponding_Primitive_Op): Rather than following the chain of
	ancestor subprograms via Alias and Overridden_Operation links, we
	check for matching profiles between primitive subprograms of the
	descendant type and the ancestor subprogram (by calling a new
	nested function Profile_Matches_Ancestor). This prevents the
	compiler from hanging due to circular linkages via those fields
	that can occur between inherited and overriding subprograms
	(which might indicate a latent bug, but one that may be rather
	delicate to resolve).
	(Profile_Matches_Ancestor): New nested subprogram to compare the
	profile of a primitive subprogram with the profile of a candidate
	ancestor subprogram.
	(Is_User_Defined_Literal): Also return True in cases where the
	node N denotes a named number (E_Name_Integer and E_Named_Real).

2022-09-12  Steve Baird  <baird@adacore.com>

	* debug.adb: remove a comment.

2022-09-12  Bob Duff  <duff@adacore.com>

	* checks.adb
	(Selected_Length_Checks): In the message for an aggregate that has
	too few or too many elements, add "!!" to make sure the warning
	gets printed in with'ed units. Note that we have to put "!!"
	before the "??", because Compile_Time_Constraint_Error detects
	warnings by comparing the last character of the message with '?'
	(which is bit dubious, but we're not changing that here).
	(Length_Mismatch_Info_Message): Use Unat for some things that
	can't be negative. Specify Decimal instead of Auto in calls to
	UI_Image.
	* sem_util.adb
	(Compile_Time_Constraint_Error): Minor.
	* uintp.adb
	(Image_Uint): It's always better to initialize objects on their
	declaration.

2022-09-12  Patrick Bernardi  <bernardi@adacore.com>

	* libgnat/system-vxworks7-x86_64-kernel.ads: Set
	Support_Atomic_Primitives to false.
	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Ditto.

2022-09-12  Patrick Bernardi  <bernardi@adacore.com>

	* libgnat/system-qnx-arm.ads: Set Support_Atomic_Primitives to
	false.
	* libgnat/system-vxworks7-aarch64.ads: Ditto.
	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Ditto.
	* libgnat/system-vxworks7-arm.ads: Ditto.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Ditto.
	* libgnat/system-vxworks7-x86-kernel.ads: Ditto.
	* libgnat/system-vxworks7-x86-rtp-smp.ads: Ditto.

2022-09-12  Bob Duff  <duff@adacore.com>

	* par-tchk.adb, par-util.adb, prep.adb, prepcomp.adb, scng.adb:
	Use "in" instead of chains of "=" connected with "or else".
	Likewise for "not in", "/=", "and then". Misc cleanup.
	* par-ch10.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb: Likewise.
	* par-ch8.adb, par-ch9.adb, par-endh.adb, par-sync.adb: Likewise.
	* par.adb
	(Pf_Rec): Remove filler, which was added August 25, 1993 to get
	around a compiler limitation that no longer exists. Minor cleanup.
	Remove useless qualfications.
	* par-ch3.adb: Remove redundant return statements.
	(Component_Scan_Loop): Remove loop name; there are no nested
	loops, so it's unnecessary and possibly misleading, and it causes
	too-long lines.
	* par-ch5.adb: DRY: Remove comments that repeat the comments in
	par.adb.
	(P_Sequence_Of_Statements): It is better to initialize things on
	the declaration. And constants are better than variables.
	(Test_Statement_Required): Remove unnecessary insertion of a null
	statement.
	* par-ch6.adb, par-ch7.adb: DRY: Remove comments that repeat the
	comments in par.adb.

2022-09-12  Javier Miranda  <miranda@adacore.com>

	Revert:
	2022-09-06  Javier Miranda  <miranda@adacore.com>

	* debug.adb
	(Debug_Flag_Underscore_X): Switch added temporarily to allow
	disabling extra formal checks.
	* exp_attr.adb
	(Expand_N_Attribute_Reference [access types]): Add extra formals
	to the subprogram referenced in the prefix of 'Unchecked_Access,
	'Unrestricted_Access or 'Access; required to check that its extra
	formals match the extra formals of the corresponding subprogram
	type.
	* exp_ch3.adb
	(Stream_Operation_OK): Declaration moved to the public part of the
	package.
	(Validate_Tagged_Type_Extra_Formals): New subprogram.
	(Expand_Freeze_Record_Type): Improve the code that takes care of
	adding the extra formals of dispatching primitives; extended to
	add also the extra formals to renamings of dispatching primitives.
	* exp_ch3.ads
	(Stream_Operation_OK): Declaration moved from the package body.
	* exp_ch6.adb
	(Has_BIP_Extra_Formal): Subprogram declaration moved to the public
	part of the package. In addition, a parameter has been added to
	disable an assertion that requires its use with frozen entities.
	(Expand_Call_Helper): Enforce assertion checking extra formals on
	thunks.
	(Is_Build_In_Place_Function): Return False for entities with
	foreign convention.
	(Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
	Is_Return_Object replaced by the local variable
	Is_OK_Return_Object that evaluates to False for scopes with
	foreign convention.
	(Might_Have_Tasks): Fix check of class-wide limited record types.
	(Needs_BIP_Task_Actuals): Remove assertion to allow calling this
	function in more contexts; in addition it returns False for
	functions returning objects with foreign convention.
	(Needs_BIP_Finalization_Master): Likewise.
	(Needs_BIP_Alloc_Form): Likewise.
	* exp_ch6.ads
	(Stream_Operation_OK): Declaration moved from the package body. In
	addition, a parameter has been added to disable assertion that
	requires its use with frozen entities.
	* freeze.adb
	(Check_Itype): Add extra formals to anonymous access subprogram
	itypes.
	(Freeze_Expression): Improve code that disables the addition of
	extra formals to functions with foreign convention.
	(Check_Extra_Formals): Moved to package Sem_Ch6 as
	Extra_Formals_OK.
	(Freeze_Subprogram): Add extra formals to non-dispatching
	subprograms.
	* sem_ch3.adb
	(Access_Subprogram_Declaration): Defer the addition of extra
	formals to the freezing point so that we know the convention.
	(Check_Anonymous_Access_Component): Likewise.
	(Derive_Subprogram): Fix documentation.
	* sem_ch6.adb
	(Check_Anonymous_Return): Fix check of access to class-wide
	limited record types.
	(Check_Untagged_Equality): Placed in alphabetical order.
	(Extra_Formals_OK): Subprogram moved from freeze.adb.
	(Extra_Formals_Match_OK): New subprogram.
	(Has_BIP_Formals): New subprogram.
	(Has_Extra_Formals): New subprograms.
	(Needs_Accessibility_Check_Extra): New subprogram.
	(Needs_Constrained_Extra): New subprogram.
	(Parent_Subprogram): New subprogram.
	(Add_Extra_Formal): Minor code cleanup.
	(Create_Extra_Formals): Enforce matching extra formals on
	overridden and aliased entities.
	(Has_Reliable_Extra_Formals): New subprogram.
	* sem_ch6.ads
	(Extra_Formals_OK): Subprogram moved from freeze.adb.
	(Extra_Formals_Match_OK): New subprogram.
	* sem_eval.adb
	(Compile_Time_Known_Value): Improve predicate to avoid assertion
	failure; found working on this ticket; this change does not affect
	the behavior of the compiler because this subprogram has an
	exception handler that returns False when the assertion fails.
	* sem_util.adb
	(Needs_Result_Accessibility_Level): Do not return False for
	dispatching operations compiled with Ada_Version < 2012 since they
	they may be overridden by primitives compiled with Ada_Version >=
	Ada_2012.

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

	* gcc-interface/decl.cc (gnat_to_gnu_param): Set DECL_ARTIFICIAL.

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

	* gcc-interface/trans.cc (At_End_Proc_to_gnu): Use the End_Label of
	the child Handled_Statement_Sequence for body nodes.
	(set_end_locus_from_node): Minor tweaks.

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

	* gcc-interface/trans.cc (Full_View_Of_Private_Constant): New
	function returning the Full_View of a private constant, after
	looking through a chain of renamings, if any.
	(Identifier_to_gnu): Call it on the entity.  Small cleanup.

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

	* gcc-interface/utils.cc (gnat_pushdecl): Preserve named
	TYPE_DECLs consistently for all kind of pointer types.

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

	* gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Divide>: Report a
	violation of No_Dependence on System.GCC if the result type is
	larger than a word.
	<N_Op_Shift>: Likewise.
	<N_Op_Mod>: Likewise.
	<N_Op_Rem>: Likewise.
	(convert_with_check): Report a violation of No_Dependence on
	System.GCC for a conversion between an integer type larger than
	a word and a floating-point type.

2022-09-06  Steve Baird  <baird@adacore.com>

	* sem_ch9.adb
	(Allows_Lock_Free_Implementation): Return False if
	Support_Atomic_Primitives is False.

2022-09-06  Steve Baird  <baird@adacore.com>

	* debug.adb: Remove comment regarding the -gnatd9 switch.
	* doc/gnat_rm/implementation_defined_attributes.rst: Remove all
	mention of the Lock_Free attribute.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.
	* exp_attr.adb, sem_attr.adb: Remove all mention of the former
	Attribute_Lock_Free enumeration element of the Attribute_Id type.
	* sem_ch9.adb
	(Allows_Lock_Free_Implementation): Remove the Debug_Flag_9 test.
	Return False in the case of a protected function whose result type
	requires use of the secondary stack.
	(Satisfies_Lock_Free_Requirements): This functions checks for
	certain constructs and returns False if one is found. In the case
	of a protected function, there is no need to check to see if the
	protected object is being modified. So it is ok to omit *some*
	checks in the case of a protected function. But other checks which
	are required (e.g., the test for a reference to a variable that is
	not part of the protected object) were being incorrectly omitted.
	This could result in accepting "Lock_Free => True" aspect
	specifications that should be rejected.
	* snames.adb-tmpl: Name_Lock_Free no longer requires special
	treatment in Get_Pragma_Id or Is_Pragma_Name (because it is no
	longer an attribute name).
	* snames.ads-tmpl: Move the declaration of Name_Lock_Free to
	reflect the fact that it is no longer the name of an attribute.
	Delete Attribute_Lock_Free from the Attribute_Id enumeration type.

2022-09-06  Steve Baird  <baird@adacore.com>

	* libgnat/a-coorse.ads: Restore Aggregate aspect specification for
	type Set.

2022-09-06  Marc Poulhiès  <poulhies@adacore.com>

	* exp_util.adb (Build_Allocate_Deallocate_Proc): Add
	Alignment_Param in the formal list for calls to SS_Allocate.

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

	* inline.adb (Process_Formals): Preserve Has_Private_View flag while
	rewriting formal into actual parameters.

2022-09-06  Javier Miranda  <miranda@adacore.com>

	* debug.adb
	(Debug_Flag_Underscore_X): Switch added temporarily to allow
	disabling extra formal checks.
	* exp_attr.adb
	(Expand_N_Attribute_Reference [access types]): Add extra formals
	to the subprogram referenced in the prefix of 'Unchecked_Access,
	'Unrestricted_Access or 'Access; required to check that its extra
	formals match the extra formals of the corresponding subprogram
	type.
	* exp_ch3.adb
	(Stream_Operation_OK): Declaration moved to the public part of the
	package.
	(Validate_Tagged_Type_Extra_Formals): New subprogram.
	(Expand_Freeze_Record_Type): Improve the code that takes care of
	adding the extra formals of dispatching primitives; extended to
	add also the extra formals to renamings of dispatching primitives.
	* exp_ch3.ads
	(Stream_Operation_OK): Declaration moved from the package body.
	* exp_ch6.adb
	(Has_BIP_Extra_Formal): Subprogram declaration moved to the public
	part of the package. In addition, a parameter has been added to
	disable an assertion that requires its use with frozen entities.
	(Expand_Call_Helper): Enforce assertion checking extra formals on
	thunks.
	(Is_Build_In_Place_Function): Return False for entities with
	foreign convention.
	(Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
	Is_Return_Object replaced by the local variable
	Is_OK_Return_Object that evaluates to False for scopes with
	foreign convention.
	(Might_Have_Tasks): Fix check of class-wide limited record types.
	(Needs_BIP_Task_Actuals): Remove assertion to allow calling this
	function in more contexts; in addition it returns False for
	functions returning objects with foreign convention.
	(Needs_BIP_Finalization_Master): Likewise.
	(Needs_BIP_Alloc_Form): Likewise.
	* exp_ch6.ads
	(Stream_Operation_OK): Declaration moved from the package body. In
	addition, a parameter has been added to disable assertion that
	requires its use with frozen entities.
	* freeze.adb
	(Check_Itype): Add extra formals to anonymous access subprogram
	itypes.
	(Freeze_Expression): Improve code that disables the addition of
	extra formals to functions with foreign convention.
	(Check_Extra_Formals): Moved to package Sem_Ch6 as
	Extra_Formals_OK.
	(Freeze_Subprogram): Add extra formals to non-dispatching
	subprograms.
	* sem_ch3.adb
	(Access_Subprogram_Declaration): Defer the addition of extra
	formals to the freezing point so that we know the convention.
	(Check_Anonymous_Access_Component): Likewise.
	(Derive_Subprogram): Fix documentation.
	* sem_ch6.adb
	(Check_Anonymous_Return): Fix check of access to class-wide
	limited record types.
	(Check_Untagged_Equality): Placed in alphabetical order.
	(Extra_Formals_OK): Subprogram moved from freeze.adb.
	(Extra_Formals_Match_OK): New subprogram.
	(Has_BIP_Formals): New subprogram.
	(Has_Extra_Formals): New subprograms.
	(Needs_Accessibility_Check_Extra): New subprogram.
	(Needs_Constrained_Extra): New subprogram.
	(Parent_Subprogram): New subprogram.
	(Add_Extra_Formal): Minor code cleanup.
	(Create_Extra_Formals): Enforce matching extra formals on
	overridden and aliased entities.
	(Has_Reliable_Extra_Formals): New subprogram.
	* sem_ch6.ads
	(Extra_Formals_OK): Subprogram moved from freeze.adb.
	(Extra_Formals_Match_OK): New subprogram.
	* sem_eval.adb
	(Compile_Time_Known_Value): Improve predicate to avoid assertion
	failure; found working on this ticket; this change does not affect
	the behavior of the compiler because this subprogram has an
	exception handler that returns False when the assertion fails.
	* sem_util.adb
	(Needs_Result_Accessibility_Level): Do not return False for
	dispatching operations compiled with Ada_Version < 2012 since they
	they may be overridden by primitives compiled with Ada_Version >=
	Ada_2012.

2022-09-06  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_N_If_Expression): Disable optimization
	for LLVM.

2022-09-06  Javier Miranda  <miranda@adacore.com>

	* sem_prag.adb
	(Analyze_Pre_Post_Condition_In_Decl_Part): Improve check to report
	an error in non-legal class-wide conditions.

2022-09-06  Steve Baird  <baird@adacore.com>

	* libgnat/a-strsup.adb, libgnat/a-stwisu.adb, libgnat/a-stzsup.adb
	(Super_Slice function and procedure): fix slice length computation.

2022-09-06  Steve Baird  <baird@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Improve -gnatVa, -gnatVc, -gnatVd, -gnatVe, -gnatVf, -gnatVo,
	-gnatVp, -gnatVr, and -gnatVs switch descriptions.
	* gnat_ugn.texi: Regenerate.

2022-09-06  Justin Squirek  <squirek@adacore.com>

	* exp_unst.adb
	(Visit_Node): Add N_Block_Statement to the enclosing construct
	case since they can now have "At end" procedures. Also, recognize
	calls from "At end" procedures when recording subprograms.

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

	* inline.adb (Replace_Formal): Fix name of the referenced routine.

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

	* exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
	Remove unnecessary local constant that was shadowing another
	constant with the same initial value.

2022-09-06  Julien Bortolussi  <bortolussi@adacore.com>

	* libgnat/a-cforse.ads (Replace): Fix the postcondition.

2022-09-06  Steve Baird  <baird@adacore.com>

	* exp_attr.adb
	(Attribute_Valid): Ensure that PBtyp is initialized to a value for
	which Is_Scalar_Type is True.
	* checks.adb
	(Determine_Range): Call Implemention_Base_Type instead of
	Base_Type in order to ensure that result is suitable for passing
	to Enum_Pos_To_Rep.

2022-09-06  Bob Duff  <duff@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gen_il-fields.ads
	(First_Real_Statement): Remove this field.
	* gen_il-gen-gen_nodes.adb: Remove the First_Real_Statement field.
	Add the At_End_Proc field to nodes that have both Declarations and
	HSS.
	* sinfo.ads
	(At_End_Proc): Document new semantics.
	(First_Real_Statement): Remove comment.
	* exp_ch11.adb
	(Expand_N_Handled_Sequence_Of_Statements): Remove
	First_Real_Statement.
	* exp_ch7.adb
	(Build_Cleanup_Statements): Remove "Historical note"; it doesn't
	seem useful, and we have revision history.
	(Create_Finalizer): Insert the finalizer later, typically in the
	statement list, in some cases.
	(Build_Finalizer_Call): Attach the "at end" handler to the parent
	of the HSS node in most cases, so it applies to declarations.
	(Expand_Cleanup_Actions): Remove Wrap_HSS_In_Block and the call to
	it. Remove the code that moves declarations. Remove some redundant
	code.
	* exp_ch9.adb
	(Build_Protected_Entry): Copy the At_End_Proc.
	(Build_Protected_Subprogram_Body): Reverse the sense of Exc_Safe,
	to avoid double negatives. Remove "Historical note" as in
	exp_ch7.adb.
	(Build_Unprotected_Subprogram_Body): Copy the At_End_Proc from the
	protected version.
	(Expand_N_Conditional_Entry_Call): Use First (Statements(...))
	instead of First_Real_Statement(...).
	(Expand_N_Task_Body): Put the Abort_Undefer call at the beginning
	of the declarations, rather than in the HSS. Use First
	(Statements(...)) instead of First_Real_Statement(...). Copy the
	At_End_Proc.
	* inline.adb
	(Has_Initialized_Type): Return False if the declaration does not
	come from source.
	* libgnarl/s-tpoben.ads
	(Lock_Entries, Lock_Entries_With_Status): Document when these
	things raise Program_Error. It's not clear that
	Lock_Entries_With_Status ought to be raising exceptions, but at
	least it's documented now.
	* sem.ads: Minor comment fixes.
	* sem_ch6.adb
	(Analyze_Subprogram_Body_Helper): Use First (Statements(...))
	instead of First_Real_Statement(...).
	(Analyze_Null_Procedure): Minor comment fix.
	* sem_util.adb
	(Might_Raise): Return True for N_Raise_Expression. Adjust the part
	about exceptions generated by the back end to match the reality of
	what the back end generates.
	(Update_First_Real_Statement): Remove.
	* sem_util.ads: Remove First_Real_Statement from comment.
	* sinfo-utils.ads
	(First_Real_Statement): New function that always returns Empty.
	This should be removed once gnat-llvm and codepeer have been
	updated to not refer to First_Real_Statement.
	* sprint.adb
	(Sprint_At_End_Proc): Deal with printing At_End_Proc.
	* sem_prag.adb: Minor comment fixes.
	* gcc-interface/trans.cc (At_End_Proc_to_gnu): New function.
	(Subprogram_Body_to_gnu): Call it to handle an At_End_Proc.
	(Handled_Sequence_Of_Statements_to_gnu): Likewise. Remove the
	support for First_Real_Statement and clean up the rest.
	(Exception_Handler_to_gnu): Do not push binding levels.
	(Compilation_Unit_to_gnu): Adjust call to process_decls.
	(gnat_to_gnu) <N_Package_Specification>: Likewise. <N_Entry_Body>:
	Likewise. <N_Freeze_Entity>: Likewise. <N_Block_Statement>:
	Likewise and call At_End_Proc_to_gnu to handle an At_End_Proc.
	<N_Package_Body>: Likewise.
	(process_decls): Remove GNAT_END_LIST parameter and adjust
	recursive calls.

2022-09-06  Steve Baird  <baird@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Document new
	temporary rule that a "when others =>" case choice must be given
	when casing on a composite selector.
	* gnat_rm.texi: Regenerate.

2022-09-06  Steve Baird  <baird@adacore.com>

	* sem_case.adb: Define a new Boolean constant,
	Simplified_Composite_Coverage_Rules, initialized to True. Setting
	this constant to True has two effects: 1- Representative value
	sets are not fully initialized - this is done to avoid capacity
	problems, as well as for performance. 2- In
	Check_Case_Pattern_Choices, the only legality check performed is a
	check that a "when others =>" choice is present.

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

	* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix error
	template.

2022-09-06  Steve Baird  <baird@adacore.com>

	* exp_attr.adb
	(Make_Range_Test): In determining which subtype's First and Last
	attributes are to be queried as part of a range test, call
	Validated_View in order to get a scalar (as opposed to private)
	subtype.
	(Attribute_Valid): In determining whether to perform a signed or
	unsigned comparison for a range test, call Validated_View in order
	to get a scalar (as opposed to private) type. Also correct a typo
	which, by itself, is the source of the problem reported for this
	ticket.

2022-09-06  Steve Baird  <baird@adacore.com>

	* sem_ch4.adb
	(Analyze_Selected_Component): Define new Boolean-valued function,
	Constraint_Has_Unprefixed_Discriminant_Reference, which takes a
	subtype that is subject to a discriminant-dependent constraint and
	returns True if any of the constraint values are unprefixed
	discriminant names. Usually, the Etype of a selected component
	node is set to Etype of the component. However, in the case of an
	access-to-array component for which this predicate returns True,
	we instead use the base type of the Etype of the component.
	Normally such problematic discriminant references are addressed by
	calling Build_Actual_Subtype_Of_Component, but that doesn't work
	if Full_Analyze is False.

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

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Include
	System.Value_U_Spec and System.Value_I_Spec units.

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

	* libgnat/s-powflt.ads (Powfive): New constant array.
	* libgnat/s-powlfl.ads (Powfive): Likewise.
	(Powfive_100): New constant.
	(Powfive_200): Likewise.
	(Powfive_300): Likewise.
	* libgnat/s-powllf.ads (Powfive): New constant array.
	(Powfive_100): New constant.
	(Powfive_200): Likewise.
	(Powfive_300): Likewise.
	* libgnat/s-valflt.ads (Impl): Replace Powten with Powfive and pass
	Null_Address for the address of large constants.
	* libgnat/s-vallfl.ads (Impl): Replace Powten with Powfive and pass
	the address of large constants.
	* libgnat/s-valllf.ads (Impl): Likewise.
	* libgnat/s-valrea.ads (System.Val_Real): Replace Powten_Address
	with Powfive_Address and add Powfive_{1,2,3}00_Address parameters.
	* libgnat/s-valrea.adb (Is_Large_Type): New boolean constant.
	(Is_Very_Large_Type): Likewise.
	(Maxexp32): Change value of 10 to that of 5.
	(Maxexp64): Likewise.
	(Maxexp80): Likewise.
	(Integer_to_Real): Use a combination of tables of powers of 5 and
	scaling if the base is 10.
	(Large_Powten): Rename into...
	(Large_Powfive): ...this.  Add support for large constants.
	(Large_Powfive): New overloaded function for very large exponents.

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

	* doc/gnat_rm/implementation_defined_aspects.rst
	(Aspect Iterable): Include Last and Previous primitives in
	syntactic and semantic description.
	* exp_attr.adb
	(Expand_N_Attribute_Reference): Don't expect attributes like
	Iterable that can only appear in attribute definition clauses.
	* sem_ch13.adb
	(Analyze_Attribute_Definition_Clause): Prevent crash on
	non-aggregate Iterable attribute; improve basic diagnosis of
	attribute values.
	(Resolve_Iterable_Operation): Improve checks for illegal
	primitives in aspect Iterable, e.g. with wrong number of formal
	parameters.
	(Validate_Iterable_Aspect): Prevent crashes on syntactically
	illegal aspect expression.
	* sem_util.adb
	(Get_Cursor_Type): Fix style.
	* gnat_ugn.texi, gnat_rm.texi: Regenerate.

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

	* libgnat/s-valuer.ads (System.Value_R): Add Parts formal parameter
	as well as Data_Index, Scale_Array and Value_Array types.
	(Scan_Raw_Real): Change type of Scale and return type.
	(Value_Raw_Real): Likewise.
	* libgnat/s-valuer.adb (Round_Extra): Reorder parameters and adjust
	recursive call.
	(Scan_Decimal_Digits): Reorder parameters, add N parameter and deal
	with multi-part scale and value.
	(Scan_Integral_Digits): Likewise.
	(Scan_Raw_Real): Change type of Scale and return type and deal with
	multi-part scale and value.
	(Value_Raw_Real): Change type of Scale and return type and tidy up.
	* libgnat/s-valued.adb (Impl): Pass 1 as Parts actual parameter.
	(Scan_Decimal): Adjust to type changes.
	(Value_Decimal): Likewise.
	* libgnat/s-valuef.adb (Impl): Pass 1 as Parts actual parameter.
	(Scan_Fixed): Adjust to type changes.
	(Value_Fixed): Likewise.
	* libgnat/s-valrea.adb (Need_Extra): Delete.
	(Precision_Limit): Always use the precision of the mantissa.
	(Impl): Pass 2 as Parts actual parameter.
	(Exact_Log2): New expression function.
	(Integer_to_Real): Change type of Scale and Val and deal with a
	2-part integer mantissa.
	(Scan_Real): Adjust to type changes.
	(Value_Real): Likewise.

2022-09-05  Martin Liska  <mliska@suse.cz>

	* sigtramp-vxworks-target.h: Rename DBX_REGISTER_NUMBER to
	DEBUGGER_REGNO.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Check_Bounds): Move code and comment related to
	check for null array aggregate from Resolve_Null_Array_Aggregate.
	* sem_aggr.ads (Is_Null_Aggregate): Move spec from unit body.
	* sem_aggr.adb (Resolve_Null_Array_Aggregate): Move check to
	expansion.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb
	(Array_Aggr_Subtype): Bypass call to Collect_Aggr_Bound with
	dedicated code for null array aggregates.
	(Resolve_Array_Aggregate): Remove special handling of null array
	aggregates.
	(Resolve_Array_Aggregate): Create bounds, but let
	Array_Aggr_Subtype create itype entities.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Null_Array_Aggregate): Insert check as a
	Raise_Constraint_Error node and not an If_Statement.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb
	(Resolve_Container_Aggregate): Style cleanup.
	(Resolve_Record_Aggregate): Remove redundant guard.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.ads (Entry_Names_OK): Remove spec.
	* exp_util.adb (Entry_Names_OK): Remove body.

2022-09-05  Steve Baird  <baird@adacore.com>

	* libgnat/a-coinve.adb, libgnat/a-convec.adb
	(Append): If the Append that takes an Element and a Count is
	called with Count = 1, then call the Append that does not take a
	Count parameter; otherwise call the code that handles the general
	case. Move the special case detection/handling code that was
	formerly in that version of Append into the version that does not
	take a Count parameter, so that now both versions get the
	performance benefit.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Null_Array_Aggregate): Create internal
	type for the aggregate as an itype.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.ads (Itype_Has_Declaration): Remove spec.
	* sem_util.adb (Itype_Has_Declaration): Remove body.

2022-09-05  Steve Baird  <baird@adacore.com>

	* exp_ch3.adb
	(Expand_N_Object_Declaration): In deciding whether to emit a DIC
	check, we were previously testing the Has_Init_Expression flag.
	Continue to test that flag as before, but add a test for the
	syntactic presence of an initial value in the object declaration.
	This new test would not supersede the old test in the case where
	an explicit initial value has been eliminated as part of some tree
	transformation.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Validate_Unchecked_Conversions): Use
	Has_Warnings_Off.
	* sem_elab.adb (Check_Internal_Call_Continue): Likewise.

2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-valuer.adb (Scan_Decimal_Digits): Consistently avoid
	initializing local variables.
	(Scan_Integral_Digits): Likewise.
	(Scan_Raw_Real): Likewise and add a couple of comments.

2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.adb (Freeze_Entity_Checks): Build predicate functions
	only after checking the variant part of a record type, if any.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb
	(Two_Pass_Aggregate_Expansion): Expand into implicit rather than
	ordinary loops, to detect violations of restriction
	No_Implicit_Loops.
	(Generate_Loop): Likewise for delta array aggregates.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Expand iterated
	component association with an unanalyzed copy of iterated
	expression. The previous code worked only because the expanded
	loop used both an analyzed copy of the iterator_specification and
	an analyzed copy of the iterated expression. Now the iterated
	expression is reanalyzed in the context of the expanded loop.
	* par-ch4.adb (Build_Iterated_Component_Association): Don't set
	defining identifier when iterator specification is present.
	* sem_aggr.adb (Resolve_Iterated_Association): Pick index name
	from the iterator specification.
	* sem_elab.adb (Traverse_Potential_Scenario): Handle iterated
	element association just like iterated component association. Not
	strictly part of this fix, but still worth for the completeness.
	* sem_res.adb (Resolve): Pick index name from the iterator
	specification, when present.
	* sem_util.adb (Traverse_More): For completeness, just like the
	change in Traverse_Potential_Scenario.
	* sinfo.ads
	(ITERATED_COMPONENT_ASSOCIATION): Fix and complete description.
	(ITERATED_ELEMENT_ASSOCIATION): Likewise.

2022-09-05  Bob Duff  <duff@adacore.com>

	* sem_ch6.adb
	(Analyze_Subprogram_Body_Helper): Use First_Real_Statement to deal
	with this case. Note that First_Real_Statement is likely to be
	removed as part of this ticket, so this is a temporary fix.

2022-09-05  Arnaud Charlet  <charlet@adacore.com>

	* ali.adb (Scan_ALI): Special case i-c*.ali when setting
	Sec_Stack_Used.

2022-09-05  Bob Duff  <duff@adacore.com>

	* par-ch5.adb
	(P_Sequence_Of_Statements): Call Error_Msg_GNAT_Extension to give
	the error message.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Component_Association): Split
	processing of cases with and without iterator specification; reuse
	analysis of iterator specification; improve diagnostics for
	premature usage of iterator index in discrete choices.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Check_Subtype_Definition): Remove redundant call to
	Present; style cleanup.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Change an inconsistent
	use of False into its local equivalent Failure.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Component_Association): Change
	generic name Ent to a more intuitive Scop; rename Remove_Ref to
	Remove_Reference, so it can be instantiated as a traversal routine
	with plural name.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch4.adb
	(Is_Empty_Range): Move error reporting to the caller.
	(Analyze_Qualified_Expression): Move error reporting from Is_Empty_Range;
	add matching call to End_Scope before rewriting and returning.

2022-09-05  Arnaud Charlet  <charlet@adacore.com>

	* bindgen.adb (Gen_Elab_Calls): Check for Check_Elaboration_Flags.
	* bindusg.adb (Display): Add -k.
	* opt.ads (Check_Elaboration_Flags): New.
	* switch-b.adb (Scan_Binder_Switches): Add processing of -k.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
	documentation for -k and -K.
	* gnat_ugn.texi: Regenerate.

2022-09-05  Arnaud Charlet  <charlet@adacore.com>

	* treepr.adb: Remove local To_Lower and use the procedure
	version instead.

2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>

	* aspects.ads (Delaying Evaluation of Aspect): Fix typos.
	* exp_ch3.adb (Freeze_Type): Do not generate Invariant and DIC
	procedures for internal types.
	* exp_util.adb (Build_DIC_Procedure_Body): Adjust comment.
	* freeze.adb (Freeze_Entity): Call Inherit_Delayed_Rep_Aspects for
	subtypes and derived types only after the base or parent type has
	been frozen.  Remove useless freezing for first subtype.
	(Freeze_Fixed_Point_Type): Call Inherit_Delayed_Rep_Aspects too.
	* layout.adb (Set_Elem_Alignment): Deal with private types.
	* sem_ch3.adb (Build_Derived_Enumeration_Type): Build the implicit
	base as an itype and do not insert its declaration in the tree.
	(Build_Derived_Numeric_Type): Do not freeze the implicit base.
	(Derived_Standard_Character): Likewise.
	(Constrain_Enumeration): Inherit the chain of representation items
	instead of replacing it.
	* sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): Add ??? comment.
	(Inherit_Delayed_Rep_Aspects): Declare.
	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Do not invoke
	Inherit_Delayed_Rep_Aspects.
	(Inherit_Aspects_At_Freeze_Point): Deal with private types.
	(Inherit_Delayed_Rep_Aspects): Move to library level.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* einfo-utils.adb (Number_Entries): Refine type of a local variable.
	* exp_attr.adb (Expand_N_Attribute_Reference): Rename Conctyp to
	Prottyp; refactor repeated calls to New_Occurrence_Of; replace
	Number_Entries with Has_Entries.
	* exp_ch5.adb (Expand_N_Assignment_Statement): Likewise; remove Subprg
	variable (apparently copy-pasted from expansion of the attribute).

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Fix detection of the
	enclosing protected type and of the enclosing protected subprogram.
	* exp_ch5.adb (Expand_N_Assignment_Statement): Likewise.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* freeze.adb (Freeze_Itype): Remove excessive guard.
	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Likewise.

2022-09-05  Piotr Trojanek  <trojanek@adacore.com>

	* sprint.adb (Sprint_Node_Actual): Handle iterator_specification within
	iterated_component_association and iterator_filter within
	iterator_specification.

2022-09-05  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_ugn/gnat_and_program_execution.rst: Fix rest syntax
	* gnat_ugn.texi: Regenerate.

2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): Be prepared for rewritten
	aggregates as expressions.

2022-09-02  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Expand_Simple_Function_Return) Bypass creation of an
	actual subtype and unchecked conversion to that subtype when the
	underlying type of the expression has discriminants without defaults.

2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): Check for the presence
	of the Is_Constr_Subt_For_U_Nominal flag instead of the absence
	of the Is_Constr_Subt_For_UN_Aliased flag on the subtype of the
	expression of an object declaration before reusing this subtype.
	* sem_ch3.adb (Analyze_Object_Declaration): Do not incorrectly
	set the Is_Constr_Subt_For_UN_Aliased flag on the actual subtype
	of an array with definite nominal subtype.  Remove useless test.

2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
	(No_Dependence): Cite implicit dependences on the runtime library.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2022-09-02  Claire Dross  <dross@adacore.com>

	* libgnat/a-strmap.adb: Add variants to simple and while loops.
	* libgnat/a-strsea.adb: Idem.

2022-09-02  Claire Dross  <dross@adacore.com>

	* libgnat/s-expmod.adb (Lemma_Add_Mod): Add new lemma to factor
	out a complex sub-proof.
	(Exp_Modular): Add assertion to help proof.

2022-09-02  Claire Dross  <dross@adacore.com>

	* libgnat/s-widthu.adb (Lemma_Euclidean): Lemma to prove the
	relation between the quotient/remainder of a division.

2022-09-02  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb: Add or rework ghost code.
	* libgnat/s-aridou.ads: Add Big_Positive subtype.

2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_ugn/gnat_and_program_execution.rst
	(Non-Symbolic Traceback): Update section.
	* gnat_rm.texi, gnat_ugn.texi, gnat-style.texi: Regenerate.

2022-09-02  Claire Dross  <dross@adacore.com>

	* libgnat/a-nbnbig.ads: Add Always_Return annotation.
	* libgnat/s-vaispe.ads: New ghost unit for the specification of
	System.Value_I. Restore proofs.
	* libgnat/s-vauspe.ads: New ghost unit for the specification of
	System.Value_U. Restore proofs.
	* libgnat/s-valuei.adb: The specification only subprograms are
	moved to System.Value_I_Spec. Restore proofs.
	* libgnat/s-valueu.adb: The specification only subprograms are
	moved to System.Value_U_Spec. Restore proofs.
	* libgnat/s-valuti.ads
	(Uns_Params): Generic unit used to bundle together the
	specification functions of System.Value_U_Spec.
	(Int_Params): Generic unit used to bundle together the
	specification functions of System.Value_I_Spec.
	* libgnat/s-imagef.adb: It is now possible to instantiate the
	appropriate specification units instead of creating imported ghost
	subprograms.
	* libgnat/s-imagei.adb: Update to refactoring of specifications
	and fix proofs.
	* libgnat/s-imageu.adb: Likewise.
	* libgnat/s-imgint.ads: Ghost parameters are grouped together in a
	package now.
	* libgnat/s-imglli.ads: Likewise.
	* libgnat/s-imgllu.ads: Likewise.
	* libgnat/s-imgllli.ads: Likewise.
	* libgnat/s-imglllu.ads: Likewise.
	* libgnat/s-imguns.ads: Likewise.
	* libgnat/s-vallli.ads: Likewise.
	* libgnat/s-valllli.ads: Likewise.
	* libgnat/s-imagei.ads: Likewise.
	* libgnat/s-imageu.ads: Likewise.
	* libgnat/s-vaispe.adb: Likewise.
	* libgnat/s-valint.ads: Likewise.
	* libgnat/s-valuei.ads: Likewise.
	* libgnat/s-valueu.ads: Likewise.
	* libgnat/s-vauspe.adb: Likewise.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu) <N_Assignment_Statement>: Fix
	a couple of minor issues in the commentary.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gigi): Report a violation of No_Dependence
	on System.Stack_Checking if Stack_Check_Probes_On_Target is not set
	and -fstack-check is specified.
	(build_binary_op_trapv): Report violatiosn of No_Dependence on both
	System.Arith_64 and System.Arith_128.
	(add_decl_expr): If an initialized variable, report a violation of
	No_Dependence on System.Memory_Copy for large aggregate types.
	(gnat_to_gnu) <N_Op_Eq>: Report a violation
	of No_Dependence on System.Memory_Compare for large aggregate types.
	<N_Assignment_Statement>! Report a violation of No_Dependence on
	System.Memory_Set, System.Memory_Move or else System.Memory_Copy for
	large aggregate types.
	* gcc-interface/utils2.cc (maybe_wrap_malloc): Report a violation of
	No_Dependence on System.Memory.
	(maybe_wrap_free): Add GNAT_NODE parameter and report a violation of
	No_Dependence on System.Memory.
	(build_call_alloc_dealloc): Adjust call to maybe_wrap_free.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity): Do not set the debug
	type for vector types.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>:
	Undo questionable renaming.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (Gigi_Cloned_Subtype): Handle private case.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gigi): Add one more leading underscore to
	name of stack checking function.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (Gigi_Cloned_Subtype): New function.
	(gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Call it to get the
	cloned subtype, if any.
	<E_Floating_Point_Subtype>: Likewise.
	<E_Array_Subtype>: Likewise.
	<E_Record_Subtype>: Likewise.
	<E_Access_Subtype>: Likewise.
	Deal with all cloned subtypes on the main path.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: Do
	not reuse the TYPE_DECL of the base type.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.cc (gnat_pushdecl): Build DECL_ORIGINAL_TYPE
	only for pointer types.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Also accept
	pointer-to-function types that are not variant of each other.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.cc (unchecked_convert): Also pad in most cases
	if the source is not a scalar type but the destination is.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Save
	and restore the alias set of the dummy pointer-to-array type.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* snames.ads-tmpl (Name_Memory_Compare): New package name.
	(Name_Memory_Copy): Likewise.
	(Name_Memory_Move): Likewise.
	(Name_Memory_Set): Likewise.

2022-07-13  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch13.adb (Check_And_Resolve_Storage_Model_Type_Argument):
	Call the System.Case_Util.To_Mixed procedure rather than the
	function, to avoid bootstrap problems.

2022-07-13  Gary Dismukes  <dismukes@adacore.com>

	* aspects.ads (Aspect_Argument): Change the association for
	Aspect_Storage_Model_Type from Expression to
	Optional_Expression.
	* exp_util.ads (Find_Storage_Op): Update comment to indicate
	that Empty can be returned in the case where a storage-model
	operation is defaulted.
	* exp_util.adb (Find_Storage_Op): Allow the function to return
	Empty in Storage_Model_Type case rather than raising
	Program_Error, so that Procedure_To_Call fields in N_Allocator
	and N_Free_Statement nodes will be set to Empty in the defaulted
	native storage-model case.
	* sem_ch13.adb: Add with and use of System.Case_Util (and
	reformat context_clause).
	(Check_Aspect_At_Freeze_Point): Return with no action for a
	Storage_Model_Type aspect with no expression (fully-defaulted
	native memory-model case).
	(Resolve_Storage_Model_Type_Argument): If an Address_Type has
	not been explicitly specified, then set Addr_Type to denote type
	System.Address.
	(Validate_Storage_Model_Type_Aspect): Return immediately in the
	case where the aspect has no Expression (fully-defaulted native
	memory-model case).  No longer issue an error when Address_Type
	isn't specified, and instead use type System.Address as the
	default address type. When the address type is
	System.Address (whether specified or defaulted), no longer issue
	errors for any other "subaspects" that aren't specified, since
	in that case those are allowed to default as well. Remove ???
	comment about needing to check for duplicates, which is now
	addressed.
	(Check_And_Resolve_Storage_Model_Type_Argument): New procedure
	to check that an association for a storage-model subaspect in
	the aggregate has not been specified earlier in the aggregate,
	and to then resolve the expression of the association and save
	the resolved entity. Called by
	Validate_Storage_Model_Type_Aspect.
	* sem_util.ads (Storage_Model_Support): Update comments on specs
	of the functions Get_Storage_Model_Type_Entity,
	Storage_Model_Address_Type, and Storage_Model_Null_Address to
	indicate the behavior when the address type is System.Address
	(the native memory-model case).
	* sem_util.adb
	(Storage_Model_Support.Get_Storage_Model_Type_Entity): Suppress
	the search for the given subaspect name (Nam) when the
	Storage_Model_Type aspect is fully defaulted (i.e., no
	Expression is present) and simply return. In cases where the
	search is done, but no association that matches Nam is found,
	return System.Address for the Name_Address_Type case, return
	System.Null_Address for the Name_Null_Address case, and return
	Empty for all other cases.

2022-07-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Relocate_Expression): New routine with code that
	previously was only applied to Pre and Post aspects.
	(Analyze_Aspect_Specifications): Apply the above routine to
	other aspects, in particular to aspects Address, Attach_Handler,
	Predicate and Interrupt_Priority.

2022-07-13  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Build_Body_To_Inline): Instead of manipulating the
	Full_Analysis flag, use the Inside_A_Generic flag (which is
	conveniently manipulated by Start_Generic/End_Generic, together
	with Expander_Active).
	* sem_attr.adb (Analyze_Attribute_Old_Result): Adapt comment and
	assertion to different flag that is set while building
	body-to-inline.

2022-07-13  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst: Clarify the need
	for choices after -fzero-call-used-regs and -fstrub.
	* gnat_rm.texi: Regenerate.

2022-07-13  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Recognize a generated subtype
	with Ghost pragma for generic instantiations.

2022-07-13  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb (Lemma_Mult_Div, Lemma_Powers): New
	lemmas.
	(Prove_Sign_Quotient): New local lemma.
	(Prove_Signs): Expand definition of Big_R and Big_Q in the
	postcondition. Add intermediate assertions.
	(Double_Divide): Call new lemma.
	(Lemma_Div_Eq): Provide body for proving lemma.
	(Lemma_Powers_Of_2, Lemma_Shift_Without_Drop,
	Prove_Dividend_Scaling, Prove_Multiplication, Prove_Z_Low): Call
	lemmas, add intermediate assertions.

2022-07-13  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Has_Single_Return): Add guard for the subsequent
	call to Expression.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Acts_As_Spec
	earlier if the body is not the completion of a declaration.
	(Check_Untagged_Equality): Deal with subprogram bodies that are
	not the completion of a declaration and make sure that they are
	not flagged when they cause the freezing of the type themselves.
	Give a warning on the freezing point of the type in more cases.
	* sem_res.adb (Resolve_Equality_Op): Revert latest change.

2022-07-13  Yannick Moy  <moy@adacore.com>

	* libgnat/s-arit32.adb (Scaled_Divide32): Add an assertion, move
	the call of Prove_Sign_R around.

2022-07-13  Marc Poulhiès  <poulhies@adacore.com>

	* exp_ch4.adb (Expand_N_If_Expression): Test for compile time
	known bounds when handling slices.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.ads (Integer_Type_For): Mention Small_Integer_Type_For.
	(Small_Integer_Type_For): Mention Integer_Type_For.

2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_res.adb (Resolve_Equality_Op): Make sure that the user-defined
	operator of an untagged record type is declared ahead of an instance
	before using it to resolve the equality operator in the instance.

2022-07-13  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Add default
	initialization for Stmts.
	* sem_ch12.adb (Analyze_Associations): Add default
	initialization for Match.
	* libgnat/a-ztenau.adb (Scan_Enum_Lit): Remove duplicated
	boolean test.
	* libgnat/g-spipat.adb (XMatch): Combine duplicated cases.

2022-07-13  Piotr Trojanek  <trojanek@adacore.com>

	* par-prag.adb (Check_Arg_Count): Change parameter type from Int
	to Nat, because this parameter is compared to Arg_Count variable
	which is of type Nat. Also, it wouldn't make sense to check for
	negative number of pragma arguments.

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch11.adb (Expand_N_Exception_Declaration): Sync comment
	with declaration in System.Standard_Library.

2022-07-12  Marc Poulhiès  <poulhies@adacore.com>

	* libgnat/s-secsta.adb (Has_Enough_Free_Memory): Check for full
	chunk before computing the available size.

2022-07-12  Steve Baird  <baird@adacore.com>

	* exp_ch4.adb (Expand_Nonbinary_Modular_Op.Expand_Modular_Op):
	Reimplement choice of which predefined type to use for the
	implementation of a predefined operation of a modular type with
	a non-power-of-two modulus.

2022-07-12  Justin Squirek  <squirek@adacore.com>

	* einfo.ads: Modify documentation for In_Use flag to include
	scope stack manipulation.
	* sem_ch8.adb (Use_One_Type): Add condition to return when
	attempting to detect redundant use_type_clauses in child units
	in certain cases.

2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>

	* restrict.ads (type ND_Entry): Add System_Child component.
	(Check_Restriction_No_Dependence_On_System): Declare.
	* restrict.adb (Global_Restriction_No_Tasking): Move around.
	(Violation_Of_No_Dependence): New procedure.
	(Check_Restriction_No_Dependence): Call Violation_Of_No_Dependence
	to report a violation.
	(Check_Restriction_No_Dependence_On_System): New procedure.
	(Set_Restriction_No_Dependenc): Set System_Child component if the
	unit is a child of System.
	* snames.ads-tmpl (Name_Arith_64): New package name.
	(Name_Arith_128): Likewise.
	(Name_Memory): Likewise.
	(Name_Stack_Checking): Likewise.
	* fe.h (Check_Restriction_No_Dependence_On_System): Declare.

2022-07-12  Bob Duff  <duff@adacore.com>

	* par.adb (P_Declarative_Items): New function to parse a
	sequence of declarative items.
	(P_Sequence_Of_Statements): Add Handled flag, to indicate
	whether to wrap the result in a block statement.
	* par-ch3.adb (P_Declarative_Item): Rename P_Declarative_Items
	to be P_Declarative_Item, because it really only parses a single
	declarative item, and to avoid conflict with the new
	P_Declarative_Items. Add In_Statements.  We keep the old
	error-recovery mechanisms in place when In_Statements is False.
	When True, we don't want to complain about statements, because
	we are parsing a sequence of statements.
	(P_Identifier_Declarations): If In_Statements, and we see what
	looks like a statement, we no longer give an error. We return to
	P_Sequence_Of_Statements with Done = True, so it can parse the
	statement.
	* par-ch5.adb (P_Sequence_Of_Statements): Call
	P_Declarative_Items to parse declarative items that appear in
	the statement list.  Remove error handling code that complained
	about such items.  Check some errors conservatively.  Wrap the
	result in a block statement when necessary.
	* par-ch11.adb (P_Handled_Sequence_Of_Statements): Pass
	Handled => True to P_Sequence_Of_Statements.
	* types.ads (No, Present): New functions for querying
	Source_Ptrs (equal, not equal No_Location).

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Fix range of iteration.

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Do not process expression of unknown restrictions.

2022-07-12  Vasiliy Fofanov  <fofanov@adacore.com>

	* makeusg.adb,
	doc/gnat_ugn/building_executable_programs_with_gnat.rst: Move -P
	to the top of switches list and make it clear that gnatmake
	passes the ball to gprbuild if -P is set.
	* gnat_ugn.texi: Regenerate.

2022-07-12  Bob Duff  <duff@adacore.com>

	* libgnat/g-socthi__vxworks.adb (C_Connect): Suppress new warning.

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Set_Boolean_Result): Simplify using
	Boolean_Literals.

2022-07-12  Yannick Moy  <moy@adacore.com>

	* errout.adb (Record_Compilation_Errors): Remove global
	variable.
	(Compilation_Errors): Simplify.
	(Initialize): Inline Reset_Warnings.
	(Reset_Warnings): Remove.
	* errout.ads (Reset_Warnings): Remove.
	(Compilation_Errors): Update comment.
	* gnat1drv.adb (Adjust_Global_Switches): Ignore all frontend
	warnings in GNATprove mode, except regarding elaboration and
	suspicious contracts.

2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.adb (Caller_Known_Size_Record): Make entry assertion
	more robust and add guard for null argument.  For protected
	types, invoke Caller_Known_Size_Record on
	Corresponding_Record_Type.
	(Needs_Secondary_Stack): Likewise.

2022-07-12  Doug Rupp  <rupp@adacore.com>

	* libgnat/system-vxworks7-ppc-rtp.ads: Remove
	* libgnat/system-vxworks7-x86-rtp.ads: Likewise.

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Analyze_Package_Instantiation): Remove dubious
	call to Set_Comes_From_Source.

2022-07-12  Bob Duff  <duff@adacore.com>

	* sem_ch5.adb (Check_Unreachable_Code): Refine heuristics.
	* sem_util.ads, sem_util.adb (Is_Static_Constant_Name): Remove
	this; instead we have a new function Is_Simple_Case in
	Sem_Ch5.Check_Unreachable_Code.

2022-07-12  Bob Duff  <duff@adacore.com>

	* gnatls.adb (Output_License_Information): Remove pragma
	No_Return; call sites deal with Exit_Program.
	* libgnat/g-socthi.adb (C_Connect): Suppress warning about
	unreachable code.
	* sem_ch5.adb (Check_Unreachable_Code): Special-case if
	statements with static conditions.  If we remove unreachable
	code (including the return statement) from a function, add
	"raise Program_Error", so we won't warn about missing returns.
	Remove Original_Node in test for N_Raise_Statement; it's not
	needed.  Remove test for CodePeer_Mode; if Operating_Mode =
	Generate_Code, then CodePeer_Mode can't be True.  Misc cleanup.
	Do not reuse Nxt variable for unrelated purpose (the usage in
	the Kill_Dead_Code loop is entirely local to the loop).
	* sem_ch6.adb: Add check for Is_Transfer. Misc cleanup.
	* sem_prag.adb: Minor.
	* sem_res.adb: Minor.
	* sem_util.adb: Minor cleanup.
	(Is_Trivial_Boolean): Move to nonnested place, so it can be
	called from elsewhere.
	(Is_Static_Constant_Boolean): New function.
	* sem_util.ads (Is_Trivial_Boolean): Export.
	(Is_Static_Constant_Boolean): New function.

2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-stchop.ads: Use a double underscore prefix for symbols.

2022-07-12  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Check_Expression_Function.Find_Constant): Add a
	check that a type that is referenced as the prefix of an
	attribute is fully declared.
	(Freeze_And_Append): Do not freeze the profile when freezing an
	expression function.
	(Freeze_Entity): When a tagged type is frozen, also freeze any
	primitive operations of the type that are expression functions.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not prevent
	freezing associated with an expression function body if the
	function is a dispatching op.

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch7.adb (Analyze_Package_Declaration): Check references to
	unset objects.

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Yield): Look at the entity kind,
	not at the declaration kind.

2022-07-12  Joffrey Huguet  <huguet@adacore.com>

	* libgnarl/a-reatim.ads, libgnat/a-cfdlli.ads,
	libgnat/a-cfhama.ads, libgnat/a-cfhase.ads,
	libgnat/a-cfinse.ads, libgnat/a-cfinve.ads,
	libgnat/a-cforma.ads, libgnat/a-cforse.ads,
	libgnat/a-chahan.ads, libgnat/a-cofove.ads,
	libgnat/a-cofuma.ads, libgnat/a-cofuse.ads,
	libgnat/a-cofuve.ads, libgnat/a-nbnbin.ads,
	libgnat/a-nbnbre.ads, libgnat/a-ngelfu.ads,
	libgnat/a-nlelfu.ads, libgnat/a-nllefu.ads,
	libgnat/a-nselfu.ads, libgnat/a-nuelfu.ads,
	libgnat/a-strbou.ads, libgnat/a-strfix.ads,
	libgnat/a-strmap.ads, libgnat/a-strunb.ads,
	libgnat/a-strunb__shared.ads,  libgnat/a-strsea.ads,
	libgnat/a-textio.ads, libgnat/a-tideio.ads,
	libgnat/a-tienio.ads, libgnat/a-tifiio.ads,
	libgnat/a-tiflio.ads, libgnat/a-tiinio.ads,
	libgnat/a-timoio.ads, libgnat/i-c.ads, libgnat/interfac.ads,
	libgnat/interfac__2020.ads, libgnat/s-atacco.ads,
	libgnat/s-stoele.ads: Annotate packages and subprograms with
	returning annotations.

2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>

	* rtsfind.ads (RE_Id): Remove RE_Str_Concat_Bounds_N values.
	(RE_Unit_Table): Remove RE_Str_Concat_Bounds_N entries.
	* libgnat/s-conca2.ads (Str_Concat_2): Adjust head comment.
	(Str_Concat_Bounds_2): Delete.
	* libgnat/s-conca2.adb (Str_Concat_2): Use the length of the last
	input to size the last assignment.
	(Str_Concat_Bounds_2): Delete.
	* libgnat/s-conca3.ads (Str_Concat_3): Adjust head comment.
	(Str_Concat_Bounds_3): Delete.
	* libgnat/s-conca3.adb (Str_Concat_3): Use the length of the last
	input to size the last assignment.
	(Str_Concat_Bounds_3): Delete.
	* libgnat/s-conca4.ads (Str_Concat_4): Adjust head comment.
	(Str_Concat_Bounds_4): Delete.
	* libgnat/s-conca4.adb (Str_Concat_4): Use the length of the last
	input to size the last assignment.
	(Str_Concat_Bounds_4): Delete.
	* libgnat/s-conca5.ads (Str_Concat_5): Adjust head comment.
	(Str_Concat_Bounds_5): Delete.
	* libgnat/s-conca5.adb (Str_Concat_5): Use the length of the last
	input to size the last assignment.
	(Str_Concat_Bounds_5): Delete.
	* libgnat/s-conca6.ads (Str_Concat_6): Adjust head comment.
	(Str_Concat_Bounds_6): Delete.
	* libgnat/s-conca6.adb (Str_Concat_6): Use the length of the last
	input to size the last assignment.
	(Str_Concat_Bounds_6): Delete.
	* libgnat/s-conca7.ads (Str_Concat_7): Adjust head comment.
	(Str_Concat_Bounds_7): Delete.
	* libgnat/s-conca7.adb (Str_Concat_7): Use the length of the last
	input to size the last assignment.
	(Str_Concat_Bounds_7): Delete.
	* libgnat/s-conca8.ads (Str_Concat_8): Adjust head comment.
	(Str_Concat_Bounds_8): Delete.
	* libgnat/s-conca8.adb (Str_Concat_8): Use the length of the last
	input to size the last assignment.
	(Str_Concat_Bounds_8): Delete.
	* libgnat/s-conca9.ads (Str_Concat_9): Adjust head comment.
	(Str_Concat_Bounds_9): Delete.
	* libgnat/s-conca9.adb (Str_Concat_9): Use the length of the last
	input to size the last assignment.
	(Str_Concat_Bounds_9): Delete.

2022-07-12  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use _Next and
	_Previous in the optimized expansion of "for ... of".  No longer
	need to check parameter profiles for these, because the
	leading-underscore names are unique.
	* libgnat/a-convec.ads (_Next, _Previous): Renamings of Next and
	Previous, to avoid namespace pollution.
	* libgnat/a-cbdlli.ads, libgnat/a-cbhama.ads,
	libgnat/a-cbhase.ads, libgnat/a-cbmutr.ads,
	libgnat/a-cborma.ads, libgnat/a-cborse.ads,
	libgnat/a-cdlili.ads, libgnat/a-cidlli.ads,
	libgnat/a-cihama.ads, libgnat/a-cihase.ads,
	libgnat/a-cimutr.ads, libgnat/a-ciorma.ads,
	libgnat/a-ciorse.ads, libgnat/a-cobove.ads,
	libgnat/a-cohama.ads, libgnat/a-cohase.ads,
	libgnat/a-coinve.ads, libgnat/a-comutr.ads,
	libgnat/a-coorma.ads, libgnat/a-coorse.ads: Likewise.  Also,
	remove duplicated comments -- refer to one comment about _Next,
	_Previous, Pseudo_Reference in libgnat/a-convec.ads. DRY.
	* scng.adb (Scan): Allow leading underscores in identifiers in
	the run-time library.
	* snames.ads-tmpl (Name_uNext, Name_uPrevious): New names with
	leading underscores.

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Check_Unreachable_Code): Extend suppression to
	calls with No_Return aspect, but narrow it to functions.
	* sem_res.adb (Resolve_Call): Warn about unreachable code after
	calls with No_Return.

2022-07-12  Bob Duff  <duff@adacore.com>

	* scans.ads: Fix obsolete comments about Tok_Special, and give
	Special_Character a predicate assuring it is one of the two
	characters used in preprocessing.
	* scng.ads: Clean up comments.
	* scng.adb: Clean up handling of Tok_Special.  Remove comment
	about '@' (target_name), which doesn't seem very helpful.
	Set_Special_Character will now blow up if given anything other
	than '#' and '$', because of the predicate on Special_Character;
	it's not clear why it used to say "when others => null;".
	Remove Comment_Is_Token, which is not used.
	* scn.ads: Remove commented-out use clause.  Remove redundant
	comment.
	* ali-util.adb: Use "is null" for do-nothing procedures.
	* gprep.adb (Post_Scan): Use "is null".

2022-07-12  Bob Duff  <duff@adacore.com>

	* libgnarl/s-solita.adb (Task_Termination_Handler_T): Ignore all
	exceptions propagated by Specific_Handler.
	* libgnarl/s-tassta.adb, libgnarl/s-taskin.ads: Minor.

2022-07-12  Marc Poulhiès  <poulhies@adacore.com>

	* sem.adb (Preanalyze): Suppress checks when not in GNATprove
	mode.
	* sem_res.adb (Preanalyze_And_Resolve): Add cross reference in
	comment to above procedure.
	* sinfo.ads: Typo fix in comment.

2022-07-12  Julien Bortolussi  <bortolussi@adacore.com>

	* libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Implementation
	files of the formal unbounded indefinite list.
	* Makefile.rtl, impunit.adb: Take into account the add of the
	new files.

2022-07-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_Variable): Remove excessive guard.

2022-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* gcc-interface/Make-lang.in (ada/generated/gnatvsn.ads):
	Simplify regular expression. The "interval expression",
	i.e. \{8\} is part of the POSIX regular expressions, so it
	should not be a problem for modern implementations of sed.

2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu): Update comment.

2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (simple_constant_p): Declare.
	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Strip
	the qualifiers from the type of a simple constant.
	(simple_constant_p): New predicate.
	* gcc-interface/trans.cc (node_is_atomic): Return true for objects
	with atomic type except for simple constants.
	(node_is_volatile_full_access): Return false for simple constants
	with VFA type.

2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Create a
	local constant holding the underlying GNAT type of the object.  Do
	not fiddle with the object size for an unconstrained array.

2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Constify a
	local variable and move a couple of others around.

2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_gimplify_expr) <SAVE_EXPR>: New case.

2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Function return mechanisms): New paragraph.

2022-07-06  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Is_Non_Preelaborable_Construct): Fix for
	deferred constants.

2022-07-06  Justin Squirek  <squirek@adacore.com>

	* libgnat/s-regpat.adb, libgnat/s-regpat.ads (Compile): Add a
	new defaulted parameter Error_When_Too_Small to trigger an
	error, if specified true, when Matcher is too small to hold the
	compiled regex program.

2022-07-06  Justin Squirek  <squirek@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): Add condition to
	avoid interpreting derived type components as candidates for
	selected components in preanalysis of inherited class
	conditions.

2022-07-06  Yannick Moy  <moy@adacore.com>

	* ghost.adb (Check_Ghost_Context): Delay checking for generic
	associations.
	(Check_Ghost_Context_In_Generic_Association): Perform ghost
	checking in analyzed generic associations.
	(Check_Ghost_Formal_Procedure_Or_Package): Check SPARK RM
	6.9(13-14) for formal procedures and packages.
	(Check_Ghost_Formal_Variable): Check SPARK RM 6.9(13-14) for
	variables.
	* ghost.ads: Declarations for the above.
	* sem_ch12.adb (Analyze_Associations): Apply delayed checking
	for generic associations.
	(Analyze_Formal_Object_Declaration): Same.
	(Analyze_Formal_Subprogram_Declaration): Same.
	(Instantiate_Formal_Package): Same.
	(Instantiate_Formal_Subprogram): Same.
	(Instantiate_Object): Same.  Copy ghost aspect to newly declared
	object for actual for IN formal object. Use new function
	Get_Enclosing_Deep_Object to retrieve root object.
	(Instantiate_Type): Copy ghost aspect to declared subtype for
	actual for formal type.
	* sem_prag.adb (Analyze_Pragma): Recognize new allowed
	declarations.
	* sem_util.adb (Copy_Ghost_Aspect): Copy the ghost aspect
	between nodes.
	(Get_Enclosing_Deep_Object): New function to return enclosing
	deep object (or root for reachable part).
	* sem_util.ads (Copy_Ghost_Aspect): Same.
	(Get_Enclosing_Deep_Object): Same.
	* libgnat/s-imageu.ads: Declare formal subprograms as ghost.
	* libgnat/s-valuei.ads: Same.
	* libgnat/s-valuti.ads: Same.

2022-07-06  Javier Miranda  <miranda@adacore.com>

	* sem_res.adb (Resolve_Type_Conversion): Code cleanup since the
	previous static check has been moved to Valid_Tagged_Conversion.
	(Valid_Tagged_Conversion): Fix the code checking conversion
	to/from interface types since incorrectly returns True when the
	parent type of the operand type (or the target type) is an
	interface type; add missing static checks on interface type
	conversions.

2022-07-06  Marc Poulhiès  <poulhies@adacore.com>

	* libgnat/s-secsta.ads (SS_Allocate): Add new Alignment
	parameter.
	(Memory_Alignment): Remove.
	* libgnat/s-secsta.adb (Align_Addr): New.
	(SS_Allocate): Add new Alignment parameter. Realign pointer if
	needed. Don't allocate anything for 0-sized allocations.
	* gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Add
	allocated object's alignment as last parameter to allocation
	invocation.

2022-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/g-socket.adb (Get_Address_Info): Reduce scope of the
	Found variable; avoid repeated assignment inside the loop.

2022-07-06  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl [arm,aarch64 vxworks7]: Remove rtp and kernel
	build macros and set an error variable if needed.
	[x86,x86_vxworks7]: Likewise.
	[ppc,ppc64]: Set an error variable if needed.
	(rts-err): New phony Makefile target.
	(setup-rts): Depend on rts-err.

2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Make_Allocator_For_BIP_Return): New local function.
	(Expand_N_Object_Declaration): Use it to build the three allocators
	for a Build-In-Place return with an unconstrained type.  Update the
	head comment after other recent changes.

2022-07-06  Doug Rupp  <rupp@adacore.com>

	* libgnat/system-vxworks7-e500-kernel.ads: Remove.
	* libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp.ads: Likewise.

2022-07-06  Justin Squirek  <squirek@adacore.com>

	* gnat_cuda.adb (Empty_CUDA_Global_Subprogram): Set
	Specification and Corresponding_Spec to match the original
	Kernel_Body.

2022-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Build_Static_Check_Helper_Call): Replace explicit
	call to Make_Unchecked_Type_Conversion with a call to
	Unchecked_Convert_To.
	* tbuild.adb (Unchecked_Convert_To): Fix whitespace.

2022-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_Actuals): Restore first sentence of a
	comment.

2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Expand_Record_Aggregate): Do not call
	Is_Full_Access_Aggregate here.
	* freeze.ads (Is_Full_Access_Aggregate): Delete.
	* freeze.adb (Is_Full_Access_Aggregate): Move to...
	(Freeze_Entity): Do not call Is_Full_Access_Aggregate here.
	* sem_aggr.adb (Is_Full_Access_Aggregate): ...here
	(Resolve_Aggregate): Call Is_Full_Access_Aggregate here.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(Warning Message Control): Update description of switch -gnatwj.
	* gnat_ugn.texi: Regenerate.
	* sem_ch10.adb (Analyze_With_Clause): Warn on WITH clauses for
	obsolete renamed units; in Ada 83 mode do not consider
	predefined renamings to be obsolete.

2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Make_Subtype_From_Expr): Do not set field to Empty.
	* sem_util.adb (Visit_Itype): Remove ??? comment.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Note_Possible_Modification): Revert a
	special-case for validity checks on Long_Float type.
	* snames.ads-tmpl (Name_Attr_Long_Float): Remove name added
	exclusively for the mentioned fix.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch6.adb (Set_Formal_Mode): Remove unnecessary setting of
	Never_Set_In_Source.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch6.adb (Process_Formals): Avoid repeated calls to
	Expression.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_code.adb (Setup_Asm_IO_Args): Remove guard against No_List.
	* par_sco.adb (Process_Decisions): Likewise.
	* sem_ch13.adb (Check_Component_List): Likewise.
	* sem_ch6.adb (FCL): Likewise.

2022-07-05  Doug Rupp  <rupp@adacore.com>

	* cstreams.c (__gnat_full_name) [QNX]: Remove block.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* osint.adb (Locate_File): Use Name_Find with a parameter and
	not with a global buffer.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Build_Init_Statements): Reuse Get_Pragma_Arg.
	* exp_prag.adb (Arg_N): Likewise.

2022-07-05  Yannick Moy  <moy@adacore.com>

	* ghost.adb (Is_OK_Ghost_Context): Detect ghost type inside object
	renaming.

2022-07-05  Bob Duff  <duff@adacore.com>

	* exp_ch7.adb: Change two constants Is_Protected_Body and
	Is_Prot_Body to be Is_Protected_Subp_Body; these are not true
	for protected bodies, but for protected subprogram bodies.
	(Expand_Cleanup_Actions): No need to search for
	Activation_Chain_Entity; just use Activation_Chain_Entity.
	* sem_ch8.adb (Find_Direct_Name): Use Entyp constant.
	* atree.adb, atree.ads, atree.h, nlists.adb, nlists.ads
	(Parent): Provide nonoverloaded versions of Parent, so that they
	can be easily found in the debugger.
	* debug_a.adb, debug_a.ads: Clarify that we're talking about the
	-gnatda switch; switches are case sensitive.  Print out the
	Chars field if appropriate, which makes it easier to find things
	in the output.
	(Debug_Output_Astring): Simplify. Also fix an off-by-one
	bug ("for I in Vbars'Length .." should have been "for I in
	Vbars'Length + 1 ..").  Before, it was printing Debug_A_Depth +
	1 '|' characters if Debug_A_Depth > Vbars'Length.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Remove unnecessary call to
	Analyze.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/g-socket.adb (Raise_Host_Error): Add No_Return aspect.
	(Raise_GAI_Error): Likewise.
	* libgnat/g-socket.ads (Raise_Socket_Error): Likewise.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Aggregate_Constraint_Checks): Fix whitespace;
	refactor repeated code; replace a ??? comment with an
	explanation based on the comment for the routine spec.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.ads (Note_Possible_Modification): Fix occurrence of
	May_Be_Modified in comment.
	* sem_warn.ads (Check_Unset_Reference): Fix occurrence of
	Not_Assigned in comment.

2022-07-05  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Take into account the
	possibility of homonyms.

2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Rewrite as a renaming
	for any nonaliased local object with nominal unconstrained subtype
	originally initialized with the result of a function call that has
	been rewritten as the dereference of a reference to the result.
	* sem_ch3.adb (Analyze_Object_Declaration): Do not do it here

2022-07-05  Arnaud Charlet  <charlet@adacore.com>

	* exp_imgv.adb (Build_Enumeration_Image_Tables): Also disable
	perfect hash in GNAT_Mode.
	* raise-gcc.c (__gnat_Unwind_RaiseException): Add support for
	disabling exception propagation.
	* sem_eval.adb (Compile_Time_Known_Value): Update comment and
	remove wrong call to Check_Error_Detected.
	* sem_prag.adb (Check_Loop_Pragma_Grouping, Analyze_Pragma):
	Remove exception propagation during bootstrap.

2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Expand_Array_Aggregate): Remove obsolete code.
	Delay the expansion of aggregates initializing return objects of
	build-in-place functions.
	* exp_ch3.ads (Ensure_Activation_Chain_And_Master): Delete.
	* exp_ch3.adb (Ensure_Activation_Chain_And_Master): Fold back to...
	(Expand_N_Object_Declaration): ...here.
	Perform the expansion of return objects of build-in-place functions
	here instead of...
	* exp_ch6.ads (Is_Build_In_Place_Return_Object): Declare.
	* exp_ch6.adb (Expand_N_Extended_Return_Statement): ...here.
	(Is_Build_In_Place_Result_Type): Alphabetize.
	(Is_Build_In_Place_Return_Object): New predicate.
	* exp_ch7.adb (Enclosing_Function): Delete.
	(Process_Object_Declaration): Tidy up handling of return objects.
	* sem_ch3.adb (Analyze_Object_Declaration): Do not decorate and
	freeze the actual type if it is the same as the nominal type.
	* sem_ch6.adb: Remove use and with clauses for Exp_Ch3.
	(Analyze_Function_Return): Analyze again all return objects.
	(Create_Extra_Formals): Do not force the definition of an Itype
	if the subprogram is a compilation unit.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* gnatls.adb (Corresponding_Sdep_Entry): Remove dead return
	statement in defensive path; there is another return statement
	for a normal execution of this routine, so rule Ada RM 6.5(5),
	which requires function to have at least one return statement is
	still satisfied.
	(Gnatls): Remove dead, call to nonreturning Exit_Program after
	Output_License_Information which itself does not return.
	* libgnat/a-exstat.adb (Bad_EO): Remove raise statement that was
	meant to please some ancient version of GNAT.
	* libgnat/g-awk.adb (Raise_With_Info): Likewise.
	* sem_attr.adb (Check_Reference): Remove dead return statement;
	rule Ada RM 6.5(5), which requires function to have at least one
	return statement is still satisfied.
	(Analyze_Attribute): Remove dead exit statement.
	(Check_Reference): Same as above.
	* sem_ch12.adb (Instantiate_Formal_Package): Remove dead raise
	statement; it was inconsistent with other calls to
	Abandon_Instantiation, which are not followed by a raise
	statement.
	* sem_prag.adb (Process_Convention): Remove dead defensive
	assignment.
	(Interrupt_State): Remove dead defensive exit statement.
	(Do_SPARK_Mode): Likewise.
	* sfn_scan.adb (Scan_String): Remove dead defensive assignment.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb, sem_prag.adb: Remove dead return statements
	after calls to Error_Attr, Error_Pragma, Error_Pragma_Arg and
	Placement_Error. All these calls raise exceptions that are
	handled to gently recover from errors.

2022-07-05  Doug Rupp  <rupp@adacore.com>

	* libgnat/system-vxworks-ppc-kernel.ads (Word_Size): Compute
	based on Standard'Word_Size.
	(Memory_Size): Compute based on Word_Size.
	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Move call to
	Set_Address_Taken so that it is executed when the prefix
	attribute is legal.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Check_Unreachable_Code): Avoid explicit use of
	Sloc; this should also help when we finally use Source_Span for
	prettier error messages.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Check_Unreachable_Code): Remove redundant guard;
	the call to Present wasn't needed either.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Block_Statement): Call to List_Length with
	No_List is safe and will return zero.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch6.adb (Check_Missing_Return): Add reference to an RM rule.

2022-07-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch6.adb (Check_Missing_Return): Remove outdated comment.

2022-07-05  Dmitriy Anisimkov  <anisimko@adacore.com>

	* adaint.h (convert_addresses): Remove function declaration.

2022-07-05  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl (*vxworks*): Remove most pre-vxworks7 code.
	* vxworks-arm-link.spec: Remove.
	* vxworks-e500-link.spec: Likewise.
	* vxworks-smp-arm-link.spec: Likewise.
	* vxworks-smp-e500-link.spec: Likewise.
	* vxworks-smp-x86-link.spec: Likewise.
	* libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp.ads: Likewise.
	* libgnat/system-vxworks-arm.ads: Likewise.
	* libgnat/system-vxworks-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp.ads: Likewise.

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

	* sem_disp.adb (Check_Dispatching_Call): Merge the two special cases
	where there are no controlling actuals but tag-indeternminate ones.

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

	* exp_disp.adb (Expand_Dispatching_Call): Fix detection of calls
	that are dispatching on tagged result.

2022-07-04  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl (ADA_EXCLUDE_SRCS): Add s-qnx.ads.

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

	* exp_ch3.adb (Expand_N_Object_Declaration) <OK_To_Rename_Ref>: New
	local function.
	<Rewrite_As_Renaming>: Change to a local variable whose value is
	computed once and generate a call to Finalize after this is done.
	Simplify the code creating the renaming at the end.

2022-07-04  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl (GCC_SPEC_FILES): Remove vxworks cert files.

2022-07-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Resolve_Attribute): Refactor duplicated code for
	Count and Index attributes.

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

	* checks.adb (Apply_Length_Check_On_Assignment): Return early if
	the Suppress_Assignment_Checks flag is set.
	(Selected_Range_Checks): Deal with conditional expressions.
	* exp_ch4.adb (Too_Large_Length_For_Array): New constant.
	(Expand_Concatenate): Use it in lieu of Too_Large_Max_Length.
	(Expand_N_If_Expression): If the result has a unidimensional array
	type but the dependent expressions have constrained subtypes with
	known bounds, create a static temporary on the stack with a subtype
	covering the result.
	(Get_First_Index_Bounds): Deal with string literals.
	* uintp.ads (Uint_256): New deferred constant.
	* sinfo.ads (Suppress_Assignment_Checks): Document new usage.

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

	* exp_ch3.adb (Expand_N_Object_Declaration.Rewrite_As_Renaming):
	Do not rewrite if the declaration has got constraints.
	* sinfo.ads (Case Expression Alternative): Fix typo.

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

	* exp_ch3.adb (Expand_N_Object_Declaration.Rewrite_As_Renaming):
	Be prepared for slices.
	* exp_ch4.adb (Get_First_Index_Bounds): New procedure.
	(Expand_Array_Comparison.Length_Less_Than_4): Call it.
	(Expand_Concatenate): Try to compute a maximum length for
	operands with variable length and a maximum total length at the
	end.  If the concatenation is dynamic, but a sensible maximum
	total length has been computed, use this length to create a
	static array subtype for the temporary and return a slice of it.

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

	* sem_ch3.adb (Check_Possible_Deferred_Completion): Delete
	Prev_Obj_Def formal parameter.  Reorganize code so that
	statically matching check is also performed in the case where
	the subtype given in the initial declaration is constrained and
	the subtype given in the completion is not.

2022-07-04  Bob Duff  <duff@adacore.com>

	* einfo-utils.ads, einfo-utils.adb: Add predicates on subtypes E
	and N.  Change some parameters to use the unpredicated subtypes,
	because they sometimes return e.g. Empty.  Note that N_Entity_Id
	has a predicate; Entity_Id does not.
	* exp_tss.adb (Base_Init_Proc): Use Entity_Id instead of E,
	because otherwise we fail the predicate. We shouldn't be
	referring to single-letter names from far away anyway.
	* sem_aux.adb (Is_Derived_Type): Likewise.
	* sem_res.adb (Is_Definite_Access_Type): Use N_Entity_Id for
	predicate.
	* types.ads (Entity_Id): Add comment explaining the difference
	between Entity_Id and N_Entity_Id.

2022-07-04  Justin Squirek  <squirek@adacore.com>

	* exp_util.adb (Remove_Side_Effects): Combine identical
	branches.
	* sem_attr.adb (Analyze_Attribute): Combine identical cases
	Attribute_Has_Same_Storage and Attribute_Overlaps_Storage.
	* sem_prag.adb (Check_Role): Combine E_Out_Parameter case with
	general case for parameters.
	* sem_util.adb (Accessibility_Level): Combine identical
	branches.
	* sprint.adb (Sprint_Node_Actual): Combine cases for
	N_Real_Range_Specification and N_Signed_Integer_Type_Definition.

2022-07-04  Justin Squirek  <squirek@adacore.com>

	* libgnat/s-os_lib.adb (Quote_Argument): Modify the result
	buffer size calculation to handle the case where Arg'Length is
	1.

2022-07-04  Bob Duff  <duff@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): Generate a new
	subtype when Is_Constr_Subt_For_UN_Aliased is True, so the
	Is_Constr_Subt_For_U_Nominal flag will not be set on the
	preexisting subtype.
	* sem_attr.adb, sem_ch3.adb: Minor.

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

	* debug.adb (d.9): Remove usage.
	* exp_ch6.adb (Expand_Simple_Function_Return): Remove redundant
	test on Debug_Flag_Dot_L.
	(Is_Build_In_Place_Result_Type): Return false for nonlimited types.
	(Is_Build_In_Place_Function): Tidy up and remove redundant test on
	Debug_Flag_Dot_L.

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

	* exp_ch3.adb (Expand_N_Object_Declaration): Don't adjust the object
	if the expression is a function call.
	<Rewrite_As_Renaming>: Return true if the object needs finalization
	and is initialized  with the result of a function call returned on
	the secondary stack.
	* exp_ch6.adb (Expand_Ctrl_Function_Call): Add Use_Sec_Stack boolean
	parameter.  Early return if the parent is an object declaration and
	Use_Sec_Stack is false.
	(Expand_Call_Helper): Adjust call to Expand_Ctrl_Function_Call.
	* exp_ch7.adb (Find_Last_Init): Be prepared for initialization still
	present in the object declaration.
	* sem_ch3.adb (Analyze_Object_Declaration): Call the predicates
	Needs_Secondary_Stack and Needs_Finalization to guard the renaming
	optimization.

2022-07-04  Bob Duff  <duff@adacore.com>

	* libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
	libgnat/a-cihase.ads, libgnat/a-ciorse.ads,
	libgnat/a-cohase.ads, libgnat/a-coorse.ads (Key): New function
	that takes a Container parameter, implemented as an expression
	function, so it is self explanatory (doesn't need a comment).

2022-07-04  Vasiliy Fofanov  <fofanov@adacore.com>

	* doc/gnat_rm/the_gnat_library.rst: Fix length of title
	underlines.

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

	* sem_ch4.adb (Analyze_Allocator): After calling Insert_Action
	to insert a subtype declaration associated with an allocator,
	the subtype declaration will usually be analyzed. But not
	always. Add an explicit call to Preanalyze to cope with the
	unusual case. The subtype declaration must be at least
	preanalyzed before the call to Sem_Ch3.Process_Subtype a little
	while later, during which we analyze an identifier that refers
	to the subtype.

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

	* sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
	generate a warning if the expression in question is an assertion
	expression, or a subexpression thereof. But do call
	Test_Comparison so that it can generate warnings for the cases
	that it generates warnings for.
	* sem_prag.ads: Modify Assertion_Expression_Pragma constant so
	that the predicate Sem_Util.In_Assertion_Expression_Pragma
	returns True for the expression of a Compile_Time_Error pragma.

2022-07-04  Julien Bortolussi  <bortolussi@adacore.com>

	* doc/gnat_rm/the_gnat_library.rst: Add the new entry.
	* gnat_rm.texi: Regenerate.

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

	* sem_res.adb (Resolve_Comparison_Op): Deal with ambiguous operands
	in all cases.
	(Resolve_Equality_Op): Likewise, except for the case of the implicit
	inequality operator created for a user-defined operator that is not
	an intrinsic subprogram.

2022-07-04  Bob Duff  <duff@adacore.com>

	* libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
	libgnat/a-cborse.adb, libgnat/a-cborse.ads,
	libgnat/a-cihase.adb, libgnat/a-cihase.ads,
	libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
	libgnat/a-cohase.adb, libgnat/a-cohase.ads,
	libgnat/a-conhel.adb, libgnat/a-conhel.ads,
	libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add Has_Element,
	Element, Query_Element, and Next subprograms that take a Set
	parameter. Add Tampering_With_Cursors_Prohibited function. These
	are all new in Ada 2022.

2022-07-04  Claire Dross  <dross@adacore.com>

	* doc/gnat_rm/the_gnat_library.rst: Functional vectors, sets,
	and maps are now controlled.
	* gnat_rm.texi: Regenerate.

2022-07-04  Claire Dross  <dross@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(Debugging and Assertion Control): Add GNAT specific assertion
	pragmas to the equivalent Assertion_Policy for the -gnata
	option.
	* gnat_ugn.texi: Regenerate.

2022-07-04  Justin Squirek  <squirek@adacore.com>

	* sem_disp.adb (Most_Descendant_Use_Clause): Remove call to
	deprecated Is_Internal.
	* sem_util.adb (Innermost_Master_Scope_Depth): Use
	Find_Enclosing_Scope instead of Nearest_Dynamic_Scope to avoid
	cases where relevant scopes get skipped leading to an incorrect
	scope depth calculation.

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

	* exp_ch6.adb (Build_In_Place_Formal): Also compute Returns_By_Ref
	for the function if the extra formals were not built initially.

2022-07-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Resolve_Iterable_Operation): Add guard to
	prevent crash when the examined function has no formal
	parameters and Etype is called on Empty entity.

2022-07-04  Julien Bortolussi  <bortolussi@adacore.com>

	* libgnat/a-cfinse.adb, libgnat/a-cfinse.ads: Implementation
	files of the sequence.
	* Makefile.rtl, impunit.adb: Take into account the add of the
	new files

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

	* doc/gnat_rm/implementation_defined_pragmas.rst (Pure_Function):
	Fix ambiguous wording about context dependence.
	* gnat_rm.texi: Regenerate.

2022-06-02  David Malcolm  <dmalcolm@redhat.com>

	* gcc-interface/misc.cc (gnat_get_sarif_source_language): New.
	(LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): Redefine.

2022-06-02  Pierre-Marie de Rodat  <derodat@adacore.com>

	* gcc-interface/gigi.h: Update copyright notice.
	* gcc-interface/lang-specs.h: Likewise.
	* gcc-interface/utils.cc: Likewise.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (enum standard_datatypes): Remove values
	for the SJLJ exception mechanism.
	(jmpbuf_type): Delete.
	(jmpbuf_ptr_type): Likewise.
	(get_jmpbuf_decl): Likewise.
	(set_jmpbuf_decl): Likewise.
	(get_excptr_decl): Likewise.
	(not_handled_by_others_decl): Likewise.
	(setjmp_decl): Likewise.
	(update_setjmp_buf_decl): Likewise.
	(raise_nodefer_decl): Likewise.
	(set_block_jmpbuf_decl): Likewise.
	(get_block_jmpbuf_decl): Likewise.
	* gcc-interface/trans.cc (gigi): Delete dead code.
	* gcc-interface/utils.cc (gnat_binding_level): Remove JMPBUF_DECL.
	(gnat_pushlevel): Do not clear it.
	(set_block_jmpbuf_decl): Delete.
	(get_block_jmpbuf_decl): Likewise.

2022-06-02  Ghjuvan Lacambre  <lacambre@adacore.com>

	* gcc-interface/decl.cc (warn_on_field_placement): Add insertion
	character '.q' to warning string.

2022-06-02  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Makefile.in (gnatlib-shared-default): Add
	-fno-lto.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity): Do not check the
	scope of anonymous access Itypes.
	* gcc-interface/trans.cc (Identifier_to_gnu): Do not translate
	the return type of a subprogram here.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Expand_N_Package_Body): Build static dispatch
	tables only for units that are not compilation units, unless
	they are generic instances.  Do not push a scope for this.
	(Expand_N_Package_Declaration): Build static dispatch tables
	only for units that are both not compilation units and generic
	instances.
	* exp_disp.adb (Build_Static_Dispatch_Tables): Remove redundant
	early return.  Push a scope for package bodies.
	* sem_ch10.adb: Add with and use clauses for Exp_Disp.
	(Analyze_Compilation_Unit): Build static dispatch tables here.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Clear the Is_Public
	flag on thunks.

2022-06-02  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch13.adb, exp_ch5.adb, exp_ch9.adb, exp_strm.adb,
	sem_ch10.adb, sem_ch13.adb, sem_ch5.adb, sem_ch6.adb,
	sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb,
	sem_util.adb: Remove checks for the missing list before
	iterating with First/Next; reindent code and refill comments.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Has_Controlling_Result): Document new usage.
	(Is_Thunk): Document secondary stack thunks.
	(Returns_By_Ref): Adjust.
	* exp_ch6.adb (Caller_Known_Size): Return true for tagged types.
	(Expand_N_Extended_Return_Statement): Do not call Set_By_Ref.
	(Expand_Simple_Function_Return): For a BIP return with an Alloc_Form
	parameter, mark the node as returning on the secondary stack.
	Replace call to Is_Limited_Interface with Is_Limited_View.  Deal wit
	secondary stack thunks.  Do not call Set_By_Ref.  Optimize the case
	of a call to a function whose type also needs finalization.
	(Needs_BIP_Task_Actuals): Replace Thunk_Entity with Thunk_Target.
	(Needs_BIP_Finalization_Master): Cosmetic fixes.
	(Needs_BIP_Alloc_Form): Check No_Secondary_Stack restriction and
	return true for tagged types.
	* exp_ch7.adb (Transient Scope Management): Update description.
	* exp_disp.adb (Expand_Dispatching_Call): Always set Returns_By_Ref
	on designated type if the call is dispatching on result.  Tidy up.
	(Expand_Interface_Thunk): Change type of Thunk_Code from Node_Id to
	List_Id.  Change type of local variables from Node_Id to Entity_Id.
	Propagate Aliased_Present flag to create the formals and explicitly
	set Has_Controlling_Result to False.  Build a secondary stack thunk
	if necessary in the function case.
	(Expand_Secondary_Stack_Thunk): New function.
	(Make_Secondary_DT): Build secondary stack thunks if necessary.
	(Make_DT): Likewise.
	(Register_Predefined_Primitive): Likewise.
	(Register_Primitive): Likewise.
	* exp_util.ads (Is_Secondary_Stack_Thunk): Declare.
	(Thunk_Target): Likewise.
	* exp_util.adb (Is_Secondary_Stack_Thunk): New function.
	(Thunk_Target): Likewise.
	* fe.h (Is_Secondary_Stack_Thunk): Declare.
	(Thunk_Target): Likewise.
	* gen_il-fields.ads (Opt_Field_Enum): Remove By_Ref.
	* gen_il-gen-gen_nodes.adb (N_Simple_Return_Statement): Likewise.
	(N_Extended_Return_Statement): Likewise.
	* sem_ch6.adb (Analyze_Subprogram_Specification): Skip check for
	abstract return type in the thunk case.
	(Create_Extra_Formals): Replace Thunk_Entity with Thunk_Target.
	* sem_disp.adb (Check_Controlling_Formals): Skip in the thunk case.
	* sem_util.adb: Add use and with clauses for Exp_Ch6.
	(Compute_Returns_By_Ref): Do not process procedures and only set
	the flag for direct return by reference.
	(Needs_Secondary_Stack): Do not return true for specific tagged
	types and adjust comments accordingly.
	* sinfo.ads (By_Ref): Delete.
	(N_Simple_Return_Statement): Remove By_Ref.
	(N_Extended_Return_Statement): Likewise.
	* gcc-interface/ada-tree.h (TYPE_RETURN_UNCONSTRAINED_P): Delete.
	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Do not use it.
	Return by direct reference if the return type needs the secondary
	stack as well as for secondary stack thunks.
	* gcc-interface/gigi.h (fntype_same_flags_p): Remove parameter.
	* gcc-interface/misc.cc (gnat_type_hash_eq): Adjust to above change.
	* gcc-interface/trans.cc (finalize_nrv): Replace test on
	TYPE_RETURN_UNCONSTRAINED_P with TYPE_RETURN_BY_DIRECT_REF_P.
	(Subprogram_Body_to_gnu): Do not call maybe_make_gnu_thunk for
	secondary stack thunks.
	(Call_to_gnu): Do not test TYPE_RETURN_UNCONSTRAINED_P.
	(gnat_to_gnu) <N_Simple_Return_Statement>: In the return by direct
	reference case, test for the presence of Storage_Pool on the node
	to build an allocator.
	(maybe_make_gnu_thunk): Deal with Thunk_Entity and Thunk_Target.
	* gcc-interface/utils.cc (fntype_same_flags_p): Remove parameter.

2022-06-02  Marc Poulhiès  <poulhies@adacore.com>

	* einfo.ads: Fix reference to Global_Entity_Suppress and
	Local_Entity_Suppress variable in the comments.
	* sem.ads: Likewise.
	* sem_prag.adb: Likewise.

2022-06-02  Claire Dross  <dross@adacore.com>

	* libgnat/s-aridou.adb: Use Always_Return instead of Terminating
	to annotate termination for GNATprove.
	* libgnat/s-arit32.adb: Idem.
	* libgnat/s-spcuop.ads: Idem.

2022-06-02  Julien Bortolussi  <bortolussi@adacore.com>

	* libgnat/a-cofuse.ads, libgnat/a-cofuse.adb,
	libgnat/a-cofuma.ads, libgnat/a-cofuma.adb: Make Length and
	Num_Overlaps return Big_Natural.
	* libgnat/a-cforse.ads, libgnat/a-cforse.adb,
	libgnat/a-cforma.adb, libgnat/a-cfhase.ads,
	libgnat/a-cfhase.adb, libgnat/a-cfhama.adb,
	libgnat/a-cfdlli.adb: Adapt code to handle Big_Integers instead
	of Count_Type.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Init_Secondary_Tags.Initialize_Tag): Initialize the
	Offset_Func component by means of 'Unrestricted_Access.

2022-06-02  Ghjuvan Lacambre  <lacambre@adacore.com>

	* errout.adb (Write_JSON_Span): Add subprogram name to emitted
	JSON.

2022-06-02  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch7.adb (Set_Referencer_Of_Non_Subprograms): New local
	procedure, used for code refactoring. Also take into account
	Inline_Always pragma when deciding to make a symbol public for
	C generation.

2022-06-02  Yannick Moy  <moy@adacore.com>

	* atree.adb (New_Copy): Reset flags related to ghost entities
	before marking the new node.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Move
	procedure to...
	* exp_disp.ads (Expand_Interface_Thunk): Move declaration to...
	(Register_Predefined_Primitive): Declare.
	* exp_disp.adb (Expand_Interface_Thunk): ...here.
	(Register_Predefined_Primitive): ...here and change into a function
	returning List_Id.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Expand_Freeze_Record_Type): Adjust comment.
	(Expand_N_Object_Declaration): Do not build static dispatch tables.
	* exp_disp.adb (Make_And_Insert_Dispatch_Table): New procedure.
	(Build_Static_Dispatch_Tables): Call it to build the dispatch tables
	and wrap them in the Actions list of a freeze node.

2022-06-02  Doug Rupp  <rupp@adacore.com>

	* libgnat/system-vxworks7-arm.ads (Support_Atomic_Primitives):
	Set True.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-aarch64.ads: Likewise.
	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise:

2022-06-02  Javier Miranda  <miranda@adacore.com>

	* libgnat/g-dyntab.ads (Table_Type): Update documentation.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Check_Expression_Function.Find_Constant): Make test
	for deferred constants more robust.

2022-06-02  Joffrey Huguet  <huguet@adacore.com>

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

2022-06-02  Yannick Moy  <moy@adacore.com>

	* sem_ch2.adb (Analyze_Identifier): Add checking for ghost
	context.
	* sem_ch5.adb (Analyze_Implicit_Label_Declaration): Treat
	implicit labels like other entities by setting their ghost
	status according to context.
	* ghost.adb (Check_Ghost_Context): Adapt checking.

2022-06-02  Joffrey Huguet  <huguet@adacore.com>

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

2022-06-02  Yannick Moy  <moy@adacore.com>

	* sem_ch5.adb (Analyze_Label_Entity): Remove body.
	* sem_ch5.ads (Analyze_Label_Entity): Remove spec.

2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.adb (Propagate_DIC_Attributes): Add ??? comment.
	(Propagate_Invariant_Attributes): Likewise.  Propagate the
	Has_Inheritable_Invariants and Has_Inherited_Invariants to
	the base type of the target type.

2022-06-02  Doug Rupp  <rupp@adacore.com>

	* libgnat/system-linux-arm.ads (Memory_Size): Compute based on
	Word_Size.

2022-06-02  Doug Rupp  <rupp@adacore.com>

	* libgnat/system-vxworks7-aarch64-rtp-smp.ads (Word_Size):
	Compute based on Standard'Word_Size. (Memory_Size): Compute
	based on Word_Size.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp.ads: Likewise.

2022-06-02  Justin Squirek  <squirek@adacore.com>

	* gnatbind.adb (Gnatbind): Add initialize call for Uintp
	* gnatls.adb (Gnatls): Likewise.
	* gprep.adb (Gnatprep): Likewise.
	* make.adb (Initialize): Likewise.

2022-06-02  Claire Dross  <dross@adacore.com>

	* libgnat/a-cfinve.ads (Element): Change the type of the
	Position parameter to Extended_Index.
	* libgnat/a-cfinve.adb (Element): Idem.
	* libgnat/a-cofove.ads (Element): Idem.
	* libgnat/a-cofove.adb (Element): Idem.

2022-06-02  Joffrey Huguet  <huguet@adacore.com>

	* libgnat/s-atacco.ads (To_Pointer): Add Global => null.
	(To_Address): Add SPARK_Mode => Off.

2022-06-02  Joffrey Huguet  <huguet@adacore.com>

	* libgnat/i-cstrin.ads (To_Chars_Ptr): Add SPARK_Mode => Off.
	(Free): Likewise.
	(New_Char_Array): Add global contracts and Volatile attribute.
	(New_String): Likewise.
	(Value, Strlen, Update): Add global contracts and preconditions.
	* libgnat/i-cstrin.adb: Add SPARK_Mode => Off to the package
	body.

2022-06-01  Yannick Moy  <moy@adacore.com>

	* contracts.adb (Check_Type_Or_Object_External_Properties): Check
	the validity of combinations only when No_Caching is not used.
	* sem_prag.adb (Analyze_External_Property_In_Decl_Part): Check
	valid combinations with No_Caching.

2022-06-01  Doug Rupp  <rupp@adacore.com>

	* libgnat/system-vxworks7-aarch64.ads (Word_Size): Compute
	based on Standard'Word_Size. (Memory_Size): Compute based
	on Word_Size.
	* libgnat/system-vxworks7-arm.ads: Likewise.
	* libgnat/system-vxworks7-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.

2022-06-01  Doug Rupp  <rupp@adacore.com>

	* libgnat/system-qnx-arm.ads (Memory_Size): Compute based on
	Word_Size.

2022-06-01  Piotr Trojanek  <trojanek@adacore.com>

	* par-util.adb (Ignore): Add missing space to message string.

2022-06-01  Yannick Moy  <moy@adacore.com>

	* sem_prag.ads (Assertion_Expression_Pragmas): Fix value for
	pragma Subprogram_Variant.

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

	* exp_ch6.adb (Caller_Known_Size): Invoke Needs_Secondary_Stack in
	lieu of Returns_On_Secondary_Stack.
	(Expand_Call_Helper): Likewise.
	(Expand_Simple_Function_Return): Likewise.
	(Needs_BIP_Alloc_Form): Likewise.
	* exp_ch7.adb (Wrap_Transient_Declaration): Likewise.
	* sem_res.adb (Resolve_Call): Likewise.
	(Resolve_Entry_Call): Likewise.
	* sem_util.ads (Returns_On_Secondary_Stack): Rename into...
	(Needs_Secondary_Stack): ...this.
	* sem_util.adb (Returns_On_Secondary_Stack): Rename into...
	(Needs_Secondary_Stack): ...this.
	* fe.h (Returns_On_Secondary_Stack): Delete.
	(Needs_Secondary_Stack): New function.
	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call
	to Returns_On_Secondary_Stack with Needs_Secondary_Stack.

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

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): For the case where
	there is no previous declaration, freeze the body entity only after
	it has been processed as a new overloaded name.
	Use Was_Expression_Function to recognize expression functions.
	* sem_disp.adb (Check_Dispatching_Operation): Do not require a body
	which is the last primitive to be frozen here.

2022-06-01  Julien Bortolussi  <bortolussi@adacore.com>

	* libgnat/a-cfdlli.adb ("="): Make the function properly loop
	over the right list.

2022-06-01  Marc Poulhiès  <poulhies@adacore.com>

	* checks.adb (Apply_Predicate_Check): Refine condition for
	applying optimization.
	* sem_ch3.adb (Analyze_Component_Declaration): Adjust calls to
	Should_Build_Subtype.
	(Analyze_Object_Declaration): Likewise.
	(Should_Build_Subtype): Rename/move to ...
	* sem_util.ads (Build_Default_Subtype_OK): ... this.
	* sem_util.adb (Build_Default_Subtype_OK): Moved from
	sem_ch3.adb.

2022-06-01  Doug Rupp  <rupp@adacore.com>

	* init.c (__gnat_adjust_context_for_raise) [QNX][__thumb2__]: Bump
	the pc an extra byte.

2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Document new behavior.
	* errout.adb (Write_JSON_Location): Output absolute paths when
	needed.
	* switch-c.adb (Scan_Front_End_Switches): Update -gnatef
	comment.
	* usage.adb (Usage): Update description of -gnatef.
	* gnat_ugn.texi: Regenerate.

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

	* contracts.adb (Build_Postconditions_Procedure): Set Is_Inlined
	unconditionnally on the procedure entity.

2022-06-01  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Constrain_Access): Propagate null-exclusion flag
	from parent type.

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

	* sem_ch5.adb (Analyze_Loop_Statement): Add a comment about
	a finalization issue.

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

	* exp_ch6.adb (Caller_Known_Size): Call Returns_On_Secondary_Stack
	instead of Requires_Transient_Scope and tidy up.
	(Needs_BIP_Alloc_Form): Likewise.
	* exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Also return
	true if the build-in-place function call has no BIPalloc parameter.
	(Is_Finalizable_Transient): Remove redundant test.

2022-06-01  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst: Note that hardening
	features are experimental.
	* gnat_rm.texi: Regenerate.

2022-06-01  Steve Baird  <baird@adacore.com>

	* exp_ch3.adb (Make_Controlling_Function_Wrappers): Set the
	Corresponding_Spec field of a wrapper subprogram body before
	analyzing the subprogram body; the field will be set (again)
	during analysis, but we need it to be set earlier.
	* exp_ch13.adb (Expand_N_Freeze_Entity): Add wrapper subprogram
	bodies to the list of declarations for which we do not want to
	suppress checks.

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

	* sem_util.adb (Indirect_Temp_Needed): Adjust reference in comment.

2022-06-01  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl (GNATLIB_SHARED): Revert disablement for arm-qnx.

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

	* sem_util.adb
	(Returns_On_Secondary_Stack.Caller_Known_Size_Record): Directly
	check the dependence on discriminants for the variant part, if
	any, instead of calling the Is_Definite_Subtype predicate.

2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_warn.adb (Warn_On_Unreferenced_Entity): Fix warning tag.

2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_warn.adb (Check_References): Adjust conditions under which
	warning messages should be emitted and their tags as well.

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

	* exp_disp.ads (Expand_Interface_Thunk): Change type of Prim.
	* exp_disp.adb (Expand_Interface_Thunk): Declare Is_Predef_Op
	earlier, do not initialize Iface_Formal, use No idiom and tweaks
	comments.
	(Register_Primitive): Declare L earlier and tweak comments.
	* sem_disp.adb (Check_Dispatching_Operation): Move tests out of
	loop.

2022-06-01  Steve Baird  <baird@adacore.com>

	* exp_ch3.ads: Replace visible Build_Discr_Checking_Funcs (which
	did not need to be visible - it was not referenced outside this
	package) with Build_Or_Copy_Discr_Checking_Funcs.
	* exp_ch3.adb: Refactor existing code into 3 procedures -
	Build_Discr_Checking_Funcs, Copy_Discr_Checking_Funcs, and
	Build_Or_Copy_Discr_Checking_Funcs. This refactoring is intended
	to be semantics-preserving.
	* exp_ch4.adb (Expand_N_Selected_Component): Detect case where a
	call should be generated to the Discriminant_Checking_Func for
	the component in question, but that subprogram does not yet
	exist.
	* sem_ch13.adb (Freeze_Entity_Checks): Immediately before
	calling Build_Predicate_Function, add a call to
	Exp_Ch3.Build_Or_Copy_Discr_Checking_Funcs in order to ensure
	that Discriminant_Checking_Func attributes are already set when
	Build_Predicate_Function is called.
	* sem_ch6.adb (Analyze_Expression_Function): If the expression
	of a static expression function has been transformed into an
	N_Raise_xxx_Error node, then we need to copy the original
	expression in order to check the requirement that the expression
	must be a potentially static expression. We also want to set
	aside a copy the untransformed expression for later use in
	checking calls to the expression function via
	Inline_Static_Function_Call.  So introduce a new function,
	Make_Expr_Copy, for use in these situations.
	* sem_res.adb (Preanalyze_And_Resolve): When analyzing certain
	expressions (e.g., a default parameter expression in a
	subprogram declaration) we want to suppress checks. However, we
	do not want to suppress checks for the expression of an
	expression function.

2022-06-01  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): For each
	subprogram found, assert that the variable is Empty, so we can
	detect bugs where we find two or more things with the same name.
	Without this patch, that bug would happen when we add the new
	Next procedure.  For Step, make sure we pick the right one, by
	checking name and number of parameters.  For Get_Element_Access,
	check that we're picking a function.  That's not really
	necessary, because there is no procedure with that name, but it
	seems cleaner this way.
	* rtsfind.ads: Minor comment improvement. It seems kind of odd
	to say "under no circumstances", and then immediately contradict
	that with "The one exception is...".

2022-06-01  Doug Rupp  <rupp@adacore.com>

	* init.c (QNX): __gnat_adjust_context_for_raise: New
	implementation for arm-qnx.

2022-06-01  Julien Bortolussi  <bortolussi@adacore.com>

	* libgnat/a-cofuba.ads, libgnat/a-cofuba.adb: Add reference
	counting.

2022-06-01  Yannick Moy  <moy@adacore.com>

	* sem_ch8.adb (Use_One_Package): Possibly warn.
	* sem_util.adb (Enter_Name): Factor out warning on hidden entity.
	(Warn_On_Hiding_Entity): Extract warning logic from Enter_Name and
	generalize it to be applied also on use_clause.
	* sem_util.ads (Warn_On_Hiding_Entity): Add new procedure.

2022-06-01  Yannick Moy  <moy@adacore.com>

	* par-ch3.adb (P_Known_Discriminant_Part_Opt): Reword error
	message to benefit from existing codefix.
	(P_Record_Definition): Detect out-of-order keywords in record
	definition and issue appropriate messages. Other cases are
	already caught at appropriate places.

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

	* exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Put
	the actions into the Actions field of the freeze node instead of
	inserting them after it.

2022-06-01  Marc Poulhiès  <poulhies@adacore.com>

	* sinfo.ads: Add inline documention for Is_Parenthesis_Aggregate
	and Is_Enum_Array_Aggregate.

2022-06-01  Bob Duff  <duff@adacore.com>

	* einfo-utils.adb (Set_Convention): Call Set_Convention
	recursively, so that Set_Can_Use_Internal_Rep is called (if
	appropriate) on the anonymous access type of the object, and its
	designated subprogram type.
	* sem_ch3.adb (Access_Definition): Remove redundant call to
	Set_Can_Use_Internal_Rep.

2022-06-01  Bob Duff  <duff@adacore.com>

	* exp_ch4.adb (Expand_N_In): Do not warn in the above-mentioned
	cases.
	* fe.h (Assume_No_Invalid_Values): Remove from fe.h, because
	this is not used in gigi.
	* opt.ads (Assume_No_Invalid_Values): Improve the comment. We
	don't need to "clearly prove"; we can just "prove". Remove the
	comment about fe.h, which is no longer true.

2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* erroutc.adb (Get_Warning_Option): Don't consider `?` as a
	valid option switch.

2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* erroutc.ads (Get_Warning_Option): New function returning the
	option responsible for a warning if it exists.
	* erroutc.adb (Get_Warning_Option): Likewise.
	(Get_Warning_Tag): Rely on Get_Warning_Option when possible.
	* errout.adb (Output_JSON_Message): Emit option field.

2022-05-30  Julien Bortolussi  <bortolussi@adacore.com>

	* libgnat/a-cfdlli.ads (Insert): Remove the duplication.

2022-05-30  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Check_Subprogram_Variant): Ignore structural
	variants.

2022-05-30  Piotr Trojanek  <trojanek@adacore.com>

	* osint.adb (Locate_File): Change variable to constant and
	initialize it by concatenation of directory, file name and NUL.

2022-05-30  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_advice.rst (Packed Types): Remove
	duplicated and wrongly placed paragraph.
	* gnat_rm.texi: Regenerate.

2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* inline.adb (Check_Package_Body_For_Inlining): Add insertion
	character.

2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* freeze.adb (Warn_Overlay): Add 'o' insertion character.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Likewise.
	* sem_util.adb (Note_Possible_Modifications): Likewise.

2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_warn.adb (Warn_On_Useless_Assignment): Fix insertion
	character.

2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension):
	Fix insertion character.

2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_elab.adb (Process_Conditional_ABE_Access_Taken): Add '.f'
	insertion characters.

2022-05-30  Piotr Trojanek  <trojanek@adacore.com>

	* lib-xref.ads (Deferred_Reference_Entry, Defer_Reference,
	Process_Deferred_References, Has_Deferred_Reference): Remove
	client API.
	* lib-xref.adb (Deferred_References, Defer_Reference,
	Has_Deferred_Reference, Process_Deferred_References): Remove
	implementation.
	* frontend.adb, sem_ch11.adb, sem_ch5.adb, sem_res.adb,
	sem_util.adb, sem_warn.adb: Remove uses of Deferred_References.

2022-05-30  Bob Duff  <duff@adacore.com>

	* exp_ch7.adb (Wrap_HSS_In_Block): Do not create a new block in
	the case of function bodies. We include all subprogram bodies,
	because it's harmless for procedures. We cannot easily avoid
	creating this block in ALL cases, because some transformations
	of (e.g.) task bodies end up moving some code such that the
	wrong exception handlers apply to that code.
	(Build_Finalizer_Call): Remove code for creating a new block.
	This was unreachable code, given that Wrap_HSS_In_Block has
	already done that, but with the above change to
	Wrap_HSS_In_Block, this code becomes reachable, and triggers
	essentially the same bug.
	* exp_ch7.ads: Adjust comment.

2022-05-30  Justin Squirek  <squirek@adacore.com>

	* par-ch6.adb (P_Formal_Part): Set Aspect_Specifications on all
	formals instead of just the last in a formal id list.
	* sem_ch6.adb (Analyze_Null_Procedure): Mark expanded null
	generic procedures as trivial in order to avoid spurious
	unreferenced warnings.

2022-05-30  Romain Beguet  <beguet@adacore.com>

	* libgnat/s-dwalin.adb: Add a subtype declaration to fix the
	ambiguity.

2022-05-30  Steve Baird  <baird@adacore.com>

	* sem_ch13.adb (Is_Predicate_Static): Do not generate warnings
	about subexpressions of enclosing expressions. Generate warnings
	for predicates that are known to be always true or always false,
	except in the case where the predicate is expressed as a Boolean
	literal. Deal with non-predicate-static expressions that have
	been transformed into predicate-static expressions.  Add missing
	Is_Type_Ref call to N_Membership_Test case.

2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Expand_Record_Aggregate.Build_Back_End_Aggregate):
	Skip the discriminants at the start of the component list before
	looking for the components inherited from the parent in the case
	of a tagged extension.

2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_disp.adb (Make_DT): Remove remaining freezing code.

2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Don't analyze
	the body of an expression function in the case of a dispatch table.

2022-05-30  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb, opt.ads, sem_ch7.adb: Introduce CCG_Mode.

2022-05-30  Yannick Moy  <moy@adacore.com>

	* Makefile.rtl: Add new units.
	* libgnat/s-aridou.adb (Scaled_Divide): Add ghost code for provers.
	* libgnat/s-spcuop.adb: New unit for ghost cut operations.
	* libgnat/s-spcuop.ads: New unit for ghost cut operations.
	* libgnat/s-spark.ads: New unit.

2022-05-30  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst: Mention
	availability in other languages when applicable.
	(Stack Scrubbing): Associate the attribute with types, expand
	some comments, fix the example involving access to variables.
	* gnat_rm.texi: Regenerate.

2022-05-30  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/a-cofuse.ads (Empty_Set): Fix typo in comment.

2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): Deal specifically with the
	overriding of the "=" operator for tagged types.

2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Adjust call to Make_DT.
	* exp_disp.ads (Building_Static_DT): Remove pragma Inline.
	(Building_Static_Secondary_DT): Likewise.
	(Convert_Tag_To_Interface): Likewise.
	(Make_DT): Remove second parameter.
	* exp_disp.adb (Make_DT): Likewise.
	(Check_Premature_Freezing): Delete.
	Pass Do_Freeze_Profile as False in call to Freeze_Entity.
	* freeze.ads (Freezing_Library_Level_Tagged_Type): Delete.
	* freeze.adb (Freeze_Profile): Remove obsolete code.
	(Freeze_Entity): Tweak comment.

2022-05-30  Yannick Moy  <moy@adacore.com>

	* libgnat/s-arit32.adb (Scaled_Divide32): Move assertion up.

2022-05-30  Yannick Moy  <moy@adacore.com>

	PR ada/105303
	* libgnat/s-gearop.adb: Add pragma Assertion_Policy in generic
	bodies making use of additional assertions or ghost code.
	* libgnat/s-gearop.ads: Remove confusing Assertion_Policy.

2022-05-30  Steve Baird  <baird@adacore.com>

	* exp_ch11.adb (Expand_N_Raise_Expression): Remove
	Convert_To_Return_False test.
	* gen_il-fields.ads: Remove Convert_To_Return_False field.
	* gen_il-gen-gen_nodes.adb: Remove use of
	Convert_To_Return_False field.
	* sinfo.ads: Remove comment describing Convert_To_Return_False
	flag.

2022-05-30  Julien Bortolussi  <bortolussi@adacore.com>

	* libgnat/a-cofuma.ads, libgnat/a-cofuma.adb,
	libgnat/a-cofuse.ads, libgnat/a-cofuse.adb,
	libgnat/a-cofuve.ads, libgnat/a-cofuve.adb: Add empty
	constructors.

2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* bindgen.adb (Gen_CUDA_Init): Remove code generating CUDA
	definitions.
	(Gen_CUDA_Defs): New function, generating definitions
	initialized by Gen_CUDA_Init.
	(Gen_Output_File_Ada): Call Gen_CUDA_Defs instead of
	Gen_CUDA_Init.
	(Gen_Adainit): Call Gen_CUDA_Init.

2022-05-28  Alexandre Oliva  <oliva@adacore.com>

	* gcc-interface/Makefile.in (OSCONS_CC): Rename to...
	(GCC_FOR_ADA_RTS): ... this.  Adjust users.
	(gnatlib): Pass it down as CC.
	(gnatlib-shared-default): Likewise.
	(gnatlib-shared-win32, gnatlib-shared-darwin): Likewise.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Constant>: Deal with
	a constant related to a return in a function specially.
	* gcc-interface/trans.cc (Call_to_gnu): Use return slot optimization
	if the target is a return object.
	(gnat_to_gnu) <N_Object_Declaration>: Deal with a constant related
	to a return in a function specially.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.cc (gnat_pushdecl): Also set TREE_NO_WARNING
	on the decl if Comes_From_Source is false for the associated node.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_gimplify_expr): Tidy up.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Function>: Also call
	process_attributes for built-in functions.
	(prepend_one_attribute_pragma): Deal with "simd" attribute.
	* gcc-interface/utils.cc (handle_simd_attribute): New function.
	(gnat_internal_attribute_table): Add entry for "simd" attribute.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (components_to_record): Use NULL recursively
	as P_GNU_REP_LIST for the innermost variant level in the unchecked
	union case with a fixed part.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu): Do not set Current_Error_Node
	to a node without location.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: And
	skip the elaboration of the designated subtype when that of its base
	type has been delayed.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Subtype>: If
	it is a special subtype designated by an access subtype, then defer
	the completion of incomplete types.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h, gcc-interface/ada.h,
	gcc-interface/gadaint.h, gcc-interface/targtyps.cc: Adjust
	copyright line.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.cc (unchecked_convert): Do not fold a string
	constant if the target type is pointer to character.

2022-05-19  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Remove redundant call to
	Set_Error_Posted.

2022-05-19  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch8.adb (Find_Expanded_Name): Emit a main error message
	before adding a continuation with the call to
	Error_Missing_With_Of_Known_Unit.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.ads (Requires_Transient_Scope): Add pragma Inline.

2022-05-19  Steve Baird  <baird@adacore.com>

	* sem_ch13.adb (Build_Predicate_Functions): If a semantic error
	has been detected then ignore Predicate_Failure aspect
	specifications in the same way as is done for CodePeer and
	SPARK. This avoids an internal compiler error if
	Ancestor_Predicate_Function_Called is True but Result_Expr is
	not an N_And_Then node (and is therefore unsuitable as an
	argument in a call to Left_Opnd).

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Wrap_Transient_Declaration): Propagate Uses_Sec_Stack
	to enclosing function if it does not return on the secondary stack.
	* exp_ch6.adb (Expand_Call_Helper): Call Establish_Transient_Scope
	with Manage_Sec_Stack set to True only when necessary.
	* sem_res.adb (Resolve_Call): Likewise.
	(Resolve_Entry_Call): Likewise.

2022-05-19  Daniel Mercier  <mercier@adacore.com>

	* sem_ch13.adb (Build_Predicate_Function): Ignore predicate
	failure in CodePeer mode.

2022-05-19  Arnaud Charlet  <charlet@adacore.com>

	* raise-gcc.c: Fix compilation with -DSTANDALONE under windows.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Narrow_Large_Operation): Preserve and reuse Etype.

2022-05-19  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Add_Implicit_Interface_Type_Conversion): New
	subprogram which factorizes code.
	(Expand_N_Attribute_Reference): Call the new subprogram to add
	the missing implicit interface type conversion.

2022-05-19  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Build_Predicate_Function): Ignore predicate
	failure in GNATprove mode.

2022-05-19  Steve Baird  <baird@adacore.com>

	* einfo-utils.ads, einfo-utils.adb: Delete Predicate_Function_M
	function and Set_Predicate_Function_M procedure.
	* einfo.ads: Delete comments for Is_Predicate_Function_M and
	Predicate_Function_M functions. Add comment for new
	Predicate_Expression function. Update comment describing
	predicate functions.
	* exp_util.ads, exp_util.adb (Make_Predicate_Call): Replace Mem
	formal parameter with Static_Mem and Dynamic_Mem formals.
	(Make_Predicate_Check): Delete Add_Failure_Expression and call
	to it.
	* exp_ch4.adb (Expand_N_In.Predicate_Check): Update
	Make_Predicate_Call call to match profile change.
	* gen_il-fields.ads: Delete Is_Predicate_Function_M field, add
	Predicate_Expression field.
	* gen_il-gen-gen_entities.adb: Delete Is_Predicate_Function_M
	use, add Predicate_Expression use.
	* sem_ch13.adb (Build_Predicate_Functions): Rename as singular,
	not plural; we no longer build a Predicate_M function. Delete
	Predicate_M references. Add new Boolean parameter for predicate
	functions when needed. Restructure body of generated predicate
	functions to implement required Predicate_Failure behavior and
	to set new Predicate_Expression attribute. Remove special
	treatment of raise expressions within predicate expressions.
	* sem_util.ads (Predicate_Failure_Expression,
	Predicate_Function_Needs_Membership_Parameter): New functions.
	* sem_util.adb (Is_Current_Instance): Fix bugs which caused
	wrong result.
	(Is_Current_Instance_Reference_In_Type_Aspect): Delete
	Is_Predicate_Function_M reference.
	(Predicate_Failure_Expression): New function.
	(Propagate_Predicate_Attributes): Delete Is_Predicate_Function_M
	references.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Adjust comment.
	(Expand_Simple_Function_Return): For the case of a type which needs
	finalization and is returned on the primary stack, do not create a
	copy if the expression originates from a function call.
	* exp_ch7.adb (Transient Scope Management): Adjust comment.
	* exp_util.ads (Is_Related_To_Func_Return): Add WARNING line.
	* fe.h (Is_Related_To_Func_Return): Declare.

2022-05-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch9.adb (Build_Find_Body_Index): Remove empty Elsif_Parts
	from the constructed IF statement.

2022-05-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch9.adb (Build_Find_Body_Index): Remove IF statement whose
	condition was true-by-construction; remove excessive assertion
	(since the call to Elsif_Parts will check that Nod is present
	and it is an if-statement).

2022-05-19  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb, gnatcmd.adb: Remove references to gnatfind/xref.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst,
	doc/gnat_ugn/the_gnat_compilation_model.rst: Ditto.
	* gnat_ugn.texi: Regenerate.
	* gnatfind.adb, gnatxref.adb, xr_tabls.adb, xr_tabls.ads,
	xref_lib.adb, xref_lib.ads: Removed, no longer used.

2022-05-19  Claire Dross  <dross@adacore.com>

	* libgnat/a-strfix.adb: Add assertions.
	* libgnat/a-strsup.adb: Idem.

2022-05-19  Ed Schonberg  <schonberg@adacore.com>

	* erroutc.ads: Fix a single-character typo in a comment.
	* exp_aggr.adb: Fix a single-character typo in a comment.
	Replace several pairs of calls to Low_Bound and
	High_Bound (which do not handle an identifier that denotes a
	scalar subtype) with corresponding calls to Get_Index_Bounds
	(which does handle that case).
	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Set the
	Component_Associations attribute of a null array aggregate to
	New_List.
	* sem_aggr.ads: New visible function
	Is_Null_Array_Aggregate_High_Bound.
	* sem_aggr.adb (Is_Null_Array_Aggregate_High_Bound,
	Is_Null_Aggregate, Resolve_Null_Array_Aggregate): New functions.
	(Resolve_Aggregate): Recognize null array aggregates (using
	Is_Null_Aggregate) and, when one is recognized, resolve
	it (using Resolve_Null_Array_Aggregate).  Avoid calling
	Array_Aggr_Subtype for a null array aggregate; the needed
	subtype is built in Resolve_Null_Array_Aggregate. Do not
	incorrectly flag a null aggregate (after it is transformed by
	expansion) as being both positional and named.
	* sem_attr.adb (Eval_Attribute): Special treatment for null
	array aggregate high bounds to avoid incorrectly flagging
	something like Integer'Pred (Integer'First) as an illegal static
	expression.
	* sem_eval.adb (Out_Of_Range): Special treatment for null array
	aggregate high bounds to avoid incorrectly flagging something
	like Integer'Pred (Integer'First) as an illegal static
	expression.

2022-05-19  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb (Lemma_Abs_Range,
	Lemma_Double_Shift_Left, Lemma_Shift_Left): New lemmas.
	(Double_Divide): Add ghost code.
	(Lemma_Concat_Definition, Lemma_Double_Shift_Left,
	Lemma_Shift_Left, Lemma_Shift_Right): Define or complete lemmas.
	(Scaled_Divide): Add ghost code.

2022-05-19  Bob Duff  <duff@adacore.com>

	* exp_pakd.adb (Expand_Packed_Eq): Replace the check for *same*
	modular type, with a check for any modular type, and assert that
	the two types have the same modulus and so on.
	* exp_pakd.ads: Minor comment improvements.

2022-05-19  Bob Duff  <duff@adacore.com>

	* style.adb (Check_Identifier): Deal with the case where a
	record component definition has been transformed; we want to
	warn if the original came from source.
	* libgnat/s-objrea.ads, libgnat/s-objrea.adb: Fix casing of MF
	to be consistent.
	* uname.adb: Fix casing of Chars to be consistent.
	* sem_util.ads: Minor comment fix.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-retsta.
	* debug.adb (d_r): Document usage.
	* exp_ch4.adb (Expand_N_Allocato): Deal with the return stack pool.
	* exp_ch6.adb (Expand_Simple_Function_Return): Replace calls to
	Requires_Transient_Scope with Returns_On_Secondary_Stack.  Deal
	with types that need finalization returned on the primary stack,
	use CW_Or_Needs_Finalization for those returned on the secondary.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Return early
	for the return stack pool.
	(Remove_Side_Effects): Call CW_Or_Needs_Finalization.
	* fe.h (Requires_Transient_Scope): Delete.
	(Returns_On_Secondary_Stack): Declare.
	* gnat1drv.adb (Adjust_Global_Switches): Set Back_End_Return_Slot
	to False when generating C code or if -gnatd_r is specified.
	* opt.ads (Back_End_Return_Slot): New boolean variable.
	* rtsfind.ads (RTU_Id): Add System_Return_Stack.
	(RE_Id): Add RE_RS_Allocate and RE_RS_Pool.
	(RE_Unit_Table): Add entries for RE_RS_Allocate and RE_RS_Pool.
	* sem_util.ads (CW_Or_Has_Controlled_Part): Delete.
	(CW_Or_Needs_Finalization): Declare.
	(Requires_Transient_Scope): Adjust description.
	(Returns_On_Secondary_Stack): Declare.
	* sem_util.adb (Compute_Returns_By_Ref): Set Returns_By_Ref on types
	which need finalization if they are returned on the secondary stack.
	(CW_Or_Has_Controlled_Part): Rename to...
	(CW_Or_Needs_Finalization): ...this.
	(Requires_Transient_Scope): Move bulk of implementation to...
	(Returns_On_Secondary_Stack): ...here.  Return true for types which
	need finalization only if the back-end return slot is not supported.
	* libgnat/s-retsta.ads: New file.
	* gcc-interface/ada-builtin-types.def (BT_FN_PTR_SSIZE): Define.
	* gcc-interface/ada-builtins.def (return_slot): Likewise.
	* gcc-interface/ada-tree.h (BUILT_IN_RETURN_SLOT): Likewise.
	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call to
	Requires_Transient_Scope with Returns_On_Secondary_Stack.
	* gcc-interface/trans.cc (gnat_to_gnu) <N_Simple_Return_Statement>:
	In the return by invisible reference, skip the copy if the source
	is the same as the destination.
	* gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Deal with
	the return stack pool.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc: Fix formatting issues in comments.
	(Subprogram_Body_to_gnu): Tidy up.
	(Exception_Handler_to_gnu_gcc): Rename into...
	(Exception_Handler_to_gnu): ...this.
	(gnat_to_gnu) <N_Exception_Handler>: Adjust to above renaming.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (Subprogram_Body_to_gnu): Rename a couple
	of local variables and use Is_Generic_Subprogram predicate.
	(process_decls): Likewise.

2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (Subprogram_Body_to_gnu): Do not deal with
	inlining heuristics for expression functions here but...
	* gcc-interface/decl.cc (inline_status_for_subprog): ...here instead
	and do not override them at -Os.

2022-05-19  Piotr Trojanek  <trojanek@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity): Remove dead code
	which expected Scope to return E_Subprogram_Body entity.

2022-05-18  Claire Dross  <dross@adacore.com>

	* libgnat/s-imageu.adb (Set_Image_Unsigned): Change assertion.

2022-05-18  Doug Rupp  <rupp@adacore.com>

	* sigtramp-qnx.c: Change struct sigcontext * to mcontext_t *.

2022-05-18  Doug Rupp  <rupp@adacore.com>

	* sigtramp-arm-qnx.c: Rewrite.

2022-05-18  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb (Big3): Change return type.
	(Lemma_Mult_Non_Negative, Lemma_Mult_Non_Positive): Reorder
	alphabetically.
	(Lemma_Concat_Definition, Lemma_Double_Big_2xxsingle): New
	lemmas.
	(Double_Divide, Scaled_Divide): Add assertions.

2022-05-18  Claire Dross  <dross@adacore.com>

	* libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertions.

2022-05-18  Kévin Le Gouguec  <legouguec@adacore.com>

	* libgnat/s-dwalin.adb (Read_Aranges_Header): Initialize output
	parameter in case we return early.

2022-05-18  Bob Duff  <duff@adacore.com>

	* libgnat/a-crbtgo.ads, libgnat/a-rbtgbo.ads,
	libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
	libgnat/a-cbhase.adb, libgnat/a-cdlili.adb,
	libgnat/a-cfdlli.adb, libgnat/a-cfhama.adb,
	libgnat/a-cfhase.adb, libgnat/a-cidlli.adb,
	libgnat/a-cihama.adb, libgnat/a-cihase.adb,
	libgnat/a-cohama.adb, libgnat/a-cohase.adb,
	libgnat/a-crbtgo.adb, libgnat/a-crdlli.adb, libgnat/a-rbtgbo.adb
	(Vet): Make the Vet functions do nothing when
	Container_Checks'Enabled is False, and inline them, so the calls
	disappear when optimizing.

2022-05-18  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl (arm-qnx): Use default (non-fma) target pair.

2022-05-18  Kévin Le Gouguec  <legouguec@adacore.com>

	* libgnat/s-dwalin.adb (Aranges_Lookup, Enable_Cache): Adapt to
	changes in the signature of Read_Aranges_*.
	(Debug_Info_Lookup): Do not control address size read from
	DWARF.
	(Read_Aranges_Header): Do not control address size read from
	DWARF; return this size.
	(Read_Aranges_Entry): Use the size returned by
	Read_Aranges_Header.

2022-05-18  Gary Dismukes  <dismukes@adacore.com>

	* errout.ads (Error_Msg_GNAT_Extension): Add formal Loc and
	revise comment.
	* errout.adb (Error_Msg_GNAT_Extension): Condition message on
	the flag Ada_Version_Pragma, and add suggestion to use of pragma
	Extensions_Allowed in messages.
	* par-ch3.adb, par-ch5.adb, par-ch6.adb, par-ch11.adb,
	par-ch12.adb: Add actual Token_Ptr on calls to
	Error_Msg_GNAT_Extension.
	* par-ch4.adb: Change Error_Msg to Error_Msg_GNAT_Extension for
	error calls related to use of extension features.
	* sem_ch13.adb: Likewise.

2022-05-18  Johannes Kliemann  <kliemann@adacore.com>

	* libgnarl/s-osinte__qnx.adb (To_Target_Priority): Perform
	arithmetic in int.

2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Use Needs_BIP_Alloc_Form.

2022-05-18  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Find_Corresponding_Spec): Avoid calling
	Is_Null_Extension with a class-wide type entity.
	(Overrides_Visible_Function): Handle alias entities.
	* sem_res.adb (Has_Applicable_User_Defined_Literal): Conversion
	not needed if the result type of the call is class-wide or if
	the result type matches the context type.
	* sem_util.ads (Is_Null_Extension): Adding documentation.
	(Is_Null_Extension_Of): Adding documentation.
	* sem_util.adb (Is_Null_Extension): Adding assertion.
	(Is_Null_Extension_Of): Adding assertions.

2022-05-18  Javier Miranda  <miranda@adacore.com>

	* snames.ads-tmpl (Name_Index): New attribute name.
	(Attribute_Id): Adding Attribute_Index as regular attribute.
	* sem_attr.adb (Attribute_22): Adding Attribute_Index as Ada
	2022 attribute.
	(Analyze_Index_Attribute): Check that 'Index appears in a
	pre-/postcondition aspect or pragma associated with an entry
	family.
	(Analyze_Attribute): Adding semantic analysis for 'Index.
	(Eval_Attribute): Register 'Index as can never be folded.
	(Resolve_Attribute): Resolve attribute 'Index.
	* sem_ch9.adb (Check_Wrong_Attribute_In_Postconditions): New
	subprogram.
	(Analyze_Requeue): Check that the requeue target shall not have
	an applicable specific or class-wide postcondition which
	includes an Index attribute reference.
	* exp_attr.adb (Expand_N_Attribute_Reference): Transform
	attribute Index into a renaming of the second formal of the
	wrapper built for an entry family that has contract cases.
	* einfo.ads (Is_Entry_Wrapper): Complete documentation.

2022-05-18  Yannick Moy  <moy@adacore.com>

	* libgnat/s-imagei.adb (Set_Digits): Add assertion.
	* libgnat/s-imgboo.adb (Image_Boolean): Add assertions.
	* libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertion.

2022-05-18  Arnaud Charlet  <charlet@adacore.com>

	* sem_aux.adb (Is_Immutably_Limited_Type): Do not look through
	private types as per RM 7.5(8.1).
	* sem_ch6.adb (Analyze_Function_Return): Use
	Is_Immutably_Limited_Type as per RM 6.5(5.10).

2022-05-18  Marc Poulhiès  <poulhies@adacore.com>

	* gen_il-gen-gen_nodes.adb (Gen_IL.Gen.Gen_Nodes): Add
	Is_Homogeneous_Aggregate field for N_Delta_Aggregate nodes.
	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Minor reformatting.
	* sem_aggr.adb (Resolve_Delta_Aggregate): Reject square brackets
	for record aggregate.
	(Resolve_Record_Aggregate): Uniformise error message.

2022-05-18  Arnaud Charlet  <charlet@adacore.com>

	* ali.adb (Scan_ALI): Special case a-tags.ali when setting
	Sec_Stack_Used.
	* bindgen.adb (Gen_Adainit): Simplify handling of secondary
	stack related code, and only import __gnat_binder_ss_count when
	needed.
	* libgnat/s-secsta.adb (Binder_SS_Count): Default initialize to
	0.

2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-dourea.adb ("/"): Add guard for zero and infinite
	divisor.
	* libgnat/s-valuer.adb (Scan_Raw_Real): Add guard for very large
	exponent values.

2022-05-18  Yannick Moy  <moy@adacore.com>

	* sem_elab.adb (Is_Suitable_Construct): Fix for generated
	constructs.

2022-05-18  Marc Poulhiès  <poulhies@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Skip predicate check
	for type conversion if object's subtype and expression's subtype
	statically match.
	* exp_prag.adb (Expand_Pragma_Check): Typo fix in comment.

2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_dbug.ads (Build_Subprogram_Instance_Renamings): Fix typo.
	* exp_dbug.adb (Build_Subprogram_Instance_Renamings): Build the
	renaming only for actuals of formal objects.

2022-05-18  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Check_Abstract_Overriding): If the type is
	derived from an untagged type, then don't perform any of the
	abstract overriding error checks.

2022-05-18  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Component_Count): Calculate size as an Uint and
	only then check if it is in the range of Int, as otherwise the
	multiplication of Int values can overflow.

2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-gfmafu$(objext).
	(SIMD_PATH_TARGET_PAIRS): New variable.
	(TRASYM_DWARF_COMMON_OBJS): Minor tweak.
	(x86-64/Linux): Use SIMD_PATH_TARGET_PAIRS.
	(x32/Linux): Likewise.
	* doc/gnat_rm/the_gnat_library.rst (Generic_Fast_Math_Functions):
	New entry.
	* gnat_rm.texi: Regenerate.
	* impunit.adb (Non_Imp_File_Names_95): Add g-gfmafu.
	* sem_ch7.adb (Has_Referencer): Do not set In_Nested_Instance for
	instances of generic packages that do not have a body.
	* libgnat/a-nalofl__simd.ads: New SIMD-enabled version.
	* libgnat/a-nuaufl__simd.ads: Likewise.
	* libgnat/g-gfmafu.ads: New package renaming unit.

2022-05-18  Arnaud Charlet  <charlet@adacore.com>

	* freeze.adb (Should_Freeze_Type): Fix handling of freezing in
	instances.

2022-05-18  Marc Poulhiès  <poulhies@adacore.com>

	* sem_ch12.adb (Check_Generic_Parent): Use
	Get_Unit_Instantiation_Node instead of Next.

2022-05-18  Alexandre Oliva  <oliva@adacore.com>

	* libgnat/a-nagefl.ads: Replace mentions of C/unix math library
	with intrinsics.
	* libgnat/a-nallfl.ads: Likewise.  State compatibility
	requirements.
	* libgnat/a-nalofl.ads: Likewise.
	* libgnat/a-nuaufl.ads: Likewise.

2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Move final test on
	In_Instance to outer condition.

2022-05-18  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl: Rename system-qnx-aarch64.ads to
	system-qnx-arm.ads.
	(AARCH64 QNX section): Modify to handle both arm and arch64.
	* tracebak.c (__QNX__): Add new __ARMEL__ section.
	* sigtramp-arm-qnx.c: New file.
	* libgnat/system-qnx-aarch64.ads: Renamed to ...
	* libgnat/system-qnx-arm.ads: this.

2022-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Flag_Effectively_Volatile_Objects): Restore
	redundant guard.

2022-05-17  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Add error check for
	the case of a renamed subprogram given by an expanded name whose
	outermost prefix names a unit that is hidden by the name of the
	renaming.
	(Ult_Expanded_Prefix): New local expression function to return
	the ultimate prefix of an expanded name.

2022-05-17  Ghjuvan Lacambre  <lacambre@adacore.com>

	* gnat_cuda.ads: Update package-level comments.
	(Build_And_Insert_CUDA_Initialization): Remove function.
	* gnat_cuda.adb (Build_And_Insert_CUDA_Initialization): Remove
	function.
	(Expand_CUDA_Package): Remove call to
	Build_And_Insert_CUDA_Initialization.

2022-05-17  Etienne Servais  <servais@adacore.com>

	* freeze.adb (Freeze_Enumeration_Type): Fix comment, enhance
	message and silence warning for size > 32.

2022-05-17  Yannick Moy  <moy@adacore.com>

	* exp_spark.adb (Expand_SPARK_Potential_Renaming): Deal with no
	entity case.
	* inline.ads (Check_Object_Renaming_In_GNATprove_Mode): New
	procedure.
	* inline.adb (Check_Object_Renaming_In_GNATprove_Mode): New
	procedure.
	(Can_Be_Inlined_In_GNATprove_Mode): Remove case forbidding
	inlining for subprograms inside generics.
	* sem_ch12.adb (Copy_Generic_Node): Preserve global entities
	when inlining in GNATprove mode.
	* sem_ch6.adb (Analyse_Subprogram_Body_Helper): Remove body to
	inline if renaming is detected in GNATprove mode.

2022-05-17  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch4.adb (Expand_N_Allocator): For an allocator with an
	unconstrained discriminated designated type, and whose
	allocation subtype is constrained, set the
	Actual_Designated_Subtype of the dereference passed to the init
	proc of the designated type to be the allocation subtype.
	* sinfo.ads: Add documentation of new setting of
	Actual_Designated_Subtype on a dereference used as an actual
	parameter of call to an init proc associated with an allocator.
	Also add missing syntax and documentation for the GNAT language
	extension that allows an expression as a default for a concrete
	generic formal function.

2022-05-17  Bob Duff  <duff@adacore.com>

	* sinfo.ads: Remove From_At_End.  Update comments.
	* gen_il-fields.ads, gen_il-gen-gen_nodes.adb, sem_ch11.adb:
	Remove From_At_End.
	* exp_ch11.adb (Expand_At_End_Handler): Remove assertion.
	* fe.h (Exception_Mechanism, Exception_Mechanism_Type, Has_DIC,
	Has_Invariants, Is_List_Member, List_Containing): Remove
	declarations that are not used in gigi.
	* opt.ads (Exception_Mechanism): This is not used in gigi.
	* exp_util.ads: Minor comment fix.

2022-05-17  Dmitriy Anisimkov  <anisimko@adacore.com>

	* impunit.adb: Add "g-binsea" to Non_Imp_File_Names_95 list.

2022-05-17  Yannick Moy  <moy@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Use
	Insert_Action when possibly inside an expression.

2022-05-17  Marc Poulhiès  <poulhies@adacore.com>

	* libgnat/g-forstr.adb (Is_Number): Add scientific notation and
	shortest representation.

2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Expand_N_Full_Type_Declaration): Look into N.

2022-05-17  Bob Duff  <duff@adacore.com>

	* exp_util.adb (Requires_Cleanup_Actions): Remove
	N_Protected_Body from the case statement, so that case will be
	covered by "raise Program_Error".

2022-05-17  Bob Duff  <duff@adacore.com>

	* output.adb (Pop_Output, Set_Output): Unconditionally flush
	output when switching from one output destination to another.
	Otherwise buffering can cause garbled output.
	(w): Push/pop the current settings, and temporarily
	Set_Standard_Error during these procedures.

2022-05-17  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-binsea.ads, libgnat/g-binsea.adb
	(GNAT.Binary_Search): New package.
	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): New item in list.
	* doc/gnat_rm/the_gnat_library.rst (GNAT.Binary_Search): New
	package record.
	* gnat_rm.texi: Regenerate.

2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch12.ads (Is_Abbreviated_Instance): Declare.
	* sem_ch12.adb (Check_Abbreviated_Instance): Declare.
	(Requires_Conformance_Checking): Declare.
	(Analyze_Association.Process_Default): Fix subtype of parameter.
	(Analyze_Formal_Object_Declaration): Check whether it is in the
	visible part of abbreviated instance.
	(Analyze_Formal_Subprogram_Declaration): Likewise.
	(Analyze_Formal_Type_Declaration): Likewise.
	(Analyze_Package_Instantiation): Do not check for a generic child
	unit in the case of an abbreviated instance.
	(Check_Abbreviated_Instance): New procedure.
	(Check_Formal_Packages): Tidy up.
	(Copy_Generic_Elist): Fix comment.
	(Instantiate_Formal_Package): Tidy up.  If the generic unit is a
	child unit, copy the qualified name onto the abbreviated instance.
	(Is_Abbreviated_Instance): New function.
	(Collect_Previous_Instances): Call Is_Abbreviated_Instance.
	(Requires_Conformance_Checking): New function.
	* sem_ch7.adb (Analyze_Package_Specification): Do not install the
	private declarations of the parent for an abbreviated instance.

2022-05-17  Etienne Servais  <servais@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): Use underlying type
	of Indic_Typ.
	(Constrain_Array): Ditto for T.

2022-05-17  Arnaud Charlet  <charlet@adacore.com>

	* sem_attr.adb (Analyze_Attribute [Attribute_Reduce]): Allow
	'Reduce for Ada 2022 and above.
	* sem_attr.ads (Attribute_Impl_Def): 'Reduce is no longer
	implementation defined.

2022-05-17  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_ch9.adb (Expand_N_Asynchronous_Select): Don't generate
	Abort_Undefers when not Abort_Allowed.

2022-05-17  Marc Poulhiès  <poulhies@adacore.com>

	* exp_ch7.adb: Fix typo.

2022-05-17  Etienne Servais  <servais@adacore.com>

	* lib.ads: initialize `Compiler_State` to `Parsing`.

2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.adb (Has_Compatible_Representation): Return true for
	derived untagged record types without representation clause.

2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.ads (Has_Compatible_Representation): Minor tweaks.
	* sem_ch13.adb (Has_Compatible_Representation): Look directly into
	the (implementation) base types and simplifiy accordingly.
	* exp_ch5.adb (Change_Of_Representation): Adjust.
	* exp_ch6.adb (Expand_Actuals): Likewise.

2022-05-17  Etienne Servais  <servais@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): Remove superfluous call to
	Original_Node.

2022-05-17  Javier Miranda  <miranda@adacore.com>

	* freeze.adb (Freeze_Entity): Protect the call to
	Declaration_Node against entities of expressions replaced by the
	frontend with an N_Raise_CE node.

2022-05-17  Javier Miranda  <miranda@adacore.com>

	* freeze.adb (Build_DTW_Spec): Do not inherit the not-overriding
	indicator because the DTW wrapper overrides its wrapped
	subprogram.
	* contracts.ads (Make_Class_Precondition_Subps): Adding
	documentation.

2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch13.adb (Expand_N_Freeze_Entity): Delete freeze nodes for
	subprograms only if they have no actions.
	* exp_ch6.adb (Freeze_Subprogram): Put the actions into the Actions
	field of the freeze node instead of inserting them after it.
	* sem_elab.adb (Is_SPARK_Semantic_Target): Fix typo in comment.
	* gcc-interface/trans.cc (process_freeze_entity): Return early for
	freeze nodes of subprograms with Interface_Alias set.

2022-05-17  Javier Miranda  <miranda@adacore.com>

	* contracts.adb (Build_Call_Helper_Body): Improve handling of
	the case of a (legal) non-dispatching call to an abstract
	subprogram.

2022-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst
	(Loop_Entry): Mention pragmas Assert, Assert_And_Cut and Assume;
	refill.
	* gnat_rm.texi: Regenerate.

2022-05-17  Etienne Servais  <servais@adacore.com>

	* par-ch3.adb (P_Access_Type_Definition): Outputs an error if
	token is not "access".

2022-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch2.adb (Expand_Current_Value): Remove special case for
	references immediately within pragma argument associations.
	* exp_prag.adb (Expand_Pragma_Inspection_Point): Remove special
	case for privals.

2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch7.adb (Inspect_Untagged_Record_Completion): Also move the
	equality operator on the homonym chain if there is another equality
	operator in the private part.

2022-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_Loop_Entry_Attribute): Disable value
	propagation when analysing the constant that holds the
	Loop_Entry prefix value.

2022-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Address_Checks): Remove call to
	Kill_Current_Values for subprogram entities, because this
	routine only does something for object entities.

2022-05-16  Justin Squirek  <squirek@adacore.com>

	* exp_ch7.adb (Build_Finalizer): Disable late evaluation of
	postconditions for functions returning types which where
	Has_Unconstrained_Elements is true or are unconstrained arrays.

2022-05-16  Etienne Servais  <servais@adacore.com>

	* exp_ch4.adb (Expand_N_Qualified_Expression): Freeze
	Target_Type.

2022-05-16  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb (Double_Divide): Add intermediate
	assertions.

2022-05-16  Ghjuvan Lacambre  <lacambre@adacore.com>

	* lib-writ.adb (Output_CUDA_Symbols): Check for null packages.

2022-05-16  Joel Brobecker  <brobecker@adacore.com>

	* libgnat/g-debpoo.ads: Improve documentation of the
	Stack_Trace_Depth parameter.

2022-05-16  Joel Brobecker  <brobecker@adacore.com>

	* init.c (__gnat_install_handler) [__QNX__]: Save sigaction's
	return value in err before checking err's value.  Fix incorrect
	signal names in perror messages.

2022-05-16  Joel Brobecker  <brobecker@adacore.com>

	* init.c (__gnat_install_handler) [__QNX__]: Set
	act.sa_sigaction rather than act.sa_handler.

2022-05-16  Joel Brobecker  <brobecker@adacore.com>

	* cstreams.c: Add <stdlib.h> #include.

2022-05-16  Joel Brobecker  <brobecker@adacore.com>

	* terminals.c: Remove bzero #define on HP/UX or Solaris
	platforms.
	(child_setup_tty): Replace bzero call by equivalent call to
	memset.

2022-05-16  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.ads (Storage_Model_Support): Revise comments on most
	operations within this nested package to reflect that they can
	now be passed either a type that has aspect Storage_Model_Type
	or an object of such a type.  Change the names of the relevant
	formals to SM_Obj_Or_Type. Also, add more precise semantic
	descriptions in some cases, and declare the subprograms in a
	more logical order.
	* sem_util.adb (Storage_Model_Support.Storage_Model_Object): Add
	an assertion that the type must specify aspect
	Designated_Storage_Model, rather than returning Empty when it
	doesn't specify that aspect.
	(Storage_Model_Support.Storage_Model_Type): Add an assertion
	that formal must be an object whose type specifies aspect
	Storage_Model_Type, rather than returning Empty for when it
	doesn't have such a type (and test Has_Storage_Model_Type_Aspect
	rather than Find_Value_Of_Aspect).
	(Storage_Model_Support.Get_Storage_Model_Type_Entity): Allow
	both objects and types, and add an assertion that the type (or
	the type of the object) has a value for aspect
	Storage_Model_Type.

2022-05-16  Etienne Servais  <servais@adacore.com>

	* checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
	Fix condition to return.

2022-05-16  Yannick Moy  <moy@adacore.com>

	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Update comment.

2022-05-16  Marc Poulhiès  <poulhies@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Association): Create scope
	around N_Iterated_Element_Association handling. Analyze a copy
	of the Loop_Parameter_Specification. Call Analyze instead
	Analyze_* to be more homogeneous.
	(Sem_Ch5): Remove now unused package.

2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Insert_Actions) <N_Iterated_Component_Association>:
	Climb up out of the node if the actions come from Discrete_Choices.

2022-05-16  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Check_Dispatching_Context): When checking to see
	whether an expression occurs in a class-wide pre/post-condition,
	also check for the possibility that it occurs in a class-wide
	preconditions subprogram that was introduced as part of
	expansion. Without this fix, some legal calls occuring in
	class-wide preconditions may be incorrectly flagged as violating
	the "a call to an abstract subprogram must be dispatching" rule.

2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Cleanup_Scopes): Test the underlying type.

2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.ads (Is_Entity_Of_Quantified_Expression): Declare.
	* sem_util.adb (Is_Entity_Of_Quantified_Expression): New
	predicate.
	(New_Copy_Tree): Deal with all entities of quantified
	expressions.
	* sem_ch13.adb (Build_Predicate_Functions): Get rid of
	superfluous tree copying and remove obsolete code.
	* sem_ch6.adb (Fully_Conformant_Expressions): Deal with all
	entities of quantified expressions.

2022-05-16  Steve Baird  <baird@adacore.com>

	* exp_ch7.adb (Build_Finalize_Statements): Add Last_POC_Call
	variable to keep track of the last "early finalization" call
	generated for type extension's finalization procedure. If
	non-empty, then this will indicate the point at which to insert
	the call to the parent type's finalization procedure. Modify
	nested function Process_Component_List_For_Finalize to set this
	variable (and avoid setting it during a recursive call).  If
	Last_POC_Call is empty, then insert the parent finalization call
	before, rather than after, the finalization code for the
	extension components.

2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo-utils.adb (Remove_Entity): Fix couple of oversights.
	* exp_ch3.adb (Is_User_Defined_Equality): Delete.
	(User_Defined_Eq): Call Get_User_Defined_Equality.
	(Make_Eq_Body): Likewise.
	(Predefined_Primitive_Eq_Body): Call Is_User_Defined_Equality.
	* exp_ch4.adb (Build_Eq_Call): Call Get_User_Defined_Equality.
	(Is_Equality): Delete.
	(User_Defined_Primitive_Equality_Op): Likewise.
	(Find_Aliased_Equality): Call Is_User_Defined_Equality.
	(Expand_N_Op_Eq): Call Underlying_Type unconditionally.
	Do not implement AI12-0101 + AI05-0123 here.
	(Expand_Set_Membership): Call Resolve_Membership_Equality.
	* exp_ch6.adb (Expand_Call_Helper): Remove obsolete code.
	* sem_aux.ads (Is_Record_Or_Limited_Type): Delete.
	* sem_aux.adb (Is_Record_Or_Limited_Type): Likewise.
	* sem_ch4.ads (Nondispatching_Call_To_Abstract_Operation): Declare.
	* sem_ch4.adb (Analyze_Call): Call Call_Abstract_Operation.
	(Analyze_Membership_Op): Call Resolve_Membership_Equality.
	(Nondispatching_Call_To_Abstract_Operation): New procedure.
	(Remove_Abstract_Operations): Call it.
	* sem_ch6.adb (Check_Untagged_Equality): Remove obsolete error and
	call Is_User_Defined_Equality.
	* sem_ch7.adb (Inspect_Untagged_Record_Completion): New procedure
	implementing AI12-0101 + AI05-0123.
	(Analyze_Package_Specification): Call it.
	(Declare_Inherited_Private_Subprograms): Minor tweak.
	(Uninstall_Declarations): Likewise.
	* sem_disp.adb (Check_Direct_Call): Adjust to new implementation
	of Is_User_Defined_Equality.
	* sem_res.ads (Resolve_Membership_Equality): Declare.
	* sem_res.adb (Resolve): Replace direct error handling with call to
	Nondispatching_Call_To_Abstract_Operation
	(Resolve_Call): Likewise.
	(Resolve_Equality_Op): Likewise.  mplement AI12-0413.
	(Resolve_Membership_Equality): New procedure.
	(Resolve_Membership_Op): Call Get_User_Defined_Equality.
	* sem_util.ads (Get_User_Defined_Eq): Rename into...
	(Get_User_Defined_Equality): ...this.
	* sem_util.adb (Get_User_Defined_Eq): Rename into...
	(Get_User_Defined_Equality): ...this. Call Is_User_Defined_Equality.
	(Is_User_Defined_Equality): Also check the profile but remove tests
	on Comes_From_Source and Parent.
	* sinfo.ads (Generic_Parent_Type): Adjust field description.
	* uintp.ads (Ubool): Invoke user-defined equality in predicate.

2022-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (User_Defined_Eq): Replace duplicated code with a
	call to Get_User_Defined_Eq.

2022-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Build_Untagged_Equality): Exit early when the
	outcome of a loop is already known.

2022-05-16  Olivier Hainque  <hainque@adacore.com>

	* Makefile.rtl: Add aarch64 to the list of CPUs for which
	GNATLIB_SHARED maps to gnatlib-shared-dual for vxworks7r2.

2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch4.adb (Analyze_Negation): Minor tweak.
	(Analyze_Unary_Op): Likewise.

2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Build_Assignment): Adjust to the new definition of
	Incomplete_View field.
	* sem_ch10.ads (Decorate_Type): Declare.
	* sem_ch10.adb (Decorate_Type): Move to library level.
	(Install_Limited_With_Clause): In the already analyzed case, also
	deal with incomplete type declarations present in the sources and
	simplify the replacement code.
	(Build_Shadow_Entity): Deal with swapped views in package body.
	(Restore_Chain_For_Shadow): Deal with incomplete type declarations
	present in the sources.
	* sem_ch3.adb (Analyze_Full_Type_Declaration): Adjust to the new
	definition of Incomplete_View field.
	(Build_Incomplete_Type_Declaration): Small consistency tweak.
	Set the incomplete type as the Incomplete_View of the full type.
	If the scope is a package with a limited view, build a shadow
	entity for the incomplete type.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): When replacing
	the limited view of a CW type as designated type of an anonymous
	access return type, get to the CW type of the incomplete view of
	the tagged type, if any.
	(Collect_Primitive_Operations): Adjust to the new definition of
	Incomplete_View field.
	* sinfo.ads (Incomplete_View): Denote the entity itself instead
	of its declaration.
	* sem_util.adb: Remove call to Defining_Entity.

2022-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Type_Or_Variable_Has_Enabled_Property): Given a
	subtype recurse into its base type.

2022-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Type_Or_Variable_Has_Enabled_Property): Clarify.

2022-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_Enabled): Remove; use Is_Enabled_Pragma
	instead.

2022-05-16  Martin Liska  <mliska@suse.cz>

	* locales.c (iso_639_1_to_639_3): Use ARRAY_SIZE.
	(language_name_to_639_3): Likewise.
	(country_name_to_3166): Likewise.

2022-05-13  Alexandre Oliva  <oliva@adacore.com>

	* gcc-interface/decl.cc (is_cplusplus_method): Build proper
	String for Get_External_Name.

2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Derive_Subprogram): For a function, also copy the
	Returns_By_Ref flag from the parent.

2022-05-13  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch13.adb (Check_Aspect_At_Freeze_Point): Analyze the
	expression of the aspect at this point, like other aspects that
	denote simple entities. Ensures that function
	Storage_Model_Object will have an entity to retrieve from the
	aspect expression. Also, move comment about aspects that don't
	require delay analysis in front of last alternative of the case
	statement, where it's supposed to be.

2022-05-13  Javier Miranda  <miranda@adacore.com>

	* contracts.adb (Build_Unique_Name): New subprogram.
	(Make_Class_Precondition_Subps): Use Build_Unique_Name to
	generate the names of the call helpers and the name of indirect
	call wrappers.
	* freeze.adb (Needs_Wrapper): Remove dead code.
	(Check_Inherited_Conditions): Defer building helpers and ICW
	until all the dispatch table wrappers have been built and
	analyzed. Required to ensure uniqueness in their names because
	when building these wrappers for overlapped subprograms their
	homonym number is not definite until they have been analyzed.

2022-05-13  Arnaud Charlet  <charlet@adacore.com>

	* libgnarl/s-taprop__linux.adb (Initialize): Do not use an
	alternate stack if no handler for SEGV is installed.

2022-05-13  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst (Control Flow
	Redundancy): Drop mentions of noreturn and tail calls.
	* gnat_rm.texi: Regenerate.

2022-05-13  Ghjuvan Lacambre  <lacambre@adacore.com>

	* ali.adb: Introduce new 'K' line in ALI files, used to
	represent CUDA kernel entries.
	* ali.ads: Create new CUDA_Kernels table, which contains entries
	of type CUDA_Kernel_Record. Each CUDA_Kernel_Record corresponds
	to a K line in an ali file.
	* bindgen.adb: Introduce new Gen_CUDA_Init procedure in the
	binder, which generates CUDA kernel registration code.
	* gnat_cuda.adb: Move Get_CUDA_Kernels spec to package spec to
	make it available to bindgen.adb.
	* gnat_cuda.ads: Likewise.
	* lib-writ.adb: Introduce new Output_CUDA_Symbols procedure,
	which generates one 'K' line in the ALI file per visible CUDA
	kernel.
	* opt.ads: Introduce Enable_CUDA_Expansion option, triggered by
	using the -gnatd_c flag.
	* switch-b.adb: Likewise.
	* switch-c.adb: Likewise.

2022-05-13  Marc Poulhiès  <poulhies@adacore.com>

	* exp_aggr.adb (Gen_Loop): Create scope for loop variable of
	iterated components.

2022-05-13  Yannick Moy  <moy@adacore.com>

	* libgnat/a-chtgfk.adb (Checked_Equivalent_Keys, Checked_Index):
	Remove useless functions.
	(Delete_Key_Sans_Free, Find, Generic_Conditional_Insert): Adapt
	to removal of wrapper functions.
	* libgnat/a-chtgfk.ads (Checked_Equivalent_Keys, Checked_Index):
	Remove useless functions.
	* libgnat/a-chtgfo.adb (Checked_Index): Remove useless function.
	(Clear): Delete code commented out regarding Busy and Lock
	management.
	(Delete_Node_At_Index): Delete unused procedure.
	(Delete_Node_Sans_Free, Free, Generic_Read, Next): Adapt to
	removal of wrapper functions.
	* libgnat/a-chtgfo.ads (Checked_Index): Remove useless function.
	(Delete_Node_At_Index): Delete unused procedure.

2022-05-13  Yannick Moy  <moy@adacore.com>

	* libgnat/a-cfhama.adb (Generic_Allocate): Retype to avoid
	aliasing.
	(Assign, Move): Remove address comparison.
	(Include): Insert constants for subtype constraints.
	(Insert): Rewrite to avoid aliasing and function with side-effects.
	* libgnat/a-cfhase.adb (Generic_Allocate): Retype to avoid
	aliasing.
	(Assign, Move): Remove address comparison.
	(Difference, Intersection, Is_Subset, Overlap,
	Symmetric_Difference, Union): Remove address comparison.  Insert
	constants for subtype constraints.
	(Insert): Rewrite to avoid aliasing and function with
	side-effects.
	* libgnat/a-chtgfk.adb (Checked_Equivalent_Keys, Checked_Index,
	Delete_Key_Sans_Free, Find, Generic_Replace_Element, Index):
	Type for hash tables not tagged anymore.
	(Generic_Conditional_Insert): New_Node generic formal is a
	procedure taking the hash table as first parameter now, to avoid
	aliasing in the caller.
	* libgnat/a-chtgfk.ads: Same.
	* libgnat/a-chtgfo.adb (Checked_Index, Clear,
	Delete_Node_At_Index, Delete_Node_Sans_Free, First, Free,
	Generic_Allocate, Generic_Iteration, Generic_Read,
	Generic_Write, Index, Next): Type for hash tables not tagged
	anymore.
	(Generic_Equal): Removed tagged. Remove address comparison.
	* libgnat/a-chtgfo.ads: Same.
	* libgnat/a-cohata.ads (Hash_Table_Type): Remove tagged.

2022-05-13  Yannick Moy  <moy@adacore.com>

	* Makefile.rtl: Add new files.
	* libgnat/a-cfhama.adb: Use formal version of hash tables.
	* libgnat/a-cfhama.ads: Same.
	* libgnat/a-cfhase.adb: Same.
	* libgnat/a-cfhase.ads: Same.
	* libgnat/a-chtgfk.adb: New unit for formal containers, modified
	version of Generic_Bounded_Keys.
	* libgnat/a-chtgfk.ads: Same.
	* libgnat/a-chtgfo.adb: New unit for formal containers, modified
	version of Generic_Bounded_Operations.
	* libgnat/a-chtgfo.ads: Same.
	* libgnat/a-cohata.ads (Generic_Formal_Hash_Table_Types): Third
	version of the type for hash tables, equivalent to the bounded
	version without tampering checks.

2022-05-13  Javier Miranda  <miranda@adacore.com>

	* freeze.adb (Check_Inherited_Conditions): Dispatch table
	wrappers must be placed in the list of entities of their scope
	at the same place of their wrapped primitive. This is required
	for private types since these wrappers are built when their full
	tagged type declaration is frozen but they may override a
	primitive defined in the public part of the package (and it is
	important to maintain the wrapper in the list of public entities
	of the package to ensure their correct visibility).

2022-05-13  Johannes Kanig  <kanig@adacore.com>

	* osint.ads, osint.adb (Relocate_Path): If the GNSA_ROOT
	environment variable is set, we use that as the prefix, instead
	of computing the prefix from the executable location.

2022-05-13  Steve Baird  <baird@adacore.com>

	* exp_ch3.ads (Build_Intialization_Call): Add new formal
	parameter, Init_Control_Actual, with default value. Clients
	outside of package Exp_Ch3 are unaffected.
	* exp_ch3.adb (Initialization_Control): new package; support for
	this 4-valued parameter.  The existing Requires_Late_Init
	function is moved into this new package.
	(Build_Initialization_Call): Add new formal parameter for
	subprogram body, use this new formal parameter in generating an
	init proc call.
	(Build_Record_Init_Proc): Replace Set_Tag Boolean formal
	parameter with 4-valued Init_Control_Formal. Wrap if-statements
	with appropriate conditions around tag initialization, early
	initialization, and late initialization statements.
	* exp_util.adb (Build_Task_Image_Decl): Avoid problem with
	duplicate declarations when an init proc for a type extension
	calls the parent type's init proc twice.

2022-05-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Fix Typ in the
	case of a class-wide derived iterator.

2022-05-13  Yannick Moy  <moy@adacore.com>

	* libgnat/a-strbou.ads (Overwrite): Switch to >= operator in
	contracts.
	* libgnat/a-strsup.adb (Super_Overwrite): Switch to >= operator
	in code of procedure (function already uses it).
	* libgnat/a-strsup.ads (Super_Overwrite): Switch to >= operator
	in contracts.

2022-05-13  Etienne Servais  <servais@adacore.com>

	* doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix code
	snippet.
	* gnat_rm.texi: Regenerate.

2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* aspects.adb (Find_Value_Of_Aspect): Add guard.
	* sem_ch4.adb (Complete_Object_Operation): Remove obsolete code.
	* sem_ch5.adb (Has_Sec_Stack_Default_Iterator): Add guard.

2022-05-13  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): The expansion of
	'Address in a call to an instantiation of the implicit
	subprogram To_Pointer with a class-wide interface type target
	requires adding an implicit type conversion to force
	displacement of the "this" pointer.

2022-05-13  Javier Miranda  <miranda@adacore.com>

	* sem_attr.adb (Resolve_Attribute): Ensure that attribute
	expressions are resolved at this stage; required for preanalyzed
	references to discriminants since their resolution (and
	expansion) will take care of updating their Entity attribute to
	reference their discriminal.

2022-05-13  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb (Wrong_Type): Avoid using the first subtype of
	the expected type in error messages when the expected type is
	not internally generated.

2022-05-13  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst: Add subsection on
	Control Flow Redundancy.
	* gnat_rm.texi: Regenerate.

2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Insert_Actions) <N_Iteration_Scheme>: Check that
	it is a WHILE iteration scheme before using Condition_Actions.

2022-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* atree.adb, gen_il-gen.adb, osint.adb, set_targ.adb,
	sinput.adb, table.adb, treepr.adb, types.ads: Replace uses of
	Unchecked_Conversion in the compiler itself.
	* libgnarl/a-reatim.adb, libgnarl/s-osinte__gnu.ads,
	libgnarl/s-osinte__kfreebsd-gnu.ads, libgnat/a-coboho.adb,
	libgnat/a-stuten.ads, libgnat/s-putima.adb: Likewise in the
	runtime.
	* doc/gnat_ugn/gnat_and_program_execution.rst: Likewise in
	documentation.
	* gnat_ugn.texi: Regenerate.

2022-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* butil.adb, sem.adb, sinput.adb, types.ads, xref_lib.adb:
	Replace uses of Unchecked_Deallocation with
	Ada.Unchecked_Deallocation.
	* doc/gnat_ugn/gnat_and_program_execution.rst: Likewise for the
	documentation; fix casing of GNAT.IO.
	* gnat_ugn.texi: Regenerate.

2022-05-13  Marc Poulhiès  <poulhies@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Fix ARM reference.
	Remove useless loop.

2022-05-13  Etienne Servais  <servais@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): Fix typo in
	comment.

2022-05-13  Justin Squirek  <squirek@adacore.com>

	* sem_ch6.adb (Check_Return_Construct_Accessibility): Modify
	generation of run-time accessibility checks to account for cases
	where Extra_Accessibility_Of_Result should be used versus the
	level of the enclosing subprogram. Use original node to avoid
	checking against expanded code. Disable check generation for
	tagged type case.
	(Is_Formal_Of_Current_Function): Added to encompass a predicate
	used within Check_Return_Construct_Accessibility to test if an
	associated expression is related to a relevant formal.
	* sem_util.adb, sem_util.ads (Enclosing_Subprogram): Modified to
	accept Node_Or_Entity_Id.
	(Innermost_Master_Scope_Depth): Calculate level based on the
	subprogram of a return statement instead of the one returned by
	Current_Subprogram.
	(Needs_Result_Accessibility_Level): Remove
	Disable_Coextension_Cases constant, and disable the tagged type
	case for performance reasons.

2022-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Flag_Effectively_Volatile_Objects): Ignore
	component and discriminant identifiers.

2022-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Flag_Effectively_Volatile_Objects): Remove
	redundant guard.

2022-05-13  Justin Squirek  <squirek@adacore.com>

	* sem_ch8.adb (Determine_Package_Scope): Created to centralize
	the calculation of which package a given use clause belongs to.
	(Most_Descendant_Use_Clause): Modified to call
	Determine_Package_Scope.
	* sem_util.adb, sem_util.ads (Enclosing_Package): Modified to
	handle both entity and node ids.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* gnat1drv.adb (Gnat1drv): Skip postponed checks when there are
	errors.

2022-05-12  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_ugn/the_gnat_compilation_model.rst: Fix URL.
	* gnat_ugn.texi: Regenerate.

2022-05-12  Bob Duff  <duff@adacore.com>

	* namet.ads, namet.adb (Write_Name_For_Debug): Add Quote
	parameter to allow conditional addition of quotes. Note that
	some calls to Write_Name_For_Debug, for example for file names,
	shouldn't have quotes, as in some_package.adb:123:45.
	* treepr.adb (Print_Name): Add double quotes around the name
	using the above Quote parameters.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_Actuals): Simplify with N_Op_Compare.
	* sem_util.adb (Replace_Null_Operand,
	Null_To_Null_Address_Convert_OK): Likewise.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.ads (Is_Selector_Name): Remove spec.
	* sem_util.adb (Is_Selector_Name): Remove body.

2022-05-12  Arnaud Charlet  <charlet@adacore.com>

	* sem_warn.adb (Has_Junk_Name): Add more dummy names.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* lib-xref.adb (Generate_Reference): Fix comment and implement
	it precisely.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* atree.adb, atree.ads: Move WITH clause from spec to body; to
	prevent new warnings stopping the bootstrap.
	* fmap.adb, fname-sf.adb, libgnat/a-direct.adb,
	libgnat/s-bignum.adb: Remove unnecessary WITH clauses; to
	prevent new warnings stopping the bootstrap.
	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Only set
	Is_Instantiated flag when the instance is in the extended main
	source unit.

2022-05-12  Yannick Moy  <moy@adacore.com>

	* libgnat/s-valuei.ads: Remove pragma Warnings Off.
	* libgnat/s-valueu.ads: Same.
	* libgnat/s-valuti.ads: Same.

2022-05-12  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Check_Result_And_Post_State): Exempt trivial
	post.

2022-05-12  Arnaud Charlet  <charlet@adacore.com>

	* ali.adb, ali.ads, bcheck.adb, exp_ch11.adb, fe.h,
	gnat1drv.adb, opt.adb, opt.ads, targparm.adb, targparm.ads,
	lib-writ.adb: Get rid of Frontend_Exceptions processing.
	* libgnat/system-aix.ads, libgnat/system-darwin-arm.ads,
	libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads,
	libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads,
	libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads,
	libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads,
	libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads,
	libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads,
	libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads,
	libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads,
	libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads,
	libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads,
	libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads,
	libgnat/system-qnx-aarch64.ads, libgnat/system-rtems.ads,
	libgnat/system-solaris-sparc.ads,
	libgnat/system-solaris-x86.ads,
	libgnat/system-vxworks-arm-rtp-smp.ads,
	libgnat/system-vxworks-arm-rtp.ads,
	libgnat/system-vxworks-arm.ads,
	libgnat/system-vxworks-e500-kernel.ads,
	libgnat/system-vxworks-e500-rtp-smp.ads,
	libgnat/system-vxworks-e500-rtp.ads,
	libgnat/system-vxworks-ppc-kernel.ads,
	libgnat/system-vxworks-ppc-rtp-smp.ads,
	libgnat/system-vxworks-ppc-rtp.ads,
	libgnat/system-vxworks-x86-kernel.ads,
	libgnat/system-vxworks-x86-rtp-smp.ads,
	libgnat/system-vxworks-x86-rtp.ads,
	libgnat/system-vxworks7-aarch64-rtp-smp.ads,
	libgnat/system-vxworks7-aarch64.ads,
	libgnat/system-vxworks7-arm-rtp-smp.ads,
	libgnat/system-vxworks7-arm.ads,
	libgnat/system-vxworks7-e500-kernel.ads,
	libgnat/system-vxworks7-e500-rtp-smp.ads,
	libgnat/system-vxworks7-e500-rtp.ads,
	libgnat/system-vxworks7-ppc-kernel.ads,
	libgnat/system-vxworks7-ppc-rtp-smp.ads,
	libgnat/system-vxworks7-ppc-rtp.ads,
	libgnat/system-vxworks7-ppc64-kernel.ads,
	libgnat/system-vxworks7-ppc64-rtp-smp.ads,
	libgnat/system-vxworks7-x86-kernel.ads,
	libgnat/system-vxworks7-x86-rtp-smp.ads,
	libgnat/system-vxworks7-x86-rtp.ads,
	libgnat/system-vxworks7-x86_64-kernel.ads,
	libgnat/system-vxworks7-x86_64-rtp-smp.ads: Remove
	Frontend_Exceptions line.
	* gcc-interface/decl.cc, gcc-interface/trans.cc
	(gnat_to_gnu_entity, gnat_to_gnu_subprog_type, gigi,
	gnat_to_gnu): Remove Front_End_SJLJ processing and always assume
	Back_End_Exceptions.

2022-05-12  Bob Duff  <duff@adacore.com>

	* namet.ads, namet.adb (Write_Name_For_Debug): New more-robust
	version of Write_Name.
	(Destroy_Global_Name_Buffer): New procedure to help detect bugs
	related to use of Global_Name_Buffer.  Misc cleanup and comment
	improvements. E.g. we don't need to document every detail of
	debugging printouts, especially since they can change.
	* uname.ads, uname.adb (Write_Unit_Name_For_Debug): New
	more-robust version of Write_Unit_Name.
	(Get_Unit_Name_String): Pass buffer in, instead of using the
	global variable. Misc cleanup. Remove the "special fudge", which
	is apparently not needed, and anyway the comment "the %s or %b
	has already been eliminated" seems wrong.
	(Write_Unit_Name): Call the new version of Get_Unit_Name_String.
	* errout.adb (Set_Msg_Insertion_Unit_Name): Call the new version
	of Get_Unit_Name_String. We pass the global variable here,
	because it's too much trouble to disentangle such uses in
	Errout.
	* sem_util.ads, sem_util.adb, sem_dist.adb
	(Get_Library_Unit_Name): New version of
	Get_Library_Unit_Name_String that avoids usage of the global
	variable.
	* casing.ads, casing.adb, exp_prag.adb, exp_util.adb
	(Set_All_Upper_Case): Remove. There is no need for a wrapper
	here -- code is clearer without it.
	* treepr.adb (Print_Name): Call Write_Name_For_Debug, which
	deals with No_Name (etc), rather than duplicating that here.
	Note that the call to Get_Name_String was superfluous.
	(Tree_Dump): Call Write_Unit_Name_For_Debug instead of
	Write_Unit_Name, which crashes if not Is_Valid_Name.
	* erroutc.ads: Improve comments.
	* erroutc.adb (Set_Msg_Name_Buffer): Call
	Destroy_Global_Name_Buffer to detect potential bugs where it
	incorrectly looks at the global variable.
	* sinput.adb (Write_Location): Call Write_Name_For_Debug instead
	of Write_Name, so it won't blow up on invalid data.
	* sinput.ads: Improve comments; remove some verbosity.
	* libgnat/s-imagef.adb: Fix typo in comment.

2022-05-12  Yannick Moy  <moy@adacore.com>

	* libgnat/s-imageu.adb (Set_Image_Unsigned): Add lemma.
	* libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertion.

2022-05-12  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.ads: Remove use-clause, add renames and
	subtypes.
	* libgnat/s-exponn.ads: Same.
	* libgnat/s-expont.ads: Same.
	* libgnat/s-widthu.ads: Same.

2022-05-12  Etienne Servais  <servais@adacore.com>

	* csets.adb (Fold_Latin_9): Fix y with diaeresis.
	(Fold_IBM_PC_850): Fix o with stroke.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_type.adb (Valid_Boolean_Arg): Remove redundant guard.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_type.adb (Valid_Boolean_Arg): Operands of Raise_Type are
	valid boolean arguments.

2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch4.adb (Possible_Type_For_Conditional_Expression): Add
	test for subtype conformance in the cases of
	access-to-subprogram types.

2022-05-12  Yannick Moy  <moy@adacore.com>

	* libgnat/s-imagef.adb: Justify false message from CodePeer.

2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch4.adb (Analyze_Case_Expression): Rewrite.
	(Analyze_If_Expression): Likewise.
	(Possible_Type_For_Conditional_Expression): New function.
	* sem_type.adb (Specific_Type): Retur the base type in more
	cases.

2022-05-12  Yannick Moy  <moy@adacore.com>

	* libgnat/s-imagef.adb: Adapt to new signature of Image_I, by
	providing ghost imported subprograms. For now, no contract is
	used on these subprograms, as System.Image_F is not proved.
	* libgnat/s-imagef.ads: Add modular type Uns as formal
	parameter, to use in defining Int_Params for instantiating
	Image_I.
	* libgnat/s-imagei.adb: Add contracts and ghost code.
	* libgnat/s-imagei.ads: Replace Int formal parameter by package
	Int_Params, which bundles type Int and Uns with ghost
	subprograms.  Add contracts.
	* libgnat/s-imfi128.ads: Adapt to new formal of Image_F.
	* libgnat/s-imfi32.ads: Adapt to new formal of Image_F.
	* libgnat/s-imfi64.ads: Adapt to new formal of Image_F.
	* libgnat/s-imgint.ads: Adapt to new formals of Image_I.
	* libgnat/s-imglli.ads: Adapt to new formals of Image_I.
	* libgnat/s-imgllli.ads: Adapt to new formals of Image_I.
	* libgnat/s-valint.ads: Adapt to new formals of Value_I.
	* libgnat/s-vallli.ads: Adapt to new formals of Value_I.
	* libgnat/s-valllli.ads: Adapt to new formals of Value_I.
	* libgnat/s-valuei.adb (Prove_Scan_Only_Decimal_Ghost): New
	ghost lemma.
	* libgnat/s-valuei.ads: New formal parameters to prove the new
	lemma.
	* libgnat/s-valuti.ads (Int_Params): Define a generic package to
	be used as a trait-like formal parameter in Image_I and other
	generics that need to instantiate Image_I.
	* libgnat/s-widthu.ads (Big_10): Qualify the 10 literal.

2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch4.adb (Find_Arithmetic_Types): Use local variables.
	(Find_Boolean_Types): Rewrite modeled on Find_Arithmetic_Types.

2022-05-12  Alexandre Oliva  <oliva@adacore.com>

	* doc/gnat_rm/security_hardening_features.rst (Hardened
	Booleans): New.
	* exp_util.adb (Adjust_Condition): Perform validity checking on
	hardbool-annotated types even with -gnatVT.
	* gnat_rm.texi: Regenerate.
	* gcc-interface/utils.cc (gnat_internal_attribute_table): Ignore
	hardbool.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch9.adb (Build_Protected_Entry): Set scope of the nested
	block to spec and not the body of the procedure created for a
	protected entry.

2022-05-12  Etienne Servais  <servais@adacore.com>

	* sem_ch3.adb (Find_Type_Of_Object): Remove duplicate "i" in
	comment.

2022-05-12  Marc Poulhiès  <poulhies@adacore.com>

	* csets.adb (Initialize): Only treat square bracket as valid
	identifier character for Ada versions prior to Ada 2022.
	* style.ads (Check_Left_Paren): Rename...
	(Check_Left_Paren_Square_Bracket): ...to this.
	* styleg.adb (Check_Left_Bracket): Rename...
	(Check_Left_Paren_Square_Bracket): ...to this.
	* styleg.ads (Check_Left_Paren): Rename...
	(Check_Left_Paren_Square_Bracket): ...to this.
	* scng.adb (Scan): Add check for spacing around left square
	bracket and use new name for Check_Left_Paren_Square_Bracket.
	* libgnat/a-szmzco.ads (Control_Ranges, Graphic_Ranges)
	(Letter_Ranges, Decimal_Digit_Ranges, ISO_646_Ranges)
	(Character_Ranges): Fix style (remove extra space).
	* libgnat/a-swmwco.ads (Control_Ranges, Graphic_Ranges)
	(Letter_Ranges, Decimal_Digit_Ranges, ISO_646_Ranges)
	(Character_Ranges): Likewise.
	* opt.adb (Set_Config_Switches): Remove [ from Identifier_Char
	set.

2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_type.adb (Specific_Type): Add swapped cases for interfaces.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst:
	(Export_Object, Import_Object, Short_Descriptors): Fix pragma
	syntax specification.
	* gnat_rm.texi: Regenerate.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* ali.adb (Hash): Reuse GNAT.String_Hash.Hash and don't pollute
	the Name_Id table.

2022-05-12  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
	Pragmas): Add Aggregate_Individually_Assign; otherwise the list
	is complete except for some obsoleted pragmas, which most likely
	are intentionally omitted.
	* gnat_ugn.texi: Regenerate.

2022-05-11  Yannick Moy  <moy@adacore.com>

	* libgnat/s-imaged.ads: Remove Pure.
	* libgnat/s-imagef.ads: Remove Pure.
	* libgnat/s-imager.ads: Remove Pure.
	* libgnat/s-imageu.adb: Add ghost code.
	* libgnat/s-imageu.ads: Add contracts.
	* libgnat/s-imde128.ads: Remove Pure.
	* libgnat/s-imde32.ads: Remove Pure.
	* libgnat/s-imde64.ads: Remove Pure.
	* libgnat/s-imfi128.ads: Remove Pure.
	* libgnat/s-imfi32.ads: Remove Pure.
	* libgnat/s-imfi64.ads: Remove Pure.
	* libgnat/s-imgflt.ads: Remove Pure.
	* libgnat/s-imglfl.ads: Remove Pure.
	* libgnat/s-imgllf.ads: Remove Pure.
	* libgnat/s-imglllu.ads: Instantiate with ghost subprograms.
	* libgnat/s-imgllu.ads: Instantiate with ghost subprograms.
	* libgnat/s-imgrea.ads: Remove Pure.
	* libgnat/s-imguns.ads: Instantiate with ghost subprograms.
	* libgnat/s-imguti.ads: Remove Pure.
	* libgnat/s-valueu.adb (Prove_Iter_Scan_Based_Number_Ghost,
	Prove_Scan_Only_Decimal_Ghost): New lemmas.
	* libgnat/s-valueu.ads (Uns_Option): Do not make type ghost to
	be able to use it as formal in instantiations.
	(Only_Decimal_Ghost): New ghost query.
	(Prove_Iter_Scan_Based_Number_Ghost,
	Prove_Scan_Only_Decimal_Ghost): New lemmas.
	* libgnat/s-widlllu.ads: Adapt to changes in Width_U.
	* libgnat/s-widllu.ads: Adapt to changes in Width_U.
	* libgnat/s-widthu.adb: Change generic function in generic
	package in order to complete the postcondition. Tighten the
	upper bound on the result by 1.
	* libgnat/s-widthu.ads: Same.
	* libgnat/s-widuns.ads: Adapt to changes in Width_U.
	* gcc-interface/Make-lang.in: Add dependencies on a-nubinu,
	a-numeri.ads and a-widuns.ads.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* snames.ads-tmpl (Detect_Blocking): Move after
	Default_Storage_Pool.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Remove custom check for
	Compile_Time_Error and Compile_Time_Warning pragmas.
	* snames.ads-tmpl (Compile_Time_Error, Compile_Time_Warning):
	Move beyond Last_Configuration_Pragma_Name.

2022-05-11  Marc Poulhiès  <poulhies@adacore.com>

	* libgnat/a-direct.adb (Start_Search_Internal): Use parentheses
	for record aggregate.
	* libgnat/a-stbubo.adb (Get_UTF_8): Likewise.
	* libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
	* libgnat/a-stzbou.ads (Null_Bounded_Wide_Wide_String):
	Likewise.
	* libgnat/a-swmwco.ads (Lower_Case_Mapping, Basic_Mapping):
	Likewise.
	* libgnat/a-szmzco.ads (Lower_Case_Mapping, Basic_Mapping):
	Likewise.
	* libgnat/s-statxd.adb (Fields): Likewise.
	* libgnat/s-stausa.adb (Initialize): Likewise.
	* sem_aggr.adb (Resolve_Record_Aggregate): Reject aggregates
	using brackets.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst,
	doc/gnat_rm/implementation_of_specific_ada_features.rst,
	doc/gnat_rm/representation_clauses_and_pragmas.rst,
	doc/gnat_rm/the_gnat_library.rst,
	doc/gnat_rm/the_implementation_of_standard_i_o.rst,
	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
	doc/gnat_ugn/gnat_and_program_execution.rst,
	doc/gnat_ugn/platform_specific_information.rst: Fix unbalanced
	parentheses and brackets.
	* sem_prag.adb (pragma Obsolescent): Likewise.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2022-05-11  Marc Poulhiès  <poulhies@adacore.com>

	* libgnat/s-rident.ads (Restriction_Id): Add
	No_Local_Tagged_Types, update comment for adding new GNAT
	specific restriction.
	* restrict.ads (Implementation_Restriction): Add
	No_Local_Tagged_Types.
	* sem_ch3.adb (Analyze_Full_Type_Declaration): Add check for
	tagged type at library level.
	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
	Add No_Local_Tagged_Types description.
	* gnat_rm.texi: Regenerate.

2022-05-11  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch4.adb (Analyze_User_Defined_Binary_Op): Use the base type
	in the interpretation of the operator.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_case.adb (Free_Value_Sets): Fix style in body header box.
	* sem_ch12.adb (Build_Subprogram_Wrappers): Likewise.
	* sem_util.adb (Statically_Denotes_Entity): Likewise.

2022-05-11  Etienne Servais  <servais@adacore.com>

	* sem_ch3.adb (Constrain_Access): Call Desig_Subtype in each if
	branch to avoid calling it twice.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Find_Var): Detect all operators; replace
	"condition" to "expression" in comments, because when this
	routine is called recursively it no longer examines the
	condition.
	(Is_Suspicious_Function_Name): Reduce scope of a local variable
	to avoid shadowing with a parameter of a nested
	Substring_Present function.

2022-05-11  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb (Double_Divide, Scaled_Divide): Add
	intermediate assertions.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/s-rident.ads (Implementation_Restriction): Remove
	No_Dynamic_Attachment, No_Implementation_Attributes,
	No_Implementation_Pragmas, No_Local_Protected_Objects,
	No_Protected_Type_Allocators, No_Relative_Delay,
	No_Requeue_Statements, No_Select_Statements,
	No_Task_Termination, Pure_Barriers and Simple_Barriers; add
	No_Dynamic_Sized_Objects,
	No_Implicit_Protected_Object_Allocations,
	No_Implicit_Task_Allocations, No_Task_At_Interrupt_Priority and
	Static_Dispatch_Tables; sort alphabetically.
	* restrict.ads (Restriction_Id): Change Pure_Barriers and
	No_Task_Termination from GNAT to Ada restrictions.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_atag.adb, lib-util.ads, libgnat/g-decstr.adb,
	libgnat/g-exptty.adb, libgnat/g-socpol.adb,
	libgnat/s-strhas.adb: Fix headers.

2022-05-11  Joao Azevedo  <azevedo@adacore.com>

	* doc/gnat_ugn/platform_specific_information.rst: Add
	glibc-locale-base-32bit as a dependency in SUSE distributions.
	* gnat_ugn.texi: Regenerate.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_ugn/gnat_and_program_execution.rst,
	doc/gnat_ugn/gnat_utility_programs.rst,
	doc/gnat_ugn/inline_assembler.rst: Fix typos and formatting
	glitches.
	* gnat_ugn.texi: Regenerate.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Change
	blocks from plain code to Ada.

2022-05-11  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb (Expand_Assign_With_Target_Names): Bypass the temp
	object approach in the case where the type of the LHS is
	controlled or has controlled subcomponents (Needs_Finalization
	is True), and use the procedure approach instead.

2022-05-11  Bob Duff  <duff@adacore.com>

	* sem_ch3.adb (Get_Discr_Value): Copy the result. Otherwise, the
	"tree" can be malformed (a DAG, not a tree) because
	Get_Discr_Value could be returning some subtree already attached
	to the tree.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
	proper label entities.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_characteristics.rst: Add
	tabularcolums directive, as explained in documentation of Sphinx
	and tabular LaTeX package.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_aspects.rst,
	doc/gnat_rm/implementation_defined_pragmas.rst: Remove extra
	whitespace.
	* gnat_rm.texi: Regenerate.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_characteristics.rst: Remove
	extra indent in continuation lines; indent both descriptions of
	Max_Picture_Length.
	* gnat_rm.texi: Regenerate.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst (Pragma
	Eliminate): Fix markup.
	* gnat_rm.texi: Regenerate.

2022-05-11  Johannes Kliemann  <kliemann@adacore.com>

	* libgnat/g-sthcso.adb: Suppress warning about unneeded use type
	clause.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
	proper label entities.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst (Pragma
	Ada_2022): Copy description from pragma Ada 2012 and adapt.
	* doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
	Pragmas): List pragma Ada 2022.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2022-05-11  Steve Baird  <baird@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Replace
	the existing check for an address specification for an object of
	a class-wide type with a more general check which rejects either
	the class-wide case or the case where the FE would (if the
	address specification were accepted) build a malformed
	tree (specifically, an object renaming declaration with a
	specified address). In the case where the check fails, reject
	the construct at compile time instead of generating an
	unconditional raise of Program_Error.
	* doc/gnat_rm/representation_clauses_and_pragmas.rst: Update
	documentation to reflect these changes.
	* gnat_rm.texi: Regenerate.

2022-05-11  Piotr Trojanek  <trojanek@adacore.com>

	* gen_il-gen-gen_entities.adb (Reachable): Move from
	Root_Entity_Type to E_Label.

2022-05-11  Alexandre Oliva  <oliva@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Guard
	Set_Is_Known_Valid with Safe_To_Capture_Value.

2022-05-11  Bob Duff  <duff@adacore.com>

	* repinfo.adb (List_Object_Info): Do not try to print values
	that have not been computed (and so are No_Uint).
	(Rep_Not_Constant): Reverse sense and change name to
	Compile_Time_Known_Rep. This makes the code at call sites a
	little more readable. Simplify code to a single return
	statement.

2022-05-10  Martin Liska  <mliska@suse.cz>

	* gcc-interface/decl.cc (compare_field_bitpos): Use void *
	instead PTR.
	* gcc-interface/utils2.cc (compare_elmt_bitpos): Likewise.

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

	* fe.h (Is_Expression_Function): Declare.
	* sem_util.ads (Is_Expression_Function): Add warning line.

2022-05-10  Alexandre Oliva  <oliva@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Valid>:
	Drop redundant range check for nonstandard booleans.

2022-05-10  Alexandre Oliva  <oliva@adacore.com>

	* exp_util.adb (Adjust_Result_Type): Leave result in
	Standard.Boolean if it's going to be converted to another
	boolean type.
	* exp_ch4.adb (Expand_N_Type_Conversion): When optimizing,
	convert to nonstandard booleans with an if_expression with
	boolean literals.

2022-05-10  Alexandre Oliva  <oliva@adacore.com>

	* exp_ch4.adb (Expand_N_If_Expression): Call Adjust_Condition to
	handle non-standard booleans.

2022-05-10  Justin Squirek  <squirek@adacore.com>

	* sem_ch8.adb (Use_One_Type): Remove code in charge of setting
	Current_Use_Clause when Id is known to be redundant, and modify
	the printing of errors associated with redundant use type
	clauses so that line number gets included in more cases.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Check_Unset_Reference): Use variant of
	Earlier_In_Extended_Unit that calls Sloc internally.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch10.adb, scng.adb, sem_res.adb, sinfo-utils.adb,
	treepr.adb: Simplify calculations with Source_Ptr and Loc
	values.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_Expression_With_Actions): Fix style in
	nested routines.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* atree.adb, exp_ch6.adb, exp_ch9.adb, ghost.adb, sem_ch3.adb,
	sem_ch4.adb, sem_res.adb, sem_util.adb: Use
	Is_Rewrite_Substitution where possible.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch11.adb, exp_ch5.adb, exp_prag.adb, gnat_cuda.adb,
	sem_ch12.adb, sem_ch3.adb, sem_ch6.adb, sem_util.adb,
	treepr.adb: Replace /= and = operators with No and Present,
	respectively.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Within_Postcondition): Guard against search
	going too far.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Check_Unset_Reference): The early test was only
	saving time of calls to Original_Node, Comes_From_Source and
	Nkind, which are all quick and cheap.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Check_Unreachable_Code): Remove inner declare
	block; refill code and comments.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace
	First_Entity/Next_Entity with First_Formal/Next_Formal; rename
	E1/E2 to F1/F2.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_Declare_Expression): Check expression for
	references to unset objects.
	(Resolve_Qualified_Expression): Likewise.
	* sem_warn.adb (Check_Unset_Reference): Remove handling of
	declare and qualified expressions; clarify comment for type
	conversions.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_Case_Expression): Check alternative
	expressions for references to unset objects.
	(Resolve_If_Expression): Check condition, then and else
	expressions for references to unset objects.

2022-05-10  Kévin Le Gouguec  <legouguec@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst,
	doc/gnat_ugn/the_gnat_compilation_model.rst: Fix typos.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2022-05-10  Etienne Servais  <servais@adacore.com>

	* sem_ch13.adb (Is_Predicate_Static): Fix typo in comment.

2022-05-10  Yannick Moy  <moy@adacore.com>

	* libgnat/s-valuei.adb: Fix indentation.
	* libgnat/s-valuei.ads: Same.

2022-05-10  Claire Dross  <dross@adacore.com>

	* snames.ads-tmpl: Add "Structural" as a name.
	* sem_prag.adb: (Analyze_Pragma): Accept modifier "Structural"
	in pragmas Loop_Variant and Subprogram_Variant. Check that items
	associated to Structural occur alone in the pragma associations.
	(Analyze_Subprogram_Variant_In_Decl_Part): Idem.
	* exp_prag.adb (Expand_Pragma_Loop_Variant): Discard structural
	variants.
	(Expand_Pragma_Subprogram_Variant): Idem.

2022-05-10  Claire Dross  <dross@adacore.com>

	* libgnat/s-valint.ads: Add SPARK_Mode and pragma to ignore
	assertions in instance and add additional ghost parameters to
	the instance of Value_I.
	* libgnat/s-vallli.ads: Idem.
	* libgnat/s-valllli.ads: Idem.
	* libgnat/s-valuei.ads, libgnat/s-valuei.adb: New generic
	parameters for ghost functions from System.Valueu. Add
	functional contracts.

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

	* sem_res.adb (Resolve_Eqyality_Op): Remove obsolete code.
	(Resolve_Op_Not): Likewise.
	* sem_type.adb (Disambiguate): Add missing test for RM 8.4(10).
	* libgnat/s-dwalin.adb (Enable_Cache): Fix ambiguity.
	(Symbolic_Address): Likewise.

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

	* sem_eval.adb (Eval_Integer_Literal): Fix oversight in entry test.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Expand_N_Aggregate): Replace UI_To_Int with
	UI_To_CC; replace magic literals with high-level routines that
	recognise wide and wide wide characters; reorder if-then-elsif
	condition, because we don't have a routine to detect wide wide
	characters.

2022-05-10  Etienne Servais  <servais@adacore.com>

	* scng.adb (Nlit): Error on big UI_Scale.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Build_Task_Array_Image): Declare expanded
	objects as constants.
	(Build_Task_Image_Prefix): Likewise.
	(Build_Task_Record_Image): Likewise.

2022-05-10  Marc Poulhiès  <poulhies@adacore.com>

	* checks.adb (Determine_Range): Fix range refining.

2022-05-10  Steve Baird  <baird@adacore.com>

	* sem_util.adb (Get_Actual_Subtype): If a new subtype is built,
	do not freeze it if Expander_Active is False. The idea here is
	to avoid generating an unwanted Freeze_Node for a subtype that
	has been conjured up solely for purposes of preanalysis.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Build_Task_Array_Image): Fix style in the
	structure of generated code; add Pref'Length as the component of
	the Sum initialization expression.

2022-05-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Use
	Get_Char_Code.
	* exp_util.adb (Build_Task_Array_Image): Simplify conversion to
	Char_Code.
	(Build_Task_Image_Prefix): Likewise.
	(Build_Task_Record_Image): Likewise.
	* cstand.adb (Create_Standard): Use UI_From_Int instead of
	UI_From_CC.
	* exp_ch11.adb (Expand_N_Exception_Declaration): Likewise.
	* sem_res.adb (Patch_Up_Value): Likewise.
	* stringt.adb (Write_String_Table_Entry): Use Get_Char_Code.

2022-05-09  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Bad_Predicated_Subtype_Use): Add continuation
	message.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* uintp.adb (UI_To_CC): Guard against illegal inputs; reuse
	UI_To_Int.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* par-prag.adb (Prag): Simplify conversion of character codes.
	* sem_case.adb (Choice_Image): Likewise.
	(Lit_Of): Likewise.

2022-05-09  Justin Squirek  <squirek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Tag>:
	Deal specifically wth class-wide equivalent types without a
	parent.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Extract
	allocator node for calculation of alignment actual and modify
	alignment for allocators of class-wide types with associated
	expressions.
	(Make_CW_Equivalent_Type): Handle interface types differently
	when generating the equivalent record.
	* sem_aux.adb (First_Tag_Component): Accept class-wide
	equivalent types too.

2022-05-09  Etienne Servais  <servais@adacore.com>

	* repinfo.adb (List_Name): Rework termination condition.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* bindgen.adb, errout.adb, exp_unst.adb, gnatchop.adb,
	libgnat/a-ngcefu.adb, libgnat/a-strunb.adb,
	libgnat/a-stwiun.adb, libgnat/a-stzunb.adb,
	libgnat/a-wtedit.adb, libgnat/g-debpoo.adb, osint.adb,
	sigtramp-vxworks.c, uintp.adb: Remove extra whitespace around +,
	-, *, / and **.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/s-expmod.adb: Remove CodePeer annotation for pragma
	Loop_Variant.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.ads (In_Statement_Condition_With_Actions): Renamed
	from In_While_Loop_Condition; move to fit the alphabetic order.
	* sem_util.adb (In_Statement_Condition_With_Actions): Detect
	Elsif condition; stop search on other statements; prevent search
	from going too far; move to fit the alphabetic order.
	* sem_res.adb (Resolve_Call): Adapt caller.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Build_Body_To_Inline): Remove redundant guards.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.

2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.adb (Is_OK_Variable_For_Out_Formal): Remove test on
	Comes_From_Source in the condition dealing with the expression
	of an N_Unchecked_Type_Conversion node.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb, exp_ch3.adb, exp_util.adb, freeze.adb,
	gnatfind.adb, gnatlink.adb, gnatxref.adb, gprep.adb,
	libgnat/a-cfhama.adb, libgnat/g-alleve.adb, sem_ch12.adb,
	sem_ch13.adb, xr_tabls.adb: Fix style labels.

2022-05-09  Justin Squirek  <squirek@adacore.com>

	* err_vars.ads: Add new error message names and nodes.
	* erroutc.adb (Set_Msg_Insertion_Name,
	Set_Msg_Insertion_Name_Literal): Likewise.
	* errout.adb (Set_Msg_Insertion_Node): Likewise.
	* errout.ads: Likewise.
	* exp_disp.adb (Check_Premature_Freezing): Modify setting of
	Error_Msg_Node_2 to occur directly before Error_Msg call where
	applicable.
	* sem_ch8.adb (Error_Missing_With_Of_Known_Unit): Added to
	handle the printing of full package names of known units.
	(Undefined, Find_Expanded_Name): Replace error printing with
	call to Error_Missing_With_Of_Known_Unit.

2022-05-09  Yannick Moy  <moy@adacore.com>

	* exp_ch4.adb (Expand_Allocator_Expression): Set Error_Msg_Warn
	correctly.

2022-05-09  Steve Baird  <baird@adacore.com>

	* sem_ch13.adb (Replace_Type_Ref): In the case of an identifier
	that names a component of the type, simplify the test to decide
	whether to build a prefix for it (the prefix denotes the current
	instance of the enclosing type): if the identifier doesn't
	already have a prefix, then give it one. This isn't quite right
	in the corner case of a quantified expression or some other such
	expression that declares an object with the same name as a
	component, but it is still an improvement.

2022-05-09  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
	package if array type and element type come from the same
	package, and the original array type is private.

2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Handle_Changed_Representation): Simplify and fix
	thinko in the loop building the constraints for discriminants.
	* exp_ch5.adb (Make_Component_List_Assign): Try also to extract
	discriminant values for a derived type.

2022-05-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Declare_Expression): Traverse the
	expression to replace references to local variables that occur
	within declarations of the declare_expression; fix typos in
	comments.

2022-05-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Operator_Check): Fix condition.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Abstract_State, Async_Readers, Async_Writers,
	Constant_After_Elaboration, Effective_Reads, Effective_Writes,
	Extensions_Visible, Ghost, No_Caching, Volatile_Function): Only
	static Boolean expressions are allowed.
	* gnat_rm.texi: Regenerate.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* exp_prag.adb (Expand_Pragma_Loop_Variant,
	Expand_Pragma_Subprogram_Variant): Adapt call via
	Process_Variant to Make_Variant_Comparison.
	* exp_util.adb (Make_Variant_Comparison): Compare Big_Integer
	expressions with a function call and not an operator.
	* exp_util.ads (Make_Variant_Comparison): Add type parameter,
	which is needed because the Curr_Val and Old_Val expressions
	might not be yet decorated.
	* rtsfind.ads: (RTU_Id): Add support for Big_Integers and
	Big_Integers_Ghost.
	(RE_Id): Add support for Big_Integer and its ghost variant.
	(RE_Unit_Table): Add mapping from Big_Integer to Big_Integers;
	same for the ghost variants.
	* rtsfind.adb (Get_Unit_Name): Add support for Big_Numbers.
	* sem_prag.adb (Analyze_Pragma): Allow Big_Integer in pragma
	Loop_Variant.
	(Analyze_Variant): Allow Big_Integer in pragma
	Subprogram_Variant.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.ads, sem_ch3.adb (Preanalyze_Assert_Expression): Add a
	variant that doesn't force preanalysis to yield a specific type.

2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Access Kinds): Reorder and beef up.
	* sem.adb (Analyze): Call Analyze_Comparison_Equality_Op for all
	comparison and equality operators.
	* sem_ch4.ads (Analyze_Comparison_Op): Delete.
	(Analyze_Equality_Op): Likewise.
	(Analyze_Comparison_Equality_Op): Declare.
	(Ambiguous_Operands): Likewise.
	* sem_ch4.adb (Ambiguous_Operands): Remove declaration.
	(Defined_In_Scope): Delete.
	(Find_Comparison_Types): Merge into...
	(Find_Equality_Types): Merge into...
	(Find_Comparison_Equality_Types): ...this.  Make fully symmetrical.
	(Analyze_Arithmetic_Op): Minor consistency tweaks.
	(Analyze_Comparison_Op): Merge into...
	(Analyze_Equality_Op): Merge into...
	(Analyze_Comparison_Equality_Op): ...this.  Make fully symmetrical.
	(Analyze_Logical_Op): Minor consistency tweaks.
	(Analyze_Membership_Op): Make fully symmetrical.
	(Analyze_One_Call): Minor comment tweak.
	(Analyze_Operator_Call): Call Find_Comparison_Equality_Types.
	(Analyze_User_Defined_Binary_Op): Make fully symmetrical.
	(Check_Arithmetic_Pair.Specific_Type): Delete.
	(Diagnose_Call): Add special handling for "+" operator.
	(Operator_Check): Call Analyze_Comparison_Equality_Op.
	* sem_ch8.adb (Has_Implicit_Operator): Add Is_Type guard for boolean
	operators, use Valid_Comparison_Arg and Valid_Equality_Arg for resp.
	comparison and equality operators.
	* sem_res.adb (Check_For_Visible_Operator): Call Is_Visible_Operator
	(Make_Call_Into_Operator): Use Preserve_Comes_From_Source.
	(Resolve_Actuals): Deal specifically with Any_Type actuals for user-
	defined comparison and equality operators.
	(Resolve_Call): Minor tweaks.
	(Resolve_Comparison_Op): Tidy up and give error for ambiguity.
	(Resolve_Equality_Op): Likewise, as well as other errors.
	(Rewrite_Renamed_Operator): Simplify.
	* sem_type.ads (Is_Invisible_Operator): Delete.
	(Is_Visible_Operator): Declare.
	(Has_Compatible_Type): Remove For_Comparison parameter.
	(Specific_Type): Declare.
	(Valid_Equality_Arg): Likewise.
	* sem_type.adb (Specific_Type): Remove declaration.
	(Add_One_Interp): Call Is_Visible_Operator for the visibility test.
	(Remove_Conversions): Rename into...
	(Remove_Conversions_And_Abstract_Operations): ...this.  Do not apply
	numeric-type treatment to Any_Type.  Expand the special handling for
	abstract interpretations to second operand.  Remove obsolete code.
	(Disambiguate): Adjust to above renaming.  Tweak to hidden case and
	call Remove_Conversions_And_Abstract_Operations for operators too.
	(Entity_Matches_Spec): Minor tweak.
	(Find_Unique_Type): Simplify and deal with user-defined literals.
	(Has_Compatible_Type): Remove For_Comparison parameter and adjust.
	Call the Is_User_Defined_Literal predicate and remove call to
	the Is_Invisible_Operator predicate.
	(Is_Invisible_Operator): Delete.
	(Is_Visible_Operator): New function.
	(Operator_Matches_Spec): Use Valid_Equality_Arg predicate.
	(Specific_Type): Tidy up, make fully symmetrical and deal with
	private views the same way as Covers.
	(Valid_Comparison_Arg): Return true for Any_Composite/Any_String.
	(Valid_Equality_Arg): New function.
	* sem_util.ads (Is_User_Defined_Literal): Declare.
	* sem_util.adb (Is_User_Defined_Literal): New function.

2022-05-09  Bob Duff  <duff@adacore.com>

	* lib-xref.adb, sem_util.adb: Change wording of warning messages
	to use "aspect".
	* sem_prag.adb: Use Fix_Error to change wording of warnings.
	* doc/gnat_rm/implementation_defined_pragmas.rst: Minor: fix
	cut&paste error.
	* gnat_rm.texi: Regenerate.

2022-05-09  Doug Rupp  <rupp@adacore.com>

	* init.c [vxworks] (CLEAR_EXCEPTION_COUNT): New macro.
	(__gnat_clear_exception_count): Remove.
	(__gnat_map_signal): Call CLEAR_EXCEPTION_COUNT().

2022-05-09  Fedor Rybin  <frybin@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Remove gnattest
	section.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Remove calls to Analyze for
	attributes Identity, Priority, Ref, Restriction_Set, To_Address
	and for tasking-related attributes Callable, Terminated and
	Storage_Size.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Don't call Set_Etype for
	Bit_Order attribute.

2022-05-09  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch5.adb (Update_Choice_Index): Simplify condition.
	* sem_ch8.adb (Attribute_Renaming): Likewise.

2022-05-09  Dmitriy Anisimkov  <anisimko@adacore.com>

	* adaint.c (__gnat_kill): Remove close parameter.
	(__gnat_killprocesstree): Do not provide close parameter on call
	to __gnat_kill.
	* libgnat/g-expect.adb (Kill): Remove Close parameter.
	(Close): Do not provide Close parameter on call to Kill.
	(Send_Signal): Do not provide Close parameter on call to Kill.
	* libgnat/s-os_lib.adb (Kill): Do not provide close parameter on
	call to __gnat_kill.

2022-05-09  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-expect.adb (Close): Call Kill before Close_Input.

2022-04-29  Martin Liska  <mliska@suse.cz>

	* gnatvsn.ads: Bump Library_Version to 13.

2022-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* tracebak.c: Add support for ARM RTEMS. Add support for RTEMS to PPC
	ELF.  Add support for RTEMS to SPARC.  Merge aarch64 support of Linux
	and RTEMS.

2022-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>

	PR ada/104027
	* gnat1drv.adb: Remove the goto End_Of_Program.

2022-03-24  Pascal Obry  <obry@adacore.com>

	PR ada/104767
	* libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1.
	* libgnat/g-sercom__linux.adb (Close): Likewise.

2022-03-10  Richard Biener  <rguenther@suse.de>

	PR ada/104861
	* gcc-interface/Makefile.in (target_noncanonical): Substitute.
	(OSCONS_CPP): Pass target_noncanonical as TARGET.

2022-02-13  Maciej W. Rozycki  <macro@orcam.me.uk>

	PR ada/98724
	PR ada/97504
	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) <alpha*-*-linux*>: Use
	wraplf version of Aux_Long_Long_Float.

2022-01-31  Pierre-Marie de Rodat  <derodat@adacore.com>

	* doc/share/conf.py: Remove spurious call to ".decode()".

2022-01-31  Arnaud Charlet  <charlet@adacore.com>

	PR ada/104027
	* gnat1drv.adb (Gnat1drv): Only call Exit_Program when not
	generating code, otherwise instead go to End_Of_Program.

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

	PR ada/104258
	* exp_ch4.adb (Narrow_Large_Operation): Also copy the entity, if
	any, when rewriting the operator node.

2022-01-19  H.J. Lu  <hjl.tools@gmail.com>

	PR ada/103538
	* gcc-interface/Makefile.in (target_cpu): Set to x32 for
	x86_64-linux-gnux32.

2022-01-19  H.J. Lu  <hjl.tools@gmail.com>

	PR ada/103538
	* Makefile.rtl (LIBGNAT_TARGET_PAIRS): Add
	$(TRASYM_DWARF_UNIX_PAIRS),
	s-tsmona.adb<libgnat/s-tsmona__linux.adb,
	$(GNATRTL_128BIT_PAIRS).
	(EXTRA_GNATRTL_NONTASKING_OBJS): Add $(TRASYM_DWARF_UNIX_OBJS)
	and $(GNATRTL_128BIT_OBJS).

2022-01-18  Martin Liska  <mliska@suse.cz>

	* adaint.c: Revert filename changes in comments.
	* ctrl_c.c (dummy_handler): Likewise.
	* gsocket.h: Likewise.
	* init.c (__gnat_error_handler): Likewise.
	* libgnarl/s-intman.ads: Likewise.
	* libgnarl/s-osinte__android.ads: Likewise.
	* libgnarl/s-osinte__darwin.ads: Likewise.
	* libgnarl/s-osinte__hpux.ads: Likewise.
	* libgnarl/s-osinte__linux.ads: Likewise.
	* libgnarl/s-osinte__qnx.ads: Likewise.
	* libgnarl/s-taskin.ads: Likewise.
	* rtfinal.c: Likewise.

2022-01-18  Martin Liska  <mliska@suse.cz>

	* Make-generated.in: Revert renaming changes.
	* Makefile.rtl: Likewise.
	* adadecode.cc: Moved to...
	* adadecode.c: ...here.
	* affinity.cc: Moved to...
	* affinity.c: ...here.
	* argv-lynxos178-raven-cert.cc: Moved to...
	* argv-lynxos178-raven-cert.c: ...here.
	* argv.cc: Moved to...
	* argv.c: ...here.
	* aux-io.cc: Moved to...
	* aux-io.c: ...here.
	* cio.cc: Moved to...
	* cio.c: ...here.
	* cstreams.cc: Moved to...
	* cstreams.c: ...here.
	* env.cc: Moved to...
	* env.c: ...here.
	* exit.cc: Moved to...
	* exit.c: ...here.
	* expect.cc: Moved to...
	* expect.c: ...here.
	* final.cc: Moved to...
	* final.c: ...here.
	* gcc-interface/Makefile.in:
	* init.cc: Moved to...
	* init.c: ...here.
	* initialize.cc: Moved to...
	* initialize.c: ...here.
	* libgnarl/thread.cc: Moved to...
	* libgnarl/thread.c: ...here.
	* link.cc: Moved to...
	* link.c: ...here.
	* locales.cc: Moved to...
	* locales.c: ...here.
	* mkdir.cc: Moved to...
	* mkdir.c: ...here.
	* raise.cc: Moved to...
	* raise.c: ...here.
	* rtfinal.cc: Moved to...
	* rtfinal.c: ...here.
	* rtinit.cc: Moved to...
	* rtinit.c: ...here.
	* s-oscons-tmplt.c (CND): Revert renaming changes.
	* seh_init.cc: Moved to...
	* seh_init.c: ...here.
	* sigtramp-armdroid.cc: Moved to...
	* sigtramp-armdroid.c: ...here.
	* sigtramp-ios.cc: Moved to...
	* sigtramp-ios.c: ...here.
	* sigtramp-qnx.cc: Moved to...
	* sigtramp-qnx.c: ...here.
	* sigtramp-vxworks.cc: Moved to...
	* sigtramp-vxworks.c: ...here.
	* socket.cc: Moved to...
	* socket.c: ...here.
	* tracebak.cc: Moved to...
	* tracebak.c: ...here.
	* version.cc: Moved to...
	* version.c: ...here.
	* vx_stack_info.cc: Moved to...
	* vx_stack_info.c: ...here.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* Makefile.rtl: Rename .c names to .cc.
	* gcc-interface/Make-lang.in: Likewise.
	* gcc-interface/Makefile.in: Likewise.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* Make-generated.in: Rename .c names to .cc.
	* adaint.c: Likewise.
	* ctrl_c.c (dummy_handler): Likewise.
	* gcc-interface/Makefile.in: Likewise.
	* gcc-interface/config-lang.in: Likewise.
	* gcc-interface/decl.cc (concat_name): Likewise.
	(init_gnat_decl): Likewise.
	* gcc-interface/gigi.h (concat_name): Likewise.
	(init_gnat_utils): Likewise.
	(build_call_raise_range): Likewise.
	(gnat_mark_addressable): Likewise.
	(gnat_protect_expr): Likewise.
	(gnat_rewrite_reference): Likewise.
	* gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Likewise.
	* gcc-interface/utils.cc (GTY): Likewise.
	(add_deferred_type_context): Likewise.
	(init_gnat_utils): Likewise.
	* gcc-interface/utils2.cc (gnat_stable_expr_p): Likewise.
	(gnat_protect_expr): Likewise.
	(gnat_stabilize_reference_1): Likewise.
	(gnat_rewrite_reference): Likewise.
	* gsocket.h: Likewise.
	* init.cc (__gnat_error_handler): Likewise.
	* libgnarl/s-intman.ads: Likewise.
	* libgnarl/s-osinte__android.ads: Likewise.
	* libgnarl/s-osinte__darwin.ads: Likewise.
	* libgnarl/s-osinte__hpux.ads: Likewise.
	* libgnarl/s-osinte__linux.ads: Likewise.
	* libgnarl/s-osinte__qnx.ads: Likewise.
	* libgnarl/s-taskin.ads: Likewise.
	* rtfinal.cc: Likewise.
	* s-oscons-tmplt.c (CND): Likewise.
	* set_targ.ads: Likewise.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* adadecode.c: Moved to...
	* adadecode.cc: ...here.
	* affinity.c: Moved to...
	* affinity.cc: ...here.
	* argv-lynxos178-raven-cert.c: Moved to...
	* argv-lynxos178-raven-cert.cc: ...here.
	* argv.c: Moved to...
	* argv.cc: ...here.
	* aux-io.c: Moved to...
	* aux-io.cc: ...here.
	* cio.c: Moved to...
	* cio.cc: ...here.
	* cstreams.c: Moved to...
	* cstreams.cc: ...here.
	* env.c: Moved to...
	* env.cc: ...here.
	* exit.c: Moved to...
	* exit.cc: ...here.
	* expect.c: Moved to...
	* expect.cc: ...here.
	* final.c: Moved to...
	* final.cc: ...here.
	* gcc-interface/cuintp.c: Moved to...
	* gcc-interface/cuintp.cc: ...here.
	* gcc-interface/decl.c: Moved to...
	* gcc-interface/decl.cc: ...here.
	* gcc-interface/misc.c: Moved to...
	* gcc-interface/misc.cc: ...here.
	* gcc-interface/targtyps.c: Moved to...
	* gcc-interface/targtyps.cc: ...here.
	* gcc-interface/trans.c: Moved to...
	* gcc-interface/trans.cc: ...here.
	* gcc-interface/utils.c: Moved to...
	* gcc-interface/utils.cc: ...here.
	* gcc-interface/utils2.c: Moved to...
	* gcc-interface/utils2.cc: ...here.
	* init.c: Moved to...
	* init.cc: ...here.
	* initialize.c: Moved to...
	* initialize.cc: ...here.
	* libgnarl/thread.c: Moved to...
	* libgnarl/thread.cc: ...here.
	* link.c: Moved to...
	* link.cc: ...here.
	* locales.c: Moved to...
	* locales.cc: ...here.
	* mkdir.c: Moved to...
	* mkdir.cc: ...here.
	* raise.c: Moved to...
	* raise.cc: ...here.
	* rtfinal.c: Moved to...
	* rtfinal.cc: ...here.
	* rtinit.c: Moved to...
	* rtinit.cc: ...here.
	* seh_init.c: Moved to...
	* seh_init.cc: ...here.
	* sigtramp-armdroid.c: Moved to...
	* sigtramp-armdroid.cc: ...here.
	* sigtramp-ios.c: Moved to...
	* sigtramp-ios.cc: ...here.
	* sigtramp-qnx.c: Moved to...
	* sigtramp-qnx.cc: ...here.
	* sigtramp-vxworks.c: Moved to...
	* sigtramp-vxworks.cc: ...here.
	* socket.c: Moved to...
	* socket.cc: ...here.
	* tracebak.c: Moved to...
	* tracebak.cc: ...here.
	* version.c: Moved to...
	* version.cc: ...here.
	* vx_stack_info.c: Moved to...
	* vx_stack_info.cc: ...here.

2022-01-14  Andrew Pinski  <apinski@marvell.com>

	PR ada/104027
	* gnat1drv.adb (Gnat1drv): After Back_End.Gen_Or_Update_Object_File
	goto End_Of_Program.

2022-01-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_binary_op) <EQ_EXPR>: Relax a
	little the assertion on designated types of pointer types.

2022-01-11  Justin Squirek  <squirek@adacore.com>

	* sem_ch8.adb (Nvis_Messages): Add generic instance name to
	error message.

2022-01-11  Etienne Servais  <servais@adacore.com>

	* par-ch6.adb (Scan_Body_Or_Expression_Function): Accept left
	bracket as token to open an expression function.

2022-01-11  Justin Squirek  <squirek@adacore.com>

	* sem_warn.adb (Check_References): Add call to Has_Task instead
	of checking component type.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.ads (Insert_Declaration): Remove spec.
	* exp_util.adb (Insert_Declaration): Remove body.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb (Expand_N_Expression_With_Actions): Avoid
	redundant check.
	* exp_ch5.adb (Expand_N_If_Statement): Likewise.
	* exp_ch7.adb (Process_Declarations): Likewise.
	* sem_elab.adb (Freeze_Node_Location): Likewise.
	* exp_util.adb (Insert_Actions): Likewise.
	(Is_OK_PF_Pragma): Likewise.
	(Requires_Cleanup_Actions): Remove early exit; ordinary
	processing path will similarly do nothing.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* snames.ads-tmpl: Restore Name_Rpc.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch4.adb (Analyze_Allocator): Move DECLARE block inside IF
	statement; refill code and comments.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch4.adb (Analyze_Allocator): Fix comment.
	* sem_eval.ads (Compile-Time Known Values): Likewise.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* snames.ads-tmpl: Remove unreferenced names.

2022-01-11  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb (Double_Divide): Adjust proof of lemma
	Prove_Signs, call lemma for commutation of Big and
	multiplication.
	(Multiply_With_Ovflo_Check): Adjust postcondition of
	Prove_Pos_Int.
	(Scaled_Divide): Explicit commutation in the proof of lemma
	Prove_Multiplication, add new lemma Prove_Shift_Progress for
	congruence property that is not proved in a larger context, add
	assertions at the end of the loop to state loop invariant
	properties.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Remove spec.
	* sem_eval.adb (Compile_Time_Known_Value_Or_Aggr): Remove body.

2022-01-11  Yannick Moy  <moy@adacore.com>

	* libgnat/a-strfix.adb (Insert, Overwrite): Add assertions.

2022-01-11  Arnaud Charlet  <charlet@adacore.com>

	PR ada/79724
	* osint.adb (Program_Name): Fix handling of suffixes.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb (Size_In_Storage_Elements): Remove unnecessary
	DECLARE block; refill code and comments.

2022-01-11  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): In the case of an array
	copy Packed_Array_Impl_Type manually here.
	(Copy_Array_Subtype_Attributes): Do not copy it here.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch7.adb (Set_Block_Elab_Proc, Unnest_Block, Unnest_Loop,
	Unnest_Statement_List): Simplify with Make_Temporary.
	* exp_put_image.adb (Build_Image_Call): Likewise.
	* inline.adb (Generate_Subprogram_Body): Likewise.
	* sem_ch13.adb (Build_Predicate_Functions): Likewise.
	* sem_util.adb (New_Copy_Separate_List): Likewise.

2022-01-11  Etienne Servais  <servais@adacore.com>

	* sem_ch3.adb (Check_Dynamic_Object): Swap check order.

2022-01-11  Yannick Moy  <moy@adacore.com>

	* libgnat/s-casuti.adb: Add ghost code.
	* libgnat/s-casuti.ads: Add contracts.

2022-01-11  Claire Dross  <dross@adacore.com>

	* libgnat/a-tiinau.ads: Use a procedure for the Scan parameter
	instead of a function with side-effects.
	* libgnat/a-tiinau.adb: Idem.
	* libgnat/a-wtinau.ads: Idem.
	* libgnat/a-wtinau.adb: Idem.
	* libgnat/a-ztinau.ads: Idem.
	* libgnat/a-ztinau.adb: Idem.
	* libgnat/s-valint.ads: Change the function with side-effects
	Scan_Integer into a procedure
	* libgnat/s-vallli.ads: Idem.
	* libgnat/s-valllli.ads: Idem.
	* libgnat/s-vallllu.ads: Add SPARK_Mode and pragma to ignore
	assertions in instance.
	* libgnat/s-valllu.ads: Idem.
	* libgnat/s-valuns.ads: Idem.
	* libgnat/s-valuei.ads: Use a procedure for the
	Scan_Raw_Unsigned parameter instead of a function with
	side-effects and change the function with side-effects
	Scan_Integer into a procedure.
	* libgnat/s-valuei.adb: Idem.
	* libgnat/s-valuti.ads: Introduce a ghost function that scans an
	exponent and complete the postcondition of Scan_Exponent to also
	describe the value of Ptr after the call. Fix the postcondition
	of Scan_Underscore. Simplify the definition of
	Scan_Natural_Ghost.
	* libgnat/s-valuti.adb: Idem.
	* libgnat/s-valboo.ads, libgnat/s-valboo.adb: Update calls to
	First_Non_Space_Ghost.
	* libgnat/s-valueu.ads: Add functional contracts.
	* libgnat/s-valueu.adb: Idem.

2022-01-11  Yannick Moy  <moy@adacore.com>

	* libgnat/s-expmod.adb (Exp_Modular): Add assertions.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* errout.adb (Error_Msg_CRT): Build message with string
	concatenation; it is slightly repetitive but much easier to
	read.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch11.adb (Expand_N_Exception_Declaration): Remove explicit
	initialization of the exceptF object.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch3.adb (P_Array_Type_Definition): Use
	Error_Msg_GNAT_Extension.

2022-01-11  Gary Dismukes  <dismukes@adacore.com>

	* sem_disp.adb (Check_Controlling_Type): Add test for the case
	where Subp is a subprogram associated with a protected
	subprogram and return Empty, unless Tagged_Type is the
	corresponding record type of the protected type.

2022-01-11  Yannick Moy  <moy@adacore.com>

	* libgnat/s-veboop.adb: Add ghost code for proof.
	* libgnat/s-veboop.ads: Add specification.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb, exp_attr.adb, exp_ch3.adb, exp_ch7.adb,
	exp_dist.adb, exp_util.adb, freeze.adb, frontend.adb,
	inline.adb, itypes.adb, lib-load.adb, lib-xref.adb,
	libgnat/a-cfhase.adb, libgnat/a-cforse.adb,
	libgnat/a-chtgbo.adb, libgnat/a-crdlli.adb,
	libgnat/a-except.adb, libgnat/a-strfix.adb,
	libgnat/a-textio.adb, libgnat/a-tienau.adb,
	libgnat/a-tigeau.adb, libgnat/a-witeio.adb,
	libgnat/a-wtenau.adb, libgnat/a-wtgeau.adb,
	libgnat/a-ztenau.adb, libgnat/a-ztexio.adb,
	libgnat/a-ztgeau.adb, libgnat/g-comlin.adb,
	libgnat/g-debpoo.adb, libgnat/g-expect.adb,
	libgnat/s-fileio.adb, libgnat/s-memory.adb, libgnat/s-mmap.adb,
	libgnat/s-objrea.adb, libgnat/s-pehage.adb,
	libgnat/s-regpat.adb, libgnat/s-shasto.adb,
	libgnat/s-valued.adb, libgnat/s-valuef.adb, par-ch11.adb,
	par-ch4.adb, par-ch6.adb, par-ch9.adb, par_sco.adb,
	repinfo-input.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb,
	sem_ch13.adb, sem_ch4.adb, sem_eval.adb, sem_prag.adb,
	sem_res.adb, sem_util.adb, sinput.adb, switch-c.adb: Fix style.

2022-01-11  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch9.adb, gen_il-types.ads, make.adb, par-ch12.adb,
	sem_ch13.adb: Use membership tests.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* erroutc.ads, erroutc.adb (Is_Runtime_Raise): Global flag to
	connect status of initial messages and their continuation; we
	already have several flags like this.
	(Error_Msg_Object): Add field Warn_Runtime_Raise to connect
	error reporting (when problematic code is found) and removal
	(when problematic code is determined to be dead).
	* errout.adb (Error_Msg_Internal): Handle new field when
	recording a continuation message; propagate status from
	continuation to the preceding messages.
	(To_Be_Removed): For dead code remove both simple warnings and
	warnings about constraint errors that have been escalated to
	hard errors.
	(Set_Msg_Text): Recognize warnings about constraint errors that
	are escalated to hard errors.
	* errutil.adb (Error_Msg): Handle added field when recording a
	new message.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* errout.adb (Error_Msg_Internal): Propagate warnings-as-error
	flag from continuation message to its preceding messages.

2022-01-11  Arnaud Charlet  <charlet@adacore.com>

	* gnatvsn.ads (Current_Year): Update copyright notice, bump to
	2022.
	* ada_get_targ.adb: Update copyright notice.
	* adabkend.adb: Likewise.
	* adabkend.ads: Likewise.
	* adadecode.c: Likewise.
	* adadecode.h: Likewise.
	* adaint.c: Likewise.
	* adaint.h: Likewise.
	* affinity.c: Likewise.
	* ali-util.adb: Likewise.
	* ali-util.ads: Likewise.
	* ali.adb: Likewise.
	* ali.ads: Likewise.
	* alloc.ads: Likewise.
	* argv-lynxos178-raven-cert.c: Likewise.
	* argv.c: Likewise.
	* aspects.adb: Likewise.
	* aspects.ads: Likewise.
	* atree.adb: Likewise.
	* atree.ads: Likewise.
	* atree.h: Likewise.
	* aux-io.c: Likewise.
	* back_end.adb: Likewise.
	* back_end.ads: Likewise.
	* backend_utils.adb: Likewise.
	* backend_utils.ads: Likewise.
	* bcheck.adb: Likewise.
	* bcheck.ads: Likewise.
	* binde.adb: Likewise.
	* binde.ads: Likewise.
	* binderr.adb: Likewise.
	* binderr.ads: Likewise.
	* bindgen.adb: Likewise.
	* bindgen.ads: Likewise.
	* bindo-augmentors.adb: Likewise.
	* bindo-augmentors.ads: Likewise.
	* bindo-builders.adb: Likewise.
	* bindo-builders.ads: Likewise.
	* bindo-diagnostics.adb: Likewise.
	* bindo-diagnostics.ads: Likewise.
	* bindo-elaborators.adb: Likewise.
	* bindo-elaborators.ads: Likewise.
	* bindo-graphs.adb: Likewise.
	* bindo-graphs.ads: Likewise.
	* bindo-units.adb: Likewise.
	* bindo-units.ads: Likewise.
	* bindo-validators.adb: Likewise.
	* bindo-validators.ads: Likewise.
	* bindo-writers.adb: Likewise.
	* bindo-writers.ads: Likewise.
	* bindo.adb: Likewise.
	* bindo.ads: Likewise.
	* bindusg.adb: Likewise.
	* bindusg.ads: Likewise.
	* butil.adb: Likewise.
	* butil.ads: Likewise.
	* cal.c: Likewise.
	* casing.adb: Likewise.
	* casing.ads: Likewise.
	* checks.adb: Likewise.
	* checks.ads: Likewise.
	* cio.c: Likewise.
	* clean.adb: Likewise.
	* clean.ads: Likewise.
	* comperr.adb: Likewise.
	* comperr.ads: Likewise.
	* contracts.adb: Likewise.
	* contracts.ads: Likewise.
	* csets.adb: Likewise.
	* csets.ads: Likewise.
	* cstand.adb: Likewise.
	* cstand.ads: Likewise.
	* cstreams.c: Likewise.
	* ctrl_c.c: Likewise.
	* debug.ads: Likewise.
	* debug_a.adb: Likewise.
	* debug_a.ads: Likewise.
	* einfo-utils.adb: Likewise.
	* einfo-utils.ads: Likewise.
	* einfo.adb: Likewise.
	* einfo.ads: Likewise.
	* elists.adb: Likewise.
	* elists.ads: Likewise.
	* elists.h: Likewise.
	* env.c: Likewise.
	* env.h: Likewise.
	* err_vars.ads: Likewise.
	* errno.c: Likewise.
	* errout.adb: Likewise.
	* errout.ads: Likewise.
	* erroutc.adb: Likewise.
	* erroutc.ads: Likewise.
	* errutil.adb: Likewise.
	* errutil.ads: Likewise.
	* eval_fat.adb: Likewise.
	* eval_fat.ads: Likewise.
	* exit.c: Likewise.
	* exp_aggr.adb: Likewise.
	* exp_aggr.ads: Likewise.
	* exp_atag.adb: Likewise.
	* exp_atag.ads: Likewise.
	* exp_attr.adb: Likewise.
	* exp_attr.ads: Likewise.
	* exp_cg.adb: Likewise.
	* exp_cg.ads: Likewise.
	* exp_ch10.ads: Likewise.
	* exp_ch11.adb: Likewise.
	* exp_ch11.ads: Likewise.
	* exp_ch12.adb: Likewise.
	* exp_ch12.ads: Likewise.
	* exp_ch13.adb: Likewise.
	* exp_ch13.ads: Likewise.
	* exp_ch2.adb: Likewise.
	* exp_ch2.ads: Likewise.
	* exp_ch3.adb: Likewise.
	* exp_ch3.ads: Likewise.
	* exp_ch4.adb: Likewise.
	* exp_ch4.ads: Likewise.
	* exp_ch5.adb: Likewise.
	* exp_ch5.ads: Likewise.
	* exp_ch6.adb: Likewise.
	* exp_ch6.ads: Likewise.
	* exp_ch7.adb: Likewise.
	* exp_ch7.ads: Likewise.
	* exp_ch8.adb: Likewise.
	* exp_ch8.ads: Likewise.
	* exp_ch9.adb: Likewise.
	* exp_ch9.ads: Likewise.
	* exp_code.adb: Likewise.
	* exp_code.ads: Likewise.
	* exp_dbug.adb: Likewise.
	* exp_dbug.ads: Likewise.
	* exp_disp.adb: Likewise.
	* exp_disp.ads: Likewise.
	* exp_dist.adb: Likewise.
	* exp_dist.ads: Likewise.
	* exp_fixd.adb: Likewise.
	* exp_fixd.ads: Likewise.
	* exp_imgv.adb: Likewise.
	* exp_imgv.ads: Likewise.
	* exp_intr.adb: Likewise.
	* exp_intr.ads: Likewise.
	* exp_pakd.adb: Likewise.
	* exp_pakd.ads: Likewise.
	* exp_prag.adb: Likewise.
	* exp_prag.ads: Likewise.
	* exp_put_image.adb: Likewise.
	* exp_put_image.ads: Likewise.
	* exp_sel.adb: Likewise.
	* exp_sel.ads: Likewise.
	* exp_smem.adb: Likewise.
	* exp_smem.ads: Likewise.
	* exp_spark.adb: Likewise.
	* exp_spark.ads: Likewise.
	* exp_strm.adb: Likewise.
	* exp_strm.ads: Likewise.
	* exp_tss.adb: Likewise.
	* exp_tss.ads: Likewise.
	* exp_unst.adb: Likewise.
	* exp_unst.ads: Likewise.
	* exp_util.adb: Likewise.
	* exp_util.ads: Likewise.
	* expander.adb: Likewise.
	* expander.ads: Likewise.
	* expect.c: Likewise.
	* fe.h: Likewise.
	* final.c: Likewise.
	* fmap.adb: Likewise.
	* fmap.ads: Likewise.
	* fname-sf.adb: Likewise.
	* fname-sf.ads: Likewise.
	* fname-uf.adb: Likewise.
	* fname-uf.ads: Likewise.
	* fname.adb: Likewise.
	* fname.ads: Likewise.
	* freeze.adb: Likewise.
	* freeze.ads: Likewise.
	* frontend.adb: Likewise.
	* frontend.ads: Likewise.
	* gen_il-fields.ads: Likewise.
	* gen_il-gen-gen_entities.adb: Likewise.
	* gen_il-gen-gen_nodes.adb: Likewise.
	* gen_il-gen.adb: Likewise.
	* gen_il-gen.ads: Likewise.
	* gen_il-internals.adb: Likewise.
	* gen_il-internals.ads: Likewise.
	* gen_il-main.adb: Likewise.
	* gen_il-types.ads: Likewise.
	* gen_il.adb: Likewise.
	* gen_il.ads: Likewise.
	* get_scos.adb: Likewise.
	* get_scos.ads: Likewise.
	* get_targ.adb: Likewise.
	* get_targ.ads: Likewise.
	* ghost.adb: Likewise.
	* ghost.ads: Likewise.
	* gnat1drv.adb: Likewise.
	* gnat1drv.ads: Likewise.
	* gnat_cuda.adb: Likewise.
	* gnat_cuda.ads: Likewise.
	* gnatbind.adb: Likewise.
	* gnatbind.ads: Likewise.
	* gnatchop.adb: Likewise.
	* gnatclean.adb: Likewise.
	* gnatcmd.adb: Likewise.
	* gnatcmd.ads: Likewise.
	* gnatdll.adb: Likewise.
	* gnatfind.adb: Likewise.
	* gnatkr.adb: Likewise.
	* gnatkr.ads: Likewise.
	* gnatlink.adb: Likewise.
	* gnatlink.ads: Likewise.
	* gnatls.adb: Likewise.
	* gnatls.ads: Likewise.
	* gnatmake.adb: Likewise.
	* gnatmake.ads: Likewise.
	* gnatname.adb: Likewise.
	* gnatname.ads: Likewise.
	* gnatprep.adb: Likewise.
	* gnatprep.ads: Likewise.
	* gnatvsn.adb: Likewise.
	* gnatxref.adb: Likewise.
	* gprep.adb: Likewise.
	* gprep.ads: Likewise.
	* gsocket.h: Likewise.
	* hostparm.ads: Likewise.
	* impunit.adb: Likewise.
	* impunit.ads: Likewise.
	* indepsw-aix.adb: Likewise.
	* indepsw-darwin.adb: Likewise.
	* indepsw-gnu.adb: Likewise.
	* indepsw.adb: Likewise.
	* indepsw.ads: Likewise.
	* init.c: Likewise.
	* initialize.c: Likewise.
	* inline.adb: Likewise.
	* inline.ads: Likewise.
	* itypes.adb: Likewise.
	* itypes.ads: Likewise.
	* krunch.adb: Likewise.
	* krunch.ads: Likewise.
	* layout.adb: Likewise.
	* layout.ads: Likewise.
	* lib-list.adb: Likewise.
	* lib-load.adb: Likewise.
	* lib-load.ads: Likewise.
	* lib-sort.adb: Likewise.
	* lib-util.adb: Likewise.
	* lib-util.ads: Likewise.
	* lib-writ.adb: Likewise.
	* lib-writ.ads: Likewise.
	* lib-xref-spark_specific.adb: Likewise.
	* lib-xref.adb: Likewise.
	* lib-xref.ads: Likewise.
	* lib.adb: Likewise.
	* lib.ads: Likewise.
	* libgnarl/a-astaco.adb: Likewise.
	* libgnarl/a-dispat.adb: Likewise.
	* libgnarl/a-dynpri.adb: Likewise.
	* libgnarl/a-etgrbu.ads: Likewise.
	* libgnarl/a-exetim__darwin.adb: Likewise.
	* libgnarl/a-exetim__default.ads: Likewise.
	* libgnarl/a-exetim__mingw.adb: Likewise.
	* libgnarl/a-exetim__mingw.ads: Likewise.
	* libgnarl/a-exetim__posix.adb: Likewise.
	* libgnarl/a-interr.adb: Likewise.
	* libgnarl/a-interr.ads: Likewise.
	* libgnarl/a-intnam.ads: Likewise.
	* libgnarl/a-intnam__aix.ads: Likewise.
	* libgnarl/a-intnam__darwin.ads: Likewise.
	* libgnarl/a-intnam__dragonfly.ads: Likewise.
	* libgnarl/a-intnam__dummy.ads: Likewise.
	* libgnarl/a-intnam__freebsd.ads: Likewise.
	* libgnarl/a-intnam__hpux.ads: Likewise.
	* libgnarl/a-intnam__linux.ads: Likewise.
	* libgnarl/a-intnam__lynxos.ads: Likewise.
	* libgnarl/a-intnam__mingw.ads: Likewise.
	* libgnarl/a-intnam__qnx.ads: Likewise.
	* libgnarl/a-intnam__rtems.ads: Likewise.
	* libgnarl/a-intnam__solaris.ads: Likewise.
	* libgnarl/a-intnam__vxworks.ads: Likewise.
	* libgnarl/a-reatim.adb: Likewise.
	* libgnarl/a-reatim.ads: Likewise.
	* libgnarl/a-retide.adb: Likewise.
	* libgnarl/a-retide.ads: Likewise.
	* libgnarl/a-rttiev.adb: Likewise.
	* libgnarl/a-rttiev.ads: Likewise.
	* libgnarl/a-synbar.adb: Likewise.
	* libgnarl/a-synbar.ads: Likewise.
	* libgnarl/a-synbar__posix.adb: Likewise.
	* libgnarl/a-synbar__posix.ads: Likewise.
	* libgnarl/a-sytaco.adb: Likewise.
	* libgnarl/a-sytaco.ads: Likewise.
	* libgnarl/a-tasatt.adb: Likewise.
	* libgnarl/a-tasatt.ads: Likewise.
	* libgnarl/a-taside.adb: Likewise.
	* libgnarl/a-taside.ads: Likewise.
	* libgnarl/a-tasini.adb: Likewise.
	* libgnarl/a-tasini.ads: Likewise.
	* libgnarl/a-taster.adb: Likewise.
	* libgnarl/g-boubuf.adb: Likewise.
	* libgnarl/g-boubuf.ads: Likewise.
	* libgnarl/g-boumai.ads: Likewise.
	* libgnarl/g-semaph.adb: Likewise.
	* libgnarl/g-semaph.ads: Likewise.
	* libgnarl/g-signal.adb: Likewise.
	* libgnarl/g-signal.ads: Likewise.
	* libgnarl/g-tastus.ads: Likewise.
	* libgnarl/g-thread.adb: Likewise.
	* libgnarl/g-thread.ads: Likewise.
	* libgnarl/i-vxinco.adb: Likewise.
	* libgnarl/i-vxinco.ads: Likewise.
	* libgnarl/s-inmaop.ads: Likewise.
	* libgnarl/s-inmaop__dummy.adb: Likewise.
	* libgnarl/s-inmaop__hwint.adb: Likewise.
	* libgnarl/s-inmaop__posix.adb: Likewise.
	* libgnarl/s-interr.adb: Likewise.
	* libgnarl/s-interr.ads: Likewise.
	* libgnarl/s-interr__dummy.adb: Likewise.
	* libgnarl/s-interr__hwint.adb: Likewise.
	* libgnarl/s-interr__sigaction.adb: Likewise.
	* libgnarl/s-interr__vxworks.adb: Likewise.
	* libgnarl/s-intman.ads: Likewise.
	* libgnarl/s-intman__android.adb: Likewise.
	* libgnarl/s-intman__dummy.adb: Likewise.
	* libgnarl/s-intman__lynxos.adb: Likewise.
	* libgnarl/s-intman__mingw.adb: Likewise.
	* libgnarl/s-intman__posix.adb: Likewise.
	* libgnarl/s-intman__qnx.adb: Likewise.
	* libgnarl/s-intman__rtems.adb: Likewise.
	* libgnarl/s-intman__rtems.ads: Likewise.
	* libgnarl/s-intman__solaris.adb: Likewise.
	* libgnarl/s-intman__susv3.adb: Likewise.
	* libgnarl/s-intman__vxworks.adb: Likewise.
	* libgnarl/s-intman__vxworks.ads: Likewise.
	* libgnarl/s-linux.ads: Likewise.
	* libgnarl/s-linux__alpha.ads: Likewise.
	* libgnarl/s-linux__android.ads: Likewise.
	* libgnarl/s-linux__hppa.ads: Likewise.
	* libgnarl/s-linux__mips.ads: Likewise.
	* libgnarl/s-linux__riscv.ads: Likewise.
	* libgnarl/s-linux__sparc.ads: Likewise.
	* libgnarl/s-linux__x32.ads: Likewise.
	* libgnarl/s-mudido.adb: Likewise.
	* libgnarl/s-mudido__affinity.adb: Likewise.
	* libgnarl/s-osinte__aix.adb: Likewise.
	* libgnarl/s-osinte__aix.ads: Likewise.
	* libgnarl/s-osinte__android.adb: Likewise.
	* libgnarl/s-osinte__android.ads: Likewise.
	* libgnarl/s-osinte__darwin.adb: Likewise.
	* libgnarl/s-osinte__darwin.ads: Likewise.
	* libgnarl/s-osinte__dragonfly.adb: Likewise.
	* libgnarl/s-osinte__dragonfly.ads: Likewise.
	* libgnarl/s-osinte__dummy.ads: Likewise.
	* libgnarl/s-osinte__freebsd.adb: Likewise.
	* libgnarl/s-osinte__freebsd.ads: Likewise.
	* libgnarl/s-osinte__gnu.adb: Likewise.
	* libgnarl/s-osinte__gnu.ads: Likewise.
	* libgnarl/s-osinte__hpux-dce.adb: Likewise.
	* libgnarl/s-osinte__hpux-dce.ads: Likewise.
	* libgnarl/s-osinte__hpux.ads: Likewise.
	* libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
	* libgnarl/s-osinte__linux.ads: Likewise.
	* libgnarl/s-osinte__lynxos178.adb: Likewise.
	* libgnarl/s-osinte__lynxos178e.ads: Likewise.
	* libgnarl/s-osinte__mingw.ads: Likewise.
	* libgnarl/s-osinte__posix.adb: Likewise.
	* libgnarl/s-osinte__qnx.adb: Likewise.
	* libgnarl/s-osinte__qnx.ads: Likewise.
	* libgnarl/s-osinte__rtems.adb: Likewise.
	* libgnarl/s-osinte__rtems.ads: Likewise.
	* libgnarl/s-osinte__solaris.adb: Likewise.
	* libgnarl/s-osinte__solaris.ads: Likewise.
	* libgnarl/s-osinte__vxworks.adb: Likewise.
	* libgnarl/s-osinte__vxworks.ads: Likewise.
	* libgnarl/s-osinte__x32.adb: Likewise.
	* libgnarl/s-proinf.adb: Likewise.
	* libgnarl/s-proinf.ads: Likewise.
	* libgnarl/s-putaim.adb: Likewise.
	* libgnarl/s-putaim.ads: Likewise.
	* libgnarl/s-qnx.ads: Likewise.
	* libgnarl/s-solita.adb: Likewise.
	* libgnarl/s-solita.ads: Likewise.
	* libgnarl/s-stusta.adb: Likewise.
	* libgnarl/s-stusta.ads: Likewise.
	* libgnarl/s-taasde.adb: Likewise.
	* libgnarl/s-taasde.ads: Likewise.
	* libgnarl/s-tadeca.adb: Likewise.
	* libgnarl/s-tadeca.ads: Likewise.
	* libgnarl/s-tadert.adb: Likewise.
	* libgnarl/s-tadert.ads: Likewise.
	* libgnarl/s-taenca.adb: Likewise.
	* libgnarl/s-taenca.ads: Likewise.
	* libgnarl/s-taprob.adb: Likewise.
	* libgnarl/s-taprob.ads: Likewise.
	* libgnarl/s-taprop.ads: Likewise.
	* libgnarl/s-taprop__dummy.adb: Likewise.
	* libgnarl/s-taprop__hpux-dce.adb: Likewise.
	* libgnarl/s-taprop__linux.adb: Likewise.
	* libgnarl/s-taprop__mingw.adb: Likewise.
	* libgnarl/s-taprop__posix.adb: Likewise.
	* libgnarl/s-taprop__qnx.adb: Likewise.
	* libgnarl/s-taprop__rtems.adb: Likewise.
	* libgnarl/s-taprop__solaris.adb: Likewise.
	* libgnarl/s-taprop__vxworks.adb: Likewise.
	* libgnarl/s-tarest.adb: Likewise.
	* libgnarl/s-tarest.ads: Likewise.
	* libgnarl/s-tasdeb.adb: Likewise.
	* libgnarl/s-tasdeb.ads: Likewise.
	* libgnarl/s-tasinf.adb: Likewise.
	* libgnarl/s-tasinf.ads: Likewise.
	* libgnarl/s-tasinf__linux.adb: Likewise.
	* libgnarl/s-tasinf__linux.ads: Likewise.
	* libgnarl/s-tasinf__mingw.adb: Likewise.
	* libgnarl/s-tasinf__mingw.ads: Likewise.
	* libgnarl/s-tasinf__solaris.adb: Likewise.
	* libgnarl/s-tasinf__solaris.ads: Likewise.
	* libgnarl/s-tasinf__vxworks.ads: Likewise.
	* libgnarl/s-tasini.adb: Likewise.
	* libgnarl/s-tasini.ads: Likewise.
	* libgnarl/s-taskin.adb: Likewise.
	* libgnarl/s-taskin.ads: Likewise.
	* libgnarl/s-taspri__dummy.ads: Likewise.
	* libgnarl/s-taspri__hpux-dce.ads: Likewise.
	* libgnarl/s-taspri__lynxos.ads: Likewise.
	* libgnarl/s-taspri__mingw.ads: Likewise.
	* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
	* libgnarl/s-taspri__posix.ads: Likewise.
	* libgnarl/s-taspri__solaris.ads: Likewise.
	* libgnarl/s-taspri__vxworks.ads: Likewise.
	* libgnarl/s-tasque.adb: Likewise.
	* libgnarl/s-tasque.ads: Likewise.
	* libgnarl/s-tasren.adb: Likewise.
	* libgnarl/s-tasren.ads: Likewise.
	* libgnarl/s-tasres.ads: Likewise.
	* libgnarl/s-tassta.adb: Likewise.
	* libgnarl/s-tassta.ads: Likewise.
	* libgnarl/s-tasuti.adb: Likewise.
	* libgnarl/s-tasuti.ads: Likewise.
	* libgnarl/s-tataat.adb: Likewise.
	* libgnarl/s-tataat.ads: Likewise.
	* libgnarl/s-tpinop.adb: Likewise.
	* libgnarl/s-tpinop.ads: Likewise.
	* libgnarl/s-tpoaal.adb: Likewise.
	* libgnarl/s-tpoben.adb: Likewise.
	* libgnarl/s-tpoben.ads: Likewise.
	* libgnarl/s-tpobmu.adb: Likewise.
	* libgnarl/s-tpobmu.ads: Likewise.
	* libgnarl/s-tpobop.adb: Likewise.
	* libgnarl/s-tpobop.ads: Likewise.
	* libgnarl/s-tpopmo.adb: Likewise.
	* libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
	* libgnarl/s-tpopsp__posix.adb: Likewise.
	* libgnarl/s-tpopsp__solaris.adb: Likewise.
	* libgnarl/s-tpopsp__tls.adb: Likewise.
	* libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
	* libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
	* libgnarl/s-tpopsp__vxworks.adb: Likewise.
	* libgnarl/s-tporft.adb: Likewise.
	* libgnarl/s-tposen.adb: Likewise.
	* libgnarl/s-tposen.ads: Likewise.
	* libgnarl/s-vxwext.adb: Likewise.
	* libgnarl/s-vxwext.ads: Likewise.
	* libgnarl/s-vxwext__kernel-smp.adb: Likewise.
	* libgnarl/s-vxwext__kernel.adb: Likewise.
	* libgnarl/s-vxwext__kernel.ads: Likewise.
	* libgnarl/s-vxwext__rtp-smp.adb: Likewise.
	* libgnarl/s-vxwext__rtp.adb: Likewise.
	* libgnarl/s-vxwext__rtp.ads: Likewise.
	* libgnarl/s-vxwork__aarch64.ads: Likewise.
	* libgnarl/s-vxwork__arm.ads: Likewise.
	* libgnarl/s-vxwork__ppc.ads: Likewise.
	* libgnarl/s-vxwork__x86.ads: Likewise.
	* libgnarl/thread.c: Likewise.
	* libgnat/a-assert.adb: Likewise.
	* libgnat/a-assert.ads: Likewise.
	* libgnat/a-btgbso.adb: Likewise.
	* libgnat/a-btgbso.ads: Likewise.
	* libgnat/a-calari.adb: Likewise.
	* libgnat/a-calari.ads: Likewise.
	* libgnat/a-calcon.adb: Likewise.
	* libgnat/a-calcon.ads: Likewise.
	* libgnat/a-caldel.adb: Likewise.
	* libgnat/a-caldel.ads: Likewise.
	* libgnat/a-calend.adb: Likewise.
	* libgnat/a-calend.ads: Likewise.
	* libgnat/a-calfor.adb: Likewise.
	* libgnat/a-calfor.ads: Likewise.
	* libgnat/a-catizo.adb: Likewise.
	* libgnat/a-cbdlli.adb: Likewise.
	* libgnat/a-cbdlli.ads: Likewise.
	* libgnat/a-cbhama.adb: Likewise.
	* libgnat/a-cbhama.ads: Likewise.
	* libgnat/a-cbhase.adb: Likewise.
	* libgnat/a-cbhase.ads: Likewise.
	* libgnat/a-cbmutr.adb: Likewise.
	* libgnat/a-cbmutr.ads: Likewise.
	* libgnat/a-cborma.adb: Likewise.
	* libgnat/a-cborma.ads: Likewise.
	* libgnat/a-cborse.adb: Likewise.
	* libgnat/a-cborse.ads: Likewise.
	* libgnat/a-cbprqu.adb: Likewise.
	* libgnat/a-cbprqu.ads: Likewise.
	* libgnat/a-cbsyqu.adb: Likewise.
	* libgnat/a-cbsyqu.ads: Likewise.
	* libgnat/a-cdlili.adb: Likewise.
	* libgnat/a-cdlili.ads: Likewise.
	* libgnat/a-cfdlli.adb: Likewise.
	* libgnat/a-cfdlli.ads: Likewise.
	* libgnat/a-cfhama.adb: Likewise.
	* libgnat/a-cfhama.ads: Likewise.
	* libgnat/a-cfhase.adb: Likewise.
	* libgnat/a-cfhase.ads: Likewise.
	* libgnat/a-cfinve.adb: Likewise.
	* libgnat/a-cfinve.ads: Likewise.
	* libgnat/a-cforma.adb: Likewise.
	* libgnat/a-cforma.ads: Likewise.
	* libgnat/a-cforse.adb: Likewise.
	* libgnat/a-cforse.ads: Likewise.
	* libgnat/a-cgaaso.adb: Likewise.
	* libgnat/a-cgaaso.ads: Likewise.
	* libgnat/a-cgarso.adb: Likewise.
	* libgnat/a-cgcaso.adb: Likewise.
	* libgnat/a-chacon.adb: Likewise.
	* libgnat/a-chacon.ads: Likewise.
	* libgnat/a-chahan.adb: Likewise.
	* libgnat/a-chahan.ads: Likewise.
	* libgnat/a-chlat9.ads: Likewise.
	* libgnat/a-chtgbk.adb: Likewise.
	* libgnat/a-chtgbk.ads: Likewise.
	* libgnat/a-chtgbo.adb: Likewise.
	* libgnat/a-chtgbo.ads: Likewise.
	* libgnat/a-chtgke.adb: Likewise.
	* libgnat/a-chtgke.ads: Likewise.
	* libgnat/a-chtgop.adb: Likewise.
	* libgnat/a-chtgop.ads: Likewise.
	* libgnat/a-chzla1.ads: Likewise.
	* libgnat/a-chzla9.ads: Likewise.
	* libgnat/a-cidlli.adb: Likewise.
	* libgnat/a-cidlli.ads: Likewise.
	* libgnat/a-cihama.adb: Likewise.
	* libgnat/a-cihama.ads: Likewise.
	* libgnat/a-cihase.adb: Likewise.
	* libgnat/a-cihase.ads: Likewise.
	* libgnat/a-cimutr.adb: Likewise.
	* libgnat/a-cimutr.ads: Likewise.
	* libgnat/a-ciorma.adb: Likewise.
	* libgnat/a-ciorma.ads: Likewise.
	* libgnat/a-ciormu.adb: Likewise.
	* libgnat/a-ciormu.ads: Likewise.
	* libgnat/a-ciorse.adb: Likewise.
	* libgnat/a-ciorse.ads: Likewise.
	* libgnat/a-clrefi.adb: Likewise.
	* libgnat/a-clrefi.ads: Likewise.
	* libgnat/a-coboho.adb: Likewise.
	* libgnat/a-coboho.ads: Likewise.
	* libgnat/a-cobove.adb: Likewise.
	* libgnat/a-cobove.ads: Likewise.
	* libgnat/a-cofove.adb: Likewise.
	* libgnat/a-cofove.ads: Likewise.
	* libgnat/a-cofuba.adb: Likewise.
	* libgnat/a-cofuba.ads: Likewise.
	* libgnat/a-cofuma.adb: Likewise.
	* libgnat/a-cofuma.ads: Likewise.
	* libgnat/a-cofuse.adb: Likewise.
	* libgnat/a-cofuse.ads: Likewise.
	* libgnat/a-cofuve.adb: Likewise.
	* libgnat/a-cofuve.ads: Likewise.
	* libgnat/a-cogeso.adb: Likewise.
	* libgnat/a-cogeso.ads: Likewise.
	* libgnat/a-cohama.adb: Likewise.
	* libgnat/a-cohama.ads: Likewise.
	* libgnat/a-cohase.adb: Likewise.
	* libgnat/a-cohase.ads: Likewise.
	* libgnat/a-cohata.ads: Likewise.
	* libgnat/a-coinho.adb: Likewise.
	* libgnat/a-coinho.ads: Likewise.
	* libgnat/a-coinho__shared.adb: Likewise.
	* libgnat/a-coinho__shared.ads: Likewise.
	* libgnat/a-coinve.adb: Likewise.
	* libgnat/a-coinve.ads: Likewise.
	* libgnat/a-colien.adb: Likewise.
	* libgnat/a-colien.ads: Likewise.
	* libgnat/a-colire.adb: Likewise.
	* libgnat/a-colire.ads: Likewise.
	* libgnat/a-comlin.adb: Likewise.
	* libgnat/a-comlin.ads: Likewise.
	* libgnat/a-comutr.adb: Likewise.
	* libgnat/a-comutr.ads: Likewise.
	* libgnat/a-conhel.adb: Likewise.
	* libgnat/a-conhel.ads: Likewise.
	* libgnat/a-convec.adb: Likewise.
	* libgnat/a-convec.ads: Likewise.
	* libgnat/a-coorma.adb: Likewise.
	* libgnat/a-coorma.ads: Likewise.
	* libgnat/a-coormu.adb: Likewise.
	* libgnat/a-coormu.ads: Likewise.
	* libgnat/a-coorse.adb: Likewise.
	* libgnat/a-coorse.ads: Likewise.
	* libgnat/a-coprnu.adb: Likewise.
	* libgnat/a-coprnu.ads: Likewise.
	* libgnat/a-costso.adb: Likewise.
	* libgnat/a-costso.ads: Likewise.
	* libgnat/a-crbltr.ads: Likewise.
	* libgnat/a-crbtgk.adb: Likewise.
	* libgnat/a-crbtgk.ads: Likewise.
	* libgnat/a-crbtgo.adb: Likewise.
	* libgnat/a-crbtgo.ads: Likewise.
	* libgnat/a-crdlli.adb: Likewise.
	* libgnat/a-crdlli.ads: Likewise.
	* libgnat/a-csquin.ads: Likewise.
	* libgnat/a-cuprqu.adb: Likewise.
	* libgnat/a-cuprqu.ads: Likewise.
	* libgnat/a-cusyqu.adb: Likewise.
	* libgnat/a-cusyqu.ads: Likewise.
	* libgnat/a-cwila1.ads: Likewise.
	* libgnat/a-cwila9.ads: Likewise.
	* libgnat/a-decima.adb: Likewise.
	* libgnat/a-decima.ads: Likewise.
	* libgnat/a-decima__128.ads: Likewise.
	* libgnat/a-dhfina.adb: Likewise.
	* libgnat/a-dhfina.ads: Likewise.
	* libgnat/a-diocst.adb: Likewise.
	* libgnat/a-diocst.ads: Likewise.
	* libgnat/a-direct.adb: Likewise.
	* libgnat/a-direct.ads: Likewise.
	* libgnat/a-direio.adb: Likewise.
	* libgnat/a-direio.ads: Likewise.
	* libgnat/a-dirval.adb: Likewise.
	* libgnat/a-dirval.ads: Likewise.
	* libgnat/a-dirval__mingw.adb: Likewise.
	* libgnat/a-einuoc.adb: Likewise.
	* libgnat/a-einuoc.ads: Likewise.
	* libgnat/a-elchha.adb: Likewise.
	* libgnat/a-elchha.ads: Likewise.
	* libgnat/a-envvar.adb: Likewise.
	* libgnat/a-excach.adb: Likewise.
	* libgnat/a-except.adb: Likewise.
	* libgnat/a-except.ads: Likewise.
	* libgnat/a-exctra.adb: Likewise.
	* libgnat/a-exctra.ads: Likewise.
	* libgnat/a-exexda.adb: Likewise.
	* libgnat/a-exexpr.adb: Likewise.
	* libgnat/a-exextr.adb: Likewise.
	* libgnat/a-exstat.adb: Likewise.
	* libgnat/a-finali.adb: Likewise.
	* libgnat/a-finali.ads: Likewise.
	* libgnat/a-locale.adb: Likewise.
	* libgnat/a-locale.ads: Likewise.
	* libgnat/a-nagefl.ads: Likewise.
	* libgnat/a-naliop.ads: Likewise.
	* libgnat/a-naliop__nolibm.ads: Likewise.
	* libgnat/a-nallfl.ads: Likewise.
	* libgnat/a-nallfl__wraplf.ads: Likewise.
	* libgnat/a-nalofl.ads: Likewise.
	* libgnat/a-nashfl.ads: Likewise.
	* libgnat/a-nashfl__wraplf.ads: Likewise.
	* libgnat/a-nbnbig.adb: Likewise.
	* libgnat/a-nbnbin.adb: Likewise.
	* libgnat/a-nbnbin__gmp.adb: Likewise.
	* libgnat/a-nbnbre.adb: Likewise.
	* libgnat/a-ngcefu.adb: Likewise.
	* libgnat/a-ngcoar.adb: Likewise.
	* libgnat/a-ngcoty.adb: Likewise.
	* libgnat/a-ngcoty.ads: Likewise.
	* libgnat/a-ngelfu.adb: Likewise.
	* libgnat/a-ngelfu.ads: Likewise.
	* libgnat/a-ngrear.adb: Likewise.
	* libgnat/a-ngrear.ads: Likewise.
	* libgnat/a-nuauco.ads: Likewise.
	* libgnat/a-nuauco__x86.ads: Likewise.
	* libgnat/a-nuaufl.ads: Likewise.
	* libgnat/a-nuaufl__wraplf.ads: Likewise.
	* libgnat/a-nudira.adb: Likewise.
	* libgnat/a-nudira.ads: Likewise.
	* libgnat/a-nuflra.adb: Likewise.
	* libgnat/a-nuflra.ads: Likewise.
	* libgnat/a-numaux.ads: Likewise.
	* libgnat/a-rbtgbk.adb: Likewise.
	* libgnat/a-rbtgbk.ads: Likewise.
	* libgnat/a-rbtgbo.adb: Likewise.
	* libgnat/a-rbtgbo.ads: Likewise.
	* libgnat/a-rbtgso.adb: Likewise.
	* libgnat/a-rbtgso.ads: Likewise.
	* libgnat/a-sbecin.adb: Likewise.
	* libgnat/a-sbecin.ads: Likewise.
	* libgnat/a-sbhcin.adb: Likewise.
	* libgnat/a-sbhcin.ads: Likewise.
	* libgnat/a-sblcin.adb: Likewise.
	* libgnat/a-sblcin.ads: Likewise.
	* libgnat/a-secain.adb: Likewise.
	* libgnat/a-secain.ads: Likewise.
	* libgnat/a-sequio.adb: Likewise.
	* libgnat/a-sequio.ads: Likewise.
	* libgnat/a-sfecin.ads: Likewise.
	* libgnat/a-sfhcin.ads: Likewise.
	* libgnat/a-sflcin.ads: Likewise.
	* libgnat/a-shcain.adb: Likewise.
	* libgnat/a-shcain.ads: Likewise.
	* libgnat/a-siocst.adb: Likewise.
	* libgnat/a-siocst.ads: Likewise.
	* libgnat/a-slcain.adb: Likewise.
	* libgnat/a-slcain.ads: Likewise.
	* libgnat/a-ssicst.adb: Likewise.
	* libgnat/a-ssicst.ads: Likewise.
	* libgnat/a-stboha.adb: Likewise.
	* libgnat/a-stbubo.adb: Likewise.
	* libgnat/a-stbubo.ads: Likewise.
	* libgnat/a-stbufi.adb: Likewise.
	* libgnat/a-stbufi.ads: Likewise.
	* libgnat/a-stbufo.adb: Likewise.
	* libgnat/a-stbufo.ads: Likewise.
	* libgnat/a-stbuun.adb: Likewise.
	* libgnat/a-stbuut.adb: Likewise.
	* libgnat/a-stbuut.ads: Likewise.
	* libgnat/a-stmaco.ads: Likewise.
	* libgnat/a-storio.adb: Likewise.
	* libgnat/a-strbou.adb: Likewise.
	* libgnat/a-strbou.ads: Likewise.
	* libgnat/a-stream.adb: Likewise.
	* libgnat/a-stream.ads: Likewise.
	* libgnat/a-strfix.adb: Likewise.
	* libgnat/a-strhas.adb: Likewise.
	* libgnat/a-strmap.adb: Likewise.
	* libgnat/a-strmap.ads: Likewise.
	* libgnat/a-strsea.adb: Likewise.
	* libgnat/a-strsea.ads: Likewise.
	* libgnat/a-strsto.ads: Likewise.
	* libgnat/a-strsup.adb: Likewise.
	* libgnat/a-strsup.ads: Likewise.
	* libgnat/a-strunb.adb: Likewise.
	* libgnat/a-strunb.ads: Likewise.
	* libgnat/a-strunb__shared.adb: Likewise.
	* libgnat/a-strunb__shared.ads: Likewise.
	* libgnat/a-ststbo.adb: Likewise.
	* libgnat/a-ststbo.ads: Likewise.
	* libgnat/a-ststio.adb: Likewise.
	* libgnat/a-ststio.ads: Likewise.
	* libgnat/a-ststun.adb: Likewise.
	* libgnat/a-ststun.ads: Likewise.
	* libgnat/a-sttebu.adb: Likewise.
	* libgnat/a-stunau.adb: Likewise.
	* libgnat/a-stunau.ads: Likewise.
	* libgnat/a-stunau__shared.adb: Likewise.
	* libgnat/a-stunha.adb: Likewise.
	* libgnat/a-stuten.adb: Likewise.
	* libgnat/a-stwibo.adb: Likewise.
	* libgnat/a-stwibo.ads: Likewise.
	* libgnat/a-stwifi.adb: Likewise.
	* libgnat/a-stwiha.adb: Likewise.
	* libgnat/a-stwima.adb: Likewise.
	* libgnat/a-stwima.ads: Likewise.
	* libgnat/a-stwise.adb: Likewise.
	* libgnat/a-stwise.ads: Likewise.
	* libgnat/a-stwisu.adb: Likewise.
	* libgnat/a-stwisu.ads: Likewise.
	* libgnat/a-stwiun.adb: Likewise.
	* libgnat/a-stwiun.ads: Likewise.
	* libgnat/a-stwiun__shared.adb: Likewise.
	* libgnat/a-stwiun__shared.ads: Likewise.
	* libgnat/a-stzbou.adb: Likewise.
	* libgnat/a-stzbou.ads: Likewise.
	* libgnat/a-stzfix.adb: Likewise.
	* libgnat/a-stzhas.adb: Likewise.
	* libgnat/a-stzmap.adb: Likewise.
	* libgnat/a-stzmap.ads: Likewise.
	* libgnat/a-stzsea.adb: Likewise.
	* libgnat/a-stzsea.ads: Likewise.
	* libgnat/a-stzsup.adb: Likewise.
	* libgnat/a-stzsup.ads: Likewise.
	* libgnat/a-stzunb.adb: Likewise.
	* libgnat/a-stzunb.ads: Likewise.
	* libgnat/a-stzunb__shared.adb: Likewise.
	* libgnat/a-stzunb__shared.ads: Likewise.
	* libgnat/a-suecin.adb: Likewise.
	* libgnat/a-suecin.ads: Likewise.
	* libgnat/a-suenco.adb: Likewise.
	* libgnat/a-suenst.adb: Likewise.
	* libgnat/a-suewst.adb: Likewise.
	* libgnat/a-suezst.adb: Likewise.
	* libgnat/a-suhcin.adb: Likewise.
	* libgnat/a-suhcin.ads: Likewise.
	* libgnat/a-sulcin.adb: Likewise.
	* libgnat/a-sulcin.ads: Likewise.
	* libgnat/a-suteio.adb: Likewise.
	* libgnat/a-suteio.ads: Likewise.
	* libgnat/a-suteio__shared.adb: Likewise.
	* libgnat/a-swbwha.adb: Likewise.
	* libgnat/a-swmwco.ads: Likewise.
	* libgnat/a-swunau.adb: Likewise.
	* libgnat/a-swunau.ads: Likewise.
	* libgnat/a-swunau__shared.adb: Likewise.
	* libgnat/a-swuwha.adb: Likewise.
	* libgnat/a-swuwti.adb: Likewise.
	* libgnat/a-swuwti.ads: Likewise.
	* libgnat/a-swuwti__shared.adb: Likewise.
	* libgnat/a-szbzha.adb: Likewise.
	* libgnat/a-szmzco.ads: Likewise.
	* libgnat/a-szunau.adb: Likewise.
	* libgnat/a-szunau.ads: Likewise.
	* libgnat/a-szunau__shared.adb: Likewise.
	* libgnat/a-szuzha.adb: Likewise.
	* libgnat/a-szuzti.adb: Likewise.
	* libgnat/a-szuzti.ads: Likewise.
	* libgnat/a-szuzti__shared.adb: Likewise.
	* libgnat/a-tags.adb: Likewise.
	* libgnat/a-tags.ads: Likewise.
	* libgnat/a-teioed.adb: Likewise.
	* libgnat/a-teioed.ads: Likewise.
	* libgnat/a-textio.adb: Likewise.
	* libgnat/a-textio.ads: Likewise.
	* libgnat/a-tiboio.adb: Likewise.
	* libgnat/a-ticoau.adb: Likewise.
	* libgnat/a-ticoau.ads: Likewise.
	* libgnat/a-ticoio.adb: Likewise.
	* libgnat/a-ticoio.ads: Likewise.
	* libgnat/a-tideau.adb: Likewise.
	* libgnat/a-tideau.ads: Likewise.
	* libgnat/a-tideio.adb: Likewise.
	* libgnat/a-tideio.ads: Likewise.
	* libgnat/a-tideio__128.adb: Likewise.
	* libgnat/a-tienau.adb: Likewise.
	* libgnat/a-tienau.ads: Likewise.
	* libgnat/a-tienio.adb: Likewise.
	* libgnat/a-tifiau.adb: Likewise.
	* libgnat/a-tifiau.ads: Likewise.
	* libgnat/a-tifiio.adb: Likewise.
	* libgnat/a-tifiio__128.adb: Likewise.
	* libgnat/a-tiflau.adb: Likewise.
	* libgnat/a-tiflau.ads: Likewise.
	* libgnat/a-tiflio.adb: Likewise.
	* libgnat/a-tiflio.ads: Likewise.
	* libgnat/a-tigeau.adb: Likewise.
	* libgnat/a-tigeau.ads: Likewise.
	* libgnat/a-tigeli.adb: Likewise.
	* libgnat/a-tiinau.adb: Likewise.
	* libgnat/a-tiinau.ads: Likewise.
	* libgnat/a-tiinio.adb: Likewise.
	* libgnat/a-tiinio.ads: Likewise.
	* libgnat/a-tiinio__128.adb: Likewise.
	* libgnat/a-timoio.adb: Likewise.
	* libgnat/a-timoio.ads: Likewise.
	* libgnat/a-timoio__128.adb: Likewise.
	* libgnat/a-tiocst.adb: Likewise.
	* libgnat/a-tiocst.ads: Likewise.
	* libgnat/a-tirsfi.adb: Likewise.
	* libgnat/a-tirsfi.ads: Likewise.
	* libgnat/a-titest.adb: Likewise.
	* libgnat/a-undesu.adb: Likewise.
	* libgnat/a-wichha.adb: Likewise.
	* libgnat/a-wichun.adb: Likewise.
	* libgnat/a-wichun.ads: Likewise.
	* libgnat/a-witeio.adb: Likewise.
	* libgnat/a-witeio.ads: Likewise.
	* libgnat/a-wrstfi.adb: Likewise.
	* libgnat/a-wrstfi.ads: Likewise.
	* libgnat/a-wtcoau.adb: Likewise.
	* libgnat/a-wtcoau.ads: Likewise.
	* libgnat/a-wtcoio.adb: Likewise.
	* libgnat/a-wtcstr.adb: Likewise.
	* libgnat/a-wtcstr.ads: Likewise.
	* libgnat/a-wtdeau.adb: Likewise.
	* libgnat/a-wtdeau.ads: Likewise.
	* libgnat/a-wtdeio.adb: Likewise.
	* libgnat/a-wtdeio__128.adb: Likewise.
	* libgnat/a-wtedit.adb: Likewise.
	* libgnat/a-wtedit.ads: Likewise.
	* libgnat/a-wtenau.adb: Likewise.
	* libgnat/a-wtenau.ads: Likewise.
	* libgnat/a-wtenio.adb: Likewise.
	* libgnat/a-wtfiau.adb: Likewise.
	* libgnat/a-wtfiau.ads: Likewise.
	* libgnat/a-wtfiio.adb: Likewise.
	* libgnat/a-wtfiio__128.adb: Likewise.
	* libgnat/a-wtflau.adb: Likewise.
	* libgnat/a-wtflau.ads: Likewise.
	* libgnat/a-wtflio.adb: Likewise.
	* libgnat/a-wtgeau.adb: Likewise.
	* libgnat/a-wtgeau.ads: Likewise.
	* libgnat/a-wtinau.adb: Likewise.
	* libgnat/a-wtinau.ads: Likewise.
	* libgnat/a-wtinio.adb: Likewise.
	* libgnat/a-wtinio__128.adb: Likewise.
	* libgnat/a-wtmoio.adb: Likewise.
	* libgnat/a-wtmoio.ads: Likewise.
	* libgnat/a-wtmoio__128.adb: Likewise.
	* libgnat/a-wttest.adb: Likewise.
	* libgnat/a-wwboio.adb: Likewise.
	* libgnat/a-zchhan.adb: Likewise.
	* libgnat/a-zchuni.adb: Likewise.
	* libgnat/a-zchuni.ads: Likewise.
	* libgnat/a-zrstfi.adb: Likewise.
	* libgnat/a-zrstfi.ads: Likewise.
	* libgnat/a-ztcoau.adb: Likewise.
	* libgnat/a-ztcoio.adb: Likewise.
	* libgnat/a-ztcstr.adb: Likewise.
	* libgnat/a-ztcstr.ads: Likewise.
	* libgnat/a-ztdeau.adb: Likewise.
	* libgnat/a-ztdeau.ads: Likewise.
	* libgnat/a-ztdeio.adb: Likewise.
	* libgnat/a-ztdeio__128.adb: Likewise.
	* libgnat/a-ztedit.adb: Likewise.
	* libgnat/a-ztedit.ads: Likewise.
	* libgnat/a-ztenau.adb: Likewise.
	* libgnat/a-ztenau.ads: Likewise.
	* libgnat/a-ztenio.adb: Likewise.
	* libgnat/a-ztexio.adb: Likewise.
	* libgnat/a-ztexio.ads: Likewise.
	* libgnat/a-ztfiau.adb: Likewise.
	* libgnat/a-ztfiau.ads: Likewise.
	* libgnat/a-ztfiio.adb: Likewise.
	* libgnat/a-ztfiio__128.adb: Likewise.
	* libgnat/a-ztflau.adb: Likewise.
	* libgnat/a-ztflau.ads: Likewise.
	* libgnat/a-ztflio.adb: Likewise.
	* libgnat/a-ztgeau.adb: Likewise.
	* libgnat/a-ztgeau.ads: Likewise.
	* libgnat/a-ztinau.adb: Likewise.
	* libgnat/a-ztinau.ads: Likewise.
	* libgnat/a-ztinio.adb: Likewise.
	* libgnat/a-ztinio__128.adb: Likewise.
	* libgnat/a-ztmoio.adb: Likewise.
	* libgnat/a-ztmoio__128.adb: Likewise.
	* libgnat/a-zttest.adb: Likewise.
	* libgnat/a-zzboio.adb: Likewise.
	* libgnat/g-allein.ads: Likewise.
	* libgnat/g-alleve.adb: Likewise.
	* libgnat/g-alleve.ads: Likewise.
	* libgnat/g-alleve__hard.adb: Likewise.
	* libgnat/g-alleve__hard.ads: Likewise.
	* libgnat/g-altcon.adb: Likewise.
	* libgnat/g-altcon.ads: Likewise.
	* libgnat/g-altive.ads: Likewise.
	* libgnat/g-alveop.adb: Likewise.
	* libgnat/g-alveop.ads: Likewise.
	* libgnat/g-alvety.ads: Likewise.
	* libgnat/g-alvevi.ads: Likewise.
	* libgnat/g-arrspl.adb: Likewise.
	* libgnat/g-arrspl.ads: Likewise.
	* libgnat/g-awk.adb: Likewise.
	* libgnat/g-awk.ads: Likewise.
	* libgnat/g-binenv.adb: Likewise.
	* libgnat/g-binenv.ads: Likewise.
	* libgnat/g-brapre.ads: Likewise.
	* libgnat/g-bubsor.adb: Likewise.
	* libgnat/g-bubsor.ads: Likewise.
	* libgnat/g-busora.adb: Likewise.
	* libgnat/g-busora.ads: Likewise.
	* libgnat/g-busorg.adb: Likewise.
	* libgnat/g-busorg.ads: Likewise.
	* libgnat/g-byorma.adb: Likewise.
	* libgnat/g-byorma.ads: Likewise.
	* libgnat/g-bytswa.adb: Likewise.
	* libgnat/g-bytswa.ads: Likewise.
	* libgnat/g-calend.adb: Likewise.
	* libgnat/g-calend.ads: Likewise.
	* libgnat/g-casuti.adb: Likewise.
	* libgnat/g-casuti.ads: Likewise.
	* libgnat/g-catiio.adb: Likewise.
	* libgnat/g-catiio.ads: Likewise.
	* libgnat/g-cgi.adb: Likewise.
	* libgnat/g-cgi.ads: Likewise.
	* libgnat/g-cgicoo.adb: Likewise.
	* libgnat/g-cgicoo.ads: Likewise.
	* libgnat/g-cgideb.adb: Likewise.
	* libgnat/g-cgideb.ads: Likewise.
	* libgnat/g-comlin.adb: Likewise.
	* libgnat/g-comlin.ads: Likewise.
	* libgnat/g-comver.adb: Likewise.
	* libgnat/g-comver.ads: Likewise.
	* libgnat/g-cppexc.adb: Likewise.
	* libgnat/g-cppexc.ads: Likewise.
	* libgnat/g-crc32.adb: Likewise.
	* libgnat/g-crc32.ads: Likewise.
	* libgnat/g-ctrl_c.adb: Likewise.
	* libgnat/g-ctrl_c.ads: Likewise.
	* libgnat/g-curexc.ads: Likewise.
	* libgnat/g-debpoo.adb: Likewise.
	* libgnat/g-debpoo.ads: Likewise.
	* libgnat/g-debuti.adb: Likewise.
	* libgnat/g-debuti.ads: Likewise.
	* libgnat/g-decstr.adb: Likewise.
	* libgnat/g-decstr.ads: Likewise.
	* libgnat/g-deutst.ads: Likewise.
	* libgnat/g-diopit.adb: Likewise.
	* libgnat/g-diopit.ads: Likewise.
	* libgnat/g-dirope.adb: Likewise.
	* libgnat/g-dirope.ads: Likewise.
	* libgnat/g-dynhta.adb: Likewise.
	* libgnat/g-dynhta.ads: Likewise.
	* libgnat/g-dyntab.adb: Likewise.
	* libgnat/g-dyntab.ads: Likewise.
	* libgnat/g-eacodu.adb: Likewise.
	* libgnat/g-encstr.adb: Likewise.
	* libgnat/g-encstr.ads: Likewise.
	* libgnat/g-enutst.ads: Likewise.
	* libgnat/g-excact.adb: Likewise.
	* libgnat/g-excact.ads: Likewise.
	* libgnat/g-except.ads: Likewise.
	* libgnat/g-exctra.adb: Likewise.
	* libgnat/g-exctra.ads: Likewise.
	* libgnat/g-expect.adb: Likewise.
	* libgnat/g-expect.ads: Likewise.
	* libgnat/g-exptty.adb: Likewise.
	* libgnat/g-exptty.ads: Likewise.
	* libgnat/g-flocon.ads: Likewise.
	* libgnat/g-forstr.adb: Likewise.
	* libgnat/g-forstr.ads: Likewise.
	* libgnat/g-graphs.adb: Likewise.
	* libgnat/g-graphs.ads: Likewise.
	* libgnat/g-heasor.adb: Likewise.
	* libgnat/g-heasor.ads: Likewise.
	* libgnat/g-hesora.adb: Likewise.
	* libgnat/g-hesora.ads: Likewise.
	* libgnat/g-hesorg.adb: Likewise.
	* libgnat/g-hesorg.ads: Likewise.
	* libgnat/g-htable.adb: Likewise.
	* libgnat/g-htable.ads: Likewise.
	* libgnat/g-io.adb: Likewise.
	* libgnat/g-io.ads: Likewise.
	* libgnat/g-io_aux.adb: Likewise.
	* libgnat/g-io_aux.ads: Likewise.
	* libgnat/g-lists.adb: Likewise.
	* libgnat/g-lists.ads: Likewise.
	* libgnat/g-locfil.adb: Likewise.
	* libgnat/g-locfil.ads: Likewise.
	* libgnat/g-mbdira.adb: Likewise.
	* libgnat/g-mbdira.ads: Likewise.
	* libgnat/g-mbflra.adb: Likewise.
	* libgnat/g-mbflra.ads: Likewise.
	* libgnat/g-md5.adb: Likewise.
	* libgnat/g-md5.ads: Likewise.
	* libgnat/g-memdum.adb: Likewise.
	* libgnat/g-memdum.ads: Likewise.
	* libgnat/g-moreex.adb: Likewise.
	* libgnat/g-moreex.ads: Likewise.
	* libgnat/g-os_lib.adb: Likewise.
	* libgnat/g-os_lib.ads: Likewise.
	* libgnat/g-pehage.adb: Likewise.
	* libgnat/g-pehage.ads: Likewise.
	* libgnat/g-rannum.adb: Likewise.
	* libgnat/g-rannum.ads: Likewise.
	* libgnat/g-regexp.adb: Likewise.
	* libgnat/g-regexp.ads: Likewise.
	* libgnat/g-regist.adb: Likewise.
	* libgnat/g-regist.ads: Likewise.
	* libgnat/g-regpat.adb: Likewise.
	* libgnat/g-regpat.ads: Likewise.
	* libgnat/g-rewdat.adb: Likewise.
	* libgnat/g-rewdat.ads: Likewise.
	* libgnat/g-sechas.adb: Likewise.
	* libgnat/g-sechas.ads: Likewise.
	* libgnat/g-sehamd.adb: Likewise.
	* libgnat/g-sehamd.ads: Likewise.
	* libgnat/g-sehash.adb: Likewise.
	* libgnat/g-sehash.ads: Likewise.
	* libgnat/g-sercom.adb: Likewise.
	* libgnat/g-sercom.ads: Likewise.
	* libgnat/g-sercom__linux.adb: Likewise.
	* libgnat/g-sercom__mingw.adb: Likewise.
	* libgnat/g-sestin.ads: Likewise.
	* libgnat/g-sets.adb: Likewise.
	* libgnat/g-sets.ads: Likewise.
	* libgnat/g-sha1.adb: Likewise.
	* libgnat/g-sha1.ads: Likewise.
	* libgnat/g-sha224.ads: Likewise.
	* libgnat/g-sha256.ads: Likewise.
	* libgnat/g-sha384.ads: Likewise.
	* libgnat/g-sha512.ads: Likewise.
	* libgnat/g-shsh32.adb: Likewise.
	* libgnat/g-shsh32.ads: Likewise.
	* libgnat/g-shsh64.adb: Likewise.
	* libgnat/g-shsh64.ads: Likewise.
	* libgnat/g-shshco.adb: Likewise.
	* libgnat/g-shshco.ads: Likewise.
	* libgnat/g-soccon.ads: Likewise.
	* libgnat/g-socket.adb: Likewise.
	* libgnat/g-socket.ads: Likewise.
	* libgnat/g-socket__dummy.adb: Likewise.
	* libgnat/g-socket__dummy.ads: Likewise.
	* libgnat/g-socpol.adb: Likewise.
	* libgnat/g-socpol.ads: Likewise.
	* libgnat/g-socpol__dummy.adb: Likewise.
	* libgnat/g-socpol__dummy.ads: Likewise.
	* libgnat/g-socthi.adb: Likewise.
	* libgnat/g-socthi.ads: Likewise.
	* libgnat/g-socthi__dummy.adb: Likewise.
	* libgnat/g-socthi__dummy.ads: Likewise.
	* libgnat/g-socthi__mingw.adb: Likewise.
	* libgnat/g-socthi__mingw.ads: Likewise.
	* libgnat/g-socthi__vxworks.adb: Likewise.
	* libgnat/g-socthi__vxworks.ads: Likewise.
	* libgnat/g-soliop.ads: Likewise.
	* libgnat/g-soliop__lynxos.ads: Likewise.
	* libgnat/g-soliop__mingw.ads: Likewise.
	* libgnat/g-soliop__qnx.ads: Likewise.
	* libgnat/g-soliop__solaris.ads: Likewise.
	* libgnat/g-sopowa.adb: Likewise.
	* libgnat/g-sopowa__mingw.adb: Likewise.
	* libgnat/g-sopowa__posix.adb: Likewise.
	* libgnat/g-sothco.adb: Likewise.
	* libgnat/g-sothco.ads: Likewise.
	* libgnat/g-sothco__dummy.adb: Likewise.
	* libgnat/g-sothco__dummy.ads: Likewise.
	* libgnat/g-souinf.ads: Likewise.
	* libgnat/g-spchge.adb: Likewise.
	* libgnat/g-spchge.ads: Likewise.
	* libgnat/g-speche.adb: Likewise.
	* libgnat/g-speche.ads: Likewise.
	* libgnat/g-spipat.adb: Likewise.
	* libgnat/g-spipat.ads: Likewise.
	* libgnat/g-spitbo.adb: Likewise.
	* libgnat/g-spitbo.ads: Likewise.
	* libgnat/g-spogwa.adb: Likewise.
	* libgnat/g-spogwa.ads: Likewise.
	* libgnat/g-sptabo.ads: Likewise.
	* libgnat/g-sptain.ads: Likewise.
	* libgnat/g-sptavs.ads: Likewise.
	* libgnat/g-sse.ads: Likewise.
	* libgnat/g-ssvety.ads: Likewise.
	* libgnat/g-sthcso.adb: Likewise.
	* libgnat/g-stheme.adb: Likewise.
	* libgnat/g-strhas.ads: Likewise.
	* libgnat/g-string.adb: Likewise.
	* libgnat/g-string.ads: Likewise.
	* libgnat/g-strspl.ads: Likewise.
	* libgnat/g-stseme.adb: Likewise.
	* libgnat/g-stsifd__sockets.adb: Likewise.
	* libgnat/g-table.adb: Likewise.
	* libgnat/g-table.ads: Likewise.
	* libgnat/g-tasloc.adb: Likewise.
	* libgnat/g-tasloc.ads: Likewise.
	* libgnat/g-timsta.adb: Likewise.
	* libgnat/g-timsta.ads: Likewise.
	* libgnat/g-traceb.adb: Likewise.
	* libgnat/g-traceb.ads: Likewise.
	* libgnat/g-trasym.adb: Likewise.
	* libgnat/g-trasym.ads: Likewise.
	* libgnat/g-tty.adb: Likewise.
	* libgnat/g-tty.ads: Likewise.
	* libgnat/g-u3spch.adb: Likewise.
	* libgnat/g-u3spch.ads: Likewise.
	* libgnat/g-utf_32.adb: Likewise.
	* libgnat/g-utf_32.ads: Likewise.
	* libgnat/g-wispch.adb: Likewise.
	* libgnat/g-wispch.ads: Likewise.
	* libgnat/g-wistsp.ads: Likewise.
	* libgnat/g-zspche.adb: Likewise.
	* libgnat/g-zspche.ads: Likewise.
	* libgnat/g-zstspl.ads: Likewise.
	* libgnat/gnat.ads: Likewise.
	* libgnat/i-c.adb: Likewise.
	* libgnat/i-cexten.ads: Likewise.
	* libgnat/i-cexten__128.ads: Likewise.
	* libgnat/i-cobol.adb: Likewise.
	* libgnat/i-cobol.ads: Likewise.
	* libgnat/i-cpoint.adb: Likewise.
	* libgnat/i-cpoint.ads: Likewise.
	* libgnat/i-cstrea.adb: Likewise.
	* libgnat/i-cstrea.ads: Likewise.
	* libgnat/i-cstrin.adb: Likewise.
	* libgnat/i-cstrin.ads: Likewise.
	* libgnat/i-fortra.adb: Likewise.
	* libgnat/i-pacdec.adb: Likewise.
	* libgnat/i-pacdec.ads: Likewise.
	* libgnat/i-vxwoio.adb: Likewise.
	* libgnat/i-vxwoio.ads: Likewise.
	* libgnat/i-vxwork.ads: Likewise.
	* libgnat/i-vxwork__x86.ads: Likewise.
	* libgnat/interfac.ads: Likewise.
	* libgnat/interfac__2020.ads: Likewise.
	* libgnat/memtrack.adb: Likewise.
	* libgnat/s-addima.adb: Likewise.
	* libgnat/s-addima.ads: Likewise.
	* libgnat/s-addope.adb: Likewise.
	* libgnat/s-addope.ads: Likewise.
	* libgnat/s-aoinar.adb: Likewise.
	* libgnat/s-aoinar.ads: Likewise.
	* libgnat/s-aomoar.adb: Likewise.
	* libgnat/s-aomoar.ads: Likewise.
	* libgnat/s-aotase.adb: Likewise.
	* libgnat/s-aotase.ads: Likewise.
	* libgnat/s-aridou.adb: Likewise.
	* libgnat/s-aridou.ads: Likewise.
	* libgnat/s-arit128.adb: Likewise.
	* libgnat/s-arit128.ads: Likewise.
	* libgnat/s-arit32.adb: Likewise.
	* libgnat/s-arit32.ads: Likewise.
	* libgnat/s-arit64.adb: Likewise.
	* libgnat/s-arit64.ads: Likewise.
	* libgnat/s-assert.adb: Likewise.
	* libgnat/s-assert.ads: Likewise.
	* libgnat/s-atacco.adb: Likewise.
	* libgnat/s-atacco.ads: Likewise.
	* libgnat/s-atocou.adb: Likewise.
	* libgnat/s-atocou.ads: Likewise.
	* libgnat/s-atocou__builtin.adb: Likewise.
	* libgnat/s-atoope.ads: Likewise.
	* libgnat/s-atopex.adb: Likewise.
	* libgnat/s-atopex.ads: Likewise.
	* libgnat/s-atopri.adb: Likewise.
	* libgnat/s-atopri.ads: Likewise.
	* libgnat/s-auxdec.adb: Likewise.
	* libgnat/s-auxdec.ads: Likewise.
	* libgnat/s-bignum.adb: Likewise.
	* libgnat/s-bignum.ads: Likewise.
	* libgnat/s-bitfie.ads: Likewise.
	* libgnat/s-bitops.adb: Likewise.
	* libgnat/s-bitops.ads: Likewise.
	* libgnat/s-bituti.adb: Likewise.
	* libgnat/s-bituti.ads: Likewise.
	* libgnat/s-boarop.ads: Likewise.
	* libgnat/s-boustr.adb: Likewise.
	* libgnat/s-boustr.ads: Likewise.
	* libgnat/s-bytswa.ads: Likewise.
	* libgnat/s-carsi8.adb: Likewise.
	* libgnat/s-carsi8.ads: Likewise.
	* libgnat/s-carun8.adb: Likewise.
	* libgnat/s-carun8.ads: Likewise.
	* libgnat/s-casi128.adb: Likewise.
	* libgnat/s-casi128.ads: Likewise.
	* libgnat/s-casi16.adb: Likewise.
	* libgnat/s-casi16.ads: Likewise.
	* libgnat/s-casi32.adb: Likewise.
	* libgnat/s-casi32.ads: Likewise.
	* libgnat/s-casi64.adb: Likewise.
	* libgnat/s-casi64.ads: Likewise.
	* libgnat/s-casuti.adb: Likewise.
	* libgnat/s-casuti.ads: Likewise.
	* libgnat/s-caun128.adb: Likewise.
	* libgnat/s-caun128.ads: Likewise.
	* libgnat/s-caun16.adb: Likewise.
	* libgnat/s-caun16.ads: Likewise.
	* libgnat/s-caun32.adb: Likewise.
	* libgnat/s-caun32.ads: Likewise.
	* libgnat/s-caun64.adb: Likewise.
	* libgnat/s-caun64.ads: Likewise.
	* libgnat/s-chepoo.ads: Likewise.
	* libgnat/s-commun.adb: Likewise.
	* libgnat/s-commun.ads: Likewise.
	* libgnat/s-conca2.adb: Likewise.
	* libgnat/s-conca2.ads: Likewise.
	* libgnat/s-conca3.adb: Likewise.
	* libgnat/s-conca3.ads: Likewise.
	* libgnat/s-conca4.adb: Likewise.
	* libgnat/s-conca4.ads: Likewise.
	* libgnat/s-conca5.adb: Likewise.
	* libgnat/s-conca5.ads: Likewise.
	* libgnat/s-conca6.adb: Likewise.
	* libgnat/s-conca6.ads: Likewise.
	* libgnat/s-conca7.adb: Likewise.
	* libgnat/s-conca7.ads: Likewise.
	* libgnat/s-conca8.adb: Likewise.
	* libgnat/s-conca8.ads: Likewise.
	* libgnat/s-conca9.adb: Likewise.
	* libgnat/s-conca9.ads: Likewise.
	* libgnat/s-crc32.adb: Likewise.
	* libgnat/s-crc32.ads: Likewise.
	* libgnat/s-crtl.ads: Likewise.
	* libgnat/s-dfmkio.ads: Likewise.
	* libgnat/s-dfmopr.ads: Likewise.
	* libgnat/s-dgmgop.ads: Likewise.
	* libgnat/s-diflio.adb: Likewise.
	* libgnat/s-diflio.ads: Likewise.
	* libgnat/s-diflmk.ads: Likewise.
	* libgnat/s-digemk.ads: Likewise.
	* libgnat/s-diinio.adb: Likewise.
	* libgnat/s-diinio.ads: Likewise.
	* libgnat/s-dilomk.ads: Likewise.
	* libgnat/s-dim.ads: Likewise.
	* libgnat/s-dimkio.ads: Likewise.
	* libgnat/s-dimmks.ads: Likewise.
	* libgnat/s-direio.adb: Likewise.
	* libgnat/s-direio.ads: Likewise.
	* libgnat/s-dlmkio.ads: Likewise.
	* libgnat/s-dlmopr.ads: Likewise.
	* libgnat/s-dmotpr.ads: Likewise.
	* libgnat/s-dorepr.adb: Likewise.
	* libgnat/s-dorepr__fma.adb: Likewise.
	* libgnat/s-dourea.adb: Likewise.
	* libgnat/s-dourea.ads: Likewise.
	* libgnat/s-dsaser.ads: Likewise.
	* libgnat/s-dwalin.adb: Likewise.
	* libgnat/s-dwalin.ads: Likewise.
	* libgnat/s-elaall.adb: Likewise.
	* libgnat/s-elaall.ads: Likewise.
	* libgnat/s-excdeb.adb: Likewise.
	* libgnat/s-excdeb.ads: Likewise.
	* libgnat/s-except.adb: Likewise.
	* libgnat/s-except.ads: Likewise.
	* libgnat/s-excmac__arm.adb: Likewise.
	* libgnat/s-excmac__arm.ads: Likewise.
	* libgnat/s-excmac__gcc.adb: Likewise.
	* libgnat/s-excmac__gcc.ads: Likewise.
	* libgnat/s-exctab.adb: Likewise.
	* libgnat/s-exctab.ads: Likewise.
	* libgnat/s-exctra.adb: Likewise.
	* libgnat/s-exctra.ads: Likewise.
	* libgnat/s-exnflt.ads: Likewise.
	* libgnat/s-exnint.adb: Likewise.
	* libgnat/s-exnint.ads: Likewise.
	* libgnat/s-exnlfl.ads: Likewise.
	* libgnat/s-exnllf.adb: Likewise.
	* libgnat/s-exnllf.ads: Likewise.
	* libgnat/s-exnlli.adb: Likewise.
	* libgnat/s-exnlli.ads: Likewise.
	* libgnat/s-exnllli.ads: Likewise.
	* libgnat/s-expint.adb: Likewise.
	* libgnat/s-expint.ads: Likewise.
	* libgnat/s-explli.adb: Likewise.
	* libgnat/s-explli.ads: Likewise.
	* libgnat/s-expllli.ads: Likewise.
	* libgnat/s-explllu.ads: Likewise.
	* libgnat/s-expllu.adb: Likewise.
	* libgnat/s-expllu.ads: Likewise.
	* libgnat/s-expmod.adb: Likewise.
	* libgnat/s-expmod.ads: Likewise.
	* libgnat/s-exponn.adb: Likewise.
	* libgnat/s-exponn.ads: Likewise.
	* libgnat/s-exponr.adb: Likewise.
	* libgnat/s-exponr.ads: Likewise.
	* libgnat/s-expont.adb: Likewise.
	* libgnat/s-expont.ads: Likewise.
	* libgnat/s-exponu.adb: Likewise.
	* libgnat/s-exponu.ads: Likewise.
	* libgnat/s-expuns.adb: Likewise.
	* libgnat/s-expuns.ads: Likewise.
	* libgnat/s-fatflt.ads: Likewise.
	* libgnat/s-fatgen.adb: Likewise.
	* libgnat/s-fatgen.ads: Likewise.
	* libgnat/s-fatlfl.ads: Likewise.
	* libgnat/s-fatllf.ads: Likewise.
	* libgnat/s-ficobl.ads: Likewise.
	* libgnat/s-filatt.ads: Likewise.
	* libgnat/s-fileio.adb: Likewise.
	* libgnat/s-fileio.ads: Likewise.
	* libgnat/s-finmas.adb: Likewise.
	* libgnat/s-finmas.ads: Likewise.
	* libgnat/s-finroo.adb: Likewise.
	* libgnat/s-finroo.ads: Likewise.
	* libgnat/s-flocon.adb: Likewise.
	* libgnat/s-flocon.ads: Likewise.
	* libgnat/s-flocon__none.adb: Likewise.
	* libgnat/s-fode128.ads: Likewise.
	* libgnat/s-fode32.ads: Likewise.
	* libgnat/s-fode64.ads: Likewise.
	* libgnat/s-fofi128.ads: Likewise.
	* libgnat/s-fofi32.ads: Likewise.
	* libgnat/s-fofi64.ads: Likewise.
	* libgnat/s-fore_d.adb: Likewise.
	* libgnat/s-fore_d.ads: Likewise.
	* libgnat/s-fore_f.adb: Likewise.
	* libgnat/s-fore_f.ads: Likewise.
	* libgnat/s-forrea.adb: Likewise.
	* libgnat/s-forrea.ads: Likewise.
	* libgnat/s-gearop.adb: Likewise.
	* libgnat/s-gearop.ads: Likewise.
	* libgnat/s-genbig.adb: Likewise.
	* libgnat/s-genbig.ads: Likewise.
	* libgnat/s-geveop.adb: Likewise.
	* libgnat/s-geveop.ads: Likewise.
	* libgnat/s-gloloc.adb: Likewise.
	* libgnat/s-gloloc.ads: Likewise.
	* libgnat/s-gloloc__mingw.adb: Likewise.
	* libgnat/s-htable.adb: Likewise.
	* libgnat/s-htable.ads: Likewise.
	* libgnat/s-imageb.adb: Likewise.
	* libgnat/s-imageb.ads: Likewise.
	* libgnat/s-imaged.adb: Likewise.
	* libgnat/s-imaged.ads: Likewise.
	* libgnat/s-imagef.adb: Likewise.
	* libgnat/s-imagef.ads: Likewise.
	* libgnat/s-imagei.adb: Likewise.
	* libgnat/s-imagei.ads: Likewise.
	* libgnat/s-imagen.adb: Likewise.
	* libgnat/s-imagen.ads: Likewise.
	* libgnat/s-imager.adb: Likewise.
	* libgnat/s-imager.ads: Likewise.
	* libgnat/s-imageu.adb: Likewise.
	* libgnat/s-imageu.ads: Likewise.
	* libgnat/s-imagew.adb: Likewise.
	* libgnat/s-imagew.ads: Likewise.
	* libgnat/s-imde128.ads: Likewise.
	* libgnat/s-imde32.ads: Likewise.
	* libgnat/s-imde64.ads: Likewise.
	* libgnat/s-imen16.ads: Likewise.
	* libgnat/s-imen32.ads: Likewise.
	* libgnat/s-imenu8.ads: Likewise.
	* libgnat/s-imfi128.ads: Likewise.
	* libgnat/s-imfi32.ads: Likewise.
	* libgnat/s-imfi64.ads: Likewise.
	* libgnat/s-imgbiu.adb: Likewise.
	* libgnat/s-imgbiu.ads: Likewise.
	* libgnat/s-imgboo.adb: Likewise.
	* libgnat/s-imgboo.ads: Likewise.
	* libgnat/s-imgcha.adb: Likewise.
	* libgnat/s-imgcha.ads: Likewise.
	* libgnat/s-imgflt.ads: Likewise.
	* libgnat/s-imgint.adb: Likewise.
	* libgnat/s-imgint.ads: Likewise.
	* libgnat/s-imglfl.ads: Likewise.
	* libgnat/s-imgllb.adb: Likewise.
	* libgnat/s-imgllb.ads: Likewise.
	* libgnat/s-imgllf.ads: Likewise.
	* libgnat/s-imglli.adb: Likewise.
	* libgnat/s-imglli.ads: Likewise.
	* libgnat/s-imglllb.ads: Likewise.
	* libgnat/s-imgllli.ads: Likewise.
	* libgnat/s-imglllu.ads: Likewise.
	* libgnat/s-imglllw.ads: Likewise.
	* libgnat/s-imgllu.adb: Likewise.
	* libgnat/s-imgllu.ads: Likewise.
	* libgnat/s-imgllw.adb: Likewise.
	* libgnat/s-imgllw.ads: Likewise.
	* libgnat/s-imgrea.adb: Likewise.
	* libgnat/s-imgrea.ads: Likewise.
	* libgnat/s-imguns.adb: Likewise.
	* libgnat/s-imguns.ads: Likewise.
	* libgnat/s-imguti.adb: Likewise.
	* libgnat/s-imguti.ads: Likewise.
	* libgnat/s-imgwch.adb: Likewise.
	* libgnat/s-imgwch.ads: Likewise.
	* libgnat/s-imgwiu.adb: Likewise.
	* libgnat/s-imgwiu.ads: Likewise.
	* libgnat/s-io.adb: Likewise.
	* libgnat/s-io.ads: Likewise.
	* libgnat/s-llflex.ads: Likewise.
	* libgnat/s-maccod.ads: Likewise.
	* libgnat/s-mantis.adb: Likewise.
	* libgnat/s-mantis.ads: Likewise.
	* libgnat/s-mastop.adb: Likewise.
	* libgnat/s-mastop.ads: Likewise.
	* libgnat/s-memcop.ads: Likewise.
	* libgnat/s-memory.adb: Likewise.
	* libgnat/s-memory.ads: Likewise.
	* libgnat/s-mmap.adb: Likewise.
	* libgnat/s-mmap.ads: Likewise.
	* libgnat/s-mmauni__long.ads: Likewise.
	* libgnat/s-mmosin__mingw.adb: Likewise.
	* libgnat/s-mmosin__mingw.ads: Likewise.
	* libgnat/s-mmosin__unix.adb: Likewise.
	* libgnat/s-mmosin__unix.ads: Likewise.
	* libgnat/s-multip.adb: Likewise.
	* libgnat/s-objrea.adb: Likewise.
	* libgnat/s-objrea.ads: Likewise.
	* libgnat/s-optide.adb: Likewise.
	* libgnat/s-os_lib.adb: Likewise.
	* libgnat/s-os_lib.ads: Likewise.
	* libgnat/s-osprim.ads: Likewise.
	* libgnat/s-osprim__darwin.adb: Likewise.
	* libgnat/s-osprim__lynxos.ads: Likewise.
	* libgnat/s-osprim__mingw.adb: Likewise.
	* libgnat/s-osprim__posix.adb: Likewise.
	* libgnat/s-osprim__posix2008.adb: Likewise.
	* libgnat/s-osprim__rtems.adb: Likewise.
	* libgnat/s-osprim__solaris.adb: Likewise.
	* libgnat/s-osprim__unix.adb: Likewise.
	* libgnat/s-osprim__x32.adb: Likewise.
	* libgnat/s-pack03.adb: Likewise.
	* libgnat/s-pack03.ads: Likewise.
	* libgnat/s-pack05.adb: Likewise.
	* libgnat/s-pack05.ads: Likewise.
	* libgnat/s-pack06.adb: Likewise.
	* libgnat/s-pack06.ads: Likewise.
	* libgnat/s-pack07.adb: Likewise.
	* libgnat/s-pack07.ads: Likewise.
	* libgnat/s-pack09.adb: Likewise.
	* libgnat/s-pack09.ads: Likewise.
	* libgnat/s-pack10.adb: Likewise.
	* libgnat/s-pack10.ads: Likewise.
	* libgnat/s-pack100.adb: Likewise.
	* libgnat/s-pack100.ads: Likewise.
	* libgnat/s-pack101.adb: Likewise.
	* libgnat/s-pack101.ads: Likewise.
	* libgnat/s-pack102.adb: Likewise.
	* libgnat/s-pack102.ads: Likewise.
	* libgnat/s-pack103.adb: Likewise.
	* libgnat/s-pack103.ads: Likewise.
	* libgnat/s-pack104.adb: Likewise.
	* libgnat/s-pack104.ads: Likewise.
	* libgnat/s-pack105.adb: Likewise.
	* libgnat/s-pack105.ads: Likewise.
	* libgnat/s-pack106.adb: Likewise.
	* libgnat/s-pack106.ads: Likewise.
	* libgnat/s-pack107.adb: Likewise.
	* libgnat/s-pack107.ads: Likewise.
	* libgnat/s-pack108.adb: Likewise.
	* libgnat/s-pack108.ads: Likewise.
	* libgnat/s-pack109.adb: Likewise.
	* libgnat/s-pack109.ads: Likewise.
	* libgnat/s-pack11.adb: Likewise.
	* libgnat/s-pack11.ads: Likewise.
	* libgnat/s-pack110.adb: Likewise.
	* libgnat/s-pack110.ads: Likewise.
	* libgnat/s-pack111.adb: Likewise.
	* libgnat/s-pack111.ads: Likewise.
	* libgnat/s-pack112.adb: Likewise.
	* libgnat/s-pack112.ads: Likewise.
	* libgnat/s-pack113.adb: Likewise.
	* libgnat/s-pack113.ads: Likewise.
	* libgnat/s-pack114.adb: Likewise.
	* libgnat/s-pack114.ads: Likewise.
	* libgnat/s-pack115.adb: Likewise.
	* libgnat/s-pack115.ads: Likewise.
	* libgnat/s-pack116.adb: Likewise.
	* libgnat/s-pack116.ads: Likewise.
	* libgnat/s-pack117.adb: Likewise.
	* libgnat/s-pack117.ads: Likewise.
	* libgnat/s-pack118.adb: Likewise.
	* libgnat/s-pack118.ads: Likewise.
	* libgnat/s-pack119.adb: Likewise.
	* libgnat/s-pack119.ads: Likewise.
	* libgnat/s-pack12.adb: Likewise.
	* libgnat/s-pack12.ads: Likewise.
	* libgnat/s-pack120.adb: Likewise.
	* libgnat/s-pack120.ads: Likewise.
	* libgnat/s-pack121.adb: Likewise.
	* libgnat/s-pack121.ads: Likewise.
	* libgnat/s-pack122.adb: Likewise.
	* libgnat/s-pack122.ads: Likewise.
	* libgnat/s-pack123.adb: Likewise.
	* libgnat/s-pack123.ads: Likewise.
	* libgnat/s-pack124.adb: Likewise.
	* libgnat/s-pack124.ads: Likewise.
	* libgnat/s-pack125.adb: Likewise.
	* libgnat/s-pack125.ads: Likewise.
	* libgnat/s-pack126.adb: Likewise.
	* libgnat/s-pack126.ads: Likewise.
	* libgnat/s-pack127.adb: Likewise.
	* libgnat/s-pack127.ads: Likewise.
	* libgnat/s-pack13.adb: Likewise.
	* libgnat/s-pack13.ads: Likewise.
	* libgnat/s-pack14.adb: Likewise.
	* libgnat/s-pack14.ads: Likewise.
	* libgnat/s-pack15.adb: Likewise.
	* libgnat/s-pack15.ads: Likewise.
	* libgnat/s-pack17.adb: Likewise.
	* libgnat/s-pack17.ads: Likewise.
	* libgnat/s-pack18.adb: Likewise.
	* libgnat/s-pack18.ads: Likewise.
	* libgnat/s-pack19.adb: Likewise.
	* libgnat/s-pack19.ads: Likewise.
	* libgnat/s-pack20.adb: Likewise.
	* libgnat/s-pack20.ads: Likewise.
	* libgnat/s-pack21.adb: Likewise.
	* libgnat/s-pack21.ads: Likewise.
	* libgnat/s-pack22.adb: Likewise.
	* libgnat/s-pack22.ads: Likewise.
	* libgnat/s-pack23.adb: Likewise.
	* libgnat/s-pack23.ads: Likewise.
	* libgnat/s-pack24.adb: Likewise.
	* libgnat/s-pack24.ads: Likewise.
	* libgnat/s-pack25.adb: Likewise.
	* libgnat/s-pack25.ads: Likewise.
	* libgnat/s-pack26.adb: Likewise.
	* libgnat/s-pack26.ads: Likewise.
	* libgnat/s-pack27.adb: Likewise.
	* libgnat/s-pack27.ads: Likewise.
	* libgnat/s-pack28.adb: Likewise.
	* libgnat/s-pack28.ads: Likewise.
	* libgnat/s-pack29.adb: Likewise.
	* libgnat/s-pack29.ads: Likewise.
	* libgnat/s-pack30.adb: Likewise.
	* libgnat/s-pack30.ads: Likewise.
	* libgnat/s-pack31.adb: Likewise.
	* libgnat/s-pack31.ads: Likewise.
	* libgnat/s-pack33.adb: Likewise.
	* libgnat/s-pack33.ads: Likewise.
	* libgnat/s-pack34.adb: Likewise.
	* libgnat/s-pack34.ads: Likewise.
	* libgnat/s-pack35.adb: Likewise.
	* libgnat/s-pack35.ads: Likewise.
	* libgnat/s-pack36.adb: Likewise.
	* libgnat/s-pack36.ads: Likewise.
	* libgnat/s-pack37.adb: Likewise.
	* libgnat/s-pack37.ads: Likewise.
	* libgnat/s-pack38.adb: Likewise.
	* libgnat/s-pack38.ads: Likewise.
	* libgnat/s-pack39.adb: Likewise.
	* libgnat/s-pack39.ads: Likewise.
	* libgnat/s-pack40.adb: Likewise.
	* libgnat/s-pack40.ads: Likewise.
	* libgnat/s-pack41.adb: Likewise.
	* libgnat/s-pack41.ads: Likewise.
	* libgnat/s-pack42.adb: Likewise.
	* libgnat/s-pack42.ads: Likewise.
	* libgnat/s-pack43.adb: Likewise.
	* libgnat/s-pack43.ads: Likewise.
	* libgnat/s-pack44.adb: Likewise.
	* libgnat/s-pack44.ads: Likewise.
	* libgnat/s-pack45.adb: Likewise.
	* libgnat/s-pack45.ads: Likewise.
	* libgnat/s-pack46.adb: Likewise.
	* libgnat/s-pack46.ads: Likewise.
	* libgnat/s-pack47.adb: Likewise.
	* libgnat/s-pack47.ads: Likewise.
	* libgnat/s-pack48.adb: Likewise.
	* libgnat/s-pack48.ads: Likewise.
	* libgnat/s-pack49.adb: Likewise.
	* libgnat/s-pack49.ads: Likewise.
	* libgnat/s-pack50.adb: Likewise.
	* libgnat/s-pack50.ads: Likewise.
	* libgnat/s-pack51.adb: Likewise.
	* libgnat/s-pack51.ads: Likewise.
	* libgnat/s-pack52.adb: Likewise.
	* libgnat/s-pack52.ads: Likewise.
	* libgnat/s-pack53.adb: Likewise.
	* libgnat/s-pack53.ads: Likewise.
	* libgnat/s-pack54.adb: Likewise.
	* libgnat/s-pack54.ads: Likewise.
	* libgnat/s-pack55.adb: Likewise.
	* libgnat/s-pack55.ads: Likewise.
	* libgnat/s-pack56.adb: Likewise.
	* libgnat/s-pack56.ads: Likewise.
	* libgnat/s-pack57.adb: Likewise.
	* libgnat/s-pack57.ads: Likewise.
	* libgnat/s-pack58.adb: Likewise.
	* libgnat/s-pack58.ads: Likewise.
	* libgnat/s-pack59.adb: Likewise.
	* libgnat/s-pack59.ads: Likewise.
	* libgnat/s-pack60.adb: Likewise.
	* libgnat/s-pack60.ads: Likewise.
	* libgnat/s-pack61.adb: Likewise.
	* libgnat/s-pack61.ads: Likewise.
	* libgnat/s-pack62.adb: Likewise.
	* libgnat/s-pack62.ads: Likewise.
	* libgnat/s-pack63.adb: Likewise.
	* libgnat/s-pack63.ads: Likewise.
	* libgnat/s-pack65.adb: Likewise.
	* libgnat/s-pack65.ads: Likewise.
	* libgnat/s-pack66.adb: Likewise.
	* libgnat/s-pack66.ads: Likewise.
	* libgnat/s-pack67.adb: Likewise.
	* libgnat/s-pack67.ads: Likewise.
	* libgnat/s-pack68.adb: Likewise.
	* libgnat/s-pack68.ads: Likewise.
	* libgnat/s-pack69.adb: Likewise.
	* libgnat/s-pack69.ads: Likewise.
	* libgnat/s-pack70.adb: Likewise.
	* libgnat/s-pack70.ads: Likewise.
	* libgnat/s-pack71.adb: Likewise.
	* libgnat/s-pack71.ads: Likewise.
	* libgnat/s-pack72.adb: Likewise.
	* libgnat/s-pack72.ads: Likewise.
	* libgnat/s-pack73.adb: Likewise.
	* libgnat/s-pack73.ads: Likewise.
	* libgnat/s-pack74.adb: Likewise.
	* libgnat/s-pack74.ads: Likewise.
	* libgnat/s-pack75.adb: Likewise.
	* libgnat/s-pack75.ads: Likewise.
	* libgnat/s-pack76.adb: Likewise.
	* libgnat/s-pack76.ads: Likewise.
	* libgnat/s-pack77.adb: Likewise.
	* libgnat/s-pack77.ads: Likewise.
	* libgnat/s-pack78.adb: Likewise.
	* libgnat/s-pack78.ads: Likewise.
	* libgnat/s-pack79.adb: Likewise.
	* libgnat/s-pack79.ads: Likewise.
	* libgnat/s-pack80.adb: Likewise.
	* libgnat/s-pack80.ads: Likewise.
	* libgnat/s-pack81.adb: Likewise.
	* libgnat/s-pack81.ads: Likewise.
	* libgnat/s-pack82.adb: Likewise.
	* libgnat/s-pack82.ads: Likewise.
	* libgnat/s-pack83.adb: Likewise.
	* libgnat/s-pack83.ads: Likewise.
	* libgnat/s-pack84.adb: Likewise.
	* libgnat/s-pack84.ads: Likewise.
	* libgnat/s-pack85.adb: Likewise.
	* libgnat/s-pack85.ads: Likewise.
	* libgnat/s-pack86.adb: Likewise.
	* libgnat/s-pack86.ads: Likewise.
	* libgnat/s-pack87.adb: Likewise.
	* libgnat/s-pack87.ads: Likewise.
	* libgnat/s-pack88.adb: Likewise.
	* libgnat/s-pack88.ads: Likewise.
	* libgnat/s-pack89.adb: Likewise.
	* libgnat/s-pack89.ads: Likewise.
	* libgnat/s-pack90.adb: Likewise.
	* libgnat/s-pack90.ads: Likewise.
	* libgnat/s-pack91.adb: Likewise.
	* libgnat/s-pack91.ads: Likewise.
	* libgnat/s-pack92.adb: Likewise.
	* libgnat/s-pack92.ads: Likewise.
	* libgnat/s-pack93.adb: Likewise.
	* libgnat/s-pack93.ads: Likewise.
	* libgnat/s-pack94.adb: Likewise.
	* libgnat/s-pack94.ads: Likewise.
	* libgnat/s-pack95.adb: Likewise.
	* libgnat/s-pack95.ads: Likewise.
	* libgnat/s-pack96.adb: Likewise.
	* libgnat/s-pack96.ads: Likewise.
	* libgnat/s-pack97.adb: Likewise.
	* libgnat/s-pack97.ads: Likewise.
	* libgnat/s-pack98.adb: Likewise.
	* libgnat/s-pack98.ads: Likewise.
	* libgnat/s-pack99.adb: Likewise.
	* libgnat/s-pack99.ads: Likewise.
	* libgnat/s-parame.adb: Likewise.
	* libgnat/s-parame.ads: Likewise.
	* libgnat/s-parame__hpux.ads: Likewise.
	* libgnat/s-parame__posix2008.ads: Likewise.
	* libgnat/s-parame__rtems.adb: Likewise.
	* libgnat/s-parame__vxworks.adb: Likewise.
	* libgnat/s-parame__vxworks.ads: Likewise.
	* libgnat/s-parint.adb: Likewise.
	* libgnat/s-parint.ads: Likewise.
	* libgnat/s-pehage.adb: Likewise.
	* libgnat/s-pehage.ads: Likewise.
	* libgnat/s-pooglo.adb: Likewise.
	* libgnat/s-pooglo.ads: Likewise.
	* libgnat/s-pooloc.adb: Likewise.
	* libgnat/s-pooloc.ads: Likewise.
	* libgnat/s-poosiz.adb: Likewise.
	* libgnat/s-poosiz.ads: Likewise.
	* libgnat/s-powflt.ads: Likewise.
	* libgnat/s-powlfl.ads: Likewise.
	* libgnat/s-powllf.ads: Likewise.
	* libgnat/s-purexc.ads: Likewise.
	* libgnat/s-putima.adb: Likewise.
	* libgnat/s-putima.ads: Likewise.
	* libgnat/s-rannum.adb: Likewise.
	* libgnat/s-rannum.ads: Likewise.
	* libgnat/s-ransee.adb: Likewise.
	* libgnat/s-ransee.ads: Likewise.
	* libgnat/s-regexp.adb: Likewise.
	* libgnat/s-regexp.ads: Likewise.
	* libgnat/s-regpat.adb: Likewise.
	* libgnat/s-regpat.ads: Likewise.
	* libgnat/s-resfil.adb: Likewise.
	* libgnat/s-resfil.ads: Likewise.
	* libgnat/s-restri.adb: Likewise.
	* libgnat/s-restri.ads: Likewise.
	* libgnat/s-rident.ads: Likewise.
	* libgnat/s-rpc.adb: Likewise.
	* libgnat/s-rpc.ads: Likewise.
	* libgnat/s-scaval.adb: Likewise.
	* libgnat/s-scaval.ads: Likewise.
	* libgnat/s-scaval__128.adb: Likewise.
	* libgnat/s-scaval__128.ads: Likewise.
	* libgnat/s-secsta.adb: Likewise.
	* libgnat/s-secsta.ads: Likewise.
	* libgnat/s-sequio.adb: Likewise.
	* libgnat/s-sequio.ads: Likewise.
	* libgnat/s-shabig.ads: Likewise.
	* libgnat/s-shasto.adb: Likewise.
	* libgnat/s-shasto.ads: Likewise.
	* libgnat/s-soflin.adb: Likewise.
	* libgnat/s-soflin.ads: Likewise.
	* libgnat/s-soliin.adb: Likewise.
	* libgnat/s-soliin.ads: Likewise.
	* libgnat/s-spsufi.adb: Likewise.
	* libgnat/s-spsufi.ads: Likewise.
	* libgnat/s-stache.adb: Likewise.
	* libgnat/s-stache.ads: Likewise.
	* libgnat/s-stalib.adb: Likewise.
	* libgnat/s-stalib.ads: Likewise.
	* libgnat/s-statxd.adb: Likewise.
	* libgnat/s-statxd.ads: Likewise.
	* libgnat/s-stausa.adb: Likewise.
	* libgnat/s-stausa.ads: Likewise.
	* libgnat/s-stchop.adb: Likewise.
	* libgnat/s-stchop.ads: Likewise.
	* libgnat/s-stchop__limit.ads: Likewise.
	* libgnat/s-stchop__vxworks.adb: Likewise.
	* libgnat/s-stoele.adb: Likewise.
	* libgnat/s-stoele.ads: Likewise.
	* libgnat/s-stopoo.adb: Likewise.
	* libgnat/s-stopoo.ads: Likewise.
	* libgnat/s-stposu.adb: Likewise.
	* libgnat/s-stposu.ads: Likewise.
	* libgnat/s-stratt.adb: Likewise.
	* libgnat/s-stratt.ads: Likewise.
	* libgnat/s-strcom.adb: Likewise.
	* libgnat/s-strcom.ads: Likewise.
	* libgnat/s-strhas.adb: Likewise.
	* libgnat/s-strhas.ads: Likewise.
	* libgnat/s-string.adb: Likewise.
	* libgnat/s-string.ads: Likewise.
	* libgnat/s-ststop.adb: Likewise.
	* libgnat/s-ststop.ads: Likewise.
	* libgnat/s-tasloc.adb: Likewise.
	* libgnat/s-tasloc.ads: Likewise.
	* libgnat/s-traceb.adb: Likewise.
	* libgnat/s-traceb.ads: Likewise.
	* libgnat/s-traceb__hpux.adb: Likewise.
	* libgnat/s-traceb__mastop.adb: Likewise.
	* libgnat/s-traent.adb: Likewise.
	* libgnat/s-traent.ads: Likewise.
	* libgnat/s-trasym.adb: Likewise.
	* libgnat/s-trasym.ads: Likewise.
	* libgnat/s-trasym__dwarf.adb: Likewise.
	* libgnat/s-tsmona.adb: Likewise.
	* libgnat/s-tsmona__linux.adb: Likewise.
	* libgnat/s-tsmona__mingw.adb: Likewise.
	* libgnat/s-unstyp.ads: Likewise.
	* libgnat/s-utf_32.adb: Likewise.
	* libgnat/s-utf_32.ads: Likewise.
	* libgnat/s-vade128.ads: Likewise.
	* libgnat/s-vade32.ads: Likewise.
	* libgnat/s-vade64.ads: Likewise.
	* libgnat/s-vaen16.ads: Likewise.
	* libgnat/s-vaen32.ads: Likewise.
	* libgnat/s-vaenu8.ads: Likewise.
	* libgnat/s-vafi128.ads: Likewise.
	* libgnat/s-vafi32.ads: Likewise.
	* libgnat/s-vafi64.ads: Likewise.
	* libgnat/s-valboo.adb: Likewise.
	* libgnat/s-valboo.ads: Likewise.
	* libgnat/s-valcha.adb: Likewise.
	* libgnat/s-valcha.ads: Likewise.
	* libgnat/s-valflt.ads: Likewise.
	* libgnat/s-valint.adb: Likewise.
	* libgnat/s-valint.ads: Likewise.
	* libgnat/s-vallfl.ads: Likewise.
	* libgnat/s-valllf.ads: Likewise.
	* libgnat/s-vallli.adb: Likewise.
	* libgnat/s-vallli.ads: Likewise.
	* libgnat/s-valllli.ads: Likewise.
	* libgnat/s-vallllu.ads: Likewise.
	* libgnat/s-valllu.adb: Likewise.
	* libgnat/s-valllu.ads: Likewise.
	* libgnat/s-valrea.adb: Likewise.
	* libgnat/s-valrea.ads: Likewise.
	* libgnat/s-valued.adb: Likewise.
	* libgnat/s-valued.ads: Likewise.
	* libgnat/s-valuef.adb: Likewise.
	* libgnat/s-valuef.ads: Likewise.
	* libgnat/s-valuei.adb: Likewise.
	* libgnat/s-valuei.ads: Likewise.
	* libgnat/s-valuen.adb: Likewise.
	* libgnat/s-valuen.ads: Likewise.
	* libgnat/s-valuer.adb: Likewise.
	* libgnat/s-valuer.ads: Likewise.
	* libgnat/s-valueu.adb: Likewise.
	* libgnat/s-valueu.ads: Likewise.
	* libgnat/s-valuns.adb: Likewise.
	* libgnat/s-valuns.ads: Likewise.
	* libgnat/s-valuti.adb: Likewise.
	* libgnat/s-valuti.ads: Likewise.
	* libgnat/s-valwch.adb: Likewise.
	* libgnat/s-valwch.ads: Likewise.
	* libgnat/s-veboop.adb: Likewise.
	* libgnat/s-veboop.ads: Likewise.
	* libgnat/s-vector.ads: Likewise.
	* libgnat/s-vercon.adb: Likewise.
	* libgnat/s-vercon.ads: Likewise.
	* libgnat/s-wchcnv.adb: Likewise.
	* libgnat/s-wchcnv.ads: Likewise.
	* libgnat/s-wchcon.adb: Likewise.
	* libgnat/s-wchcon.ads: Likewise.
	* libgnat/s-wchjis.adb: Likewise.
	* libgnat/s-wchjis.ads: Likewise.
	* libgnat/s-wchstw.adb: Likewise.
	* libgnat/s-wchstw.ads: Likewise.
	* libgnat/s-wchwts.adb: Likewise.
	* libgnat/s-wchwts.ads: Likewise.
	* libgnat/s-widboo.adb: Likewise.
	* libgnat/s-widboo.ads: Likewise.
	* libgnat/s-widcha.adb: Likewise.
	* libgnat/s-widcha.ads: Likewise.
	* libgnat/s-widenu.adb: Likewise.
	* libgnat/s-widenu.ads: Likewise.
	* libgnat/s-widint.ads: Likewise.
	* libgnat/s-widlli.adb: Likewise.
	* libgnat/s-widlli.ads: Likewise.
	* libgnat/s-widllli.ads: Likewise.
	* libgnat/s-widlllu.ads: Likewise.
	* libgnat/s-widllu.adb: Likewise.
	* libgnat/s-widllu.ads: Likewise.
	* libgnat/s-widthi.adb: Likewise.
	* libgnat/s-widthi.ads: Likewise.
	* libgnat/s-widthu.adb: Likewise.
	* libgnat/s-widthu.ads: Likewise.
	* libgnat/s-widuns.ads: Likewise.
	* libgnat/s-widwch.adb: Likewise.
	* libgnat/s-widwch.ads: Likewise.
	* libgnat/s-win32.ads: Likewise.
	* libgnat/s-winext.ads: Likewise.
	* libgnat/s-wwdcha.adb: Likewise.
	* libgnat/s-wwdcha.ads: Likewise.
	* libgnat/s-wwdenu.adb: Likewise.
	* libgnat/s-wwdenu.ads: Likewise.
	* libgnat/s-wwdwch.adb: Likewise.
	* libgnat/s-wwdwch.ads: Likewise.
	* libgnat/system-aix.ads: Likewise.
	* libgnat/system-darwin-arm.ads: Likewise.
	* libgnat/system-darwin-ppc.ads: Likewise.
	* libgnat/system-darwin-x86.ads: Likewise.
	* libgnat/system-djgpp.ads: Likewise.
	* libgnat/system-dragonfly-x86_64.ads: Likewise.
	* libgnat/system-freebsd.ads: Likewise.
	* libgnat/system-hpux-ia64.ads: Likewise.
	* libgnat/system-hpux.ads: Likewise.
	* libgnat/system-linux-alpha.ads: Likewise.
	* libgnat/system-linux-arm.ads: Likewise.
	* libgnat/system-linux-hppa.ads: Likewise.
	* libgnat/system-linux-ia64.ads: Likewise.
	* libgnat/system-linux-m68k.ads: Likewise.
	* libgnat/system-linux-mips.ads: Likewise.
	* libgnat/system-linux-ppc.ads: Likewise.
	* libgnat/system-linux-riscv.ads: Likewise.
	* libgnat/system-linux-s390.ads: Likewise.
	* libgnat/system-linux-sh4.ads: Likewise.
	* libgnat/system-linux-sparc.ads: Likewise.
	* libgnat/system-linux-x86.ads: Likewise.
	* libgnat/system-lynxos178-ppc.ads: Likewise.
	* libgnat/system-lynxos178-x86.ads: Likewise.
	* libgnat/system-mingw.ads: Likewise.
	* libgnat/system-qnx-aarch64.ads: Likewise.
	* libgnat/system-rtems.ads: Likewise.
	* libgnat/system-solaris-sparc.ads: Likewise.
	* libgnat/system-solaris-x86.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp.ads: Likewise.
	* libgnat/system-vxworks-arm.ads: Likewise.
	* libgnat/system-vxworks-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-aarch64.ads: Likewise.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-arm.ads: Likewise.
	* libgnat/system-vxworks7-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
	* link.c: Likewise.
	* live.adb: Likewise.
	* live.ads: Likewise.
	* locales.c: Likewise.
	* make.adb: Likewise.
	* make.ads: Likewise.
	* make_util.adb: Likewise.
	* make_util.ads: Likewise.
	* makeusg.adb: Likewise.
	* makeusg.ads: Likewise.
	* mdll-fil.adb: Likewise.
	* mdll-fil.ads: Likewise.
	* mdll-utl.adb: Likewise.
	* mdll-utl.ads: Likewise.
	* mdll.adb: Likewise.
	* mdll.ads: Likewise.
	* mingw32.h: Likewise.
	* mkdir.c: Likewise.
	* namet-sp.adb: Likewise.
	* namet-sp.ads: Likewise.
	* namet.adb: Likewise.
	* namet.ads: Likewise.
	* namet.h: Likewise.
	* nlists.adb: Likewise.
	* nlists.ads: Likewise.
	* nlists.h: Likewise.
	* opt.adb: Likewise.
	* opt.ads: Likewise.
	* osint-b.adb: Likewise.
	* osint-b.ads: Likewise.
	* osint-c.adb: Likewise.
	* osint-c.ads: Likewise.
	* osint-l.adb: Likewise.
	* osint-l.ads: Likewise.
	* osint-m.adb: Likewise.
	* osint-m.ads: Likewise.
	* osint.adb: Likewise.
	* osint.ads: Likewise.
	* output.adb: Likewise.
	* output.ads: Likewise.
	* par-ch10.adb: Likewise.
	* par-ch11.adb: Likewise.
	* par-ch12.adb: Likewise.
	* par-ch13.adb: Likewise.
	* par-ch2.adb: Likewise.
	* par-ch3.adb: Likewise.
	* par-ch4.adb: Likewise.
	* par-ch5.adb: Likewise.
	* par-ch6.adb: Likewise.
	* par-ch7.adb: Likewise.
	* par-ch8.adb: Likewise.
	* par-ch9.adb: Likewise.
	* par-endh.adb: Likewise.
	* par-labl.adb: Likewise.
	* par-load.adb: Likewise.
	* par-prag.adb: Likewise.
	* par-sync.adb: Likewise.
	* par-tchk.adb: Likewise.
	* par-util.adb: Likewise.
	* par.adb: Likewise.
	* par.ads: Likewise.
	* par_sco.adb: Likewise.
	* par_sco.ads: Likewise.
	* pprint.adb: Likewise.
	* pprint.ads: Likewise.
	* prep.adb: Likewise.
	* prep.ads: Likewise.
	* prepcomp.adb: Likewise.
	* prepcomp.ads: Likewise.
	* put_scos.adb: Likewise.
	* put_scos.ads: Likewise.
	* raise-gcc.c: Likewise.
	* raise.c: Likewise.
	* raise.h: Likewise.
	* repinfo-input.adb: Likewise.
	* repinfo-input.ads: Likewise.
	* repinfo.adb: Likewise.
	* repinfo.ads: Likewise.
	* repinfo.h: Likewise.
	* restrict.adb: Likewise.
	* restrict.ads: Likewise.
	* rident.ads: Likewise.
	* rtfinal.c: Likewise.
	* rtinit.c: Likewise.
	* rtsfind.adb: Likewise.
	* rtsfind.ads: Likewise.
	* runtime.h: Likewise.
	* s-oscons-tmplt.c: Likewise.
	* sa_messages.adb: Likewise.
	* sa_messages.ads: Likewise.
	* scans.adb: Likewise.
	* scans.ads: Likewise.
	* scil_ll.adb: Likewise.
	* scil_ll.ads: Likewise.
	* scn.adb: Likewise.
	* scn.ads: Likewise.
	* scng.adb: Likewise.
	* scng.ads: Likewise.
	* scos.adb: Likewise.
	* scos.ads: Likewise.
	* scos.h: Likewise.
	* sdefault.ads: Likewise.
	* seh_init.c: Likewise.
	* sem.adb: Likewise.
	* sem.ads: Likewise.
	* sem_aggr.adb: Likewise.
	* sem_aggr.ads: Likewise.
	* sem_attr.adb: Likewise.
	* sem_attr.ads: Likewise.
	* sem_aux.adb: Likewise.
	* sem_aux.ads: Likewise.
	* sem_case.adb: Likewise.
	* sem_case.ads: Likewise.
	* sem_cat.adb: Likewise.
	* sem_cat.ads: Likewise.
	* sem_ch10.adb: Likewise.
	* sem_ch10.ads: Likewise.
	* sem_ch11.adb: Likewise.
	* sem_ch11.ads: Likewise.
	* sem_ch12.adb: Likewise.
	* sem_ch12.ads: Likewise.
	* sem_ch13.adb: Likewise.
	* sem_ch13.ads: Likewise.
	* sem_ch2.adb: Likewise.
	* sem_ch2.ads: Likewise.
	* sem_ch3.adb: Likewise.
	* sem_ch3.ads: Likewise.
	* sem_ch4.adb: Likewise.
	* sem_ch4.ads: Likewise.
	* sem_ch5.adb: Likewise.
	* sem_ch5.ads: Likewise.
	* sem_ch6.adb: Likewise.
	* sem_ch6.ads: Likewise.
	* sem_ch7.adb: Likewise.
	* sem_ch7.ads: Likewise.
	* sem_ch8.adb: Likewise.
	* sem_ch8.ads: Likewise.
	* sem_ch9.adb: Likewise.
	* sem_ch9.ads: Likewise.
	* sem_dim.adb: Likewise.
	* sem_dim.ads: Likewise.
	* sem_disp.adb: Likewise.
	* sem_disp.ads: Likewise.
	* sem_dist.adb: Likewise.
	* sem_dist.ads: Likewise.
	* sem_elab.adb: Likewise.
	* sem_elab.ads: Likewise.
	* sem_elim.adb: Likewise.
	* sem_elim.ads: Likewise.
	* sem_eval.adb: Likewise.
	* sem_eval.ads: Likewise.
	* sem_intr.adb: Likewise.
	* sem_intr.ads: Likewise.
	* sem_mech.adb: Likewise.
	* sem_mech.ads: Likewise.
	* sem_prag.adb: Likewise.
	* sem_prag.ads: Likewise.
	* sem_res.adb: Likewise.
	* sem_res.ads: Likewise.
	* sem_scil.adb: Likewise.
	* sem_scil.ads: Likewise.
	* sem_smem.adb: Likewise.
	* sem_smem.ads: Likewise.
	* sem_type.adb: Likewise.
	* sem_type.ads: Likewise.
	* sem_util.adb: Likewise.
	* sem_util.ads: Likewise.
	* sem_warn.adb: Likewise.
	* sem_warn.ads: Likewise.
	* set_targ.adb: Likewise.
	* set_targ.ads: Likewise.
	* sfn_scan.adb: Likewise.
	* sfn_scan.ads: Likewise.
	* sigtramp-armdroid.c: Likewise.
	* sigtramp-ios.c: Likewise.
	* sigtramp-qnx.c: Likewise.
	* sigtramp-vxworks-target.h: Likewise.
	* sigtramp-vxworks.c: Likewise.
	* sigtramp.h: Likewise.
	* sinfo-cn.adb: Likewise.
	* sinfo-cn.ads: Likewise.
	* sinfo-utils.adb: Likewise.
	* sinfo-utils.ads: Likewise.
	* sinfo.adb: Likewise.
	* sinfo.ads: Likewise.
	* sinput-c.adb: Likewise.
	* sinput-c.ads: Likewise.
	* sinput-d.adb: Likewise.
	* sinput-d.ads: Likewise.
	* sinput-l.adb: Likewise.
	* sinput-l.ads: Likewise.
	* sinput.adb: Likewise.
	* sinput.ads: Likewise.
	* socket.c: Likewise.
	* spark_xrefs.adb: Likewise.
	* spark_xrefs.ads: Likewise.
	* sprint.adb: Likewise.
	* sprint.ads: Likewise.
	* stand.ads: Likewise.
	* stringt.adb: Likewise.
	* stringt.ads: Likewise.
	* stringt.h: Likewise.
	* strub.adb: Likewise.
	* strub.ads: Likewise.
	* style.adb: Likewise.
	* style.ads: Likewise.
	* styleg.adb: Likewise.
	* styleg.ads: Likewise.
	* stylesw.adb: Likewise.
	* stylesw.ads: Likewise.
	* switch-b.adb: Likewise.
	* switch-b.ads: Likewise.
	* switch-c.adb: Likewise.
	* switch-c.ads: Likewise.
	* switch-m.adb: Likewise.
	* switch-m.ads: Likewise.
	* switch.adb: Likewise.
	* switch.ads: Likewise.
	* sysdep.c: Likewise.
	* table.adb: Likewise.
	* table.ads: Likewise.
	* targext.c: Likewise.
	* targparm.adb: Likewise.
	* targparm.ads: Likewise.
	* tbuild.adb: Likewise.
	* tbuild.ads: Likewise.
	* tempdir.adb: Likewise.
	* tempdir.ads: Likewise.
	* terminals.c: Likewise.
	* tracebak.c: Likewise.
	* treepr.adb: Likewise.
	* treepr.ads: Likewise.
	* ttypes.ads: Likewise.
	* types.adb: Likewise.
	* types.ads: Likewise.
	* types.h: Likewise.
	* uintp.adb: Likewise.
	* uintp.ads: Likewise.
	* uintp.h: Likewise.
	* uname.adb: Likewise.
	* uname.ads: Likewise.
	* urealp.adb: Likewise.
	* urealp.ads: Likewise.
	* urealp.h: Likewise.
	* usage.adb: Likewise.
	* usage.ads: Likewise.
	* validsw.adb: Likewise.
	* validsw.ads: Likewise.
	* vast.adb: Likewise.
	* vast.ads: Likewise.
	* warnsw.adb: Likewise.
	* warnsw.ads: Likewise.
	* widechar.adb: Likewise.
	* widechar.ads: Likewise.
	* xoscons.adb: Likewise.
	* xr_tabls.adb: Likewise.
	* xr_tabls.ads: Likewise.
	* xref_lib.adb: Likewise.
	* xref_lib.ads: Likewise.
	* xsnamest.adb: Likewise.
	* xutil.adb: Likewise.
	* xutil.ads: Likewise.

2022-01-11  Richard Kenner  <kenner@adacore.com>

	* debug.adb: Add documentation for new -gnatd_u and old -gnatd_R
	flags used for GNAT LLVM and its CCG.

2022-01-11  Piotr Trojanek  <trojanek@adacore.com>

	* Makefile.rtl (X86_TARGET_PAIRS): Use __builtin variant of
	System.Atomic_Counters.
	* libgnat/s-atocou__x86.adb: Remove.

2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Identifier_to_gnu): Use correct subtype.
	(elaborate_profile): New function.
	(Call_to_gnu): Call it on the formals and the result type before
	retrieving the translated result type from the subprogram type.

2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Fix
	computation of boolean result in the unchecked union case.
	(components_to_record): Rename MAYBE_UNUSED parameter to IN_VARIANT
	and remove local variable of the same name.  Pass NULL recursively
	as P_GNU_REP_LIST for nested variants in the unchecked union case.

2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (lvalue_required_p) <N_Pragma>: New case.
	<N_Pragma_Argument_Association>: Likewise.
	(Pragma_to_gnu) <Pragma_Inspection_Point>: Fetch the corresponding
	variable of a constant before marking it as addressable.

2022-01-10  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Remove
	s-casuti.ad?, s-crtl.ad?, s-os_lib.ad?.  Update list of object
	files accordingly.

2022-01-10  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/s-atopri.ads (Atomic_Compare_Exchange): Replaces
	deprecated Sync_Compare_And_Swap.
	* libgnat/s-atopri.adb (Lock_Free_Try_Write): Switch from __sync
	to __atomic builtins.

2022-01-10  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/s-exponn.adb, libgnat/s-expont.adb,
	libgnat/s-exponu.adb, libgnat/s-widthi.adb,
	libgnat/s-widthu.adb: Remove CodePeer annotations for pragma
	Loop_Variant.

2022-01-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_prag.adb (Expand_Pragma_Loop_Variant): Disable expansion
	in CodePeer mode.

2022-01-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_Child_Or_Sibling): Fix typo in comment.

2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_pakd.adb (Install_PAT): If the PAT is a scalar type, apply
	the canonical adjustment to its alignment.

2022-01-10  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/s-atocou__builtin.adb (Decrement, Increment): Switch
	from __sync to __atomic builtins; use 'Address to be consistent
	with System.Atomic_Primitives.

2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_pakd.adb (Install_PAT): Do not reset the alignment here.
	* layout.adb (Layout_Type): Call Adjust_Esize_Alignment after having
	copied the RM_Size onto the Esize when the latter is too small.

2022-01-10  Justin Squirek  <squirek@adacore.com>

	* sem_warn.adb (Check_References): Handle arrays of tasks
	similar to task objects.

2022-01-07  Patrick Bernardi  <bernardi@adacore.com>

	* libgnat/a-direct.adb (Search_Data): Remove type.
	(Directory_Vectors): New package instantiation.
	(Search_State): New type.
	(Fetch_Next_Entry): Remove.
	(Close): Remove.
	(Finalize): Rewritten.
	(Full_Name): Ditto.
	(Get_Next_Entry): Return next entry from Search results vector
	rather than querying the directory directly using readdir.
	(Kind): Rewritten.
	(Modification_Time): Rewritten.
	(More_Entries): Use Search state cursor to determine if more
	entries are available for users to read.
	(Simple_Name): Rewritten.
	(Size): Rewritten.
	(Start_Search_Internal): Rewritten to load the contents of the
	directory that matches the pattern and filter into the search
	object.
	* libgnat/a-direct.ads (Search_Type): New type.
	(Search_Ptr): Ditto.
	(Directory_Entry_Type): Rewritten to support new Start_Search
	procedure.
	* libgnat/s-filatt.ads (File_Length_Attr): New function.

2022-01-07  Etienne Servais  <servais@adacore.com>

	* sem_attr.adb (Check_Reference): Fix condition.

2022-01-07  Ghjuvan Lacambre  <lacambre@adacore.com>

	* libgnarl/s-taprop__mingw.adb (Timed_Sleep): Remove "pragma
	Unreferenced" for Result.
	(Timed_Delay): Likewise.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* gen_il-gen.adb (Put_Make_Decls): Put pragma Inline in a
	dedicated line, so that the current indentation is taken into
	account.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Build_Array_Aggr_Code): Fix inconsistent style
	in comments and code.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Gen_Assign): Remove explicit initialization for
	components of access types.
	(Get_Assoc_Expr): Enable initialization for components of all
	types that require simple initialization.

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

	* atree.ads (Traverse_Func_With_Parent): New generic subprogram.
	(Traverse_Proc_With_Parent): Likewise.
	* atree.adb (Parents_Stack): New table used to traverse trees
	passing the parent field of each node.
	(Internal_Traverse_With_Parent): New generic subprogram.
	(Traverse_Func_With_Parent): Likewise.
	(Traverse_Proc_With_Parent): Likewise.
	* contracts.adb (Fix_Parents): New subprogram.
	(Restore_Original_Selected_Component): Enhanced to fix the
	parent field of restored nodes.
	(Inherit_Condition): Adding assertions to check the parent field
	of inherited conditions and to ensure that the built inherited
	condition has no reference to the formals of the parent
	subprogram.
	* sem_util.ads, sem_util.adb (Check_Parents): New subprogram.

2022-01-07  Etienne Servais  <servais@adacore.com>

	* sem_attr.adb (Check_Placement_In_Test_Case): Fix typo.

2022-01-07  Justin Squirek  <squirek@adacore.com>

	* comperr.adb (Delete_SCIL_Files): Replace unnecessary
	Unreferenced pragma with specific pragma Warnings.
	* doc/gnat_rm/implementation_defined_pragmas.rst (Unreferenced):
	Add documentation for new behavior.
	* gnat_rm.texi: Regenerate.
	* erroutc.adb (Set_At): Remove useless assignment.
	* exp_ch2.adb (In_Assignment_Context): Deleted.
	(Is_Object_Renaming_Name): Replace calls to Is_LHS with calls to
	Known_To_Be_Assigned.
	(Expand_Current_Value): Replace calls to May_Be_Lvalue with
	calls to Known_To_Be_Assigned.
	(Expand_Entry_Paramter): Replace calls to In_Assignment_Context
	with calls to Known_To_Be_Assigned.
	* exp_ch4.adb (Expand_N_Op_Rem): Remove unnecessary Unreferenced
	pragma.
	* exp_imgv.adb (Build_Enumeration_Image_Tables): Default
	initialize S_N.
	* ghost.adb (Check_Ghost_Policy): Replace call to May_Be_Lvalue
	with call to Known_To_Be_Assigned.
	* lib-xref.adb (Is_On_LHS): Deleted.
	(OK_To_Set_Referenced): Rewrite subprogram to encompass the new
	pragma Unreferenced behavior.
	(Process_Deferred_References): Replace call to Is_LHS with call
	to Known_To_Be_Assigned.
	* libgnarl/s-taasde.adb, libgnarl/s-tasren.adb,
	libgnarl/s-tpobop.adb, libgnat/a-calend.adb,
	libgnat/a-calfor.adb, libgnat/a-cbdlli.adb,
	libgnat/a-cbhama.adb, libgnat/a-cbhase.adb,
	libgnat/a-cbmutr.adb, libgnat/a-cborma.adb,
	libgnat/a-cborse.adb, libgnat/a-cdlili.adb,
	libgnat/a-cfhama.adb, libgnat/a-cforse.adb,
	libgnat/a-cidlli.adb, libgnat/a-cihama.adb,
	libgnat/a-cihase.adb, libgnat/a-cimutr.adb,
	libgnat/a-ciorma.adb, libgnat/a-ciormu.adb,
	libgnat/a-ciorse.adb, libgnat/a-cohama.adb,
	libgnat/a-cohase.adb, libgnat/a-comutr.adb,
	libgnat/a-convec.adb, libgnat/a-coorma.adb,
	libgnat/a-coormu.adb, libgnat/a-coorse.adb,
	libgnat/a-crdlli.adb, libgnat/a-tigeau.adb,
	libgnat/a-wtgeau.adb, libgnat/a-ztgeau.adb,
	libgnat/g-calend.adb, libgnat/g-comlin.adb,
	libgnat/g-expect.adb, libgnat/g-mbflra.adb,
	libgnat/g-spipat.adb, libgnat/s-fatgen.adb,
	libgnat/s-fileio.adb, libgnat/s-os_lib.adb,
	libgnat/s-regpat.adb, libgnat/s-valued.adb,
	libgnat/s-valuer.adb: Remove unnecessary Unreferenced pragmas
	* sem_ch10.adb (Process_Spec_Clauses): Remove useless
	assignments.
	* sem_ch13.adb (Validate_Literal_Aspect): Default initialize I.
	* sem_ch3.adb (Build_Derived_Concurrent_Type): Default
	initialize Corr_Decl.
	* sem_ch8.adb (Undefined): Replace calls to Is_LHS with calls to
	Known_To_Be_Assigned.
	(In_Abstract_View_Pragma): Likewise.
	* sem_eval.adb (Eval_Selected_Component): Replace calls to
	Is_LHS with calls to Known_To_Be_Assigned.
	* sem_res.adb (Init_Component): Replace calls to May_Be_Lvalue
	with calls to Known_To_Be_Assigned.
	* sem_util.adb, sem_util.ads (End_Label_Loc): Default initialize
	Owner.
	(Explain_Limited_Type): Default initialize Expr_Func.
	(Find_Actual): Modified to handle entry families.
	(Is_LHS): Deleted.
	(May_Be_Lvalue): Deleted.
	(Known_To_Be_Assigned): Modified and improved to handle all
	cases.
	* sem_warn.adb (Traverse_Result): Replace calls to May_Be_Lvalue
	with calls to Known_To_Be_Assigned.
	(Check_Ref): Modify error on unreferenced out parameters to take
	into account different warning flags.

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

	* sem_ch3.adb (Reorder_Interfaces): When the conflicting
	interface is identified we just replace the interface in the
	list of interfaces of the tagged type (instead of adding a
	duplicate to the list of interfaces).

2022-01-07  Dmitriy Anisimkov  <anisimko@adacore.com>

	* adaint.c (__gnat_kill): Terminate process only in case of
	SIGKILL, SIGINT, SIGBREAK, SIGTERM, SIGABRT.  Do not call
	OpenProcess if not going to terminate process.

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

	* exp_prag.adb (Expand_Pragma_Inspection_Point): Do a single pass
	over the arguments of the pragma.  Set the Address_Taken flag on
	them and use the Has_Delayed_Freeze flag to spot those which have
	their elaboration delayed.  Reuse the location variable Loc.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* osint.adb (To_Lower): Clarify that only To_Lower function
	causes bootstrap issues; fix style.
	* treepr.adb (Print_Str_Mixed_Case): Reuse existing case
	conversion routine.
	(To_Mixed): Rename from Capitalize; reuse System.Case_Util
	procedure and explain the bootstrap issue.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch7.adb (Process_Transients_In_Scope): Remove unnecessary
	initialization of Must_Hook; change Detect_Subprogram_Call from
	function to procedure; adapt caller.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch5.adb, exp_disp.adb, exp_util.adb, par-ch4.adb,
	sem_ch13.adb: Remove extra space before THEN that occurs at the
	end of a line.

2022-01-07  Dmitriy Anisimkov  <anisimko@adacore.com>

	* expect.c (__gnat_waitpid): Use macros WIFEXITED, WEXITSTATUS,
	WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG to get exit status
	or signal that caused the child process to terminate/stop.  Do
	not process exit status in case of error in waitpid call.
	* adaint.c (__gnat_kill): Use of GenerateConsoleCtrlEvent is
	removed in Windows variant as it actually is not working and was
	terminating the calling process.  Set signal number into exit
	code parameter of TerminateProcess to work the same like in
	Linux.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch5.adb (Expand_N_Case_Statement): Remove explicit
	expansion.

2022-01-07  Etienne Servais  <servais@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Update -gnatwr documentation.
	* gnat_ugn.texi: Regenerate.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_unst.adb (Unnest_Subprogram): Sync comment with the
	current code.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb (Raise_Accessibility_Error): Move exception name
	to the message string; move << control characters to the end,
	for consistency.
	* sem_ch6.adb (Analyze_Function_Return): Likewise.
	* sem_util.adb (Compile_Time_Constraint_Error): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Remove quotes
	around Storage_Error.
	* gcc-interface/trans.c (gnat_to_gnu): Remove quotes around
	Constraint_Error.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* errout.adb (Error_Msg): Move warning suppression code from
	Error_Msg_NLE
	(Error_Msg_NLE): Warning suppression is now done by the internal
	call to Error_Msg.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Remove unnecessary
	guards.
	* exp_ch4.adb (Expand_N_If_Expression): Likewise; clarify comment.
	* exp_ch5.adb (Expand_N_If_Statement,
	Expand_Iterator_Loop_Over_Container): Likewise.
	* exp_ch9.adb (Expand_N_Task_Type_Declaration): Remove redundant
	guard.
	* freeze.adb (Freeze_All_Ent): Reduce scope of a local variable.

2022-01-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Build_Init_Procedure): Remove unnecessary guard.
	* exp_disp.adb (Make_DT): Likewise.
	* sem_ch12.adb (Analyze_Associations): Likewise.

2022-01-07  Etienne Servais  <servais@adacore.com>

	* sem_res.adb (Resolve_Op_Concat_Arg): Check range when
	concatenating scalars.

2022-01-07  Bob Duff  <duff@adacore.com>

	* treepr.adb (Print_Node_Ref): Change "not Is_Array_Type" to
	"Is_Discrete_Type".

2022-01-07  Richard Kenner  <kenner@adacore.com>

	* libgnat/g-spipat.ads (Boolean_Func, Natural_Func,
	VString_Func): Mark as Favor_Top_Level.
	* sem_ch13.adb (Validate_Unchecked_Conversion): Avoid using
	internal representation if Unchecked_Conversion between
	an access to subprogram and System.Address within the same unit.

2022-01-07  Bob Duff  <duff@adacore.com>

	* treepr.adb (Print_Node_Ref): Print the value if available.

2022-01-07  Richard Kenner  <kenner@adacore.com>

	* sem_util.ads, sem_util.adb (Get_Fullest_View): Add option to
	not recurse and return the next-most-fullest view.

2022-01-07  Bob Duff  <duff@adacore.com>

	* sem_ch10.adb (Check_Redundant_Withs): Add a warning if a
	library unit with's its own ancestor. Note that this warning is
	not triggered for something like "with P.R;" in P.Q, because
	there the "with P;" is considered implicit.
	* fname-sf.adb, libgnarl/s-stusta.adb, libgnarl/s-tasdeb.ads,
	libgnat/a-calfor.adb, libgnat/a-tiboio.adb,
	libgnat/a-wwboio.adb, libgnat/a-zzboio.adb, libgnat/i-cobol.adb,
	libgnat/s-bitops.adb, libgnat/s-bitops.ads,
	libgnat/s-direio.adb, libgnat/s-dwalin.adb,
	libgnat/s-geveop.adb, libgnat/s-mmosin__unix.adb,
	libgnat/s-os_lib.adb, libgnat/s-os_lib.ads,
	libgnat/s-pooglo.ads, libgnat/s-secsta.adb,
	libgnat/s-shasto.adb, libgnat/s-stausa.ads,
	libgnat/s-stratt.ads, libgnat/s-ststop.adb: Remove with of
	parent.
	* sinfo.ads: Minor comment fix.

2022-01-07  Bob Duff  <duff@adacore.com>

	* osint-m.adb: Remove with_clause and pragma.

2022-01-06  Bob Duff  <duff@adacore.com>

	* sem_res.adb (Resolve_Range): Warn on null range, unless we are
	inside a generic unit or an instance thereof.
	* sem_ch3.adb (Analyze_Subtype_Indication): Minor: avoid double
	negative.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* errout.adb (Adjust_Name_Case): Remove unnecessary declare
	block.

2022-01-06  Yannick Moy  <moy@adacore.com>

	* libgnat/a-ngcoar.adb: Add pragma to ignore assertions in
	instance.
	* libgnat/a-ngrear.adb: Likewise.
	* libgnat/s-gearop.adb: Prove implementation is free of runtime
	errors.
	* libgnat/s-gearop.ads: Add contracts to protect against runtime
	errors in the generic part.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* errout.adb (Remove_Warning_Messages): Use traversal procedure
	instead of traversal function, since we discard status of each
	step anyway.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): There is no reason for using
	declaring, raising and catching an exception; a simple return
	statement is enough.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_eval.adb (Eval_Arithmetic_Op): Add Loc parameter to all
	calls to Apply_Compile_Time_Constraint_Error related to division
	by zero.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* errout.adb (Remove_Warning_Messages): Remove unnecessary guard.
	* exp_util.adb (Kill_Dead_Code): Likewise.
	* par_sco.adb (Traverse_Declarations_Or_Statements): Likewise.
	* sem_ch3.adb (Build_Derived_Record_Type): Likewise.
	* sem_ch4.adb (Traverse_Interfaces): Likewise.
	* sem_eval.adb (Traverse_Interfaces): Likewise.
	* sem_util.adb (Collect_Interfaces): Likewise.
	(Has_Non_Null_Statements, Side_Effect_Free_Statements):
	Likewise; turn into WHILE loops, for consistency.

2022-01-06  Etienne Servais  <servais@adacore.com>

	* sem_type.adb (Full_View_Covers): Fix typo.

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

	* sem_ch12.adb (Insert_Freeze_Node_For_Instance): When going to
	the outer level, do not jump over following instantiations in
	the list.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* err_vars.ads (Warn_On_Instance): Remove; it was a relic from
	the previous handling of warning in instances that was removed
	decades ago.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* errout.adb (Error_Msg_Internal): Reorder words.
	* erroutc.ads (Is_Warning_Msg): Add closing paren.
	* sem_util.adb (Compile_Time_Constraint_Error): Fix casing.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_String_Literal): Simplify pointer
	arithmetic.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_String_Literal): Avoid unnecessary
	conversions inside "<" and ">" bodies.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Null_Exclusion_Static_Checks,
	Selected_Range_Checks): Fix style.

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

	* sem_ch8.adb (Analyze_Package_Renaming): Do not check for Text_IO
	special units when the name of the renaming is a generic instance,
	which is the case for package instantiations in the GNAT model.

2022-01-06  Steve Baird  <baird@adacore.com>

	* sem_util.adb (Build_Discriminant_Reference): In the unexpected
	case where we previously would fail an assertion, we instead
	revert to the old behavior.

2022-01-06  Steve Baird  <baird@adacore.com>

	* sem_util.adb (Build_Actual_Subtype_Of_Component): Define a new
	local function, Build_Discriminant_Reference, and call it in
	each of the three cases where Make_Selected_Component was
	previously being called to construct a discriminant reference (2
	in Build_Actual_Array_Constraint and 1 in
	Build_Actual_Record_Constraint). Instead of unconditionally
	using the passed-in object name as the prefix for the new
	selected component node, this new function checks to see if
	perhaps a prefix of that name should be used instead.

2022-01-06  Etienne Servais  <servais@adacore.com>

	* atree.adb: Fix typo.
	* einfo.ads: Likewise.
	* exp_aggr.adb: Likewise.
	* exp_ch6.adb: Likewise.
	* exp_ch7.adb: Likewise.
	* exp_ch9.adb: Likewise.
	* exp_prag.adb: Likewise.
	* exp_unst.adb: Likewise.
	* exp_unst.ads: Likewise.
	* exp_util.adb: Likewise.
	* par-endh.adb: Likewise.
	* par.adb: Likewise.
	* restrict.adb: Likewise.
	* sem.ads: Likewise.
	* sem_ch4.adb: Likewise.
	* sem_ch5.adb: Likewise.
	* sem_ch6.adb: Likewise.
	* sem_ch8.adb: Likewise.
	* sem_ch12.adb: Likewise.
	* sem_ch13.adb: Likewise.
	* sem_dim.adb: Likewise.
	* sem_elab.adb: Likewise.
	* sem_prag.adb: Likewise.
	* sem_res.adb: Likewise.
	* sem_util.adb: Likewise.
	* sem_util.ads: Likewise.
	* sinfo.ads: Likewise.
	* sprint.adb: Likewise.
	* urealp.adb: Likewise.

2022-01-06  Justin Squirek  <squirek@adacore.com>

	* exp_ch3.adb (Build_Assignment): Replace current instance of
	type with Init_Proc formal.
	* sem_attr.adb (OK_Self_Reference): Handle recognition of
	Current_Instance to detect certain expansion.
	* sem_ch4.adb (Analyze_One_Call): Set actual's type when the
	actual in question is a current instance and its corresponding
	formal is an incomplete type.
	* sem_util.adb (Is_Current_Instance): Add check for incomplete
	views and add comment.

2022-01-06  Bob Duff  <duff@adacore.com>

	* libgnat/s-rident.ads (No_Tagged_Type_Registration): New
	restriction identifier.
	* restrict.ads (Implementation_Restriction): Add restriction.
	* exp_ch7.adb (Process_Declarations): Suppress
	tagged-type-related finalization actions if the restriction is
	active.  Call RTE_Available last.
	* exp_disp.adb (Make_DT): Likewise.
	* exp_util.adb (Requires_Cleanup_Actions): Return False for a
	tagged type declaration if No_Tagged_Type_Registration is
	active.
	* sem_attr.adb (Check_Stream_Attribute): Check restriction
	No_Tagged_Type_Registration.
	* libgnat/a-except.ads (Null_Occurrence): Minor: Initialize, to
	avoid stopping at a warning in gdb.
	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
	Document new restriction.
	* gnat_rm.texi: Regenerate.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch4.adb (P_Simple_Expression): Reuse Null_String_Id.
	* prep.adb (Parse_Def_File): Likewise; remove Empty_String.

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

	* stand.ads (Any_Access): Delete.
	(Universal_Access): New entity.
	* einfo.ads: Remove obsolete reference to Any_Access.
	* gen_il-gen-gen_entities.adb: Likewise.
	* cstand.adb (Create_Standard): Do not create Any_Access and create
	Universal_Access as a full type instead.
	* errout.adb (Set_Msg_Insertion_Type_Reference): Do not deal with
	Any_Access and deal with Universal_Access instead.
	* sem_ch3.adb (Analyze_Object_Declaration): Replace Any_Access with
	Universal_Access.
	* sem_ch4.adb (Analyze_Null): Likewise.
	(Find_Non_Universal_Interpretations): Likewise.
	(Find_Equality_Types.Try_One_Interp): Likewise and avoid shadowing
	by renaming a local variable of the same name.
	* sem_res.adb (Make_Call_Into_Operato): Likewise.
	(Resolve_Equality_Op): Likewise.
	* sem_type.adb (Covers): Likewise.
	(Specific_Type): Likewise.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* treepr.adb (Destroy): Prevent spurious check from CodePeer.

2022-01-06  Yannick Moy  <moy@adacore.com>

	* libgnat/s-exponu.adb (Exponu): Add annotation.

2022-01-06  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add comments
	regarding special handling of components which depend on
	discriminants.
	* exp_dist.adb (Build_From_Any_Function): Add Real_Rep actual
	for calls to Has_Stream_Attribute_Definition.
	(Build_To_Any_Function): Likewise.
	(Build_TypeCode_Function): Likewise.
	* freeze.adb (Freeze_Entity): Add missing comment for Test_E.
	* libgnat/s-utf_32.adb: Remove disabled warning comments and
	temporarily inserted pragma warnings.  Remove very old (2006 and
	2012) comments about bootstrapping older versions.
	* par.adb (P_Identifier): Add new parameter Force_Msg.
	* par-ch2.adb (P_Identifier): Restructure and clean up function.
	* par-ch3.adb (P_Defining_Identifier): Remove code duplication
	for parsing identifiers.
	* sem_attr.adb (Stream_Attribute_Available): Add missing
	comments and add Real_Rep actual for calls to
	Has_Stream_Attribute_Definition.
	* sem_cat.adb (Has_Read_Write_Attribute): Add Real_Rep actual
	for calls to Has_Stream_Attribute_Definition.
	(Has_Stream_Attribute_Definition): Remove local Real_Rep and fix
	recursive calls. Add default value for Real_Rep.
	* sem_cat.ads (Has_Stream_Attribute_Definition): Add new out
	parameter "Real_Rep".
	* sem_type.adb (Add_Entry): Add condition to avoid passing
	non-function calls to Function_Interp_Has_Abstract_Op.
	(Function_Interp_Has_Abstract_Op): Add missing comments and
	remove check for Is_Overloadable.
	* sem_util.adb (Derivation_Too_Early_To_Inherit): Remove
	duplicated code.

2022-01-06  Javier Miranda  <miranda@adacore.com>

	* contracts.adb (Restore_Original_Selected_Component): New
	subprogram that traverses a preanalyzed expression searching for
	dispatching calls to functions whose original node was a
	selected component, and replacing them with their original node.
	This functionality is required because the preanalyis of
	dispatching calls using the Object.Operation notation transforms
	such calls, and we need the original condition to properly
	inherit and extend the condition expression on tagged type
	derivations.  This functionality was previously provided by the
	routine Install_Original_Selected_Component (as part of
	inheriting conditions); now it is performed as part of the
	preanalysis of the condition, thus avoiding repeatedly
	installing and restoring such nodes.
	(Install_Original_Selected_Component): Removed.
	(Restore_Dispatching_Calls): Removed.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* treepr.adb (Visit_Node): Simplify repeated call to
	Next_Entity.

2022-01-06  Piotr Trojanek  <trojanek@adacore.com>

	* treepr.ads (Treepr, Print_Tree_List, Print_Tree_Elist): Fix
	style in comments.
	* treepr.adb (Serial_Numbers): Hash table instance.
	(Hash): Hashing routine.
	(Print_Field): Fix style.
	(Print_Init): Adapt to simple hash table.
	(Print_Term): Likewise.
	(Serial_Numbers): Likewise.
	(Set_Serial_Number): Likewise.

2022-01-06  Yannick Moy  <moy@adacore.com>

	* libgnat/s-expmod.adb: Mark in SPARK. Add ghost code for proof.
	* libgnat/s-expmod.ads: Mark in SPARK. Add ghost specifications.

2022-01-06  Yannick Moy  <moy@adacore.com>

	* libgnat/s-explllu.ads: Mark in SPARK.
	* libgnat/s-expllu.ads: Mark in SPARK.
	* libgnat/s-exponu.adb: Add loop invariants and needed
	assertions.
	* libgnat/s-exponu.ads: Add functional contract.
	* libgnat/s-expuns.ads: Mark in SPARK.

2022-01-05  Steve Baird  <baird@adacore.com>

	* exp_ch5.adb (Finish_Binding_Object_Declaration): Fix a bug
	that was introduced in the previous commit.  The previous
	version initialized a Boolean constant Declare_Copy before the
	variable Decl had been initialized properly.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Adjust_External_Name_Case): Use membership test.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Make_Controlling_Function_Wrappers): For
	GNATprove build the wrapper as an expression function.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.ads (Make_Controlling_Function_Wrappers): Move
	declaration from body to spec, so it can be called by
	SPARK-specific expansion.
	* exp_ch3.adb (Make_Controlling_Function_Wrappers): Likewise.
	* exp_spark.adb (SPARK_Freeze_Type): Enable expansion of
	wrappers for function with controlling result types.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_dbug.adb, sem_dim.adb: Replace Add_Str_To_Name_Buffer with
	Add_Char_To_Name_Buffer.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* gnatls.adb (Gnatls): Use Name_Find function.
	* targparm.adb (Get_Target_Parameters): Likewise.

2022-01-05  Bob Duff  <duff@adacore.com>

	* repinfo.adb (List_Entities): The code was assuming that if we
	encounter a package in the current scope, then it must be
	a (physically) nested package.  That was wrong, because it could
	be a child package.  Avoid recursing into child packages; they
	have not been annotated with representation information, and
	-gnatR2 queries that information.

2022-01-05  Marc Poulhiès  <poulhies@adacore.com>

	* libgnat/s-sopco3.ads, libgnat/s-sopco3.adb: Remove.
	* libgnat/s-sopco4.ads, libgnat/s-sopco4.adb: Remove.
	* libgnat/s-sopco5.ads, libgnat/s-sopco5.adb: Remove.
	* libgnat/s-strops.ads, libgnat/s-strops.adb: Remove.
	* Makefile.rtl (ADA_EXCLUDE_SRCS): Remove occurences of removed
	units.
	* gcc-interface/Make-lang.in (ada/sdefault.o): Remove
	dependencies on removed units.
	(GNATBIND_OBJS): Remove occurences of removed units.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Build_Dcheck_Function): Remove extra whitespace.
	* libgnarl/s-taskin.adb (Initialize_ATCB): Likewise.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Build_Array_VS_Func): Remove explicit "IN" in
	spec of the generated array validation function; it was
	redundant, just like it would be in a user-written code.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Ne): Fix whitespace.
	* sem_dim.adb (Expand_Put_Call_With_Symbol): Likewise.
	(Reduce): Likewise.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Fix whitespace.
	* libgnat/a-cofuve.ads (Add): Likewise.
	* sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Make_Eq_Body, Make_Neq_Body,
	Make_Predefined_Primitive_Eq_Spec,
	Make_Predefined_Primitive_Specs): Fix whitespace.

2022-01-05  Etienne Servais  <servais@adacore.com>

	* sem_ch3.adb (Analyze_Component_Declaration): Rework condition
	to build subtypes.
	(Analyze_Object_Declaration): Likewise.
	(Should_Build_Subtype): New.

2022-01-05  Yannick Moy  <moy@adacore.com>

	* libgnat/s-arit128.adb: Mark in SPARK.
	* libgnat/s-arit128.ads: Add functional contracts.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (String_From_Numeric_Literal): Simplify using
	membership tests and ranges; fix whitespace.

2022-01-05  Yannick Moy  <moy@adacore.com>

	* libgnat/s-expint.ads: Mark in SPARK. Adapt to change to
	package.
	* libgnat/s-explli.ads: Likewise.
	* libgnat/s-expllli.ads: Likewise.
	* libgnat/s-expont.adb: Add lemmas and ghost code.
	* libgnat/s-expont.ads: Add functional contract.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_disp.adb (Gen_Parameters_Profile): Remove redundant guard.

2022-01-05  Claire Dross  <dross@adacore.com>

	* libgnat/s-valuti.ads (Starts_As_Exponent_Format_Ghost): Ghost
	function to determine if a string is recognized as something
	which might be an exponent.
	(Is_Opt_Exponent_Format_Ghost): Ghost function to determine if a
	string has the correct format for an optional exponent.
	(Scan_Exponent): Use ghost functions to factorize contracts.

2022-01-05  Bob Duff  <duff@adacore.com>

	* exp_util.ads (Get_Current_Value_Condition): Belt: Add a
	postcondition that Val /= Var.
	* sem_util.adb (Known_Null): Suspenders: Raise Program_Error if
	Get_Current_Value_Condition returned the same value. This will
	be enabled even without assertions, because infinite recursion
	is a nuisance -- better to crash if this bug ever occurs.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Make_Null_Procedure_Specs): Simplify by reusing
	Copy_Subprogram_Spec.
	* sem_util.ads (Copy_Subprogram_Spec): Add New_Sloc parameter.
	* sem_util.adb (Copy_Subprogram_Spec): Pass New_Sloc to
	New_Copy_Tree.

2022-01-05  Yannick Moy  <moy@adacore.com>

	* libgnat/s-exnint.ads: Mark in SPARK. Adapt to change to
	package.
	* libgnat/s-exnlli.ads: Likewise.
	* libgnat/s-exnllli.ads: Likewise.
	* libgnat/s-exponn.adb: Add lemmas and ghost code. Secial case
	value zero as Left or Right to simplify proof.
	* libgnat/s-exponn.ads: Transform the generic function into a
	generic package with a function inside. Add a functional
	contract.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Instantiate_Formal_Subprogram): Remove redundant
	call to Set_Defining_Unit_Name; a similar call is done few lines
	below.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Make_Controlling_Function_Wrappers): Create
	distinct copies of parameter lists for spec and body with
	Copy_Parameter_List; cleanup.
	(Make_Null_Procedure_Specs): Fix style in comments; remove a
	potentially unnecessary initialization of a local variable.

2022-01-05  Bob Duff  <duff@adacore.com>

	* einfo-utils.ads, einfo-utils.adb (Renamed_Entity Alias):
	Change Node_Id to Entity_Id.

2022-01-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wrapper):
	Remove unreferenced spec.
	* sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wrapper):
	Remove dead bodies.

2022-01-05  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb: Apply replacement.

2022-01-05  Yannick Moy  <moy@adacore.com>

	* libgnat/s-aridou.adb (Lemma_Word_Commutation): Fix for
	instances with other values of Single_Size.

2022-01-05  Marc Poulhiès  <poulhies@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst (Compiler_Unit)
	(Compiler_Unit_Warning): Remove.
	* gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
	* libgnat/g-dynhta.ads: Add comment indicating this unit is
	built during stage1.
	* libgnat/g-dyntab.ads: Likewise.
	* libgnat/g-graphs.ads: Likewise.
	* libgnat/g-lists.ads: Likewise.
	* libgnat/g-sets.ads: Likewise.
	* libgnat/gnat.ads: Likewise.
	* libgnat/s-pehage.ads: Likewise.
	* libgnat/s-resfil.ads: Likewise.
	* libgnat/s-rident.ads: Likewise.
	* libgnat/s-utf_32.ads: Likewise.
	* errout.ads: Update comment.
	* opt.ads (Opt): Remove Compiler_Unit.
	* par-ch5.adb (All_Pragmas): Remove call to Check_Compiler_Unit.
	* sem_prag.adb (Analyze_Pragma): Likewise.
	* sem_ch4.adb (Non_Static_Choice_Error, Analyze_If_Expression)
	(Analyze_Set_Membership, Record_Interp): Likewise.
	* sem_ch11.adb (Analyze_Raise_Expression): Likewise.
	* sem_ch6.adb: Remove Restric package reference.
	(Analyze_Extended_Return_Statement): Remove call to
	Check_Compiler_Unit.
	* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Remove handling of Pragma_Compiler_Unit[_Warning}.
	* restrict.adb (Check_Compiler_Unit): Remove both.
	* restrict.ads: Likewise.
	* snames.ads-tmpl (Pragma_Id): Remove
	Pragma_Compiler_Unit[_Warning].
	* libgnat/a-assert.ads: Remove pragma Compiler_Unit_Warning.
	* libgnat/a-chlat1.ads: Likewise.
	* libgnat/a-elchha.adb: Likewise.
	* libgnat/a-elchha.ads: Likewise.
	* libgnat/a-ioexce.ads: Likewise.
	* libgnat/a-strhas.ads: Likewise.
	* libgnat/g-byorma.adb: Likewise.
	* libgnat/g-byorma.ads: Likewise.
	* libgnat/g-dyntab.adb: Likewise.
	* libgnat/g-heasor.ads: Likewise.
	* libgnat/g-hesora.adb: Likewise.
	* libgnat/g-hesora.ads: Likewise.
	* libgnat/g-htable.adb: Likewise.
	* libgnat/g-htable.ads: Likewise.
	* libgnat/g-spchge.adb: Likewise.
	* libgnat/g-spchge.ads: Likewise.
	* libgnat/g-speche.adb: Likewise.
	* libgnat/g-speche.ads: Likewise.
	* libgnat/g-table.ads: Likewise.
	* libgnat/g-u3spch.adb: Likewise.
	* libgnat/g-u3spch.ads: Likewise.
	* libgnat/interfac.ads: Likewise.
	* libgnat/s-addope.adb: Likewise.
	* libgnat/s-addope.ads: Likewise.
	* libgnat/s-assert.adb: Likewise.
	* libgnat/s-assert.ads: Likewise.
	* libgnat/s-bitops.adb: Likewise.
	* libgnat/s-bitops.ads: Likewise.
	* libgnat/s-carun8.adb: Likewise.
	* libgnat/s-carun8.ads: Likewise.
	* libgnat/s-casuti.adb: Likewise.
	* libgnat/s-casuti.ads: Likewise.
	* libgnat/s-conca2.adb: Likewise.
	* libgnat/s-conca2.ads: Likewise.
	* libgnat/s-conca3.adb: Likewise.
	* libgnat/s-conca3.ads: Likewise.
	* libgnat/s-conca4.adb: Likewise.
	* libgnat/s-conca4.ads: Likewise.
	* libgnat/s-conca5.adb: Likewise.
	* libgnat/s-conca5.ads: Likewise.
	* libgnat/s-conca6.adb: Likewise.
	* libgnat/s-conca6.ads: Likewise.
	* libgnat/s-conca7.adb: Likewise.
	* libgnat/s-conca7.ads: Likewise.
	* libgnat/s-conca8.adb: Likewise.
	* libgnat/s-conca8.ads: Likewise.
	* libgnat/s-conca9.adb: Likewise.
	* libgnat/s-conca9.ads: Likewise.
	* libgnat/s-crc32.adb: Likewise.
	* libgnat/s-crc32.ads: Likewise.
	* libgnat/s-crtl.ads: Likewise.
	* libgnat/s-excdeb.adb: Likewise.
	* libgnat/s-excdeb.ads: Likewise.
	* libgnat/s-except.ads: Likewise.
	* libgnat/s-exctab.adb: Likewise.
	* libgnat/s-exctab.ads: Likewise.
	* libgnat/s-finmas.ads: Likewise.
	* libgnat/s-htable.adb: Likewise.
	* libgnat/s-htable.ads: Likewise.
	* libgnat/s-mastop.adb: Likewise.
	* libgnat/s-mastop.ads: Likewise.
	* libgnat/s-memory.adb: Likewise.
	* libgnat/s-memory.ads: Likewise.
	* libgnat/s-os_lib.ads: Likewise.
	* libgnat/s-parame.adb: Likewise.
	* libgnat/s-parame.ads: Likewise.
	* libgnat/s-parame__posix2008.ads: Likewise.
	* libgnat/s-purexc.ads: Likewise.
	* libgnat/s-resfil.adb: Likewise.
	* libgnat/s-restri.adb: Likewise.
	* libgnat/s-restri.ads: Likewise.
	* libgnat/s-secsta.adb: Likewise.
	* libgnat/s-secsta.ads: Likewise.
	* libgnat/s-soflin.adb: Likewise.
	* libgnat/s-soflin.ads: Likewise.
	* libgnat/s-sopco3.adb: Likewise.
	* libgnat/s-sopco3.ads: Likewise.
	* libgnat/s-sopco4.adb: Likewise.
	* libgnat/s-sopco4.ads: Likewise.
	* libgnat/s-sopco5.adb: Likewise.
	* libgnat/s-sopco5.ads: Likewise.
	* libgnat/s-spsufi.ads: Likewise.
	* libgnat/s-stache.adb: Likewise.
	* libgnat/s-stache.ads: Likewise.
	* libgnat/s-stalib.adb: Likewise.
	* libgnat/s-stalib.ads: Likewise.
	* libgnat/s-stoele.adb: Likewise.
	* libgnat/s-stoele.ads: Likewise.
	* libgnat/s-strcom.adb: Likewise.
	* libgnat/s-strcom.ads: Likewise.
	* libgnat/s-strhas.adb: Likewise.
	* libgnat/s-string.adb: Likewise.
	* libgnat/s-string.ads: Likewise.
	* libgnat/s-strops.adb: Likewise.
	* libgnat/s-strops.ads: Likewise.
	* libgnat/s-ststop.adb: Likewise.
	* libgnat/s-ststop.ads: Likewise.
	* libgnat/s-traceb.adb: Likewise.
	* libgnat/s-traceb.ads: Likewise.
	* libgnat/s-traent.adb: Likewise.
	* libgnat/s-traent.ads: Likewise.
	* libgnat/s-utf_32.adb: Likewise.
	* libgnat/s-unstyp.ads: Likewise.
	* libgnat/s-wchcnv.adb: Likewise.
	* libgnat/s-wchcnv.ads: Likewise.
	* libgnat/s-wchcon.adb: Likewise.
	* libgnat/s-wchcon.ads: Likewise.
	* libgnat/s-wchjis.adb: Likewise.
	* libgnat/s-wchjis.ads: Likewise.

2022-01-05  Arnaud Charlet  <charlet@adacore.com>

	* osint.adb (File_Names_Equal): Declare To_Lower locally.
	* osint.ads (Null_FD): New.
	* fmap.adb, sinput-l.adb, targparm.adb: Adapt to changes above.
	* switch-b.adb (Scan_Debug_Switches): Use Is_Regular_File to
	simplify the bootstrap dependencies.

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

	* gnat_ugn.texi: Bump @copying's copyright year.
	* gnat_rm.texi: Likewise.

Copyright (C) 2022 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.
