aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/contracts.adb
AgeCommit message (Collapse)AuthorFilesLines
2024-05-14ada: Update of SPARK RM legality rules on ghost codeYannick Moy1-1/+1
Update checking of ghost code after a small change in SPARK RM rules 6.9(15) and 6.9(20), so that the Ghost assertion policy that matters when checking the validity of a reference to a ghost entity in an assertion expression is the Ghost assertion policy at the point of declaration of the entity. Also fix references to SPARK RM rules in comments, which were off by two in many cases after the insertion of rules 13 and 14 regarding generic instantiations. gcc/ada/ * contracts.adb: Fix references to SPARK RM rules. * freeze.adb: Same. * ghost.adb: Fix references to SPARK RM rules. (Check_Ghost_Context): Update checking of references to ghost entities in assertion expressions. * sem_ch6.adb: Fix references to SPARK RM rules. * sem_prag.adb: Same.
2024-05-13ada: Remove guards against traversal of empty list of aspectsPiotr Trojanek1-4/+1
When iterating over Aspect_Specifications, we can use First/Next directly even if the Aspect_Specifications returns a No_List or the list has no items. Code cleanup. gcc/ada/ * aspects.adb (Copy_Aspects): Style fix. * contracts.adb (Analyze_Contracts): Style fix. (Save_Global_References_In_Contract): Remove extra guards. * par_sco.adb (Traverse_Aspects): Move guard to the caller and make it consistent with Save_Global_References_In_Contract. * sem_ch12.adb (Has_Contracts): Remove extra guards. * sem_ch3.adb (Delayed_Aspect_Present, Get_Partial_View_Aspect, Check_Duplicate_Aspects): Likewise. * sem_disp.adb (Check_Dispatching_Operation): Likewise.
2024-05-13ada: Deconstruct flag Split_PPC since splitting now is done in expansionPiotr Trojanek1-16/+1
Remove flag Split_PPC and all its uses. gcc/ada/ * contracts.adb (Append_Enabled_Item): Remove use of Split_PPC; simplify. * gen_il-fields.ads (Opt_Field_Enum): Remove flag definition. * gen_il-gen-gen_nodes.adb (N_Aspect_Specification, N_Pragma): Remove Split_PPC flags. * gen_il-internals.adb (Image): Remove use of Split_PPC. * par_sco.adb (Traverse_Aspects): Likewise. * sem_ch13.adb (Make_Aitem_Pragma): Likewise. * sem_ch6.adb (List_Inherited_Pre_Post_Aspects): Likewise. * sem_prag.adb (Analyze_Pre_Post_Condition, Analyze_Pragma, Find_Related_Declaration_Or_Body): Likewise. * sem_util.adb (Applied_On_Conjunct): Likewise. * sinfo.ads: Remove flag documentation. * treepr.adb (Image): Remove use of Split_PPC.
2024-05-13ada: Fix style in commentsPiotr Trojanek1-1/+1
Code cleanup. gcc/ada/ * contracts.adb (Inherit_Subprogram_Contract): Fix style. * sem_ch5.adb (Analyze_Iterator_Specification): Likewise.
2024-05-06ada: Partial implementation of redesign of support for object finalizationEric Botcazou1-3/+3
This set of changes is a partial reimplemention of the support for Ada finalization in the GNAT compiler and run-time library, based on the redesign done by Hristian Kirtchev in February 2022. It only affects the scope-based finalization of objects and does not touch the support for finalization of dynamically allocated objects. It also does not modify the internal architecture of this support in the front-end but only changes its output, i.e. the expanded code. In other words, the code-based dispatching scheme in finalizers and the hook-based approach for transient objects are replaced by finalization scope masters and master nodes, which maintain a list of objects needing finalization, but the expansion of the code that builds these masters is still performed mainly during a dedicated post-processing phase. gcc/ada/ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-finpri$(objext). * contracts.adb (Add_Call_Helper): Append freeze actions to the class-wide type rather than the specific tagged type. * einfo.ads (Finalization_Master_Node_Or_Node): Document. (Status_Flag_Or_Transient_Decl): Remove. * exp_attr.adb (Expand_N_Attribute_Reference) <Address>: Do not adjust a return object of a class-wide interface type. * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add test that Finalize_Address is not already present as a condition for calling Make_Finalize_Address_Body. (Expand_Freeze_Record_Type): Call Make_Finalize_Address_Body for class-wide types of both regular tagged types and interface types. * exp_ch4.adb (Process_Transients_In_Expression): Replace the use of hooks with the use of master nodes. * exp_ch6.adb (Build_Flag_For_Function): Delete. (Expand_N_Extended_Return_Statement): Create a master node for the return object if it does not exist. At the end of the statement, generate a call to Suppress_Object_Finalize. (Expand_Non_Function_Return): Likewise just before the return. * exp_ch7.ads (Make_Master_Node_Declaration): Declare. (Make_Suppress_Object_Finalize_Call): Likewise. * exp_ch7.adb (Build_Finalization_Master): Defer generating the call to Set_Finalize_Address until freezing if the Finalize_Address procedure has not been analyzed yet. (Build_Finalizer): Reimplement the expansion using a finalization scope master per finalizer. (Insert_Actions_In_Scope_Around): Replace finalization hooks by master nodes and calls to the Finalize_Object. (Make_Master_Node_Declaration): New procedure. (Make_Suppress_Object_Finalize_Call): Likewise. * exp_util.ads (Build_Transient_Object_Statements): Delete. * exp_util.adb (Build_Transient_Object_Statements): Likewise. (Requires_Cleanup_Actions): Remove obsolete code and return true for master nodes. * gen_il-fields.ads (Opt_Field_Enum): Add Finalization_Master_Node_Or_Object and remove Status_Flag_Or_Transient_Decl. * gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise. * rtsfind.ads (RTU_Id): Add System_Finalization_Primitives. (RE_Id): Add entities of System_Finalization_Primitives. (RE_Unit_Table): Add entries for them. * sem_ch3.adb (Analyze_Object_Declaration): For an array whose type has an unconstrained first subtype and a controlled component, set the Is_Constr_Array_Subt_With_Bounds flag. * libgnat/s-finpri.ads: New file. * libgnat/s-finpri.adb: Likewise.
2024-01-22Update copyright years.Marc Poulhiès1-1/+1
2024-01-09ada: Fix bug in Sem_Util.Enclosing_DeclarationSteve Baird1-10/+2
Fix Sem_Util.Enclosing_Declaration to not return an N_Subprogram_Specification node. Remove code in various places that was formerly needed to cope with this misbehavior. gcc/ada/ * sem_util.adb (Enclosing_Declaration): Instead of returning a subprogram specification node, return its parent (which is presumably a subprogram declaration). * contracts.adb (Insert_Stable_Property_Check): Remove code formerly needed to compensate for incorrect behavior of Sem_Util.Enclosing_Declaration. * exp_attr.adb (In_Available_Context): Remove code formerly needed to compensate for incorrect behavior of Sem_Util.Enclosing_Declaration. * sem_ch8.adb (Is_Actual_Subp_Of_Inst): Remove code formerly needed to compensate for incorrect behavior of Sem_Util.Enclosing_Declaration.
2023-11-30ada: Remove SPARK legality checksYannick Moy1-156/+7
SPARK legality checks apply only to code with SPARK_Mode On, and are performed again in GNATprove for detecting SPARK-compatible declarations in code with SPARK_Mode Auto. Remove this duplication, to only perform SPARK legality checking in GNATprove. After this patch, only a few special SPARK legality checks are performed in the frontend, which could be moved to GNATprove later. gcc/ada/ * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): Remove checking on volatility. Remove handling of SPARK_Mode, not needed anymore. (Analyze_Entry_Or_Subprogram_Contract): Remove checking on volatility. (Check_Type_Or_Object_External_Properties): Same. (Analyze_Object_Contract): Same. * freeze.adb (Freeze_Record_Type): Same. Also remove checking on synchronized types and ghost types. * sem_ch12.adb (Instantiate_Object): Remove checking on volatility. (Instantiate_Type): Same. * sem_ch3.adb (Access_Type_Declaration): Same. (Derived_Type_Declaration): Remove checking related to untagged partial view. (Process_Discriminants): Remove checking on volatility. * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Same. * sem_ch6.adb (Analyze_Procedure_Call): Fix use of SPARK_Mode where GNATprove_Mode was intended. * sem_disp.adb (Inherited_Subprograms): Protect against Empty node. * sem_prag.adb (Analyze_Global_In_Decl_Part): Remove checking on volatility. (Analyze_Pragma): Same. * sem_res.adb (Flag_Effectively_Volatile_Objects): Remove. (Resolve_Actuals): Remove checking on volatility. (Resolve_Entity_Name): Same. * sem_util.adb (Check_Nonvolatile_Function_Profile): Remove. (Check_Volatility_Compatibility): Remove. * sem_util.ads: Same.
2023-10-19ada: Support new SPARK aspect Side_EffectsYannick Moy1-0/+3
SPARK RM 6.1.11 introduces a new aspect Side_Effects to denote those functions which may have output parameters, write global variables, raise exceptions and not terminate. This adds support for this aspect and the corresponding pragma in the frontend. Handling of this aspect in the frontend is very similar to the handling of aspect Extensions_Visible: both are Boolean aspects whose expression should be static, they can be specified on the same entities, with the same rule of inheritance from overridden to overriding primitives for tagged types. There is no impact on code generation. gcc/ada/ * aspects.ads: Add aspect Side_Effects. * contracts.adb (Add_Pre_Post_Condition) (Inherit_Subprogram_Contract): Add support for new contract. * contracts.ads: Update comments. * einfo-utils.adb (Get_Pragma): Add support. * einfo-utils.ads (Prag): Update comment. * errout.ads: Add explain codes. * par-prag.adb (Prag): Add support. * sem_ch13.adb (Analyze_Aspect_Specifications) (Check_Aspect_At_Freeze_Point): Add support. * sem_ch6.adb (Analyze_Subprogram_Body_Helper) (Analyze_Subprogram_Declaration): Call new analysis procedure to check SPARK legality rules. (Analyze_SPARK_Subprogram_Specification): New procedure to check SPARK legality rules. Use an explain code for the error. (Analyze_Subprogram_Specification): Move checks to new subprogram. This code was effectively dead, as the kind for parameters was set to E_Void at this point to detect early references. * sem_ch6.ads (Analyze_Subprogram_Specification): Add new procedure. * sem_prag.adb (Analyze_Depends_In_Decl_Part) (Analyze_Global_In_Decl_Part): Adapt legality check to apply only to functions without side-effects. (Analyze_If_Present): Extract functionality in new procedure Analyze_If_Present_Internal. (Analyze_If_Present_Internal): New procedure to analyze given pragma kind. (Analyze_Pragmas_If_Present): New procedure to analyze given pragma kind associated with a declaration. (Analyze_Pragma): Adapt support for Always_Terminates and Exceptional_Cases. Add support for Side_Effects. Make sure to call Analyze_If_Present to ensure pragma Side_Effects is analyzed prior to analyzing pragmas Global and Depends. Use explain codes for the errors. * sem_prag.ads (Analyze_Pragmas_If_Present): Add new procedure. * sem_util.adb (Is_Function_With_Side_Effects): New query function to determine if a function is a function with side-effects. * sem_util.ads (Is_Function_With_Side_Effects): Same. * snames.ads-tmpl: Declare new names for pragma and aspect. * doc/gnat_rm/implementation_defined_aspects.rst: Document new aspect. * doc/gnat_rm/implementation_defined_pragmas.rst: Document new pragma. * gnat_rm.texi: Regenerate.
2023-09-19ada: Crash processing type invariants on child subprogramJavier Miranda1-1/+24
gcc/ada/ * contracts.adb (Has_Public_Visibility_Of_Subprogram): Add missing support for child subprograms.
2023-06-20ada: Add the ability to add error codes to error messagesYannick Moy1-2/+3
Add a new character sequence [] for error codes in error messages handled by Error_Msg procedures, to use for SPARK-related errors. Display of additional information on the error or warning based on the error code is delegated to GNATprove. gcc/ada/ * err_vars.ads (Error_Msg_Code): New variable for error codes. * errout.adb (Error_Msg_Internal): Display continuation message when an error code was present. (Set_Msg_Text): Handle character sequence [] for error codes. * errout.ads: Document new insertion sequence []. (Error_Msg_Code): New renaming. * erroutc.adb (Prescan_Message): Detect presence of error code. (Set_Msg_Insertion_Code): Handle new insertion sequence []. * erroutc.ads (Has_Error_Code): New variable for prescan. (Set_Msg_Insertion_Code): Handle new insertion sequence []. * contracts.adb (Check_Type_Or_Object_External_Properties): Replace reference to SPARK RM section by an error code. * sem_elab.adb (SPARK_Processor): Same. * sem_prag.adb (Check_Missing_Part_Of): Same. * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Same.
2023-06-15ada: Accept aspect Always_Terminates on packagesPiotr Trojanek1-0/+3
The recently added aspect Always_Terminates is now allowed on packages and generic packages, but only when it has no arguments. The intuitive meaning is that all subprograms declared in such a package are always terminating. gcc/ada/ * contracts.adb (Add_Contract_Item): Add pragma Always_Terminates to package contract. * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates on packages and generic packages, but only when it has no arguments.
2023-06-13ada: Implement new aspect Always_Terminates for SPARKPiotr Trojanek1-10/+19
This patch allows subprograms to be annotated with aspect Always_Terminates that requires a boolean expression. When this expression evaluates to True, the subprogram is required to terminate or raise an exception, but not loop infinitely. This aspect is only meant to be used by GNATprove and it has no meaningful run-time semantics: either the annotated subprogram terminates and then the aspect expression doesn't matter, or the subprogram loops infinitely and there is nothing we can do. (We could also evaluate the aspect expression just to detect run-time errors in the expression itself, but this can be implemented later, after a backend support for the aspect is added to GNATprove.) Implementation of this aspect is heavily based on the implementation of Subprogram_Variant, which in turn is heavily based on the implementation of Contract_Cases. Since the new aspect is not yet expanded, there is no corresponding assertion kind that would control the expansion. gcc/ada/ * aspects.ads (Aspect_Id): Add new aspect. (Implementation_Defined_Aspect): New aspect is implementation-defined. (Aspect_Argument): New aspect has an expression argument. (Is_Representation_Aspect): New aspect is not a representation aspect. (Aspect_Names): Link new aspect identifier with a name. (Aspect_Delay): New aspect is never delayed. * contracts.adb (Expand_Subprogram_Contract): Mention new aspect in comment. (Add_Contract_Item): Attach pragma corresponding to the new aspect to contract items. (Analyze_Entry_Or_Subprogram_Contract): Analyze pragma corresponding to the new aspect that appears with subprogram spec. (Analyze_Subprogram_Body_Stub_Contract): Expand pragma corresponding to the new aspect. * contracts.ads (Add_Contract_Item, Analyze_Entry_Or_Subprogram_Contract) (Analyze_Entry_Or_Subprogram_Body_Contract) (Analyze_Subprogram_Body_Stub_Contract): Mention new aspect in comment. * einfo-utils.adb (Get_Pragma): Return pragma attached to contract. * einfo-utils.ads (Get_Pragma): Mention new contract in comment. * exp_prag.adb (Expand_Pragma_Always_Terminates): Placeholder for possibly expanding new aspect. * exp_prag.ads (Expand_Pragma_Always_Terminates): Dedicated routine for expansion of the new aspect. * inline.adb (Remove_Aspects_And_Pragmas): Remove aspect from inlined bodies. * par-prag.adb (Prag): Postpone checking of the pragma until analysis. * sem_ch12.adb: Mention new aspect in explanation of handling contracts on generic units. * sem_ch13.adb (Analyze_Aspect_Specifications): Convert new aspect into a corresponding pragma. (Check_Aspect_At_Freeze_Point): Don't expect new aspect. * sem_prag.adb (Analyze_Always_Terminates_In_Decl_Part): Analyze pragma corresponding to the new aspect. (Analyze_Pragma): Handle pragma corresponding to the new aspect. (Is_Non_Significant_Pragma_Reference): Handle references appearing within new aspect. * sem_prag.ads (Aspect_Specifying_Pragma): New aspect can be emulated with a pragma. (Assertion_Expression_Pragma): New aspect has an assertion expression. (Pragma_Significant_To_Subprograms): New aspect is significant to subprograms. (Analyze_Always_Terminates_In_Decl_Part): Add spec for routine that analyses new aspect. (Find_Related_Declaration_Or_Body): Mention new aspect in comment. * sem_util.adb (Is_Subprogram_Contract_Annotation): New aspect is a subprogram contract annotation. * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new aspect in comment. * sinfo.ads (Is_Generic_Contract_Pragma): New pragma is a generic contract. (Contract): Explain attaching new pragma to subprogram contract. * snames.ads-tmpl (Name_Always_Terminates): New name for the new contract. (Pragma_Always_Terminates): New pragma identifier.
2023-06-13ada: Fix exception raised on invalid contract in generic packageEric Botcazou1-10/+21
This lets the compiler give a proper error message instead. gcc/ada/ * contracts.adb (Contract_Error): New exception. (Add_Contract_Item): Raise Contract_Error instead of Program_Error. (Add_Generic_Contract_Pragma): Deal with Contract_Error.
2023-06-13ada: Fix internal error on imported function with post-conditionEric Botcazou1-0/+16
The problem, which is also present for an expression function, is that the function is invoked in the initializing expression of a variable declared in the same declarative part as the function, which causes the freezing of its artificial body before the post-condition is analyzed on its spec. gcc/ada/ * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): For a subprogram body that has no contracts and does not come from source, make sure that contracts on its corresponding spec are analyzed, if any, before expanding them.
2023-05-29ada: Attach pre/post on access-to-subprogram to internal subprogram typePiotr Trojanek1-4/+8
Aspects Pre/Post that annotate access-to-subprogram type were attached to the source entity (whose kind is either E_Access_Subprogram_Type or E_Access_Protected_Subprogram_Type). However, it is more convenient to attach them to the internal entity (whose kind is E_Subprogram_Type), so that both Pre/Post aspects and First_Formal/Next_Formal chain are attached to the same entity, just like for ordinary subprograms. The drawback of having the Post aspect attached to an internal entity is that name in prefixes of attribute Result no longer match the name of entity where this Post aspect is attached. However, currently there is no code that relies on this matching and, in general, there are fewer routines that deal with attribute Result so they are easier to adapt than the code that queries the Pre/Post aspects. gcc/ada/ * contracts.adb (Add_Pre_Post_Condition): Attach pre/post aspects to E_Subprogram_Type entity. (Analyze_Entry_Or_Subprogram_Contract): Adapt to use full type declaration for a contract attached to E_Subprogram_Type entity. * sem_prag.adb (Analyze_Pre_Post_Condition): Add pre/post aspects to the designed type.
2023-05-29ada: Restore parent link for both lists and nodes in class-wide conditionPiotr Trojanek1-3/+5
When preanalysing class-wide conditions, we restore "Function (Object)" to its original "Object.Function" notation. This requires the Parent links to be fixed. We did it for nodes; now we do it for lists as well. This patch is enough to fix assertion failure in CCG and to make the tree well-connected. Perhaps there is a more elegant solution, but that remains to be investigated. gcc/ada/ * contracts.adb (Fix_Parent): Fir part both for lists and nodes.
2023-05-29ada: Simplify removal of formals from the scopePiotr Trojanek1-20/+1
Calls to Install_Formals are typically enclosed by Push_Scope/End_Scope. There were just two such calls that instead used Pop_Scope, but most likely that was by mistake. Cleanup related to handling of class-wide contracts. Behavior appears to be unaffected. gcc/ada/ * contracts.adb (Remove_Formals): Remove. (Preanalyze_Condition): Replace Pop_Scope with End_Scope. * sem_ch13.adb (Build_Discrete_Static_Predicate): Replace Pop_Scope with End_Scope; enclose Install_Formals within Push_Scope/End_Scope.
2023-05-29ada: Fix restoration of parent linkMarc Poulhiès1-1/+2
When resetting the parent link after having restored the selected component node, the assertion used was incorrectly triggered when the traversal hits the members of the parameters association list, as in: This.Some_Func (Param1, Param2).Dispatching_Call When restoring the selected component for Dispatching_Call, the assertion was wrongly triggered when passed Param1 and Param2. gcc/ada/ * contracts.adb (Restore_Original_Selected_Component): Adjust assertion.
2023-05-29ada: Analyze pre/post on access-to-subprogram without a wrapperPiotr Trojanek1-2/+18
Aspects Pre/Post attached to an access-to-subprogram type were relocated to a spec of a wrapper subprogram and analyzed there; the body of the wrapper was only created with expansion enabled. However, there were several problems with this approach. When switch -gnat2022 was missing, we didn't relocate the Pre/Post aspects to wrapper and complained that their placement is incorrect (because we wrongly assumed that relocation is unconditional). Now we gently inform, that these aspects are Ada 2022 features that require -gnat20222 switch. When switch -gnata was missing, we entirely bypassed analysis of the Pre/Post aspects on access-to-subprogram. This was unlike for Pre/Post aspects on subprograms, which are checked for legality regardless of the -gnata switch. Finally, in the GNATprove backend we were picking the Pre/Post contract on an access-to-subprogram type from the wrapper, which was awkward as otherwise we had to ignore the wrapper specs and special-case for their missing bodies. In general, it is cleaner for GNATprove to extract the aspect expressions from where they originally appear and not from various expansion artifacts like access-to-subprogram wrappers (but the same applies to predication functions, type invariant procedures and default initialization procedures). Now we analyze the Pre/Post aspects on the types where they are originally attached, regardless of the -gnata switch. Once we adapt GNATprove to pick the aspect expression from there, we will stop creating the wrapper spec when expansion is disabled. gcc/ada/ * contracts.adb (Add_Pre_Post_Condition): Adapt to handle pre/post of an access-to-subprogram type. (Analyze_Type_Contract): Analyze pre/post of an access-to-subprogram. * contracts.ads (Analyze_Type_Contract): Adapt comment. * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Copy pre/post aspects to wrapper spec and keep it on the type. * sem_prag.adb (Analyze_Pre_Post_Condition): Expect pre/post aspects on access-to-subprogram and complain if they appear without -gnat2022 switch. (Analyze_Pre_Post_Condition_In_Decl_Part): Adapt to handle pre/post on an access-to-subprogram type entity. * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise. (Result): Likewise.
2023-05-26ada: Fix typos "statment" and "condtion"Bob Duff1-2/+2
...caused by moving code here from Atree. gcc/ada/ * einfo.ads: Add comma. * contracts.adb: Fix typos. * exp_attr.adb: Likewise. * exp_ch5.adb: Likewise. * exp_ch6.adb: Likewise. * lib-xref.adb: Likewise.
2023-05-25ada: Fix comments for recently added SPARK aspectsPiotr Trojanek1-0/+2
Implementation of contract Subprogram_Variant and Exceptional_Cases was based on the existing code for Contract_Cases, i.e. on the existing occurrences of Aspect_Contract_Cases, Name_Contract_Cases and Pragma_Contract_Cases. However, occurrences of "Contract_Cases" itself in the comments were not updated. gcc/ada/ * contracts.adb (Add_Pre_Post_Condition): Mention new aspects in the comment. * contracts.ads (Add_Contract_Item): Likewise. (Analyze_Subprogram_Body_Stub_Contract): Likewise. * sem_prag.adb (Contract_Freeze_Error): Likewise. (Ensure_Aggregate_Form): Likewise. * sem_prag.ads (Find_Related_Declaration_Or_Body): Likewise. * sinfo.ads (Is_Generic_Contract_Pragma): Likewise.
2023-05-23ada: Accept and analyze new aspect Exceptional_CasesPiotr Trojanek1-4/+14
Add new aspect Exceptional_Cases, which is intended for SPARK and describes in which cases an exception will be raised, and optionally supply a postcondition that shall be verified in this case. The implementation is heavily modeled after Subprogram_Variant, which in turn was heavily modeled after Contract_Cases. Currently the aspect is only analysed; the code infrastructure required to expand it is prepared but empty. This is enough for the aspect to be verified by GNATprove. gcc/ada/ * aspects.ads (Aspect_Id): Add aspect identifier. (Aspect_Argument): New aspect accepts an expression. (Is_Representation_Aspect): New aspect is not a representation aspect. (Aspect_Names): Associate name with the new aspect identifier. (Aspect_Delay): New aspect is never delayed. * contracts.adb (Add_Contract_Item): Store new aspect among contract items. (Analyze_Entry_Or_Subprogram_Contract): Likewise. (Analyze_Subprogram_Body_Stub_Contract): Likewise. (Process_Contract_Cases): Expand new aspect, if present. * contracts.ads (Analyze_Entry_Or_Subprogram_Body_Contract): Mention new aspect in spec. (Analyze_Entry_Or_Subprogram_Contract): Likewise. * einfo-utils.adb (Get_Pragma): Allow new aspect to be picked by the backend. * einfo-utils.ads (Get_Pragma): Mention new aspect in spec. * exp_prag.adb (Expand_Pragma_Exceptional_Cases): Dummy expansion routine. * exp_prag.ads (Expand_Pragma_Exceptional_Cases): Add spec for expansion routine. * inline.adb (Remove_Aspects_And_Pragmas): Remove aspect from bodies to inline. * par-prag.adb (Par.Prag): Accept pragma in the parser, so it will be checked later. * sem_ch12.adb (Implementation of Generic Contracts): Mention new aspect in comment. * sem_ch13.adb (Analyze_Aspect_Specifications): Transform new aspect info a corresponding pragma. * sem_prag.adb (Analyze_Exceptional_Cases_In_Decl_Part): Analyze aspect expression; heavily inspired by the existing code for analysis of Subprogram_Variant and exception handlers. (Analyze_Pragma): Analyze pragma corresponding to the new aspect. (Is_Non_Significant_Pragma_Reference): Add new pragma to the table. * sem_prag.ads (Assertion_Expression_Pragma): New pragma acts as an assertion expression, even though it is not currently expanded. (Analyze_Exceptional_Cases_In_Decl_Part): Add spec. * sem_util.adb (Is_Subprogram_Contract_Annotation): Mark new annotation is a subprogram contract, so the subprogram with it won't be inlined. * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new aspect in comment. * sinfo.ads (Contract_Test_Cases): Mention new aspect in comment. * snames.ads-tmpl: Add entries for the new name and pragma.
2023-01-09ada: Update copyright noticeArnaud Charlet1-1/+1
gcc/ada/ * accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year. * adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise. * adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise. * ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise. * aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise. * aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise. * backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise. * binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise. * bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise. * bindo-builders.ads, bindo-diagnostics.adb: Likewise. * bindo-diagnostics.ads, bindo-elaborators.adb: Likewise. * bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise. * bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise. * bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise. * bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise. * butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise. * checks.ads, cio.c, clean.adb, clean.ads: Likewise. * comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise. * csets.adb, csets.ads, cstand.adb: Likewise. * cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise. * debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise. * einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise. * env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise. * erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise. * eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise. * exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise. * exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise. * exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise. * exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise. * exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise. * exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise. * exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise. * exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise. * exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise. * exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise. * exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise. * exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise. * exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise. * exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise. * exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise. * exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise. * final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise. * fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise. * freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise. * gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise. * gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise. * gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise. * gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise. * get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise. * gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise. * gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise. * gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise. * gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise. * gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise. * gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise. * gprep.adb, gprep.ads, gsocket.h: Likewise. * hostparm.ads: Likewise. * impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise. * indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise. * initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise. * krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise. * lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise. * lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise. * lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise. * lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise. * libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise. * libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise. * libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise. * libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise. * libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise. * libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise. * libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise. * libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise. * libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise. * libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise. * libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise. * libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise. * libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise. * libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise. * libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise. * libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise. * libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise. * libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise. * libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise. * libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise. * libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise. * libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise. * libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise. * libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise. * libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise. * libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise. * libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise. * libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise. * libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise. * libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise. * libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise. * libgnarl/s-interr__sigaction.adb: Likewise. * libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise. * libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise. * libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise. * libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise. * libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise. * libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise. * libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise. * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise. * libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise. * libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise. * libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise. * libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise. * libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise. * libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise. * libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise. * libgnarl/s-osinte__dragonfly.adb: Likewise. * libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise. * libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise. * libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise. * libgnarl/s-osinte__hpux-dce.adb: Likewise. * libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise. * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. * libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise. * libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise. * libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise. * libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise. * libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise. * libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise. * libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise. * libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise. * libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise. * libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise. * libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise. * libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise. * libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise. * libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise. * libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise. * libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise. * libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise. * libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise. * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise. * libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise. * libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise. * libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise. * libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise. * libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise. * libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise. * libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise. * libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise. * libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise. * libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise. * libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise. * libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise. * libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise. * libgnarl/s-taspri__posix-noaltstack.ads: Likewise. * libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise. * libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise. * libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise. * libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise. * libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise. * libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise. * libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise. * libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise. * libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise. * libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise. * libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise. * libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise. * libgnarl/s-tpopsp__posix-foreign.adb: Likewise. * libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise. * libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise. * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise. * libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise. * libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise. * libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise. * libgnarl/s-vxwext__kernel-smp.adb: Likewise. * libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise. * libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise. * libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise. * libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise. * libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise. * libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise. * libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise. * libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise. * libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise. * libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise. * libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise. * libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise. * libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise. * libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise. * libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise. * libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise. * libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise. * libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise. * libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise. * libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise. * libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise. * libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise. * libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise. * libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise. * libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise. * libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise. * libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise. * libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise. * libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise. * libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise. * libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise. * libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise. * libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise. * libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise. * libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise. * libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise. * libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise. * libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise. * libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise. * libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise. * libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise. * libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise. * libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise. * libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise. * libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise. * libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise. * libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise. * libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise. * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise. * libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise. * libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise. * libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise. * libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise. * libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise. * libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise. * libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise. * libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise. * libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise. * libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise. * libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise. * libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise. * libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise. * libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise. * libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise. * libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise. * libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise. * libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise. * libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise. * libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise. * libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise. * libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise. * libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise. * libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise. * libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise. * libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise. * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise. * libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise. * libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise. * libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise. * libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise. * libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise. * libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise. * libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise. * libgnat/a-excach.adb, libgnat/a-except.adb: Likewise. * libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise. * libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise. * libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise. * libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise. * libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise. * libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise. * libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise. * libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise. * libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise. * libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise. * libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise. * libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise. * libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise. * libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise. * libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise. * libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise. * libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise. * libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise. * libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise. * libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise. * libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise. * libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise. * libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise. * libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise. * libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise. * libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise. * libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise. * libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise. * libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise. * libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise. * libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise. * libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise. * libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise. * libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise. * libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise. * libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise. * libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise. * libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise. * libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise. * libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise. * libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise. * libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise. * libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise. * libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise. * libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise. * libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise. * libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise. * libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise. * libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise. * libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise. * libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise. * libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise. * libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise. * libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise. * libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise. * libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise. * libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise. * libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise. * libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise. * libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise. * libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise. * libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise. * libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise. * libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise. * libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise. * libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise. * libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise. * libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise. * libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise. * libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise. * libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise. * libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise. * libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise. * libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise. * libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise. * libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise. * libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise. * libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise. * libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise. * libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise. * libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise. * libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise. * libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise. * libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise. * libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise. * libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise. * libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise. * libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise. * libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise. * libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise. * libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise. * libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise. * libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise. * libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise. * libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise. * libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise. * libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise. * libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise. * libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise. * libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise. * libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise. * libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise. * libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise. * libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise. * libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise. * libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise. * libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise. * libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise. * libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise. * libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise. * libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise. * libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise. * libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise. * libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise. * libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise. * libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise. * libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise. * libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise. * libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise. * libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise. * libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise. * libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise. * libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise. * libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise. * libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise. * libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise. * libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise. * libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise. * libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise. * libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise. * libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise. * libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise. * libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise. * libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise. * libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise. * libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise. * libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise. * libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise. * libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise. * libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise. * libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise. * libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise. * libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise. * libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise. * libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise. * libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise. * libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise. * libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise. * libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise. * libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise. * libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise. * libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise. * libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise. * libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise. * libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise. * libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise. * libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise. * libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise. * libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise. * libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise. * libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise. * libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise. * libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise. * libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise. * libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise. * libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise. * libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise. * libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise. * libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise. * libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise. * libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise. * libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise. * libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise. * libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise. * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise. * libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise. * libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise. * libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise. * libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise. * libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise. * libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise. * libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise. * libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise. * libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise. * libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise. * libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise. * libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise. * libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise. * libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise. * libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise. * libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise. * libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise. * libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise. * libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise. * libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise. * libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise. * libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise. * libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise. * libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise. * libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise. * libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise. * libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise. * libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise. * libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise. * libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise. * libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise. * libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise. * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise. * libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise. * libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise. * libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise. * libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise. * libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise. * libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise. * libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise. * libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise. * libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise. * libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise. * libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise. * libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise. * libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise. * libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise. * libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise. * libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise. * libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise. * libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise. * libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise. * libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise. * libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise. * libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise. * libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise. * libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise. * libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise. * libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise. * libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise. * libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise. * libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise. * libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise. * libgnat/g-string.adb, libgnat/g-string.ads: Likewise. * libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise. * libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise. * libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise. * libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise. * libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise. * libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise. * libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise. * libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise. * libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise. * libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise. * libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise. * libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise. * libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise. * libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise. * libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise. * libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise. * libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise. * libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise. * libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise. * libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise. * libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise. * libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise. * libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise. * libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise. * libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise. * libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise. * libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise. * libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise. * libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise. * libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise. * libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise. * libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise. * libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise. * libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise. * libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise. * libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise. * libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise. * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise. * libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise. * libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise. * libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise. * libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise. * libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise. * libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise. * libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise. * libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise. * libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise. * libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise. * libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise. * libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise. * libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise. * libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise. * libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise. * libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise. * libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise. * libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise. * libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise. * libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise. * libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise. * libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise. * libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise. * libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise. * libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise. * libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise. * libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise. * libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise. * libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise. * libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise. * libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise. * libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise. * libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise. * libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise. * libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise. * libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise. * libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise. * libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise. * libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise. * libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise. * libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise. * libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise. * libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise. * libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise. * libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise. * libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise. * libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise. * libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise. * libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise. * libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise. * libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise. * libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise. * libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise. * libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise. * libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise. * libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise. * libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise. * libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise. * libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise. * libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise. * libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise. * libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise. * libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise. * libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise. * libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise. * libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise. * libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise. * libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise. * libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise. * libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise. * libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise. * libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise. * libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise. * libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise. * libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise. * libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise. * libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise. * libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise. * libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise. * libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise. * libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise. * libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise. * libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise. * libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise. * libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise. * libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise. * libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise. * libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise. * libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise. * libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise. * libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise. * libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise. * libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise. * libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise. * libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise. * libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise. * libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise. * libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise. * libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise. * libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise. * libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise. * libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise. * libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise. * libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise. * libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise. * libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise. * libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise. * libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise. * libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise. * libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise. * libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise. * libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise. * libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise. * libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise. * libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise. * libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise. * libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise. * libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise. * libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise. * libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise. * libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise. * libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise. * libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise. * libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise. * libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise. * libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise. * libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise. * libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise. * libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise. * libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise. * libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise. * libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise. * libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise. * libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise. * libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise. * libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise. * libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise. * libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise. * libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise. * libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise. * libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise. * libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise. * libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise. * libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise. * libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise. * libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise. * libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise. * libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise. * libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise. * libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise. * libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise. * libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise. * libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise. * libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise. * libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise. * libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise. * libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise. * libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise. * libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise. * libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise. * libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise. * libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise. * libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise. * libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise. * libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise. * libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise. * libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise. * libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise. * libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise. * libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise. * libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise. * libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise. * libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise. * libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise. * libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise. * libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise. * libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise. * libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise. * libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise. * libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise. * libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise. * libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise. * libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise. * libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise. * libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise. * libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise. * libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise. * libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise. * libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise. * libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise. * libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise. * libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise. * libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise. * libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise. * libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise. * libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise. * libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise. * libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise. * libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise. * libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise. * libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise. * libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise. * libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise. * libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise. * libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise. * libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise. * libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise. * libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise. * libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise. * libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise. * libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise. * libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise. * libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise. * libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise. * libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise. * libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise. * libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise. * libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise. * libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise. * libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise. * libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise. * libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise. * libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise. * libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise. * libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise. * libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise. * libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise. * libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise. * libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise. * libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise. * libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise. * libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise. * libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise. * libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise. * libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise. * libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise. * libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise. * libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise. * libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise. * libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise. * libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise. * libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise. * libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise. * libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise. * libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise. * libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise. * libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise. * libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise. * libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise. * libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise. * libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise. * libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise. * libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise. * libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise. * libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise. * libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise. * libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise. * libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise. * libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise. * libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise. * libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise. * libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise. * libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise. * libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise. * libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise. * libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise. * libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise. * libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise. * libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise. * libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise. * libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise. * libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise. * libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise. * libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise. * libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise. * libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise. * libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise. * libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise. * libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise. * libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise. * libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise. * libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise. * libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise. * libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise. * libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise. * libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise. * libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise. * libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise. * libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise. * libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise. * libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise. * libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise. * libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise. * libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise. * libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise. * libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise. * libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise. * libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise. * libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise. * libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise. * libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise. * libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise. * libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise. * libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise. * libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise. * libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise. * libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise. * libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise. * libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise. * libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise. * libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise. * libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise. * libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise. * libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise. * libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise. * libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise. * libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise. * libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise. * libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise. * libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise. * libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise. * libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise. * libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise. * libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise. * libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise. * libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise. * libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise. * libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise. * libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise. * libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise. * libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise. * libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise. * libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise. * libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise. * libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise. * libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise. * libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise. * libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise. * libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise. * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise. * libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise. * libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise. * libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise. * libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise. * libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise. * libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise. * libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise. * libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise. * libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise. * libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise. * libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise. * libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise. * libgnat/system-solaris-sparc.ads: Likewise. * libgnat/system-solaris-x86.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-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-ppc-kernel.ads: Likewise. * libgnat/system-vxworks7-ppc-rtp-smp.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_64-kernel.ads: Likewise. * libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise. * live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise. * make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise. * mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise. * mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise. * namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise. * opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise. * osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise. * osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise. * par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise. * par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise. * par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise. * par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise. * par.ads, par_sco.adb, par_sco.ads: Likewise. * pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise. * prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise. * raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise. * repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise. * restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise. * rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise. * scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise. * scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise. * scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise. * sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise. * sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise. * sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise. * sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise. * sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise. * sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise. * sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise. * sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise. * sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise. * sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise. * sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise. * sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise. * sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise. * sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise. * sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise. * sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise. * sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise. * sigtramp-ios.c, sigtramp-qnx.c: Likewise. * sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise. * sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise. * sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise. * sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise. * sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise. * sprint.adb, sprint.ads, stand.ads: Likewise. * stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise. * style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise. * stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise. * switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise. * switch.ads, sysdep.c, table.adb: Likewise. * table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise. * tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise. * treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise. * types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise. * urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise. * validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise. * warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise. * xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise. * gnatvsn.ads (Current_Year): Likewise and bump to 2023.
2023-01-05ada: Simplify new expansion of contractsEric Botcazou1-100/+5
We can now use an extended return statement in all cases since it no longer generates an extra copy for nonlimited by-reference types. gcc/ada/ * contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an extended return statement in all cases. (Expand_Subprogram_Contract): Adjust comment.
2022-12-06ada: Allow No_Caching on volatile typesYannick Moy1-16/+16
SPARK RM now allow the property No_Caching on volatile types, to indicate that they should be considered volatile for compilation, but not by GNATprove's analysis. gcc/ada/ * 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-11-22ada: Fix recent assertion failure on GPR2Eric Botcazou1-14/+4
It's the compiler trying to load the nonexistent body of a generic package when trying to inline a call to an expression function of this package that has a pre or post-condition (hence the need for -gnata to trigger the ICE). gcc/ada/ * contracts.adb (Build_Subprogram_Contract_Wrapper): Do not fiddle with the Was_Expression_Function flag. Move a few lines around.
2022-11-21ada: Move warnings switchesBob Duff1-0/+1
This patch moves warning switches from Opt into Warnsw, fixes some minor discrepancies, and cleans up the code. No change in behavior. gcc/ada/ * 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-08ada: Adjust classwide contract expression preanalysisRonan Desplanques1-232/+249
Before this patch, a classwide contract expression was preanalyzed only when its primitive operation's type was frozen. It caused name resolution to be off in the cases where the freezing took place after the end of the declaration list the primitive operation was declared in. This patch makes it so that if the compiler gets to the end of the declaration list before the type is frozen, it preanalyzes the classwide contract expression, so that the names are resolved in the right context. gcc/ada/ * 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-08ada: Preanalyze classwide contracts as spec expressionsRonan Desplanques1-2/+2
Classwide contracts are "spec expressions" as defined in the documentation in sem.ads. Before this patch, the instances of classwide contracts that are destined to class conditions merging were not preanalyzed as spec expressions. That caused preanalysis to emit spurious errors in some cases. gcc/ada/ * contracts.adb (Preanalyze_Condition): Use Preanalyze_Spec_Expression.
2022-09-29ada: Further tweak new expansion of contractsEric Botcazou1-3/+43
The original extended return statement is mandatory for functions whose result type is limited in Ada 2005 and later. gcc/ada/ * 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-26ada: Only reject volatile ghost objects when SPARK_Mode is OnPiotr Trojanek1-1/+1
SPARK rule that forbids ghost volatile objects is only affecting proof and not generation of object code. It is now only applied where SPARK_Mode is On. This flexibility is needed to compile code automatically instrumented by GNATcoverage. gcc/ada/ * contracts.adb (Analyze_Object_Contract): Check SPARK_Mode before applying SPARK rule.
2022-09-12[Ada] Temporary tweak new expansion of contractsEric Botcazou1-35/+84
In the case of a function, the new expansion of contracts makes use of an extended return statement to store the result of the function in the return object while the post-conditions are evaluated. Unfortunately GNAT does not elide the copy of the return object for extended return statements for the time being, so this scheme incurs an extra copy of the return value on the primary or secondary stack, as well as an additional pair of calls to Adjust/Finalize when the return type needs finalization. This temporarily changes the expansion to use a block statement containing a renaming, which does not incur the extra copy provided that it is manually adjusted to be recognized by the existing "tail call" optimization present in the Expand_Simple_Function_Return routine. gcc/ada/ * contracts.adb (uild_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[Ada] Internal error compiling formal instance of generic with Initial_ConditionSteve Baird1-0/+12
Prevent the compiler from failing with an internal error in some cases involving an instance of a generic which takes as a formal parameter an instance of a second generic, where the second generic has an Initial_Condition aspect specification. gcc/ada/ * 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[Ada] Tech debt: Expansion of contractsJustin Squirek1-436/+617
This patch modifies the expansion of contracts such that the statements and declarations of a subprogram with post-execution checks get moved to a local internally generated subprogram which the original subprogram calls directly followed by the required post-execution checks. This differs from the current implementation which requires delicate machinary which coordinates with the finalization process to emulate the desired behavior within the "at end" procedure. gcc/ada/ * 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-06-01[Ada] Allow confirming volatile properties on No_Caching variablesYannick Moy1-3/+9
Volatile variables marked with the No_Caching aspect can now have confirming aspects for other volatile properties, with a value of False. gcc/ada/ * 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[Ada] Fix bad interaction between Inline_Always and -gnateV + -gnataEric Botcazou1-1/+4
The combination of pragma/aspect Inline_Always and -gnateV -gnata runs afoul of the handling of inlining across units by gigi, which does not inline a subprogram that calls nested subprograms if these subprograms are not themselves inlined. This condition does not apply to internally generated subprograms but the special _postconditions procedure has Debug_Info_Needed set so it is not considered as such and, as a consequence, triggers an error if the enclosing subprogram requires inlining by means of Inline_Always. The _postconditions procedure is already marked inlined when generating C code so it makes sense to mark it inlined in the general case as well. gcc/ada/ * contracts.adb (Build_Postconditions_Procedure): Set Is_Inlined unconditionnally on the procedure entity.
2022-05-17[Ada] Implement calls to abstract subprograms in class-wide pre/post-conditionsJavier Miranda1-2/+12
In some special cases involving class-wide pre/post conditions, Ada allows a non-dispatching call to an abstract function (which is usually illegal). Fix a bug in the implementation of Ada's rules about the run-time behavior of such a call. Thanks to Javier Miranda for producing this patch. gcc/ada/ * contracts.adb (Build_Call_Helper_Body): Improve handling of the case of a (legal) non-dispatching call to an abstract subprogram.
2022-05-13[Ada] Compiler crash on -gnata -O2Javier Miranda1-9/+30
gcc/ada/ * 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-01-11[Ada] Update copyright notice and bump Gnatvsn.Current_YearArnaud Charlet1-1/+1
gcc/ada/ * 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-07[Ada] Crash in class-wide pre/postconditionsJavier Miranda1-12/+142
gcc/ada/ * 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-06[Ada] Crash in class-wide pre/postconditionsJavier Miranda1-106/+58
gcc/ada/ * 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.
2021-12-02[Ada] Cleanup insertion of single freezing actionsPiotr Trojanek1-2/+0
gcc/ada/ * exp_util.adb (Append_Freeze_Action): Tune whitespace to make the code look similar to Append_Freeze_Actions, which takes a List_Id. * sem_ch6.adb (Analyze_Return_Type): Cleanup with Append_Freeze_Action. * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Likewise. * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise. * contracts.adb (Add_Indirect_Call_Wrapper): Remove extra call to Ensure_Freeze_Node. (Add_Call_Helper): Likewise. * freeze.adb (Check_Inherited_Conditions): Likewise. (Attribute_Renaming): Likewise. * sem_ch8.adb: Likewise.
2021-10-01[Ada] Ada2022: AI12-0195 overriding class-wide pre/postconditionsJavier Miranda1-215/+1348
gcc/ada/ * contracts.ads (Make_Class_Precondition_Subps): New subprogram. (Merge_Class_Conditions): New subprogram. (Process_Class_Conditions_At_Freeze_Point): New subprogram. * contracts.adb (Check_Class_Condition): New subprogram. (Set_Class_Condition): New subprogram. (Analyze_Contracts): Remove code analyzing class-wide-clone subprogram since it is no longer built. (Process_Spec_Postconditions): Avoid processing twice seen subprograms. (Process_Preconditions): Simplify its functionality to non-class-wide preconditions. (Process_Preconditions_For): No action needed for wrappers and helpers. (Make_Class_Precondition_Subps): New subprogram. (Process_Class_Conditions_At_Freeze_Point): New subprogram. (Merge_Class_Conditions): New subprogram. * exp_ch6.ads (Install_Class_Preconditions_Check): New subprogram. * exp_ch6.adb (Expand_Call_Helper): Install class-wide preconditions check on dispatching primitives that have or inherit class-wide preconditions. (Freeze_Subprogram): Remove code for null procedures with preconditions. (Install_Class_Preconditions_Check): New subprogram. * exp_util.ads (Build_Class_Wide_Expression): Lower the complexity of this subprogram; out-mode formal Needs_Wrapper since this functionality is now provided by a new subprogram. (Get_Mapped_Entity): New subprogram. (Map_Formals): New subprogram. * exp_util.adb (Build_Class_Wide_Expression): Lower the complexity of this subprogram. Its previous functionality is now provided by subprograms Needs_Wrapper and Check_Class_Condition. (Add_Parent_DICs): Map the overridden primitive to the overriding one. (Get_Mapped_Entity): New subprogram. (Map_Formals): New subprogram. (Update_Primitives_Mapping): Adding assertion. * freeze.ads (Check_Inherited_Conditions): Subprogram made public with added formal to support late overriding. * freeze.adb (Check_Inherited_Conditions): New implementation; builds the dispatch table wrapper required for class-wide pre/postconditions; added support for late overriding. (Needs_Wrapper): New subprogram. * sem.ads (Inside_Class_Condition_Preanalysis): New global variable. * sem_disp.ads (Covered_Interface_Primitives): New subprogram. * sem_disp.adb (Covered_Interface_Primitives): New subprogram. (Check_Dispatching_Context): Skip checking context of dispatching calls during preanalysis of class-wide conditions since at that stage the expression is not installed yet on its definite context. (Check_Dispatching_Call): Skip checking 6.1.1(18.2/5) by AI12-0412 on helpers and wrappers internally built for supporting class-wide conditions; for late-overriding subprograms call Check_Inherited_Conditions to build the dispatch-table wrapper (if required). (Propagate_Tag): Adding call to Install_Class_Preconditions_Check. * sem_util.ads (Build_Class_Wide_Clone_Body): Removed. (Build_Class_Wide_Clone_Call): Removed. (Build_Class_Wide_Clone_Decl): Removed. (Class_Condition): New subprogram. (Nearest_Class_Condition_Subprogram): New subprogram. * sem_util.adb (Build_Class_Wide_Clone_Body): Removed. (Build_Class_Wide_Clone_Call): Removed. (Build_Class_Wide_Clone_Decl): Removed. (Class_Condition): New subprogram. (Nearest_Class_Condition_Subprogram): New subprogram. (Eligible_For_Conditional_Evaluation): No need to evaluate class-wide conditions during preanalysis since the expression is not installed on its definite context. * einfo.ads (Class_Wide_Clone): Removed. (Class_Postconditions): New attribute. (Class_Preconditions): New attribute. (Class_Preconditions_Subprogram): New attribute. (Dynamic_Call_Helper): New attribute. (Ignored_Class_Postconditions): New attribute. (Ignored_Class_Preconditions): New attribute. (Indirect_Call_Wrapper): New attribute. (Is_Dispatch_Table_Wrapper): New attribute. (Static_Call_Helper): New attribute. * exp_attr.adb (Expand_N_Attribute_Reference): When the prefix is of an access-to-subprogram type that has class-wide preconditions and an indirect-call wrapper of such subprogram is available, replace the prefix by the wrapper. * exp_ch3.adb (Build_Class_Condition_Subprograms): New subprogram. (Register_Dispatch_Table_Wrappers): New subprogram. * exp_disp.adb (Build_Class_Wide_Check): Removed; class-wide precondition checks now rely on internally built helpers. * sem_ch13.adb (Analyze_Aspect_Specifications): Set initial value of attributes Class_Preconditions, Class_Postconditions, Ignored_Class_Preconditions and Ignored_Class_Postconditions. These values are later updated with the full pre/postcondition by Merge_Class_Conditions. (Freeze_Entity_Checks): Call Process_Class_Conditions_At_Freeze_Point. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove code building the body of the class-wide clone subprogram since it is no longer required. (Install_Entity): Adding assertion. * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove code building and analyzing the class-wide clone subprogram; no longer required. (Build_Pragma_Check_Equivalent): Adjust call to Build_Class_Wide_Expression since the formal named Needs_Wrapper has been removed. * sem_attr.adb (Analyze_Attribute_Old_Result): Skip processing these attributes during preanalysis of class-wide conditions since at that stage the expression is not installed yet on its definite context. * sem_res.adb (Resolve_Actuals): Skip applying RM 3.9.2(9/1) and SPARK RM 6.1.7(3) on actuals of internal helpers and wrappers built to support class-wide preconditions. * sem_ch5.adb (Process_Bounds): Do not generate a constant declaration for the bounds when we are preanalyzing a class-wide condition. (Analyze_Loop_Parameter_Specification): Handle preanalysis of quantified expression placed in the outermost expression of a class-wide condition. * ghost.adb (Check_Ghost_Context): No check required during preanalysis of class-wide conditions. * gen_il-fields.ads (Opt_Field_Enum): Adding Class_Postconditions, Class_Preconditions, Class_Preconditions_Subprogram, Dynamic_Call_Helper, Ignored_Class_Postconditions, Ignored_Class_Preconditions, Indirect_Call_Wrapper, Is_Dispatch_Table_Wrapper, Static_Call_Helper. * gen_il-gen-gen_entities.adb (Is_Dispatch_Table_Wrapper): Adding semantic flag Is_Dispatch_Table_Wrapper; removing semantic field Class_Wide_Clone; adding semantic fields for Class_Postconditions, Class_Preconditions, Class_Preconditions_Subprogram, Dynamic_Call_Helper, Ignored_Class_Postconditions, Indirect_Call_Wrapper, Ignored_Class_Preconditions, and Static_Call_Helper.
2021-09-22[Ada] Fix conformance errors and erroneous codeBob Duff1-3/+3
gcc/ada/ * contracts.adb, einfo-utils.adb, einfo-utils.ads, exp_ch7.adb, exp_ch9.adb, exp_disp.adb, exp_prag.adb, exp_smem.adb, exp_util.adb, freeze.adb, sem_aggr.adb, sem_attr.adb, sem_ch8.adb, sem_prag.ads, sem_util.adb, sem_util.ads: Fix conformance errors. * errout.adb, erroutc.adb: Remove pragmas Suppress. * err_vars.ads: Initialize variables that were previously being read uninitialized.
2021-09-20[Ada] Accept volatile properties on constant objectsPiotr Trojanek1-51/+25
gcc/ada/ * contracts.adb (Add_Contract_Item): Accept volatile-related properties on constants. (Analyze_Object_Contract): Check external properties on constants; accept volatile constants. (Check_Type_Or_Object_External_Properties): Replace "variable" with "object" in error messages; replace Decl_Kind with a local constant. * sem_prag.adb (Analyze_Pragma): Accept volatile-related properties on constants.
2021-06-18[Ada] Ada2020: AI12-0195 overriding class-wide pre/post conditionsJavier Miranda1-2/+30
gcc/ada/ * contracts.adb (Process_Spec_Postconditions): Add missing support for aliased subprograms and handle wrappers of class-wide pre/post conditions. (Process_Inherited_Preconditions): Add missing support for aliased subprograms and handle wrappers of class-wide pre/post conditions. * einfo.ads (Class_Wide_Clone): Fix typo. (Is_Class_Wide_Clone): Removed since it is not referenced. (Is_Wrapper): Documenting new flag. (LSP_Subprogram): Documenting new attribute. * exp_ch3.adb (Make_Controlling_Function_Wrappers): Decorate wrapper as Is_Wrapper and adjust call to Override_Dispatching_Operation. * freeze.adb (Build_Inherited_Condition_Pragmas): Fix typo in documentation. (Check_Inherited_Conditions): Handle LSP wrappers; ensure correct decoration of LSP wrappers. * gen_il-fields.ads (Is_Class_Wide_Clone): Removed. (Is_Wrapper): Added. (LSP_Subprogram): Added. * gen_il-gen-gen_entities.adb (Is_Class_Wide_Clone): Removed. (Is_Wrapper): Added. (LSP_Subprogram): Added. * gen_il-internals.adb (Image): Adding uppercase image of LSP_Subprogram. * sem_ch6.adb (New_Overloaded_Entity): Fix decoration of LSP wrappers. * sem_disp.ads (Override_Dispatching_Operation): Remove parameter Is_Wrapper; no longer needed. * sem_disp.adb (Check_Dispatching_Operation): Adjust assertion. (Override_Dispatching_Operation): Remove parameter Is_Wrapper; no longer needed. * treepr.adb (Image): Adding uppercase image of LSP_Subprogram.
2021-05-07[Ada] Minor reformattingsBob Duff1-32/+32
gcc/ada/ * par_sco.adb: Align with/use clauses. (Traverse_Declarations_Or_Statements): Minor comment fix. * aspects.adb, atree.adb, atree.ads, checks.adb, comperr.adb, contracts.adb, cstand.adb, debug_a.adb, einfo-utils.adb, errout.adb, eval_fat.adb, exp_aggr.adb, expander.adb, exp_atag.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb, exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_disp.adb, exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb, exp_util.ads, freeze.adb, frontend.adb, ghost.adb, gnat1drv.adb, gnat_cuda.adb, impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb, lib-xref-spark_specific.adb, live.adb, nlists.adb, par.adb, par-ch11.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb, sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb, sem_scil.adb, sem_smem.adb, sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb, sinfo-cn.adb, sinfo-utils.ads, sinput.adb, sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads, treepr.adb, uname.adb: Align with/use clauses.
2021-05-07[Ada] Variable-sized node types -- cleanupBob Duff1-5/+5
gcc/ada/ * atree.ads, atree.adb, gen_il-gen.ads: Fix comments and clean up ??? marks. Rename Set_Ekind to be Mutate_Ekind. * einfo.ads, sinfo.ads: Likewise. Change "definitive definition" to "official definition", because the former sounds redundant. Rename Set_Ekind to be Mutate_Ekind. * checks.adb, contracts.adb, cstand.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_disp.adb, exp_dist.adb, exp_imgv.adb, exp_intr.adb, exp_prag.adb, exp_unst.adb, exp_util.adb, gen_il-gen.adb, inline.adb, lib-writ.adb, lib-xref-spark_specific.adb, sem_aggr.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dist.adb, sem_elab.adb, sem_prag.adb, sem_util.adb: Rename Set_Ekind to be Mutate_Ekind.
2021-05-07[Ada] Variable-sized node typesBob Duff1-2/+6
gcc/ada/ * atree.ads, atree.adb: Major rewrite to support variable-sized node types. Add pragmas Suppress and Assertion_Policy. We now have an extra level of indirection: Node_Offsets is a table mapping Node_Ids to the offset of the start of each node in Slots. Slots is a table containing one or more contiguous slots for each node. Each slot is a 32-bit unchecked union that can contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits. The old low-level getters and setters (e.g. Flag123) are removed. * gen_il-fields.ads, gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads, gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb, gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program that generates various Ada and C++ files. In particular, the following files are generated by gen_il: einfo-entities.adb einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads, seinfo.ads, seinfo_tables.adb, seinfo_tables.ads, sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h. * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb, einfo-utils.ads: New files containing code that needs to refer to Sinfo.Nodes and Einfo.Entities. This code is mostly moved here from Sinfo and Einfo to break cycles. * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi, instead of nodes_ptr and flags_ptr. The Nodes and Flags tables no longer exist. (Note that gigi never used the Flags table.) * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier, Change_Character_Literal_To_Defining_Character_Literal, Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into an IN formal. * sinfo-cn.adb: Update. Add assertions, which can be removed at some point. Rewrite to use higher-level facilities. Make sure vanishing fields are zeroed out. Add with/use for new packages. * sem_util.adb: Remove "Assert(False)" immediately followed by "raise Program_Error". Use higher-level facilities such as Walk_Sinfo_Fields instead of depending on low-level Set_FieldN routines that no longer exist. Use Get_Comes_From_Source_Default instead of Default_Node.Comes_From_Source (Default_Node no longer exists). Use Set_Basic_Convention instead of Basic_Set_Convention. Add with/use for new packages. * sem_util.ads: The Convention field had getter Convention and setter Basic_Set_Convention. Make that more uniform: there is now a field called Basic_Convention, with Basic_Convention and Set_Basic_Convention as getter/setter, and write Convention and Set_Convention here. * nlists.adb: Rewrite to use abstractions, rather then depending on low-level implementation details of Atree. Necessary because those details have changed. Add with/use for new packages. * sem_ch12.adb: Use higher-level facilities such as Walk_Sinfo_Fields instead of depending on low-level Set_FieldN routines that no longer exist. Add with/use for new packages. * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb, sem_prag.adb, sem_warn.adb: Change expanded names to refer to the new packages for things that moved. Add with/use for new packages. * sem_ch3.adb: Likewise. Reinitialize vanishing fields. * exp_disp.adb: Likewise. Remove failing assertion. * sinfo.ads, einfo.ads: Remove code that is now generated into Sinfo.Nodes and Einfo.Entities. * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;". We should delete these at some point, but No_Body makes make files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities, Sinfo.Utils, and Einfo.Utils. Some is no longer necessary. * treepr.adb: Rewrite to use new tables. We no longer need treeprs.ads. * treepr.ads: Add comment. * types.ads: Move types Component_Alignment_Kind and Float_Rep_Kind here. * atree.h: Major update to match atree.ads changes. Add slot types, for use by getters/setters. * types.h: Move types Component_Alignment_Kind and Float_Rep_Kind here. * fe.h: Rewrite to deal with code that has changed or moved from Atree, Sinfo, Einfo. * nlists.h: Move some code to fe.h. * alloc.ads: Split Nodes_* constants into Node_Offsets and Slots, because Atree has two separate tables. Increase values. Remove Nodes_Release_Threshold. Improve comment. * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N switches. Add with/use for new packages. * opt.ads: Minor comment fix. * aspects.adb, checks.adb, comperr.adb, contracts.adb, cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb, exp_util.ads, expander.adb, freeze.adb, frontend.adb, get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb, lib-xref.ads, lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb, pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb, sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb, sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads, uname.adb: Add with/use for new packages. * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease bootstrap. * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File, Create_New_File): Create file in binary format, to avoid introducing unwanted text conversions on Windows. Simplify to ease bootstrap. * libgnat/a-stteou__bootstrap.ads: New. * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete. * Make-generated.in: Build and run the gen_il program to generate files. The files are generated in the ada/gen_il subdirectory, and then moved up to ada. We rely on gnatmake (as opposed to make) to build the gen_il program efficiently (i.e. don't do anything if the sources didn't change). * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU. (GNATMAKE_OBJS): Add new object files. (GENERATED_FILES_FOR_TOOLS): New variable. (../stamp-tools): Create a link for all GENERATED_FILES_FOR_TOOLS. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object files. Remove ada/treeprs.o. (GNATBIND_OBJS): Add new object files. (ada.mostlyclean): Remove ada/sdefault.adb and add ada/stamp-gen_il. (ada.maintainer-clean): Remove ada/treeprs.ads. (update-sources): Remove obsolete target. (ada_generated_files): Rename to... (ADA_GENERATED_FILES): ... this. Add new source files. Add comment. * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and Flags_ptr. Add Node_Offsets_Ptr and Slots_Ptr, which point to the corresponding tables in Atree. * gcc-interface/gigi.h (gigi): New parameters for initializing Node_Offsets_Ptr and Slots_Ptr. * gcc-interface/decl.c: Numeric_Kind, Discrete_Or_Fixed_Point_Kind, and Record_Kind were nonhierarchical, and were therefore removed for simplicity. Replace uses with calls to Is_In_... functions. gnattools/ * Makefile.in (GENERATED_FILES_FOR_TOOLS): New variable. ($(GCC_DIR)/stamp-tools): Walk it for the first copy operation.