diff options
author | Jakub Jelinek <jakub@redhat.com> | 2023-01-01 16:20:13 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2023-01-01 16:20:13 +0100 |
commit | d64f877906111645af0217d4d54993a7b2ecbd2e (patch) | |
tree | 166f7a493ae415bb43256ff7ee1492cda0cfc5f9 /gcc/ada/ChangeLog-2022 | |
parent | d423e8dc59045d8f281dcb1a02559cb6f91456bf (diff) | |
download | gcc-d64f877906111645af0217d4d54993a7b2ecbd2e.zip gcc-d64f877906111645af0217d4d54993a7b2ecbd2e.tar.gz gcc-d64f877906111645af0217d4d54993a7b2ecbd2e.tar.bz2 |
Rotate ChangeLog files.
Rotate ChangeLog files for ChangeLogs with yearly cadence.
Diffstat (limited to 'gcc/ada/ChangeLog-2022')
-rw-r--r-- | gcc/ada/ChangeLog-2022 | 11068 |
1 files changed, 11068 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog-2022 b/gcc/ada/ChangeLog-2022 new file mode 100644 index 0000000..19c0a4d --- /dev/null +++ b/gcc/ada/ChangeLog-2022 @@ -0,0 +1,11068 @@ +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. |