diff options
author | Jakub Jelinek <jakub@redhat.com> | 2024-01-03 11:28:42 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2024-01-03 11:29:39 +0100 |
commit | 8c22aed4b09ce6ffa7bd669377355e38f04614d6 (patch) | |
tree | 6e874a9e0a340c9513d966f6e6185b9952cec95a /gcc/ada | |
parent | 87acfc36194e3101b8ebcc599a78e2481224922d (diff) | |
download | gcc-8c22aed4b09ce6ffa7bd669377355e38f04614d6.zip gcc-8c22aed4b09ce6ffa7bd669377355e38f04614d6.tar.gz gcc-8c22aed4b09ce6ffa7bd669377355e38f04614d6.tar.bz2 |
Rotate ChangeLog files.
Rotate ChangeLog files for ChangeLogs with yearly cadence.
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 6974 | ||||
-rw-r--r-- | gcc/ada/ChangeLog-2023 | 6978 |
2 files changed, 6979 insertions, 6973 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index d1a3b80..dc0c0df 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,6977 +1,5 @@ -2023-12-19 Marc Poulhiès <poulhies@adacore.com> - - * gcc-interface/Make-lang.in (ada.html, ada.install-html): Add. - -2023-12-19 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch3.adb (Analyze_Subtype_Declaration): Remove a short-circuit - for subtypes without aspects when it comes to predicates. - * sem_util.adb (Inherit_Predicate_Flags): Deal with private subtypes - whose full view is an Itype. - -2023-12-19 Viljar Indus <indus@adacore.com> - - * sem_ch13.adb (Valid_Default_Iterator): Check all interfaces for - valid iterator type. Also improve error reporting. - -2023-12-19 Gary Dismukes <dismukes@adacore.com> - - * sem_aggr.adb (Resolve_Container_Aggregate): In the Add_Named - case, issue an error if the container aggregate is written as a - positional aggregate, since such an aggregate must have named - associations. - -2023-12-19 Sheri Bernstein <bernstein@adacore.com> - - * libgnat/a-comlin.adb (Argument_Count): Rewrite code so there is - only one return, to remove Improper_Returns violation. - (Command_Name): Add pragma to exempt Improper_Returns violation. - -2023-12-19 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Expand_Ctrl_Function_Call): Rework last comment. - -2023-12-19 Gary Dismukes <dismukes@adacore.com> - - * sem_aggr.adb (Resolve_Iterated_Association): Call - Preanalyze_And_Resolve instead of Analyze_And_Resolve on a key - expression of an iterated association. - -2023-12-19 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch9.adb, sem_ch10.adb, sem_util.adb: Fix comments. - -2023-12-19 Piotr Trojanek <trojanek@adacore.com> - - * sinput.adb, sinput.ads (Get_Logical_Line_Number_Img): Remove. - -2023-12-19 Patrick Bernardi <bernardi@adacore.com> - - * bindgen.adb (Command_Line_Used): New object. - (Gen_Main): Only generate references to symbols used by - Ada.Command_Line if the package is used by the partition. - (Gen_Output_File_Ada): Ditto. - (Resolve_Binder_Options): Check if Ada.Command_Line is in the - closure of the partition. - -2023-12-19 Vasiliy Fofanov <fofanov@adacore.com> - - * libgnat/i-cstrin.adb (Value): Optimize. - -2023-12-19 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Update comment - and body. - -2023-12-19 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Is_Constr_Subt_For_UN_Aliased): Rename into... - (Is_Constr_Array_Subt_With_Bounds): ...this. - * exp_ch3.adb (Expand_N_Object_Declaration): Adjust to above - renaming and remove now redundant test. - * sem_ch3.adb (Analyze_Object_Declaration): Likewise, but set - Is_Constr_Array_Subt_With_Bounds only on arrays. - * gen_il-fields.ads (Opt_Field_Enum): Apply same renaming. - * gen_il-gen-gen_entities.adb (Entity_Kind): Likewise. - * gen_il-internals.adb (Image): Remove specific processing for - Is_Constr_Subt_For_UN_Aliased. - * treepr.adb (Image): Likewise. - * gcc-interface/decl.cc (gnat_to_gnu_entity): Adjust to renaming - and remove now redundant tests. - * gcc-interface/trans.cc (Identifier_to_gnu): Likewise. - (Call_to_gnu): Likewise. - -2023-12-19 Johannes Kliemann <kliemann@adacore.com> - - * libgnat/s-rident.ads: Remove No_Dynamic_Priorities from - Restricted_Tasking. - -2023-12-19 Patrick Bernardi <bernardi@adacore.com> - - * argv.c: Do not include adaint.h if LIGHT_RUNTIME is defined. - * bindgen.adb (Gen_Main): Simplify command line argument and exit - handling by requiring the runtime to always provide the required - symbols if command line argument and exit code is enabled. - * targparm.ads: Update comments to reflect changes to gnatbind. - -2023-12-19 Ronan Desplanques <desplanques@adacore.com> - Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (Initialize_Component): Use corresponding record - types of concurrent types. - * exp_util.ads (Make_Tag_Assignment_From_Type): Add precondition - and extend documentation. - -2023-12-19 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Is_Ignored_Transient): Rename into... - (Is_Ignored_For_Finalization): ...this. - * gen_il-fields.ads (Opt_Field_Enum): Adjust to above renaming. - * gen_il-gen-gen_entities.adb (Object_Kind): Likewise. - * exp_aggr.adb (Expand_Array_Aggregate): Likewise. - * exp_ch7.adb (Build_Finalizer.Process_Declarations): Likewise. - * exp_util.adb (Requires_Cleanup_Actions): Likewise. - * exp_ch4.adb (Expand_N_If_Expression): Move down declaration of - variable Optimize_Return_Stmt. - (Process_Transient_In_Expression): Turn procedure into a child of... - (Process_Transients_In_Expression): ...this procedure. - * exp_ch6.adb (Expand_Ctrl_Function_Call): Remove obsolete setting - of Is_Ignored_Transient flag on the temporary if within a dependent - expression of a conditional expression. - -2023-12-19 Yannick Moy <moy@adacore.com> - - * exp_spark.adb (Expand_SPARK_N_Aggregate): New procedure for the - special expansion. - (Expand_SPARK): Call the new expansion procedure. - * sem_util.adb (Is_Container_Aggregate): Implement missing test. - -2023-12-19 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Copy_Generic_Node): Add guard for Ancestor_Type. - -2023-12-19 Eric Botcazou <ebotcazou@adacore.com> - - * gen_il-fields.ads (Aggregate_Bounds): Rename to - Aggregate_Bounds_Or_Ancestor_Type. - * gen_il-gen-gen_nodes.adb (Aggregate_Bounds): Likewise. - * sem_aggr.adb (Resolve_Record_Aggregate): Remove obsolete bypass. - * sem_ch12.adb (Check_Generic_Actuals): Add decoration. - (Copy_Generic_Node): For an extension aggregate, restore only the - full view, if any. For a full aggregate, restore the full view as - well as that of its Ancestor_Type, if any, and up to the root type. - (Save_References_In_Aggregate): For a full aggregate of a local - derived tagged type with a global ancestor, set Ancestor_Type to - this ancestor. For a full aggregate of a global derived tagged - type, set Ancestor_Type to the parent type. - * sinfo-utils.ads (Aggregate_Bounds): New function renaming. - (Ancestor_Type): Likewise. - (Set_Aggregate_Bounds): New procedure renaming. - (Set_Ancestor_Type): Likewise. - * sinfo.ads (Ancestor_Type): Document new field. - -2023-12-19 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_N_If_Expression): Also add missing calls to - Process_Transients_In_Expression on the code path implementing the - special optimization for an unidimensional array type and - dependent expressions with static bounds. - -2023-12-19 Steve Baird <baird@adacore.com> - - * sem_ch8.adb (Is_Actual_Subp_Of_Inst): After calling - Enclosing_Declaration, add a check for the case where one more - Parent call is needed to get the enclosing declaration. - -2023-12-19 Ronan Desplanques <desplanques@adacore.com> - - * sem_util.adb (Build_Default_Subtype_OK): Relax - known-at-compile-time requirement. - * sem_util.ads (Build_Default_Subtype_OK): Bring documentation - comment up-to-date. - -2023-12-19 Yannick Moy <moy@adacore.com> - - * doc/gnat_rm/implementation_defined_pragmas.rst: Fix doc for - pragma Ignore_Pragma, in the case where it follows another - configuration pragma that it names, which causes the preceding - pragma to be ignored after parsing. - * errout.adb (Should_Ignore_Pragma_SPARK_Mode): New query. - (SPARK_Msg_N): Do nothing if SPARK_Mode is ignored. - (SPARK_Msg_NE): Same. - * gnat-style.texi: Regenerate. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-12-19 Yannick Moy <moy@adacore.com> - - * sem_ch4.adb (Analyze_Selected_Component): Check correct mode - variable for GNATprove. - * sem_prag.adb (Refined_State): Call SPARK_Msg_NE which checks - value of SPARK_Mode before issuing a message. - * sem_res.adb (Resolve_Entity_Name): Remove legality check for - SPARK RM 6.1.9(1), moved to GNATprove. - -2023-12-19 Steve Baird <baird@adacore.com> - - * sem_ch12.adb (Check_Generic_Child_Unit): Introduce a new nested - function Adjusted_Inst_Par_Ekind to cope with cases where either - a- the visibility of a compiler-generated renaming is incorrect; - or b- we are inside of a generic parent unit G1 that has a child - unit G1.G2, so instantiation of G1.G2 is permitted. - -2023-12-19 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Process_If_Case_Statements): Rename into... - (Process_Transients_In_Expression): ...this and beef up comment. - (Expand_N_Case_Expression): Call Process_Transients_In_Expression - unconditionally on the list of actions of each alternative. - (Expand_N_Expression_With_Actions): Do not deal with actions in - nested subexpressions, but call Process_Transients_In_Expression - on the list of actions only. - (Expand_N_If_Expression): Adjust to above renaming. Add missing - calls to Process_Transients_In_Expression in the case when an EWA - is not used because of Minimize_Expression_With_Actions. - -2023-12-16 Andrew Carlotti <andrew.carlotti@arm.com> - - * gcc-interface/utils.cc (attr_target_exclusions): Make - target/target_clones exclusion target-dependent. - (attr_target_clones_exclusions): Ditto. - -2023-12-16 Andrew Carlotti <andrew.carlotti@arm.com> - - * gcc-interface/utils.cc (attr_noinline_exclusions): New. - (attr_always_inline_exclusions): Ditto. - (attr_target_exclusions): Ditto. - (attr_target_clones_exclusions): Ditto. - (gnat_internal_attribute_table): Add new exclusion lists. - (handle_noinline_attribute): Remove custom exclusion handling. - (handle_target_attribute): Ditto. - (handle_target_clones_attribute): Ditto. - -2023-12-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> - - * terminals.c [__FreeBSD__]: Include <libutil.h>. - (TABDLY): Only define if missing. - -2023-12-06 Alexandre Oliva <oliva@adacore.com> - - * gcc-interface/trans.cc: Include ipa-strub.h. - (gigi): Make internal decls for targets of compiler-generated - calls strub-callable too. - (build_raise_check): Likewise. - * gcc-interface/utils.cc: Include ipa-strub.h. - (handle_strub_attribute): New. - (gnat_internal_attribute_table): Add strub. - -2023-12-05 Richard Sandiford <richard.sandiford@arm.com> - - * gcc-interface/utils.cc (gnat_internal_attribute_table): Add extra - braces to work around PR 16333 in older compilers. - -2023-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> - - * adaint.c: Include <signal.h>. - * expect.c: Include <string.h>. - -2023-12-02 Richard Sandiford <richard.sandiford@arm.com> - - * gcc-interface/gigi.h (gnat_internal_attribute_table): Change - type to scoped_attribute_specs. - * gcc-interface/utils.cc (gnat_internal_attribute_table): Likewise, - using... - (gnat_internal_attributes): ...this as the underlying array. - * gcc-interface/misc.cc (gnat_attribute_table): New global. - (LANG_HOOKS_ATTRIBUTE_TABLE): Use it. - -2023-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> - - * adaint.c [__APPLE__]: Include <signal.h>, <sys/time.h>. - * terminals.c [!_WIN32]: Include <signal.h>. - [__APPLE__]: Include <util.h>. - Fix typos. - -2023-11-30 Eric Botcazou <ebotcazou@adacore.com> - - * checks.ads (Apply_Predicate_Check): Add Deref boolean parameter. - * checks.adb (Apply_Predicate_Check): Revert latest change. Use - Loc local variable to hold the source location. Use a common code - path for the generic processing and make a dereference if Deref is - True. - * exp_ch4.adb (Expand_Allocator_Expression): Compute Aggr_In_Place - earlier. If it is true, do not call Apply_Predicate_Check on the - expression on entry but on the temporary on exit with a - dereference. - * sem_res.adb (Resolve_Actuals): Add explicit parameter - association in call to Apply_Predicate_Check. - -2023-11-30 Steve Baird <baird@adacore.com> - - * exp_put_image.adb (Put_Image_Enabled): Return True in more - cases. In particular, when testing to see if a type occurs in a - predefined unit, test the type's code unit - (obtained by calling Get_Code_Unit). In the case of type within a - user-defined instance of a predefined generic, Is_Predefined_Unit - will return True for the type and False for the type's code unit. - -2023-11-30 Yannick Moy <moy@adacore.com> - - * 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-11-30 Sheri Bernstein <bernstein@adacore.com> - - * libgnat/i-cstrin.adb (Free): Rewrite code so there is only one - return, to remove Improper_Returns violation. - (Position_Of_Nul): Add pragma to exempt Improper_Returns - violation. - (To_Chars_Ptr): Likewise. - (Value): Likewise - -2023-11-30 Viljar Indus <indus@adacore.com> - - * sem_prag.adb (Validate_Compile_Time_Warning_Errors): Avoid - checking compile time warnings and errors if backend has not been - activated. - -2023-11-30 Yannick Moy <moy@adacore.com> - - * checks.adb, exp_aggr.adb, exp_ch4.ads, exp_ch5.adb, - exp_util.adb, exp_util.ads, inline.adb, sem_ch13.adb, - sem_ch6.adb, sem_ch8.adb, sem_prag.adb, sem_util.ads: Fix comments - and typos. - -2023-11-30 Javier Miranda <miranda@adacore.com> - - * freeze.adb (Declared_In_Expanded_Body): New subprogram. - (In_Expanded_Body): Minor code cleanup. - (Freeze_Expression): Code cleanup plus factorize in a new function - the code that identifies entities declared in the body of expander - generated subprograms, since such case must be checked also for - other node kinds when climbing the tree to locate the place to - insert the freezing node. - -2023-11-30 Steve Baird <baird@adacore.com> - - * sem_ch8.adb (Find_Direct_Name): In the case of a resolving a - name that occurs within an instantiation, add code to detect and - filter out unwanted candidate resolutions. The filtering is - performed via a call to Remove_Interp. - -2023-11-30 Steve Baird <baird@adacore.com> - - * libgnarl/a-rttiev.ads: add a comment - -2023-11-30 Steve Baird <baird@adacore.com> - - * sem_ch12.adb (Validate_Discriminated_Formal_Type): Replace - Entity_Id equality test with a call to Subtypes_Match. Distinct - subtypes which are statically matching should pass this test. - (Check_Discriminated_Formal): Replace Entity_Id equality test with - a call to Subtypes_Statically_Match (preceded by a check that the - preconditions for the call are satisfied). - -2023-11-30 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_Allocator_Expression): Add Special_Return - boolean constant to hold the value of For_Special_Return_Object - for the allocator and use it throughout the procedure. - -2023-11-30 Eric Botcazou <ebotcazou@adacore.com> - - * checks.adb (Apply_Predicate_Check): Also deal specifically with - an expression that is a qualified aggregate in an allocator. - -2023-11-30 Steve Baird <baird@adacore.com> - - * sem_ch4.adb (Constant_Indexing_OK): As a temporary stopgap, - return False in the case of an unanalyzed prefixed-view call. - -2023-11-28 Simon Wright <simon@pushface.org> - - PR ada/111909 - * adaint.c - (__gnat_get_file_names_case_sensitive): Split out the __APPLE__ - check and remove the checks for __arm__, __arm64__. For Apple, - file names are by default case-insensitive unless TARGET_OS_IOS is - set. - -2023-11-28 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (annotate_value): Apply the same processing - for parameters as for variables. - -2023-11-28 Marc Poulhiès <poulhies@adacore.com> - - * gcc-interface/utils2.cc (build_simple_component_ref): Add - comment on assertion. - -2023-11-28 Steve Baird <baird@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference): In the case of a - Reduce attribute reference, fix bugs in initializing Accum_Typ. - The previous version was incorrect in the case where E1 refers to - the first of multiple possible overload resolution candidates and - that candidate does not turn out to be the right one. The previous - version also had code to compute Accum_Typ via a different method - if the initial computation turned out to yield a universal numeric - type. Delete that initial computation and use the second method in - all cases. - -2023-11-28 Gary Dismukes <dismukes@adacore.com> - - * sem_aggr.adb (Add_Discriminant_Values): Remove this procedure. - (Propagate_Discriminants): Remove this procedure. - (Resolve_Record_Aggregate): Remove code (the Capture_Discriminants - block statement) related to propagating discriminants and - generating initializations for subcomponents of a - discriminant-dependent box-defaulted subcomponent of a nonprivate - record type with discriminants, and handle all top-level - components that have a non-null base init proc directly, by - calling Add_Association with "Is_Box_Present => True". Also, - combine that elsif clause with the immediately preceding elsif - clause, since they now both contain the same statement (calls to - Add_Association with the same actuals). - -2023-11-28 Bob Duff <duff@adacore.com> - - * sem_util.adb (Check_Result_And_Post_State): Disable this when - we're in an instance. Misc cleanup. - -2023-11-28 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.ads (Expand_Cleanup_Actions): Move declaration to the - Finalization Management section. - * exp_ch7.adb (Transient Scope Management): Move description down to - after that of the general finalization and make a few changes. - (Insert_Actions_In_Scope_Around): Call Process_Transients_In_Scope - only if cleanups are being handled. - (Process_Transients_In_Scope): Remove redundant test on Clean. - * exp_util.ads (Within_Case_Or_If_Expression): Adjust description. - * exp_util.adb (Within_Case_Or_If_Expression): Only return true if - within the dependent expressions of the conditional expressions. - -2023-11-28 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_rm/the_implementation_of_standard_i_o.rst: Fix a couple - occurrences of incorrect quoting. - * gnat_rm.texi: Regenerate. - -2023-11-28 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Build_Flag_For_Function): New function made up of the - code building the special flag for return object present... - (Expand_N_Extended_Return_Statement): ...in there. Replace the code - with a call to Build_Flag_For_Function. Add assertion for the flag. - (Expand_Non_Function_Return): For a nested return, if the return - object needs finalization actions, update the special flag. - -2023-11-28 Sebastian Poeplau <poeplau@adacore.com> - - * einfo-utils.ads, einfo-utils.adb (Is_Address_Compatible_Type): - New function. - -2023-11-28 Gary Dismukes <dismukes@adacore.com> - - * exp_aggr.adb (Expand_Container_Aggregate): Apply a conversion to the - size temp object passed as the second actual parameter on the call to - the New_Indexed_Subp function, to convert it to the index type of the - container type (taken from the first formal parameter of the function). - -2023-11-28 Eric Botcazou <ebotcazou@adacore.com> - - * sem_attr.adb (Eval_Attribute): Do not proceed in a spec expression - for nonstatic representation attributes of a scalar subtype when the - subtype is not frozen. - * sem_ch3.adb (Analyze_Object_Declaration): Do not freeze the type - of the object in a spec expression. - -2023-11-28 Richard Kenner <kenner@adacore.com> - - * exp_unst.adb (Note_Uplevel_Bound): Treat - N_Unchecked_Type_Conversion like N_Type_Conversion. - -2023-11-28 Yannick Moy <moy@adacore.com> - - * libgnat/s-imgboo.adb: Remove with_clause now in spec file. - * libgnat/s-imgboo.ads: Remove dependency on System.Val_Bool. - (Image_Boolean): Replace call to Value_Boolean by passing value V - to updated ghost function Is_Boolean_Image_Ghost. - * libgnat/s-valboo.ads (Is_Boolean_Image_Ghost): Move to other - unit. - (Value_Boolean.): Update precondition. - * libgnat/s-valspe.ads (Is_Boolean_Image_Ghost): Move here. Add - new parameter for expected boolean value. - -2023-11-28 Tucker Taft <taft@adacore.com> - - * sem_scil.adb: Handle discriminant specification. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (Loop_Statement_to_gnu): Always use the - simpler form for a loop with a boolean iteration variable. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>: Put - the alignment directly on the type in the constrained case too. - * gcc-interface/utils.cc (maybe_pad_type): For an array type, take - the alignment of the element type as the original alignment. - -2023-11-21 Gary Dismukes <dismukes@adacore.com> - - * sem_aggr.adb (Resolve_Container_Aggregate): In the case where Comp - is an N_Iterated_Component_Association, pick up Discrete_Choices rather - than Choices. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Build_Finalizer): For package specs and bodies, push - and pop the specs onto the scope stack only once. - * inline.adb (Cleanup_Scopes): Call Pop_Scope instead of End_Scope. - -2023-11-21 Steve Baird <baird@adacore.com> - - * sem_aggr.adb (Resolve_Delta_Array_Aggregate): In the case of a - deep delta choice, the expected type for the expression will - typically not be the component type of the array type, so a call - to Analyze_And_Resolve that assumes otherwise would be an error. - It turns out that such a call, while wrong, is usually harmless - because the expression has already been marked as analyzed. This - doesn't work if the aggregate occurs in a postcondition and, in - any case, we don't want to rely on this. So do not perform the - call in the deep case. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * sem_warn.adb (Check_References.Type_OK_For_No_Value_Assigned): - New predicate. - (Check_References): For Warn_On_No_Value_Assigned, use the same test - on the type in the address-not-taken and default cases. - -2023-11-21 Gary Dismukes <dismukes@adacore.com> - - * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Retrieve the - iteration type's iteration interface progenitor via - Iterator_Interface_Ancestor, in the case of both "in" and "of" - iterators. Narrow the scope of Pack, so it's declared and - initialized only within the code related to "of" iterators, and - change its name to Cont_Type_Pack. Adjust comments. - * sem_ch5.adb (Get_Cursor_Type): In the case of a derived type, - retrieve the iteration type's iterator interface progenitor (if it - exists) via Iterator_Interface_Ancestor rather than assuming that - the parent type is the interface progenitor. - * sem_util.ads (Iterator_Interface_Ancestor): New function. - * sem_util.adb (Iterator_Interface_Ancestor): New function - returning a type's associated iterator interface type, if any, by - collecting and traversing the type's interfaces. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * sem_attr.adb (Resolve_Attribute) <Attribute_Address>: Remove the - bypass for prefixes with task type. - -2023-11-21 Viljar Indus <indus@adacore.com> - - * par.adb: Restore Style_Checks after parsing each unit. - -2023-11-21 Yannick Moy <moy@adacore.com> - - * exp_spark.adb (Expand_SPARK_Delta_Or_Aggregate): Fix type. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Analyze_Package_Instantiation): Test Expander_Active - to detect generic contexts for the generation of cleanup actions. - -2023-11-21 Justin Squirek <squirek@adacore.com> - - * libgnat/g-catiio.adb (Value): Modify conditionals to use 'Last - instead of 'Length - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.adb (Null_Status): Deal with unchecked type conversions. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Convert_To_Assignments): Do not treat initialization - procedures specially when it comes to creating a transient scope. - * exp_ch7.adb (Build_Finalizer.Process_Declarations): Likewise. - * exp_util.adb (Requires_Cleanup_Actions): Likewise. - -2023-11-21 Doug Rupp <rupp@adacore.com> - - * s-oscons-tmplt.c: #define CLOCK_RT_Ada "CLOCK_MONOTONIC" for - __vxworks - -2023-11-21 Steve Baird <baird@adacore.com> - - * sem_aggr.adb: Replace "not Present (...)" call with "No (...)" call. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * gen_il-fields.ads (Opt_Field_Enum): Remove Is_Finalization_Wrapper - * gen_il-gen-gen_nodes.adb (N_Block_Statement): Likewise. - * sinfo.ads (Is_Finalization_Wrapper): Delete. - * exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust comment - and remove obsolete code testing the Is_Finalization_Wrapper flag. - * exp_util.adb (Requires_Cleanup_Actions): Likewise. - -2023-11-21 Doug Rupp <rupp@adacore.com> - - * libgnat/libada.gpr: Revise section 1 - -2023-11-21 Steve Baird <baird@adacore.com> - - * par.adb: Add new Boolean variable Inside_Delta_Aggregate. - * par-ch4.adb (P_Simple_Expression): Add support for a deep delta - aggregate choice. We turn a sequence of selectors into a peculiar - tree. We build a component (Indexed or Selected) whose prefix is - another such component, etc. The leftmost prefix at the bottom of - the tree has a "name" which is the first selector, without any - further prefix. For something like "with delta (1)(2) => 3" where - the type of the aggregate is an array of arrays of integers, we'll - build an N_Indexed_Component whose prefix is an integer literal 1. - This is consistent with the trees built for "regular" - (Ada-defined) delta aggregates. - * sem_aggr.adb (Is_Deep_Choice, Is_Root_Prefix_Of_Deep_Choice): - New queries. - (Resolve_Deep_Delta_Assoc): new procedure. - (Resolve_Delta_Array_Aggregate): call Resolve_Deep_Delta_Assoc in - deep case. - (Resolve_Delta_Record_Aggregate): call Resolve_Deep_Delta_Assoc in - deep case. - (Get_Component_Type): new function replaces old Get_Component - function. - * sem_aggr.ads (Is_Deep_Choice, Is_Root_Prefix_Of_Deep_Choice): - New queries. - * exp_aggr.adb (Expand_Delta_Array_Aggregate): add nested function - Make_Array_Delta_Assignment_LHS; call it instead of - Make_Indexed_Component. - (Expand_Delta_Record_Aggregate): add nested function - Make_Record_Delta_Assignment_LHS; call it instead of - Make_Selected_Component. - * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Insert range - checks for indexes in deep delta aggregates. - -2023-11-21 Ronan Desplanques <desplanques@adacore.com> - - * adaint.c (__gnat_unlink): Add new parameter and fix text - conversion on Windows. Remove unnecessary curly braces. - * adaint.h (__gnat_unlink): Add new parameter. - * libgnat/i-cstrea.ads (unlink): Adapt to __gnat_unlink signature - change. - * libgnat/i-cstrea.adb (unlink): New Subprogram definition. - * libgnat/s-crtl.ads (unlink): Adapt to __gnat_unlink signature - change. - * libgnat/s-fileio.adb (Delete): Pass encoding argument to unlink. - -2023-11-21 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Save_Global_References.Set_Global_Type): Beef up - comment about the setting of the full view. - * sem_res.adb (Resolve_Actuals.Insert_Default): Add another bypass - for the case of a generic context. - -2023-11-21 Marc Poulhiès <poulhies@adacore.com> - - * doc/gnat_ugn/the_gnat_compilation_model.rst: Move index - directives. - * gnat_ugn.texi: Regenerate. - -2023-11-21 Pierre-Marie de Rodat <derodat@adacore.com> - - * par_sco.adb (Process_Decisions)<Process_Node>: Skip aspect - specifications. - -2023-11-21 Ronan Desplanques <desplanques@adacore.com> - - * libgnat/libgnat_common.gpr: Unconditionally pass -gnatg. - -2023-11-21 Marc Poulhiès <poulhies@adacore.com> - - * exp_util.ads: Typo fix. - -2023-11-16 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Also create a - TYPE_DECL for the return type built for the CI/CO mechanism. - -2023-11-10 Andris Pavēnis <andris.pavenis@iki.fi> - - * expect.c (__gnat_waitpid): fix syntax errors - -2023-11-09 Simon Wright <simon@pushface.org> - - PR ada/111813 - * libgnat/a-calfor.adb (Value (2)): Allow values of - parameter Elapsed_Time greater than or equal to 24 hours, by doing - the hour calculations in Natural rather than Hour_Number (0 .. - 23). Calculate the result directly rather than by using Seconds_Of - (whose Hour parameter is of type Hour_Number). - If an exception occurs of type Constraint_Error, re-raise it - rather than raising a new CE. - -2023-11-07 Joseph Myers <joseph@codesourcery.com> - - * gcc-interface/utils.cc (flag_isoc2x): Rename to flag_isoc23. - -2023-11-07 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Apply the - specific rewriting done for an aliased object with an unconstrained - array nominal subtype in the renaming case too. - -2023-11-07 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (gnat_gimplify_expr) <CALL_EXPR>: Delete. - -2023-11-07 Bob Duff <duff@adacore.com> - - * sem_ch13.ads (Set_Enum_Esize): Do not set alignment. - * sem_ch13.adb (Set_Enum_Esize): Do not set alignment. Archaeology - seems to show that this line of code dates from when "Alignment = - 0" meant "the Alignment is not known at compile time" and "the - Alignment is not yet known at compile time" as well as "the - Alignment is zero". In any case, it seems to be unnecessary, and - in this case harmful, because gigi would crash. Alignment_Clause - is set (because there is one), so gigi would query the Alignment, - but Alignment was destroyed. - -2023-11-07 Julien Bortolussi <bortolussi@adacore.com> - - * doc/share/conf.py: Changed the background color and the logo. - -2023-11-07 Eric Botcazou <ebotcazou@adacore.com> - - * gen_il-fields.ads (Opt_Field_Enum): Add Compare_Type. - * gen_il-gen-gen_nodes.adb (N_Op_Eq): Likewise. - (N_Op_Ge): Likewise. - (N_Op_Gt): Likewise. - (N_Op_Le): Likewise. - (N_Op_Lt): Likewise. - (N_Op_Ne): Likewise. - * sinfo.ads (Compare_Type): Document new field. - * sem_ch4.adb (Analyze_Comparison_Equality_Op): If the entity is - already present, set the Compare_Type on overloaded operands if it - is present on the node. - * sem_ch12.adb (Check_Private_View): Look into the Compare_Type - instead of the Etype for comparison operators. - (Copy_Generic_Node): Remove obsolete code for comparison - operators. - (Save_Global_References.Save_References): Do not walk into the - descendants of N_Implicit_Label_Declaration nodes. - (Save_Global_References.Set_Global_Type): Look into the - Compare_Type instead of the Etype for comparison operators. - * sem_res.adb (Resolve_Comparison_Op): Set Compare_Type. - (Resolve_Equality_Op): Likewise. - -2023-11-07 Ronan Desplanques <desplanques@adacore.com> - - * adaint.c (__gnat_file_time): Fix Windows version. - -2023-11-07 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Fold initialization - expression of Nominal_Subtype_Is_Constrained_Array constant into - the computation of Rewrite_As_Renaming and remove the constant. - Set it to True for an aliased array with unconstrained nominal - subtype if the subtype of the expression is also unconstrained. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_util.adb (Add_Own_DIC, Add_Own_Invariants): Store the aspect - expression in Expression_Copy. - -2023-11-07 Yannick Moy <moy@adacore.com> - - * exp_aggr.adb: Apply the renaming. - * exp_ch3.adb: Same. - * exp_ch4.adb: Same. - * exp_ch6.adb: Same. - * exp_ch7.adb: Same. - * exp_util.adb: Same. - * freeze.adb: Same. - * sem_aggr.adb: Same. - * sem_attr.adb: Same. - * sem_aux.adb: Alphabetize Is_Limited_Type. Rename. - * sem_aux.ads: Same. - * sem_ch3.adb: Apply the renaming. - * sem_ch6.adb: Same. - * sem_ch8.adb: Same. - * sem_prag.adb: Same. - * sem_res.adb: Same. - * sem_util.adb: Same. - -2023-11-07 Viljar Indus <indus@adacore.com> - - * aspects.adb (Exchange_Aspects): Removed. This method was - typically called after a Rewrite method. Now since the Rewrite - switches the aspects between the new and the old node it is no - longer needed. - (Has_Aspects): Converted to a utility method that performs the same - before as the previous Has_Aspects field did. Meaning it shows whether - a node actually has aspects or not. - (Copy_Aspects): New utility method that performs a deep copy of the - From nodes aspects. - (Aspect_Specfications): Removed. No longer needed. Replaced - by the primitive operation for the Aspect_Specification fields. - (Set_Aspect_Specifications): Likewise. - (Aspect_Specifications_Hash_Table): Remove the table and all the - utility methods for storing the old aspects. - * aspects.ads: Likewise. - * atree.adb (Copy_Separate_Tree): Remove custom code for aspects. - (New_Copy): Likewise. - (Replace): Likewise. - (Rewrite): Likewise. - * exp_ch3.adb (Expand_N_Object_Declaration): Keep the aspects from the old node. - * exp_ch6.adb (Validate_Subprogram_Calls): Previously aspects were ignored - because they were not on the tree. Explicitly ignore them here - when traversing the tree. - * exp_unst.adb (Build_Tables): Likewise - * gen_il-fields.ads: Remove Has_Aspects and add - Aspect_Specifications fields. - * gen_il-gen-gen_nodes.adb: Add Aspect_Specification fields - for all nodes that can have aspects. Additionally add - Expression_Copy for Aspect_Speficiations to avoid reusing - the Associated_Node for generic instantiation and aspect - analysis. - * ghost.adb (Remove_Ignored_Ghost_Node): Remove call to Remove_Aspects. - The rewritten node is a Null_Statement that cannot have aspects - and there is not anything to gain from removing them from the - Orignal_Node of N since it technically is not part of the active - tree. - * inline.adb (Process_Formals_In_Aspects): Simplify code for node traversal. - * par-ch13.adb: Avoid setting the parent explicitly for the - Aspect_Specifications list. This is done explicitly in the setter. - * par-ch6.adb: Likewise. - * par_sco.adb (Traverse_Aspects): Handle early return. - * sem_ch10.adb: Simplify code for Analyze_Aspect_Specifications. - * sem_ch11.adb: Likewise. - * sem_ch12.adb (Analyze_Formal_Derived_Interface_Type): Keep the aspects from - the orignal node after rewrite. - (Analyze_Formal_Derived_Type): Likewise. - (Analyze_Formal_Interface_Type): Likewise. - (Analyze_Formal_Object_Declaration): Simplify code for - Analyze_Aspect_Specifications. - (Analyze_Formal_Package_Declaration): Likewise. - (Analyze_Formal_Subprogram_Declaration): Likewise. - (Analyze_Formal_Type_Declaration): Likewise. - (Analyze_Generic_Package_Declaration): Remove Exchange_Aspects. - The new node already has the correct aspects after the rewrite. - Also simplify code for Analyze_Aspect_Specifications. - (Analyze_Generic_Subprogram_Declaration): Likewise. - (Analyze_Package_Instantiation): Simplify code for - Analyze_Aspect_Specifications. - (Build_Instance_Compilation_Unit_Nodes): Remove explicit copy of - aspects that is no longer needed. - (Save_References): Update the traversal code to handle - Aspect_Specifications in the tree. - (Copy_Generic_Node): Remove explicit copy for aspects. New_Copy - took care of that already. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add early return to simplify - code for its calls. Avoid reusing the Entity(Associated_Node) - field for storing the original expression. Instead use the - new Expression_Copy field since Entity(Associated_Node) is - also used in generic instantiation. - (Analyze_Aspects_On_Subprogram_Body_Or_Stub): Simlify call - to Analyze_Aspect_Specifications. - (Check_Aspect_At_End_Of_Declarations): Use Expression_Copy - instead of Entity. - (Check_Aspect_At_Freeze_Point): Likewise. - * sem_ch3.adb: Simplify calls to Analyze_Aspect_Specifications. - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Simplify call to - Analyze_Aspect_Specifications. - (Analyze_Expression_Function): Keep the aspects from the - original node after a rewrite. - (Analyze_Generic_Subprogram_Body): Remove Exchange aspects - that is no longer needed. Simplify call to - Analyze_Aspect_Specifications. - (Analyze_Null_Procedure): Keep the aspects from the - original node after a rewrite. - (Analyze_Subprogram_Body_Helper): Simplify calls to - Analyze_Aspect_Specifications. - (Analyze_Subprogram_Declaration): Likewise. - * sem_ch7.adb (Analyze_Package_Body_Helper): Remove Exchange aspects - that is no longer needed. Simplify call to - Analyze_Aspect_Specifications. - (Analyze_Package_Declaration): Simplify call to - Analyze_Aspect_Specifications. - (Analyze_Private_Type_Declaration): Likewise. - * sem_ch8.adb: Simplify calls to - Analyze_Aspect_Specifications. - * sem_ch9.adb (Analyze_Entry_Body): Simplify call to - Analyze_Aspects_On_Subprogram_Body_Or_Stub. - (Analyze_Entry_Declaration): Simplify call to - Analyze_Aspect_Specifications. - (Analyze_Protected_Body): Likewise. - (Analyze_Protected_Type_Declaration): Likewise. - (Analyze_Single_Protected_Declaration): Keep the aspects from - the original node after a rewrite. Simplify call to - Analyze_Aspect_Specifications. - (Analyze_Single_Task_Declaration): Likewise. - (Analyze_Task_Body): Simplify call to - Analyze_Aspect_Specifications. - (Analyze_Task_Type_Declaration): Simplify calls to - Analyze_Aspect_Specifications. - * sem_dim.adb: Remove explicitly setting the parents - for the Aspect_Specification list. - * sem_disp.adb: Remove the with that is no longer - required since Aspect_Specifications is a node operation now. - * sem_util.adb (Copy_Node_With_Replacement): Remove explicit code for aspects. - * treepr.adb (Print_Field): Remove the version that was used for printing - aspects. - (Print_Node): Remove aspect specific code. - -2023-11-07 Eric Botcazou <ebotcazou@adacore.com> - - * gen_il-gen-gen_nodes.adb (N_Op_Boolean): Fix description. - * sem_ch4.adb (Analyze_Comparison_Equality_Op): Tidy up. - * sem_ch12.adb (Copy_Generic_Node): Use N_Op_Compare subtype. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch6.adb, exp_disp.adb, sem_ch13.adb, sem_ch3.adb: Fix newly - detected violations. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch3.adb, sem_ch4.adb, sem_eval.adb: Fix newly detected - violations. - -2023-11-07 Ronan Desplanques <desplanques@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix - -gnatwc documentation. - * gnat_ugn.texi: Regenerate. - -2023-11-07 Steve Baird <baird@adacore.com> - - * local_restrict.ads: A new package. Declares Local_Restriction - enumeration type and provides operations to check for local - restriction violations. - * local_restrict.adb: Corresponding package body. Replace "not - Present (X)" calls with "No (X)" calls. - * aspects.ads: Add a new enumeration elements, - Aspect_Local_Restrictions and Aspect_User_Aspect, to the Aspect_Id - enumeration type. Update Aspect_Id-indexed aggregates. Add nested - package User_Aspect_Support to manage two pieces of state. One is - a map from identifiers to User_Aspect_Definition pragmas (updated - when such a pragma is encountered). The other is an - access-to-subprogram variable that is introduced in order to keep - the bulk of semantics out of the closure of package Aspects while - allowing a call from aspects.adb to the sem_ch13 procedure that - analyzes a User_Aspect aspect specification. - * aspects.adb (Find_Aspect): Cope with a case of a block statement - with an empty parent. It is not clear whether this is papering - over a compiler bug. Add indirect call through the aforementioned - access-to-subprogram variable when Find_Aspect enounters an - unanalyzed User_Aspect aspect specification. If Find_Aspect is - called looking for aspect Foo, then a User_Aspect specification - might generate (during analysis) a Foo aspect specification. So - the Find_Aspect call needs to trigger that analysis if it has not - already taken place. Provide a body for package - User_Aspect_Support. Replace "not Present (X)" call with "No (X)" - call. - * freeze.adb (Freeze_Subprogram): Check local restriction - compatibility when a dispatching operation is overridden. - * par-prag.adb: Add support for parsing a User_Aspect_Definition - pragma. - * restrict.ads: We'd like to have the body of package Restrict - include a call to a procedure declared in package Local_Restrict. - Doing that in the obvious way pulls most of semantics into the - closure of package Restrict, and that turns out to cause problems. - So we introduce a level of indirection and instead call through an - access-to-subprogram value. In this unit, we declare the - access-to-subprogram type and object. - * restrict.adb (Check Restriction): When a construct is - encountered that could violate a global restriction (depending on - whether the given restriction is in effect), Check_Restriction is - called. At this point, we also check for a violation of any - corresponding local restriction that is in effect. For reasons - described above, this check is performed via an indirect call. - * sem_ch13.ads (Parse_Aspect_Local_Restrictions): A new function, - similar to the existing Parse_Aspect_Xxx subprograms. - * sem_ch13.adb: Perform semantic analysis of Local_Restrictions - and User_Aspect aspect specifications. Declare and call new - Validate_Aspect_Local_Restrictions and - Analyze_User_Aspect_Aspect_Specification procedures (a reference - to the latter is registered during package elaboration). In - Analyze_Aspect_Specifications, do not set the Analyzed flag of a - User_Aspect aspect specification. Replace "not Present (X)" call - with "No (X)" call. Replace 'Image with 'Img in a case where the - prefix of the attribute reference is an object; this is done to - accomodate older compilers. - * sem_ch6.adb (Check_Subtype_Conformant): Include in subtype - conformance check a check for overriding-related compatibility of - local restrictions. - * sem_ch8.adb (Analyze_Subprogram_Renaming): In the case of an - instance of a generic that takes a formal subprogram, check that - formal and actual are compatible with respect to local - restrictions. - * sem_prag.adb: Add support for User_Aspect_Definition pragma. - * sem_res.adb (Resolve_Call): Check caller/callee compatibility - with respect to local restrictions. - * snames.ads-tmpl: Add Name_Local_Restrictions, Name_User_Aspect, - and Name_User_Aspect_Definition constants. - * doc/gnat_rm/implementation_defined_aspects.rst: Document new - aspects. - * doc/gnat_rm/implementation_defined_pragmas.rst: Document new - pragma. - * doc/gnat_ugn/the_gnat_compilation_model.rst: Add - User_Aspect_Definition to list of GNAT pragmas. - * gcc-interface/Make-lang.in: Add local_restrict.o. - * gnat-style.texi: Regenerate. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-11-07 Bob Duff <duff@adacore.com> - - * sem_ch4.adb (Is_Private_Overriding): Return True in the case - where a primitive operation is publicly inherited but privately - overridden. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove code from the - ELSE branch, because it was is identical to code before the IF - statements itself. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Change Ctyp and Csiz - from variables to constants and compute them using the nominal type - of the assigned array object. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_pakd.adb, libgnarl/s-osinte__android.ads, - libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__qnx.ads, - libgnarl/s-osinte__rtems.ads, libgnat/s-gearop.adb, - libgnat/s-poosiz.adb, sem_util.adb: Fix style. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Simplify handling of - assignments with string literals. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove Rhs_Val_Known; - represent unknown value by assigning Rhs_Val with No_Uint. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_pakd.adb - (Expand_Bit_Packed_Element_Set): Change local Decl object from - variable to constant. - (Setup_Inline_Packed_Array_Reference): Likewise for Csiz. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * exp_pakd.adb (Setup_Inline_Packed_Array_Reference): Remove extra - whitespace from the list of parameters. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Get_Actual_Subtype_If_Available): Only call Etype - when necessary. - -2023-11-07 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb - (Get_Actual_Subtype,Get_Actual_Subtype_If_Available): Fix handling - of expanded names. - -2023-11-07 Viljar Indus <indus@adacore.com> - - * sem_prag.adb: (Analyze_Pragma): Reduce the number of nested if - statements. - -2023-11-07 Viljar Indus <indus@adacore.com> - - * sem_ch10.adb: (Analyze_Compilation_Unit): Restore the orignal - state of style check pragmas at the end of the analysis. - -2023-11-07 Eric Botcazou <ebotcazou@adacore.com> - - * exp_pakd.adb (Get_Base_And_Bit_Offset): Use the full component - reference instead of just the selector name for 'Bit_Position. - -2023-11-04 David Malcolm <dmalcolm@redhat.com> - - * gcc-interface/misc.cc: Update for changes to diagnostic_context. - -2023-10-22 Iain Sandoe <iain@sandoe.co.uk> - - * gcc-interface/Makefile.in: Handle Darwin rpaths. - -2023-10-20 Alexandre Oliva <oliva@adacore.com> - - * gcc-interface/trans.cc (gigi): Mark __gnat_reraise_zcx with - ECF_XTHROW. - (build_raise_check): Likewise for all rcheck subprograms. - -2023-10-19 Yannick Moy <moy@adacore.com> - - * 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-10-19 Sheri Bernstein <bernstein@adacore.com> - - * libgnat/s-imagef.adb (Set_Image_Fixed): Refactor loop. - -2023-10-19 Sheri Bernstein <bernstein@adacore.com> - - * libgnat/s-imguti.adb (Set_Decimal_Digits): Add pragma to exempt - Unassigned_OUT_Parameters. - (Set_Floating_Invalid_Value): Likewise - -2023-10-19 Patrick Bernardi <bernardi@adacore.com> - - * bindusg.adb (Display): Make it clear -Q adds to the number of - secondary stacks generated by the binder. - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: - Document the -Q gnatbind switch and fix references to old - runtimes. - * gnat-style.texi: Regenerate. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-10-19 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch3.adb (Constrain_Array): Replace manual list length - computation by call to List_Length. - -2023-10-19 Piotr Trojanek <trojanek@adacore.com> - - * exp_aggr.adb (Expand_Container_Aggregate): Simplify with "No". - -2023-10-10 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (inline_status_for_subprog): Minor tweak. - (gnat_to_gnu_field): Try harder to get a packable form of the type - for a bitfield. - -2023-10-10 Ronan Desplanques <desplanques@adacore.com> - - * libgnat/a-direct.adb (Start_Search_Internal): Tweak subprogram - body. - -2023-10-10 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.ads (Set_Scope_Is_Transient): Delete. - * sem_util.adb (Set_Scope_Is_Transient): Likewise. - * exp_ch7.adb (Create_Transient_Scope): Set Is_Transient directly. - -2023-10-10 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Return true - if the aggregate is a dependent expression of a conditional - expression being returned from a build-in-place function. - -2023-10-10 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/111434 - * sem_ch10.adb (Replace): New procedure to replace an entity with - another on the homonym chain. - (Install_Limited_With_Clause): Rename Non_Lim_View to Typ for the - sake of consistency. Call Replace to do the replacements and split - the code into the regular and the special cases. Add debuggging - output controlled by -gnatdi. - (Install_With_Clause): Print the Parent_With and Implicit_With flags - in the debugging output controlled by -gnatdi. - (Remove_Limited_With_Unit.Restore_Chain_For_Shadow (Shadow)): Rewrite - using a direct replacement of E4 by E2. Call Replace to do the - replacements. Add debuggging output controlled by -gnatdi. - -2023-10-10 Ronan Desplanques <desplanques@adacore.com> - - * libgnat/a-direct.adb: Fix filesystem entry filtering. - -2023-10-10 Ronan Desplanques <desplanques@adacore.com> - - * atree.ads, nlists.ads, types.ads: Remove references to extended - nodes. Fix typo. - * sinfo.ads: Likewise and fix position of - Comes_From_Check_Or_Contract description. - -2023-10-10 Javier Miranda <miranda@adacore.com> - - * sem_attr.adb (Analyze_Attribute): Protect the frontend against - replacing 'Size by its static value if 'Size is not known at - compile time and we are processing pragmas Compile_Time_Warning or - Compile_Time_Errors. - -2023-10-03 David Malcolm <dmalcolm@redhat.com> - - * gcc-interface/misc.cc: Use text_info ctor. - -2023-10-02 David Malcolm <dmalcolm@redhat.com> - - * gcc-interface/misc.cc (gnat_post_options): Update for renaming - of diagnostic_context's show_caret to m_source_printing.enabled. - -2023-09-26 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove call - to Is_Simple_Protected_Type as redundant. - (Build_Finalizer.Process_Object_Declaration): Do not retrieve the - corresponding record type for simple protected objects. Make the - flow of control more explicit in their specific processing. - * exp_util.adb (Requires_Cleanup_Actions): Return false for simple - protected objects present in library-level package bodies for the - sake of consistency with Build_Finalizer and remove call to - Is_Simple_Protected_Type as redundant. - -2023-09-26 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/110488 - * sem_ch3.adb (Analyze_Object_Declaration): Do not build a default - subtype for a deferred constant in the definite case too. - -2023-09-26 Marc Poulhiès <poulhies@adacore.com> - - * exp_ch7.adb (Contains_Subprogram): Recursively search for subp - in loop's statements. - (Unnest_Loop)<Fixup_Inner_Scopes>: New. - (Unnest_Loop): Rename local variable for more clarity. - * exp_unst.ads: Refresh comment. - -2023-09-26 Javier Miranda <miranda@adacore.com> - - * exp_ch6.adb (Expand_Call_Helper): When computing the - accessibility level of an actual parameter based on the - expresssion of a constant declaration, add missing support for - deferred constants - -2023-09-26 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Status_Flag_Or_Transient_Decl): Remove ??? comment. - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Extend the - handling of finalizable return objects to the non-BIP case. - * exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust the - comment accordingly. - * exp_util.adb (Requires_Cleanup_Actions): Likewise. - -2023-09-26 Daniel King <dmking@adacore.com> - - * raise-gcc.c (get_ip_from_context): Adapt for CHERI purecap - (get_call_site_action_for): Adapt for CHERI purecap - -2023-09-26 Daniel King <dmking@adacore.com> - - * libgnat/a-tags.adb (To_Tag): Use System.Storage_Elements for - integer to address conversion. - * libgnat/s-putima.adb (Put_Image_Pointer): Likewise. - -2023-09-26 Daniel King <dmking@adacore.com> - - * libgnat/s-stratt__cheri.adb: New file - -2023-09-26 Daniel King <dmking@adacore.com> - - * libgnat/i-cheri.ads (Capability_Bound_Error) - (Capability_Permission_Error, Capability_Sealed_Error) - (Capability_Tag_Error): New, define CHERI exception types. - -2023-09-26 Ronan Desplanques <desplanques@adacore.com> - - * exp_prag.adb: Make minor corrections in comments. - * rtsfind.ads: Remove unused element from RTU_Id definition. - -2023-09-26 Derek Schacht <schacht@adacore.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst: Add more details on - using Generic Elementary Functions with dimensional analysis. - * gnat_ugn.texi: Regenerate. - -2023-09-26 Yannick Moy <moy@adacore.com> - - * exp_ch5.adb (Expand_N_Case_Statement): Reference both sections - of the Ada RM that deal with case statements and case expressions - to justify the insertion of a runtime check. - -2023-09-19 Richard Wai <richard@annexi-strayline.com> - - * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Expanded comments - explaining why TSS Finalize_Address is not generated for - concurrent class-wide types. - * exp_ch7.adb (Make_Finalize_Address_Stmts): Handle cases where the - underlying non-constrained parent type is a concurrent type, and - adjust the designated type to be the corresponding record’s - class-wide type. - -2023-09-19 Richard Wai <richard@annexi-strayline.com> - - * sem_ch3.adb (Build_Derived_Record_Type): Treat presence of - keyword "synchronized" the same as "limited" when determining if a - private extension is limited. - -2023-09-19 Marc Poulhiès <poulhies@adacore.com> - - * gcc-interface/utils.cc (max_value): New. - * gcc-interface/gigi.h (max_value): New. - * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>: - When computing gnu_min/gnu_max, try to use max_value if there is - an initial expression. - -2023-09-19 Javier Miranda <miranda@adacore.com> - - * contracts.adb - (Has_Public_Visibility_Of_Subprogram): Add missing support for - child subprograms. - -2023-09-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils.cc (finish_record_type): Round the size in - the padding case as well. - -2023-09-15 Piotr Trojanek <trojanek@adacore.com> - - * exp_aggr.adb (Build_Array_Aggr_Code): Don't build aggregate code - for null array aggregates. - * sem_aggr.adb (Resolve_Array_Aggregate): Don't examine formatting - of a null array aggregate. - -2023-09-15 Eric Botcazou <ebotcazou@adacore.com> - - * inline.adb (Expand_Inlined_Call): In the case of a function call - that returns an unconstrained type and initializes an object, set - the No_Initialization flag on the new declaration of the object. - -2023-09-15 Patrick Bernardi <bernardi@adacore.com> - - * exp_ch6.adb (Expand_N_Subprogram_Body): Do not perform - local-exception-to- goto optimization on barrier functions. - * exp_ch9.adb (Expand_Entry_Barrier): Simplify the if statement - around the simple barrier optimization and remove an old, no - longer relevant comment. - -2023-09-15 Patrick Bernardi <bernardi@adacore.com> - - * bindgen.adb (Gen_Adainit): Generate restrictions when standard - library is suppressed. - (Gen_Output_File_Ada): Ditto. - (Gen_Restrictions): Ditto. - -2023-09-15 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return false - for a small component of a record type with a variant part. - -2023-09-15 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Convert_To_Assignments): In the case of a - component association, call Is_Container_Aggregate on the parent's - parent. - (Expand_Array_Aggregate): Likewise. - -2023-09-15 Kévin Le Gouguec <legouguec@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Remove - extended discussion regarding mold run-time dependencies; - packaging changes in GNAT Pro have made them obsolete. - -2023-09-15 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Resolve_Call): When the target is an entity, do not - freeze it if the current scope is the inner wrapper function built - for an expression function with a Post or Refined_Post aspect. - -2023-09-15 Bob Duff <duff@adacore.com> - Ronan Desplanques <desplanques@adacore.com> - - * atree.adb (Node_Kind_Table): Specify parameter explicitly in - GNAT.Table instantiations. Use fully qualified references instead - of relying on use clauses. - (Get_Field_Value): Remove special case for F_Scope_Depth_Value. - That is, enable the Field_Present check in that case. - (It was already enabled for all other fields.) Violations of this - check were already fixed. - (Print_Node_Statistics): Sort the output in decreasing order of - frequencies. - (Print_Field_Statistics): Likewise (sort). - * accessibility.adb (Accessibility_Level): Pass Allow_Alt_Model in - recursive calls. Apparently, an oversight. - (Innermost_Master_Scope_Depth): Need to special-case the 'Old - attribute and allocators. - * einfo-utils.ads (Scope_Depth): Use Scope_Kind_Id to get - predicate checks. - (Scope_Depth_Set): Likewise. - (Scope_Depth_Default_0): Likewise. - * einfo-utils.adb: As for spec. - * frontend.adb (Frontend): Remove unnecessary "return;". - * gen_il-types.ads (Scope_Kind): New union type. - * gen_il-gen-gen_entities.adb (Scope_Kind): New union type. - * sem.ads: Move "with Einfo.Entities;" from body to spec. - (Scope_Stack_Entry): Declare Entity to be of Scope_Kind_Id to get - predicate checks. We had previously been putting non-scopes on the - scope stack; this prevents such anomalies. - * sem.adb: Move "with Einfo.Entities;" from body to spec. - * sem_ch8.ads: Move "with Einfo.Entities;" from body to spec. Add - "with Types;". - (Push_Scope): Use Scope_Kind_Id to get predicate checks. - * sem_ch8.adb: Move "with Einfo.Entities;" from body to spec. Add - "with Types;". - (Push_Scope): Use Scope_Kind_Id to get predicate checks. - (Pop_Scope): Use Scope_Kind_Id on popped entity to get predicate - checks. This prevents anomalies where a scope pushed onto the - stack is later mutated to a nonscope before being popped. - * sem_util.ads (Find_Enclosing_Scope): Add postcondition to ensure - that the enclosing scope of a node N is not the same node N. - Clearly, N does not enclose itself. - * sem_util.adb (Find_Enclosing_Scope): There were several bugs - where Find_Enclosing_Scope(N) = N. For example, if N is an entity, - then we would typically go up to its declaration, and then back - down to the Defining_Entity of the declaration, which is N itself. - There were other cases where Find_Enclosing_Scope of an entity - disagreed with Scope. Clearly, Find_Enclosing_Scope and Scope - should agree (when both are defined). Such bugs caused latent bugs - in accessibility.adb related to 'Old, and fixing bugs here caused - such bugs to be revealed. These are fixed by calling Scope when N - is an entity. - -2023-09-15 Javier Miranda <miranda@adacore.com> - - * accessibility.ads (Needs_Result_Accessibility_Extra_Formal): - Removed. - * accessibility.adb (Needs_Result_Accessibility_Level_Param): - Removed. - (Needs_Result_Accessibility_Extra_Formal): Removed. - (Needs_Result_Accessibility_Level): Revert previous patch. - * sem_ch6.adb (Parent_Subprogram): Handle function overriding an - enumeration literal. - (Create_Extra_Formals): Ensure that the parent subprogram has all - its extra formals. - -2023-09-14 Yannick Moy <moy@adacore.com> - - * exp_util.adb (Is_Statically_Disabled): New function to detect a - "statically disabled condition which evaluates to a given value", - as described in SPARK UG 7.3.2. - (Kill_Dead_Code): Call the new function Is_Statically_Disabled for - conditions of if statements. - * exp_util.ads (Is_Statically_Disabled): New function spec. - -2023-09-14 Javier Miranda <miranda@adacore.com> - - * exp_util.adb (Process_Record_Component): Adjust assertion on the - availablity of the invariant procedure; required because the - invariant procedure is built by the expander, and hence it is not - available compiling generic units or when the sources have errors, - since expansion is then disabled. - -2023-09-14 Javier Miranda <miranda@adacore.com> - - * sem_util.adb (Large_Max_Size_Mutable): Protect access to - attribute Is_Array_Type. - -2023-09-14 Javier Miranda <miranda@adacore.com> - - * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Protect - access to Entity attribute and add missing code to check function - selector in a prefix form call. - -2023-09-14 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Expand_Ctrl_Function_Call): Also do nothing for the - expression of a delta aggregate. - -2023-09-14 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Make the name - matching more robust. - -2023-09-14 Javier Miranda <miranda@adacore.com> - - * sem_ch6.adb (Parent_Subprogram): Complete assertion. - -2023-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on - the simple return statement. - -2023-09-05 Tom Tromey <tromey@adacore.com> - - * gcc-interface/decl.cc (gnat_to_gnu_entity): Set bit-packed for - constrained and unconstrained array types. - * gcc-interface/misc.cc (gnat_get_array_descr_info): Examine - BIT_PACKED_ARRAY_TYPE_P. - -2023-09-05 Piotr Trojanek <trojanek@adacore.com> - - * sem_type.adb (Interface_Present_In_Ancestor): Remove guard against no - list of interfaces; fix style in comments (trailing dots). - -2023-09-05 Piotr Trojanek <trojanek@adacore.com> - - * sem_type.adb (Iface_Present_In_Ancestor): Only look at the list of - interfaces for types that allow it. The guard is a high-level equivalent - of the entity kinds listed in the preconditon of the Interfaces query. - -2023-09-05 Piotr Trojanek <trojanek@adacore.com> - - * sem_type.adb (Iface_Present_In_Ancestor): Remove guard for empty list - of interfaces; the following loop will work just fine without it. - -2023-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch9.adb (Build_Protected_Entry): Move the At_End procedure - from the entry body to the inner block statement. - -2023-09-05 Bob Duff <duff@adacore.com> - - * sem_ch4.adb (Find_Component_In_Instance): Check that - Declaration_Node (Par) is not Empty, as it is for itypes. - -2023-09-05 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch7.adb (Analyze_Package_Declaration): Restrict calls to - `Sem_Warn.Check_References` and adjust comment accordingly. - -2023-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Freeze_Enumeration_Type): Give an error on a type with - both representation clause and too large size. - -2023-09-05 Liaiss Merzougue <merzougue@adacore.com> - - * libgnat/s-imguti.adb: Remove comment. - -2023-09-05 Javier Miranda <miranda@adacore.com> - - * accessibility.ads (Needs_Result_Accessibility_Extra_Formal): New - subprogram. - * accessibility.adb (Needs_Result_Accessibility_Level_Param): New - subprogram. - (Needs_Result_Accessibility_Extra_Formal): New subprogram, - temporarily keep the previous behavior of the frontend. - * sem_ch6.adb (Create_Extra_Formals): Replace occurrences of - function Needs_Result_Accessibility_Level_Param by calls to - function Needs_Result_Accessibility_Extra_Formal. - (Extra_Formals_OK): Ditto. - -2023-09-05 Alexandre Oliva <oliva@adacore.com> - - * libgnat/system-vxworks-ppc-rtp-smp.ads: Add -msmp to - Linker_Options pragma. - -2023-09-05 Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (Expand_Container_Aggregate): Report warning on - infinite recursion if an empty container aggregate appears in the - return statement of its Empty function. Fix typo in comment. - * sem_aggr.adb (Resolve_Aggregate): Resolve Ada 2022 empty - aggregate that initializes a record type that has defined its - container aggregate aspects. - (Resolve_Iterated_Association): Protect access to attribute Etype. - * sem_ch13.adb (Resolve_Aspect_Aggregate): Fix typo in comment. - -2023-09-05 Steve Baird <baird@adacore.com> - - * sem_attr.adb (Denote_Same_Function): Handle the case where - Has_Homonym (Pref_Id) returns True but Homonym (Pref_Id) returns - an empty result. - -2023-09-05 Steve Baird <baird@adacore.com> - - * sem_res.adb (Resolve_Unary_Op): In deciding whether to emit a - warning about a modular type's unary minus operator being applied - to an integer literal, ignore integer literals for which - Comes_From_Source is False. - -2023-09-05 Johannes Kliemann <kliemann@adacore.com> - - * libgnarl/s-taprop__qnx.adb: Implement Set_Task_Affinity. - -2023-09-05 Ghjuvan Lacambre <lacambre@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix - index. - * gnat_ugn.texi: Regenerate. - -2023-09-05 Daniel King <dmking@adacore.com> - - * libgnat/s-carsi8.adb: Use operations from - System.Storage_Elements for address arithmetic. - * libgnat/s-carun8.adb: Likewise - * libgnat/s-casi128.adb: Likewise - * libgnat/s-casi16.adb: Likewise - * libgnat/s-casi32.adb: Likewise - * libgnat/s-casi64.adb: Likewise - * libgnat/s-caun128.adb: Likewise - * libgnat/s-caun16.adb: Likewise - * libgnat/s-caun32.adb: Likewise - * libgnat/s-caun64.adb: Likewise - * libgnat/s-geveop.adb: Likewise - -2023-09-05 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Component_Type_For_Private_View): New function. - (Check_Generic_Actuals): For an actual type parameter, also check - its component type if it is an array type. - (Check_Private_View): Use Component_Type_For_Private_View in the - case of an array type. - (Instantiate_Type): Likewise. - (Save_Global_References.Set_Global_Type): Likewise. - -2023-09-05 Sheri Bernstein <bernstein@adacore.com> - - * libgnat/s-aridou.adb: Add pragma to exempt Metrics_LSLOC. - (Double_Divide): Add pragma to exempt - Metrics_Cyclomatic_Complexity. - (Scaled_Divide): Likewise. - * libgnat/s-vauspe.ads (Uns_Option): Add pragma to exempt - Discriminated_Records. - -2023-09-05 Ronan Desplanques <desplanques@adacore.com> - - * Makefile.rtl: Add missing units. - -2023-09-05 Sheri Bernstein <bernstein@adacore.com> - - * libgnarl/a-reatim.adb (Time_Of): Add pragma to exempt - Discriminated_Records. - * libgnat/s-imguti.adb (Round, Set_Decimal_Digits): Likewise. - * libgnat/s-multip.adb (Number_Of_CPUs): Likewise. - * libgnarl/s-tpopsp__posix-foreign.adb (Self): Refactor multiple - returns. - -2023-09-05 Javier Miranda <miranda@adacore.com> - - * sem_ch3.adb (Add_Internal_Interface_Entities): Add missing - subtype-conformance check on primitives implementing interface - primitives. - (Error_Posted_In_Formals): New subprogram. - -2023-09-05 Ronan Desplanques <desplanques@adacore.com> - - * libgnarl/s-tassta.adb: Tweak comment. - -2023-09-05 Yang Yujie <yangyujie@loongson.cn> - - * Makefile.rtl: Add LoongArch support. - * libgnarl/s-linux__loongarch.ads: New file. - * libgnat/system-linux-loongarch.ads: New file. - -2023-08-07 Sheri Bernstein <bernstein@adacore.com> - - * libgnat/s-parame__qnx.adb: Refactor multiple returns. - -2023-08-07 Piotr Trojanek <trojanek@adacore.com> - - * libgnat/i-cstrin.ads (Value): Extend preconditions; adapt comment for - the package. - -2023-08-07 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Call): Always call Cannot_Inline so that - subprogram called is marked as not always inlined. - -2023-08-07 Javier Miranda <miranda@adacore.com> - - * sem_res.adb (Resolve_Type_Conversion): Do not warn on conversion - to class-wide type on internally build helpers of class-wide - preconditions. - -2023-08-03 Sheri Bernstein <bernstein@adacore.com> - - * libgnat/s-aridou.adb: Add pragma to exempt Improper_Returns. - * libgnat/s-atopri.adb (Lock_Free_Try_Write): Likewise. - * libgnat/s-bitops.adb (Bit_Eq): Likewise. - * libgnat/s-carsi8.adb: Likewise. - * libgnat/s-carun8.adb: Likewise. - * libgnat/s-casi16.adb: Likewise. - * libgnat/s-casi32.adb: Likewise. - * libgnat/s-casi64.adb: Likewise. - * libgnat/s-caun16.adb: Likewise. - * libgnat/s-caun32.adb: Likewise. - * libgnat/s-caun64.adb: Likewise. - * libgnat/s-exponn.adb: Likewise. - * libgnat/s-expont.adb: Likewise. - * libgnat/s-valspe.adb: Likewise. - * libgnat/s-vauspe.adb: Likewise. - -2023-08-03 Vasiliy Fofanov <fofanov@adacore.com> - - * libgnat/s-imageb.adb (Set_Image_Based_Unsigned): Rewritten. - * libgnat/s-imagew.adb (Set_Image_Width_Unsigned): Likewise. - -2023-08-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Make_Invariant_Call): Convert the expression to - the type of the formal parameter if need be. - -2023-08-03 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/s-dwalin.adb ("-"): New subtraction operator. - (Enable_Cache): Use it to compute the offset. - (Symbolic_Address): Likewise. - -2023-08-01 Yannick Moy <moy@adacore.com> - - * repinfo.adb (Compute_Max_Length): Set parameter to print number - in decimal notation. - (List_Component_Layout): Same. - -2023-08-01 Yannick Moy <moy@adacore.com> - - * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check for - Skip_Proof and Skip_Flow_And_Proof annotations for deciding - whether a subprogram can be inlined. - -2023-08-01 Steve Baird <baird@adacore.com> - - * sem_ch3.adb (Constrain_Corresponding_Record): When copying - information from the unconstrained record type to a newly - constructed constrained record subtype, the - Direct_Primitive_Operations attribute must be copied. - -2023-08-01 Steve Baird <baird@adacore.com> - - * sem_ch3.adb (Analyze_Component_Declaration): Remove - Build_Default_Subtype_OK call and code that could only executed in - the case where the removed call would have returned True. Other - calls to Build_Default_Subtype_Ok are unaffected by this change. - -2023-08-01 Pascal Obry <obry@adacore.com> - - * aspects.ads (Find_Aspect): Add Boolean parameter Or_Rep_Item - (defaulted to False). - * aspects.adb (Find_Aspect): If new Boolean parameter Or_Rep_Item - is True, then instead of returning an empty result if no - appropriate N_Aspect_Specification node is found, return an - appropriate N_Attribute_Definition_Clause if one is found. - * exp_put_image.ads: Change name of Enable_Put_Image function to - Put_Image_Enabled. - * exp_put_image.adb (Build_Record_Put_Image_Procedure): Detect the - case where a call to the Put_Image procedure of a derived type can - be transformed into a call to the parent type's Put_Image - procedure (with a type conversion to the parent type as the actual - parameter). - (Put_Image_Enabled): Change name of function (previously - Enable_Put_Image). Return True in more cases. In particular, - return True for a type with an explicitly specified Put_Image - aspect even if the type is declared in a predefined unit (or in an - instance of a predefined generic unit). - * exp_attr.adb: Changes due to Put_Image_Enabled function name - change. - -2023-08-01 Yannick Moy <moy@adacore.com> - - * repinfo.adb (List_Common_Type_Info): Fix output when alignment - is not statically known, and fix assertion when expansion is not - enabled. - -2023-08-01 Bob Duff <duff@adacore.com> - - * atree.adb (Field_Present): New function to detect whether or not - a given field is present in a given node, based on either the node - kind or the entity kind as appropriate. - (Get_Field_Value): Check that the field begin fetched exists. - However, disable the check in the case of Scope_Depth_Value, - because we have failures in that case. Those failures need to be - fixed, and then the check can be enabled for all fields. - (Set_Field_Value): Check that the field begin set exists. - -2023-08-01 Léo Creuse <creuse@adacore.com> - - * par_sco.adb (Process_Decisions): Traverse all attributes of - quantified expressions nodes. - -2023-07-28 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (gnat_to_gnu): Restrict previous change to - the case where the simple return statement has got no storage pool. - -2023-07-28 Clément Chigot <chigot@adacore.com> - - * libgnarl/s-inmaop__posix.adb: Add assert after sigwait in - Interrupt_Wait - -2023-07-28 Javier Miranda <miranda@adacore.com> - - * einfo-utils.adb (Underlying_Type): Protect recursion call - against non-available attribute Etype. - * einfo.ads (Protected_Subprogram): Fix typo in documentation. - * exp_ch3.adb (BIP_Function_Call_Id): New subprogram. - (Expand_N_Object_Declaration): Improve code that evaluates if the - object is initialized with a BIP function call. - * exp_ch6.adb (Is_True_Build_In_Place_Function_Call): New - subprogram. - (Add_Task_Actuals_To_Build_In_Place_Call): Add dummy actuals if - the function does not require the BIP task actuals but it is a - dispatching operation that inherited them. - (Build_In_Place_Formal): Improve code to avoid never-ending loop - if the BIP formal is not found. - (Add_Dummy_Build_In_Place_Actuals): New subprogram. - (Expand_Call_Helper): Add calls to - Add_Dummy_Build_In_Place_Actuals. - (Expand_N_Extended_Return_Statement): Adjust assertion. - (Expand_Simple_Function_Return): Adjust assertion. - (Make_Build_In_Place_Call_In_Allocator): No action needed if the - called function inherited the BIP extra formals but it is not a - true BIP function. - (Make_Build_In_Place_Call_In_Assignment): Ditto. - * exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove code - reporting unsupported case (since this patch adds support for it). - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adding assertion - to ensure matching of BIP formals when setting the - Protected_Formal field of a protected subprogram to reference the - corresponding extra formal of the subprogram that implements it. - (Might_Need_BIP_Task_Actuals): New subprogram. - (Create_Extra_Formals): Improve code adding inherited extra - formals. - -2023-07-28 Pascal Obry <obry@adacore.com> - - * s-oscons-tmplt.c: Add support for SO_BINDTODEVICE constant. - * libgnat/g-socket.ads (Set_Socket_Option): Handle SO_BINDTODEVICE option. - (Get_Socket_Option): Handle SO_BINDTODEVICE option. - * libgnat/g-socket.adb: Likewise. - (Get_Socket_Option): Handle the case where IF_NAMESIZE is not defined - and so equal to -1. - -2023-07-28 Léo Creuse <creuse@adacore.com> - - * par_sco.adb (Has_Decision): Consider that quantified expressions - contain decisions. - -2023-07-28 Ronan Desplanques <desplanques@adacore.com> - - * libgnarl/s-tposen.adb: Fix race condition. Add comment to justify - the locking timing. - -2023-07-28 Viljar Indus <indus@adacore.com> - - * exp_util.adb (Find_Optional_Prim_Op): use "No" instead of "= Empty" - -2023-07-28 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Actuals): Add guard for the call to - Class_Preconditions_Subprogram. - -2023-07-28 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Is_Two_Dim_Packed_Array): Return true only if the - component type of the array is scalar. - -2023-07-28 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch6.adb (Check_Statement_Sequence): Only warn about missing return - statements and let GNATprove emit a check when needed. - -2023-07-28 Tom Tromey <tromey@adacore.com> - - * fe.h (Convention): Now inline function. - * gen_il-gen.adb (Put_C_Type_And_Subtypes.Put_Enum_Lit) - (Put_C_Type_And_Subtypes.Put_Kind_Subtype, Put_C_Getter): - Emit enum. - * snames.h-tmpl (Name_Id, Name_, Attribute_Id, Attribute_) - (Convention_Id, Convention_, Pragma_Id, Pragma_): Now enum. - (Get_Attribute_Id, Get_Pragma_Id): Now inline functions. - * types.h (Node_Kind, Entity_Kind, Convention_Id, Name_Id): - Now enum. - * xsnamest.adb (Output_Header_Line, Make_Value): Emit enum. - -2023-07-28 Piotr Trojanek <trojanek@adacore.com> - - * libgnat/a-except.ads (Save_Occurrence): Fix typo. - -2023-07-28 Piotr Trojanek <trojanek@adacore.com> - - * einfo-utils.adb (Number_Formals): Change types in body. - * einfo-utils.ads (Number_Formals): Change type in spec. - * einfo.ads (Number_Formals): Change type in comment. - * sem_ch13.adb (Is_Property_Function): Fix style in a caller of - Number_Formals that was likely to crash because of missing guards. - -2023-07-28 Piotr Trojanek <trojanek@adacore.com> - - * sem_warn.adb (Check_Infinite_Loop_Warning): Don't look at the type of - actual parameter when it has no type at all, e.g. because the entire - subprogram call is illegal. - -2023-07-18 Tom Tromey <tromey@adacore.com> - - * gcc-interface/decl.cc (check_ok_for_atomic_type): Use Pragma_Id. - * gcc-interface/trans.cc (lvalue_required_p, Pragma_to_gnu): Use - Pragma_Id. - (get_type_length, Attribute_to_gnu, get_atomic_access): Use - Attribute_Id. - -2023-07-18 Javier Miranda <miranda@adacore.com> - - * exp_imgv.adb (Rewrite_Object_Image): fix type of formal. Found - reading sources. - (Expand_Wide_Image_Attribute): ditto. - (Expand_Wide_Wide_Image_Attribute): ditto. - (Rewrite_Object_Image): ditto. - * exp_put_image.adb (Build_Image_Call): For class-wide interface - type prefix generate code to displace the pointer to the object to - reference the base of the underlying object. - -2023-07-18 Viljar Indus <indus@adacore.com> - - * sem_aggr.adb (Resolve_Iterated_Association): Add temporary scope - when analyzing the Iterator Specification. Use preanalysis instead - of Analysis to avoid polluting the tree. - -2023-07-18 Viljar Indus <indus@adacore.com> - - * sem_aggr.adb (Resolve_Iterated_Association): Use the element - type for the iterator in a container aggregate with an iterator - specification. - -2023-07-18 Viljar Indus <indus@adacore.com> - - * exp_aggr.adb (Expand_Container_Aggregate): Use the positional - addition method only when dealing with a container aggregate - without an Iterator Specification e.g. with a loop parameter - specification - -2023-07-18 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.ads (Wrong_Type): Add Multiple parameter defaulting to - False and document it. - * sem_util.adb (Wrong_Type): Do not return early if an error has - already been posted on Expr and Multiple is True. - * sem_ch4.adb (Analyze_One_Call): Pass All_Errors_Mode as the - actual parameter for Multiple to Wrong_Type. - -2023-07-18 Javier Miranda <miranda@adacore.com> - - * exp_disp.adb (Has_Dispatching_Constructor_Call): Removed. - (Expand_Interface_Conversion): Reverse patch. - -2023-07-18 Ronan Desplanques <desplanques@adacore.com> - - * libgnarl/s-taprop__linux.adb (Set_Task_Affinity, Create_Task): Tweak - handling of CPU affinities. - -2023-07-18 Eric Botcazou <ebotcazou@adacore.com> - - * sem_type.ads (Is_Ancestor): Remove mention of tagged type. - * exp_aggr.adb: Add with and use clauses for Sem_Type. - (Build_Record_Aggr_Code.Replace_Type): Call Is_Ancestor to spot - self-references to the type of the aggregate. - * sem_aggr.adb (Resolve_Record_Aggregate.Add_Discriminant_Values): - Likewise. - -2023-07-18 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component): - In the case of private discriminated types, explicitly check that we - have a private declaration before examining its discriminant part. - -2023-07-18 Alexandre Oliva <oliva@adacore.com> - - * libgnat/a-except.ads (Raise_Exception): Mark expected_throw. - (Reraise_Occurrence): Likewise. - (Raise_Exception_Always): Likewise. - (Raise_From_Controlled_Operation): Likewise. - (Reraise_Occurrence_Always): Likewise. - (Reraise_Occurrence_No_Defer): Likewise. - * libgnat/a-except.adb - (Exception_Propagation.Propagate_Exception): Likewise. - (Complete_And_Propagate_Occurrence): Likewise. - (Raise_Exception_No_Defer): Likewise. - (Raise_From_Signal_Handler): Likewise. - (Raise_With_Msg): Likewise. - (Raise_With_Location_And_Msg): Likewise. - (Raise_Constraint_Error): Likewise. - (Raise_Constraint_Error_Msg): Likewise. - (Raise_Program_Error): Likewise. - (Raise_Program_Error_Msg): Likewise. - (Raise_Storage_Error): Likewise. - (Raise_Storage_Error_Msg): Likewise. - (Reraise, Rcheck_*): Likewise. - * doc/gnat_rm/security_hardening_features.rst (Control Flow - Hardening): Note the influence of expected_throw. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - * gcc-interface/utils.cc (handle_expected_throw_attribute): New. - (gnat_internal_attribute_table): Add expected_throw. - -2023-07-18 Vasiliy Fofanov <fofanov@adacore.com> - - * libgnat/s-pack03.adb: Update copyright year; refactor return statements. - * libgnat/s-pack05.adb: Likewise. - * libgnat/s-pack06.adb: Likewise. - * libgnat/s-pack07.adb: Likewise. - * libgnat/s-pack09.adb: Likewise. - * libgnat/s-pack10.adb: Likewise. - * libgnat/s-pack100.adb: Likewise. - * libgnat/s-pack101.adb: Likewise. - * libgnat/s-pack102.adb: Likewise. - * libgnat/s-pack103.adb: Likewise. - * libgnat/s-pack104.adb: Likewise. - * libgnat/s-pack105.adb: Likewise. - * libgnat/s-pack106.adb: Likewise. - * libgnat/s-pack107.adb: Likewise. - * libgnat/s-pack108.adb: Likewise. - * libgnat/s-pack109.adb: Likewise. - * libgnat/s-pack11.adb: Likewise. - * libgnat/s-pack110.adb: Likewise. - * libgnat/s-pack111.adb: Likewise. - * libgnat/s-pack112.adb: Likewise. - * libgnat/s-pack113.adb: Likewise. - * libgnat/s-pack114.adb: Likewise. - * libgnat/s-pack115.adb: Likewise. - * libgnat/s-pack116.adb: Likewise. - * libgnat/s-pack117.adb: Likewise. - * libgnat/s-pack118.adb: Likewise. - * libgnat/s-pack119.adb: Likewise. - * libgnat/s-pack12.adb: Likewise. - * libgnat/s-pack120.adb: Likewise. - * libgnat/s-pack121.adb: Likewise. - * libgnat/s-pack122.adb: Likewise. - * libgnat/s-pack123.adb: Likewise. - * libgnat/s-pack124.adb: Likewise. - * libgnat/s-pack125.adb: Likewise. - * libgnat/s-pack126.adb: Likewise. - * libgnat/s-pack127.adb: Likewise. - * libgnat/s-pack13.adb: Likewise. - * libgnat/s-pack14.adb: Likewise. - * libgnat/s-pack15.adb: Likewise. - * libgnat/s-pack17.adb: Likewise. - * libgnat/s-pack18.adb: Likewise. - * libgnat/s-pack19.adb: Likewise. - * libgnat/s-pack20.adb: Likewise. - * libgnat/s-pack21.adb: Likewise. - * libgnat/s-pack22.adb: Likewise. - * libgnat/s-pack23.adb: Likewise. - * libgnat/s-pack24.adb: Likewise. - * libgnat/s-pack25.adb: Likewise. - * libgnat/s-pack26.adb: Likewise. - * libgnat/s-pack27.adb: Likewise. - * libgnat/s-pack28.adb: Likewise. - * libgnat/s-pack29.adb: Likewise. - * libgnat/s-pack30.adb: Likewise. - * libgnat/s-pack31.adb: Likewise. - * libgnat/s-pack33.adb: Likewise. - * libgnat/s-pack34.adb: Likewise. - * libgnat/s-pack35.adb: Likewise. - * libgnat/s-pack36.adb: Likewise. - * libgnat/s-pack37.adb: Likewise. - * libgnat/s-pack38.adb: Likewise. - * libgnat/s-pack39.adb: Likewise. - * libgnat/s-pack40.adb: Likewise. - * libgnat/s-pack41.adb: Likewise. - * libgnat/s-pack42.adb: Likewise. - * libgnat/s-pack43.adb: Likewise. - * libgnat/s-pack44.adb: Likewise. - * libgnat/s-pack45.adb: Likewise. - * libgnat/s-pack46.adb: Likewise. - * libgnat/s-pack47.adb: Likewise. - * libgnat/s-pack48.adb: Likewise. - * libgnat/s-pack49.adb: Likewise. - * libgnat/s-pack50.adb: Likewise. - * libgnat/s-pack51.adb: Likewise. - * libgnat/s-pack52.adb: Likewise. - * libgnat/s-pack53.adb: Likewise. - * libgnat/s-pack54.adb: Likewise. - * libgnat/s-pack55.adb: Likewise. - * libgnat/s-pack56.adb: Likewise. - * libgnat/s-pack57.adb: Likewise. - * libgnat/s-pack58.adb: Likewise. - * libgnat/s-pack59.adb: Likewise. - * libgnat/s-pack60.adb: Likewise. - * libgnat/s-pack61.adb: Likewise. - * libgnat/s-pack62.adb: Likewise. - * libgnat/s-pack63.adb: Likewise. - * libgnat/s-pack65.adb: Likewise. - * libgnat/s-pack66.adb: Likewise. - * libgnat/s-pack67.adb: Likewise. - * libgnat/s-pack68.adb: Likewise. - * libgnat/s-pack69.adb: Likewise. - * libgnat/s-pack70.adb: Likewise. - * libgnat/s-pack71.adb: Likewise. - * libgnat/s-pack72.adb: Likewise. - * libgnat/s-pack73.adb: Likewise. - * libgnat/s-pack74.adb: Likewise. - * libgnat/s-pack75.adb: Likewise. - * libgnat/s-pack76.adb: Likewise. - * libgnat/s-pack77.adb: Likewise. - * libgnat/s-pack78.adb: Likewise. - * libgnat/s-pack79.adb: Likewise. - * libgnat/s-pack80.adb: Likewise. - * libgnat/s-pack81.adb: Likewise. - * libgnat/s-pack82.adb: Likewise. - * libgnat/s-pack83.adb: Likewise. - * libgnat/s-pack84.adb: Likewise. - * libgnat/s-pack85.adb: Likewise. - * libgnat/s-pack86.adb: Likewise. - * libgnat/s-pack87.adb: Likewise. - * libgnat/s-pack88.adb: Likewise. - * libgnat/s-pack89.adb: Likewise. - * libgnat/s-pack90.adb: Likewise. - * libgnat/s-pack91.adb: Likewise. - * libgnat/s-pack92.adb: Likewise. - * libgnat/s-pack93.adb: Likewise. - * libgnat/s-pack94.adb: Likewise. - * libgnat/s-pack95.adb: Likewise. - * libgnat/s-pack96.adb: Likewise. - * libgnat/s-pack97.adb: Likewise. - * libgnat/s-pack98.adb: Likewise. - * libgnat/s-pack99.adb: Likewise. - -2023-07-18 Yannick Moy <moy@adacore.com> - - * errout.adb (Error_Msg_Internal): Remove call to - Prescan_Message on the special continuation for the explain code - command, as this does not play well with the setting of global - variables for the message (like its status as a warning or not). - Instead, set directly the global variables regarding content of - the message in terms of special characters. - -2023-07-18 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.ads (Validated_View): Document enhanced behavior. - * sem_util.adb (Validated_View): Return the nonlimited view, if any, - of types coming from a limited with. - -2023-07-11 Bob Duff <duff@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Avoid transforming to - a renaming in case of constrained array that comes from source. - -2023-07-11 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component): - In the case of private discriminated types, return a discriminant - only if it is listed in the discriminant part of the declaration. - -2023-07-10 Eric Botcazou <ebotcazou@adacore.com> - - * adaint.c [_WIN32]: Undefine 'abort' macro. - -2023-07-10 Tom Tromey <tromey@adacore.com> - - * snames.h-tmpl (Name_Id, Attribute_Id, Convention_Id) - (Pragma_Id): New typedefs. - (Get_Attribute_Id, Get_Pragma_Id): Use typedef. - -2023-07-10 Yannick Moy <moy@adacore.com> - - * libgnat/s-aridou.adb (Lemma_Powers_Of_2_Commutation): Rewrite - assertion. - -2023-07-10 Bob Duff <duff@adacore.com> - - * doc/gnat_rm/gnat_language_extensions.rst - (Local Declarations Without Block): Document the feature very - briefly, and refer the reader to the RFC for details and examples. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-07-10 Alexandre Oliva <oliva@adacore.com> - - * doc/gnat_rm/security_hardening_features.rst (Control Flow - Hardening): Document -fhardcfr-skip-leaf. - * gnat_rm.texi: Regenerate. - -2023-07-10 Alexandre Oliva <oliva@adacore.com> - - * doc/gnat_rm/security_hardening_features.rst (Control Flow - Redundancy): Add -fhardcfr-check-noreturn-calls=no-xthrow. - * gnat_rm.texi: Regenerate. - -2023-07-10 Yannick Moy <moy@adacore.com> - - * libgnat/s-aridou.adb (Lemma_Div_Mult): New simple lemma. - (Lemma_Powers_Of_2_Commutation): State post in else branch. - (Lemma_Div_Pow2): Introduce local lemma and use it. - (Scaled_Divide): Use cut operations in assertions, lemmas, new - assertions. Introduce local lemma and use it. - -2023-07-10 Alexandre Oliva <oliva@adacore.com> - - * doc/gnat_rm/security_hardening_features.rst (Register - Scrubbing): Document leafy mode. - * gnat_rm.texi: Regenerate. - -2023-07-06 Claire Dross <dross@adacore.com> - - * gcc-interface/Make-lang.in: Add object files of specification - files. - -2023-07-06 Claire Dross <dross@adacore.com> - - * libgnat/s-vs_int.ads: Instance of Value_I_Spec for Integer. - * libgnat/s-vs_lli.ads: Instance of Value_I_Spec for - Long_Long_Integer. - * libgnat/s-vsllli.ads: Instance of Value_I_Spec for - Long_Long_Long_Integer. - * libgnat/s-vs_uns.ads: Instance of Value_U_Spec for Unsigned. - * libgnat/s-vs_llu.ads: Instance of Value_U_Spec for - Long_Long_Unsigned. - * libgnat/s-vslllu.ads: Instance of Value_U_Spec for - Long_Long_Long_Unsigned. - * libgnat/s-imagei.ads: Take instances of Value_*_Spec as - parameters. - * libgnat/s-imagei.adb: Idem. - * libgnat/s-imageu.ads: Idem. - * libgnat/s-imageu.adb: Idem. - * libgnat/s-valuei.ads: Idem. - * libgnat/s-valuei.adb: Idem. - * libgnat/s-valueu.ads: Idem. - * libgnat/s-valueu.adb: Idem. - * libgnat/s-imgint.ads: Adapt instance to new ghost parameters. - * libgnat/s-imglli.ads: Adapt instance to new ghost parameters. - * libgnat/s-imgllli.ads: Adapt instance to new ghost parameters. - * libgnat/s-imglllu.ads: Adapt instance to new ghost parameters. - * libgnat/s-imgllu.ads: Adapt instance to new ghost parameters. - * libgnat/s-imguns.ads: Adapt instance to new ghost parameters. - * libgnat/s-valint.ads: Adapt instance to new ghost parameters. - * libgnat/s-vallli.ads: Adapt instance to new ghost parameters. - * libgnat/s-valllli.ads: Adapt instance to new ghost parameters. - * libgnat/s-vallllu.ads: Adapt instance to new ghost parameters. - * libgnat/s-valllu.ads: Adapt instance to new ghost parameters. - * libgnat/s-valuns.ads: Adapt instance to new ghost parameters. - * libgnat/s-vaispe.ads: Take instance of Value_U_Spec as parameter - and remove unused declaration. - * libgnat/s-vaispe.adb: Idem. - * libgnat/s-vauspe.ads: Remove unused declaration. - * libgnat/s-valspe.ads: Factor out the specification part of - Val_Util. - * libgnat/s-valspe.adb: Idem. - * libgnat/s-valuti.ads: Move specification to Val_Spec. - * libgnat/s-valuti.adb: Idem. - * libgnat/s-valboo.ads: Use Val_Spec. - * libgnat/s-valboo.adb: Idem. - * libgnat/s-imgboo.adb: Idem. - * libgnat/s-imagef.adb: Adapt instances to new ghost parameters. - * Makefile.rtl: List new files. - -2023-07-06 Viljar Indus <indus@adacore.com> - - * sem_attr.adb (analyze_attribute.check_array_type): Replace valid - indexes with their staticly evaluated values. - -2023-07-06 Viljar Indus <indus@adacore.com> - - * doc/gnat_ugn/the_gnat_compilation_model.rst: Reference "Binding - with Non-Ada Main Programs" from "Creating a Stand-alone Library - to be used in a non-Ada context". - * gnat_ugn.texi: Regenerate. - -2023-07-06 Viljar Indus <indus@adacore.com> - - * sem_util.adb (Is_Fully_Initialized_Type): Avoid recalculating - the underlying type twice. - -2023-07-06 Viljar Indus <indus@adacore.com> - - * exp_util.adb (Find_Optional_Prim_Op): Stop deriving primitive - operation if there is no underlying type to derive it from. - -2023-07-06 Yannick Moy <moy@adacore.com> - - * errout.ads: Add explain code. - * sem_prag.adb (Check_Library_Level_Entity): Refine error message - and add explain code. - -2023-07-06 Steve Baird <baird@adacore.com> - - * exp_ch7.adb (Make_Final_Call): Add assertion that if no - finalization call is generated, then the type of the object being - finalized does not require finalization. - * freeze.adb (Freeze_Entity): If freezing an already-frozen - subtype, do not assume that nothing needs to be done. In the case - of a frozen subtype of a non-frozen type or subtype (which is - possible), freeze the non-frozen entity. - -2023-07-04 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch5.adb (Expand_Assign_Array): Adjust comment above the - calls to Possible_Bit_Aligned_Component on the LHS and RHS. Do not - call Is_Possibly_Unaligned_Slice in the slice case. - * exp_util.ads (Component_May_Be_Bit_Aligned): Add For_Slice - boolean parameter. - (Possible_Bit_Aligned_Component): Likewise. - * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return False - for the slice of a small record or bit-packed array component. - (Possible_Bit_Aligned_Component): Pass For_Slice in recursive - calls, except in the slice case where True is passed, as well as - in call to Component_May_Be_Bit_Aligned. - -2023-07-04 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.ads (Expand_Unchecked_Union_Equality): Only take a - single parameter. - * exp_ch4.adb (Expand_Unchecked_Union_Equality): Add guard against - repeated invocation on the same node. - * exp_ch6.adb (Expand_Call): Only pass a single actual parameter - in the call to Expand_Unchecked_Union_Equality. - -2023-07-04 Viljar Indus <indus@adacore.com> - - * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: - add No_Use_Of_Attribute & No_Use_Of_Pragma restrictions. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-07-04 Yannick Moy <moy@adacore.com> - - * sem_disp.adb (Inherited_Subprograms): Add parameter to filter - out results. - * sem_disp.ads: Likewise. - -2023-07-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.ads (Build_Variant_Record_Equality): Add Spec_Id as second - parameter. - * exp_ch3.adb (Build_Variant_Record_Equality): For unchecked union - types, build the additional parameters as extra formal parameters. - (Expand_Freeze_Record_Type.Build_Variant_Record_Equality): Pass - Empty as Spec_Id in call to Build_Variant_Record_Equality. - * exp_ch4.ads (Expand_Unchecked_Union_Equality): New procedure. - * exp_ch4.adb (Expand_Composite_Equality): In the presence of a - function implementing composite equality, do not special case the - unchecked union types, and only convert the operands if the base - types are not the same like in Build_Equality_Call. - (Build_Equality_Call): Do not special case the unchecked union types - and relocate the operands only once. - (Expand_N_Op_Eq): Do not special case the unchecked union types. - (Expand_Unchecked_Union_Equality): New procedure implementing the - specific expansion of calls to the predefined equality function. - * exp_ch6.adb (Is_Unchecked_Union_Equality): New predicate. - (Expand_Call): Call Is_Unchecked_Union_Equality to determine whether - to call Expand_Unchecked_Union_Equality or Expand_Call_Helper. - * exp_ch8.adb (Build_Body_For_Renaming): Set Has_Delayed_Freeze flag - earlier on Id and pass Id in call to Build_Variant_Record_Equality. - -2023-07-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Build_Untagged_Equality): Rename into... - (Build_Untagged_Record_Equality): ...this. - (Expand_Freeze_Record_Type): Adjust to above renaming and invoke - the procedure also for discriminated types without a variant part. - -2023-07-03 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.adb (Has_Inferable_Discriminants): In the case of a - component with a per-object constraint, also return true if the - enclosing object is not of an unchecked union type. - In the default case, remove a useless call to Base_Type. - -2023-06-29 Richard Sandiford <richard.sandiford@arm.com> - - * gcc-interface/decl.cc (gt_pch_nx): Remove overloads for Entity_Id. - -2023-06-27 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/Makefile.in (LIBIBERTY): Fix condition. - (TOOLS_LIBS): Add @LD_PICFLAG@. - -2023-06-27 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Add guard to the - code turning the type of the RESULT_DECL into a reference type. - (maybe_make_gnu_thunk): Use a more precise guard in the same case. - -2023-06-27 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (Case_Statement_to_gnu): Rename boolean - constant and use From_Conditional_Expression flag for its value. - -2023-06-27 Eric Botcazou <ebotcazou@adacore.com> - - * debug.adb (d.L): Remove documentation. - * exp_ch4.adb (Expand_N_Case_Expression): In the not-by-copy case, - do not wrap the case statement in an Expression_With_Actions node. - (Expand_N_If_Expression): Do not test - Back_End_Handles_Limited_Types - * gnat1drv.adb (Adjust_Global_Switches): Do not set it. - * opt.ads (Back_End_Handles_Limited_Types): Delete. - -2023-06-27 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Check_Generic_Actuals): Check the component type - of constants and variables of an array type. - (Copy_Generic_Node): Fix bogus handling of iterator - specifications. - -2023-06-27 Claire Dross <dross@adacore.com> - - * libgnat/a-textio.ads (Get_Line): Use Relaxed_Initialization on - the Item parameter of Get_Line. - -2023-06-27 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_N_Quantified_Expression): Revert the latest - change as it is subsumed by the machinery in Sem_Ch5. - * sem_ch5.adb (Prepare_Iterator_Loop): Also wrap the loop - statement in a block in the name contains a function call that - returns on the secondary stack. - -2023-06-27 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Scope_Within_Body_Or_Same): New predicate. - (Check_Actual_Type): Take into account packages nested in bodies - to compute the enclosing scope by means of - Scope_Within_Body_Or_Same. - -2023-06-27 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Check_Private_View): Also check the type of - visible discriminants in record and concurrent types. - -2023-06-27 Viljar Indus <indus@adacore.com> - - * sprint.adb (Print_Node_Actual): Print homogeneous N_Aggregate - nodes with brackets. - -2023-06-27 Viljar Indus <indus@adacore.com> - - * exp_aggr.adb (Expand_N_Aggregate): Ensure that container - aggregate expressions do not get expanded as records but instead - as container aggregates. - -2023-06-20 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Pass - the NULL_TREE explicitly and test imported_p in lieu of - Is_Imported. <E_Function>: Remove public_flag local variable and - make extern_flag local variable a constant. - -2023-06-20 Yannick Moy <moy@adacore.com> - - * sem_res.adb (Resolve_Call): Fix change that replaced test for - quantified expressions by the test for potentially unevaluated - contexts. Both should be performed. - -2023-06-20 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Convert_View): Detect more cases of mismatches for - private types and use Implementation_Base_Type as main criterion. - * gen_il-fields.ads (Opt_Field_Enum): Add - Has_Secondary_Private_View - * gen_il-gen-gen_nodes.adb (N_Expanded_Name): Likewise. - (N_Direct_Name): Likewise. - (N_Op): Likewise. - * sem_ch12.ads (Check_Private_View): Document the usage of second - flag Has_Secondary_Private_View. - * sem_ch12.adb (Get_Associated_Entity): New function to retrieve - the ultimate associated entity, if any. - (Check_Private_View): Implement Has_Secondary_Private_View - support. - (Copy_Generic_Node): Remove specific treatment for Component_Type - of an array type and Designated_Type of an access type. Add - specific treatment for comparison and equality operators, as well - as iterator and loop parameter specifications. - (Instantiate_Type): Implement Has_Secondary_Private_View support. - (Requires_Delayed_Save): Call Get_Associated_Entity. - (Set_Global_Type): Implement Has_Secondary_Private_View support. - * sem_ch6.adb (Conforming_Types): Remove bypass for private views - in instances. - * sem_type.adb (Covers): Return true if Is_Subtype_Of does so. - Remove bypass for private views in instances. - (Specific_Type): Likewise. - * sem_util.adb (Wrong_Type): Likewise. - * sinfo.ads (Has_Secondary_Private_View): Document new flag. - -2023-06-20 Ronan Desplanques <desplanques@adacore.com> - - * libgnarl/s-mudido.ads: Remove outdated comment. - -2023-06-20 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst (Overflows in GNAT) - <Default Settings>: Remove obsolete paragraph about -gnato. - <Implementation Notes>: Replace CHECKED with STRICT. - * gnat_ugn.texi: Regenerate. - -2023-06-20 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Check_Result_And_Post_State): Do not warn in cases - where the warning could be spurious. - -2023-06-20 Yannick Moy <moy@adacore.com> - - * 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-20 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Entity_Name): Handle Range like First and Last. - -2023-06-20 Jose Ruiz <ruiz@adacore.com> - - * doc/gnat_ugn/the_gnat_compilation_model.rst - (Partition-Wide Settings): add this subsection to document - configuration settings made by the Ada run time. - * gnat_ugn.texi: Regenerate. - -2023-06-20 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Entity_Name): Ignore implicit loop scopes - introduced by quantified expressions. - -2023-06-20 Bob Duff <duff@adacore.com> - - * sem_ch3.adb (Analyze_Object_Declaration): Remove predicate-check - generation if there is an address clause. These are unnecessary, - and cause gigi to crash. - * exp_util.ads (Following_Address_Clause): Remove obsolete "???" - comments. The suggested changes were done long ago. - -2023-06-20 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Has_Private_Ancestor): Fix inaccuracy in description. - * sem_ch12.adb (Check_Actual_Type): Do not switch the view of the - type if it has a private ancestor. - -2023-06-20 Daniel King <dmking@adacore.com> - - * libgnat/i-cheri.ads: Add CHERI intrinsics and helper functions. - * libgnat/i-cheri.adb: Likewise - -2023-06-20 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Convert_View): Remove Ind parameter and adjust. - * sem_ch12.adb (Check_Generic_Actuals): Check the type of both in - and in out actual objects, as well as the type of formal parameters - of actual subprograms. Extend the condition under which the views - are swapped to nested generic constructs. - (Save_References_In_Identifier): Call Set_Global_Type on a global - identifier rewritten as an explicit dereference, either directly - or after having first been rewritten as a function call. - (Save_References_In_Operator): Set N2 unconditionally and reuse it. - * sem_ch3.adb (Build_Derived_Record_Type): Add missing comment. - * sem_res.adb (Resolve_Implicit_Dereference): Remove special bypass - for private views in instances. - -2023-06-20 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Convert_To_Assignments): Tweak comment. - (Expand_Array_Aggregate): Do not delay the expansion if the parent - node is a container aggregate. - -2023-06-20 Ghjuvan Lacambre <lacambre@adacore.com> - - * errout.adb (Output_Messages): Fix loop termination condition. - -2023-06-20 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler - Switches): Document -gnateH. - * opt.ads (Reverse_Bit_Order_Threshold): New variable. - * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Use its value - if it is nonnegative instead of System_Max_Integer_Size. - * switch-c.adb (Scan_Front_End_Switches): Deal with -gnateH. - * usage.adb (Usage): Print -gnateH. - * gnat_ugn.texi: Regenerate. - -2023-06-20 Yannick Moy <moy@adacore.com> - - * libgnat/s-aridou.adb (Scaled_Divide): Add assertions. - * libgnat/s-valuti.adb: Add Loop_Variant. - * libgnat/s-valuti.ads: Add Exceptional_Cases on No_Return - procedure. - -2023-06-20 Marc Poulhiès <poulhies@adacore.com> - - * sem_ch3.adb (Build_Derived_Record_Type): Use full view as - Parent_Base if needed. - -2023-06-20 Ghjuvan Lacambre <lacambre@adacore.com> - - * lib-load.adb (Load_Unit): Pass Error_Node to calls to Error_Msg. - -2023-06-20 Claire Dross <dross@adacore.com> - - * libgnat/a-strfix.ads: Replace Might_Not_Return annotations by - Exceptional_Cases and Always_Terminates aspects. - * libgnat/a-tideio.ads: Idem. - * libgnat/a-tienio.ads: Idem. - * libgnat/a-tifiio.ads: Idem. - * libgnat/a-tiflio.ads: Idem. - * libgnat/a-tiinio.ads: Idem. - * libgnat/a-timoio.ads: Idem. - * libgnat/a-textio.ads: Idem. Also mark functions Name, Col, Line, - and Page as out of SPARK as they might raise Layout_Error. - * libgnarl/a-reatim.ads: Replace Always_Return annotations by - Always_Terminates aspects. - * libgnat/a-chahan.ads: Idem. - * libgnat/a-nbnbig.ads: Idem. - * libgnat/a-nbnbin.ads: Idem. - * libgnat/a-nbnbre.ads: Idem. - * libgnat/a-ngelfu.ads: Idem. - * libgnat/a-nlelfu.ads: Idem. - * libgnat/a-nllefu.ads: Idem. - * libgnat/a-nselfu.ads: Idem. - * libgnat/a-nuelfu.ads: Idem. - * libgnat/a-strbou.ads: Idem. - * libgnat/a-strmap.ads: Idem. - * libgnat/a-strsea.ads: Idem. - * libgnat/a-strsup.ads: Idem. - * libgnat/a-strunb.ads: Idem. - * libgnat/a-strunb__shared.ads: Idem. - * libgnat/g-souinf.ads: Idem. - * libgnat/i-c.ads: Idem. - * libgnat/interfac.ads: Idem. - * libgnat/interfac__2020.ads: Idem. - * libgnat/s-aridou.adb: Idem. - * libgnat/s-arit32.adb: Idem. - * libgnat/s-atacco.ads: Idem. - * libgnat/s-spcuop.ads: Idem. - * libgnat/s-stoele.ads: Idem. - * libgnat/s-vaispe.ads: Idem. - * libgnat/s-vauspe.ads: Idem. - * libgnat/i-cstrin.ads: Add a precondition instead of a - Might_Not_Return annotation. - -2023-06-20 Javier Miranda <miranda@adacore.com> - - * sem_ch4.adb - (Try_Selected_Component_In_Instance): New subprogram; factorizes - existing code. - (Find_Component_In_Instance) Moved inside the new subprogram. - (Analyze_Selected_Component): Invoke the new subprogram before - trying the Object.Operation notation. - -2023-06-20 Ronan Desplanques <desplanques@adacore.com> - - * libgnat/a-calfor.adb (Time_Of): Fix handling of special case. - -2023-06-15 Marek Polacek <polacek@redhat.com> - - * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove NO_PIE_CFLAGS. Add - PICFLAG. Use PICFLAG when building ada/b_gnat1.o and ada/b_gnatb.o. - * gcc-interface/Makefile.in: Use pic/libiberty.a if PICFLAG is set. - Remove NO_PIE_FLAG. - -2023-06-15 Marc Poulhiès <poulhies@adacore.com> - - * vxworks7-cert-rtp-base-link.spec: Removed. - * vxworks7-cert-rtp-base-link__ppc64.spec: Removed. - * vxworks7-cert-rtp-base-link__x86.spec: Removed. - * vxworks7-cert-rtp-base-link__x86_64.spec: Removed. - * vxworks7-cert-rtp-link.spec: Removed. - * vxworks7-cert-rtp-link__ppcXX.spec: Removed. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/utils2.cc (build_binary_op) <MODIFY_EXPR>: Do not - remove a VIEW_CONVERT_EXPR on the LHS if it is also on the RHS. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Restrict - the special handling of temporaries created for return values and - subject to a renaming to the top level. - -2023-06-15 Ronan Desplanques <desplanques@adacore.com> - - * doc/gnat_ugn/about_this_guide.rst: Fix typo. Uniformize punctuation. - * doc/gnat_ugn/the_gnat_compilation_model.rst: Uniformize punctuation. - Fix capitalization. Fix indentation of code block. Fix RST formatting - syntax errors. - * gnat_ugn.texi: Regenerate. - -2023-06-15 Yannick Moy <moy@adacore.com> - - * sem_attr.adb (Analyze_Attribute): Reject case of Loop_Entry - inside the prefix of Loop_Entry, as per SPARK RM 5.5.3.1(4,8). - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Make_Allocator_For_Return): Rewrite the logic that - determines the type used for the allocation and add assertions. - * exp_util.adb (Has_Tag_Of_Type): Also return true for extension - aggregates. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * sinfo.ads (Iterator_Filter): Document field. - * sem_ch5.adb (Analyze_Iterator_Specification): Move comment around. - (Analyze_Loop_Parameter_Specification): Only preanalyze the iterator - filter, if any. - * exp_ch5.adb (Expand_N_Loop_Statement): Analyze the new list built - when an iterator filter is present. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Find_Hook_Context): Revert latest change. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Make_Allocator_For_Return): Deal again specifically - with an aggregate returned through an object of a class-wide type. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Do not insert - an always empty list. Remove unused parameter Isc. - (Expand_Iterator_Loop): Adjust call to above procedure. - -2023-06-15 Ronan Desplanques <desplanques@adacore.com> - - * targparm.adb: Allow pragma Style_Checks in some forms. - * targparm.ads: Document new pragma permission. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.ads (Within_Case_Or_If_Expression): Adjust description. - * exp_util.adb (Find_Hook_Context): Stop the search for the topmost - conditional expression, if within one, at contexts where temporaries - may be contained. - (Within_Case_Or_If_Expression): Return false upon first encoutering - contexts where temporaries may be contained. - -2023-06-15 Johannes Kliemann <kliemann@adacore.com> - - * libgnarl/s-osinte__qnx.adb: Adjust priority conversion function. - * libgnat/system-qnx-arm.ads: Adjust priority range and default - priority. - -2023-06-15 Ronan Desplanques <desplanques@adacore.com> - - * targparm.ads: Remove references to front-end-based exceptions. Fix - thinko. - -2023-06-15 Piotr Trojanek <trojanek@adacore.com> - - * 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-15 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates when - it applies to an entry. - -2023-06-15 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Reject pragma Always_Terminates when - it applies to a function or generic function. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch4.adb (Analyze_Call): Adjust the test to detect the presence - of an incomplete view of a type on a function call. - -2023-06-15 Ronan Desplanques <desplanques@adacore.com> - - * ttypes.ads: Remove reference to Ttypef in comment. Fix typo in - comment. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * get_targ.ads (Get_Max_Unaligned_Field): Delete. - * ada_get_targ.adb (Get_Max_Unaligned_Field): Likewise. - * get_targ.adb (Get_Max_Unaligned_Field): Likewise. - * set_targ.ads (Max_Unaligned_Field): Adjust comment. - * set_targ.adb: Set Max_Unaligned_Field to 1 during elaboration. - * ttypes.ads (Max_Unaligned_Field): Delete. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * sem_type.adb (Disambiguate): Fix pasto in the implementation of - the RM 8.4(10) clause for operators. - -2023-06-15 Piotr Trojanek <trojanek@adacore.com> - - * aspects.adb - (Base_Aspect): Fix layout. - * aspects.ads - (Aspect_Argument): Expression for Always_Terminates is optional. - * sem_prag.adb - (Analyze_Always_Terminates_In_Decl_Part): Only analyze expression when - pragma argument is present. - (Analyze_Pragma): Argument for Always_Terminates is optional; fix - whitespace for Async_Readers. - -2023-06-15 Javier Miranda <miranda@adacore.com> - - * sem_util.adb - (Is_CPP_Constructor_Call): Add missing support for calls to - functions returning a private type. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.ads (Build_Transient_Object_Statements): Remove obsolete - references to array and record aggregates in documentation. - -2023-06-15 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb (Analyze_Aspect_Specifications): Add missing items - in the list of aspects handled by means of Insert_Pragma. - <Aspect_Linker_Section>: Remove obsolete code. Do not delay the - processing of the aspect if the entity is already frozen. - -2023-06-15 Piotr Trojanek <trojanek@adacore.com> - - * sem_aggr.adb - (Resolve_Array_Aggregate): Simplify comment. - (Resolve_Iterated_Component_Association): Tune comment; change variable - to constant. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * sem_aggr.adb (Resolve_Iterated_Component_Association): Simply resolve - the expression. - -2023-06-13 Bob Duff <duff@adacore.com> - - * exp_ch4.adb - (Expand_N_Quantified_Expression): Detect the secondary-stack - case, and find the innermost scope where we should mark/release, - and Set_Uses_Sec_Stack on that. Skip intermediate blocks and loops - that are part of expansion. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Is_Repeatedly_Evaluated): Recognize iterated component - association as repeatedly evaluated. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Is_Potentially_Unevaluated): Recognize iterated - component association as potentially unevaluated. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Call): Replace early call to - In_Quantified_Expression with a call to Is_Potentially_Unevaluated that - was only done when Full_Analysis is true. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * 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-13 Piotr Trojanek <trojanek@adacore.com> - - * sem_elab.adb (Check_Overriding_Primitive): Prevent Corresponding_Body - to be called with entity of an abstract subprogram. - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Save_References_In_Identifier): In the case where - the identifier has been turned into a function call by analysis, - call Set_Global_Type on the entity if it is global. - -2023-06-13 Marc Poulhiès <poulhies@adacore.com> - - * sem_aggr.adb (Resolve_Iterated_Component_Association): Call - Preanalyze_And_Resolve instead of Resolve_Aggr_Expr except for - aggregate. - Co-authored-by: Ed Schonberg <schonberg@adacore.com> - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * 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-13 Eric Botcazou <ebotcazou@adacore.com> - - * sem_attr.adb (Eval_Attribute): Add more exceptions to the early - return for a prefix which is a nonfrozen generic actual type. - * sem_ch12.adb (Copy_Generic_Node): Also check private views in the - case of an entity name or operator analyzed as a function call. - (Set_Global_Type): Make it a child of Save_Global_References. - (Save_References_In_Operator): In the case where the operator has - been turned into a function call, call Set_Global_Type on the entity - if it is global. - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * 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-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * gen_il-fields.ads (Opt_Field_Enum): Add No_Finalize_Actions and - remove No_Side_Effect_Removal. - * gen_il-gen-gen_nodes.adb (N_Function_Call): Remove semantic flag - No_Side_Effect_Removal - (N_Assignment_Statement): Add semantic flag No_Finalize_Actions. - * sinfo.ads (No_Ctrl_Actions): Adjust comment. - (No_Finalize_Actions): New flag on assignment statements. - (No_Side_Effect_Removal): Delete. - * exp_aggr.adb (Build_Record_Aggr_Code): Remove obsolete comment and - Ancestor_Is_Expression variable. In the case of an extension, do - not generate a call to Adjust manually, call Set_No_Finalize_Actions - instead. Do not set the tags, replace call to Make_Unsuppress_Block - by Make_Suppress_Block and remove useless assertions. - In the general case, call Initialize_Component. - (Initialize_Controlled_Component): Delete. - (Initialize_Simple_Component): Delete. - (Initialize_Component): Do the low-level processing, but do not - generate a call to Adjust manually, call Set_No_Finalize_Actions. - (Process_Transient_Component): Delete. - (Process_Transient_Component_Completion): Likewise. - * exp_ch5.adb (Expand_Assign_Array): Deal with No_Finalize_Actions. - (Expand_Assign_Array_Loop): Likewise. - (Expand_N_Assignment_Statement): Likewise. - (Make_Tag_Ctrl_Assignment): Likewise. - * exp_util.adb (Remove_Side_Effects): Do not test the - No_Side_Effect_Removal flag. - * sem_prag.adb (Process_Suppress_Unsuppress): Give the warning in - SPARK mode only for pragma Suppress. - * tbuild.ads (Make_Suppress_Block): New declaration. - (Make_Unsuppress_Block): Adjust comment. - * tbuild.adb (Make_Suppress_Block): New procedure. - (Make_Unsuppress_Block): Unsuppress instead of suppressing. - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch5.adb (Analyze_Assignment): Turn Rhs into a constant and - remove calls to the following subprograms. - (Transform_BIP_Assignment): Delete. - (Should_Transform_BIP_Assignment): Likewise. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.ads (Is_Inherited_Operation_For_Type): Remove spec. - * sem_util.adb (Is_Inherited_Operation_For_Type): Remove body. - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Build_Record_Aggr_Code): Add new variable Ancestor_Q - to store the result of Unqualify on Ancestor. Remove the dead call - to Generate_Finalization_Actions in the case of another aggregate as - ancestor part. Remove the redundant setting of Assignment_OK. Use - Init_Typ in lieu of Etype (Ancestor) more consistently. - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Build_Record_Aggr_Code): In the case of an extension - aggregate of a limited type whose ancestor part is an aggregate, do - not skip the final code assigning the tag of the extension. - -2023-06-13 Yannick Moy <moy@adacore.com> - - * ghost.adb (Check_Ghost_Context): Allow absence of Ghost_Id - for attribute. Update error message to mention Ghost_Predicate. - (Is_Ghost_Attribute_Reference): New query. - * ghost.ads (Is_Ghost_Attribute_Reference): New query. - * sem_attr.adb (Resolve_Attribute): Check ghost context for ghost - attributes. - -2023-06-13 Daniel King <dmking@adacore.com> - - * libgnat/s-stoele.ads: Add No_Elaboration_Code_All pragma. - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.ads (Make_Tag_Assignment_From_Type): Declare. - * exp_util.adb (Make_Tag_Assignment_From_Type): New function. - * exp_aggr.adb (Build_Record_Aggr_Code): Call the above function. - (Initialize_Simple_Component): Likewise. - * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Likewise. - (Build_Record_Init_Proc.Build_Init_Procedure ): Likewise. - (Make_Tag_Assignment): Likewise. Rename local variable and call - Unqualify to go through qualified expressions. - * exp_ch4.adb (Expand_Allocator_Expression): Likewise. - -2023-06-13 Yannick Moy <moy@adacore.com> - - * libgnat/a-strsup.ads: Change predicate aspect. - * sem_ch13.adb (Add_Predicate): Fix for first predicate. - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Initialize_Component): Perform immediate expansion - of the initialization expression if it is a conditional expression - and the component type is controlled. - -2023-06-13 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Initialize_Component): New procedure factored out - from the processing of array and record aggregates. - (Initialize_Controlled_Component): Likewise. - (Initialize_Simple_Component): Likewise. - (Build_Array_Aggr_Code.Gen_Assign): Remove In_Loop parameter. - Call Initialize_Component to initialize the component. - (Initialize_Array_Component): Delete. - (Initialize_Ctrl_Array_Component): Likewise. - (Build_Array_Aggr_Code): Adjust calls to Gen_Assign. - (Build_Record_Aggr_Code): Call Initialize_Simple_Component or - Initialize_Component to initialize the component. - (Initialize_Ctrl_Record_Component): Delete. - (Initialize_Record_Component): Likewise. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch11.adb (Expand_N_Raise_Statement): Expansion of raise statements - never happens in GNATprove mode. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch11.adb (Find_Local_Handler): Replace guard against other - constructs appearing in the list of exception handlers with iteration - using First_Non_Pragma/Next_Non_Pragma. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch11.ads (Find_Local_Handler): Fix typo in comment. - * exp_ch11.adb (Find_Local_Handler): Remove redundant check for the - Exception_Handler list being present; use membership test to eliminate - local object LCN; fold nested IF statements. Remove useless ELSIF - condition. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Check_Function_Writable_Actuals): Tune style; use - subtype name to detect membership test nodes. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Use a single call - to New_List. - -2023-06-13 Yannick Moy <moy@adacore.com> - - * doc/gnat_rm/implementation_defined_aspects.rst: Document new - aspect. - * doc/gnat_rm/implementation_defined_pragmas.rst: Whitespace. - * aspects.adb (Init_Canonical_Aspect): Set it to Predicate. - * aspects.ads: Set global constants for new aspect. - * einfo.ads: Describe new flag related to new aspect. - * exp_ch6.adb (Can_Fold_Predicate_Call): Do not fold new aspect. - * exp_util.adb (Make_Predicate_Check): Add comment. - * gen_il-fields.ads: Add new flag. - * gen_il-gen-gen_entities.adb: Add new flag. - * ghost.adb (Is_OK_Ghost_Context): Ghost predicate is an OK - ghost context. - (Mark_Ghost_Pragma): Add overloading with ghost mode parameter. - * ghost.ads (Mark_Ghost_Pragma): Add overloading with ghpst mode - parameter. - (Name_To_Ghost_Mode): Make function public. - * sem_aggr.adb: Issue error for violation of valid use. - * sem_case.adb: Issue error for violation of valid use. - * sem_ch13.adb: Adapt for new aspect. - * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove dead code - which was trying to propagate Has_Predicates flag in the wrong - direction (from derived to parent type). - (Analyze_Number_Declaration): Issue error for violation of valid - use. - (Build_Derived_Type): Cleanup inheritance of predicate flags from - parent to derived type. - (Build_Predicate_Function): Only add a predicate check when it - is not ignored as Ghost code. - * sem_ch4.adb (Analyze_Membership_Op): Issue an error for use of - a subtype with a ghost predicate as name in a membership test. - * sem_ch5.adb (Check_Predicate_Use): Issue error for violation of - valid use. - * sem_eval.adb: Adapt code for Dynamic_Predicate to account for - Ghost_Predicate too. - * sem_prag.adb (Analyze_Pragma): Make pragma ghost or not. - * sem_util.adb (Bad_Predicated_Subtype_Use): Adapt to new aspect. - (Inherit_Predicate_Flags): Add inheritance of flag. Add parameter - to apply to derived types. - * sem_util.ads (Inherit_Predicate_Flags): Change signature. - * snames.ads-tmpl: Add new aspect name. - * gnat_rm.texi: Regenerate. - -2023-06-13 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch3.adb (Make_Controlling_Function_Wrappers): Remove early - decoration. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (get_storage_model_access): Also strip any - type conversion in the node when unwinding the components. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (node_is_component): Remove parentheses. - (node_is_type_conversion): New predicate. - (get_atomic_access): Use it. - (get_storage_model_access): Likewise and look into the parent to - find a component if it returns true. - (present_in_lhs_or_actual_p): Likewise. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Check that - the storage model has Copy_From before instantiating loads for it. - <Attr_Length>: Likewise. - <Attr_Bit_Position>: Likewise. - (gnat_to_gnu) <N_Indexed_Component>: Likewise. - <N_Slice>: Likewise. - -2023-05-30 Marc Poulhiès <poulhies@adacore.com> - - * gcc-interface/trans.cc (Attribute_to_gnu): Also strip conversion - in case of DECL. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a - local variable for the GNAT index type. - <E_Array_Subtype>: Likewise. Call Is_Null_Range on the bounds and - force the zero on TYPE_SIZE and TYPE_SIZE_UNIT if it returns true. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Test the - precision of the operation rather than that of the result type. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Replace - integer_zero_node with null_pointer_node for pointer types. - * gcc-interface/trans.cc (gnat_gimplify_expr) <NULL_EXPR>: Likewise. - * gcc-interface/utils.cc (maybe_pad_type): Do not attempt to make a - packable type from a fat pointer type. - * gcc-interface/utils2.cc (build_atomic_load): Use a local variable. - (build_atomic_store): Likewise. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/misc.cc (internal_error_function): Be prepared for - an input_location set to UNKNOWN_LOCATION. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Tweak. - (gnat_to_gnu) <N_Assignment_Statement>: Declare a local variable. - For a target with a storage model, use the Actual_Designated_Subtype - to compute the size if it is present. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (Call_to_gnu): Remove code implementing the - by-copy semantics for actuals with nonnative storage models. - (gnat_to_gnu) <N_Assignment_Statement>: Remove code instantiating a - temporary for assignments between nonnative storage models. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/decl.cc (range_cannot_be_superflat): Return true - immediately if Cannot_Be_Superflat is set. - * gcc-interface/misc.cc (gnat_post_options): Do not override the - -Wstringop-overflow setting. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/Make-lang.in (ADA_CFLAGS): Move up. - (ALL_ADAFLAGS): Add $(NO_PIE_CFLAGS). - (ada/mdll.o): Remove. - (ada/mdll-fil.o): Likewise. - (ada/mdll-utl.o): Likewise. - -2023-05-30 Marc Poulhiès <poulhies@adacore.com> - - * gcc-interface/trans.cc (get_storage_model_access): Don't require - storage model access for dereference used as lvalue or renamings. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Build_Array_Aggr_Code): Move the declaration of Typ - to the beginning. - (Initialize_Array_Component): Test the unqualified version of the - expression for the nested array case. - (Initialize_Ctrl_Array_Component): Do not duplicate the expression - here. Do the pattern matching of the unqualified version of it. - (Gen_Assign): Call Unqualify to compute Expr_Q and use Expr_Q in - subsequent pattern matching. - (Initialize_Ctrl_Record_Component): Do the pattern matching of the - unqualified version of the aggregate. - (Build_Record_Aggr_Code): Call Unqualify. - (Convert_Aggr_In_Assignment): Likewise. - (Convert_Aggr_In_Object_Decl): Likewise. - (Component_OK_For_Backend): Likewise. - (Is_Delayed_Aggregate): Likewise. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Build_Array_Aggr_Code.Get_Assoc_Expr): Duplicate the - expression here instead of... - (Build_Array_Aggr_Code): ...here. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Check_Large_Modular_Array): Fix head comment, use - Standard_Long_Long_Integer_Size directly and generate a reference - just before the raise statement if the Etype of the object is an - itype declared in an open scope. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Find_Enclosing_Transient_Scope): Return the index in - the scope table instead of the scope's entity. - (Establish_Transient_Scope): If an enclosing scope already exists, - do not set the Uses_Sec_Stack flag on it if the node to be wrapped - is a return statement which requires secondary stack management. - -2023-05-30 Joel Brobecker <brobecker@adacore.com> - - * Makefile.rtl: Use libgnat/s-tsmona__linux.adb on - aarch64-linux. Link libgnat with -ldl, as the use of - s-tsmona__linux.adb requires it. - -2023-05-30 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch3.adb - (Build_Access_Subprogram_Wrapper_Body): Build wrapper body if requested - by routine that builds wrapper spec. - * sem_ch3.adb - (Analyze_Full_Type_Declaration): Only build wrapper when expander is - active. - (Build_Access_Subprogram_Wrapper): - Remove special-case for GNATprove. - -2023-05-30 Ronan Desplanques <desplanques@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor issues. - * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix minor issues. - * gnat_ugn.texi: Regenerate. - -2023-05-30 Johannes Kliemann <kliemann@adacore.com> - - * libgnat/s-parame.adb: Check that Default_Stack_Size >= - Minimum_Stack_size. - * libgnat/s-parame__rtems.adb: Ditto. - * libgnat/s-parame__vxworks.adb: Check that Default_Stack_Size >= - Minimum_Stack_size and use the proper Minimum_Stack_Size if - Stack_Check_Limits is enabled. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Resolve_Call): Restrict previous change to calls that - return on the same stack as the enclosing function. Tidy up. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/a-cidlli.adb (Put_Image): Simplify. - * libgnat/a-coinve.adb (Put_Image): Likewise. - -2023-05-30 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Build_DIC_Procedure_Body.Add_Own_DIC): When inside - a generic unit, preanalyze the expression directly. - (Build_Invariant_Procedure_Body.Add_Own_Invariants): Likewise. - -2023-05-30 Cedric Landet <landet@adacore.com> - - * init.c: Replace FIXME by ??? - -2023-05-29 Cedric Landet <landet@adacore.com> - - * s-oscons-tmplt.c: move the definition of sigset out of the - HAVE_SOCKETS bloc. - -2023-05-29 Cedric Landet <landet@adacore.com> - - * Makefile.rtl: Move g-spogwa$(objext) from GNATRTL_NONTASKING_OBJS - to GNATRTL_SOCKETS_OBJS - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in - both cases to copy the spec of the subprogram. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Establish_Transient_Scope.Find_Transient_Context): - Bail out for a simple return statement only if the transient scope - and the function both require secondary stack management, or else - if the function is a thunk. - * sem_res.adb (Resolve_Call): Do not create a transient scope when - the call is the expression of a simple return statement. - -2023-05-29 Patrick Bernardi <bernardi@adacore.com> - - * libgnat/a-excach.adb (Call_Chain): Replace - Code_Address_For_AAA/ZZZ functions with AAA/ZZZ'Code_Address. - * libgnat/a-except.adb (Code_Address_For_AAA/ZZZ): Delete. - (AAA/ZZZ): New null procedures. - * libgnat/g-debpoo.adb - (Code_Address_For_Allocate_End): Delete. - (Code_Address_For_Deallocate_End): Delete. - (Code_Address_For_Dereference_End): Delete. - (Allocate): Remove label and use Code_Address attribute to - determine subprogram addresses. - (Dellocate): Likewise. - (Dereference): Likewise. - (Allocate_End): Convert to null procedure. - (Dellocate_End): Likewise. - (Dereference_End): Likewise. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Expand_Simple_Function_Return): Call Insert_Actions - consistently when rewriting the expression. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Is_Finalizable_Transient.Is_Indexed_Container): - New predicate to detect a temporary created to hold the result of - a constant indexing on a container. - (Is_Finalizable_Transient.Is_Iterated_Container): Adjust a couple - of obsolete comments. - (Is_Finalizable_Transient): Return False if Is_Indexed_Container - returns True on the object. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Has_Applicable_User_Defined_Literal): Make it clear - that the predicate also checks the node itself. - (Try_User_Defined_Literal): Move current implementation to... - Deal only with literals, named numbers and conditional expressions - whose dependent expressions are literals or named numbers. - (Try_User_Defined_Literal_For_Operator): ...this. Remove multiple - return False statements and put a single one at the end. - (Resolve): Call Try_User_Defined_Literal instead of directly - Has_Applicable_User_Defined_Literal for all nodes. Call - Try_User_Defined_Literal_For_Operator for operator nodes. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Invoked_With_Different_Arguments): Use Get_Called_Entity, - which properly deals with calls via an access-to-subprogram; fix - inconsistent use of a Call object declared in enclosing subprogram. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * 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-29 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Check_Function_Writable_Actuals): Remove guard against - a membership test with no alternatives; simplify with a membership test. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * doc/gnat_ugn/gnat_and_program_execution.rst - (Some Useful Memory Pools): Remove extra whitespace from examples. - * sem_aggr.adb (Make_String_Into_Aggregate): Remove extra whitespace. - * gnat_ugn.texi: Regenerate. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * exp_aggr.adb (Convert_Aggr_In_Allocator): Replace Get_TSS_Name - with a high-level Is_TSS. - * sem_ch6.adb (Check_Conformance): Replace DECLARE block and - nested IF with a call to Get_TSS_Name and a membership test. - (Has_Reliable_Extra_Formals): Refactor repeated calls to - Get_TSS_Name. - * sem_disp.adb (Check_Dispatching_Operation): Replace repeated - calls to Get_TSS_Name with a membership test. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch5.adb (Expand_N_Case_Statement): Do not remove the statement - if it is the node to be wrapped by a transient scope. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not defer - anything to the back-end when the main unit is generic. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Try_User_Defined_Literal): Restrict previous change - to non-leaf nodes. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Try_User_Defined_Literal): For arithmetic operators, - also accept operands whose type is covered by the resolution type. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Initialize_Array_Component): Fix condition detecting - the nested case that requires an adjustment. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_N_In): Deal specifically with a null operand. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Expand_Simple_Function_Return): Deal with a rewriting - of the simple return during the adjustment of its expression. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_N_Case_Expression): Distribute simple return - statements enclosing the conditional expression into the dependent - expressions in almost all cases. - (Expand_N_If_Expression): Likewise. - (Process_Transient_In_Expression): Adjust to the above distribution. - * exp_ch6.adb (Expand_Ctrl_Function_Call): Deal with calls in the - dependent expressions of a conditional expression. - * sem_ch6.adb (Analyze_Function_Return): Deal with the rewriting of - a simple return statement during the resolution of its expression. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases. - -2023-05-29 Marc Poulhiès <poulhies@adacore.com> - - * exp_aggr.adb (Convert_To_Assignments): Do not mark node for - delayed expansion if parent type has the Aggregate aspect. - * sem_util.adb (Is_Container_Aggregate): Move... - * sem_util.ads (Is_Container_Aggregate): ... here and make it - public. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Entity_Name): Relax rules for Exceptional_Cases. - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch4.ads (Unresolved_Operator): New procedure. - * sem_ch4.adb (Has_Possible_Literal_Aspects): Rename into... - (Has_Possible_User_Defined_Literal): ...this. Tidy up. - (Operator_Check): Accept again unresolved operators if they have a - possible user-defined literal as operand. Factor out the handling - of the general error message into... - (Unresolved_Operator): ...this new procedure. - * sem_res.adb (Resolve): Be prepared for unresolved operators on - entry in Ada 2022 or later. If they are still unresolved on exit, - call Unresolved_Operator to give the error message. - (Try_User_Defined_Literal): Tidy up. - -2023-05-29 Steve Baird <baird@adacore.com> - - * exp_ch3.adb - (Expand_N_Object_Declaration.Default_Initialize_Object): Add test for - specified Default_Component_Value aspect when deciding whether - either Initialize_Scalars or Normalize_Scalars impacts default - initialization of an array object. - -2023-05-29 Javier Miranda <miranda@adacore.com> - - * sem_aggr.adb - (Resolve_Record_Aggregate): For aggregates of derived tagged - record types with discriminants, when collecting components - from ancestors, pass to subprogram Gather_Components the - parent type. Required to report errors on wrong aggregate - components. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Check_Result_And_Post_State): Replace low-level - navigation with a high-level Unique_Entity. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Check_Result_And_Post_State): Properly handle entry - bodies. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * contracts.adb (Fix_Parent): Fir part both for lists and nodes. - -2023-05-29 Arnaud Charlet <charlet@adacore.com> - - * sem_ch7.adb: Refine handling of inlining for CCG - -2023-05-29 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Copy_Generic_Node): Test the original node kind - for the sake of consistency. For identifiers and other entity - names and operators, accept an expanded name as associated node. - Replace "or" with "or else" in condtion and fix its formatting. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Check_Result_And_Post_State): Tune message. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * 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-29 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Analyze_Pre_Post_Condition): Tune error message. - -2023-05-29 Javier Miranda <miranda@adacore.com> - - * scans.ads (Inside_Interpolated_String_Expression): New variable. - * par-ch2.adb (P_Interpolated_String_Literal): Set/clear new - variable when parsing interpolated string expressions. - * scng.adb (Set_String): Skip processing operator symbols when we - arescanning an interpolated string literal. - -2023-05-29 Johannes Kliemann <kliemann@adacore.com> - - * Makefile.rtl (QNX): Use s-parame__qnx.adb for s-parame.adb. - * libgnat/s-parame__qnx.adb: Add QNX specific version of - System.Parameters. - -2023-05-29 Yannick Moy <moy@adacore.com> - - * libgnat/a-ngelfu.ads: Restore SPARK_Mode from context. - -2023-05-29 Marc Poulhiès <poulhies@adacore.com> - - * contracts.adb (Restore_Original_Selected_Component): Adjust assertion. - -2023-05-29 Piotr Trojanek <trojanek@adacore.com> - - * 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-26 Bob Duff <duff@adacore.com> - - * sem_ch3.adb - (Build_Derived_Record_Type): Temporarily set the state of the - Derived_Type to "self-hidden" while processing constraints - and discriminants of a record extension. - -2023-05-26 Bob Duff <duff@adacore.com> - - * 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-26 Eric Botcazou <ebotcazou@adacore.com> - - * debug.adb (d.N): Document new usage. - * exp_ch4.adb (Expand_N_Type_Conversion): Copy the Float_Truncate - flag when rewriting a floating-point to fixed-point conversion as - a floating-point to integer conversion. - * exp_fixd.adb: Add with and use clauses for Debug. - (Expand_Convert_Fixed_To_Fixed): Generate a truncation in all cases - except if the result is explicitly rounded. - (Expand_Convert_Integer_To_Fixed): Likewise. - (Expand_Convert_Float_To_Fixed): Generate a truncation for all kind - of fixed-point types, except if the result is explicitly rounded, or - -gnatd.N is specified and the type is an ordinary fixed-point type. - * sinfo.ads (Float_Truncate): Document usage for floating-point to - fixed-point conversions. - -2023-05-26 Javier Miranda <miranda@adacore.com> - - * exp_ch4.adb - (Expand_N_Allocator): If an allocator with constraints is called - in the return statement of a function returning a general access - type, then propagate to the itype the master of the general - access type (since it is the master associated with the - returned object). - -2023-05-26 Yannick Moy <moy@adacore.com> - - * sem_aggr.adb (Resolve_Record_Aggregate): Add dummy initialization and - assertion that clarifies when we reassigned to a useful value. - -2023-05-26 Yannick Moy <moy@adacore.com> - - * doc/gnat_rm/gnat_language_extensions.rst: Be more explicit on - pattern matching limitation. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-05-26 Yannick Moy <moy@adacore.com> - - * libgnat/a-calend.ads: Mark with SPARK_Mode=>Off the functions which may - raise Time_Error. - * libgnat/a-ngelfu.ads: Mark with SPARK_Mode=>Off the functions which may - lead to an overflow (which is not the case of Tan with one parameter for - example, or Arctanh or Arcoth, despite their mathematical range covering - the reals). - * libgnat/a-textio.ads: Remove Always_Return annotation from functions, as - this is now compulsory for functions to always return in SPARK. - * libgnat/i-cstrin.ads: Add Might_Not_Return annotation to Update procedure - which may not return. - -2023-05-26 Bob Duff <duff@adacore.com> - - * exp_put_image.adb (Build_Image_Call): Treat 'Img the same as - 'Image. - * exp_imgv.adb (Expand_Image_Attribute): If Discard_Names, expand - to 'Image instead of 'Img. - * snames.ads-tmpl, par-ch4.adb, sem_attr.adb, sem_attr.ads: - Cleanups: Rename Attribute_Class_Array to be Attribute_Set. Remove - unnecessary qualifications. DRY: Don't repeat "True". - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Record_Possible_Body_Reference): Remove call to Present. - * sem_util.adb (Find_Untagged_Type_Of): Likewise. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Initialize_Array_Component): Remove obsolete code. - (Expand_Array_Aggregate): In the case where a temporary is created - and the parent is an assignment statement with No_Ctrl_Actions set, - set Is_Ignored_Transient on the temporary. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch12.adb (Instantiate_Package_Body): Set the ghost mode to - that of the instance only after loading the generic's parent. - (Instantiate_Subprogram_Body): Likewise. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch4.adb (Expand_Set_Membership): Simplify by using Evolve_Or_Else. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to - Unqual_Conv; consequently, change object from variable to constant; - replace an IF statement with an AND THEN expression. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch9.adb - (Build_Entry_Count_Expression): Remove loop over component declaration; - consequently remove a parameter that is no longer used; adapt callers. - (Make_Task_Create_Call): Refine type of a local variable. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside - loop, not in the loop condition itself. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/a-cbdlli.ads (List): Move Nodes component to the end. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/a-crdlli.ads (List): Move Nodes component to the end. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * sem_attr.adb (Is_Thin_Pointer_To_Unc_Array): New predicate. - (Resolve_Attribute): Apply the static matching legality rule to an - Unrestricted_Access attribute applied to an aliased prefix if the - type is a thin pointer. Call Is_Thin_Pointer_To_Unc_Array for the - aliasing legality rule as well. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Is_Null_Record_Definition): Use First_Non_Pragma and - Next_Non_Pragma to ignore pragmas within component list. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Get_Argument): Improve detection of generic units. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch4.adb (Check_Action_OK): Replace low-level test with a - high-level routine. - * sem_ch13.adb (Is_Predicate_Static): Likewise. - -2023-05-26 Javier Miranda <miranda@adacore.com> - - * exp_ch9.adb - (Expand_N_Conditional_Entry_Call): Factorize code to avoid - duplicating subtrees; required to avoid problems when the copied - code has implicit labels. - * sem_util.ads (New_Copy_Separate_List): Removed. - (New_Copy_Separate_Tree): Removed. - * sem_util.adb (New_Copy_Separate_List): Removed. - (New_Copy_Separate_Tree): Removed. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch13.adb (Check_Component_List): Local variable Compl is now - a constant; a nested block is no longer needed. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_aggr.adb - (Resolve_Record_Aggregate): Remove useless assignment. - * sem_aux.adb - (Has_Variant_Part): Remove useless guard; this routine is only called - on type entities (and now will crash in other cases). - * sem_ch3.adb - (Create_Constrained_Components): Only assign Assoc_List when necessary; - tune whitespace. - (Is_Variant_Record): Refactor repeated calls to Parent. - * sem_util.adb - (Gather_Components): Assert that discriminant association has just one - choice in component_association; refactor repeated calls to Next. - * sem_util.ads - (Gather_Components): Tune whitespace in comment. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with - First_Non_Pragma and Next_Non_Pragma. - * exp_dist.adb (Append_Record_Traversal): Likewise. - -2023-05-26 Javier Miranda <miranda@adacore.com> - - * exp_ch9.adb (Build_Class_Wide_Master): Remember internal blocks - that have a task master entity declaration. - (Build_Master_Entity): Code cleanup. - * sem_util.ads (Is_Internal_Block): New subprogram. - * sem_util.adb (Is_Internal_Block): New subprogram. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Gather_Components): Remove guard for empty list of - components. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * back_end.adb (Call_Back_End): Add gigi_standard_address to the - signature of the gigi procedure and alphabetize other parameters. - Pass Standard_Address as actual parameter for it. - * cstand.adb (Create_Standard): Do not set Is_Descendant_Of_Address - on Standard_Address. - * gcc-interface/gigi.h (gigi): Add a standard_address parameter and - alphabetize others. - * gcc-interface/trans.cc (gigi): Likewise. Record a builtin address - type and save it as the type for Standard.Address. - -2023-05-26 Ghjuvan Lacambre <lacambre@adacore.com> - - * exp_disp.adb (Expand_Dispatching_Call): Handle new Controlling_Tag. - * sem_scil.adb (Check_SCIL_Node): Treat N_Object_Renaming_Declaration as - N_Object_Declaration. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * exp_aggr.adb - (Build_Constrained_Type): Remove local constants that were shadowing - equivalent global constants; replace a wrapper that calls - Make_Integer_Literal with a numeric literal; remove explicit - Aliased_Present parameter which is equivalent to the default value. - (Check_Bounds): Remove unused initial value. - (Expand_Array_Aggregate): Use aggregate type from the context. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Delay_Cleanups): Document new usage. - * exp_ch7.ads (Build_Finalizer): New declaration. - * exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not treat - library-level package instantiations specially. - (Build_Finalizer): Return early for package bodies and specs that - are not compilation units instead of using a more convoluted test. - (Expand_N_Package_Body): Do not build a finalizer if Delay_Cleanups - is set on the defining entity. - (Expand_N_Package_Declaration): Likewise. - * inline.ads (Pending_Body_Info): Reorder and add Fin_Scop. - (Add_Pending_Instantiation): Add Fin_Scop parameter. - * inline.adb (Add_Pending_Instantiation): Likewise and copy it into - the Pending_Body_Info appended to Pending_Instantiations. - (Add_Scope_To_Clean): Change parameter name to Scop and remove now - irrelevant processing. - (Cleanup_Scopes): Deal with scopes that are package specs or bodies. - (Instantiate_Body): For package instantiations, deal specially with - scopes that are package bodies and with scopes that are dynamic. - Pass the resulting scope to Add_Scope_To_Clean directly. - * sem_ch12.adb (Analyze_Package_Instantiation): In the case where a - body is needed, compute the enclosing finalization scope and pass it - in the call to Add_Pending_Instantiation. - (Inline_Instance_Body): Adjust aggregate passed in the calls to - Instantiate_Package_Body. - (Load_Parent_Of_Generic): Likewise. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.adb (Compile_Time_Constraint_Error): Test the Ekind. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * exp_aggr.adb (Build_Constrained_Type): Use List_Length to count - expressions in consecutive subaggregates. - -2023-05-26 Doug Rupp <rupp@adacore.com> - - * libgnarl/s-osinte__qnx.ads (sigset_t): Modify - declaration to use system.os_constants computed - value. Align it. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * exp_sel.adb: Add clauses for Sem_Util, remove them for Opt, Sinfo - and Sinfo.Nodes. - (Build_K): Always use 'Tag of the object. - (Build_S_Assignment): Likewise. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * accessibility.adb - (Is_Formal_Of_Current_Function): This routine expects an entity - reference and not the entity itself, so its parameter is a Node_Id - and not an Entity_Id. - -2023-05-26 Piotr Trojanek <trojanek@adacore.com> - - * exp_aggr.adb - (Build_Array_Aggr_Code): Change variable to constant. - (Check_Same_Aggr_Bounds): Fix style; remove unused initial value. - -2023-05-26 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create extra formals - in more situations. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * checks.adb (Selected_Range_Checks): Add guards to protect calls - to Expr_Value on bounds. - -2023-05-26 Eric Botcazou <ebotcazou@adacore.com> - - * sem_eval.ads (Is_Null_Range): Remove requirements of compile-time - known bounds and add WARNING line. - (Not_Null_Range): Remove requirements of compile-time known bounds. - * sem_eval.adb (Is_Null_Range): Fall back to Compile_Time_Compare. - (Not_Null_Range): Likewise. - * fe.h (Is_Null_Range): New predicate. - -2023-05-25 Javier Miranda <miranda@adacore.com> - - * sem_aggr.adb - (Warn_On_Null_Component_Association): New subprogram. - (Empty_Range): Adding missing support for iterated component - association node. - (Resolve_Array_Aggregate): Report warning on iterated component - association that may initialize some component of an array of - null-excluding access type components with a null value. - * exp_ch4.adb - (Expand_N_Expression_With_Actions): Add missing type check since - the subtype of the EWA node and the subtype of the expression - may differ. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Determining_Expressions): Fix style; fix layout and - ordering of pragma names; expect pragma Exceptional_Cases. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * einfo-utils.adb (Write_Entity_Info): Use procedural Next_Index. - * sem_aggr.adb (Collect_Aggr_Bounds): Reuse local constant. - (Resolve_Null_Array_Aggregate): Use procedural Next_Index. - -2023-05-25 Javier Miranda <miranda@adacore.com> - - * exp_aggr.adb (Build_Record_Aggr_Code): Protect access to - aggregate components when the aggregate is empty. - -2023-05-25 Johannes Kliemann <kliemann@adacore.com> - - * libgnat/system-vxworks7-ppc-kernel.ads: Enable - Support_Atomic_Primitives. - * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. - -2023-05-25 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch3.adb (Find_Type_Of_Object): Copy the object definition when - building the subtype declaration in the case of a spec expression. - -2023-05-25 Tom Tromey <tromey@adacore.com> - - * Make-generated.in (ada/stamp-snames): Check result of - gnatmake. - -2023-05-25 Eric Botcazou <ebotcazou@adacore.com> - - * cstand.adb (Create_Standard): Set the Is_Descendant_Of_Address - flag on Standard_Address. - * freeze.adb (Freeze_Entity): Copy the modulus of System.Address - onto Standard_Address. - -2023-05-25 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/system-aix.ads (Address): Likewise. - * libgnat/system-darwin-arm.ads (Address): Likewise. - * libgnat/system-darwin-ppc.ads (Address): Likewise. - * libgnat/system-darwin-x86.ads (Address): Likewise. - * libgnat/system-djgpp.ads (Address): Likewise. - * libgnat/system-dragonfly-x86_64.ads (Address): Likewise. - * libgnat/system-freebsd.ads (Address): Likewise. - * libgnat/system-hpux-ia64.ads (Address): Likewise. - * libgnat/system-hpux.ads (Address): Likewise. - * libgnat/system-linux-alpha.ads (Address): Likewise. - * libgnat/system-linux-arm.ads (Address): Likewise. - * libgnat/system-linux-hppa.ads (Address): Likewise. - * libgnat/system-linux-ia64.ads (Address): Likewise. - * libgnat/system-linux-m68k.ads (Address): Likewise. - * libgnat/system-linux-mips.ads (Address): Likewise. - * libgnat/system-linux-ppc.ads (Address): Likewise. - * libgnat/system-linux-riscv.ads (Address): Likewise. - * libgnat/system-linux-s390.ads (Address): Likewise. - * libgnat/system-linux-sh4.ads (Address): Likewise. - * libgnat/system-linux-sparc.ads (Address): Likewise. - * libgnat/system-linux-x86.ads (Address): Likewise. - * libgnat/system-lynxos178-ppc.ads (Address): Likewise. - * libgnat/system-lynxos178-x86.ads (Address): Likewise. - * libgnat/system-mingw.ads (Address): Likewise. - * libgnat/system-qnx-arm.ads (Address): Likewise. - * libgnat/system-rtems.ads (Address): Likewise. - * libgnat/system-solaris-sparc.ads (Address): Likewise. - * libgnat/system-solaris-x86.ads (Address): Likewise. - * libgnat/system-vxworks-ppc-kernel.ads (Address): Likewise. - * libgnat/system-vxworks-ppc-rtp-smp.ads (Address): Likewise. - * libgnat/system-vxworks-ppc-rtp.ads (Address): Likewise. - * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Address): Likewise. - * libgnat/system-vxworks7-aarch64.ads (Address): Likewise. - * libgnat/system-vxworks7-arm-rtp-smp.ads (Address): Likewise. - * libgnat/system-vxworks7-arm.ads (Address): Likewise. - * libgnat/system-vxworks7-ppc-kernel.ads (Address): Likewise. - * libgnat/system-vxworks7-ppc-rtp-smp.ads (Address): Likewise. - * libgnat/system-vxworks7-ppc64-kernel.ads (Address): Likewise. - * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Address): Likewise. - * libgnat/system-vxworks7-x86-kernel.ads (Address): Likewise. - * libgnat/system-vxworks7-x86-rtp-smp.ads (Address): Likewise. - * libgnat/system-vxworks7-x86_64-kernel.ads (Address): Likewise. - * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Address): Likewise. - -2023-05-25 Marc Poulhiès <poulhies@adacore.com> - - * sem_ch13.adb (Check_Aspect_At_Freeze_Point): fix format string, - use existing local Ident. - -2023-05-25 Bob Duff <duff@adacore.com> - - * atree.adb (Check_Vanishing_Fields): Fix bug in the "blah type - only" cases. Remove the special cases for E_Void. Misc cleanup. - (Mutate_Nkind): Disallow mutating to the same kind. - (Mutate_Ekind): Disallow mutating to E_Void. - (From E_Void is still OK -- entities start out as E_Void by - default.) Fix bug in statistics gathering -- was setting the wrong - count. Enable Check_Vanishing_Fields for entities. - * sem_ch8.adb (Is_Self_Hidden): New function. - (Find_Direct_Name): Call Is_Self_Hidden to use the new - Is_Not_Self_Hidden flag to determine whether a declaration is - hidden from all visibility by itself. This replaces the old method - of checking E_Void. - (Find_Expanded_Name): Likewise. - (Find_Selected_Component): Likewise. - * sem_util.adb (Enter_Name): Remove setting of Ekind to E_Void. - * sem_ch3.adb: Set the Is_Not_Self_Hidden flag in appropriate - places. Comment fixes. - (Inherit_Component): Remove setting of Ekind to E_Void. - * sem_ch9.adb - (Analyze_Protected_Type_Declaration): Update comment. Skip Itypes, - which should not be turned into components. - * atree.ads (Mutate_Nkind): Document error case. - (Mutate_Ekind): Remove comments apologizing for E_Void mutations. - Document error cases. - -2023-05-25 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/a-ststio.adb (Set_Mode): Test System.Memory_Size. - * libgnat/g-debuti.ads (Address_64): Likewise. - * libgnat/i-c.ads: Add with clause for System. - (ptrdiff_t): Define based on the size of memory space. - (size_t): Likewise. - * libgnat/s-crtl.ads (size_t): Likewise. - (ssize_t): Likewise. - * libgnat/s-memory.ads (size_t): Likewise. - * libgnat/s-parame.ads (Size_Type): Likewise. - * libgnat/s-parame__hpux.ads (Size_Type): Likewise. - * libgnat/s-parame__posix2008.ads (Size_Type): Likewise. - * libgnat/s-parame__vxworks.ads (Size_Type): Likewise. - * libgnat/s-putima.adb (Signed_Address): Likewise. - (Unsigned_Address): Likewise. - * libgnat/s-stoele.ads (Storage_Offset): Likewise. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition - as when it was incremented. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.ads (New_Copy_Tree): Remove Scopes_In_EWA_OK from spec; - adapt comment. - * sem_util.adb (New_Copy_Tree): Remove Scopes_In_EWA_OK from body; - adapt code. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Update_New_Entities): Remove redundant check for entity - map being present. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * atree.adb (Copy_List): Call Copy_Separate_Tree for both entities and - other nodes. - -2023-05-25 Steve Baird <baird@adacore.com> - - * exp_attr.adb - (Cached_Streaming_Ops): A new package, providing maps to save - previously-generated Read/Write/Input/Output procedures. - (Expand_N_Attribute_Reference): When a new subprogram is generated - for a Read/Write/Input/Output attribute reference, record that - type/subp pair in the appropriate Cached_Streaming_Ops map. - (Find_Stream_Subprogram): Check the appropriate - Cached_Streaming_Ops map to see if an appropriate subprogram has - already been generated. If so, then return it. The appropriateness - test includes a call to a new nested subprogram, - In_Available_Context. - * exp_strm.ads, exp_strm.adb: Do not pass in a Loc parameter (or a - source-location-bearing Nod parameter) to the 16 procedures - provided for building streaming-related subprograms. Use the - source location of the type instead. - * exp_dist.adb, exp_ch3.adb: Adapt to Exp_Strm spec changes. For - these calls the source location of the type was already being - used. - -2023-05-25 Marc Poulhiès <poulhies@adacore.com> - - * sem_ch6.adb (Analyze_Function_Return): Add missing - Is_Access_Type check before accessing the Designated_Type field. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch6.adb (Analyze_Return_Type): Remove unused initial value. - -2023-05-25 Marc Poulhiès <poulhies@adacore.com> - - * sem_ch13.adb (Analyze_One_Aspect): Call Record_Rep_Item. - (Check_Aspect_At_Freeze_Point): Check the aspect is specified on - non-array type only... - (Analyze_One_Aspect): ... instead of doing it too early here. - * sem_aggr.adb (Resolve_Container_Aggregate): Do nothing in case - the parameters failed to resolve. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Check_Internal_Protected_Use): Add standard protection - against search going too far. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * 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-25 Piotr Trojanek <trojanek@adacore.com> - - * aspects.ads - (Implementation_Defined_Aspect): Recently added aspects are - implementation-defined, just like Contract_Cases. - * sem_prag.ads - (Aspect_Specifying_Pragma): Recently added aspects have corresponding - pragmas, just like Contract_Cases. - (Pragma_Significant_To_Subprograms): Recently added aspects are - significant to subprograms, just like Contract_Cases. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Entity_Name): Tune handling of formal parameters - in contract Exceptional_Cases. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * par-ch7.adb (P_Package): Remove redundant guard from call to - Move_Aspects. - * par-ch9.adb (P_Task): Likewise. - * sem_ch6.adb (Analyze_Expression_Function, Is_Inline_Pragma): Likewise. - -2023-05-25 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Use Get_Actual_Subtype - to retrieve the actual subtype for all actuals and do it in only one - place for all unconstrained composite formal types. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Fix references to Exceptional_Cases in - code copied from handling of Subprogram_Variant. - -2023-05-25 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch3.adb (Replace_Type): Add more documentation. - -2023-05-25 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch3.adb (Replace_Type): Use existing constant wherever - possible. - -2023-05-25 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch3.adb (Replace_Type): Reduce span of variable. - -2023-05-25 Bob Duff <duff@adacore.com> - - * sem_ch9.adb (Analyze_Protected_Type_Declaration): Set the flag - for protected types. - (Analyze_Single_Protected_Declaration): Likewise, for singleton - protected objects. - (Analyze_Task_Type_Declaration): Set the flag for task types. - (Analyze_Single_Task_Declaration): Likewise, for singleton task - objects. - * sem_ch10.adb (Decorate_Type): Set the flag for types treated as - incomplete. - (Build_Shadow_Entity): Set the flag for shadow entities. - (Decorate_State): Set the flag for an abstract state. - (Build_Limited_Views): Set the flag for limited view of package. - * sem_attr.adb (Check_Not_Incomplete_Type): Disable the check when - this is a current instance. - -2023-05-25 Ronan Desplanques <desplanques@adacore.com> - - * freeze.adb (Build_DTW_Body): Add appropriate type conversions for - controlling access parameters. - * sem_util.adb (Build_Overriding_Spec): Fix designated types in - controlling access parameters. - -2023-05-25 Bob Duff <duff@adacore.com> - - * gen_il-gen-gen_entities.adb (E_Label): Add - Entry_Cancel_Parameter. This is necessary because - Analyze_Implicit_Label_Declaration set the Ekind to E_Label. - Without this change, this field would fail the vanishing-fields - check in Atree (which is currently commented out). - * einfo.ads (Entry_Cancel_Parameter): Document for E_Label. - * sem_eval.adb (Why_Not_Static): Protect against previous errors - (no need to explain why something is not static if it's already - illegal for other reasons). - * sem_util.ads (Enter_Name): Fix misleading comment. - -2023-05-25 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Scope_Depth): Fix circular definition. - (Scope_Depth_Value): Fix value for library units. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch11.adb (Analyze_Raise_Expression): Tune warning condition. - * libgnat/g-dirope.ads (Open): Remove a potentially inaccurate comment. - * libgnat/g-dirope.adb (Open): Remove a potentially useless assignment; - the Dir output parameter should be assigned a null value anyway by the - preceding call to Free. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Entity_Name): Allow aliased parameters; tune - error message. - -2023-05-25 Marc Poulhiès <poulhies@adacore.com> - - * sem_ch13.adb (Analyze_One_Aspect): Mark Aggregate aspect as - needing delayed resolution and reject the aspect on non-array - type. - -2023-05-25 Bob Duff <duff@adacore.com> - - * sinfo-utils.adb: Update comment to refer to - New_Node_Debugging_Output. - -2023-05-25 Marc Poulhiès <poulhies@adacore.com> - - * rtsfind.adb (Load_RTU.Restore_SPARK_Context): New. - (Load_RTU): Use Restore_SPARK_Context on all exit paths. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Initialize local - variable to Empty. - -2023-05-25 Piotr Trojanek <trojanek@adacore.com> - - * sem_attr.adb - (Analyze_Attribute_Old_Result): Allow uses of 'Old and 'Result within - the new aspect. - * sem_res.adb - (Within_Exceptional_Cases_Consequence): New utility routine. - (Resolve_Entity_Name): Restrict use of formal parameters within the - new aspect. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * 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-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb (Build_Predicate_Functions): If the current scope - is not that of the type, push this scope and pop it at the end. - * sem_util.ads (Current_Scope_No_Loops_No_Blocks): Delete. - * sem_util.adb (Current_Scope_No_Loops_No_Blocks): Likewise. - (Set_Public_Status): Call again Current_Scope. - -2023-05-23 Gary Dismukes <dismukes@adacore.com> - - * exp_ch6.adb (Might_Have_Tasks): Remove unneeded Etype call from - call to Is_Limited_Record, since that flag is now properly - inherited by class-wide types. - * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remove call - to Make_Class_Wide_Type, which is done too early, and will later - be done in Build_Derived_Record_Type after flags such as - Is_Limited_Record and Is_Controlled_Active have been set on the - derived type. - -2023-05-23 Patrick Bernardi <bernardi@adacore.com> - - * libgnat/s-stchop.adb (Stack_Check): Remove redundant parentheses. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * freeze.adb (Freeze_Record_Type): Add tag for redundant pragma Pack. - * sem_aggr.adb (Resolve_Record_Aggregate): Add tag for redundant OTHERS - choice. - * sem_ch8.adb (Use_One_Type): Add tag for redundant USE clauses. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * sem_ch11.adb - (Check_Duplication): Fix inconsistent iteration. - (Others_Present): Iterate over handlers using First_Non_Pragma and - Next_Non_Pragma just like in Check_Duplication. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * einfo.ads (Delay_Subprogram_Descriptors): Delete. - * gen_il-fields.ads (Opt_Field_Enum): Remove - Delay_Subprogram_Descriptors. - * gen_il-gen-gen_entities.adb (Gen_Entities): Likewise. - * gen_il-gen-gen_nodes.adb (N_Entry_Body): Add Corresponding_Spec. - * sinfo.ads (Corresponding_Spec): Document new use. - (N_Entry_Body): Likewise. - * exp_ch6.adb (Expand_Protected_Object_Reference): Be prepared for - protected subprograms that have been expanded. - * exp_ch7.adb (Expand_Cleanup_Actions): Remove unreachable code. - * exp_ch9.adb (Build_Protected_Entry): Add a local variable for the - new block and propagate Uses_Sec_Stack from the corresponding spec. - (Expand_N_Protected_Body) <N_Subprogram_Body>: Unconditionally reset - the scopes of top-level entities in the new body. - * inline.adb (Cleanup_Scopes): Do not adjust the scope on the fly. - * sem_ch9.adb (Analyze_Entry_Body): Set Corresponding_Spec. - * sem_ch12.adb (Analyze_Package_Instantiation): Remove obsolete code - setting Delay_Subprogram_Descriptors and tidy up. - * sem_util.adb (Scope_Within): Deal with protected subprograms that - have been expanded. - (Scope_Within_Or_Same): Likewise. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * libgnarl/s-taskin.ads (Atomic_Address): Delete. - (Attribute_Array): Add pragma Atomic_Components. - (Ada_Task_Control_Block): Adjust default value of Attributes. - * libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local - variable. - * libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter. - (To_Attribute): Adjust source type. - * libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements. - (New_Attribute): Adjust return type. - (Deallocate): Adjust type of parameter. - (To_Real_Attribute): Adjust source type. - (To_Address): Add target type. - (To_Attribute): Adjust source type. - (Fast_Path): Adjust tested type. - (Finalize): Compare with Null_Address. - (Reference): Likewise. - (Reinitialize): Likewise. - (Set_Value): Likewise. Add conversion to Integer_Address. - (Value): Likewise. - -2023-05-23 Raphael Amiard <amiard@adacore.com> - - * scng.adb (Scan): Replace occurrences of All_Extensions_Allowed - by Core_Extensions_Allowed. - -2023-05-23 Claire Dross <dross@adacore.com> - - * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Use new helpers. - * libgnat/s-vauspe.ads (Raw_Unsigned_Starts_As_Based_Ghost, - Raw_Unsigned_Is_Based_Ghost): New ghost helper functions. - (Is_Raw_Unsigned_Format_Ghost, Scan_Split_No_Overflow_Ghost, - Scan_Split_Value_Ghost, Raw_Unsigned_Last_Ghost): Use new - helpers. - -2023-05-23 Arnaud Charlet <charlet@adacore.com> - - * par-ch5.adb, style.ads, styleg.adb, styleg.ads - (Check_Xtra_Parens): Remove extra parameter Enable. - (Check_Xtra_Parens_Precedence): New. - (P_Case_Statement): Add -gnatyx style check. - * sem_ch4.adb: Replace calls to Check_Xtra_Parens by - Check_Xtra_Parens_Precedence. - * stylesw.ads, stylesw.adb, usage.adb: Add support for - -gnatyz. - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: - Update -gnatyxzg doc. - * sem_prag.adb, libgnat/s-regpat.adb, - libgnarl/s-interr__hwint.adb, libgnarl/s-interr__vxworks.adb: - Remove extra parens. - * par-ch3.adb (P_Discrete_Range): Do not emit a style check if - the expression is not a simple expression. - * gnat_ugn.texi: Regenerate. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/s-dwalin.adb (Enable_Cache): Use the subtract operator of - System.Storage_Elements to compute the offset. - (Symbolic_Address): Likewise. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Resolve_Intrinsic_Operator): Always perform the same - resolution for the special mod operator of System.Storage_Elements. - -2023-05-23 Raphael Amiard <amiard@adacore.com> - - * doc/gnat_rm.rst, doc/gnat_rm/gnat_language_extensions.rst, - doc/gnat_rm/implementation_defined_pragmas.rst: - * gnat_rm.texi: Regenerate. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special - operator of System.Storage_Elements. Do not rewrite it into a rem. - * sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the - left operand for the special mod operator of System.Storage_Elements - -2023-05-23 Vadim Godunko <godunko@adacore.com> - - * libgnat/a-coinho__shared.adb (Constant_Reference): Remove call - of Detach - (Query_Element): Likewise. - -2023-05-23 Ronan Desplanques <desplanques@adacore.com> - - * sem_disp.adb: Fix reference to Ada issue in comment. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * exp_disp.adb (Expand_Dispatching_Call): In the abstract interface - class-wide case, use 'Tag of the object as the controlling tag. - (Expand_Interface_Thunk): Perform address arithmetic using operators - of System.Storage_Elements. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements. - (Addr): Delete. - (Offset): New subtype of Storage_Offset. - (To_Offset): New instance of Unchecked_Conversion. - (To_Pointer): Adjust. - (To_Addr): Likewise. - (To_Ptrdiff): Likewise. - ("+"): Call To_Offset on the offset. - ("-"): Likewise. - * libgnat/s-bituti.adb: Add clauses for System.Storage_Elements. - (Val_Bytes): Change type to Storage_Count. - (Get_Val_2): Add qualification to second operand of mod operator. - (Set_Val_2): Likewise. - (Copy_Bitfield): Likewise. Change type of Src_Adjust & Dest_Adjust. - * libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address. - * libgnat/s-statxd.adb (I_AD): Adjust. - (I_AS): Likewise. - (W_AS): Likewise. - -2023-05-23 Steve Baird <baird@adacore.com> - - * sem_util.adb - (Is_Variable): Correctly return False for a selected component - name of the form Some_Object.Some_Discriminant, even if - Some_Object is a variable. We don't want to allow such a name as - an actual parameter in a call if the corresponding formal - parameter's mode is not "in". - -2023-05-23 Yannick Moy <moy@adacore.com> - - * sem_util.adb (Check_Node): Add default init on local Id. - -2023-05-23 Yannick Moy <moy@adacore.com> - - * libgnat/i-c.adb (To_Ada): Add loop invariant. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod - operator of System.Storage_Elements. - * exp_intr.adb (Expand_To_Integer): New procedure. - (Expand_Intrinsic_Call): Call Expand_To_Integer appropriately. - (Expand_To_Address): Deal with an argument with modular type. - * sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic - on a derived intrinsic subprogram. - * sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic - operators not coming from source exactly as those coming from - source and also generate a reference in both cases. - (Resolve_Op_Expon): Likewise. - (Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get - a nonprivate base type. - * snames.ads-tmpl (Name_To_Integer): New intrinsic name. - * libgnat/s-stoele.ads: Replace pragma Convention with pragma - Import throughout and remove pragma Inline_Always and - Pure_Function. - * libgnat/s-stoele.adb: Replace entire contents with pragma - No_Body. - * libgnat/s-atacco.adb: Adjust comment about pragma No_Body. - -2023-05-23 Javier Miranda <miranda@adacore.com> - - * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove - call to preanalyze class-wide conditions since here it is too - early; they must be preanalyzed when full views of private types - have been analyzed. - * sem_ch7.adb (Analyze_Package_Specification): Preanalyze - class-wide conditions of dispatching primitives defined in nested - packages. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1" - statement into a subprogram; replace assertions with defensive code; - fix few more off-by-one errors. - -2023-05-23 Ronan Desplanques <desplanques@adacore.com> - - * einfo.ads: Mention full name of LSP. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * errout.adb (Last_Sloc): Rewrite skipping past numeric literals. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the - commentary to the current implementation. - * sem_util.ads (Current_Scope_No_Loops): Move around. - (Current_Scope_No_Loops_No_Blocks): New declaration. - (Add_Block_Identifier): Fix formatting. - * sem_util.adb (Add_Block_Identifier): Likewise. - (Current_Scope_No_Loops_No_Blocks): New function. - (Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead - of Current_Scope to get the current scope. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not - manually generate a predicate check. Call Unqualify before doing - pattern matching on the expression. - * sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual - subtype when it is built in the definite case. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * libgnarl/s-interr.adb - (Registered_Handler): Remove default expression. - (Registered_Handlers): Switch to singly-linked list. - (Bind_Interrupt_To_Entry): Sync whitespace with other unit variants. - (Is_Registered): Use singly-linked list. - (Register_Interrupt_Handler): Use singly-linked list and initialized - allocator; sync assertion with other unit variants. - * libgnarl/s-interr__sigaction.adb: Likewise. - * libgnarl/s-interr__vxworks.adb: Likewise. - * libgnarl/s-interr__hwint.adb: Likewise. - (Is_Registered): Remove repeated declaration. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * pprint.adb (Expression_Image): Restore some of the old pretty-printing - for CodePeer. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * errout.adb (First_And_Last_Nodes): Ignore accessibility parameters. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * pprint.adb (Expression_Image): Move Count_Parentheses and - Fix_Parentheses routines from GNATprove and apply them before - returning the slice of a source code buffer. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * errout.adb - (Paren_Required): New subsidiary routine for better handling of - parentheses in First_Node/Last_Node. - (First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly - handle generic instances and inlined subprograms; tune handling of - parentheses; improve handling of literals. - * pprint.adb (Expression_Image): Simplify using - First_Sloc/Last_Sloc. - * sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis - when relocating expression from expression function to simple - return statement. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of - subprogram variants. - -2023-05-23 Eric Botcazou <ebotcazou@adacore.com> - - * frontend.adb (Frontend): Merge two conditional blocks and adjust. - -2023-05-23 Piotr Trojanek <trojanek@adacore.com> - - * libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment. - -2023-05-23 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch7.adb: Remove duplicate comment. - -2023-05-23 Javier Miranda <miranda@adacore.com> - - * sem_ch10.adb - (Analyze_Required_Limited_With_Units): New subprogram. - (Depends_On_Limited_Views): New subprogram. - (Has_Limited_With_Clauses): New subprogram. - (Analyze_Compilation_Unit): Call the new subprogram that performs - the full analysis of required limited-with units. - -2023-05-22 Ronan Desplanques <desplanques@adacore.com> - - * cstand.adb: Use more idiomatic procedure. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * errout.adb (First_Loc): Avoid repeated calls. - (Last_Loc): Likewise. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack - flag from original to rewritten protected subprograms here... - * exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>: - ...but here instead. Add local variables and remove a useless - test. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get - the entity of the body. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the - attribute reference, not of the loop statement. - -2023-05-22 Ronan Desplanques <desplanques@adacore.com> - - * par-ch3.adb: Add missing word in comment. - -2023-05-22 Justin Squirek <squirek@adacore.com> - - * checks.adb (Install_Null_Excluding_Check): Avoid non-null - optimizations when assertions are enabled. - -2023-05-22 Marc Poulhiès <poulhies@adacore.com> - - * exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag - for the copy of the initialization expression. - * sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip - error emission during Pre_Analyze. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Process_Package_Body): New procedure taken from... - (Build_Finalizer.Process_Declarations): ...here. Call the above - procedure to deal with both package bodies and package body stubs. - -2023-05-22 Ronan Desplanques <desplanques@adacore.com> - - * atree.ads: Remove outdated part of comment. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Build_Finalizer): Reverse the test comparing the - instantiation and declaration nodes of a package instance, and - therefore bail out only when they are equal. Adjust comments. - (Expand_N_Package_Declaration): Do not clear the Finalizer field. - * lib-writ.adb: Add with and use clauses for Sem_Util. - (Write_Unit_Information): Look at unit nodes to find finalizers. - * sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment - about the rewriting of the instantiation node into a declaration. - -2023-05-22 Bob Duff <duff@adacore.com> - - * cstand.adb (Is_Past_Self_Hiding_Point): Rename to be - Is_Not_Self_Hidden. - * einfo.ads: Likewise. - * exp_aggr.adb: Likewise. - * gen_il-fields.ads: Likewise. - * gen_il-gen-gen_entities.adb: Likewise. - * sem.adb: Likewise. - * sem_aggr.adb: Likewise. - * sem_ch11.adb: Likewise. - * sem_ch12.adb: Likewise. - * sem_ch5.adb: Likewise. - * sem_ch6.adb: Likewise. - * sem_ch7.adb: Likewise. - * sem_prag.adb: Likewise. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body - as the expanded body of an expression function. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * pprint.adb (Expression_Image): Handle several previously unsupported - constructs. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * sem_res.adb (Resolve_Entity_Name): Combine two IF statements that - execute code only for references that come from source. - -2023-05-22 Bob Duff <duff@adacore.com> - - * einfo.ads (Is_Past_Self_Hiding_Point): Document. - * gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of - fields. - * gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare - in all entities. - * exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate. - * sem.adb: Likewise. - * sem_aggr.adb: Likewise. - * sem_ch11.adb: Likewise. - * sem_ch12.adb: Likewise. - * sem_ch5.adb: Likewise. - * sem_ch7.adb: Likewise. - * sem_prag.adb: Likewise. - * sem_ch6.adb: Likewise. - (Set_Formal_Mode): Minor cleanup: Move from spec. - * sem_ch6.ads: - (Set_Formal_Mode): Minor cleanup: Move to body. - * cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities - as soon as they are created. - * comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead - of 'or else'. - * debug.adb: Minor comment cleanups. - -2023-05-22 Steve Baird <baird@adacore.com> - - * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok): - Accept an executable pragma occuring in a declare expression as - per AI22-0045. This means Assert and Inspection_Point pragmas as - well as any implementation-defined pragmas that the implementation - chooses to categorize as executable. Currently Assume and Debug - are the only such pragmas. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb - (Check_Postcondition_Use_In_Inlined_Subprogram): Mention - Subprogram_Variant in the comment. - (Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is - ignored because of pragma Inline_Always and frontend inlining. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only - emit warning when frontend inlining is enabled. - -2023-05-22 Arnaud Charlet <charlet@adacore.com> - - * par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op, - Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses. - * par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses. - * style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic - related to expressions requiring parentheses here. - -2023-05-22 Arnaud Charlet <charlet@adacore.com> - - * ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb, - checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb, - libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb, - libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb, - libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb, - libgnat/a-strmap.adb, libgnat/g-alleve.adb, - libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb, - libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb, - par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb, - sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb, - exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, - exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb, - sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb, - sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb, - sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb, - binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb, - gprep.adb, sem_ch11.adb: Remove extra parentheses. - -2023-05-22 Arnaud Charlet <charlet@adacore.com> - - * sem_aggr.adb (Get_Value): Use ?? instead of ?. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * exp_aggr.adb (Aggregate_Size): Remove redundant calls to - Present. - * exp_ch5.adb (Expand_N_If_Statement): Likewise. - * sem_prag.adb (Analyze_Pragma): Likewise. - * sem_warn.adb (Find_Var): Likewise. - -2023-05-22 Claire Dross <dross@adacore.com> - - * sem_util.adb (Find_Actual): On calls through dereferences, - return the corresponding formal in the designated subprogram - profile. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec. - * sem_util.adb (Is_Actual_Tagged_Parameter): Remove body. - -2023-05-22 Joffrey Huguet <huguet@adacore.com> - - * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads - (To_Unbounded_String): Add postcondition. Add aspect SPARK_Mode - Off on the version that takes a Natural as parameter. - (To_String): Complete postcondition. - (Set_Unbounded_String): Add postcondition. - (Element): Likewise. - ("="): Likewise. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Freeze_Type): Do not associate the Finalize_Address - routine for a class-wide type if restriction No_Dispatching_Calls - is in effect. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * libgnat/s-genbig.ads (From_Bignum): New overloaded declarations. - * libgnat/s-genbig.adb (LLLI): New subtype. - (LLLI_Is_128): New boolean constant. - (From_Bignum): Change the return type of the signed implementation - to Long_Long_Long_Integer and add support for the case where its - size is 128 bits. Add a wrapper around it for Long_Long_Integer. - Add an unsigned implementation returning Unsigned_128 and a wrapper - around it for Unsigned_64. - (To_Bignum): Test LLLI_Is_128 instead of its size. - (To_String.Image): Add qualification to calls to From_Bignum. - * libgnat/a-nbnbin.adb (To_Big_Integer): Likewise. - (Signed_Conversions.From_Big_Integer): Likewise. - (Unsigned_Conversions): Likewise. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec - to copy the spec from the subprogram to the generated subprogram - body. - (Freeze_Entity): Do not wrap imported subprograms inside generics. - -2023-05-22 Steve Baird <baird@adacore.com> - - * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok): - If Comes_From_Source (A) is False, then look at Original_Node (A) - instead of A. In particular, if an (illegal) expression function - is transformed into a "vanilla" function, we don't want to allow - it just because Comes_From_Source is now False. - -2023-05-22 Steve Baird <baird@adacore.com> - - * sem_prag.adb (Analyze_Pragma): In Check_No_Return, call - Error_Msg_Ada_2022_Feature in the case of a function. Remove code - outside of Check_No_Return that was querying Ada_Version. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): Do - not look into nested blocks. - -2023-05-22 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch3.adb (Find_Type_Of_Object): In a spec expression, also set - the Scope of the type, and call Constrain_Array for array subtypes. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * pprint.adb (Expression_Image): Reduce scope of local variables; inline - local uncommented constant From_Source; concatenate string with a single - character, as it is likely to execute faster; add missing cases to - traversal for the rightmost node and assertion to demonstrate that the - ??? comment is no longer relevant. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * pprint.adb (Expr_Name): Qualify CASE expression with N_Subexpr; add - missing alternative for N_Raise_Storage_Error; remove dead alternatives; - explicitly list unsupported alternatives. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * pprint.adb (Expr_Name): Exclude DEL from printable range. - -2023-05-22 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.ads (New_Copy_Tree): Update comment. - * sem_util.adb (New_Copy_Tree): Update Controlling_Argument, very - much like we update the First/Next_Named_Association. - -2023-05-22 Bob Duff <duff@adacore.com> - - * fe.h: Remove Ada_With_Extensions and add commentary. - * opt.ads: Rearrange code and add commentary. - -2023-05-22 Bob Duff <duff@adacore.com> - - * sem_util.adb (Process_Type): Stop the recursion. - * exp_aggr.adb (Build_Record_Aggr_Code): Add assertion. - -2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> - - * gcc-interface/decl.cc (gnat_to_gnu_entity): Use _P defines - from tree.h. - (constructor_address_p): Ditto. - (elaborate_expression_1): Ditto. - * gcc-interface/trans.cc (Identifier_to_gnu): Ditto. - (is_nrv_p): Ditto. - (Subprogram_Body_to_gnu): Ditto. - (gnat_to_gnu): Ditto. - (gnat_to_gnu_external): Ditto. - (add_decl_expr): Ditto. - (gnat_gimplify_expr): Ditto. - * gcc-interface/utils.cc (create_var_decl): Ditto. - * gcc-interface/utils2.cc (get_base_type): Ditto. - (build_binary_op): Ditto. - (build_unary_op): Ditto. - (gnat_protect_expr): Ditto. - (gnat_invariant_expr): Ditto. - -2023-05-16 Steve Baird <baird@adacore.com> - - * usage.adb: Generate output text describing the -gnatw_s switch - (and the corresponding -gnatw_S switch). - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>: - Use the canonical accumulator type as the type of the accumulator - in the prefixed case. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Expand_Array_Aggregate): Do not set Warnings_Off on - the temporary created when in-place expansion is not possible. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Freeze_Expression): When the freezing is to be done - outside the current scope, skip any scope that is an internal loop. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_imgv.adb (Rewrite_Object_Image): If the prefix is a component - that depends on a discriminant, create an actual subtype for it. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch13.adb: Add with and use clauses for Expander. - (Resolve_Aspect_Expressions) <Aspect_Predicate>: Emulate a - bona-fide preanalysis setup before calling - Resolve_Aspect_Expression. - -2023-05-16 Yannick Moy <moy@adacore.com> - - * libgnat/s-aridou.adb (Lemma_Div_Pow2): Add assertion. - * libgnat/s-arit32.adb (Lemma_Abs_Div_Commutation): Simplify. - * libgnat/s-expmod.adb (Lemma_Exp_Mod): Add assertions. - (Lemma_Euclidean_Mod): Add body to lemma. - (Lemma_Mult_Mod): Add assertion. - * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Modify assertion. - * libgnat/s-vauspe.ads (Raw_Unsigned_Last_Ghost): Add - postcondition. - * libgnat/s-widthi.adb: Use more precise types. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Has_Applicable_User_Defined_Literal): Apply the - same processing for derived untagged types as for tagged types. - * sem_util.ads (Corresponding_Primitive_Op): Adjust description. - * sem_util.adb (Corresponding_Primitive_Op): Handle untagged - types. - -2023-05-16 Javier Miranda <miranda@adacore.com> - - * sem_attr.adb - (Analyze_Attribute_Old_Result): When preanalyzing a class-wide - condition, search in the scopes stack for the subprogram that has - the condition. This is required because returning the current - scope causes reporting spurious errors when the occurrence of the - attribute is found, for example, in a quantified expression. - -2023-05-16 Javier Miranda <miranda@adacore.com> - - * exp_ch6.adb - (Needs_BIP_Alloc_Form): Return False for functions with foreign - convention since we never use build-in-place for such functions. - -2023-05-16 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (Aggregate_Constraint_Checks): Don't exit early - when preanalysing in GNATprove mode. Now the condition is - consistent with other similar conditions in other code. - -2023-05-16 Ghjuvan Lacambre <lacambre@adacore.com> - - * usage.adb (Usage): Document -gnatyD. - -2023-05-16 Marc Poulhiès <poulhies@adacore.com> - - * libgnat/s-tsmona__linux.adb (link_map, r_debug_type): Add - 'aliased' on all components. - -2023-05-16 Johannes Kliemann <kliemann@adacore.com> - - * libgnat/system-linux-ppc.ads: Add Support_Atomic_Primitives. - * libgnat/s-atopri__32.ads: Add 32 bit version of s-atopri.ads. - * Makefile.rtl: Use s-atopro__32.ads for ppc-linux. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.adb (Get_Actual_Subtype): For an explicit dereference, - return the Actual_Designated_Subtype if it is present. - (Get_Actual_Subtype_If_Available): Likewise. - -2023-05-16 Arnaud Charlet <charlet@adacore.com> - - * errout.ads: Update comment. - * errout.adb (Skip_Msg_Insertion_Warning): Update to take e.g. - -gnatyM into account. - * erroutc.adb (Get_Warning_Option, Get_Warning_Tag) - (Prescan_Message): Add support for Style tags. - * par-ch5.adb, par-ch6.adb, par-ch7.adb, par-endh.adb, - par-util.adb, style.adb, styleg.adb: Set tag on all style - messages. - -2023-05-16 Tom Tromey <tromey@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst - (Switches_for_gnatbind): Fix typo. - * libgnat/g-spipat.ads: Fix typo. - * gnat_ugn.texi: Regenerate. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_aggr.adb (Build_Assignment_With_Temporary): Adjust comment - and fix type of second parameter. Create the temporary on the - secondary stack by calling Build_Temporary_On_Secondary_Stack. - (Convert_Array_Aggr_In_Allocator): Adjust formatting. - (Expand_Array_Aggregate): Likewise. - * exp_ch4.adb (Expand_N_Allocator): Set Actual_Designated_Subtype - on the dereference in the initialization for all composite types. - * exp_ch5.adb (Expand_N_Assignment_Statement): Create a temporary - on the host for an assignment between nonnative storage models. - Suppress more checks when Suppress_Assignment_Checks is set. - * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Deal with actuals - that are dereferences with an Actual_Designated_Subtype. Add - support for nonnative storage models. - (Expand_Actuals): Create a copy if the actual is a dereference - with a nonnative storage model. - * exp_util.ads (Build_Temporary_On_Secondary_Stack): Declare. - * exp_util.adb (Build_Temporary_On_Secondary_Stack): New function. - * sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Do not - build an actual subtype for dereferences with an - Actual_Designated_Subtype - * sinfo.ads (Actual_Designated_Subtype): Adjust documentation. - (Suppress_Assignment_Checks): Likewise. - -2023-05-16 Piotr Trojanek <trojanek@adacore.com> - - * exp_spark.adb (SPARK_Freeze_Type): Copy whole handling of DIC - and Type_Invariant from Freeze_Type. - -2023-05-16 Richard Kenner <kenner@adacore.com> - - * sem_util.adb (Subprogram_Name): If what's passed is already an - entity, use that for the name. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst - (No_Dependence): Give examples of new No_Dependence restrictions. - * gnat_rm.texi: Regenerate. - -2023-05-16 Arnaud Charlet <charlet@adacore.com> - - * snames.ads-tmpl (Name_ASCII): New. - * style.adb (Check_Identifier): Fix handling of ASCII. - -2023-05-16 Eric Botcazou <ebotcazou@adacore.com> - - * gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat. - * gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as - semantical flag and change Includes_Infinities to semantical. - * sinfo.ads (Cannot_Be_Superflat): Document it for N_Range. - * exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the - range of the result if the result cannot be null. - -2023-05-16 Richard Kenner <kenner@adacore.com> - - * gen_il-gen-gen_nodes.adb (Present_Expr): Type is now Uint. - -2023-05-16 Yannick Moy <moy@adacore.com> - - * libgnat/s-aridou.adb (Big3, Is_Mult_Decomposition) - (Is_Scaled_Mult_Decomposition): Add annotation for inlining. - (Double_Divide, Scaled_Divide): Simplify and remove ghost code. - (Prove_Multiplication): Add calls to lemmas to make proof go - through. - * libgnat/s-aridou.ads (Big, In_Double_Int_Range): Add annotation - for inlining. - -2023-05-16 Yannick Moy <moy@adacore.com> - - * libgnat/a-strsup.adb: Add intermediate assertions. - -2023-05-16 Arnaud Charlet <charlet@adacore.com> - - * gnat1drv.adb: Ensure all dependencies are recorded even when not - generating code. - -2023-05-16 Yannick Moy <moy@adacore.com> - - * libgnat/a-strsup.adb: Set assertion policy for Loop_Variant. - -2023-05-16 Marc Poulhiès <poulhies@adacore.com> - - * sem_ch12.adb (Instantiate_Package_Body): Simplify if/then/else. - (Instantiate_Subprogram_Body): Likewise. - -2023-05-16 Yannick Moy <moy@adacore.com> - - * libgnat/s-aridou.adb: - (Big3): Remove override made useless. - (Lemma_Quot_Rem): Add new lemma and justify it, as no prover - manages to prove it. - (Lemma_Div_Pow2): Use new lemma Lemma_Quot_Rem. - (Prove_Scaled_Mult_Decomposition_Regroup3): Retype for - simplification. - (Scaled_Divide): Remove useless assertions.Decompose some - assertions with cut operations. Use Assert_And_Cut for second - half. Add assertions. - -2023-05-15 Marc Poulhiès <poulhies@adacore.com> - - * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment. - -2023-05-15 Yannick Moy <moy@adacore.com> - - * libgnat/a-strbou.ads: Add justifications for Mapping. - * libgnat/a-strfix.adb: Same. - * libgnat/a-strfix.ads: Same. - * libgnat/a-strsea.adb: Same. - * libgnat/a-strsea.ads: Same. - * libgnat/a-strsup.adb: Same and add loop variants. - * libgnat/a-strsup.ads: Same and add specification of termination. - -2023-05-15 Yannick Moy <moy@adacore.com> - - * libgnat/a-strsup.adb (Super_Slice): Reorder component assignment - to avoid failing predicate check related to initialization. - * libgnat/s-expmod.adb (Exp_Modular): Add intermediate assertion. - -2023-05-15 Yannick Moy <moy@adacore.com> - - * libgnat/i-c.adb: Add loop variants. Remove useless - initialization. - -2023-05-15 Bob Duff <duff@adacore.com> - - * einfo-utils.ads: Remove comment. - -2023-05-15 Bob Duff <duff@adacore.com> - - * einfo-utils.ads, einfo-utils.adb: Get rid of the Proc_Next_... - procedures. Use Inline aspect instead of pragma Inline. - Is_Discrete_Or_Fixed_Point_Type did not have pragma Inline, but - now has the aspect; this was probably an oversight - (which illustrates why aspects are better). - -2023-05-15 Ronan Desplanques <desplanques@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: Fix formatting - inconsistency. - -2023-05-15 Bob Duff <duff@adacore.com> - - * einfo-utils.adb: - (Proc_Next_Component_Or_Discriminant): Call - Next_Component_Or_Discriminant. - -2023-05-15 Bob Duff <duff@adacore.com> - - * einfo.ads: - (First_Entity): Update comment explaining why this exists on all - [sub]types, as opposed to just the ones with associated entities. - -2023-05-15 Bob Duff <duff@adacore.com> - - * atree.adb - (Check_Vanishing_Fields): Disable the check for "root/base type - only" fields. This is a bug fix -- if we're checking some subtype - S, we don't want to reach over to the root or base type and - Reinit_Field_To_Zero of that, thus modifying the field for lots of - subtypes other than S. Disable in the to/from E_Void cases. Misc - cleanup. - * gen_il-gen-gen_entities.adb: Define First_Entity, Last_Entity, - and Stored_Constraint for all type entities, because there are too - many cases where Reinit_Field_To_Zero would otherwise be needed. - In any case, it seems cleaner to have First_Entity and Last_Entity - defined in the same entity kinds. - * einfo.ads: - (First_Entity, Last_Entity, Stored_Constraint): Update comments to - reflect gen_il-gen-gen_entities.adb changes. - (Lit_Hash): Add missing "[root type only]" comment. - * exp_ch5.adb: Add Reinit_Field_To_Zero calls for vanishing - fields. - * sem_ch10.adb: Likewise. - * sem_ch6.adb: Likewise. - * sem_ch7.adb: Likewise. - * sem_ch8.adb: Likewise. - * sem_ch3.adb: Likewise. Also remove now-unnecessary - Reinit_Field_To_Zero calls. - -2023-05-15 Eric Botcazou <ebotcazou@adacore.com> - - * sem_ch7.adb (Hide_Public_Entities): Use the same condition for - subprogram bodies without specification as for those with one. - -2023-05-15 Piotr Trojanek <trojanek@adacore.com> - - * sem_util.adb (New_Copy_Tree): Remove redundant calls to Present. - -2023-05-15 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch8.adb (End_Scope): Simplify lookup of predecessor in - homonym chain. - -2023-05-15 Piotr Trojanek <trojanek@adacore.com> - - * sem_aggr.adb (Resolve_Aggregate): Accept aggregates with OTHERS - appearing inside unchecked conversions. - -2023-05-15 Steve Baird <baird@adacore.com> - - * warnsw.ads: Add a new element, - Warn_On_Ineffective_Predicate_Test, to the Opt_Warnings_Enum - enumeration type. - * warnsw.adb: Bind "-gnatw_s" to the new - Warn_On_Ineffective_Predicate_Test switch. Add the new switch to - the set of switches enabled by -gnata . - * sem_ch13.adb - (Build_Discrete_Static_Predicate): Declare new local procedure, - Warn_If_Test_Ineffective, which conditionally generates new - warning. Call this new procedure when building a new element of an - RList. - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: - Document the -gnatw_s switch (and the corresponding -gnatw_S - switch). - * gnat_ugn.texi: Regenerate. - -2023-05-15 Yannick Moy <moy@adacore.com> - - * sem_attr.adb: Update comment referring to rule number. - -2023-05-15 Ronan Desplanques <desplanques@adacore.com> - - * sem_attr.adb: sem_attr.adb (Analyze_Access_Attribute): Tighten - validity check for task types. - -2023-05-15 Ronan Desplanques <desplanques@adacore.com> - - * doc/gnat_rm/implementation_defined_characteristics.rst: Fix - minor documentation formatting issue. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-05-15 Bob Duff <duff@adacore.com> - - * exp_ch4.adb - (Expand_N_Op_Expon): Remove the too-big check. Simplify. Signed - and modular cases are combined, etc. Remove code with comment "We - only handle cases where the right type is a[sic] integer", because - the right operand must always be an integer at this point. - -2023-05-15 Bob Duff <duff@adacore.com> - - * sem_attr.adb - (Analyze_Attribute): Add a call to Check_Error_Detected. - -2023-05-15 Yannick Moy <moy@adacore.com> - - * par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to - expression in pragma association. - -2023-05-15 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.ads (JSON output format): Document special case of - Present member of a Variant object. - * repinfo.adb (List_Structural_Record_Layout): Change the type of - Ext_Level parameter to Integer. Restrict the first recursion with - increasing levels to the fixed part and implement a second - recursion with decreasing levels for the variant part. Deal with - an extension of a type with unknown discriminants. - -2023-05-15 Claire Dross <dross@adacore.com> - - * libgnat/s-valueu.adb: Use cut operations inside assertion to - restore proofs - * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-spark and - s-spcuop dependencies. - -2023-05-15 Yannick Moy <moy@adacore.com> - - * sem_prag.adb (Check_Grouping): Allow Annotate pragmas between - loop pragmas. - -2023-05-15 Javier Miranda <miranda@adacore.com> - - * doc/gnat_rm/implementation_defined_pragmas.rst - (Extensions_Allowed): Document string interpolation. - * gnat_rm.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-05-15 Joel Brobecker <brobecker@adacore.com> - - * doc/gnat_ugn/platform_specific_information.rst - (_PIE_Enabled_By_Default_On_Linux): New section. - * gnat-style.texi: Regenerate. - * gnat_ugn.texi: Regenerate. - -2023-05-15 Javier Miranda <miranda@adacore.com> - - * exp_disp.adb - (Has_Dispatching_Constructor_Call): New subprogram. - (Expand_Interface_Conversion): No need to perform dynamic - interface conversion when the operand and the target type are - interface types and the target interface type is an ancestor of - the operand type. The unique exception to this rule is when the - operand has a dispatching constructor call (as documented in the - sources). - -2023-05-15 Piotr Trojanek <trojanek@adacore.com> - - * sem_attr.adb (Analyze_Attribute): Reject attribute Initialized - on unchecked unions; fix grammar in comment. - -2023-05-15 Ronan Desplanques <desplanques@adacore.com> - - * sem_ch13.adb (Validate_Unchecked_Conversion): Fix behavior on - System.Address to access to subprogram subtype conversion. - -2023-05-15 Piotr Trojanek <trojanek@adacore.com> - - * atree.ads - (Is_Syntactic_Node): Refactored from New_Copy_Tree. - * atree.adb - (Is_Syntactic_Node): Likewise. - (Copy_Separate_Tree): Use Is_Syntactic_Node. - * sem_util.adb - (Has_More_Ids): Move to Atree. - (Is_Syntactic_Node): Likewise. - -2023-04-18 Jin Ma <jinma@linux.alibaba.com> - - * gcc-interface/utils.cc (unchecked_convert): Fix typo. - -2023-04-17 Martin Liska <mliska@suse.cz> - - * gnatvsn.ads: Bump Library_Version to 14. - -2023-04-15 Eric Botcazou <ebotcazou@adacore.com> - - PR bootstrap/109510 - * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset - align to zero in any case. Set TYPE_USER_ALIGN on the type only if - it is an aggregate type, or else a type whose default alignment is - specifically capped on selected platforms. - -2023-04-14 Eric Botcazou <ebotcazou@adacore.com> - - PR bootstrap/109510 - * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align - to zero if its value is equal to TYPE_ALIGN and the type is scalar. - Set TYPE_USER_ALIGN on the type only if align is positive. - -2023-03-06 Javier Miranda <miranda@adacore.com> - - PR ada/108858 - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with - separate spec, if their return type was visible through a limited- - with context clause, their extra formals were not added when the - spec was analyzed. Now the full view must be available, and the - extra formals can be created and Returns_By_Ref computed. - -2023-03-06 Eric Botcazou <ebotcazou@adacore.com> - - PR ada/108909 - PR ada/108983 - * Make-generated.in: Do not use GNATMAKE. - * gcc-interface/Makefile.in: Ditto. - -2023-02-26 Peter Foley <pefoley2@pefoley.com> - - PR ada/108909 - * Make-generated.in: Use GNATMAKE. - * gcc-interface/Makefile.in: Ditto. - -2023-02-14 Eric Botcazou <ebotcazou@adacore.com> - - * gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard. - -2023-02-14 Dongsheng Song <dongsheng.song@gmail.com> - - * adaint.c [Linux]: Include <features.h>. - (__gnat_get_executable_load_address) [Linux]: Enable only for - glibc and uClibc. - -2023-01-16 Marc Poulhiès <poulhies@adacore.com> - - * gcc-interface/Make-lang.in: Update copyright years. - * gcc-interface/Makefile.in: Likewise. - * gcc-interface/ada-builtin-types.def: Likewise. - * gcc-interface/ada-builtins.def: Likewise. - * gcc-interface/ada-tree.def: Likewise. - * gcc-interface/ada-tree.h: Likewise. - * gcc-interface/ada.h: Likewise. - * gcc-interface/config-lang.in: Likewise. - * gcc-interface/cuintp.cc: Likewise. - * gcc-interface/decl.cc: Likewise. - * gcc-interface/gadaint.h: Likewise. - * gcc-interface/gigi.h: Likewise. - * gcc-interface/lang-specs.h: Likewise. - * gcc-interface/lang.opt: Likewise. - * gcc-interface/misc.cc: Likewise. - * gcc-interface/system.ads: Likewise. - * gcc-interface/targtyps.cc: Likewise. - * gcc-interface/trans.cc: Likewise. - * gcc-interface/utils.cc: Likewise. - * gcc-interface/utils2.cc: Likewise. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Make_Allocator_For_Return): Convert the expression - to the return object's type in the constrained array case as well. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non- - interface stand-alone object initialized by a function call, call - Remove_Side_Effects on the expression to capture the result. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.ads (Has_Tag_Of_Type): Declare. - * exp_util.adb (Has_Tag_Of_Type): Move to package level. Recurse on - qualified expressions. - * exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference - to the interface tag in more cases for class-wide interface objects. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Is_Temporary_For_Interface_Object): Delete. - (Is_Finalizable_Transient.Is_Aliased): Deal with the specific case - of temporaries generated for interface objects. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back- - and-forth displacement of the object's address when using a renaming - for an interface object with an expression of the same type. - * exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side - effects of the expression up front for the simple allocators. Do not - call the Adjust primitive if the expression is a function call. - * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call - unnecessarily for a special return object. - (Expand_Simple_Function_Return): Restore the displacement of the - return object's address in the case where the expression is the call - to a function whose result type is a type that needs finalization. - * exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side - effects of the expression before calling Make_Subtype_From_Expr. - (Make_CW_Equivalent_Type): If the expression has the tag of its type - and this type has a uniform size, use 'Object_Size of this type in - lieu of 'Size of the expression to compute the expression's size. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Make_Allocator_For_Return): Put back an interface - conversion for expressions with non-interface class-wide type. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased - objects if their nominal subtype is not an unconstrained array. - -2023-01-16 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions - needed for an initializating expression that is a function call to - be renamable into the Is_Renamable_Function_Call predicate. - Use it to implement the renaming in the case of class-wide interface - objects. Remove an interface conversion on all paths, separate and - optimize the renaming path in the special expansion for interfaces. - (Is_Renamable_Function_Call): New predicate. - (Make_Allocator_For_Return): Put back an interface conversion. - * exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access - checks on RE_Tag_Ptr. - -2023-01-09 Arnaud Charlet <charlet@adacore.com> - - * 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-09 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement. - (Make_Final_Call): Likewise. - -2023-01-09 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete. - (Is_Displacement_Of_Object_Or_Function_Result): Likewise. - * exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to... - (Is_Temporary_For_Interface_Object): ...this. - (Is_Finalizable_Transient): Adjust call to above renaming. - (Is_Displacement_Of_Object_Or_Function_Result): Delete. - (Requires_Cleanup_Actions): Remove special handling of the - temporaries created for interface objects. - * exp_ch7.adb (Build_Finalizer): Likewise. - -2023-01-07 LIU Hao <lh_mouse@126.com> - - PR middle-end/108300 - * adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include - <windows.h>`. - * cio.c: Likewise. - * ctrl_c.c: Likewise. - * expect.c: Likewise. - * gsocket.h: Likewise. - * mingw32.h: Likewise. - * mkdir.c: Likewise. - * rtfinal.c: Likewise. - * rtinit.c: Likewise. - * seh_init.c: Likewise. - * sysdep.c: Likewise. - * terminals.c: Likewise. - * tracebak.c: Likewise. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the - handling of objects with (class-wide) interface type by using the - same idiom as the other cases generating a renaming. - * exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak - pattern matching code and exclude special return objects. - (Requires_Cleanup_Actions): Adjust comment. - * exp_ch7.adb (Build_Finalizer): Likewise. - -2023-01-05 Piotr Trojanek <trojanek@adacore.com> - - * freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to - subprogram declaration early and then set the Body_To_Inling flag. - -2023-01-05 Piotr Trojanek <trojanek@adacore.com> - - * freeze.adb (Build_Renamed_Body): Revert a special case for - GNATprove; remove unnecessary initialization of a local variable. - -2023-01-05 Marc Poulhiès <poulhies@adacore.com> - - * sem_ch12.adb (Instantiate_Package_Body): Better filtering when - installing parent on the scope stack. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * repinfo.ads (The JSON output format): Document change. - * urealp.adb (UR_Write_To_JSON): Output a fraction instead of a - decimal approximation. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): New local variable - Func_Id holding the function for a special return object. - Use a direct renaming in the class-wide case when the initializing - expression is a captured function call, except for a special return - object when the two functions do not return on the same stack. - Apply the accessibility check for class-wide special return objects. - * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New. - Do not force a dispatching call to the primitive operation _Size if - the expression is known to statically have the tag of its type. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment. - -2023-01-05 Ronan Desplanques <desplanques@adacore.com> - - * sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for - warning about use of parentheses for array aggregates. - -2023-01-05 Javier Miranda <miranda@adacore.com> - - * scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket) - (Tok_Left_Interpolated_String): Placed in no category since they - don't fit well in the existing categories. Fix typo in comment. - (Inside_Interpolated_String_Literal): New scan state variable. - * scng.adb (Slit): Scan interpolated string literals, - continuations of interpolated string literals and escaped - characters found in interpolated string literals. - (Scan): Handle consecutive interpolated expressions. Handle ending - delimiter placed immediately after an interpolated expression. - Handle string literal placed after interpolated expression. Handle - left and right curly brackets; when extensions are not allowed - they are treated as left and right paren; when extensions are - allowed they are handled as delimiters of interpolated string - literals. - * sinfo.ads (N_Interpolated_String_Literal): New node. - * gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define - N_String_Literal node. - * gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as - concrete node type. - * par-ch2.adb (P_Interpolated_String_Literal): New subprogram. - * par-ch4.adb (P_Simple_Expression): Handle '}' as expression - terminator when scanning an interpolated expression; disable error - recovery machinery for binary operator when we are processing an - interpolated string literal and reach the expression terminator - '}'. - (P_Primary): Call P_Interpolated_String_Literal when the opening - interpolated-string-literal delimiter is found (that is, the left - curly bracket '{'). - * par-tchk.adb (T_Right_Curly_Bracket): New subprogram. - * par.adb (P_Interpolated_String_Literal): New declaration. - (T_Right_Curly_Bracket): New declaration. - * sem.adb (Analyze): Call Analyze_Interpolated_String_Literal. - * sem_ch2.ads (Analyze_Interpolated_String_Literal): New - subprogram - * sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise. - * sem_util.adb (Is_User_Defined_Literal): Complete mapping of - literal aspects adding that interpolated string literals have no - correspondence with any aspect. - * sem_res.adb (Resolve_Interpolated_String_Literal): New - subprogram. - (Has_Applicable_User_Defined_Literal): Complete mapping of literal - aspects adding that interpolated string literals have no - correspondency with any aspect. - * expander.adb (Expand): Add call to - Expand_N_Interpolated_String_Literal. - * exp_util.adb (Insert_Actions): Handle - N_Interpolated_String_Literal nodes; that is, continue climbing. - * exp_ch2.ads (Expand_N_Interpolated_String_Literal): New - subprogram. - * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise. - * exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing - conversion to force dispatching call. Required to handle calls to - descendants. - (Build_String_Put_Image_Call): Do not output string delimiters - when the put_image call is part of an interpolated string literal. - * rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces. - * sprint.adb (Sprint_Node): Output interpolated string contents. - * libgnat/a-stbubo.adb (Get_UTF_8): Add default value for - Trim_Leading_White_Spaces component in aggregate. - (Buffer_Type_Implementation): Update Trim_Leading_White_Spaces. - * libgnat/a-stbuun.adb (Get_UTF_8): Likewise. - (Buffer_Type_Implementation): Likewise. - * libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram. - (Trim_Leading_Spaces): New subprogram. - (Root_Buffer_Type): Adding Trim_Leading_While_Spaces component. - * libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New - subprogram. - (Trim_Leading_Space): New subprogram. - (Put_UTF_8): Handle Trim_Leading_White_Spaces. - (New_Line): Likewise. - * libgnat/s-putima.ads (Put_Image_String): Adding formal - (with_delimiters). - (Put_Image_Wide_String): Likewise. - (Put_Image_Wide_Wide_String): Likewise. - * libgnat/s-putima.adb (Put_Image_String): Adding support for new - formal. - (Put_Image_Wide_String): Likewise. - (Put_Image_Wide_Wide_String): Likewise. - -2023-01-05 Joao Azevedo <azevedo@adacore.com> - - * doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout - switch and update legacy switches. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * freeze.adb (Freeze_Entity): For the purpose of deciding whether to - freeze an entity coming from an outer scope in an inner scope, treat - the internal subprogram generated because of post-conditions as also - coming from source if the original subprogram itself does. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an - extended return statement in all cases. - (Expand_Subprogram_Contract): Adjust comment. - -2023-01-05 Ronan Desplanques <desplanques@adacore.com> - - * libgnat/g-forstr.adb (F_Kind): Rename enumeration literal. - (P_Flt_Format): Adjust handling of "%g". - (Determine_Notation_And_Aft): New procedure. - (Decimal_Exponent): New function. - (Increment_Integral_Part): New procedure. - (Remove_Extraneous_Decimal_Digit): New procedure. - (Trim_Fractional_Part): New procedure. - * libgnat/g-forstr.ads: Change description of "%g" specifier. - -2023-01-05 Marc Poulhiès <poulhies@adacore.com> - - * sem_ch12.adb (Instantiate_Package_Body): Correctly find the - parent instance to place on the scope stack. - -2023-01-05 Justin Squirek <squirek@adacore.com> - - * sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually - resetting the entity field of a non-prefixed discriminant - reference. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): New local variable used - throughout instead of testing Is_Special_Return_Object every time. - Do not rename an OK_To_Rename object for a special return object. - * exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation - if the result is allocated on the secondary stack. - -2023-01-05 Steve Baird <baird@adacore.com> - - * sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma - function to handle case where the pragma's parent is an - N_Aspect_Specification node. In analyzing a Discard_Names pragma, - do not assume that a nonzero number of arguments implies that the - pragma is not a configuration pragma; that assumption only holds - for legal programs. - -2023-01-05 Bob Duff <duff@adacore.com> - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: - Add RM references. - * gnat_ugn.texi: Regenerate. - -2023-01-05 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch3.adb (Expand_N_Object_Declaration): For a special return - object of an interface type that is not inherently limited, make - a call to the Adjust primitive after doing the copy. For a special - return object of a non-class-wide type initialized by a function - call, use a direct renaming only if the object doing the capture - is flagged by Is_Related_To_Func_Return. For a special return - object using a direct renaming, reassign the tag, if need be. - * exp_ch6.adb (Expand_Simple_Function_Return): Fix comment. - * exp_util.adb (Is_Related_To_Func_Return): Accept both regular and - renaming object declarations for return objects. - -2023-01-05 Bob Duff <duff@adacore.com> - - * sem_ch5.adb (Analyze_Assignment): Fix the bug by checking - Original_Node. The renaming might be elsewhere, but the (original) - reference is right here. - * errout.adb: Remove pragma Unreferenced which was added because - of the above bug. - * einfo.ads: Misc cleanup. - * lib.adb: Likewise. - * lib.ads: Likewise. - -2023-01-03 Ghjuvan Lacambre <lacambre@adacore.com> - - * errout.adb (Write_JSON_Span): Escape subprogram name. - -2023-01-03 Ghjuvan Lacambre <lacambre@adacore.com> - - * output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol. - -2023-01-03 Ronan Desplanques <desplanques@adacore.com> - - * libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling. - -2023-01-03 Ronan Desplanques <desplanques@adacore.com> - - * libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug. - -2023-01-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a - captured function call also verifies Is_Related_To_Func_Return. - Do not generate an actual subtype for special return objects. - * exp_util.ads (Is_Related_To_Func_Return): Add commentary. - -2023-01-03 Ronan Desplanques <desplanques@adacore.com> - - * libgnat/g-forstr.adb - (Advance_And_Accumulate_Until_Next_Specifier): New procedure. - ("-"): Replace inline code with call to - Advance_And_Accumulate_Until_Next_Specifier. - (Next_Format): likewise. - -2023-01-03 Eric Botcazou <ebotcazou@adacore.com> - - * checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference): - Return false for artificial dereferences generated by the expander. - -2023-01-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment. - * sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref - on functions with foreign convention. - -2023-01-03 Marc Poulhiès <poulhies@adacore.com> - - * exp_aggr.adb (Build_Assignment_With_Temporary): New. - (Expand_Array_Aggregate): Tune backend optimization - and insert a temporary in the case of an access with - Designated_Storage_Model aspect. - (Convert_Array_Aggr_In_Allocator): Likewise. - -2023-01-03 Eric Botcazou <ebotcazou@adacore.com> - - * sem_res.adb (Resolve_Membership_Op): Adjust again latest change. - -2023-01-03 Eric Botcazou <ebotcazou@adacore.com> - - * sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment. - * sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return - false for more artificial dereferences generated by the expander. - (Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally - in -gnatD mode. - * exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the - Is_Aliased flag. - -2023-01-03 Joel Brobecker <brobecker@adacore.com> - - * doc/gnat_ugn/platform_specific_information.rst - (_Platform_Specific_Information): Minor rewording of intro text. - * gnat_ugn.texi: Regenerate. - -2023-01-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_util.ads (Is_Captured_Function_Call): Declare. - * exp_util.adb (Is_Captured_Function_Call): New predicate. - * exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a - rewritten function call as the initializing expression. - * exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a - rewritten function call as the returned expression. - -2023-01-03 Bob Duff <duff@adacore.com> - - * exp_util.adb (Integer_Type_For): Assertion and comment. - (Small_Integer_Type_For): Remove some code and call - Integer_Type_For instead. - * sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..." - seems overly pedantic here. - * exp_attr.adb (Succ, Pred): Clean up: make the code as similar as - possible. - * exp_ch4.adb: Minor: named notation. - -2023-01-03 Javier Miranda <miranda@adacore.com> - - * ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may - appear within the class-wide precondition of a helper subprogram. - This context is treated as suitable because it was already - verified when we were analyzing the original class-wide - precondition. - -2023-01-03 Eric Botcazou <ebotcazou@adacore.com> - - * exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the - ancestor type for a derived array type. - * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the - common processing done on representation items. - For Default_Component_Value and Default_Value, look into the first - subtype to find out the representation items. - -2023-01-02 Iain Sandoe <iain@sandoe.co.uk> - - PR ada/108202 - * gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS): - Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and - -static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered - out for other hosts). - -2023-01-02 Jakub Jelinek <jakub@redhat.com> - - * gnat_ugn.texi: Bump @copying's copyright year. - * gnat_rm.texi: Likewise. - -Copyright (C) 2023 Free Software Foundation, Inc. +Copyright (C) 2024 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/ada/ChangeLog-2023 b/gcc/ada/ChangeLog-2023 new file mode 100644 index 0000000..d1a3b80 --- /dev/null +++ b/gcc/ada/ChangeLog-2023 @@ -0,0 +1,6978 @@ +2023-12-19 Marc Poulhiès <poulhies@adacore.com> + + * gcc-interface/Make-lang.in (ada.html, ada.install-html): Add. + +2023-12-19 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch3.adb (Analyze_Subtype_Declaration): Remove a short-circuit + for subtypes without aspects when it comes to predicates. + * sem_util.adb (Inherit_Predicate_Flags): Deal with private subtypes + whose full view is an Itype. + +2023-12-19 Viljar Indus <indus@adacore.com> + + * sem_ch13.adb (Valid_Default_Iterator): Check all interfaces for + valid iterator type. Also improve error reporting. + +2023-12-19 Gary Dismukes <dismukes@adacore.com> + + * sem_aggr.adb (Resolve_Container_Aggregate): In the Add_Named + case, issue an error if the container aggregate is written as a + positional aggregate, since such an aggregate must have named + associations. + +2023-12-19 Sheri Bernstein <bernstein@adacore.com> + + * libgnat/a-comlin.adb (Argument_Count): Rewrite code so there is + only one return, to remove Improper_Returns violation. + (Command_Name): Add pragma to exempt Improper_Returns violation. + +2023-12-19 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Expand_Ctrl_Function_Call): Rework last comment. + +2023-12-19 Gary Dismukes <dismukes@adacore.com> + + * sem_aggr.adb (Resolve_Iterated_Association): Call + Preanalyze_And_Resolve instead of Analyze_And_Resolve on a key + expression of an iterated association. + +2023-12-19 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch9.adb, sem_ch10.adb, sem_util.adb: Fix comments. + +2023-12-19 Piotr Trojanek <trojanek@adacore.com> + + * sinput.adb, sinput.ads (Get_Logical_Line_Number_Img): Remove. + +2023-12-19 Patrick Bernardi <bernardi@adacore.com> + + * bindgen.adb (Command_Line_Used): New object. + (Gen_Main): Only generate references to symbols used by + Ada.Command_Line if the package is used by the partition. + (Gen_Output_File_Ada): Ditto. + (Resolve_Binder_Options): Check if Ada.Command_Line is in the + closure of the partition. + +2023-12-19 Vasiliy Fofanov <fofanov@adacore.com> + + * libgnat/i-cstrin.adb (Value): Optimize. + +2023-12-19 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Update comment + and body. + +2023-12-19 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Is_Constr_Subt_For_UN_Aliased): Rename into... + (Is_Constr_Array_Subt_With_Bounds): ...this. + * exp_ch3.adb (Expand_N_Object_Declaration): Adjust to above + renaming and remove now redundant test. + * sem_ch3.adb (Analyze_Object_Declaration): Likewise, but set + Is_Constr_Array_Subt_With_Bounds only on arrays. + * gen_il-fields.ads (Opt_Field_Enum): Apply same renaming. + * gen_il-gen-gen_entities.adb (Entity_Kind): Likewise. + * gen_il-internals.adb (Image): Remove specific processing for + Is_Constr_Subt_For_UN_Aliased. + * treepr.adb (Image): Likewise. + * gcc-interface/decl.cc (gnat_to_gnu_entity): Adjust to renaming + and remove now redundant tests. + * gcc-interface/trans.cc (Identifier_to_gnu): Likewise. + (Call_to_gnu): Likewise. + +2023-12-19 Johannes Kliemann <kliemann@adacore.com> + + * libgnat/s-rident.ads: Remove No_Dynamic_Priorities from + Restricted_Tasking. + +2023-12-19 Patrick Bernardi <bernardi@adacore.com> + + * argv.c: Do not include adaint.h if LIGHT_RUNTIME is defined. + * bindgen.adb (Gen_Main): Simplify command line argument and exit + handling by requiring the runtime to always provide the required + symbols if command line argument and exit code is enabled. + * targparm.ads: Update comments to reflect changes to gnatbind. + +2023-12-19 Ronan Desplanques <desplanques@adacore.com> + Javier Miranda <miranda@adacore.com> + + * exp_aggr.adb (Initialize_Component): Use corresponding record + types of concurrent types. + * exp_util.ads (Make_Tag_Assignment_From_Type): Add precondition + and extend documentation. + +2023-12-19 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Is_Ignored_Transient): Rename into... + (Is_Ignored_For_Finalization): ...this. + * gen_il-fields.ads (Opt_Field_Enum): Adjust to above renaming. + * gen_il-gen-gen_entities.adb (Object_Kind): Likewise. + * exp_aggr.adb (Expand_Array_Aggregate): Likewise. + * exp_ch7.adb (Build_Finalizer.Process_Declarations): Likewise. + * exp_util.adb (Requires_Cleanup_Actions): Likewise. + * exp_ch4.adb (Expand_N_If_Expression): Move down declaration of + variable Optimize_Return_Stmt. + (Process_Transient_In_Expression): Turn procedure into a child of... + (Process_Transients_In_Expression): ...this procedure. + * exp_ch6.adb (Expand_Ctrl_Function_Call): Remove obsolete setting + of Is_Ignored_Transient flag on the temporary if within a dependent + expression of a conditional expression. + +2023-12-19 Yannick Moy <moy@adacore.com> + + * exp_spark.adb (Expand_SPARK_N_Aggregate): New procedure for the + special expansion. + (Expand_SPARK): Call the new expansion procedure. + * sem_util.adb (Is_Container_Aggregate): Implement missing test. + +2023-12-19 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Copy_Generic_Node): Add guard for Ancestor_Type. + +2023-12-19 Eric Botcazou <ebotcazou@adacore.com> + + * gen_il-fields.ads (Aggregate_Bounds): Rename to + Aggregate_Bounds_Or_Ancestor_Type. + * gen_il-gen-gen_nodes.adb (Aggregate_Bounds): Likewise. + * sem_aggr.adb (Resolve_Record_Aggregate): Remove obsolete bypass. + * sem_ch12.adb (Check_Generic_Actuals): Add decoration. + (Copy_Generic_Node): For an extension aggregate, restore only the + full view, if any. For a full aggregate, restore the full view as + well as that of its Ancestor_Type, if any, and up to the root type. + (Save_References_In_Aggregate): For a full aggregate of a local + derived tagged type with a global ancestor, set Ancestor_Type to + this ancestor. For a full aggregate of a global derived tagged + type, set Ancestor_Type to the parent type. + * sinfo-utils.ads (Aggregate_Bounds): New function renaming. + (Ancestor_Type): Likewise. + (Set_Aggregate_Bounds): New procedure renaming. + (Set_Ancestor_Type): Likewise. + * sinfo.ads (Ancestor_Type): Document new field. + +2023-12-19 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_N_If_Expression): Also add missing calls to + Process_Transients_In_Expression on the code path implementing the + special optimization for an unidimensional array type and + dependent expressions with static bounds. + +2023-12-19 Steve Baird <baird@adacore.com> + + * sem_ch8.adb (Is_Actual_Subp_Of_Inst): After calling + Enclosing_Declaration, add a check for the case where one more + Parent call is needed to get the enclosing declaration. + +2023-12-19 Ronan Desplanques <desplanques@adacore.com> + + * sem_util.adb (Build_Default_Subtype_OK): Relax + known-at-compile-time requirement. + * sem_util.ads (Build_Default_Subtype_OK): Bring documentation + comment up-to-date. + +2023-12-19 Yannick Moy <moy@adacore.com> + + * doc/gnat_rm/implementation_defined_pragmas.rst: Fix doc for + pragma Ignore_Pragma, in the case where it follows another + configuration pragma that it names, which causes the preceding + pragma to be ignored after parsing. + * errout.adb (Should_Ignore_Pragma_SPARK_Mode): New query. + (SPARK_Msg_N): Do nothing if SPARK_Mode is ignored. + (SPARK_Msg_NE): Same. + * gnat-style.texi: Regenerate. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-12-19 Yannick Moy <moy@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component): Check correct mode + variable for GNATprove. + * sem_prag.adb (Refined_State): Call SPARK_Msg_NE which checks + value of SPARK_Mode before issuing a message. + * sem_res.adb (Resolve_Entity_Name): Remove legality check for + SPARK RM 6.1.9(1), moved to GNATprove. + +2023-12-19 Steve Baird <baird@adacore.com> + + * sem_ch12.adb (Check_Generic_Child_Unit): Introduce a new nested + function Adjusted_Inst_Par_Ekind to cope with cases where either + a- the visibility of a compiler-generated renaming is incorrect; + or b- we are inside of a generic parent unit G1 that has a child + unit G1.G2, so instantiation of G1.G2 is permitted. + +2023-12-19 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Process_If_Case_Statements): Rename into... + (Process_Transients_In_Expression): ...this and beef up comment. + (Expand_N_Case_Expression): Call Process_Transients_In_Expression + unconditionally on the list of actions of each alternative. + (Expand_N_Expression_With_Actions): Do not deal with actions in + nested subexpressions, but call Process_Transients_In_Expression + on the list of actions only. + (Expand_N_If_Expression): Adjust to above renaming. Add missing + calls to Process_Transients_In_Expression in the case when an EWA + is not used because of Minimize_Expression_With_Actions. + +2023-12-16 Andrew Carlotti <andrew.carlotti@arm.com> + + * gcc-interface/utils.cc (attr_target_exclusions): Make + target/target_clones exclusion target-dependent. + (attr_target_clones_exclusions): Ditto. + +2023-12-16 Andrew Carlotti <andrew.carlotti@arm.com> + + * gcc-interface/utils.cc (attr_noinline_exclusions): New. + (attr_always_inline_exclusions): Ditto. + (attr_target_exclusions): Ditto. + (attr_target_clones_exclusions): Ditto. + (gnat_internal_attribute_table): Add new exclusion lists. + (handle_noinline_attribute): Remove custom exclusion handling. + (handle_target_attribute): Ditto. + (handle_target_clones_attribute): Ditto. + +2023-12-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * terminals.c [__FreeBSD__]: Include <libutil.h>. + (TABDLY): Only define if missing. + +2023-12-06 Alexandre Oliva <oliva@adacore.com> + + * gcc-interface/trans.cc: Include ipa-strub.h. + (gigi): Make internal decls for targets of compiler-generated + calls strub-callable too. + (build_raise_check): Likewise. + * gcc-interface/utils.cc: Include ipa-strub.h. + (handle_strub_attribute): New. + (gnat_internal_attribute_table): Add strub. + +2023-12-05 Richard Sandiford <richard.sandiford@arm.com> + + * gcc-interface/utils.cc (gnat_internal_attribute_table): Add extra + braces to work around PR 16333 in older compilers. + +2023-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * adaint.c: Include <signal.h>. + * expect.c: Include <string.h>. + +2023-12-02 Richard Sandiford <richard.sandiford@arm.com> + + * gcc-interface/gigi.h (gnat_internal_attribute_table): Change + type to scoped_attribute_specs. + * gcc-interface/utils.cc (gnat_internal_attribute_table): Likewise, + using... + (gnat_internal_attributes): ...this as the underlying array. + * gcc-interface/misc.cc (gnat_attribute_table): New global. + (LANG_HOOKS_ATTRIBUTE_TABLE): Use it. + +2023-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * adaint.c [__APPLE__]: Include <signal.h>, <sys/time.h>. + * terminals.c [!_WIN32]: Include <signal.h>. + [__APPLE__]: Include <util.h>. + Fix typos. + +2023-11-30 Eric Botcazou <ebotcazou@adacore.com> + + * checks.ads (Apply_Predicate_Check): Add Deref boolean parameter. + * checks.adb (Apply_Predicate_Check): Revert latest change. Use + Loc local variable to hold the source location. Use a common code + path for the generic processing and make a dereference if Deref is + True. + * exp_ch4.adb (Expand_Allocator_Expression): Compute Aggr_In_Place + earlier. If it is true, do not call Apply_Predicate_Check on the + expression on entry but on the temporary on exit with a + dereference. + * sem_res.adb (Resolve_Actuals): Add explicit parameter + association in call to Apply_Predicate_Check. + +2023-11-30 Steve Baird <baird@adacore.com> + + * exp_put_image.adb (Put_Image_Enabled): Return True in more + cases. In particular, when testing to see if a type occurs in a + predefined unit, test the type's code unit + (obtained by calling Get_Code_Unit). In the case of type within a + user-defined instance of a predefined generic, Is_Predefined_Unit + will return True for the type and False for the type's code unit. + +2023-11-30 Yannick Moy <moy@adacore.com> + + * 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-11-30 Sheri Bernstein <bernstein@adacore.com> + + * libgnat/i-cstrin.adb (Free): Rewrite code so there is only one + return, to remove Improper_Returns violation. + (Position_Of_Nul): Add pragma to exempt Improper_Returns + violation. + (To_Chars_Ptr): Likewise. + (Value): Likewise + +2023-11-30 Viljar Indus <indus@adacore.com> + + * sem_prag.adb (Validate_Compile_Time_Warning_Errors): Avoid + checking compile time warnings and errors if backend has not been + activated. + +2023-11-30 Yannick Moy <moy@adacore.com> + + * checks.adb, exp_aggr.adb, exp_ch4.ads, exp_ch5.adb, + exp_util.adb, exp_util.ads, inline.adb, sem_ch13.adb, + sem_ch6.adb, sem_ch8.adb, sem_prag.adb, sem_util.ads: Fix comments + and typos. + +2023-11-30 Javier Miranda <miranda@adacore.com> + + * freeze.adb (Declared_In_Expanded_Body): New subprogram. + (In_Expanded_Body): Minor code cleanup. + (Freeze_Expression): Code cleanup plus factorize in a new function + the code that identifies entities declared in the body of expander + generated subprograms, since such case must be checked also for + other node kinds when climbing the tree to locate the place to + insert the freezing node. + +2023-11-30 Steve Baird <baird@adacore.com> + + * sem_ch8.adb (Find_Direct_Name): In the case of a resolving a + name that occurs within an instantiation, add code to detect and + filter out unwanted candidate resolutions. The filtering is + performed via a call to Remove_Interp. + +2023-11-30 Steve Baird <baird@adacore.com> + + * libgnarl/a-rttiev.ads: add a comment + +2023-11-30 Steve Baird <baird@adacore.com> + + * sem_ch12.adb (Validate_Discriminated_Formal_Type): Replace + Entity_Id equality test with a call to Subtypes_Match. Distinct + subtypes which are statically matching should pass this test. + (Check_Discriminated_Formal): Replace Entity_Id equality test with + a call to Subtypes_Statically_Match (preceded by a check that the + preconditions for the call are satisfied). + +2023-11-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_Allocator_Expression): Add Special_Return + boolean constant to hold the value of For_Special_Return_Object + for the allocator and use it throughout the procedure. + +2023-11-30 Eric Botcazou <ebotcazou@adacore.com> + + * checks.adb (Apply_Predicate_Check): Also deal specifically with + an expression that is a qualified aggregate in an allocator. + +2023-11-30 Steve Baird <baird@adacore.com> + + * sem_ch4.adb (Constant_Indexing_OK): As a temporary stopgap, + return False in the case of an unanalyzed prefixed-view call. + +2023-11-28 Simon Wright <simon@pushface.org> + + PR ada/111909 + * adaint.c + (__gnat_get_file_names_case_sensitive): Split out the __APPLE__ + check and remove the checks for __arm__, __arm64__. For Apple, + file names are by default case-insensitive unless TARGET_OS_IOS is + set. + +2023-11-28 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (annotate_value): Apply the same processing + for parameters as for variables. + +2023-11-28 Marc Poulhiès <poulhies@adacore.com> + + * gcc-interface/utils2.cc (build_simple_component_ref): Add + comment on assertion. + +2023-11-28 Steve Baird <baird@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): In the case of a + Reduce attribute reference, fix bugs in initializing Accum_Typ. + The previous version was incorrect in the case where E1 refers to + the first of multiple possible overload resolution candidates and + that candidate does not turn out to be the right one. The previous + version also had code to compute Accum_Typ via a different method + if the initial computation turned out to yield a universal numeric + type. Delete that initial computation and use the second method in + all cases. + +2023-11-28 Gary Dismukes <dismukes@adacore.com> + + * sem_aggr.adb (Add_Discriminant_Values): Remove this procedure. + (Propagate_Discriminants): Remove this procedure. + (Resolve_Record_Aggregate): Remove code (the Capture_Discriminants + block statement) related to propagating discriminants and + generating initializations for subcomponents of a + discriminant-dependent box-defaulted subcomponent of a nonprivate + record type with discriminants, and handle all top-level + components that have a non-null base init proc directly, by + calling Add_Association with "Is_Box_Present => True". Also, + combine that elsif clause with the immediately preceding elsif + clause, since they now both contain the same statement (calls to + Add_Association with the same actuals). + +2023-11-28 Bob Duff <duff@adacore.com> + + * sem_util.adb (Check_Result_And_Post_State): Disable this when + we're in an instance. Misc cleanup. + +2023-11-28 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.ads (Expand_Cleanup_Actions): Move declaration to the + Finalization Management section. + * exp_ch7.adb (Transient Scope Management): Move description down to + after that of the general finalization and make a few changes. + (Insert_Actions_In_Scope_Around): Call Process_Transients_In_Scope + only if cleanups are being handled. + (Process_Transients_In_Scope): Remove redundant test on Clean. + * exp_util.ads (Within_Case_Or_If_Expression): Adjust description. + * exp_util.adb (Within_Case_Or_If_Expression): Only return true if + within the dependent expressions of the conditional expressions. + +2023-11-28 Eric Botcazou <ebotcazou@adacore.com> + + * doc/gnat_rm/the_implementation_of_standard_i_o.rst: Fix a couple + occurrences of incorrect quoting. + * gnat_rm.texi: Regenerate. + +2023-11-28 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Build_Flag_For_Function): New function made up of the + code building the special flag for return object present... + (Expand_N_Extended_Return_Statement): ...in there. Replace the code + with a call to Build_Flag_For_Function. Add assertion for the flag. + (Expand_Non_Function_Return): For a nested return, if the return + object needs finalization actions, update the special flag. + +2023-11-28 Sebastian Poeplau <poeplau@adacore.com> + + * einfo-utils.ads, einfo-utils.adb (Is_Address_Compatible_Type): + New function. + +2023-11-28 Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.adb (Expand_Container_Aggregate): Apply a conversion to the + size temp object passed as the second actual parameter on the call to + the New_Indexed_Subp function, to convert it to the index type of the + container type (taken from the first formal parameter of the function). + +2023-11-28 Eric Botcazou <ebotcazou@adacore.com> + + * sem_attr.adb (Eval_Attribute): Do not proceed in a spec expression + for nonstatic representation attributes of a scalar subtype when the + subtype is not frozen. + * sem_ch3.adb (Analyze_Object_Declaration): Do not freeze the type + of the object in a spec expression. + +2023-11-28 Richard Kenner <kenner@adacore.com> + + * exp_unst.adb (Note_Uplevel_Bound): Treat + N_Unchecked_Type_Conversion like N_Type_Conversion. + +2023-11-28 Yannick Moy <moy@adacore.com> + + * libgnat/s-imgboo.adb: Remove with_clause now in spec file. + * libgnat/s-imgboo.ads: Remove dependency on System.Val_Bool. + (Image_Boolean): Replace call to Value_Boolean by passing value V + to updated ghost function Is_Boolean_Image_Ghost. + * libgnat/s-valboo.ads (Is_Boolean_Image_Ghost): Move to other + unit. + (Value_Boolean.): Update precondition. + * libgnat/s-valspe.ads (Is_Boolean_Image_Ghost): Move here. Add + new parameter for expected boolean value. + +2023-11-28 Tucker Taft <taft@adacore.com> + + * sem_scil.adb: Handle discriminant specification. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (Loop_Statement_to_gnu): Always use the + simpler form for a loop with a boolean iteration variable. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>: Put + the alignment directly on the type in the constrained case too. + * gcc-interface/utils.cc (maybe_pad_type): For an array type, take + the alignment of the element type as the original alignment. + +2023-11-21 Gary Dismukes <dismukes@adacore.com> + + * sem_aggr.adb (Resolve_Container_Aggregate): In the case where Comp + is an N_Iterated_Component_Association, pick up Discrete_Choices rather + than Choices. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Build_Finalizer): For package specs and bodies, push + and pop the specs onto the scope stack only once. + * inline.adb (Cleanup_Scopes): Call Pop_Scope instead of End_Scope. + +2023-11-21 Steve Baird <baird@adacore.com> + + * sem_aggr.adb (Resolve_Delta_Array_Aggregate): In the case of a + deep delta choice, the expected type for the expression will + typically not be the component type of the array type, so a call + to Analyze_And_Resolve that assumes otherwise would be an error. + It turns out that such a call, while wrong, is usually harmless + because the expression has already been marked as analyzed. This + doesn't work if the aggregate occurs in a postcondition and, in + any case, we don't want to rely on this. So do not perform the + call in the deep case. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * sem_warn.adb (Check_References.Type_OK_For_No_Value_Assigned): + New predicate. + (Check_References): For Warn_On_No_Value_Assigned, use the same test + on the type in the address-not-taken and default cases. + +2023-11-21 Gary Dismukes <dismukes@adacore.com> + + * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Retrieve the + iteration type's iteration interface progenitor via + Iterator_Interface_Ancestor, in the case of both "in" and "of" + iterators. Narrow the scope of Pack, so it's declared and + initialized only within the code related to "of" iterators, and + change its name to Cont_Type_Pack. Adjust comments. + * sem_ch5.adb (Get_Cursor_Type): In the case of a derived type, + retrieve the iteration type's iterator interface progenitor (if it + exists) via Iterator_Interface_Ancestor rather than assuming that + the parent type is the interface progenitor. + * sem_util.ads (Iterator_Interface_Ancestor): New function. + * sem_util.adb (Iterator_Interface_Ancestor): New function + returning a type's associated iterator interface type, if any, by + collecting and traversing the type's interfaces. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * sem_attr.adb (Resolve_Attribute) <Attribute_Address>: Remove the + bypass for prefixes with task type. + +2023-11-21 Viljar Indus <indus@adacore.com> + + * par.adb: Restore Style_Checks after parsing each unit. + +2023-11-21 Yannick Moy <moy@adacore.com> + + * exp_spark.adb (Expand_SPARK_Delta_Or_Aggregate): Fix type. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Analyze_Package_Instantiation): Test Expander_Active + to detect generic contexts for the generation of cleanup actions. + +2023-11-21 Justin Squirek <squirek@adacore.com> + + * libgnat/g-catiio.adb (Value): Modify conditionals to use 'Last + instead of 'Length + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.adb (Null_Status): Deal with unchecked type conversions. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Convert_To_Assignments): Do not treat initialization + procedures specially when it comes to creating a transient scope. + * exp_ch7.adb (Build_Finalizer.Process_Declarations): Likewise. + * exp_util.adb (Requires_Cleanup_Actions): Likewise. + +2023-11-21 Doug Rupp <rupp@adacore.com> + + * s-oscons-tmplt.c: #define CLOCK_RT_Ada "CLOCK_MONOTONIC" for + __vxworks + +2023-11-21 Steve Baird <baird@adacore.com> + + * sem_aggr.adb: Replace "not Present (...)" call with "No (...)" call. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * gen_il-fields.ads (Opt_Field_Enum): Remove Is_Finalization_Wrapper + * gen_il-gen-gen_nodes.adb (N_Block_Statement): Likewise. + * sinfo.ads (Is_Finalization_Wrapper): Delete. + * exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust comment + and remove obsolete code testing the Is_Finalization_Wrapper flag. + * exp_util.adb (Requires_Cleanup_Actions): Likewise. + +2023-11-21 Doug Rupp <rupp@adacore.com> + + * libgnat/libada.gpr: Revise section 1 + +2023-11-21 Steve Baird <baird@adacore.com> + + * par.adb: Add new Boolean variable Inside_Delta_Aggregate. + * par-ch4.adb (P_Simple_Expression): Add support for a deep delta + aggregate choice. We turn a sequence of selectors into a peculiar + tree. We build a component (Indexed or Selected) whose prefix is + another such component, etc. The leftmost prefix at the bottom of + the tree has a "name" which is the first selector, without any + further prefix. For something like "with delta (1)(2) => 3" where + the type of the aggregate is an array of arrays of integers, we'll + build an N_Indexed_Component whose prefix is an integer literal 1. + This is consistent with the trees built for "regular" + (Ada-defined) delta aggregates. + * sem_aggr.adb (Is_Deep_Choice, Is_Root_Prefix_Of_Deep_Choice): + New queries. + (Resolve_Deep_Delta_Assoc): new procedure. + (Resolve_Delta_Array_Aggregate): call Resolve_Deep_Delta_Assoc in + deep case. + (Resolve_Delta_Record_Aggregate): call Resolve_Deep_Delta_Assoc in + deep case. + (Get_Component_Type): new function replaces old Get_Component + function. + * sem_aggr.ads (Is_Deep_Choice, Is_Root_Prefix_Of_Deep_Choice): + New queries. + * exp_aggr.adb (Expand_Delta_Array_Aggregate): add nested function + Make_Array_Delta_Assignment_LHS; call it instead of + Make_Indexed_Component. + (Expand_Delta_Record_Aggregate): add nested function + Make_Record_Delta_Assignment_LHS; call it instead of + Make_Selected_Component. + * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Insert range + checks for indexes in deep delta aggregates. + +2023-11-21 Ronan Desplanques <desplanques@adacore.com> + + * adaint.c (__gnat_unlink): Add new parameter and fix text + conversion on Windows. Remove unnecessary curly braces. + * adaint.h (__gnat_unlink): Add new parameter. + * libgnat/i-cstrea.ads (unlink): Adapt to __gnat_unlink signature + change. + * libgnat/i-cstrea.adb (unlink): New Subprogram definition. + * libgnat/s-crtl.ads (unlink): Adapt to __gnat_unlink signature + change. + * libgnat/s-fileio.adb (Delete): Pass encoding argument to unlink. + +2023-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Save_Global_References.Set_Global_Type): Beef up + comment about the setting of the full view. + * sem_res.adb (Resolve_Actuals.Insert_Default): Add another bypass + for the case of a generic context. + +2023-11-21 Marc Poulhiès <poulhies@adacore.com> + + * doc/gnat_ugn/the_gnat_compilation_model.rst: Move index + directives. + * gnat_ugn.texi: Regenerate. + +2023-11-21 Pierre-Marie de Rodat <derodat@adacore.com> + + * par_sco.adb (Process_Decisions)<Process_Node>: Skip aspect + specifications. + +2023-11-21 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/libgnat_common.gpr: Unconditionally pass -gnatg. + +2023-11-21 Marc Poulhiès <poulhies@adacore.com> + + * exp_util.ads: Typo fix. + +2023-11-16 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Also create a + TYPE_DECL for the return type built for the CI/CO mechanism. + +2023-11-10 Andris Pavēnis <andris.pavenis@iki.fi> + + * expect.c (__gnat_waitpid): fix syntax errors + +2023-11-09 Simon Wright <simon@pushface.org> + + PR ada/111813 + * libgnat/a-calfor.adb (Value (2)): Allow values of + parameter Elapsed_Time greater than or equal to 24 hours, by doing + the hour calculations in Natural rather than Hour_Number (0 .. + 23). Calculate the result directly rather than by using Seconds_Of + (whose Hour parameter is of type Hour_Number). + If an exception occurs of type Constraint_Error, re-raise it + rather than raising a new CE. + +2023-11-07 Joseph Myers <joseph@codesourcery.com> + + * gcc-interface/utils.cc (flag_isoc2x): Rename to flag_isoc23. + +2023-11-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Apply the + specific rewriting done for an aliased object with an unconstrained + array nominal subtype in the renaming case too. + +2023-11-07 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (gnat_gimplify_expr) <CALL_EXPR>: Delete. + +2023-11-07 Bob Duff <duff@adacore.com> + + * sem_ch13.ads (Set_Enum_Esize): Do not set alignment. + * sem_ch13.adb (Set_Enum_Esize): Do not set alignment. Archaeology + seems to show that this line of code dates from when "Alignment = + 0" meant "the Alignment is not known at compile time" and "the + Alignment is not yet known at compile time" as well as "the + Alignment is zero". In any case, it seems to be unnecessary, and + in this case harmful, because gigi would crash. Alignment_Clause + is set (because there is one), so gigi would query the Alignment, + but Alignment was destroyed. + +2023-11-07 Julien Bortolussi <bortolussi@adacore.com> + + * doc/share/conf.py: Changed the background color and the logo. + +2023-11-07 Eric Botcazou <ebotcazou@adacore.com> + + * gen_il-fields.ads (Opt_Field_Enum): Add Compare_Type. + * gen_il-gen-gen_nodes.adb (N_Op_Eq): Likewise. + (N_Op_Ge): Likewise. + (N_Op_Gt): Likewise. + (N_Op_Le): Likewise. + (N_Op_Lt): Likewise. + (N_Op_Ne): Likewise. + * sinfo.ads (Compare_Type): Document new field. + * sem_ch4.adb (Analyze_Comparison_Equality_Op): If the entity is + already present, set the Compare_Type on overloaded operands if it + is present on the node. + * sem_ch12.adb (Check_Private_View): Look into the Compare_Type + instead of the Etype for comparison operators. + (Copy_Generic_Node): Remove obsolete code for comparison + operators. + (Save_Global_References.Save_References): Do not walk into the + descendants of N_Implicit_Label_Declaration nodes. + (Save_Global_References.Set_Global_Type): Look into the + Compare_Type instead of the Etype for comparison operators. + * sem_res.adb (Resolve_Comparison_Op): Set Compare_Type. + (Resolve_Equality_Op): Likewise. + +2023-11-07 Ronan Desplanques <desplanques@adacore.com> + + * adaint.c (__gnat_file_time): Fix Windows version. + +2023-11-07 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Fold initialization + expression of Nominal_Subtype_Is_Constrained_Array constant into + the computation of Rewrite_As_Renaming and remove the constant. + Set it to True for an aliased array with unconstrained nominal + subtype if the subtype of the expression is also unconstrained. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_util.adb (Add_Own_DIC, Add_Own_Invariants): Store the aspect + expression in Expression_Copy. + +2023-11-07 Yannick Moy <moy@adacore.com> + + * exp_aggr.adb: Apply the renaming. + * exp_ch3.adb: Same. + * exp_ch4.adb: Same. + * exp_ch6.adb: Same. + * exp_ch7.adb: Same. + * exp_util.adb: Same. + * freeze.adb: Same. + * sem_aggr.adb: Same. + * sem_attr.adb: Same. + * sem_aux.adb: Alphabetize Is_Limited_Type. Rename. + * sem_aux.ads: Same. + * sem_ch3.adb: Apply the renaming. + * sem_ch6.adb: Same. + * sem_ch8.adb: Same. + * sem_prag.adb: Same. + * sem_res.adb: Same. + * sem_util.adb: Same. + +2023-11-07 Viljar Indus <indus@adacore.com> + + * aspects.adb (Exchange_Aspects): Removed. This method was + typically called after a Rewrite method. Now since the Rewrite + switches the aspects between the new and the old node it is no + longer needed. + (Has_Aspects): Converted to a utility method that performs the same + before as the previous Has_Aspects field did. Meaning it shows whether + a node actually has aspects or not. + (Copy_Aspects): New utility method that performs a deep copy of the + From nodes aspects. + (Aspect_Specfications): Removed. No longer needed. Replaced + by the primitive operation for the Aspect_Specification fields. + (Set_Aspect_Specifications): Likewise. + (Aspect_Specifications_Hash_Table): Remove the table and all the + utility methods for storing the old aspects. + * aspects.ads: Likewise. + * atree.adb (Copy_Separate_Tree): Remove custom code for aspects. + (New_Copy): Likewise. + (Replace): Likewise. + (Rewrite): Likewise. + * exp_ch3.adb (Expand_N_Object_Declaration): Keep the aspects from the old node. + * exp_ch6.adb (Validate_Subprogram_Calls): Previously aspects were ignored + because they were not on the tree. Explicitly ignore them here + when traversing the tree. + * exp_unst.adb (Build_Tables): Likewise + * gen_il-fields.ads: Remove Has_Aspects and add + Aspect_Specifications fields. + * gen_il-gen-gen_nodes.adb: Add Aspect_Specification fields + for all nodes that can have aspects. Additionally add + Expression_Copy for Aspect_Speficiations to avoid reusing + the Associated_Node for generic instantiation and aspect + analysis. + * ghost.adb (Remove_Ignored_Ghost_Node): Remove call to Remove_Aspects. + The rewritten node is a Null_Statement that cannot have aspects + and there is not anything to gain from removing them from the + Orignal_Node of N since it technically is not part of the active + tree. + * inline.adb (Process_Formals_In_Aspects): Simplify code for node traversal. + * par-ch13.adb: Avoid setting the parent explicitly for the + Aspect_Specifications list. This is done explicitly in the setter. + * par-ch6.adb: Likewise. + * par_sco.adb (Traverse_Aspects): Handle early return. + * sem_ch10.adb: Simplify code for Analyze_Aspect_Specifications. + * sem_ch11.adb: Likewise. + * sem_ch12.adb (Analyze_Formal_Derived_Interface_Type): Keep the aspects from + the orignal node after rewrite. + (Analyze_Formal_Derived_Type): Likewise. + (Analyze_Formal_Interface_Type): Likewise. + (Analyze_Formal_Object_Declaration): Simplify code for + Analyze_Aspect_Specifications. + (Analyze_Formal_Package_Declaration): Likewise. + (Analyze_Formal_Subprogram_Declaration): Likewise. + (Analyze_Formal_Type_Declaration): Likewise. + (Analyze_Generic_Package_Declaration): Remove Exchange_Aspects. + The new node already has the correct aspects after the rewrite. + Also simplify code for Analyze_Aspect_Specifications. + (Analyze_Generic_Subprogram_Declaration): Likewise. + (Analyze_Package_Instantiation): Simplify code for + Analyze_Aspect_Specifications. + (Build_Instance_Compilation_Unit_Nodes): Remove explicit copy of + aspects that is no longer needed. + (Save_References): Update the traversal code to handle + Aspect_Specifications in the tree. + (Copy_Generic_Node): Remove explicit copy for aspects. New_Copy + took care of that already. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add early return to simplify + code for its calls. Avoid reusing the Entity(Associated_Node) + field for storing the original expression. Instead use the + new Expression_Copy field since Entity(Associated_Node) is + also used in generic instantiation. + (Analyze_Aspects_On_Subprogram_Body_Or_Stub): Simlify call + to Analyze_Aspect_Specifications. + (Check_Aspect_At_End_Of_Declarations): Use Expression_Copy + instead of Entity. + (Check_Aspect_At_Freeze_Point): Likewise. + * sem_ch3.adb: Simplify calls to Analyze_Aspect_Specifications. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Simplify call to + Analyze_Aspect_Specifications. + (Analyze_Expression_Function): Keep the aspects from the + original node after a rewrite. + (Analyze_Generic_Subprogram_Body): Remove Exchange aspects + that is no longer needed. Simplify call to + Analyze_Aspect_Specifications. + (Analyze_Null_Procedure): Keep the aspects from the + original node after a rewrite. + (Analyze_Subprogram_Body_Helper): Simplify calls to + Analyze_Aspect_Specifications. + (Analyze_Subprogram_Declaration): Likewise. + * sem_ch7.adb (Analyze_Package_Body_Helper): Remove Exchange aspects + that is no longer needed. Simplify call to + Analyze_Aspect_Specifications. + (Analyze_Package_Declaration): Simplify call to + Analyze_Aspect_Specifications. + (Analyze_Private_Type_Declaration): Likewise. + * sem_ch8.adb: Simplify calls to + Analyze_Aspect_Specifications. + * sem_ch9.adb (Analyze_Entry_Body): Simplify call to + Analyze_Aspects_On_Subprogram_Body_Or_Stub. + (Analyze_Entry_Declaration): Simplify call to + Analyze_Aspect_Specifications. + (Analyze_Protected_Body): Likewise. + (Analyze_Protected_Type_Declaration): Likewise. + (Analyze_Single_Protected_Declaration): Keep the aspects from + the original node after a rewrite. Simplify call to + Analyze_Aspect_Specifications. + (Analyze_Single_Task_Declaration): Likewise. + (Analyze_Task_Body): Simplify call to + Analyze_Aspect_Specifications. + (Analyze_Task_Type_Declaration): Simplify calls to + Analyze_Aspect_Specifications. + * sem_dim.adb: Remove explicitly setting the parents + for the Aspect_Specification list. + * sem_disp.adb: Remove the with that is no longer + required since Aspect_Specifications is a node operation now. + * sem_util.adb (Copy_Node_With_Replacement): Remove explicit code for aspects. + * treepr.adb (Print_Field): Remove the version that was used for printing + aspects. + (Print_Node): Remove aspect specific code. + +2023-11-07 Eric Botcazou <ebotcazou@adacore.com> + + * gen_il-gen-gen_nodes.adb (N_Op_Boolean): Fix description. + * sem_ch4.adb (Analyze_Comparison_Equality_Op): Tidy up. + * sem_ch12.adb (Copy_Generic_Node): Use N_Op_Compare subtype. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch6.adb, exp_disp.adb, sem_ch13.adb, sem_ch3.adb: Fix newly + detected violations. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch3.adb, sem_ch4.adb, sem_eval.adb: Fix newly detected + violations. + +2023-11-07 Ronan Desplanques <desplanques@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix + -gnatwc documentation. + * gnat_ugn.texi: Regenerate. + +2023-11-07 Steve Baird <baird@adacore.com> + + * local_restrict.ads: A new package. Declares Local_Restriction + enumeration type and provides operations to check for local + restriction violations. + * local_restrict.adb: Corresponding package body. Replace "not + Present (X)" calls with "No (X)" calls. + * aspects.ads: Add a new enumeration elements, + Aspect_Local_Restrictions and Aspect_User_Aspect, to the Aspect_Id + enumeration type. Update Aspect_Id-indexed aggregates. Add nested + package User_Aspect_Support to manage two pieces of state. One is + a map from identifiers to User_Aspect_Definition pragmas (updated + when such a pragma is encountered). The other is an + access-to-subprogram variable that is introduced in order to keep + the bulk of semantics out of the closure of package Aspects while + allowing a call from aspects.adb to the sem_ch13 procedure that + analyzes a User_Aspect aspect specification. + * aspects.adb (Find_Aspect): Cope with a case of a block statement + with an empty parent. It is not clear whether this is papering + over a compiler bug. Add indirect call through the aforementioned + access-to-subprogram variable when Find_Aspect enounters an + unanalyzed User_Aspect aspect specification. If Find_Aspect is + called looking for aspect Foo, then a User_Aspect specification + might generate (during analysis) a Foo aspect specification. So + the Find_Aspect call needs to trigger that analysis if it has not + already taken place. Provide a body for package + User_Aspect_Support. Replace "not Present (X)" call with "No (X)" + call. + * freeze.adb (Freeze_Subprogram): Check local restriction + compatibility when a dispatching operation is overridden. + * par-prag.adb: Add support for parsing a User_Aspect_Definition + pragma. + * restrict.ads: We'd like to have the body of package Restrict + include a call to a procedure declared in package Local_Restrict. + Doing that in the obvious way pulls most of semantics into the + closure of package Restrict, and that turns out to cause problems. + So we introduce a level of indirection and instead call through an + access-to-subprogram value. In this unit, we declare the + access-to-subprogram type and object. + * restrict.adb (Check Restriction): When a construct is + encountered that could violate a global restriction (depending on + whether the given restriction is in effect), Check_Restriction is + called. At this point, we also check for a violation of any + corresponding local restriction that is in effect. For reasons + described above, this check is performed via an indirect call. + * sem_ch13.ads (Parse_Aspect_Local_Restrictions): A new function, + similar to the existing Parse_Aspect_Xxx subprograms. + * sem_ch13.adb: Perform semantic analysis of Local_Restrictions + and User_Aspect aspect specifications. Declare and call new + Validate_Aspect_Local_Restrictions and + Analyze_User_Aspect_Aspect_Specification procedures (a reference + to the latter is registered during package elaboration). In + Analyze_Aspect_Specifications, do not set the Analyzed flag of a + User_Aspect aspect specification. Replace "not Present (X)" call + with "No (X)" call. Replace 'Image with 'Img in a case where the + prefix of the attribute reference is an object; this is done to + accomodate older compilers. + * sem_ch6.adb (Check_Subtype_Conformant): Include in subtype + conformance check a check for overriding-related compatibility of + local restrictions. + * sem_ch8.adb (Analyze_Subprogram_Renaming): In the case of an + instance of a generic that takes a formal subprogram, check that + formal and actual are compatible with respect to local + restrictions. + * sem_prag.adb: Add support for User_Aspect_Definition pragma. + * sem_res.adb (Resolve_Call): Check caller/callee compatibility + with respect to local restrictions. + * snames.ads-tmpl: Add Name_Local_Restrictions, Name_User_Aspect, + and Name_User_Aspect_Definition constants. + * doc/gnat_rm/implementation_defined_aspects.rst: Document new + aspects. + * doc/gnat_rm/implementation_defined_pragmas.rst: Document new + pragma. + * doc/gnat_ugn/the_gnat_compilation_model.rst: Add + User_Aspect_Definition to list of GNAT pragmas. + * gcc-interface/Make-lang.in: Add local_restrict.o. + * gnat-style.texi: Regenerate. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-11-07 Bob Duff <duff@adacore.com> + + * sem_ch4.adb (Is_Private_Overriding): Return True in the case + where a primitive operation is publicly inherited but privately + overridden. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove code from the + ELSE branch, because it was is identical to code before the IF + statements itself. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Change Ctyp and Csiz + from variables to constants and compute them using the nominal type + of the assigned array object. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_pakd.adb, libgnarl/s-osinte__android.ads, + libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__qnx.ads, + libgnarl/s-osinte__rtems.ads, libgnat/s-gearop.adb, + libgnat/s-poosiz.adb, sem_util.adb: Fix style. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Simplify handling of + assignments with string literals. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove Rhs_Val_Known; + represent unknown value by assigning Rhs_Val with No_Uint. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_pakd.adb + (Expand_Bit_Packed_Element_Set): Change local Decl object from + variable to constant. + (Setup_Inline_Packed_Array_Reference): Likewise for Csiz. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * exp_pakd.adb (Setup_Inline_Packed_Array_Reference): Remove extra + whitespace from the list of parameters. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Get_Actual_Subtype_If_Available): Only call Etype + when necessary. + +2023-11-07 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb + (Get_Actual_Subtype,Get_Actual_Subtype_If_Available): Fix handling + of expanded names. + +2023-11-07 Viljar Indus <indus@adacore.com> + + * sem_prag.adb: (Analyze_Pragma): Reduce the number of nested if + statements. + +2023-11-07 Viljar Indus <indus@adacore.com> + + * sem_ch10.adb: (Analyze_Compilation_Unit): Restore the orignal + state of style check pragmas at the end of the analysis. + +2023-11-07 Eric Botcazou <ebotcazou@adacore.com> + + * exp_pakd.adb (Get_Base_And_Bit_Offset): Use the full component + reference instead of just the selector name for 'Bit_Position. + +2023-11-04 David Malcolm <dmalcolm@redhat.com> + + * gcc-interface/misc.cc: Update for changes to diagnostic_context. + +2023-10-22 Iain Sandoe <iain@sandoe.co.uk> + + * gcc-interface/Makefile.in: Handle Darwin rpaths. + +2023-10-20 Alexandre Oliva <oliva@adacore.com> + + * gcc-interface/trans.cc (gigi): Mark __gnat_reraise_zcx with + ECF_XTHROW. + (build_raise_check): Likewise for all rcheck subprograms. + +2023-10-19 Yannick Moy <moy@adacore.com> + + * 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-10-19 Sheri Bernstein <bernstein@adacore.com> + + * libgnat/s-imagef.adb (Set_Image_Fixed): Refactor loop. + +2023-10-19 Sheri Bernstein <bernstein@adacore.com> + + * libgnat/s-imguti.adb (Set_Decimal_Digits): Add pragma to exempt + Unassigned_OUT_Parameters. + (Set_Floating_Invalid_Value): Likewise + +2023-10-19 Patrick Bernardi <bernardi@adacore.com> + + * bindusg.adb (Display): Make it clear -Q adds to the number of + secondary stacks generated by the binder. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Document the -Q gnatbind switch and fix references to old + runtimes. + * gnat-style.texi: Regenerate. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-10-19 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Constrain_Array): Replace manual list length + computation by call to List_Length. + +2023-10-19 Piotr Trojanek <trojanek@adacore.com> + + * exp_aggr.adb (Expand_Container_Aggregate): Simplify with "No". + +2023-10-10 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (inline_status_for_subprog): Minor tweak. + (gnat_to_gnu_field): Try harder to get a packable form of the type + for a bitfield. + +2023-10-10 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/a-direct.adb (Start_Search_Internal): Tweak subprogram + body. + +2023-10-10 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.ads (Set_Scope_Is_Transient): Delete. + * sem_util.adb (Set_Scope_Is_Transient): Likewise. + * exp_ch7.adb (Create_Transient_Scope): Set Is_Transient directly. + +2023-10-10 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Return true + if the aggregate is a dependent expression of a conditional + expression being returned from a build-in-place function. + +2023-10-10 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/111434 + * sem_ch10.adb (Replace): New procedure to replace an entity with + another on the homonym chain. + (Install_Limited_With_Clause): Rename Non_Lim_View to Typ for the + sake of consistency. Call Replace to do the replacements and split + the code into the regular and the special cases. Add debuggging + output controlled by -gnatdi. + (Install_With_Clause): Print the Parent_With and Implicit_With flags + in the debugging output controlled by -gnatdi. + (Remove_Limited_With_Unit.Restore_Chain_For_Shadow (Shadow)): Rewrite + using a direct replacement of E4 by E2. Call Replace to do the + replacements. Add debuggging output controlled by -gnatdi. + +2023-10-10 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/a-direct.adb: Fix filesystem entry filtering. + +2023-10-10 Ronan Desplanques <desplanques@adacore.com> + + * atree.ads, nlists.ads, types.ads: Remove references to extended + nodes. Fix typo. + * sinfo.ads: Likewise and fix position of + Comes_From_Check_Or_Contract description. + +2023-10-10 Javier Miranda <miranda@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Protect the frontend against + replacing 'Size by its static value if 'Size is not known at + compile time and we are processing pragmas Compile_Time_Warning or + Compile_Time_Errors. + +2023-10-03 David Malcolm <dmalcolm@redhat.com> + + * gcc-interface/misc.cc: Use text_info ctor. + +2023-10-02 David Malcolm <dmalcolm@redhat.com> + + * gcc-interface/misc.cc (gnat_post_options): Update for renaming + of diagnostic_context's show_caret to m_source_printing.enabled. + +2023-09-26 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove call + to Is_Simple_Protected_Type as redundant. + (Build_Finalizer.Process_Object_Declaration): Do not retrieve the + corresponding record type for simple protected objects. Make the + flow of control more explicit in their specific processing. + * exp_util.adb (Requires_Cleanup_Actions): Return false for simple + protected objects present in library-level package bodies for the + sake of consistency with Build_Finalizer and remove call to + Is_Simple_Protected_Type as redundant. + +2023-09-26 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/110488 + * sem_ch3.adb (Analyze_Object_Declaration): Do not build a default + subtype for a deferred constant in the definite case too. + +2023-09-26 Marc Poulhiès <poulhies@adacore.com> + + * exp_ch7.adb (Contains_Subprogram): Recursively search for subp + in loop's statements. + (Unnest_Loop)<Fixup_Inner_Scopes>: New. + (Unnest_Loop): Rename local variable for more clarity. + * exp_unst.ads: Refresh comment. + +2023-09-26 Javier Miranda <miranda@adacore.com> + + * exp_ch6.adb (Expand_Call_Helper): When computing the + accessibility level of an actual parameter based on the + expresssion of a constant declaration, add missing support for + deferred constants + +2023-09-26 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Status_Flag_Or_Transient_Decl): Remove ??? comment. + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Extend the + handling of finalizable return objects to the non-BIP case. + * exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust the + comment accordingly. + * exp_util.adb (Requires_Cleanup_Actions): Likewise. + +2023-09-26 Daniel King <dmking@adacore.com> + + * raise-gcc.c (get_ip_from_context): Adapt for CHERI purecap + (get_call_site_action_for): Adapt for CHERI purecap + +2023-09-26 Daniel King <dmking@adacore.com> + + * libgnat/a-tags.adb (To_Tag): Use System.Storage_Elements for + integer to address conversion. + * libgnat/s-putima.adb (Put_Image_Pointer): Likewise. + +2023-09-26 Daniel King <dmking@adacore.com> + + * libgnat/s-stratt__cheri.adb: New file + +2023-09-26 Daniel King <dmking@adacore.com> + + * libgnat/i-cheri.ads (Capability_Bound_Error) + (Capability_Permission_Error, Capability_Sealed_Error) + (Capability_Tag_Error): New, define CHERI exception types. + +2023-09-26 Ronan Desplanques <desplanques@adacore.com> + + * exp_prag.adb: Make minor corrections in comments. + * rtsfind.ads: Remove unused element from RTU_Id definition. + +2023-09-26 Derek Schacht <schacht@adacore.com> + + * doc/gnat_ugn/gnat_and_program_execution.rst: Add more details on + using Generic Elementary Functions with dimensional analysis. + * gnat_ugn.texi: Regenerate. + +2023-09-26 Yannick Moy <moy@adacore.com> + + * exp_ch5.adb (Expand_N_Case_Statement): Reference both sections + of the Ada RM that deal with case statements and case expressions + to justify the insertion of a runtime check. + +2023-09-19 Richard Wai <richard@annexi-strayline.com> + + * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Expanded comments + explaining why TSS Finalize_Address is not generated for + concurrent class-wide types. + * exp_ch7.adb (Make_Finalize_Address_Stmts): Handle cases where the + underlying non-constrained parent type is a concurrent type, and + adjust the designated type to be the corresponding record’s + class-wide type. + +2023-09-19 Richard Wai <richard@annexi-strayline.com> + + * sem_ch3.adb (Build_Derived_Record_Type): Treat presence of + keyword "synchronized" the same as "limited" when determining if a + private extension is limited. + +2023-09-19 Marc Poulhiès <poulhies@adacore.com> + + * gcc-interface/utils.cc (max_value): New. + * gcc-interface/gigi.h (max_value): New. + * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>: + When computing gnu_min/gnu_max, try to use max_value if there is + an initial expression. + +2023-09-19 Javier Miranda <miranda@adacore.com> + + * contracts.adb + (Has_Public_Visibility_Of_Subprogram): Add missing support for + child subprograms. + +2023-09-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils.cc (finish_record_type): Round the size in + the padding case as well. + +2023-09-15 Piotr Trojanek <trojanek@adacore.com> + + * exp_aggr.adb (Build_Array_Aggr_Code): Don't build aggregate code + for null array aggregates. + * sem_aggr.adb (Resolve_Array_Aggregate): Don't examine formatting + of a null array aggregate. + +2023-09-15 Eric Botcazou <ebotcazou@adacore.com> + + * inline.adb (Expand_Inlined_Call): In the case of a function call + that returns an unconstrained type and initializes an object, set + the No_Initialization flag on the new declaration of the object. + +2023-09-15 Patrick Bernardi <bernardi@adacore.com> + + * exp_ch6.adb (Expand_N_Subprogram_Body): Do not perform + local-exception-to- goto optimization on barrier functions. + * exp_ch9.adb (Expand_Entry_Barrier): Simplify the if statement + around the simple barrier optimization and remove an old, no + longer relevant comment. + +2023-09-15 Patrick Bernardi <bernardi@adacore.com> + + * bindgen.adb (Gen_Adainit): Generate restrictions when standard + library is suppressed. + (Gen_Output_File_Ada): Ditto. + (Gen_Restrictions): Ditto. + +2023-09-15 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return false + for a small component of a record type with a variant part. + +2023-09-15 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Convert_To_Assignments): In the case of a + component association, call Is_Container_Aggregate on the parent's + parent. + (Expand_Array_Aggregate): Likewise. + +2023-09-15 Kévin Le Gouguec <legouguec@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Remove + extended discussion regarding mold run-time dependencies; + packaging changes in GNAT Pro have made them obsolete. + +2023-09-15 Eric Botcazou <ebotcazou@adacore.com> + + * sem_res.adb (Resolve_Call): When the target is an entity, do not + freeze it if the current scope is the inner wrapper function built + for an expression function with a Post or Refined_Post aspect. + +2023-09-15 Bob Duff <duff@adacore.com> + Ronan Desplanques <desplanques@adacore.com> + + * atree.adb (Node_Kind_Table): Specify parameter explicitly in + GNAT.Table instantiations. Use fully qualified references instead + of relying on use clauses. + (Get_Field_Value): Remove special case for F_Scope_Depth_Value. + That is, enable the Field_Present check in that case. + (It was already enabled for all other fields.) Violations of this + check were already fixed. + (Print_Node_Statistics): Sort the output in decreasing order of + frequencies. + (Print_Field_Statistics): Likewise (sort). + * accessibility.adb (Accessibility_Level): Pass Allow_Alt_Model in + recursive calls. Apparently, an oversight. + (Innermost_Master_Scope_Depth): Need to special-case the 'Old + attribute and allocators. + * einfo-utils.ads (Scope_Depth): Use Scope_Kind_Id to get + predicate checks. + (Scope_Depth_Set): Likewise. + (Scope_Depth_Default_0): Likewise. + * einfo-utils.adb: As for spec. + * frontend.adb (Frontend): Remove unnecessary "return;". + * gen_il-types.ads (Scope_Kind): New union type. + * gen_il-gen-gen_entities.adb (Scope_Kind): New union type. + * sem.ads: Move "with Einfo.Entities;" from body to spec. + (Scope_Stack_Entry): Declare Entity to be of Scope_Kind_Id to get + predicate checks. We had previously been putting non-scopes on the + scope stack; this prevents such anomalies. + * sem.adb: Move "with Einfo.Entities;" from body to spec. + * sem_ch8.ads: Move "with Einfo.Entities;" from body to spec. Add + "with Types;". + (Push_Scope): Use Scope_Kind_Id to get predicate checks. + * sem_ch8.adb: Move "with Einfo.Entities;" from body to spec. Add + "with Types;". + (Push_Scope): Use Scope_Kind_Id to get predicate checks. + (Pop_Scope): Use Scope_Kind_Id on popped entity to get predicate + checks. This prevents anomalies where a scope pushed onto the + stack is later mutated to a nonscope before being popped. + * sem_util.ads (Find_Enclosing_Scope): Add postcondition to ensure + that the enclosing scope of a node N is not the same node N. + Clearly, N does not enclose itself. + * sem_util.adb (Find_Enclosing_Scope): There were several bugs + where Find_Enclosing_Scope(N) = N. For example, if N is an entity, + then we would typically go up to its declaration, and then back + down to the Defining_Entity of the declaration, which is N itself. + There were other cases where Find_Enclosing_Scope of an entity + disagreed with Scope. Clearly, Find_Enclosing_Scope and Scope + should agree (when both are defined). Such bugs caused latent bugs + in accessibility.adb related to 'Old, and fixing bugs here caused + such bugs to be revealed. These are fixed by calling Scope when N + is an entity. + +2023-09-15 Javier Miranda <miranda@adacore.com> + + * accessibility.ads (Needs_Result_Accessibility_Extra_Formal): + Removed. + * accessibility.adb (Needs_Result_Accessibility_Level_Param): + Removed. + (Needs_Result_Accessibility_Extra_Formal): Removed. + (Needs_Result_Accessibility_Level): Revert previous patch. + * sem_ch6.adb (Parent_Subprogram): Handle function overriding an + enumeration literal. + (Create_Extra_Formals): Ensure that the parent subprogram has all + its extra formals. + +2023-09-14 Yannick Moy <moy@adacore.com> + + * exp_util.adb (Is_Statically_Disabled): New function to detect a + "statically disabled condition which evaluates to a given value", + as described in SPARK UG 7.3.2. + (Kill_Dead_Code): Call the new function Is_Statically_Disabled for + conditions of if statements. + * exp_util.ads (Is_Statically_Disabled): New function spec. + +2023-09-14 Javier Miranda <miranda@adacore.com> + + * exp_util.adb (Process_Record_Component): Adjust assertion on the + availablity of the invariant procedure; required because the + invariant procedure is built by the expander, and hence it is not + available compiling generic units or when the sources have errors, + since expansion is then disabled. + +2023-09-14 Javier Miranda <miranda@adacore.com> + + * sem_util.adb (Large_Max_Size_Mutable): Protect access to + attribute Is_Array_Type. + +2023-09-14 Javier Miranda <miranda@adacore.com> + + * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Protect + access to Entity attribute and add missing code to check function + selector in a prefix form call. + +2023-09-14 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Expand_Ctrl_Function_Call): Also do nothing for the + expression of a delta aggregate. + +2023-09-14 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Make the name + matching more robust. + +2023-09-14 Javier Miranda <miranda@adacore.com> + + * sem_ch6.adb (Parent_Subprogram): Complete assertion. + +2023-09-05 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on + the simple return statement. + +2023-09-05 Tom Tromey <tromey@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_entity): Set bit-packed for + constrained and unconstrained array types. + * gcc-interface/misc.cc (gnat_get_array_descr_info): Examine + BIT_PACKED_ARRAY_TYPE_P. + +2023-09-05 Piotr Trojanek <trojanek@adacore.com> + + * sem_type.adb (Interface_Present_In_Ancestor): Remove guard against no + list of interfaces; fix style in comments (trailing dots). + +2023-09-05 Piotr Trojanek <trojanek@adacore.com> + + * sem_type.adb (Iface_Present_In_Ancestor): Only look at the list of + interfaces for types that allow it. The guard is a high-level equivalent + of the entity kinds listed in the preconditon of the Interfaces query. + +2023-09-05 Piotr Trojanek <trojanek@adacore.com> + + * sem_type.adb (Iface_Present_In_Ancestor): Remove guard for empty list + of interfaces; the following loop will work just fine without it. + +2023-09-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch9.adb (Build_Protected_Entry): Move the At_End procedure + from the entry body to the inner block statement. + +2023-09-05 Bob Duff <duff@adacore.com> + + * sem_ch4.adb (Find_Component_In_Instance): Check that + Declaration_Node (Par) is not Empty, as it is for itypes. + +2023-09-05 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch7.adb (Analyze_Package_Declaration): Restrict calls to + `Sem_Warn.Check_References` and adjust comment accordingly. + +2023-09-05 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Freeze_Enumeration_Type): Give an error on a type with + both representation clause and too large size. + +2023-09-05 Liaiss Merzougue <merzougue@adacore.com> + + * libgnat/s-imguti.adb: Remove comment. + +2023-09-05 Javier Miranda <miranda@adacore.com> + + * accessibility.ads (Needs_Result_Accessibility_Extra_Formal): New + subprogram. + * accessibility.adb (Needs_Result_Accessibility_Level_Param): New + subprogram. + (Needs_Result_Accessibility_Extra_Formal): New subprogram, + temporarily keep the previous behavior of the frontend. + * sem_ch6.adb (Create_Extra_Formals): Replace occurrences of + function Needs_Result_Accessibility_Level_Param by calls to + function Needs_Result_Accessibility_Extra_Formal. + (Extra_Formals_OK): Ditto. + +2023-09-05 Alexandre Oliva <oliva@adacore.com> + + * libgnat/system-vxworks-ppc-rtp-smp.ads: Add -msmp to + Linker_Options pragma. + +2023-09-05 Javier Miranda <miranda@adacore.com> + + * exp_aggr.adb (Expand_Container_Aggregate): Report warning on + infinite recursion if an empty container aggregate appears in the + return statement of its Empty function. Fix typo in comment. + * sem_aggr.adb (Resolve_Aggregate): Resolve Ada 2022 empty + aggregate that initializes a record type that has defined its + container aggregate aspects. + (Resolve_Iterated_Association): Protect access to attribute Etype. + * sem_ch13.adb (Resolve_Aspect_Aggregate): Fix typo in comment. + +2023-09-05 Steve Baird <baird@adacore.com> + + * sem_attr.adb (Denote_Same_Function): Handle the case where + Has_Homonym (Pref_Id) returns True but Homonym (Pref_Id) returns + an empty result. + +2023-09-05 Steve Baird <baird@adacore.com> + + * sem_res.adb (Resolve_Unary_Op): In deciding whether to emit a + warning about a modular type's unary minus operator being applied + to an integer literal, ignore integer literals for which + Comes_From_Source is False. + +2023-09-05 Johannes Kliemann <kliemann@adacore.com> + + * libgnarl/s-taprop__qnx.adb: Implement Set_Task_Affinity. + +2023-09-05 Ghjuvan Lacambre <lacambre@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix + index. + * gnat_ugn.texi: Regenerate. + +2023-09-05 Daniel King <dmking@adacore.com> + + * libgnat/s-carsi8.adb: Use operations from + System.Storage_Elements for address arithmetic. + * libgnat/s-carun8.adb: Likewise + * libgnat/s-casi128.adb: Likewise + * libgnat/s-casi16.adb: Likewise + * libgnat/s-casi32.adb: Likewise + * libgnat/s-casi64.adb: Likewise + * libgnat/s-caun128.adb: Likewise + * libgnat/s-caun16.adb: Likewise + * libgnat/s-caun32.adb: Likewise + * libgnat/s-caun64.adb: Likewise + * libgnat/s-geveop.adb: Likewise + +2023-09-05 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Component_Type_For_Private_View): New function. + (Check_Generic_Actuals): For an actual type parameter, also check + its component type if it is an array type. + (Check_Private_View): Use Component_Type_For_Private_View in the + case of an array type. + (Instantiate_Type): Likewise. + (Save_Global_References.Set_Global_Type): Likewise. + +2023-09-05 Sheri Bernstein <bernstein@adacore.com> + + * libgnat/s-aridou.adb: Add pragma to exempt Metrics_LSLOC. + (Double_Divide): Add pragma to exempt + Metrics_Cyclomatic_Complexity. + (Scaled_Divide): Likewise. + * libgnat/s-vauspe.ads (Uns_Option): Add pragma to exempt + Discriminated_Records. + +2023-09-05 Ronan Desplanques <desplanques@adacore.com> + + * Makefile.rtl: Add missing units. + +2023-09-05 Sheri Bernstein <bernstein@adacore.com> + + * libgnarl/a-reatim.adb (Time_Of): Add pragma to exempt + Discriminated_Records. + * libgnat/s-imguti.adb (Round, Set_Decimal_Digits): Likewise. + * libgnat/s-multip.adb (Number_Of_CPUs): Likewise. + * libgnarl/s-tpopsp__posix-foreign.adb (Self): Refactor multiple + returns. + +2023-09-05 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Add_Internal_Interface_Entities): Add missing + subtype-conformance check on primitives implementing interface + primitives. + (Error_Posted_In_Formals): New subprogram. + +2023-09-05 Ronan Desplanques <desplanques@adacore.com> + + * libgnarl/s-tassta.adb: Tweak comment. + +2023-09-05 Yang Yujie <yangyujie@loongson.cn> + + * Makefile.rtl: Add LoongArch support. + * libgnarl/s-linux__loongarch.ads: New file. + * libgnat/system-linux-loongarch.ads: New file. + +2023-08-07 Sheri Bernstein <bernstein@adacore.com> + + * libgnat/s-parame__qnx.adb: Refactor multiple returns. + +2023-08-07 Piotr Trojanek <trojanek@adacore.com> + + * libgnat/i-cstrin.ads (Value): Extend preconditions; adapt comment for + the package. + +2023-08-07 Yannick Moy <moy@adacore.com> + + * sem_res.adb (Resolve_Call): Always call Cannot_Inline so that + subprogram called is marked as not always inlined. + +2023-08-07 Javier Miranda <miranda@adacore.com> + + * sem_res.adb (Resolve_Type_Conversion): Do not warn on conversion + to class-wide type on internally build helpers of class-wide + preconditions. + +2023-08-03 Sheri Bernstein <bernstein@adacore.com> + + * libgnat/s-aridou.adb: Add pragma to exempt Improper_Returns. + * libgnat/s-atopri.adb (Lock_Free_Try_Write): Likewise. + * libgnat/s-bitops.adb (Bit_Eq): Likewise. + * libgnat/s-carsi8.adb: Likewise. + * libgnat/s-carun8.adb: Likewise. + * libgnat/s-casi16.adb: Likewise. + * libgnat/s-casi32.adb: Likewise. + * libgnat/s-casi64.adb: Likewise. + * libgnat/s-caun16.adb: Likewise. + * libgnat/s-caun32.adb: Likewise. + * libgnat/s-caun64.adb: Likewise. + * libgnat/s-exponn.adb: Likewise. + * libgnat/s-expont.adb: Likewise. + * libgnat/s-valspe.adb: Likewise. + * libgnat/s-vauspe.adb: Likewise. + +2023-08-03 Vasiliy Fofanov <fofanov@adacore.com> + + * libgnat/s-imageb.adb (Set_Image_Based_Unsigned): Rewritten. + * libgnat/s-imagew.adb (Set_Image_Width_Unsigned): Likewise. + +2023-08-03 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Make_Invariant_Call): Convert the expression to + the type of the formal parameter if need be. + +2023-08-03 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-dwalin.adb ("-"): New subtraction operator. + (Enable_Cache): Use it to compute the offset. + (Symbolic_Address): Likewise. + +2023-08-01 Yannick Moy <moy@adacore.com> + + * repinfo.adb (Compute_Max_Length): Set parameter to print number + in decimal notation. + (List_Component_Layout): Same. + +2023-08-01 Yannick Moy <moy@adacore.com> + + * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check for + Skip_Proof and Skip_Flow_And_Proof annotations for deciding + whether a subprogram can be inlined. + +2023-08-01 Steve Baird <baird@adacore.com> + + * sem_ch3.adb (Constrain_Corresponding_Record): When copying + information from the unconstrained record type to a newly + constructed constrained record subtype, the + Direct_Primitive_Operations attribute must be copied. + +2023-08-01 Steve Baird <baird@adacore.com> + + * sem_ch3.adb (Analyze_Component_Declaration): Remove + Build_Default_Subtype_OK call and code that could only executed in + the case where the removed call would have returned True. Other + calls to Build_Default_Subtype_Ok are unaffected by this change. + +2023-08-01 Pascal Obry <obry@adacore.com> + + * aspects.ads (Find_Aspect): Add Boolean parameter Or_Rep_Item + (defaulted to False). + * aspects.adb (Find_Aspect): If new Boolean parameter Or_Rep_Item + is True, then instead of returning an empty result if no + appropriate N_Aspect_Specification node is found, return an + appropriate N_Attribute_Definition_Clause if one is found. + * exp_put_image.ads: Change name of Enable_Put_Image function to + Put_Image_Enabled. + * exp_put_image.adb (Build_Record_Put_Image_Procedure): Detect the + case where a call to the Put_Image procedure of a derived type can + be transformed into a call to the parent type's Put_Image + procedure (with a type conversion to the parent type as the actual + parameter). + (Put_Image_Enabled): Change name of function (previously + Enable_Put_Image). Return True in more cases. In particular, + return True for a type with an explicitly specified Put_Image + aspect even if the type is declared in a predefined unit (or in an + instance of a predefined generic unit). + * exp_attr.adb: Changes due to Put_Image_Enabled function name + change. + +2023-08-01 Yannick Moy <moy@adacore.com> + + * repinfo.adb (List_Common_Type_Info): Fix output when alignment + is not statically known, and fix assertion when expansion is not + enabled. + +2023-08-01 Bob Duff <duff@adacore.com> + + * atree.adb (Field_Present): New function to detect whether or not + a given field is present in a given node, based on either the node + kind or the entity kind as appropriate. + (Get_Field_Value): Check that the field begin fetched exists. + However, disable the check in the case of Scope_Depth_Value, + because we have failures in that case. Those failures need to be + fixed, and then the check can be enabled for all fields. + (Set_Field_Value): Check that the field begin set exists. + +2023-08-01 Léo Creuse <creuse@adacore.com> + + * par_sco.adb (Process_Decisions): Traverse all attributes of + quantified expressions nodes. + +2023-07-28 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (gnat_to_gnu): Restrict previous change to + the case where the simple return statement has got no storage pool. + +2023-07-28 Clément Chigot <chigot@adacore.com> + + * libgnarl/s-inmaop__posix.adb: Add assert after sigwait in + Interrupt_Wait + +2023-07-28 Javier Miranda <miranda@adacore.com> + + * einfo-utils.adb (Underlying_Type): Protect recursion call + against non-available attribute Etype. + * einfo.ads (Protected_Subprogram): Fix typo in documentation. + * exp_ch3.adb (BIP_Function_Call_Id): New subprogram. + (Expand_N_Object_Declaration): Improve code that evaluates if the + object is initialized with a BIP function call. + * exp_ch6.adb (Is_True_Build_In_Place_Function_Call): New + subprogram. + (Add_Task_Actuals_To_Build_In_Place_Call): Add dummy actuals if + the function does not require the BIP task actuals but it is a + dispatching operation that inherited them. + (Build_In_Place_Formal): Improve code to avoid never-ending loop + if the BIP formal is not found. + (Add_Dummy_Build_In_Place_Actuals): New subprogram. + (Expand_Call_Helper): Add calls to + Add_Dummy_Build_In_Place_Actuals. + (Expand_N_Extended_Return_Statement): Adjust assertion. + (Expand_Simple_Function_Return): Adjust assertion. + (Make_Build_In_Place_Call_In_Allocator): No action needed if the + called function inherited the BIP extra formals but it is not a + true BIP function. + (Make_Build_In_Place_Call_In_Assignment): Ditto. + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove code + reporting unsupported case (since this patch adds support for it). + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adding assertion + to ensure matching of BIP formals when setting the + Protected_Formal field of a protected subprogram to reference the + corresponding extra formal of the subprogram that implements it. + (Might_Need_BIP_Task_Actuals): New subprogram. + (Create_Extra_Formals): Improve code adding inherited extra + formals. + +2023-07-28 Pascal Obry <obry@adacore.com> + + * s-oscons-tmplt.c: Add support for SO_BINDTODEVICE constant. + * libgnat/g-socket.ads (Set_Socket_Option): Handle SO_BINDTODEVICE option. + (Get_Socket_Option): Handle SO_BINDTODEVICE option. + * libgnat/g-socket.adb: Likewise. + (Get_Socket_Option): Handle the case where IF_NAMESIZE is not defined + and so equal to -1. + +2023-07-28 Léo Creuse <creuse@adacore.com> + + * par_sco.adb (Has_Decision): Consider that quantified expressions + contain decisions. + +2023-07-28 Ronan Desplanques <desplanques@adacore.com> + + * libgnarl/s-tposen.adb: Fix race condition. Add comment to justify + the locking timing. + +2023-07-28 Viljar Indus <indus@adacore.com> + + * exp_util.adb (Find_Optional_Prim_Op): use "No" instead of "= Empty" + +2023-07-28 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Actuals): Add guard for the call to + Class_Preconditions_Subprogram. + +2023-07-28 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Is_Two_Dim_Packed_Array): Return true only if the + component type of the array is scalar. + +2023-07-28 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch6.adb (Check_Statement_Sequence): Only warn about missing return + statements and let GNATprove emit a check when needed. + +2023-07-28 Tom Tromey <tromey@adacore.com> + + * fe.h (Convention): Now inline function. + * gen_il-gen.adb (Put_C_Type_And_Subtypes.Put_Enum_Lit) + (Put_C_Type_And_Subtypes.Put_Kind_Subtype, Put_C_Getter): + Emit enum. + * snames.h-tmpl (Name_Id, Name_, Attribute_Id, Attribute_) + (Convention_Id, Convention_, Pragma_Id, Pragma_): Now enum. + (Get_Attribute_Id, Get_Pragma_Id): Now inline functions. + * types.h (Node_Kind, Entity_Kind, Convention_Id, Name_Id): + Now enum. + * xsnamest.adb (Output_Header_Line, Make_Value): Emit enum. + +2023-07-28 Piotr Trojanek <trojanek@adacore.com> + + * libgnat/a-except.ads (Save_Occurrence): Fix typo. + +2023-07-28 Piotr Trojanek <trojanek@adacore.com> + + * einfo-utils.adb (Number_Formals): Change types in body. + * einfo-utils.ads (Number_Formals): Change type in spec. + * einfo.ads (Number_Formals): Change type in comment. + * sem_ch13.adb (Is_Property_Function): Fix style in a caller of + Number_Formals that was likely to crash because of missing guards. + +2023-07-28 Piotr Trojanek <trojanek@adacore.com> + + * sem_warn.adb (Check_Infinite_Loop_Warning): Don't look at the type of + actual parameter when it has no type at all, e.g. because the entire + subprogram call is illegal. + +2023-07-18 Tom Tromey <tromey@adacore.com> + + * gcc-interface/decl.cc (check_ok_for_atomic_type): Use Pragma_Id. + * gcc-interface/trans.cc (lvalue_required_p, Pragma_to_gnu): Use + Pragma_Id. + (get_type_length, Attribute_to_gnu, get_atomic_access): Use + Attribute_Id. + +2023-07-18 Javier Miranda <miranda@adacore.com> + + * exp_imgv.adb (Rewrite_Object_Image): fix type of formal. Found + reading sources. + (Expand_Wide_Image_Attribute): ditto. + (Expand_Wide_Wide_Image_Attribute): ditto. + (Rewrite_Object_Image): ditto. + * exp_put_image.adb (Build_Image_Call): For class-wide interface + type prefix generate code to displace the pointer to the object to + reference the base of the underlying object. + +2023-07-18 Viljar Indus <indus@adacore.com> + + * sem_aggr.adb (Resolve_Iterated_Association): Add temporary scope + when analyzing the Iterator Specification. Use preanalysis instead + of Analysis to avoid polluting the tree. + +2023-07-18 Viljar Indus <indus@adacore.com> + + * sem_aggr.adb (Resolve_Iterated_Association): Use the element + type for the iterator in a container aggregate with an iterator + specification. + +2023-07-18 Viljar Indus <indus@adacore.com> + + * exp_aggr.adb (Expand_Container_Aggregate): Use the positional + addition method only when dealing with a container aggregate + without an Iterator Specification e.g. with a loop parameter + specification + +2023-07-18 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.ads (Wrong_Type): Add Multiple parameter defaulting to + False and document it. + * sem_util.adb (Wrong_Type): Do not return early if an error has + already been posted on Expr and Multiple is True. + * sem_ch4.adb (Analyze_One_Call): Pass All_Errors_Mode as the + actual parameter for Multiple to Wrong_Type. + +2023-07-18 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb (Has_Dispatching_Constructor_Call): Removed. + (Expand_Interface_Conversion): Reverse patch. + +2023-07-18 Ronan Desplanques <desplanques@adacore.com> + + * libgnarl/s-taprop__linux.adb (Set_Task_Affinity, Create_Task): Tweak + handling of CPU affinities. + +2023-07-18 Eric Botcazou <ebotcazou@adacore.com> + + * sem_type.ads (Is_Ancestor): Remove mention of tagged type. + * exp_aggr.adb: Add with and use clauses for Sem_Type. + (Build_Record_Aggr_Code.Replace_Type): Call Is_Ancestor to spot + self-references to the type of the aggregate. + * sem_aggr.adb (Resolve_Record_Aggregate.Add_Discriminant_Values): + Likewise. + +2023-07-18 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component): + In the case of private discriminated types, explicitly check that we + have a private declaration before examining its discriminant part. + +2023-07-18 Alexandre Oliva <oliva@adacore.com> + + * libgnat/a-except.ads (Raise_Exception): Mark expected_throw. + (Reraise_Occurrence): Likewise. + (Raise_Exception_Always): Likewise. + (Raise_From_Controlled_Operation): Likewise. + (Reraise_Occurrence_Always): Likewise. + (Reraise_Occurrence_No_Defer): Likewise. + * libgnat/a-except.adb + (Exception_Propagation.Propagate_Exception): Likewise. + (Complete_And_Propagate_Occurrence): Likewise. + (Raise_Exception_No_Defer): Likewise. + (Raise_From_Signal_Handler): Likewise. + (Raise_With_Msg): Likewise. + (Raise_With_Location_And_Msg): Likewise. + (Raise_Constraint_Error): Likewise. + (Raise_Constraint_Error_Msg): Likewise. + (Raise_Program_Error): Likewise. + (Raise_Program_Error_Msg): Likewise. + (Raise_Storage_Error): Likewise. + (Raise_Storage_Error_Msg): Likewise. + (Reraise, Rcheck_*): Likewise. + * doc/gnat_rm/security_hardening_features.rst (Control Flow + Hardening): Note the influence of expected_throw. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + * gcc-interface/utils.cc (handle_expected_throw_attribute): New. + (gnat_internal_attribute_table): Add expected_throw. + +2023-07-18 Vasiliy Fofanov <fofanov@adacore.com> + + * libgnat/s-pack03.adb: Update copyright year; refactor return statements. + * libgnat/s-pack05.adb: Likewise. + * libgnat/s-pack06.adb: Likewise. + * libgnat/s-pack07.adb: Likewise. + * libgnat/s-pack09.adb: Likewise. + * libgnat/s-pack10.adb: Likewise. + * libgnat/s-pack100.adb: Likewise. + * libgnat/s-pack101.adb: Likewise. + * libgnat/s-pack102.adb: Likewise. + * libgnat/s-pack103.adb: Likewise. + * libgnat/s-pack104.adb: Likewise. + * libgnat/s-pack105.adb: Likewise. + * libgnat/s-pack106.adb: Likewise. + * libgnat/s-pack107.adb: Likewise. + * libgnat/s-pack108.adb: Likewise. + * libgnat/s-pack109.adb: Likewise. + * libgnat/s-pack11.adb: Likewise. + * libgnat/s-pack110.adb: Likewise. + * libgnat/s-pack111.adb: Likewise. + * libgnat/s-pack112.adb: Likewise. + * libgnat/s-pack113.adb: Likewise. + * libgnat/s-pack114.adb: Likewise. + * libgnat/s-pack115.adb: Likewise. + * libgnat/s-pack116.adb: Likewise. + * libgnat/s-pack117.adb: Likewise. + * libgnat/s-pack118.adb: Likewise. + * libgnat/s-pack119.adb: Likewise. + * libgnat/s-pack12.adb: Likewise. + * libgnat/s-pack120.adb: Likewise. + * libgnat/s-pack121.adb: Likewise. + * libgnat/s-pack122.adb: Likewise. + * libgnat/s-pack123.adb: Likewise. + * libgnat/s-pack124.adb: Likewise. + * libgnat/s-pack125.adb: Likewise. + * libgnat/s-pack126.adb: Likewise. + * libgnat/s-pack127.adb: Likewise. + * libgnat/s-pack13.adb: Likewise. + * libgnat/s-pack14.adb: Likewise. + * libgnat/s-pack15.adb: Likewise. + * libgnat/s-pack17.adb: Likewise. + * libgnat/s-pack18.adb: Likewise. + * libgnat/s-pack19.adb: Likewise. + * libgnat/s-pack20.adb: Likewise. + * libgnat/s-pack21.adb: Likewise. + * libgnat/s-pack22.adb: Likewise. + * libgnat/s-pack23.adb: Likewise. + * libgnat/s-pack24.adb: Likewise. + * libgnat/s-pack25.adb: Likewise. + * libgnat/s-pack26.adb: Likewise. + * libgnat/s-pack27.adb: Likewise. + * libgnat/s-pack28.adb: Likewise. + * libgnat/s-pack29.adb: Likewise. + * libgnat/s-pack30.adb: Likewise. + * libgnat/s-pack31.adb: Likewise. + * libgnat/s-pack33.adb: Likewise. + * libgnat/s-pack34.adb: Likewise. + * libgnat/s-pack35.adb: Likewise. + * libgnat/s-pack36.adb: Likewise. + * libgnat/s-pack37.adb: Likewise. + * libgnat/s-pack38.adb: Likewise. + * libgnat/s-pack39.adb: Likewise. + * libgnat/s-pack40.adb: Likewise. + * libgnat/s-pack41.adb: Likewise. + * libgnat/s-pack42.adb: Likewise. + * libgnat/s-pack43.adb: Likewise. + * libgnat/s-pack44.adb: Likewise. + * libgnat/s-pack45.adb: Likewise. + * libgnat/s-pack46.adb: Likewise. + * libgnat/s-pack47.adb: Likewise. + * libgnat/s-pack48.adb: Likewise. + * libgnat/s-pack49.adb: Likewise. + * libgnat/s-pack50.adb: Likewise. + * libgnat/s-pack51.adb: Likewise. + * libgnat/s-pack52.adb: Likewise. + * libgnat/s-pack53.adb: Likewise. + * libgnat/s-pack54.adb: Likewise. + * libgnat/s-pack55.adb: Likewise. + * libgnat/s-pack56.adb: Likewise. + * libgnat/s-pack57.adb: Likewise. + * libgnat/s-pack58.adb: Likewise. + * libgnat/s-pack59.adb: Likewise. + * libgnat/s-pack60.adb: Likewise. + * libgnat/s-pack61.adb: Likewise. + * libgnat/s-pack62.adb: Likewise. + * libgnat/s-pack63.adb: Likewise. + * libgnat/s-pack65.adb: Likewise. + * libgnat/s-pack66.adb: Likewise. + * libgnat/s-pack67.adb: Likewise. + * libgnat/s-pack68.adb: Likewise. + * libgnat/s-pack69.adb: Likewise. + * libgnat/s-pack70.adb: Likewise. + * libgnat/s-pack71.adb: Likewise. + * libgnat/s-pack72.adb: Likewise. + * libgnat/s-pack73.adb: Likewise. + * libgnat/s-pack74.adb: Likewise. + * libgnat/s-pack75.adb: Likewise. + * libgnat/s-pack76.adb: Likewise. + * libgnat/s-pack77.adb: Likewise. + * libgnat/s-pack78.adb: Likewise. + * libgnat/s-pack79.adb: Likewise. + * libgnat/s-pack80.adb: Likewise. + * libgnat/s-pack81.adb: Likewise. + * libgnat/s-pack82.adb: Likewise. + * libgnat/s-pack83.adb: Likewise. + * libgnat/s-pack84.adb: Likewise. + * libgnat/s-pack85.adb: Likewise. + * libgnat/s-pack86.adb: Likewise. + * libgnat/s-pack87.adb: Likewise. + * libgnat/s-pack88.adb: Likewise. + * libgnat/s-pack89.adb: Likewise. + * libgnat/s-pack90.adb: Likewise. + * libgnat/s-pack91.adb: Likewise. + * libgnat/s-pack92.adb: Likewise. + * libgnat/s-pack93.adb: Likewise. + * libgnat/s-pack94.adb: Likewise. + * libgnat/s-pack95.adb: Likewise. + * libgnat/s-pack96.adb: Likewise. + * libgnat/s-pack97.adb: Likewise. + * libgnat/s-pack98.adb: Likewise. + * libgnat/s-pack99.adb: Likewise. + +2023-07-18 Yannick Moy <moy@adacore.com> + + * errout.adb (Error_Msg_Internal): Remove call to + Prescan_Message on the special continuation for the explain code + command, as this does not play well with the setting of global + variables for the message (like its status as a warning or not). + Instead, set directly the global variables regarding content of + the message in terms of special characters. + +2023-07-18 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.ads (Validated_View): Document enhanced behavior. + * sem_util.adb (Validated_View): Return the nonlimited view, if any, + of types coming from a limited with. + +2023-07-11 Bob Duff <duff@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Avoid transforming to + a renaming in case of constrained array that comes from source. + +2023-07-11 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component): + In the case of private discriminated types, return a discriminant + only if it is listed in the discriminant part of the declaration. + +2023-07-10 Eric Botcazou <ebotcazou@adacore.com> + + * adaint.c [_WIN32]: Undefine 'abort' macro. + +2023-07-10 Tom Tromey <tromey@adacore.com> + + * snames.h-tmpl (Name_Id, Attribute_Id, Convention_Id) + (Pragma_Id): New typedefs. + (Get_Attribute_Id, Get_Pragma_Id): Use typedef. + +2023-07-10 Yannick Moy <moy@adacore.com> + + * libgnat/s-aridou.adb (Lemma_Powers_Of_2_Commutation): Rewrite + assertion. + +2023-07-10 Bob Duff <duff@adacore.com> + + * doc/gnat_rm/gnat_language_extensions.rst + (Local Declarations Without Block): Document the feature very + briefly, and refer the reader to the RFC for details and examples. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-07-10 Alexandre Oliva <oliva@adacore.com> + + * doc/gnat_rm/security_hardening_features.rst (Control Flow + Hardening): Document -fhardcfr-skip-leaf. + * gnat_rm.texi: Regenerate. + +2023-07-10 Alexandre Oliva <oliva@adacore.com> + + * doc/gnat_rm/security_hardening_features.rst (Control Flow + Redundancy): Add -fhardcfr-check-noreturn-calls=no-xthrow. + * gnat_rm.texi: Regenerate. + +2023-07-10 Yannick Moy <moy@adacore.com> + + * libgnat/s-aridou.adb (Lemma_Div_Mult): New simple lemma. + (Lemma_Powers_Of_2_Commutation): State post in else branch. + (Lemma_Div_Pow2): Introduce local lemma and use it. + (Scaled_Divide): Use cut operations in assertions, lemmas, new + assertions. Introduce local lemma and use it. + +2023-07-10 Alexandre Oliva <oliva@adacore.com> + + * doc/gnat_rm/security_hardening_features.rst (Register + Scrubbing): Document leafy mode. + * gnat_rm.texi: Regenerate. + +2023-07-06 Claire Dross <dross@adacore.com> + + * gcc-interface/Make-lang.in: Add object files of specification + files. + +2023-07-06 Claire Dross <dross@adacore.com> + + * libgnat/s-vs_int.ads: Instance of Value_I_Spec for Integer. + * libgnat/s-vs_lli.ads: Instance of Value_I_Spec for + Long_Long_Integer. + * libgnat/s-vsllli.ads: Instance of Value_I_Spec for + Long_Long_Long_Integer. + * libgnat/s-vs_uns.ads: Instance of Value_U_Spec for Unsigned. + * libgnat/s-vs_llu.ads: Instance of Value_U_Spec for + Long_Long_Unsigned. + * libgnat/s-vslllu.ads: Instance of Value_U_Spec for + Long_Long_Long_Unsigned. + * libgnat/s-imagei.ads: Take instances of Value_*_Spec as + parameters. + * libgnat/s-imagei.adb: Idem. + * libgnat/s-imageu.ads: Idem. + * libgnat/s-imageu.adb: Idem. + * libgnat/s-valuei.ads: Idem. + * libgnat/s-valuei.adb: Idem. + * libgnat/s-valueu.ads: Idem. + * libgnat/s-valueu.adb: Idem. + * libgnat/s-imgint.ads: Adapt instance to new ghost parameters. + * libgnat/s-imglli.ads: Adapt instance to new ghost parameters. + * libgnat/s-imgllli.ads: Adapt instance to new ghost parameters. + * libgnat/s-imglllu.ads: Adapt instance to new ghost parameters. + * libgnat/s-imgllu.ads: Adapt instance to new ghost parameters. + * libgnat/s-imguns.ads: Adapt instance to new ghost parameters. + * libgnat/s-valint.ads: Adapt instance to new ghost parameters. + * libgnat/s-vallli.ads: Adapt instance to new ghost parameters. + * libgnat/s-valllli.ads: Adapt instance to new ghost parameters. + * libgnat/s-vallllu.ads: Adapt instance to new ghost parameters. + * libgnat/s-valllu.ads: Adapt instance to new ghost parameters. + * libgnat/s-valuns.ads: Adapt instance to new ghost parameters. + * libgnat/s-vaispe.ads: Take instance of Value_U_Spec as parameter + and remove unused declaration. + * libgnat/s-vaispe.adb: Idem. + * libgnat/s-vauspe.ads: Remove unused declaration. + * libgnat/s-valspe.ads: Factor out the specification part of + Val_Util. + * libgnat/s-valspe.adb: Idem. + * libgnat/s-valuti.ads: Move specification to Val_Spec. + * libgnat/s-valuti.adb: Idem. + * libgnat/s-valboo.ads: Use Val_Spec. + * libgnat/s-valboo.adb: Idem. + * libgnat/s-imgboo.adb: Idem. + * libgnat/s-imagef.adb: Adapt instances to new ghost parameters. + * Makefile.rtl: List new files. + +2023-07-06 Viljar Indus <indus@adacore.com> + + * sem_attr.adb (analyze_attribute.check_array_type): Replace valid + indexes with their staticly evaluated values. + +2023-07-06 Viljar Indus <indus@adacore.com> + + * doc/gnat_ugn/the_gnat_compilation_model.rst: Reference "Binding + with Non-Ada Main Programs" from "Creating a Stand-alone Library + to be used in a non-Ada context". + * gnat_ugn.texi: Regenerate. + +2023-07-06 Viljar Indus <indus@adacore.com> + + * sem_util.adb (Is_Fully_Initialized_Type): Avoid recalculating + the underlying type twice. + +2023-07-06 Viljar Indus <indus@adacore.com> + + * exp_util.adb (Find_Optional_Prim_Op): Stop deriving primitive + operation if there is no underlying type to derive it from. + +2023-07-06 Yannick Moy <moy@adacore.com> + + * errout.ads: Add explain code. + * sem_prag.adb (Check_Library_Level_Entity): Refine error message + and add explain code. + +2023-07-06 Steve Baird <baird@adacore.com> + + * exp_ch7.adb (Make_Final_Call): Add assertion that if no + finalization call is generated, then the type of the object being + finalized does not require finalization. + * freeze.adb (Freeze_Entity): If freezing an already-frozen + subtype, do not assume that nothing needs to be done. In the case + of a frozen subtype of a non-frozen type or subtype (which is + possible), freeze the non-frozen entity. + +2023-07-04 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch5.adb (Expand_Assign_Array): Adjust comment above the + calls to Possible_Bit_Aligned_Component on the LHS and RHS. Do not + call Is_Possibly_Unaligned_Slice in the slice case. + * exp_util.ads (Component_May_Be_Bit_Aligned): Add For_Slice + boolean parameter. + (Possible_Bit_Aligned_Component): Likewise. + * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return False + for the slice of a small record or bit-packed array component. + (Possible_Bit_Aligned_Component): Pass For_Slice in recursive + calls, except in the slice case where True is passed, as well as + in call to Component_May_Be_Bit_Aligned. + +2023-07-04 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.ads (Expand_Unchecked_Union_Equality): Only take a + single parameter. + * exp_ch4.adb (Expand_Unchecked_Union_Equality): Add guard against + repeated invocation on the same node. + * exp_ch6.adb (Expand_Call): Only pass a single actual parameter + in the call to Expand_Unchecked_Union_Equality. + +2023-07-04 Viljar Indus <indus@adacore.com> + + * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: + add No_Use_Of_Attribute & No_Use_Of_Pragma restrictions. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-07-04 Yannick Moy <moy@adacore.com> + + * sem_disp.adb (Inherited_Subprograms): Add parameter to filter + out results. + * sem_disp.ads: Likewise. + +2023-07-03 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.ads (Build_Variant_Record_Equality): Add Spec_Id as second + parameter. + * exp_ch3.adb (Build_Variant_Record_Equality): For unchecked union + types, build the additional parameters as extra formal parameters. + (Expand_Freeze_Record_Type.Build_Variant_Record_Equality): Pass + Empty as Spec_Id in call to Build_Variant_Record_Equality. + * exp_ch4.ads (Expand_Unchecked_Union_Equality): New procedure. + * exp_ch4.adb (Expand_Composite_Equality): In the presence of a + function implementing composite equality, do not special case the + unchecked union types, and only convert the operands if the base + types are not the same like in Build_Equality_Call. + (Build_Equality_Call): Do not special case the unchecked union types + and relocate the operands only once. + (Expand_N_Op_Eq): Do not special case the unchecked union types. + (Expand_Unchecked_Union_Equality): New procedure implementing the + specific expansion of calls to the predefined equality function. + * exp_ch6.adb (Is_Unchecked_Union_Equality): New predicate. + (Expand_Call): Call Is_Unchecked_Union_Equality to determine whether + to call Expand_Unchecked_Union_Equality or Expand_Call_Helper. + * exp_ch8.adb (Build_Body_For_Renaming): Set Has_Delayed_Freeze flag + earlier on Id and pass Id in call to Build_Variant_Record_Equality. + +2023-07-03 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Build_Untagged_Equality): Rename into... + (Build_Untagged_Record_Equality): ...this. + (Expand_Freeze_Record_Type): Adjust to above renaming and invoke + the procedure also for discriminated types without a variant part. + +2023-07-03 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.adb (Has_Inferable_Discriminants): In the case of a + component with a per-object constraint, also return true if the + enclosing object is not of an unchecked union type. + In the default case, remove a useless call to Base_Type. + +2023-06-29 Richard Sandiford <richard.sandiford@arm.com> + + * gcc-interface/decl.cc (gt_pch_nx): Remove overloads for Entity_Id. + +2023-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Makefile.in (LIBIBERTY): Fix condition. + (TOOLS_LIBS): Add @LD_PICFLAG@. + +2023-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Add guard to the + code turning the type of the RESULT_DECL into a reference type. + (maybe_make_gnu_thunk): Use a more precise guard in the same case. + +2023-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (Case_Statement_to_gnu): Rename boolean + constant and use From_Conditional_Expression flag for its value. + +2023-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * debug.adb (d.L): Remove documentation. + * exp_ch4.adb (Expand_N_Case_Expression): In the not-by-copy case, + do not wrap the case statement in an Expression_With_Actions node. + (Expand_N_If_Expression): Do not test + Back_End_Handles_Limited_Types + * gnat1drv.adb (Adjust_Global_Switches): Do not set it. + * opt.ads (Back_End_Handles_Limited_Types): Delete. + +2023-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Check_Generic_Actuals): Check the component type + of constants and variables of an array type. + (Copy_Generic_Node): Fix bogus handling of iterator + specifications. + +2023-06-27 Claire Dross <dross@adacore.com> + + * libgnat/a-textio.ads (Get_Line): Use Relaxed_Initialization on + the Item parameter of Get_Line. + +2023-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_N_Quantified_Expression): Revert the latest + change as it is subsumed by the machinery in Sem_Ch5. + * sem_ch5.adb (Prepare_Iterator_Loop): Also wrap the loop + statement in a block in the name contains a function call that + returns on the secondary stack. + +2023-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Scope_Within_Body_Or_Same): New predicate. + (Check_Actual_Type): Take into account packages nested in bodies + to compute the enclosing scope by means of + Scope_Within_Body_Or_Same. + +2023-06-27 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Check_Private_View): Also check the type of + visible discriminants in record and concurrent types. + +2023-06-27 Viljar Indus <indus@adacore.com> + + * sprint.adb (Print_Node_Actual): Print homogeneous N_Aggregate + nodes with brackets. + +2023-06-27 Viljar Indus <indus@adacore.com> + + * exp_aggr.adb (Expand_N_Aggregate): Ensure that container + aggregate expressions do not get expanded as records but instead + as container aggregates. + +2023-06-20 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Pass + the NULL_TREE explicitly and test imported_p in lieu of + Is_Imported. <E_Function>: Remove public_flag local variable and + make extern_flag local variable a constant. + +2023-06-20 Yannick Moy <moy@adacore.com> + + * sem_res.adb (Resolve_Call): Fix change that replaced test for + quantified expressions by the test for potentially unevaluated + contexts. Both should be performed. + +2023-06-20 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Convert_View): Detect more cases of mismatches for + private types and use Implementation_Base_Type as main criterion. + * gen_il-fields.ads (Opt_Field_Enum): Add + Has_Secondary_Private_View + * gen_il-gen-gen_nodes.adb (N_Expanded_Name): Likewise. + (N_Direct_Name): Likewise. + (N_Op): Likewise. + * sem_ch12.ads (Check_Private_View): Document the usage of second + flag Has_Secondary_Private_View. + * sem_ch12.adb (Get_Associated_Entity): New function to retrieve + the ultimate associated entity, if any. + (Check_Private_View): Implement Has_Secondary_Private_View + support. + (Copy_Generic_Node): Remove specific treatment for Component_Type + of an array type and Designated_Type of an access type. Add + specific treatment for comparison and equality operators, as well + as iterator and loop parameter specifications. + (Instantiate_Type): Implement Has_Secondary_Private_View support. + (Requires_Delayed_Save): Call Get_Associated_Entity. + (Set_Global_Type): Implement Has_Secondary_Private_View support. + * sem_ch6.adb (Conforming_Types): Remove bypass for private views + in instances. + * sem_type.adb (Covers): Return true if Is_Subtype_Of does so. + Remove bypass for private views in instances. + (Specific_Type): Likewise. + * sem_util.adb (Wrong_Type): Likewise. + * sinfo.ads (Has_Secondary_Private_View): Document new flag. + +2023-06-20 Ronan Desplanques <desplanques@adacore.com> + + * libgnarl/s-mudido.ads: Remove outdated comment. + +2023-06-20 Eric Botcazou <ebotcazou@adacore.com> + + * doc/gnat_ugn/gnat_and_program_execution.rst (Overflows in GNAT) + <Default Settings>: Remove obsolete paragraph about -gnato. + <Implementation Notes>: Replace CHECKED with STRICT. + * gnat_ugn.texi: Regenerate. + +2023-06-20 Yannick Moy <moy@adacore.com> + + * sem_util.adb (Check_Result_And_Post_State): Do not warn in cases + where the warning could be spurious. + +2023-06-20 Yannick Moy <moy@adacore.com> + + * 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-20 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Handle Range like First and Last. + +2023-06-20 Jose Ruiz <ruiz@adacore.com> + + * doc/gnat_ugn/the_gnat_compilation_model.rst + (Partition-Wide Settings): add this subsection to document + configuration settings made by the Ada run time. + * gnat_ugn.texi: Regenerate. + +2023-06-20 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Ignore implicit loop scopes + introduced by quantified expressions. + +2023-06-20 Bob Duff <duff@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Remove predicate-check + generation if there is an address clause. These are unnecessary, + and cause gigi to crash. + * exp_util.ads (Following_Address_Clause): Remove obsolete "???" + comments. The suggested changes were done long ago. + +2023-06-20 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Has_Private_Ancestor): Fix inaccuracy in description. + * sem_ch12.adb (Check_Actual_Type): Do not switch the view of the + type if it has a private ancestor. + +2023-06-20 Daniel King <dmking@adacore.com> + + * libgnat/i-cheri.ads: Add CHERI intrinsics and helper functions. + * libgnat/i-cheri.adb: Likewise + +2023-06-20 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Convert_View): Remove Ind parameter and adjust. + * sem_ch12.adb (Check_Generic_Actuals): Check the type of both in + and in out actual objects, as well as the type of formal parameters + of actual subprograms. Extend the condition under which the views + are swapped to nested generic constructs. + (Save_References_In_Identifier): Call Set_Global_Type on a global + identifier rewritten as an explicit dereference, either directly + or after having first been rewritten as a function call. + (Save_References_In_Operator): Set N2 unconditionally and reuse it. + * sem_ch3.adb (Build_Derived_Record_Type): Add missing comment. + * sem_res.adb (Resolve_Implicit_Dereference): Remove special bypass + for private views in instances. + +2023-06-20 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Convert_To_Assignments): Tweak comment. + (Expand_Array_Aggregate): Do not delay the expansion if the parent + node is a container aggregate. + +2023-06-20 Ghjuvan Lacambre <lacambre@adacore.com> + + * errout.adb (Output_Messages): Fix loop termination condition. + +2023-06-20 Eric Botcazou <ebotcazou@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler + Switches): Document -gnateH. + * opt.ads (Reverse_Bit_Order_Threshold): New variable. + * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Use its value + if it is nonnegative instead of System_Max_Integer_Size. + * switch-c.adb (Scan_Front_End_Switches): Deal with -gnateH. + * usage.adb (Usage): Print -gnateH. + * gnat_ugn.texi: Regenerate. + +2023-06-20 Yannick Moy <moy@adacore.com> + + * libgnat/s-aridou.adb (Scaled_Divide): Add assertions. + * libgnat/s-valuti.adb: Add Loop_Variant. + * libgnat/s-valuti.ads: Add Exceptional_Cases on No_Return + procedure. + +2023-06-20 Marc Poulhiès <poulhies@adacore.com> + + * sem_ch3.adb (Build_Derived_Record_Type): Use full view as + Parent_Base if needed. + +2023-06-20 Ghjuvan Lacambre <lacambre@adacore.com> + + * lib-load.adb (Load_Unit): Pass Error_Node to calls to Error_Msg. + +2023-06-20 Claire Dross <dross@adacore.com> + + * libgnat/a-strfix.ads: Replace Might_Not_Return annotations by + Exceptional_Cases and Always_Terminates aspects. + * libgnat/a-tideio.ads: Idem. + * libgnat/a-tienio.ads: Idem. + * libgnat/a-tifiio.ads: Idem. + * libgnat/a-tiflio.ads: Idem. + * libgnat/a-tiinio.ads: Idem. + * libgnat/a-timoio.ads: Idem. + * libgnat/a-textio.ads: Idem. Also mark functions Name, Col, Line, + and Page as out of SPARK as they might raise Layout_Error. + * libgnarl/a-reatim.ads: Replace Always_Return annotations by + Always_Terminates aspects. + * libgnat/a-chahan.ads: Idem. + * libgnat/a-nbnbig.ads: Idem. + * libgnat/a-nbnbin.ads: Idem. + * libgnat/a-nbnbre.ads: Idem. + * libgnat/a-ngelfu.ads: Idem. + * libgnat/a-nlelfu.ads: Idem. + * libgnat/a-nllefu.ads: Idem. + * libgnat/a-nselfu.ads: Idem. + * libgnat/a-nuelfu.ads: Idem. + * libgnat/a-strbou.ads: Idem. + * libgnat/a-strmap.ads: Idem. + * libgnat/a-strsea.ads: Idem. + * libgnat/a-strsup.ads: Idem. + * libgnat/a-strunb.ads: Idem. + * libgnat/a-strunb__shared.ads: Idem. + * libgnat/g-souinf.ads: Idem. + * libgnat/i-c.ads: Idem. + * libgnat/interfac.ads: Idem. + * libgnat/interfac__2020.ads: Idem. + * libgnat/s-aridou.adb: Idem. + * libgnat/s-arit32.adb: Idem. + * libgnat/s-atacco.ads: Idem. + * libgnat/s-spcuop.ads: Idem. + * libgnat/s-stoele.ads: Idem. + * libgnat/s-vaispe.ads: Idem. + * libgnat/s-vauspe.ads: Idem. + * libgnat/i-cstrin.ads: Add a precondition instead of a + Might_Not_Return annotation. + +2023-06-20 Javier Miranda <miranda@adacore.com> + + * sem_ch4.adb + (Try_Selected_Component_In_Instance): New subprogram; factorizes + existing code. + (Find_Component_In_Instance) Moved inside the new subprogram. + (Analyze_Selected_Component): Invoke the new subprogram before + trying the Object.Operation notation. + +2023-06-20 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/a-calfor.adb (Time_Of): Fix handling of special case. + +2023-06-15 Marek Polacek <polacek@redhat.com> + + * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove NO_PIE_CFLAGS. Add + PICFLAG. Use PICFLAG when building ada/b_gnat1.o and ada/b_gnatb.o. + * gcc-interface/Makefile.in: Use pic/libiberty.a if PICFLAG is set. + Remove NO_PIE_FLAG. + +2023-06-15 Marc Poulhiès <poulhies@adacore.com> + + * vxworks7-cert-rtp-base-link.spec: Removed. + * vxworks7-cert-rtp-base-link__ppc64.spec: Removed. + * vxworks7-cert-rtp-base-link__x86.spec: Removed. + * vxworks7-cert-rtp-base-link__x86_64.spec: Removed. + * vxworks7-cert-rtp-link.spec: Removed. + * vxworks7-cert-rtp-link__ppcXX.spec: Removed. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/utils2.cc (build_binary_op) <MODIFY_EXPR>: Do not + remove a VIEW_CONVERT_EXPR on the LHS if it is also on the RHS. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Restrict + the special handling of temporaries created for return values and + subject to a renaming to the top level. + +2023-06-15 Ronan Desplanques <desplanques@adacore.com> + + * doc/gnat_ugn/about_this_guide.rst: Fix typo. Uniformize punctuation. + * doc/gnat_ugn/the_gnat_compilation_model.rst: Uniformize punctuation. + Fix capitalization. Fix indentation of code block. Fix RST formatting + syntax errors. + * gnat_ugn.texi: Regenerate. + +2023-06-15 Yannick Moy <moy@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Reject case of Loop_Entry + inside the prefix of Loop_Entry, as per SPARK RM 5.5.3.1(4,8). + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Make_Allocator_For_Return): Rewrite the logic that + determines the type used for the allocation and add assertions. + * exp_util.adb (Has_Tag_Of_Type): Also return true for extension + aggregates. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * sinfo.ads (Iterator_Filter): Document field. + * sem_ch5.adb (Analyze_Iterator_Specification): Move comment around. + (Analyze_Loop_Parameter_Specification): Only preanalyze the iterator + filter, if any. + * exp_ch5.adb (Expand_N_Loop_Statement): Analyze the new list built + when an iterator filter is present. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Find_Hook_Context): Revert latest change. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Make_Allocator_For_Return): Deal again specifically + with an aggregate returned through an object of a class-wide type. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Do not insert + an always empty list. Remove unused parameter Isc. + (Expand_Iterator_Loop): Adjust call to above procedure. + +2023-06-15 Ronan Desplanques <desplanques@adacore.com> + + * targparm.adb: Allow pragma Style_Checks in some forms. + * targparm.ads: Document new pragma permission. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.ads (Within_Case_Or_If_Expression): Adjust description. + * exp_util.adb (Find_Hook_Context): Stop the search for the topmost + conditional expression, if within one, at contexts where temporaries + may be contained. + (Within_Case_Or_If_Expression): Return false upon first encoutering + contexts where temporaries may be contained. + +2023-06-15 Johannes Kliemann <kliemann@adacore.com> + + * libgnarl/s-osinte__qnx.adb: Adjust priority conversion function. + * libgnat/system-qnx-arm.ads: Adjust priority range and default + priority. + +2023-06-15 Ronan Desplanques <desplanques@adacore.com> + + * targparm.ads: Remove references to front-end-based exceptions. Fix + thinko. + +2023-06-15 Piotr Trojanek <trojanek@adacore.com> + + * 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-15 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates when + it applies to an entry. + +2023-06-15 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Reject pragma Always_Terminates when + it applies to a function or generic function. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch4.adb (Analyze_Call): Adjust the test to detect the presence + of an incomplete view of a type on a function call. + +2023-06-15 Ronan Desplanques <desplanques@adacore.com> + + * ttypes.ads: Remove reference to Ttypef in comment. Fix typo in + comment. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * get_targ.ads (Get_Max_Unaligned_Field): Delete. + * ada_get_targ.adb (Get_Max_Unaligned_Field): Likewise. + * get_targ.adb (Get_Max_Unaligned_Field): Likewise. + * set_targ.ads (Max_Unaligned_Field): Adjust comment. + * set_targ.adb: Set Max_Unaligned_Field to 1 during elaboration. + * ttypes.ads (Max_Unaligned_Field): Delete. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * sem_type.adb (Disambiguate): Fix pasto in the implementation of + the RM 8.4(10) clause for operators. + +2023-06-15 Piotr Trojanek <trojanek@adacore.com> + + * aspects.adb + (Base_Aspect): Fix layout. + * aspects.ads + (Aspect_Argument): Expression for Always_Terminates is optional. + * sem_prag.adb + (Analyze_Always_Terminates_In_Decl_Part): Only analyze expression when + pragma argument is present. + (Analyze_Pragma): Argument for Always_Terminates is optional; fix + whitespace for Async_Readers. + +2023-06-15 Javier Miranda <miranda@adacore.com> + + * sem_util.adb + (Is_CPP_Constructor_Call): Add missing support for calls to + functions returning a private type. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.ads (Build_Transient_Object_Statements): Remove obsolete + references to array and record aggregates in documentation. + +2023-06-15 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch13.adb (Analyze_Aspect_Specifications): Add missing items + in the list of aspects handled by means of Insert_Pragma. + <Aspect_Linker_Section>: Remove obsolete code. Do not delay the + processing of the aspect if the entity is already frozen. + +2023-06-15 Piotr Trojanek <trojanek@adacore.com> + + * sem_aggr.adb + (Resolve_Array_Aggregate): Simplify comment. + (Resolve_Iterated_Component_Association): Tune comment; change variable + to constant. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * sem_aggr.adb (Resolve_Iterated_Component_Association): Simply resolve + the expression. + +2023-06-13 Bob Duff <duff@adacore.com> + + * exp_ch4.adb + (Expand_N_Quantified_Expression): Detect the secondary-stack + case, and find the innermost scope where we should mark/release, + and Set_Uses_Sec_Stack on that. Skip intermediate blocks and loops + that are part of expansion. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Is_Repeatedly_Evaluated): Recognize iterated component + association as repeatedly evaluated. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Is_Potentially_Unevaluated): Recognize iterated + component association as potentially unevaluated. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Call): Replace early call to + In_Quantified_Expression with a call to Is_Potentially_Unevaluated that + was only done when Full_Analysis is true. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * 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-13 Piotr Trojanek <trojanek@adacore.com> + + * sem_elab.adb (Check_Overriding_Primitive): Prevent Corresponding_Body + to be called with entity of an abstract subprogram. + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Save_References_In_Identifier): In the case where + the identifier has been turned into a function call by analysis, + call Set_Global_Type on the entity if it is global. + +2023-06-13 Marc Poulhiès <poulhies@adacore.com> + + * sem_aggr.adb (Resolve_Iterated_Component_Association): Call + Preanalyze_And_Resolve instead of Resolve_Aggr_Expr except for + aggregate. + Co-authored-by: Ed Schonberg <schonberg@adacore.com> + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * 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-13 Eric Botcazou <ebotcazou@adacore.com> + + * sem_attr.adb (Eval_Attribute): Add more exceptions to the early + return for a prefix which is a nonfrozen generic actual type. + * sem_ch12.adb (Copy_Generic_Node): Also check private views in the + case of an entity name or operator analyzed as a function call. + (Set_Global_Type): Make it a child of Save_Global_References. + (Save_References_In_Operator): In the case where the operator has + been turned into a function call, call Set_Global_Type on the entity + if it is global. + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * 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-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * gen_il-fields.ads (Opt_Field_Enum): Add No_Finalize_Actions and + remove No_Side_Effect_Removal. + * gen_il-gen-gen_nodes.adb (N_Function_Call): Remove semantic flag + No_Side_Effect_Removal + (N_Assignment_Statement): Add semantic flag No_Finalize_Actions. + * sinfo.ads (No_Ctrl_Actions): Adjust comment. + (No_Finalize_Actions): New flag on assignment statements. + (No_Side_Effect_Removal): Delete. + * exp_aggr.adb (Build_Record_Aggr_Code): Remove obsolete comment and + Ancestor_Is_Expression variable. In the case of an extension, do + not generate a call to Adjust manually, call Set_No_Finalize_Actions + instead. Do not set the tags, replace call to Make_Unsuppress_Block + by Make_Suppress_Block and remove useless assertions. + In the general case, call Initialize_Component. + (Initialize_Controlled_Component): Delete. + (Initialize_Simple_Component): Delete. + (Initialize_Component): Do the low-level processing, but do not + generate a call to Adjust manually, call Set_No_Finalize_Actions. + (Process_Transient_Component): Delete. + (Process_Transient_Component_Completion): Likewise. + * exp_ch5.adb (Expand_Assign_Array): Deal with No_Finalize_Actions. + (Expand_Assign_Array_Loop): Likewise. + (Expand_N_Assignment_Statement): Likewise. + (Make_Tag_Ctrl_Assignment): Likewise. + * exp_util.adb (Remove_Side_Effects): Do not test the + No_Side_Effect_Removal flag. + * sem_prag.adb (Process_Suppress_Unsuppress): Give the warning in + SPARK mode only for pragma Suppress. + * tbuild.ads (Make_Suppress_Block): New declaration. + (Make_Unsuppress_Block): Adjust comment. + * tbuild.adb (Make_Suppress_Block): New procedure. + (Make_Unsuppress_Block): Unsuppress instead of suppressing. + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch5.adb (Analyze_Assignment): Turn Rhs into a constant and + remove calls to the following subprograms. + (Transform_BIP_Assignment): Delete. + (Should_Transform_BIP_Assignment): Likewise. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.ads (Is_Inherited_Operation_For_Type): Remove spec. + * sem_util.adb (Is_Inherited_Operation_For_Type): Remove body. + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Build_Record_Aggr_Code): Add new variable Ancestor_Q + to store the result of Unqualify on Ancestor. Remove the dead call + to Generate_Finalization_Actions in the case of another aggregate as + ancestor part. Remove the redundant setting of Assignment_OK. Use + Init_Typ in lieu of Etype (Ancestor) more consistently. + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Build_Record_Aggr_Code): In the case of an extension + aggregate of a limited type whose ancestor part is an aggregate, do + not skip the final code assigning the tag of the extension. + +2023-06-13 Yannick Moy <moy@adacore.com> + + * ghost.adb (Check_Ghost_Context): Allow absence of Ghost_Id + for attribute. Update error message to mention Ghost_Predicate. + (Is_Ghost_Attribute_Reference): New query. + * ghost.ads (Is_Ghost_Attribute_Reference): New query. + * sem_attr.adb (Resolve_Attribute): Check ghost context for ghost + attributes. + +2023-06-13 Daniel King <dmking@adacore.com> + + * libgnat/s-stoele.ads: Add No_Elaboration_Code_All pragma. + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.ads (Make_Tag_Assignment_From_Type): Declare. + * exp_util.adb (Make_Tag_Assignment_From_Type): New function. + * exp_aggr.adb (Build_Record_Aggr_Code): Call the above function. + (Initialize_Simple_Component): Likewise. + * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Likewise. + (Build_Record_Init_Proc.Build_Init_Procedure ): Likewise. + (Make_Tag_Assignment): Likewise. Rename local variable and call + Unqualify to go through qualified expressions. + * exp_ch4.adb (Expand_Allocator_Expression): Likewise. + +2023-06-13 Yannick Moy <moy@adacore.com> + + * libgnat/a-strsup.ads: Change predicate aspect. + * sem_ch13.adb (Add_Predicate): Fix for first predicate. + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Initialize_Component): Perform immediate expansion + of the initialization expression if it is a conditional expression + and the component type is controlled. + +2023-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Initialize_Component): New procedure factored out + from the processing of array and record aggregates. + (Initialize_Controlled_Component): Likewise. + (Initialize_Simple_Component): Likewise. + (Build_Array_Aggr_Code.Gen_Assign): Remove In_Loop parameter. + Call Initialize_Component to initialize the component. + (Initialize_Array_Component): Delete. + (Initialize_Ctrl_Array_Component): Likewise. + (Build_Array_Aggr_Code): Adjust calls to Gen_Assign. + (Build_Record_Aggr_Code): Call Initialize_Simple_Component or + Initialize_Component to initialize the component. + (Initialize_Ctrl_Record_Component): Delete. + (Initialize_Record_Component): Likewise. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch11.adb (Expand_N_Raise_Statement): Expansion of raise statements + never happens in GNATprove mode. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch11.adb (Find_Local_Handler): Replace guard against other + constructs appearing in the list of exception handlers with iteration + using First_Non_Pragma/Next_Non_Pragma. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch11.ads (Find_Local_Handler): Fix typo in comment. + * exp_ch11.adb (Find_Local_Handler): Remove redundant check for the + Exception_Handler list being present; use membership test to eliminate + local object LCN; fold nested IF statements. Remove useless ELSIF + condition. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Check_Function_Writable_Actuals): Tune style; use + subtype name to detect membership test nodes. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Use a single call + to New_List. + +2023-06-13 Yannick Moy <moy@adacore.com> + + * doc/gnat_rm/implementation_defined_aspects.rst: Document new + aspect. + * doc/gnat_rm/implementation_defined_pragmas.rst: Whitespace. + * aspects.adb (Init_Canonical_Aspect): Set it to Predicate. + * aspects.ads: Set global constants for new aspect. + * einfo.ads: Describe new flag related to new aspect. + * exp_ch6.adb (Can_Fold_Predicate_Call): Do not fold new aspect. + * exp_util.adb (Make_Predicate_Check): Add comment. + * gen_il-fields.ads: Add new flag. + * gen_il-gen-gen_entities.adb: Add new flag. + * ghost.adb (Is_OK_Ghost_Context): Ghost predicate is an OK + ghost context. + (Mark_Ghost_Pragma): Add overloading with ghost mode parameter. + * ghost.ads (Mark_Ghost_Pragma): Add overloading with ghpst mode + parameter. + (Name_To_Ghost_Mode): Make function public. + * sem_aggr.adb: Issue error for violation of valid use. + * sem_case.adb: Issue error for violation of valid use. + * sem_ch13.adb: Adapt for new aspect. + * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove dead code + which was trying to propagate Has_Predicates flag in the wrong + direction (from derived to parent type). + (Analyze_Number_Declaration): Issue error for violation of valid + use. + (Build_Derived_Type): Cleanup inheritance of predicate flags from + parent to derived type. + (Build_Predicate_Function): Only add a predicate check when it + is not ignored as Ghost code. + * sem_ch4.adb (Analyze_Membership_Op): Issue an error for use of + a subtype with a ghost predicate as name in a membership test. + * sem_ch5.adb (Check_Predicate_Use): Issue error for violation of + valid use. + * sem_eval.adb: Adapt code for Dynamic_Predicate to account for + Ghost_Predicate too. + * sem_prag.adb (Analyze_Pragma): Make pragma ghost or not. + * sem_util.adb (Bad_Predicated_Subtype_Use): Adapt to new aspect. + (Inherit_Predicate_Flags): Add inheritance of flag. Add parameter + to apply to derived types. + * sem_util.ads (Inherit_Predicate_Flags): Change signature. + * snames.ads-tmpl: Add new aspect name. + * gnat_rm.texi: Regenerate. + +2023-06-13 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch3.adb (Make_Controlling_Function_Wrappers): Remove early + decoration. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (get_storage_model_access): Also strip any + type conversion in the node when unwinding the components. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (node_is_component): Remove parentheses. + (node_is_type_conversion): New predicate. + (get_atomic_access): Use it. + (get_storage_model_access): Likewise and look into the parent to + find a component if it returns true. + (present_in_lhs_or_actual_p): Likewise. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Check that + the storage model has Copy_From before instantiating loads for it. + <Attr_Length>: Likewise. + <Attr_Bit_Position>: Likewise. + (gnat_to_gnu) <N_Indexed_Component>: Likewise. + <N_Slice>: Likewise. + +2023-05-30 Marc Poulhiès <poulhies@adacore.com> + + * gcc-interface/trans.cc (Attribute_to_gnu): Also strip conversion + in case of DECL. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a + local variable for the GNAT index type. + <E_Array_Subtype>: Likewise. Call Is_Null_Range on the bounds and + force the zero on TYPE_SIZE and TYPE_SIZE_UNIT if it returns true. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Test the + precision of the operation rather than that of the result type. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Replace + integer_zero_node with null_pointer_node for pointer types. + * gcc-interface/trans.cc (gnat_gimplify_expr) <NULL_EXPR>: Likewise. + * gcc-interface/utils.cc (maybe_pad_type): Do not attempt to make a + packable type from a fat pointer type. + * gcc-interface/utils2.cc (build_atomic_load): Use a local variable. + (build_atomic_store): Likewise. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/misc.cc (internal_error_function): Be prepared for + an input_location set to UNKNOWN_LOCATION. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Tweak. + (gnat_to_gnu) <N_Assignment_Statement>: Declare a local variable. + For a target with a storage model, use the Actual_Designated_Subtype + to compute the size if it is present. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (Call_to_gnu): Remove code implementing the + by-copy semantics for actuals with nonnative storage models. + (gnat_to_gnu) <N_Assignment_Statement>: Remove code instantiating a + temporary for assignments between nonnative storage models. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (range_cannot_be_superflat): Return true + immediately if Cannot_Be_Superflat is set. + * gcc-interface/misc.cc (gnat_post_options): Do not override the + -Wstringop-overflow setting. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (ADA_CFLAGS): Move up. + (ALL_ADAFLAGS): Add $(NO_PIE_CFLAGS). + (ada/mdll.o): Remove. + (ada/mdll-fil.o): Likewise. + (ada/mdll-utl.o): Likewise. + +2023-05-30 Marc Poulhiès <poulhies@adacore.com> + + * gcc-interface/trans.cc (get_storage_model_access): Don't require + storage model access for dereference used as lvalue or renamings. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Build_Array_Aggr_Code): Move the declaration of Typ + to the beginning. + (Initialize_Array_Component): Test the unqualified version of the + expression for the nested array case. + (Initialize_Ctrl_Array_Component): Do not duplicate the expression + here. Do the pattern matching of the unqualified version of it. + (Gen_Assign): Call Unqualify to compute Expr_Q and use Expr_Q in + subsequent pattern matching. + (Initialize_Ctrl_Record_Component): Do the pattern matching of the + unqualified version of the aggregate. + (Build_Record_Aggr_Code): Call Unqualify. + (Convert_Aggr_In_Assignment): Likewise. + (Convert_Aggr_In_Object_Decl): Likewise. + (Component_OK_For_Backend): Likewise. + (Is_Delayed_Aggregate): Likewise. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Build_Array_Aggr_Code.Get_Assoc_Expr): Duplicate the + expression here instead of... + (Build_Array_Aggr_Code): ...here. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Check_Large_Modular_Array): Fix head comment, use + Standard_Long_Long_Integer_Size directly and generate a reference + just before the raise statement if the Etype of the object is an + itype declared in an open scope. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Find_Enclosing_Transient_Scope): Return the index in + the scope table instead of the scope's entity. + (Establish_Transient_Scope): If an enclosing scope already exists, + do not set the Uses_Sec_Stack flag on it if the node to be wrapped + is a return statement which requires secondary stack management. + +2023-05-30 Joel Brobecker <brobecker@adacore.com> + + * Makefile.rtl: Use libgnat/s-tsmona__linux.adb on + aarch64-linux. Link libgnat with -ldl, as the use of + s-tsmona__linux.adb requires it. + +2023-05-30 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch3.adb + (Build_Access_Subprogram_Wrapper_Body): Build wrapper body if requested + by routine that builds wrapper spec. + * sem_ch3.adb + (Analyze_Full_Type_Declaration): Only build wrapper when expander is + active. + (Build_Access_Subprogram_Wrapper): + Remove special-case for GNATprove. + +2023-05-30 Ronan Desplanques <desplanques@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor issues. + * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix minor issues. + * gnat_ugn.texi: Regenerate. + +2023-05-30 Johannes Kliemann <kliemann@adacore.com> + + * libgnat/s-parame.adb: Check that Default_Stack_Size >= + Minimum_Stack_size. + * libgnat/s-parame__rtems.adb: Ditto. + * libgnat/s-parame__vxworks.adb: Check that Default_Stack_Size >= + Minimum_Stack_size and use the proper Minimum_Stack_Size if + Stack_Check_Limits is enabled. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * sem_res.adb (Resolve_Call): Restrict previous change to calls that + return on the same stack as the enclosing function. Tidy up. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/a-cidlli.adb (Put_Image): Simplify. + * libgnat/a-coinve.adb (Put_Image): Likewise. + +2023-05-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Build_DIC_Procedure_Body.Add_Own_DIC): When inside + a generic unit, preanalyze the expression directly. + (Build_Invariant_Procedure_Body.Add_Own_Invariants): Likewise. + +2023-05-30 Cedric Landet <landet@adacore.com> + + * init.c: Replace FIXME by ??? + +2023-05-29 Cedric Landet <landet@adacore.com> + + * s-oscons-tmplt.c: move the definition of sigset out of the + HAVE_SOCKETS bloc. + +2023-05-29 Cedric Landet <landet@adacore.com> + + * Makefile.rtl: Move g-spogwa$(objext) from GNATRTL_NONTASKING_OBJS + to GNATRTL_SOCKETS_OBJS + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in + both cases to copy the spec of the subprogram. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Establish_Transient_Scope.Find_Transient_Context): + Bail out for a simple return statement only if the transient scope + and the function both require secondary stack management, or else + if the function is a thunk. + * sem_res.adb (Resolve_Call): Do not create a transient scope when + the call is the expression of a simple return statement. + +2023-05-29 Patrick Bernardi <bernardi@adacore.com> + + * libgnat/a-excach.adb (Call_Chain): Replace + Code_Address_For_AAA/ZZZ functions with AAA/ZZZ'Code_Address. + * libgnat/a-except.adb (Code_Address_For_AAA/ZZZ): Delete. + (AAA/ZZZ): New null procedures. + * libgnat/g-debpoo.adb + (Code_Address_For_Allocate_End): Delete. + (Code_Address_For_Deallocate_End): Delete. + (Code_Address_For_Dereference_End): Delete. + (Allocate): Remove label and use Code_Address attribute to + determine subprogram addresses. + (Dellocate): Likewise. + (Dereference): Likewise. + (Allocate_End): Convert to null procedure. + (Dellocate_End): Likewise. + (Dereference_End): Likewise. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Expand_Simple_Function_Return): Call Insert_Actions + consistently when rewriting the expression. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Is_Finalizable_Transient.Is_Indexed_Container): + New predicate to detect a temporary created to hold the result of + a constant indexing on a container. + (Is_Finalizable_Transient.Is_Iterated_Container): Adjust a couple + of obsolete comments. + (Is_Finalizable_Transient): Return False if Is_Indexed_Container + returns True on the object. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * sem_res.adb (Has_Applicable_User_Defined_Literal): Make it clear + that the predicate also checks the node itself. + (Try_User_Defined_Literal): Move current implementation to... + Deal only with literals, named numbers and conditional expressions + whose dependent expressions are literals or named numbers. + (Try_User_Defined_Literal_For_Operator): ...this. Remove multiple + return False statements and put a single one at the end. + (Resolve): Call Try_User_Defined_Literal instead of directly + Has_Applicable_User_Defined_Literal for all nodes. Call + Try_User_Defined_Literal_For_Operator for operator nodes. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Invoked_With_Different_Arguments): Use Get_Called_Entity, + which properly deals with calls via an access-to-subprogram; fix + inconsistent use of a Call object declared in enclosing subprogram. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * 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-29 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Check_Function_Writable_Actuals): Remove guard against + a membership test with no alternatives; simplify with a membership test. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * doc/gnat_ugn/gnat_and_program_execution.rst + (Some Useful Memory Pools): Remove extra whitespace from examples. + * sem_aggr.adb (Make_String_Into_Aggregate): Remove extra whitespace. + * gnat_ugn.texi: Regenerate. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * exp_aggr.adb (Convert_Aggr_In_Allocator): Replace Get_TSS_Name + with a high-level Is_TSS. + * sem_ch6.adb (Check_Conformance): Replace DECLARE block and + nested IF with a call to Get_TSS_Name and a membership test. + (Has_Reliable_Extra_Formals): Refactor repeated calls to + Get_TSS_Name. + * sem_disp.adb (Check_Dispatching_Operation): Replace repeated + calls to Get_TSS_Name with a membership test. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch5.adb (Expand_N_Case_Statement): Do not remove the statement + if it is the node to be wrapped by a transient scope. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not defer + anything to the back-end when the main unit is generic. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * sem_res.adb (Try_User_Defined_Literal): Restrict previous change + to non-leaf nodes. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * sem_res.adb (Try_User_Defined_Literal): For arithmetic operators, + also accept operands whose type is covered by the resolution type. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Initialize_Array_Component): Fix condition detecting + the nested case that requires an adjustment. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_N_In): Deal specifically with a null operand. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Expand_Simple_Function_Return): Deal with a rewriting + of the simple return during the adjustment of its expression. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_N_Case_Expression): Distribute simple return + statements enclosing the conditional expression into the dependent + expressions in almost all cases. + (Expand_N_If_Expression): Likewise. + (Process_Transient_In_Expression): Adjust to the above distribution. + * exp_ch6.adb (Expand_Ctrl_Function_Call): Deal with calls in the + dependent expressions of a conditional expression. + * sem_ch6.adb (Analyze_Function_Return): Deal with the rewriting of + a simple return statement during the resolution of its expression. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases. + +2023-05-29 Marc Poulhiès <poulhies@adacore.com> + + * exp_aggr.adb (Convert_To_Assignments): Do not mark node for + delayed expansion if parent type has the Aggregate aspect. + * sem_util.adb (Is_Container_Aggregate): Move... + * sem_util.ads (Is_Container_Aggregate): ... here and make it + public. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Relax rules for Exceptional_Cases. + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch4.ads (Unresolved_Operator): New procedure. + * sem_ch4.adb (Has_Possible_Literal_Aspects): Rename into... + (Has_Possible_User_Defined_Literal): ...this. Tidy up. + (Operator_Check): Accept again unresolved operators if they have a + possible user-defined literal as operand. Factor out the handling + of the general error message into... + (Unresolved_Operator): ...this new procedure. + * sem_res.adb (Resolve): Be prepared for unresolved operators on + entry in Ada 2022 or later. If they are still unresolved on exit, + call Unresolved_Operator to give the error message. + (Try_User_Defined_Literal): Tidy up. + +2023-05-29 Steve Baird <baird@adacore.com> + + * exp_ch3.adb + (Expand_N_Object_Declaration.Default_Initialize_Object): Add test for + specified Default_Component_Value aspect when deciding whether + either Initialize_Scalars or Normalize_Scalars impacts default + initialization of an array object. + +2023-05-29 Javier Miranda <miranda@adacore.com> + + * sem_aggr.adb + (Resolve_Record_Aggregate): For aggregates of derived tagged + record types with discriminants, when collecting components + from ancestors, pass to subprogram Gather_Components the + parent type. Required to report errors on wrong aggregate + components. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Check_Result_And_Post_State): Replace low-level + navigation with a high-level Unique_Entity. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Check_Result_And_Post_State): Properly handle entry + bodies. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * contracts.adb (Fix_Parent): Fir part both for lists and nodes. + +2023-05-29 Arnaud Charlet <charlet@adacore.com> + + * sem_ch7.adb: Refine handling of inlining for CCG + +2023-05-29 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Copy_Generic_Node): Test the original node kind + for the sake of consistency. For identifiers and other entity + names and operators, accept an expanded name as associated node. + Replace "or" with "or else" in condtion and fix its formatting. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Check_Result_And_Post_State): Tune message. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * 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-29 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Analyze_Pre_Post_Condition): Tune error message. + +2023-05-29 Javier Miranda <miranda@adacore.com> + + * scans.ads (Inside_Interpolated_String_Expression): New variable. + * par-ch2.adb (P_Interpolated_String_Literal): Set/clear new + variable when parsing interpolated string expressions. + * scng.adb (Set_String): Skip processing operator symbols when we + arescanning an interpolated string literal. + +2023-05-29 Johannes Kliemann <kliemann@adacore.com> + + * Makefile.rtl (QNX): Use s-parame__qnx.adb for s-parame.adb. + * libgnat/s-parame__qnx.adb: Add QNX specific version of + System.Parameters. + +2023-05-29 Yannick Moy <moy@adacore.com> + + * libgnat/a-ngelfu.ads: Restore SPARK_Mode from context. + +2023-05-29 Marc Poulhiès <poulhies@adacore.com> + + * contracts.adb (Restore_Original_Selected_Component): Adjust assertion. + +2023-05-29 Piotr Trojanek <trojanek@adacore.com> + + * 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-26 Bob Duff <duff@adacore.com> + + * sem_ch3.adb + (Build_Derived_Record_Type): Temporarily set the state of the + Derived_Type to "self-hidden" while processing constraints + and discriminants of a record extension. + +2023-05-26 Bob Duff <duff@adacore.com> + + * 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-26 Eric Botcazou <ebotcazou@adacore.com> + + * debug.adb (d.N): Document new usage. + * exp_ch4.adb (Expand_N_Type_Conversion): Copy the Float_Truncate + flag when rewriting a floating-point to fixed-point conversion as + a floating-point to integer conversion. + * exp_fixd.adb: Add with and use clauses for Debug. + (Expand_Convert_Fixed_To_Fixed): Generate a truncation in all cases + except if the result is explicitly rounded. + (Expand_Convert_Integer_To_Fixed): Likewise. + (Expand_Convert_Float_To_Fixed): Generate a truncation for all kind + of fixed-point types, except if the result is explicitly rounded, or + -gnatd.N is specified and the type is an ordinary fixed-point type. + * sinfo.ads (Float_Truncate): Document usage for floating-point to + fixed-point conversions. + +2023-05-26 Javier Miranda <miranda@adacore.com> + + * exp_ch4.adb + (Expand_N_Allocator): If an allocator with constraints is called + in the return statement of a function returning a general access + type, then propagate to the itype the master of the general + access type (since it is the master associated with the + returned object). + +2023-05-26 Yannick Moy <moy@adacore.com> + + * sem_aggr.adb (Resolve_Record_Aggregate): Add dummy initialization and + assertion that clarifies when we reassigned to a useful value. + +2023-05-26 Yannick Moy <moy@adacore.com> + + * doc/gnat_rm/gnat_language_extensions.rst: Be more explicit on + pattern matching limitation. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-05-26 Yannick Moy <moy@adacore.com> + + * libgnat/a-calend.ads: Mark with SPARK_Mode=>Off the functions which may + raise Time_Error. + * libgnat/a-ngelfu.ads: Mark with SPARK_Mode=>Off the functions which may + lead to an overflow (which is not the case of Tan with one parameter for + example, or Arctanh or Arcoth, despite their mathematical range covering + the reals). + * libgnat/a-textio.ads: Remove Always_Return annotation from functions, as + this is now compulsory for functions to always return in SPARK. + * libgnat/i-cstrin.ads: Add Might_Not_Return annotation to Update procedure + which may not return. + +2023-05-26 Bob Duff <duff@adacore.com> + + * exp_put_image.adb (Build_Image_Call): Treat 'Img the same as + 'Image. + * exp_imgv.adb (Expand_Image_Attribute): If Discard_Names, expand + to 'Image instead of 'Img. + * snames.ads-tmpl, par-ch4.adb, sem_attr.adb, sem_attr.ads: + Cleanups: Rename Attribute_Class_Array to be Attribute_Set. Remove + unnecessary qualifications. DRY: Don't repeat "True". + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Record_Possible_Body_Reference): Remove call to Present. + * sem_util.adb (Find_Untagged_Type_Of): Likewise. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Initialize_Array_Component): Remove obsolete code. + (Expand_Array_Aggregate): In the case where a temporary is created + and the parent is an assignment statement with No_Ctrl_Actions set, + set Is_Ignored_Transient on the temporary. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Instantiate_Package_Body): Set the ghost mode to + that of the instance only after loading the generic's parent. + (Instantiate_Subprogram_Body): Likewise. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch4.adb (Expand_Set_Membership): Simplify by using Evolve_Or_Else. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to + Unqual_Conv; consequently, change object from variable to constant; + replace an IF statement with an AND THEN expression. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch9.adb + (Build_Entry_Count_Expression): Remove loop over component declaration; + consequently remove a parameter that is no longer used; adapt callers. + (Make_Task_Create_Call): Refine type of a local variable. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside + loop, not in the loop condition itself. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/a-cbdlli.ads (List): Move Nodes component to the end. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/a-crdlli.ads (List): Move Nodes component to the end. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * sem_attr.adb (Is_Thin_Pointer_To_Unc_Array): New predicate. + (Resolve_Attribute): Apply the static matching legality rule to an + Unrestricted_Access attribute applied to an aliased prefix if the + type is a thin pointer. Call Is_Thin_Pointer_To_Unc_Array for the + aliasing legality rule as well. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Is_Null_Record_Definition): Use First_Non_Pragma and + Next_Non_Pragma to ignore pragmas within component list. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Get_Argument): Improve detection of generic units. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch4.adb (Check_Action_OK): Replace low-level test with a + high-level routine. + * sem_ch13.adb (Is_Predicate_Static): Likewise. + +2023-05-26 Javier Miranda <miranda@adacore.com> + + * exp_ch9.adb + (Expand_N_Conditional_Entry_Call): Factorize code to avoid + duplicating subtrees; required to avoid problems when the copied + code has implicit labels. + * sem_util.ads (New_Copy_Separate_List): Removed. + (New_Copy_Separate_Tree): Removed. + * sem_util.adb (New_Copy_Separate_List): Removed. + (New_Copy_Separate_Tree): Removed. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch13.adb (Check_Component_List): Local variable Compl is now + a constant; a nested block is no longer needed. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_aggr.adb + (Resolve_Record_Aggregate): Remove useless assignment. + * sem_aux.adb + (Has_Variant_Part): Remove useless guard; this routine is only called + on type entities (and now will crash in other cases). + * sem_ch3.adb + (Create_Constrained_Components): Only assign Assoc_List when necessary; + tune whitespace. + (Is_Variant_Record): Refactor repeated calls to Parent. + * sem_util.adb + (Gather_Components): Assert that discriminant association has just one + choice in component_association; refactor repeated calls to Next. + * sem_util.ads + (Gather_Components): Tune whitespace in comment. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with + First_Non_Pragma and Next_Non_Pragma. + * exp_dist.adb (Append_Record_Traversal): Likewise. + +2023-05-26 Javier Miranda <miranda@adacore.com> + + * exp_ch9.adb (Build_Class_Wide_Master): Remember internal blocks + that have a task master entity declaration. + (Build_Master_Entity): Code cleanup. + * sem_util.ads (Is_Internal_Block): New subprogram. + * sem_util.adb (Is_Internal_Block): New subprogram. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Gather_Components): Remove guard for empty list of + components. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * back_end.adb (Call_Back_End): Add gigi_standard_address to the + signature of the gigi procedure and alphabetize other parameters. + Pass Standard_Address as actual parameter for it. + * cstand.adb (Create_Standard): Do not set Is_Descendant_Of_Address + on Standard_Address. + * gcc-interface/gigi.h (gigi): Add a standard_address parameter and + alphabetize others. + * gcc-interface/trans.cc (gigi): Likewise. Record a builtin address + type and save it as the type for Standard.Address. + +2023-05-26 Ghjuvan Lacambre <lacambre@adacore.com> + + * exp_disp.adb (Expand_Dispatching_Call): Handle new Controlling_Tag. + * sem_scil.adb (Check_SCIL_Node): Treat N_Object_Renaming_Declaration as + N_Object_Declaration. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * exp_aggr.adb + (Build_Constrained_Type): Remove local constants that were shadowing + equivalent global constants; replace a wrapper that calls + Make_Integer_Literal with a numeric literal; remove explicit + Aliased_Present parameter which is equivalent to the default value. + (Check_Bounds): Remove unused initial value. + (Expand_Array_Aggregate): Use aggregate type from the context. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Delay_Cleanups): Document new usage. + * exp_ch7.ads (Build_Finalizer): New declaration. + * exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not treat + library-level package instantiations specially. + (Build_Finalizer): Return early for package bodies and specs that + are not compilation units instead of using a more convoluted test. + (Expand_N_Package_Body): Do not build a finalizer if Delay_Cleanups + is set on the defining entity. + (Expand_N_Package_Declaration): Likewise. + * inline.ads (Pending_Body_Info): Reorder and add Fin_Scop. + (Add_Pending_Instantiation): Add Fin_Scop parameter. + * inline.adb (Add_Pending_Instantiation): Likewise and copy it into + the Pending_Body_Info appended to Pending_Instantiations. + (Add_Scope_To_Clean): Change parameter name to Scop and remove now + irrelevant processing. + (Cleanup_Scopes): Deal with scopes that are package specs or bodies. + (Instantiate_Body): For package instantiations, deal specially with + scopes that are package bodies and with scopes that are dynamic. + Pass the resulting scope to Add_Scope_To_Clean directly. + * sem_ch12.adb (Analyze_Package_Instantiation): In the case where a + body is needed, compute the enclosing finalization scope and pass it + in the call to Add_Pending_Instantiation. + (Inline_Instance_Body): Adjust aggregate passed in the calls to + Instantiate_Package_Body. + (Load_Parent_Of_Generic): Likewise. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.adb (Compile_Time_Constraint_Error): Test the Ekind. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * exp_aggr.adb (Build_Constrained_Type): Use List_Length to count + expressions in consecutive subaggregates. + +2023-05-26 Doug Rupp <rupp@adacore.com> + + * libgnarl/s-osinte__qnx.ads (sigset_t): Modify + declaration to use system.os_constants computed + value. Align it. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * exp_sel.adb: Add clauses for Sem_Util, remove them for Opt, Sinfo + and Sinfo.Nodes. + (Build_K): Always use 'Tag of the object. + (Build_S_Assignment): Likewise. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * accessibility.adb + (Is_Formal_Of_Current_Function): This routine expects an entity + reference and not the entity itself, so its parameter is a Node_Id + and not an Entity_Id. + +2023-05-26 Piotr Trojanek <trojanek@adacore.com> + + * exp_aggr.adb + (Build_Array_Aggr_Code): Change variable to constant. + (Check_Same_Aggr_Bounds): Fix style; remove unused initial value. + +2023-05-26 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create extra formals + in more situations. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * checks.adb (Selected_Range_Checks): Add guards to protect calls + to Expr_Value on bounds. + +2023-05-26 Eric Botcazou <ebotcazou@adacore.com> + + * sem_eval.ads (Is_Null_Range): Remove requirements of compile-time + known bounds and add WARNING line. + (Not_Null_Range): Remove requirements of compile-time known bounds. + * sem_eval.adb (Is_Null_Range): Fall back to Compile_Time_Compare. + (Not_Null_Range): Likewise. + * fe.h (Is_Null_Range): New predicate. + +2023-05-25 Javier Miranda <miranda@adacore.com> + + * sem_aggr.adb + (Warn_On_Null_Component_Association): New subprogram. + (Empty_Range): Adding missing support for iterated component + association node. + (Resolve_Array_Aggregate): Report warning on iterated component + association that may initialize some component of an array of + null-excluding access type components with a null value. + * exp_ch4.adb + (Expand_N_Expression_With_Actions): Add missing type check since + the subtype of the EWA node and the subtype of the expression + may differ. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Determining_Expressions): Fix style; fix layout and + ordering of pragma names; expect pragma Exceptional_Cases. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * einfo-utils.adb (Write_Entity_Info): Use procedural Next_Index. + * sem_aggr.adb (Collect_Aggr_Bounds): Reuse local constant. + (Resolve_Null_Array_Aggregate): Use procedural Next_Index. + +2023-05-25 Javier Miranda <miranda@adacore.com> + + * exp_aggr.adb (Build_Record_Aggr_Code): Protect access to + aggregate components when the aggregate is empty. + +2023-05-25 Johannes Kliemann <kliemann@adacore.com> + + * libgnat/system-vxworks7-ppc-kernel.ads: Enable + Support_Atomic_Primitives. + * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. + +2023-05-25 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch3.adb (Find_Type_Of_Object): Copy the object definition when + building the subtype declaration in the case of a spec expression. + +2023-05-25 Tom Tromey <tromey@adacore.com> + + * Make-generated.in (ada/stamp-snames): Check result of + gnatmake. + +2023-05-25 Eric Botcazou <ebotcazou@adacore.com> + + * cstand.adb (Create_Standard): Set the Is_Descendant_Of_Address + flag on Standard_Address. + * freeze.adb (Freeze_Entity): Copy the modulus of System.Address + onto Standard_Address. + +2023-05-25 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/system-aix.ads (Address): Likewise. + * libgnat/system-darwin-arm.ads (Address): Likewise. + * libgnat/system-darwin-ppc.ads (Address): Likewise. + * libgnat/system-darwin-x86.ads (Address): Likewise. + * libgnat/system-djgpp.ads (Address): Likewise. + * libgnat/system-dragonfly-x86_64.ads (Address): Likewise. + * libgnat/system-freebsd.ads (Address): Likewise. + * libgnat/system-hpux-ia64.ads (Address): Likewise. + * libgnat/system-hpux.ads (Address): Likewise. + * libgnat/system-linux-alpha.ads (Address): Likewise. + * libgnat/system-linux-arm.ads (Address): Likewise. + * libgnat/system-linux-hppa.ads (Address): Likewise. + * libgnat/system-linux-ia64.ads (Address): Likewise. + * libgnat/system-linux-m68k.ads (Address): Likewise. + * libgnat/system-linux-mips.ads (Address): Likewise. + * libgnat/system-linux-ppc.ads (Address): Likewise. + * libgnat/system-linux-riscv.ads (Address): Likewise. + * libgnat/system-linux-s390.ads (Address): Likewise. + * libgnat/system-linux-sh4.ads (Address): Likewise. + * libgnat/system-linux-sparc.ads (Address): Likewise. + * libgnat/system-linux-x86.ads (Address): Likewise. + * libgnat/system-lynxos178-ppc.ads (Address): Likewise. + * libgnat/system-lynxos178-x86.ads (Address): Likewise. + * libgnat/system-mingw.ads (Address): Likewise. + * libgnat/system-qnx-arm.ads (Address): Likewise. + * libgnat/system-rtems.ads (Address): Likewise. + * libgnat/system-solaris-sparc.ads (Address): Likewise. + * libgnat/system-solaris-x86.ads (Address): Likewise. + * libgnat/system-vxworks-ppc-kernel.ads (Address): Likewise. + * libgnat/system-vxworks-ppc-rtp-smp.ads (Address): Likewise. + * libgnat/system-vxworks-ppc-rtp.ads (Address): Likewise. + * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Address): Likewise. + * libgnat/system-vxworks7-aarch64.ads (Address): Likewise. + * libgnat/system-vxworks7-arm-rtp-smp.ads (Address): Likewise. + * libgnat/system-vxworks7-arm.ads (Address): Likewise. + * libgnat/system-vxworks7-ppc-kernel.ads (Address): Likewise. + * libgnat/system-vxworks7-ppc-rtp-smp.ads (Address): Likewise. + * libgnat/system-vxworks7-ppc64-kernel.ads (Address): Likewise. + * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Address): Likewise. + * libgnat/system-vxworks7-x86-kernel.ads (Address): Likewise. + * libgnat/system-vxworks7-x86-rtp-smp.ads (Address): Likewise. + * libgnat/system-vxworks7-x86_64-kernel.ads (Address): Likewise. + * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Address): Likewise. + +2023-05-25 Marc Poulhiès <poulhies@adacore.com> + + * sem_ch13.adb (Check_Aspect_At_Freeze_Point): fix format string, + use existing local Ident. + +2023-05-25 Bob Duff <duff@adacore.com> + + * atree.adb (Check_Vanishing_Fields): Fix bug in the "blah type + only" cases. Remove the special cases for E_Void. Misc cleanup. + (Mutate_Nkind): Disallow mutating to the same kind. + (Mutate_Ekind): Disallow mutating to E_Void. + (From E_Void is still OK -- entities start out as E_Void by + default.) Fix bug in statistics gathering -- was setting the wrong + count. Enable Check_Vanishing_Fields for entities. + * sem_ch8.adb (Is_Self_Hidden): New function. + (Find_Direct_Name): Call Is_Self_Hidden to use the new + Is_Not_Self_Hidden flag to determine whether a declaration is + hidden from all visibility by itself. This replaces the old method + of checking E_Void. + (Find_Expanded_Name): Likewise. + (Find_Selected_Component): Likewise. + * sem_util.adb (Enter_Name): Remove setting of Ekind to E_Void. + * sem_ch3.adb: Set the Is_Not_Self_Hidden flag in appropriate + places. Comment fixes. + (Inherit_Component): Remove setting of Ekind to E_Void. + * sem_ch9.adb + (Analyze_Protected_Type_Declaration): Update comment. Skip Itypes, + which should not be turned into components. + * atree.ads (Mutate_Nkind): Document error case. + (Mutate_Ekind): Remove comments apologizing for E_Void mutations. + Document error cases. + +2023-05-25 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/a-ststio.adb (Set_Mode): Test System.Memory_Size. + * libgnat/g-debuti.ads (Address_64): Likewise. + * libgnat/i-c.ads: Add with clause for System. + (ptrdiff_t): Define based on the size of memory space. + (size_t): Likewise. + * libgnat/s-crtl.ads (size_t): Likewise. + (ssize_t): Likewise. + * libgnat/s-memory.ads (size_t): Likewise. + * libgnat/s-parame.ads (Size_Type): Likewise. + * libgnat/s-parame__hpux.ads (Size_Type): Likewise. + * libgnat/s-parame__posix2008.ads (Size_Type): Likewise. + * libgnat/s-parame__vxworks.ads (Size_Type): Likewise. + * libgnat/s-putima.adb (Signed_Address): Likewise. + (Unsigned_Address): Likewise. + * libgnat/s-stoele.ads (Storage_Offset): Likewise. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition + as when it was incremented. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.ads (New_Copy_Tree): Remove Scopes_In_EWA_OK from spec; + adapt comment. + * sem_util.adb (New_Copy_Tree): Remove Scopes_In_EWA_OK from body; + adapt code. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Update_New_Entities): Remove redundant check for entity + map being present. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * atree.adb (Copy_List): Call Copy_Separate_Tree for both entities and + other nodes. + +2023-05-25 Steve Baird <baird@adacore.com> + + * exp_attr.adb + (Cached_Streaming_Ops): A new package, providing maps to save + previously-generated Read/Write/Input/Output procedures. + (Expand_N_Attribute_Reference): When a new subprogram is generated + for a Read/Write/Input/Output attribute reference, record that + type/subp pair in the appropriate Cached_Streaming_Ops map. + (Find_Stream_Subprogram): Check the appropriate + Cached_Streaming_Ops map to see if an appropriate subprogram has + already been generated. If so, then return it. The appropriateness + test includes a call to a new nested subprogram, + In_Available_Context. + * exp_strm.ads, exp_strm.adb: Do not pass in a Loc parameter (or a + source-location-bearing Nod parameter) to the 16 procedures + provided for building streaming-related subprograms. Use the + source location of the type instead. + * exp_dist.adb, exp_ch3.adb: Adapt to Exp_Strm spec changes. For + these calls the source location of the type was already being + used. + +2023-05-25 Marc Poulhiès <poulhies@adacore.com> + + * sem_ch6.adb (Analyze_Function_Return): Add missing + Is_Access_Type check before accessing the Designated_Type field. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch6.adb (Analyze_Return_Type): Remove unused initial value. + +2023-05-25 Marc Poulhiès <poulhies@adacore.com> + + * sem_ch13.adb (Analyze_One_Aspect): Call Record_Rep_Item. + (Check_Aspect_At_Freeze_Point): Check the aspect is specified on + non-array type only... + (Analyze_One_Aspect): ... instead of doing it too early here. + * sem_aggr.adb (Resolve_Container_Aggregate): Do nothing in case + the parameters failed to resolve. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Check_Internal_Protected_Use): Add standard protection + against search going too far. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * 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-25 Piotr Trojanek <trojanek@adacore.com> + + * aspects.ads + (Implementation_Defined_Aspect): Recently added aspects are + implementation-defined, just like Contract_Cases. + * sem_prag.ads + (Aspect_Specifying_Pragma): Recently added aspects have corresponding + pragmas, just like Contract_Cases. + (Pragma_Significant_To_Subprograms): Recently added aspects are + significant to subprograms, just like Contract_Cases. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Tune handling of formal parameters + in contract Exceptional_Cases. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * par-ch7.adb (P_Package): Remove redundant guard from call to + Move_Aspects. + * par-ch9.adb (P_Task): Likewise. + * sem_ch6.adb (Analyze_Expression_Function, Is_Inline_Pragma): Likewise. + +2023-05-25 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Use Get_Actual_Subtype + to retrieve the actual subtype for all actuals and do it in only one + place for all unconstrained composite formal types. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Fix references to Exceptional_Cases in + code copied from handling of Subprogram_Variant. + +2023-05-25 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Replace_Type): Add more documentation. + +2023-05-25 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Replace_Type): Use existing constant wherever + possible. + +2023-05-25 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Replace_Type): Reduce span of variable. + +2023-05-25 Bob Duff <duff@adacore.com> + + * sem_ch9.adb (Analyze_Protected_Type_Declaration): Set the flag + for protected types. + (Analyze_Single_Protected_Declaration): Likewise, for singleton + protected objects. + (Analyze_Task_Type_Declaration): Set the flag for task types. + (Analyze_Single_Task_Declaration): Likewise, for singleton task + objects. + * sem_ch10.adb (Decorate_Type): Set the flag for types treated as + incomplete. + (Build_Shadow_Entity): Set the flag for shadow entities. + (Decorate_State): Set the flag for an abstract state. + (Build_Limited_Views): Set the flag for limited view of package. + * sem_attr.adb (Check_Not_Incomplete_Type): Disable the check when + this is a current instance. + +2023-05-25 Ronan Desplanques <desplanques@adacore.com> + + * freeze.adb (Build_DTW_Body): Add appropriate type conversions for + controlling access parameters. + * sem_util.adb (Build_Overriding_Spec): Fix designated types in + controlling access parameters. + +2023-05-25 Bob Duff <duff@adacore.com> + + * gen_il-gen-gen_entities.adb (E_Label): Add + Entry_Cancel_Parameter. This is necessary because + Analyze_Implicit_Label_Declaration set the Ekind to E_Label. + Without this change, this field would fail the vanishing-fields + check in Atree (which is currently commented out). + * einfo.ads (Entry_Cancel_Parameter): Document for E_Label. + * sem_eval.adb (Why_Not_Static): Protect against previous errors + (no need to explain why something is not static if it's already + illegal for other reasons). + * sem_util.ads (Enter_Name): Fix misleading comment. + +2023-05-25 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Scope_Depth): Fix circular definition. + (Scope_Depth_Value): Fix value for library units. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch11.adb (Analyze_Raise_Expression): Tune warning condition. + * libgnat/g-dirope.ads (Open): Remove a potentially inaccurate comment. + * libgnat/g-dirope.adb (Open): Remove a potentially useless assignment; + the Dir output parameter should be assigned a null value anyway by the + preceding call to Free. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Allow aliased parameters; tune + error message. + +2023-05-25 Marc Poulhiès <poulhies@adacore.com> + + * sem_ch13.adb (Analyze_One_Aspect): Mark Aggregate aspect as + needing delayed resolution and reject the aspect on non-array + type. + +2023-05-25 Bob Duff <duff@adacore.com> + + * sinfo-utils.adb: Update comment to refer to + New_Node_Debugging_Output. + +2023-05-25 Marc Poulhiès <poulhies@adacore.com> + + * rtsfind.adb (Load_RTU.Restore_SPARK_Context): New. + (Load_RTU): Use Restore_SPARK_Context on all exit paths. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Initialize local + variable to Empty. + +2023-05-25 Piotr Trojanek <trojanek@adacore.com> + + * sem_attr.adb + (Analyze_Attribute_Old_Result): Allow uses of 'Old and 'Result within + the new aspect. + * sem_res.adb + (Within_Exceptional_Cases_Consequence): New utility routine. + (Resolve_Entity_Name): Restrict use of formal parameters within the + new aspect. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * 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-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch13.adb (Build_Predicate_Functions): If the current scope + is not that of the type, push this scope and pop it at the end. + * sem_util.ads (Current_Scope_No_Loops_No_Blocks): Delete. + * sem_util.adb (Current_Scope_No_Loops_No_Blocks): Likewise. + (Set_Public_Status): Call again Current_Scope. + +2023-05-23 Gary Dismukes <dismukes@adacore.com> + + * exp_ch6.adb (Might_Have_Tasks): Remove unneeded Etype call from + call to Is_Limited_Record, since that flag is now properly + inherited by class-wide types. + * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remove call + to Make_Class_Wide_Type, which is done too early, and will later + be done in Build_Derived_Record_Type after flags such as + Is_Limited_Record and Is_Controlled_Active have been set on the + derived type. + +2023-05-23 Patrick Bernardi <bernardi@adacore.com> + + * libgnat/s-stchop.adb (Stack_Check): Remove redundant parentheses. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * freeze.adb (Freeze_Record_Type): Add tag for redundant pragma Pack. + * sem_aggr.adb (Resolve_Record_Aggregate): Add tag for redundant OTHERS + choice. + * sem_ch8.adb (Use_One_Type): Add tag for redundant USE clauses. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch11.adb + (Check_Duplication): Fix inconsistent iteration. + (Others_Present): Iterate over handlers using First_Non_Pragma and + Next_Non_Pragma just like in Check_Duplication. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Delay_Subprogram_Descriptors): Delete. + * gen_il-fields.ads (Opt_Field_Enum): Remove + Delay_Subprogram_Descriptors. + * gen_il-gen-gen_entities.adb (Gen_Entities): Likewise. + * gen_il-gen-gen_nodes.adb (N_Entry_Body): Add Corresponding_Spec. + * sinfo.ads (Corresponding_Spec): Document new use. + (N_Entry_Body): Likewise. + * exp_ch6.adb (Expand_Protected_Object_Reference): Be prepared for + protected subprograms that have been expanded. + * exp_ch7.adb (Expand_Cleanup_Actions): Remove unreachable code. + * exp_ch9.adb (Build_Protected_Entry): Add a local variable for the + new block and propagate Uses_Sec_Stack from the corresponding spec. + (Expand_N_Protected_Body) <N_Subprogram_Body>: Unconditionally reset + the scopes of top-level entities in the new body. + * inline.adb (Cleanup_Scopes): Do not adjust the scope on the fly. + * sem_ch9.adb (Analyze_Entry_Body): Set Corresponding_Spec. + * sem_ch12.adb (Analyze_Package_Instantiation): Remove obsolete code + setting Delay_Subprogram_Descriptors and tidy up. + * sem_util.adb (Scope_Within): Deal with protected subprograms that + have been expanded. + (Scope_Within_Or_Same): Likewise. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * libgnarl/s-taskin.ads (Atomic_Address): Delete. + (Attribute_Array): Add pragma Atomic_Components. + (Ada_Task_Control_Block): Adjust default value of Attributes. + * libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local + variable. + * libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter. + (To_Attribute): Adjust source type. + * libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements. + (New_Attribute): Adjust return type. + (Deallocate): Adjust type of parameter. + (To_Real_Attribute): Adjust source type. + (To_Address): Add target type. + (To_Attribute): Adjust source type. + (Fast_Path): Adjust tested type. + (Finalize): Compare with Null_Address. + (Reference): Likewise. + (Reinitialize): Likewise. + (Set_Value): Likewise. Add conversion to Integer_Address. + (Value): Likewise. + +2023-05-23 Raphael Amiard <amiard@adacore.com> + + * scng.adb (Scan): Replace occurrences of All_Extensions_Allowed + by Core_Extensions_Allowed. + +2023-05-23 Claire Dross <dross@adacore.com> + + * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Use new helpers. + * libgnat/s-vauspe.ads (Raw_Unsigned_Starts_As_Based_Ghost, + Raw_Unsigned_Is_Based_Ghost): New ghost helper functions. + (Is_Raw_Unsigned_Format_Ghost, Scan_Split_No_Overflow_Ghost, + Scan_Split_Value_Ghost, Raw_Unsigned_Last_Ghost): Use new + helpers. + +2023-05-23 Arnaud Charlet <charlet@adacore.com> + + * par-ch5.adb, style.ads, styleg.adb, styleg.ads + (Check_Xtra_Parens): Remove extra parameter Enable. + (Check_Xtra_Parens_Precedence): New. + (P_Case_Statement): Add -gnatyx style check. + * sem_ch4.adb: Replace calls to Check_Xtra_Parens by + Check_Xtra_Parens_Precedence. + * stylesw.ads, stylesw.adb, usage.adb: Add support for + -gnatyz. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Update -gnatyxzg doc. + * sem_prag.adb, libgnat/s-regpat.adb, + libgnarl/s-interr__hwint.adb, libgnarl/s-interr__vxworks.adb: + Remove extra parens. + * par-ch3.adb (P_Discrete_Range): Do not emit a style check if + the expression is not a simple expression. + * gnat_ugn.texi: Regenerate. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-dwalin.adb (Enable_Cache): Use the subtract operator of + System.Storage_Elements to compute the offset. + (Symbolic_Address): Likewise. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * sem_res.adb (Resolve_Intrinsic_Operator): Always perform the same + resolution for the special mod operator of System.Storage_Elements. + +2023-05-23 Raphael Amiard <amiard@adacore.com> + + * doc/gnat_rm.rst, doc/gnat_rm/gnat_language_extensions.rst, + doc/gnat_rm/implementation_defined_pragmas.rst: + * gnat_rm.texi: Regenerate. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special + operator of System.Storage_Elements. Do not rewrite it into a rem. + * sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the + left operand for the special mod operator of System.Storage_Elements + +2023-05-23 Vadim Godunko <godunko@adacore.com> + + * libgnat/a-coinho__shared.adb (Constant_Reference): Remove call + of Detach + (Query_Element): Likewise. + +2023-05-23 Ronan Desplanques <desplanques@adacore.com> + + * sem_disp.adb: Fix reference to Ada issue in comment. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * exp_disp.adb (Expand_Dispatching_Call): In the abstract interface + class-wide case, use 'Tag of the object as the controlling tag. + (Expand_Interface_Thunk): Perform address arithmetic using operators + of System.Storage_Elements. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements. + (Addr): Delete. + (Offset): New subtype of Storage_Offset. + (To_Offset): New instance of Unchecked_Conversion. + (To_Pointer): Adjust. + (To_Addr): Likewise. + (To_Ptrdiff): Likewise. + ("+"): Call To_Offset on the offset. + ("-"): Likewise. + * libgnat/s-bituti.adb: Add clauses for System.Storage_Elements. + (Val_Bytes): Change type to Storage_Count. + (Get_Val_2): Add qualification to second operand of mod operator. + (Set_Val_2): Likewise. + (Copy_Bitfield): Likewise. Change type of Src_Adjust & Dest_Adjust. + * libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address. + * libgnat/s-statxd.adb (I_AD): Adjust. + (I_AS): Likewise. + (W_AS): Likewise. + +2023-05-23 Steve Baird <baird@adacore.com> + + * sem_util.adb + (Is_Variable): Correctly return False for a selected component + name of the form Some_Object.Some_Discriminant, even if + Some_Object is a variable. We don't want to allow such a name as + an actual parameter in a call if the corresponding formal + parameter's mode is not "in". + +2023-05-23 Yannick Moy <moy@adacore.com> + + * sem_util.adb (Check_Node): Add default init on local Id. + +2023-05-23 Yannick Moy <moy@adacore.com> + + * libgnat/i-c.adb (To_Ada): Add loop invariant. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod + operator of System.Storage_Elements. + * exp_intr.adb (Expand_To_Integer): New procedure. + (Expand_Intrinsic_Call): Call Expand_To_Integer appropriately. + (Expand_To_Address): Deal with an argument with modular type. + * sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic + on a derived intrinsic subprogram. + * sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic + operators not coming from source exactly as those coming from + source and also generate a reference in both cases. + (Resolve_Op_Expon): Likewise. + (Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get + a nonprivate base type. + * snames.ads-tmpl (Name_To_Integer): New intrinsic name. + * libgnat/s-stoele.ads: Replace pragma Convention with pragma + Import throughout and remove pragma Inline_Always and + Pure_Function. + * libgnat/s-stoele.adb: Replace entire contents with pragma + No_Body. + * libgnat/s-atacco.adb: Adjust comment about pragma No_Body. + +2023-05-23 Javier Miranda <miranda@adacore.com> + + * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove + call to preanalyze class-wide conditions since here it is too + early; they must be preanalyzed when full views of private types + have been analyzed. + * sem_ch7.adb (Analyze_Package_Specification): Preanalyze + class-wide conditions of dispatching primitives defined in nested + packages. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1" + statement into a subprogram; replace assertions with defensive code; + fix few more off-by-one errors. + +2023-05-23 Ronan Desplanques <desplanques@adacore.com> + + * einfo.ads: Mention full name of LSP. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * errout.adb (Last_Sloc): Rewrite skipping past numeric literals. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the + commentary to the current implementation. + * sem_util.ads (Current_Scope_No_Loops): Move around. + (Current_Scope_No_Loops_No_Blocks): New declaration. + (Add_Block_Identifier): Fix formatting. + * sem_util.adb (Add_Block_Identifier): Likewise. + (Current_Scope_No_Loops_No_Blocks): New function. + (Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead + of Current_Scope to get the current scope. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not + manually generate a predicate check. Call Unqualify before doing + pattern matching on the expression. + * sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual + subtype when it is built in the definite case. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * libgnarl/s-interr.adb + (Registered_Handler): Remove default expression. + (Registered_Handlers): Switch to singly-linked list. + (Bind_Interrupt_To_Entry): Sync whitespace with other unit variants. + (Is_Registered): Use singly-linked list. + (Register_Interrupt_Handler): Use singly-linked list and initialized + allocator; sync assertion with other unit variants. + * libgnarl/s-interr__sigaction.adb: Likewise. + * libgnarl/s-interr__vxworks.adb: Likewise. + * libgnarl/s-interr__hwint.adb: Likewise. + (Is_Registered): Remove repeated declaration. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * pprint.adb (Expression_Image): Restore some of the old pretty-printing + for CodePeer. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * errout.adb (First_And_Last_Nodes): Ignore accessibility parameters. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * pprint.adb (Expression_Image): Move Count_Parentheses and + Fix_Parentheses routines from GNATprove and apply them before + returning the slice of a source code buffer. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * errout.adb + (Paren_Required): New subsidiary routine for better handling of + parentheses in First_Node/Last_Node. + (First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly + handle generic instances and inlined subprograms; tune handling of + parentheses; improve handling of literals. + * pprint.adb (Expression_Image): Simplify using + First_Sloc/Last_Sloc. + * sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis + when relocating expression from expression function to simple + return statement. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of + subprogram variants. + +2023-05-23 Eric Botcazou <ebotcazou@adacore.com> + + * frontend.adb (Frontend): Merge two conditional blocks and adjust. + +2023-05-23 Piotr Trojanek <trojanek@adacore.com> + + * libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment. + +2023-05-23 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch7.adb: Remove duplicate comment. + +2023-05-23 Javier Miranda <miranda@adacore.com> + + * sem_ch10.adb + (Analyze_Required_Limited_With_Units): New subprogram. + (Depends_On_Limited_Views): New subprogram. + (Has_Limited_With_Clauses): New subprogram. + (Analyze_Compilation_Unit): Call the new subprogram that performs + the full analysis of required limited-with units. + +2023-05-22 Ronan Desplanques <desplanques@adacore.com> + + * cstand.adb: Use more idiomatic procedure. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * errout.adb (First_Loc): Avoid repeated calls. + (Last_Loc): Likewise. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack + flag from original to rewritten protected subprograms here... + * exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>: + ...but here instead. Add local variables and remove a useless + test. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get + the entity of the body. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the + attribute reference, not of the loop statement. + +2023-05-22 Ronan Desplanques <desplanques@adacore.com> + + * par-ch3.adb: Add missing word in comment. + +2023-05-22 Justin Squirek <squirek@adacore.com> + + * checks.adb (Install_Null_Excluding_Check): Avoid non-null + optimizations when assertions are enabled. + +2023-05-22 Marc Poulhiès <poulhies@adacore.com> + + * exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag + for the copy of the initialization expression. + * sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip + error emission during Pre_Analyze. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Process_Package_Body): New procedure taken from... + (Build_Finalizer.Process_Declarations): ...here. Call the above + procedure to deal with both package bodies and package body stubs. + +2023-05-22 Ronan Desplanques <desplanques@adacore.com> + + * atree.ads: Remove outdated part of comment. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Build_Finalizer): Reverse the test comparing the + instantiation and declaration nodes of a package instance, and + therefore bail out only when they are equal. Adjust comments. + (Expand_N_Package_Declaration): Do not clear the Finalizer field. + * lib-writ.adb: Add with and use clauses for Sem_Util. + (Write_Unit_Information): Look at unit nodes to find finalizers. + * sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment + about the rewriting of the instantiation node into a declaration. + +2023-05-22 Bob Duff <duff@adacore.com> + + * cstand.adb (Is_Past_Self_Hiding_Point): Rename to be + Is_Not_Self_Hidden. + * einfo.ads: Likewise. + * exp_aggr.adb: Likewise. + * gen_il-fields.ads: Likewise. + * gen_il-gen-gen_entities.adb: Likewise. + * sem.adb: Likewise. + * sem_aggr.adb: Likewise. + * sem_ch11.adb: Likewise. + * sem_ch12.adb: Likewise. + * sem_ch5.adb: Likewise. + * sem_ch6.adb: Likewise. + * sem_ch7.adb: Likewise. + * sem_prag.adb: Likewise. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body + as the expanded body of an expression function. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * pprint.adb (Expression_Image): Handle several previously unsupported + constructs. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Combine two IF statements that + execute code only for references that come from source. + +2023-05-22 Bob Duff <duff@adacore.com> + + * einfo.ads (Is_Past_Self_Hiding_Point): Document. + * gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of + fields. + * gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare + in all entities. + * exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate. + * sem.adb: Likewise. + * sem_aggr.adb: Likewise. + * sem_ch11.adb: Likewise. + * sem_ch12.adb: Likewise. + * sem_ch5.adb: Likewise. + * sem_ch7.adb: Likewise. + * sem_prag.adb: Likewise. + * sem_ch6.adb: Likewise. + (Set_Formal_Mode): Minor cleanup: Move from spec. + * sem_ch6.ads: + (Set_Formal_Mode): Minor cleanup: Move to body. + * cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities + as soon as they are created. + * comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead + of 'or else'. + * debug.adb: Minor comment cleanups. + +2023-05-22 Steve Baird <baird@adacore.com> + + * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok): + Accept an executable pragma occuring in a declare expression as + per AI22-0045. This means Assert and Inspection_Point pragmas as + well as any implementation-defined pragmas that the implementation + chooses to categorize as executable. Currently Assume and Debug + are the only such pragmas. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb + (Check_Postcondition_Use_In_Inlined_Subprogram): Mention + Subprogram_Variant in the comment. + (Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is + ignored because of pragma Inline_Always and frontend inlining. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only + emit warning when frontend inlining is enabled. + +2023-05-22 Arnaud Charlet <charlet@adacore.com> + + * par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op, + Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses. + * par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses. + * style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic + related to expressions requiring parentheses here. + +2023-05-22 Arnaud Charlet <charlet@adacore.com> + + * ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb, + checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb, + libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb, + libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb, + libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb, + libgnat/a-strmap.adb, libgnat/g-alleve.adb, + libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb, + libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb, + par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb, + sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb, + exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, + exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb, + sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb, + sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb, + sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb, + binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb, + gprep.adb, sem_ch11.adb: Remove extra parentheses. + +2023-05-22 Arnaud Charlet <charlet@adacore.com> + + * sem_aggr.adb (Get_Value): Use ?? instead of ?. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * exp_aggr.adb (Aggregate_Size): Remove redundant calls to + Present. + * exp_ch5.adb (Expand_N_If_Statement): Likewise. + * sem_prag.adb (Analyze_Pragma): Likewise. + * sem_warn.adb (Find_Var): Likewise. + +2023-05-22 Claire Dross <dross@adacore.com> + + * sem_util.adb (Find_Actual): On calls through dereferences, + return the corresponding formal in the designated subprogram + profile. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec. + * sem_util.adb (Is_Actual_Tagged_Parameter): Remove body. + +2023-05-22 Joffrey Huguet <huguet@adacore.com> + + * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads + (To_Unbounded_String): Add postcondition. Add aspect SPARK_Mode + Off on the version that takes a Natural as parameter. + (To_String): Complete postcondition. + (Set_Unbounded_String): Add postcondition. + (Element): Likewise. + ("="): Likewise. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Freeze_Type): Do not associate the Finalize_Address + routine for a class-wide type if restriction No_Dispatching_Calls + is in effect. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-genbig.ads (From_Bignum): New overloaded declarations. + * libgnat/s-genbig.adb (LLLI): New subtype. + (LLLI_Is_128): New boolean constant. + (From_Bignum): Change the return type of the signed implementation + to Long_Long_Long_Integer and add support for the case where its + size is 128 bits. Add a wrapper around it for Long_Long_Integer. + Add an unsigned implementation returning Unsigned_128 and a wrapper + around it for Unsigned_64. + (To_Bignum): Test LLLI_Is_128 instead of its size. + (To_String.Image): Add qualification to calls to From_Bignum. + * libgnat/a-nbnbin.adb (To_Big_Integer): Likewise. + (Signed_Conversions.From_Big_Integer): Likewise. + (Unsigned_Conversions): Likewise. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec + to copy the spec from the subprogram to the generated subprogram + body. + (Freeze_Entity): Do not wrap imported subprograms inside generics. + +2023-05-22 Steve Baird <baird@adacore.com> + + * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok): + If Comes_From_Source (A) is False, then look at Original_Node (A) + instead of A. In particular, if an (illegal) expression function + is transformed into a "vanilla" function, we don't want to allow + it just because Comes_From_Source is now False. + +2023-05-22 Steve Baird <baird@adacore.com> + + * sem_prag.adb (Analyze_Pragma): In Check_No_Return, call + Error_Msg_Ada_2022_Feature in the case of a function. Remove code + outside of Check_No_Return that was querying Ada_Version. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): Do + not look into nested blocks. + +2023-05-22 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch3.adb (Find_Type_Of_Object): In a spec expression, also set + the Scope of the type, and call Constrain_Array for array subtypes. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * pprint.adb (Expression_Image): Reduce scope of local variables; inline + local uncommented constant From_Source; concatenate string with a single + character, as it is likely to execute faster; add missing cases to + traversal for the rightmost node and assertion to demonstrate that the + ??? comment is no longer relevant. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * pprint.adb (Expr_Name): Qualify CASE expression with N_Subexpr; add + missing alternative for N_Raise_Storage_Error; remove dead alternatives; + explicitly list unsupported alternatives. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * pprint.adb (Expr_Name): Exclude DEL from printable range. + +2023-05-22 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.ads (New_Copy_Tree): Update comment. + * sem_util.adb (New_Copy_Tree): Update Controlling_Argument, very + much like we update the First/Next_Named_Association. + +2023-05-22 Bob Duff <duff@adacore.com> + + * fe.h: Remove Ada_With_Extensions and add commentary. + * opt.ads: Rearrange code and add commentary. + +2023-05-22 Bob Duff <duff@adacore.com> + + * sem_util.adb (Process_Type): Stop the recursion. + * exp_aggr.adb (Build_Record_Aggr_Code): Add assertion. + +2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * gcc-interface/decl.cc (gnat_to_gnu_entity): Use _P defines + from tree.h. + (constructor_address_p): Ditto. + (elaborate_expression_1): Ditto. + * gcc-interface/trans.cc (Identifier_to_gnu): Ditto. + (is_nrv_p): Ditto. + (Subprogram_Body_to_gnu): Ditto. + (gnat_to_gnu): Ditto. + (gnat_to_gnu_external): Ditto. + (add_decl_expr): Ditto. + (gnat_gimplify_expr): Ditto. + * gcc-interface/utils.cc (create_var_decl): Ditto. + * gcc-interface/utils2.cc (get_base_type): Ditto. + (build_binary_op): Ditto. + (build_unary_op): Ditto. + (gnat_protect_expr): Ditto. + (gnat_invariant_expr): Ditto. + +2023-05-16 Steve Baird <baird@adacore.com> + + * usage.adb: Generate output text describing the -gnatw_s switch + (and the corresponding -gnatw_S switch). + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>: + Use the canonical accumulator type as the type of the accumulator + in the prefixed case. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Expand_Array_Aggregate): Do not set Warnings_Off on + the temporary created when in-place expansion is not possible. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Freeze_Expression): When the freezing is to be done + outside the current scope, skip any scope that is an internal loop. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_imgv.adb (Rewrite_Object_Image): If the prefix is a component + that depends on a discriminant, create an actual subtype for it. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch13.adb: Add with and use clauses for Expander. + (Resolve_Aspect_Expressions) <Aspect_Predicate>: Emulate a + bona-fide preanalysis setup before calling + Resolve_Aspect_Expression. + +2023-05-16 Yannick Moy <moy@adacore.com> + + * libgnat/s-aridou.adb (Lemma_Div_Pow2): Add assertion. + * libgnat/s-arit32.adb (Lemma_Abs_Div_Commutation): Simplify. + * libgnat/s-expmod.adb (Lemma_Exp_Mod): Add assertions. + (Lemma_Euclidean_Mod): Add body to lemma. + (Lemma_Mult_Mod): Add assertion. + * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Modify assertion. + * libgnat/s-vauspe.ads (Raw_Unsigned_Last_Ghost): Add + postcondition. + * libgnat/s-widthi.adb: Use more precise types. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * sem_res.adb (Has_Applicable_User_Defined_Literal): Apply the + same processing for derived untagged types as for tagged types. + * sem_util.ads (Corresponding_Primitive_Op): Adjust description. + * sem_util.adb (Corresponding_Primitive_Op): Handle untagged + types. + +2023-05-16 Javier Miranda <miranda@adacore.com> + + * sem_attr.adb + (Analyze_Attribute_Old_Result): When preanalyzing a class-wide + condition, search in the scopes stack for the subprogram that has + the condition. This is required because returning the current + scope causes reporting spurious errors when the occurrence of the + attribute is found, for example, in a quantified expression. + +2023-05-16 Javier Miranda <miranda@adacore.com> + + * exp_ch6.adb + (Needs_BIP_Alloc_Form): Return False for functions with foreign + convention since we never use build-in-place for such functions. + +2023-05-16 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Aggregate_Constraint_Checks): Don't exit early + when preanalysing in GNATprove mode. Now the condition is + consistent with other similar conditions in other code. + +2023-05-16 Ghjuvan Lacambre <lacambre@adacore.com> + + * usage.adb (Usage): Document -gnatyD. + +2023-05-16 Marc Poulhiès <poulhies@adacore.com> + + * libgnat/s-tsmona__linux.adb (link_map, r_debug_type): Add + 'aliased' on all components. + +2023-05-16 Johannes Kliemann <kliemann@adacore.com> + + * libgnat/system-linux-ppc.ads: Add Support_Atomic_Primitives. + * libgnat/s-atopri__32.ads: Add 32 bit version of s-atopri.ads. + * Makefile.rtl: Use s-atopro__32.ads for ppc-linux. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.adb (Get_Actual_Subtype): For an explicit dereference, + return the Actual_Designated_Subtype if it is present. + (Get_Actual_Subtype_If_Available): Likewise. + +2023-05-16 Arnaud Charlet <charlet@adacore.com> + + * errout.ads: Update comment. + * errout.adb (Skip_Msg_Insertion_Warning): Update to take e.g. + -gnatyM into account. + * erroutc.adb (Get_Warning_Option, Get_Warning_Tag) + (Prescan_Message): Add support for Style tags. + * par-ch5.adb, par-ch6.adb, par-ch7.adb, par-endh.adb, + par-util.adb, style.adb, styleg.adb: Set tag on all style + messages. + +2023-05-16 Tom Tromey <tromey@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst + (Switches_for_gnatbind): Fix typo. + * libgnat/g-spipat.ads: Fix typo. + * gnat_ugn.texi: Regenerate. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Build_Assignment_With_Temporary): Adjust comment + and fix type of second parameter. Create the temporary on the + secondary stack by calling Build_Temporary_On_Secondary_Stack. + (Convert_Array_Aggr_In_Allocator): Adjust formatting. + (Expand_Array_Aggregate): Likewise. + * exp_ch4.adb (Expand_N_Allocator): Set Actual_Designated_Subtype + on the dereference in the initialization for all composite types. + * exp_ch5.adb (Expand_N_Assignment_Statement): Create a temporary + on the host for an assignment between nonnative storage models. + Suppress more checks when Suppress_Assignment_Checks is set. + * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Deal with actuals + that are dereferences with an Actual_Designated_Subtype. Add + support for nonnative storage models. + (Expand_Actuals): Create a copy if the actual is a dereference + with a nonnative storage model. + * exp_util.ads (Build_Temporary_On_Secondary_Stack): Declare. + * exp_util.adb (Build_Temporary_On_Secondary_Stack): New function. + * sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Do not + build an actual subtype for dereferences with an + Actual_Designated_Subtype + * sinfo.ads (Actual_Designated_Subtype): Adjust documentation. + (Suppress_Assignment_Checks): Likewise. + +2023-05-16 Piotr Trojanek <trojanek@adacore.com> + + * exp_spark.adb (SPARK_Freeze_Type): Copy whole handling of DIC + and Type_Invariant from Freeze_Type. + +2023-05-16 Richard Kenner <kenner@adacore.com> + + * sem_util.adb (Subprogram_Name): If what's passed is already an + entity, use that for the name. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst + (No_Dependence): Give examples of new No_Dependence restrictions. + * gnat_rm.texi: Regenerate. + +2023-05-16 Arnaud Charlet <charlet@adacore.com> + + * snames.ads-tmpl (Name_ASCII): New. + * style.adb (Check_Identifier): Fix handling of ASCII. + +2023-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat. + * gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as + semantical flag and change Includes_Infinities to semantical. + * sinfo.ads (Cannot_Be_Superflat): Document it for N_Range. + * exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the + range of the result if the result cannot be null. + +2023-05-16 Richard Kenner <kenner@adacore.com> + + * gen_il-gen-gen_nodes.adb (Present_Expr): Type is now Uint. + +2023-05-16 Yannick Moy <moy@adacore.com> + + * libgnat/s-aridou.adb (Big3, Is_Mult_Decomposition) + (Is_Scaled_Mult_Decomposition): Add annotation for inlining. + (Double_Divide, Scaled_Divide): Simplify and remove ghost code. + (Prove_Multiplication): Add calls to lemmas to make proof go + through. + * libgnat/s-aridou.ads (Big, In_Double_Int_Range): Add annotation + for inlining. + +2023-05-16 Yannick Moy <moy@adacore.com> + + * libgnat/a-strsup.adb: Add intermediate assertions. + +2023-05-16 Arnaud Charlet <charlet@adacore.com> + + * gnat1drv.adb: Ensure all dependencies are recorded even when not + generating code. + +2023-05-16 Yannick Moy <moy@adacore.com> + + * libgnat/a-strsup.adb: Set assertion policy for Loop_Variant. + +2023-05-16 Marc Poulhiès <poulhies@adacore.com> + + * sem_ch12.adb (Instantiate_Package_Body): Simplify if/then/else. + (Instantiate_Subprogram_Body): Likewise. + +2023-05-16 Yannick Moy <moy@adacore.com> + + * libgnat/s-aridou.adb: + (Big3): Remove override made useless. + (Lemma_Quot_Rem): Add new lemma and justify it, as no prover + manages to prove it. + (Lemma_Div_Pow2): Use new lemma Lemma_Quot_Rem. + (Prove_Scaled_Mult_Decomposition_Regroup3): Retype for + simplification. + (Scaled_Divide): Remove useless assertions.Decompose some + assertions with cut operations. Use Assert_And_Cut for second + half. Add assertions. + +2023-05-15 Marc Poulhiès <poulhies@adacore.com> + + * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment. + +2023-05-15 Yannick Moy <moy@adacore.com> + + * libgnat/a-strbou.ads: Add justifications for Mapping. + * libgnat/a-strfix.adb: Same. + * libgnat/a-strfix.ads: Same. + * libgnat/a-strsea.adb: Same. + * libgnat/a-strsea.ads: Same. + * libgnat/a-strsup.adb: Same and add loop variants. + * libgnat/a-strsup.ads: Same and add specification of termination. + +2023-05-15 Yannick Moy <moy@adacore.com> + + * libgnat/a-strsup.adb (Super_Slice): Reorder component assignment + to avoid failing predicate check related to initialization. + * libgnat/s-expmod.adb (Exp_Modular): Add intermediate assertion. + +2023-05-15 Yannick Moy <moy@adacore.com> + + * libgnat/i-c.adb: Add loop variants. Remove useless + initialization. + +2023-05-15 Bob Duff <duff@adacore.com> + + * einfo-utils.ads: Remove comment. + +2023-05-15 Bob Duff <duff@adacore.com> + + * einfo-utils.ads, einfo-utils.adb: Get rid of the Proc_Next_... + procedures. Use Inline aspect instead of pragma Inline. + Is_Discrete_Or_Fixed_Point_Type did not have pragma Inline, but + now has the aspect; this was probably an oversight + (which illustrates why aspects are better). + +2023-05-15 Ronan Desplanques <desplanques@adacore.com> + + * doc/gnat_ugn/gnat_utility_programs.rst: Fix formatting + inconsistency. + +2023-05-15 Bob Duff <duff@adacore.com> + + * einfo-utils.adb: + (Proc_Next_Component_Or_Discriminant): Call + Next_Component_Or_Discriminant. + +2023-05-15 Bob Duff <duff@adacore.com> + + * einfo.ads: + (First_Entity): Update comment explaining why this exists on all + [sub]types, as opposed to just the ones with associated entities. + +2023-05-15 Bob Duff <duff@adacore.com> + + * atree.adb + (Check_Vanishing_Fields): Disable the check for "root/base type + only" fields. This is a bug fix -- if we're checking some subtype + S, we don't want to reach over to the root or base type and + Reinit_Field_To_Zero of that, thus modifying the field for lots of + subtypes other than S. Disable in the to/from E_Void cases. Misc + cleanup. + * gen_il-gen-gen_entities.adb: Define First_Entity, Last_Entity, + and Stored_Constraint for all type entities, because there are too + many cases where Reinit_Field_To_Zero would otherwise be needed. + In any case, it seems cleaner to have First_Entity and Last_Entity + defined in the same entity kinds. + * einfo.ads: + (First_Entity, Last_Entity, Stored_Constraint): Update comments to + reflect gen_il-gen-gen_entities.adb changes. + (Lit_Hash): Add missing "[root type only]" comment. + * exp_ch5.adb: Add Reinit_Field_To_Zero calls for vanishing + fields. + * sem_ch10.adb: Likewise. + * sem_ch6.adb: Likewise. + * sem_ch7.adb: Likewise. + * sem_ch8.adb: Likewise. + * sem_ch3.adb: Likewise. Also remove now-unnecessary + Reinit_Field_To_Zero calls. + +2023-05-15 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch7.adb (Hide_Public_Entities): Use the same condition for + subprogram bodies without specification as for those with one. + +2023-05-15 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (New_Copy_Tree): Remove redundant calls to Present. + +2023-05-15 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch8.adb (End_Scope): Simplify lookup of predecessor in + homonym chain. + +2023-05-15 Piotr Trojanek <trojanek@adacore.com> + + * sem_aggr.adb (Resolve_Aggregate): Accept aggregates with OTHERS + appearing inside unchecked conversions. + +2023-05-15 Steve Baird <baird@adacore.com> + + * warnsw.ads: Add a new element, + Warn_On_Ineffective_Predicate_Test, to the Opt_Warnings_Enum + enumeration type. + * warnsw.adb: Bind "-gnatw_s" to the new + Warn_On_Ineffective_Predicate_Test switch. Add the new switch to + the set of switches enabled by -gnata . + * sem_ch13.adb + (Build_Discrete_Static_Predicate): Declare new local procedure, + Warn_If_Test_Ineffective, which conditionally generates new + warning. Call this new procedure when building a new element of an + RList. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Document the -gnatw_s switch (and the corresponding -gnatw_S + switch). + * gnat_ugn.texi: Regenerate. + +2023-05-15 Yannick Moy <moy@adacore.com> + + * sem_attr.adb: Update comment referring to rule number. + +2023-05-15 Ronan Desplanques <desplanques@adacore.com> + + * sem_attr.adb: sem_attr.adb (Analyze_Access_Attribute): Tighten + validity check for task types. + +2023-05-15 Ronan Desplanques <desplanques@adacore.com> + + * doc/gnat_rm/implementation_defined_characteristics.rst: Fix + minor documentation formatting issue. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-05-15 Bob Duff <duff@adacore.com> + + * exp_ch4.adb + (Expand_N_Op_Expon): Remove the too-big check. Simplify. Signed + and modular cases are combined, etc. Remove code with comment "We + only handle cases where the right type is a[sic] integer", because + the right operand must always be an integer at this point. + +2023-05-15 Bob Duff <duff@adacore.com> + + * sem_attr.adb + (Analyze_Attribute): Add a call to Check_Error_Detected. + +2023-05-15 Yannick Moy <moy@adacore.com> + + * par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to + expression in pragma association. + +2023-05-15 Eric Botcazou <ebotcazou@adacore.com> + + * repinfo.ads (JSON output format): Document special case of + Present member of a Variant object. + * repinfo.adb (List_Structural_Record_Layout): Change the type of + Ext_Level parameter to Integer. Restrict the first recursion with + increasing levels to the fixed part and implement a second + recursion with decreasing levels for the variant part. Deal with + an extension of a type with unknown discriminants. + +2023-05-15 Claire Dross <dross@adacore.com> + + * libgnat/s-valueu.adb: Use cut operations inside assertion to + restore proofs + * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-spark and + s-spcuop dependencies. + +2023-05-15 Yannick Moy <moy@adacore.com> + + * sem_prag.adb (Check_Grouping): Allow Annotate pragmas between + loop pragmas. + +2023-05-15 Javier Miranda <miranda@adacore.com> + + * doc/gnat_rm/implementation_defined_pragmas.rst + (Extensions_Allowed): Document string interpolation. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-05-15 Joel Brobecker <brobecker@adacore.com> + + * doc/gnat_ugn/platform_specific_information.rst + (_PIE_Enabled_By_Default_On_Linux): New section. + * gnat-style.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2023-05-15 Javier Miranda <miranda@adacore.com> + + * exp_disp.adb + (Has_Dispatching_Constructor_Call): New subprogram. + (Expand_Interface_Conversion): No need to perform dynamic + interface conversion when the operand and the target type are + interface types and the target interface type is an ancestor of + the operand type. The unique exception to this rule is when the + operand has a dispatching constructor call (as documented in the + sources). + +2023-05-15 Piotr Trojanek <trojanek@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Reject attribute Initialized + on unchecked unions; fix grammar in comment. + +2023-05-15 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch13.adb (Validate_Unchecked_Conversion): Fix behavior on + System.Address to access to subprogram subtype conversion. + +2023-05-15 Piotr Trojanek <trojanek@adacore.com> + + * atree.ads + (Is_Syntactic_Node): Refactored from New_Copy_Tree. + * atree.adb + (Is_Syntactic_Node): Likewise. + (Copy_Separate_Tree): Use Is_Syntactic_Node. + * sem_util.adb + (Has_More_Ids): Move to Atree. + (Is_Syntactic_Node): Likewise. + +2023-04-18 Jin Ma <jinma@linux.alibaba.com> + + * gcc-interface/utils.cc (unchecked_convert): Fix typo. + +2023-04-17 Martin Liska <mliska@suse.cz> + + * gnatvsn.ads: Bump Library_Version to 14. + +2023-04-15 Eric Botcazou <ebotcazou@adacore.com> + + PR bootstrap/109510 + * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset + align to zero in any case. Set TYPE_USER_ALIGN on the type only if + it is an aggregate type, or else a type whose default alignment is + specifically capped on selected platforms. + +2023-04-14 Eric Botcazou <ebotcazou@adacore.com> + + PR bootstrap/109510 + * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align + to zero if its value is equal to TYPE_ALIGN and the type is scalar. + Set TYPE_USER_ALIGN on the type only if align is positive. + +2023-03-06 Javier Miranda <miranda@adacore.com> + + PR ada/108858 + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with + separate spec, if their return type was visible through a limited- + with context clause, their extra formals were not added when the + spec was analyzed. Now the full view must be available, and the + extra formals can be created and Returns_By_Ref computed. + +2023-03-06 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/108909 + PR ada/108983 + * Make-generated.in: Do not use GNATMAKE. + * gcc-interface/Makefile.in: Ditto. + +2023-02-26 Peter Foley <pefoley2@pefoley.com> + + PR ada/108909 + * Make-generated.in: Use GNATMAKE. + * gcc-interface/Makefile.in: Ditto. + +2023-02-14 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard. + +2023-02-14 Dongsheng Song <dongsheng.song@gmail.com> + + * adaint.c [Linux]: Include <features.h>. + (__gnat_get_executable_load_address) [Linux]: Enable only for + glibc and uClibc. + +2023-01-16 Marc Poulhiès <poulhies@adacore.com> + + * gcc-interface/Make-lang.in: Update copyright years. + * gcc-interface/Makefile.in: Likewise. + * gcc-interface/ada-builtin-types.def: Likewise. + * gcc-interface/ada-builtins.def: Likewise. + * gcc-interface/ada-tree.def: Likewise. + * gcc-interface/ada-tree.h: Likewise. + * gcc-interface/ada.h: Likewise. + * gcc-interface/config-lang.in: Likewise. + * gcc-interface/cuintp.cc: Likewise. + * gcc-interface/decl.cc: Likewise. + * gcc-interface/gadaint.h: Likewise. + * gcc-interface/gigi.h: Likewise. + * gcc-interface/lang-specs.h: Likewise. + * gcc-interface/lang.opt: Likewise. + * gcc-interface/misc.cc: Likewise. + * gcc-interface/system.ads: Likewise. + * gcc-interface/targtyps.cc: Likewise. + * gcc-interface/trans.cc: Likewise. + * gcc-interface/utils.cc: Likewise. + * gcc-interface/utils2.cc: Likewise. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Make_Allocator_For_Return): Convert the expression + to the return object's type in the constrained array case as well. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non- + interface stand-alone object initialized by a function call, call + Remove_Side_Effects on the expression to capture the result. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.ads (Has_Tag_Of_Type): Declare. + * exp_util.adb (Has_Tag_Of_Type): Move to package level. Recurse on + qualified expressions. + * exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference + to the interface tag in more cases for class-wide interface objects. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Is_Temporary_For_Interface_Object): Delete. + (Is_Finalizable_Transient.Is_Aliased): Deal with the specific case + of temporaries generated for interface objects. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back- + and-forth displacement of the object's address when using a renaming + for an interface object with an expression of the same type. + * exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side + effects of the expression up front for the simple allocators. Do not + call the Adjust primitive if the expression is a function call. + * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call + unnecessarily for a special return object. + (Expand_Simple_Function_Return): Restore the displacement of the + return object's address in the case where the expression is the call + to a function whose result type is a type that needs finalization. + * exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side + effects of the expression before calling Make_Subtype_From_Expr. + (Make_CW_Equivalent_Type): If the expression has the tag of its type + and this type has a uniform size, use 'Object_Size of this type in + lieu of 'Size of the expression to compute the expression's size. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Make_Allocator_For_Return): Put back an interface + conversion for expressions with non-interface class-wide type. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased + objects if their nominal subtype is not an unconstrained array. + +2023-01-16 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions + needed for an initializating expression that is a function call to + be renamable into the Is_Renamable_Function_Call predicate. + Use it to implement the renaming in the case of class-wide interface + objects. Remove an interface conversion on all paths, separate and + optimize the renaming path in the special expansion for interfaces. + (Is_Renamable_Function_Call): New predicate. + (Make_Allocator_For_Return): Put back an interface conversion. + * exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access + checks on RE_Tag_Ptr. + +2023-01-09 Arnaud Charlet <charlet@adacore.com> + + * 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-09 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement. + (Make_Final_Call): Likewise. + +2023-01-09 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete. + (Is_Displacement_Of_Object_Or_Function_Result): Likewise. + * exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to... + (Is_Temporary_For_Interface_Object): ...this. + (Is_Finalizable_Transient): Adjust call to above renaming. + (Is_Displacement_Of_Object_Or_Function_Result): Delete. + (Requires_Cleanup_Actions): Remove special handling of the + temporaries created for interface objects. + * exp_ch7.adb (Build_Finalizer): Likewise. + +2023-01-07 LIU Hao <lh_mouse@126.com> + + PR middle-end/108300 + * adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include + <windows.h>`. + * cio.c: Likewise. + * ctrl_c.c: Likewise. + * expect.c: Likewise. + * gsocket.h: Likewise. + * mingw32.h: Likewise. + * mkdir.c: Likewise. + * rtfinal.c: Likewise. + * rtinit.c: Likewise. + * seh_init.c: Likewise. + * sysdep.c: Likewise. + * terminals.c: Likewise. + * tracebak.c: Likewise. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the + handling of objects with (class-wide) interface type by using the + same idiom as the other cases generating a renaming. + * exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak + pattern matching code and exclude special return objects. + (Requires_Cleanup_Actions): Adjust comment. + * exp_ch7.adb (Build_Finalizer): Likewise. + +2023-01-05 Piotr Trojanek <trojanek@adacore.com> + + * freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to + subprogram declaration early and then set the Body_To_Inling flag. + +2023-01-05 Piotr Trojanek <trojanek@adacore.com> + + * freeze.adb (Build_Renamed_Body): Revert a special case for + GNATprove; remove unnecessary initialization of a local variable. + +2023-01-05 Marc Poulhiès <poulhies@adacore.com> + + * sem_ch12.adb (Instantiate_Package_Body): Better filtering when + installing parent on the scope stack. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * repinfo.ads (The JSON output format): Document change. + * urealp.adb (UR_Write_To_JSON): Output a fraction instead of a + decimal approximation. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): New local variable + Func_Id holding the function for a special return object. + Use a direct renaming in the class-wide case when the initializing + expression is a captured function call, except for a special return + object when the two functions do not return on the same stack. + Apply the accessibility check for class-wide special return objects. + * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New. + Do not force a dispatching call to the primitive operation _Size if + the expression is known to statically have the tag of its type. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment. + +2023-01-05 Ronan Desplanques <desplanques@adacore.com> + + * sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for + warning about use of parentheses for array aggregates. + +2023-01-05 Javier Miranda <miranda@adacore.com> + + * scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket) + (Tok_Left_Interpolated_String): Placed in no category since they + don't fit well in the existing categories. Fix typo in comment. + (Inside_Interpolated_String_Literal): New scan state variable. + * scng.adb (Slit): Scan interpolated string literals, + continuations of interpolated string literals and escaped + characters found in interpolated string literals. + (Scan): Handle consecutive interpolated expressions. Handle ending + delimiter placed immediately after an interpolated expression. + Handle string literal placed after interpolated expression. Handle + left and right curly brackets; when extensions are not allowed + they are treated as left and right paren; when extensions are + allowed they are handled as delimiters of interpolated string + literals. + * sinfo.ads (N_Interpolated_String_Literal): New node. + * gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define + N_String_Literal node. + * gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as + concrete node type. + * par-ch2.adb (P_Interpolated_String_Literal): New subprogram. + * par-ch4.adb (P_Simple_Expression): Handle '}' as expression + terminator when scanning an interpolated expression; disable error + recovery machinery for binary operator when we are processing an + interpolated string literal and reach the expression terminator + '}'. + (P_Primary): Call P_Interpolated_String_Literal when the opening + interpolated-string-literal delimiter is found (that is, the left + curly bracket '{'). + * par-tchk.adb (T_Right_Curly_Bracket): New subprogram. + * par.adb (P_Interpolated_String_Literal): New declaration. + (T_Right_Curly_Bracket): New declaration. + * sem.adb (Analyze): Call Analyze_Interpolated_String_Literal. + * sem_ch2.ads (Analyze_Interpolated_String_Literal): New + subprogram + * sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise. + * sem_util.adb (Is_User_Defined_Literal): Complete mapping of + literal aspects adding that interpolated string literals have no + correspondence with any aspect. + * sem_res.adb (Resolve_Interpolated_String_Literal): New + subprogram. + (Has_Applicable_User_Defined_Literal): Complete mapping of literal + aspects adding that interpolated string literals have no + correspondency with any aspect. + * expander.adb (Expand): Add call to + Expand_N_Interpolated_String_Literal. + * exp_util.adb (Insert_Actions): Handle + N_Interpolated_String_Literal nodes; that is, continue climbing. + * exp_ch2.ads (Expand_N_Interpolated_String_Literal): New + subprogram. + * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise. + * exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing + conversion to force dispatching call. Required to handle calls to + descendants. + (Build_String_Put_Image_Call): Do not output string delimiters + when the put_image call is part of an interpolated string literal. + * rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces. + * sprint.adb (Sprint_Node): Output interpolated string contents. + * libgnat/a-stbubo.adb (Get_UTF_8): Add default value for + Trim_Leading_White_Spaces component in aggregate. + (Buffer_Type_Implementation): Update Trim_Leading_White_Spaces. + * libgnat/a-stbuun.adb (Get_UTF_8): Likewise. + (Buffer_Type_Implementation): Likewise. + * libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram. + (Trim_Leading_Spaces): New subprogram. + (Root_Buffer_Type): Adding Trim_Leading_While_Spaces component. + * libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New + subprogram. + (Trim_Leading_Space): New subprogram. + (Put_UTF_8): Handle Trim_Leading_White_Spaces. + (New_Line): Likewise. + * libgnat/s-putima.ads (Put_Image_String): Adding formal + (with_delimiters). + (Put_Image_Wide_String): Likewise. + (Put_Image_Wide_Wide_String): Likewise. + * libgnat/s-putima.adb (Put_Image_String): Adding support for new + formal. + (Put_Image_Wide_String): Likewise. + (Put_Image_Wide_Wide_String): Likewise. + +2023-01-05 Joao Azevedo <azevedo@adacore.com> + + * doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout + switch and update legacy switches. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Freeze_Entity): For the purpose of deciding whether to + freeze an entity coming from an outer scope in an inner scope, treat + the internal subprogram generated because of post-conditions as also + coming from source if the original subprogram itself does. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an + extended return statement in all cases. + (Expand_Subprogram_Contract): Adjust comment. + +2023-01-05 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/g-forstr.adb (F_Kind): Rename enumeration literal. + (P_Flt_Format): Adjust handling of "%g". + (Determine_Notation_And_Aft): New procedure. + (Decimal_Exponent): New function. + (Increment_Integral_Part): New procedure. + (Remove_Extraneous_Decimal_Digit): New procedure. + (Trim_Fractional_Part): New procedure. + * libgnat/g-forstr.ads: Change description of "%g" specifier. + +2023-01-05 Marc Poulhiès <poulhies@adacore.com> + + * sem_ch12.adb (Instantiate_Package_Body): Correctly find the + parent instance to place on the scope stack. + +2023-01-05 Justin Squirek <squirek@adacore.com> + + * sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually + resetting the entity field of a non-prefixed discriminant + reference. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): New local variable used + throughout instead of testing Is_Special_Return_Object every time. + Do not rename an OK_To_Rename object for a special return object. + * exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation + if the result is allocated on the secondary stack. + +2023-01-05 Steve Baird <baird@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma + function to handle case where the pragma's parent is an + N_Aspect_Specification node. In analyzing a Discard_Names pragma, + do not assume that a nonzero number of arguments implies that the + pragma is not a configuration pragma; that assumption only holds + for legal programs. + +2023-01-05 Bob Duff <duff@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Add RM references. + * gnat_ugn.texi: Regenerate. + +2023-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch3.adb (Expand_N_Object_Declaration): For a special return + object of an interface type that is not inherently limited, make + a call to the Adjust primitive after doing the copy. For a special + return object of a non-class-wide type initialized by a function + call, use a direct renaming only if the object doing the capture + is flagged by Is_Related_To_Func_Return. For a special return + object using a direct renaming, reassign the tag, if need be. + * exp_ch6.adb (Expand_Simple_Function_Return): Fix comment. + * exp_util.adb (Is_Related_To_Func_Return): Accept both regular and + renaming object declarations for return objects. + +2023-01-05 Bob Duff <duff@adacore.com> + + * sem_ch5.adb (Analyze_Assignment): Fix the bug by checking + Original_Node. The renaming might be elsewhere, but the (original) + reference is right here. + * errout.adb: Remove pragma Unreferenced which was added because + of the above bug. + * einfo.ads: Misc cleanup. + * lib.adb: Likewise. + * lib.ads: Likewise. + +2023-01-03 Ghjuvan Lacambre <lacambre@adacore.com> + + * errout.adb (Write_JSON_Span): Escape subprogram name. + +2023-01-03 Ghjuvan Lacambre <lacambre@adacore.com> + + * output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol. + +2023-01-03 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling. + +2023-01-03 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug. + +2023-01-03 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a + captured function call also verifies Is_Related_To_Func_Return. + Do not generate an actual subtype for special return objects. + * exp_util.ads (Is_Related_To_Func_Return): Add commentary. + +2023-01-03 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/g-forstr.adb + (Advance_And_Accumulate_Until_Next_Specifier): New procedure. + ("-"): Replace inline code with call to + Advance_And_Accumulate_Until_Next_Specifier. + (Next_Format): likewise. + +2023-01-03 Eric Botcazou <ebotcazou@adacore.com> + + * checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference): + Return false for artificial dereferences generated by the expander. + +2023-01-03 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment. + * sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref + on functions with foreign convention. + +2023-01-03 Marc Poulhiès <poulhies@adacore.com> + + * exp_aggr.adb (Build_Assignment_With_Temporary): New. + (Expand_Array_Aggregate): Tune backend optimization + and insert a temporary in the case of an access with + Designated_Storage_Model aspect. + (Convert_Array_Aggr_In_Allocator): Likewise. + +2023-01-03 Eric Botcazou <ebotcazou@adacore.com> + + * sem_res.adb (Resolve_Membership_Op): Adjust again latest change. + +2023-01-03 Eric Botcazou <ebotcazou@adacore.com> + + * sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment. + * sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return + false for more artificial dereferences generated by the expander. + (Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally + in -gnatD mode. + * exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the + Is_Aliased flag. + +2023-01-03 Joel Brobecker <brobecker@adacore.com> + + * doc/gnat_ugn/platform_specific_information.rst + (_Platform_Specific_Information): Minor rewording of intro text. + * gnat_ugn.texi: Regenerate. + +2023-01-03 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.ads (Is_Captured_Function_Call): Declare. + * exp_util.adb (Is_Captured_Function_Call): New predicate. + * exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a + rewritten function call as the initializing expression. + * exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a + rewritten function call as the returned expression. + +2023-01-03 Bob Duff <duff@adacore.com> + + * exp_util.adb (Integer_Type_For): Assertion and comment. + (Small_Integer_Type_For): Remove some code and call + Integer_Type_For instead. + * sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..." + seems overly pedantic here. + * exp_attr.adb (Succ, Pred): Clean up: make the code as similar as + possible. + * exp_ch4.adb: Minor: named notation. + +2023-01-03 Javier Miranda <miranda@adacore.com> + + * ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may + appear within the class-wide precondition of a helper subprogram. + This context is treated as suitable because it was already + verified when we were analyzing the original class-wide + precondition. + +2023-01-03 Eric Botcazou <ebotcazou@adacore.com> + + * exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the + ancestor type for a derived array type. + * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the + common processing done on representation items. + For Default_Component_Value and Default_Value, look into the first + subtype to find out the representation items. + +2023-01-02 Iain Sandoe <iain@sandoe.co.uk> + + PR ada/108202 + * gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS): + Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and + -static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered + out for other hosts). + +2023-01-02 Jakub Jelinek <jakub@redhat.com> + + * gnat_ugn.texi: Bump @copying's copyright year. + * gnat_rm.texi: Likewise. + + +Copyright (C) 2023 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. |