Skip various cmp-mem-const tests on lp64 hppa*-*-*
[official-gcc.git] / gcc / ada / ChangeLog-2022
blob19c0a4d5d4245818e4273d18064f06bf51f432ab
1 2022-12-29  Alexandre Oliva  <oliva@adacore.com>
3         * gcc-interface/trans.cc (Sloc_to_locus): Don't map NULL decl.
5 2022-12-06  Yannick Moy  <moy@adacore.com>
7         * contracts.adb (Add_Contract_Item): Allow No_Caching on types.
8         (Check_Type_Or_Object_External_Properties): Check No_Caching.
9         Check that non-effectively volatile types does not contain an
10         effectively volatile component (instead of just a volatile
11         component).
12         (Analyze_Object_Contract): Remove shared checking of No_Caching.
13         * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Adapt checking
14         of No_Caching for types.
15         (Analyze_Pragma): Allow No_Caching on types.
16         * sem_util.adb (Has_Effectively_Volatile_Component): New query function.
17         (Is_Effectively_Volatile): Type with Volatile and No_Caching is not
18         effectively volatile.
19         (No_Caching_Enabled): Remove assertion to apply to all entities.
20         * sem_util.ads: Same.
22 2022-12-06  Javier Miranda  <miranda@adacore.com>
24         * exp_ch6.adb
25         (Build_Static_Check_Helper_Call): Perform implicit type conversion
26         to ensure matching types and avoid reporting spurious errors.
28 2022-12-06  Eric Botcazou  <ebotcazou@adacore.com>
30         * sem_warn.adb (Warn_On_Constant_Valid_Condition): Bail out for a
31         membership test with a mark for a subtype that is predicated.
33 2022-12-06  Eric Botcazou  <ebotcazou@adacore.com>
35         * sem_elab.adb (Processing_In_State): Add Within_Freezing_Actions
36         component.
37         (Process_Conditional_ABE_Call): Compute its value.
38         (Process_Conditional_ABE_Call_SPARK): For a call and a target in
39         the main unit, do not emit any ABE diagnostics if the call occurs
40         in a freezing actions context.
42 2022-12-06  Eric Botcazou  <ebotcazou@adacore.com>
44         * einfo.ads (Actual_Subtype): Document additional usage.
45         * exp_aggr.adb (Expand_Array_Aggregate): Replace test on
46         Is_Build_In_Place_Return_Object with Is_Special_Return_Object.
47         * exp_ch3.adb (Expand_N_Object_Declaration): Factor out parts of the
48         processing done for build-in-place return objects and reuse them to
49         implement a similar processing for specific return objects.
50         * exp_ch4.adb (Expand_Allocator_Expression): Do not generate a tag
51         assignment or an adjustment if the allocator was made for a special
52         return object.
53         (Expand_Concatenate): If the result is allocated on the secondary
54         stack, use an unconstrained allocation.
55         * exp_ch6.ads (Apply_CW_Accessibility_Check): New declaration.
56         (Is_By_Reference_Return_Object): Likewise.
57         (Is_Secondary_Stack_Return_Object): Likewise.
58         (Is_Special_Return_Object): Likewise.
59         * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not bail out for the
60         expression in the declaration of a special return object.
61         (Expand_N_Extended_Return_Statement): Add missing guard and move
62         the class-wide accessibility check to Expand_N_Object_Declaration.
63         (Expand_Simple_Function_Return): Delete obsolete commentary.
64         Skip the special processing for types that require finalization or
65         are returned on the secondary stack if the return originally comes
66         from an extended return statement.  Add missing Constant_Present.
67         (Is_By_Reference_Return_Object): New predicate.
68         (Is_Secondary_Stack_Return_Object): Likewise.
69         (Is_Special_Return_Object): Likewise.
70         * exp_util.adb (Is_Related_To_Func_Return): Also return true if the
71         parent of the expression is the renaming declaration generated for
72         the expansion of a return object.
73         * gen_il-fields.ads (Opt_Field_Enum): Replace Alloc_For_BIP_Return
74         with For_Special_Return_Object.
75         * gen_il-gen-gen_nodes.adb (N_Allocator): Likewise.
76         * gen_il-internals.adb (Image): Remove Alloc_For_BIP_Return.
77         * sem_ch3.adb (Check_Return_Subtype_Indication): New procedure
78         moved from sem_ch6.adb.
79         (Analyze_Object_Declaration): Call it on a return object.
80         * sem_ch4.adb: Add with and use clauses for Rtsfind.
81         (Analyze_Allocator): Test For_Special_Return_Object to skip checks
82         for allocators made for special return objects.
83         Do not report restriction violations for the return stack pool.
84         * sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Return the
85         Actual_Subtype for return objects that live on the secondary stack.
86         * sem_ch6.adb (Check_Return_Subtype_Indication): Move procedure to
87         sem_ch3.adb.
88         (Analyze_Function_Return): Do not call above procedure.
89         * sem_res.adb (Resolve_Allocator): Replace Alloc_For_BIP_Return
90         with For_Special_Return_Object.
91         * sinfo.ads: Likewise.
92         * treepr.adb (Image): Remove Alloc_For_BIP_Return.
93         * gcc-interface/trans.cc (gnat_to_gnu): Do not convert to the result
94         type in the unconstrained array type case if the parent is a simple
95         return statement.
97 2022-12-06  Eric Botcazou  <ebotcazou@adacore.com>
99         * sem_res.adb (Resolve_Membership_Op): Adjust latest change.
101 2022-12-06  Eric Botcazou  <ebotcazou@adacore.com>
103         * exp_ch4.adb (Expand_N_In) <Substitute_Valid_Check>: Rename to...
104         <Substitute_Valid_Test>: ...this.
105         Use Is_Entity_Name to test for the presence of entity references.
106         Do not warn or substitute a valid test for a test with a mark for
107         a subtype that is predicated.
108         Apply the same transformation for a test with a mark for a subtype
109         that is predicated as for a subtype that is not.
110         Remove useless return statement.
111         * sem_res.adb (Resolve_Membership_Op): Perform a special resolution
112         if the left operand is of a universal numeric type.
114 2022-12-06  Justin Squirek  <squirek@adacore.com>
116         * accessibility.adb, accessibility.ads
117         (Accessibility_Message): Moved from sem_attr.
118         (Apply_Accessibility_Check): Moved from checks.
119         (Apply_Accessibility_Check_For_Allocator): Moved from exp_ch4 and
120         renamed
121         (Check_Return_Construct_Accessibility): Moved from sem_ch6.
122         (Innermost_Master_Scope_Depth): Moved from sem_util. Add condition
123         to detect expanded iterators.
124         (Prefix_With_Safe_Accessibility_Level): Moved from sem_attr.
125         (Static_Accessibility_Level): Moved from sem_util.
126         (Has_Unconstrained_Access_Discriminants): Likewise.
127         (Has_Anonymous_Access_Discriminant): Likewise.
128         (Is_Anonymous_Access_Actual): Likewise.
129         (Is_Special_Aliased_Formal_Access): Likewise.
130         (Needs_Result_Accessibility_Level): Likewise.
131         (Subprogram_Access_Level): Likewise.
132         (Type_Access_Level): Likewise.
133         (Deepest_Type_Access_Level): Likewise.
134         (Effective_Extra_Accessibility): Likewise.
135         (Get_Dynamic_Accessibility): Likewise.
136         (Has_Access_Values): Likewise.
137         (Accessibility_Level): Likewise.
138         * exp_attr.adb (Access_Cases): Obtain the proper enclosing object
139         which applies to a given 'Access by looking through type
140         conversions.
141         * exp_ch4.adb (Apply_Accessibility_Check): Moved to accessibility.
142         * exp_ch5.adb: Likewise.
143         * exp_ch6.adb: Likewise.
144         * exp_ch9.adb: Likewise.
145         * exp_disp.adb: Likewise.
146         * gen_il-fields.ads: Add new flag Comes_From_Iterator.
147         * gen_il-gen-gen_nodes.adb: Add new flag Comes_From_Iterator for
148         N_Object_Renaming_Declaration.
149         * sem_ch5.adb (Analyze_Iterator_Specification): Mark object
150         renamings resulting from iterator expansion with the new flag
151         Comes_From_Iterator.
152         * sem_aggr.adb (Resolve_Container_Aggregate): Refine test.
153         * sem_ch13.adb: Add dependence on the accessibility package.
154         * sem_ch3.adb: Likewise.
155         * sem_ch4.adb: Likewise.
156         * sem_ch9.adb: Likewise.
157         * sem_res.adb: Likewise.
158         * sem_warn.adb: Likewise.
159         * exp_ch3.adb: Likewise.
160         * sem_attr.adb (Accessibility_Message): Moved to accessibility.
161         (Prefix_With_Safe_Accessibility_Level): Likewise.
162         * checks.adb, checks.ads (Apply_Accessibility_Check): Likewise.
163         * sem_ch6.adb (Check_Return_Construct_Accessibility): Likewise.
164         * sem_util.adb, sem_util.ads
165         (Accessibility_Level): Likewise.
166         (Deepest_Type_Access_Level): Likewise.
167         (Effective_Extra_Accessibility): Likewise.
168         (Get_Dynamic_Accessibility): Likewise.
169         (Has_Access_Values): Likewise.
170         (Has_Anonymous_Access_Discriminant): Likewise.
171         (Static_Accessibility_Level): Likewise.
172         (Has_Unconstrained_Access_Discriminants): Likewise.
173         (Is_Anonymous_Access_Actual): Likewise.
174         (Is_Special_Aliased_Formal_Access): Likewise.
175         (Needs_Result_Accessibility_Level): Likewise.
176         (Subprogram_Access_Level): Likewise.
177         (Type_Access_Level): Likewise.
178         * sinfo.ads: Document new flag Comes_From_Iterator.
179         * gcc-interface/Make-lang.in: Add entry for new Accessibility package.
181 2022-12-06  Liaiss Merzougue  <merzougue@adacore.com>
183         * libgnat/i-c.adb (To_C): Simplify code for having a single
184         exception raise. Add pragma annotate about uninitialized value
185         which happen only on exception raising.
187 2022-12-01  Eric Botcazou  <ebotcazou@adacore.com>
189         * gcc-interface/trans.cc (get_storage_model_access): Strip any type
190         conversion around the node before looking into it.
192 2022-12-01  Steve Baird  <baird@adacore.com>
194         * sem_ch13.adb
195         (Validate_Aspect_Aggregate): Reject illegal case where none of
196         Add_Named, Add_Unnamed, and Assign_Indexed are specified.
198 2022-12-01  Eric Botcazou  <ebotcazou@adacore.com>
200         * doc/gnat_ugn/gnat_and_program_execution.rst (Non-Symbolic
201         Traceback): Add compilation line.
202         (Symbolic Traceback): Remove obsolete stuff.
203         * doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize): Adjust.
204         * gnat_ugn.texi: Regenerate.
206 2022-12-01  Ronan Desplanques  <desplanques@adacore.com>
208         * lib-xref.adb (Generate_Reference): Fix misphrasing in comment.
210 2022-12-01  Gary Dismukes  <dismukes@adacore.com>
212         * sem_attr.adb (Analyze_Attribute, Attribute_Address): In the case
213         where the attribute's prefix is a dereference of a value of an
214         access type that has aspect Designated_Storage_Model (or a
215         renaming of such a dereference), set the attribute's type to the
216         corresponding Storage_Model_Type's associated address type rather
217         than System.Address.
219 2022-12-01  Ronan Desplanques  <desplanques@adacore.com>
221         * doc/gnat_rm/the_gnat_library.rst: Fix minor issues.
222         * gnat_rm.texi: Regenerate.
224 2022-12-01  Josue Nava Bello  <nava@adacore.com>
226         * doc/share/conf.py: minor updates
228 2022-11-28  Eric Botcazou  <ebotcazou@adacore.com>
230         * libgnat/g-traceb.ads: Minor tweaks in the commentary.
231         (Executable_Load_Address): New function.
232         * doc/gnat_ugn/gnat_and_program_execution.rst (Non-Symbolic
233         Traceback): Adjust to PIE default on Linux.
234         (Symbolic Traceback): Likewise.
235         * doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize): Likewise.
236         * gnat_ugn.texi: Regenerate.
238 2022-11-28  Joel Brobecker  <brobecker@adacore.com>
240         * doc/share/conf.py (extensions): Add 'sphinx_rtd_theme'.
241         (html_theme): Set to 'sphinx_rtd_theme'.
243 2022-11-28  Claire Dross  <dross@adacore.com>
245         * libgnat/g-souinf.ads (Source_Code_Information): Add a new
246         volatile abstract state and add it in the global contract of all
247         functions defined in Source_Info.
249 2022-11-28  Eric Botcazou  <ebotcazou@adacore.com>
251         * exp_ch6.adb (Expand_Actuals.Add_Call_By_Copy_Code): Deal with a
252         reference to a validation variable in the actual.
253         (Expand_Actuals.Add_Validation_Call_By_Copy_Code): Minor tweak.
254         (Expand_Actuals): Call Add_Validation_Call_By_Copy_Code directly
255         only if Add_Call_By_Copy_Code is not to be invoked.
257 2022-11-28  Eric Botcazou  <ebotcazou@adacore.com>
259         * adaint.c [Linux]: Include <link.h>.
260         (__gnat_get_executable_load_address) [Linux]: Enable.
262 2022-11-28  Yannick Moy  <moy@adacore.com>
264         * sem_prag.adb (Check_Part_Of_Abstract_State): Add verification
265         related to use of Part_Of, so that constituents in private childs
266         that refer to state in a sibling or parent unit force that unit to
267         have a body.
268         * sem_util.adb (Check_State_Refinements): Drop the requirement to
269         have always a package body for state refinement, when the package
270         state is mentioned in no Part_Of specification.
271         * sem_ch3.adb (Analyze_Declarations): Refresh SPARK refs in comment.
272         * sem_ch7.adb (Analyze_Package_Declaration): Likewise.
274 2022-11-24  Eric Botcazou  <ebotcazou@adacore.com>
276         * gcc-interface/trans.cc (gnat_to_gnu) <N_Assignment_Statement>: Add
277         assertion that memset is not supposed to be used when the target has
278         a storage model with Copy_To routine.
280 2022-11-24  Justin Squirek  <squirek@adacore.com>
282         * sem_ch8.adb
283         (Find_Direct_Name): Remove bypass to reanalyze incorrectly
284         analyzed discriminals.
285         (Set_Entity_Or_Discriminal): Avoid resetting the entity field of a
286         discriminant reference to be the internally generated renaming
287         when we are in strict preanalysis mode.
289 2022-11-22  Piotr Trojanek  <trojanek@adacore.com>
291         * sem_prag.adb (Analyze_Depends_Global): Accept aspects on
292         abstract subprograms.
294 2022-11-22  Ghjuvan Lacambre  <lacambre@adacore.com>
296         * frontend.adb (Frontend): Re-enable Validate_Subprogram_Calls.
297         * exp_ch6.adb (Check_BIP_Actuals): When in CodePeer mode, do not
298         attempt to validate procedures coming from an
299         Elab_Spec/Elab_Body/Elab_Subp_Body procedure.
301 2022-11-22  Piotr Trojanek  <trojanek@adacore.com>
303         * errout.adb (To_Be_Removed): Decrease total number of errors when
304         removing a warning that has been escalated into error.
305         * erroutc.adb (dmsg): Print Warn_Runtime_Raise flag.
307 2022-11-22  Eric Botcazou  <ebotcazou@adacore.com>
309         * exp_ch3.adb (Make_Tag_Assignment): Fix formatting glitches.
311 2022-11-22  Eric Botcazou  <ebotcazou@adacore.com>
313         * contracts.adb (Build_Subprogram_Contract_Wrapper): Do not fiddle
314         with the Was_Expression_Function flag. Move a few lines around.
316 2022-11-21  Eric Botcazou  <ebotcazou@adacore.com>
318         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Constant>: Revert
319         latest change.
320         * gcc-interface/trans.cc (gnat_to_gnu) <N_Object_Declaration>:
321         Tweak latest change.
323 2022-11-21  Marc Poulhiès  <poulhies@adacore.com>
325         * exp_pakd.adb (Create_Packed_Array_Impl_Type): Do not share PAT
326         if sizes of types differ.
328 2022-11-21  Ronan Desplanques  <desplanques@adacore.com>
330         * doc/gnat_rm/implementation_defined_pragmas.rst: Restore
331         alphabetical ordering.
332         * gnat_rm.texi: Regenerate.
333         * gnat_ugn.texi: Regenerate.
335 2022-11-21  Eric Botcazou  <ebotcazou@adacore.com>
337         * sem_util.adb (Needs_Secondary_Stack): Test Is_Constrained
338         directly instead of Is_Definite_Subtype for an array subtype.
340 2022-11-21  Steve Baird  <baird@adacore.com>
342         * libgnat/s-rident.ads: Define a new restriction,
343         No_Task_Hierarchy_Implicit. This is like the No_Task_Hierarchy
344         restriction, but with the difference that setting this restriction
345         does not mean the H.6(6) post-compilation check is satisified.
346         * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): If it is
347         known that the function result cannot have tasks, then pass in a
348         null literal for the activation chain actual parameter. This
349         avoids generating a reference to an entity that
350         Build_Activation_Chain_Entity may have chosen not to generate a
351         declaration for.
352         * gnatbind.adb (List_Applicable_Restrictions): Do not list the
353         No_Task_Hierarchy_Implicit restriction.
354         * restrict.adb: Special treatment for the
355         No_Task_Hierarchy_Implicit restriction in functions
356         Get_Restriction_Id and Restriction_Active. The former is needed to
357         disallow the (unlikely) case that a user tries to explicitly
358         reference the No_Task_Hierarchy_Implicit restriction.
359         * sem_prag.adb (Analyze_Pragma): If a Sequential
360         Partition_Elaboration_Policy is specified (and the
361         No_Task_Hierarchy restriction is not already enabled), then enable
362         the No_Task_Hierarchy_Implicit restriction.
364 2022-11-21  Eric Botcazou  <ebotcazou@adacore.com>
366         * exp_ch3.adb (Expand_N_Object_Declaration): Use Typ local
367         constant throughout, remove Ret_Obj_Typ local constant, rename
368         Ref_Type into Acc_Typ in a couple of places, remove a useless call
369         to Set_Etype, use a consistent checks suppression scheme, adjust
370         comments for the sake of consistencty and alphabetize some local
371         declarations.
372         * exp_ch6.adb (Expand_Simple_Function_Return): Remove a couple of
373         redundant local constants.
375 2022-11-21  Steve Baird  <baird@adacore.com>
377         * libgnat/a-sttebu.adb (Put): Add missing call to Encode.
378         * libgnat/a-strsup.ads: Declare new Put_Image procedure and add
379         Put_Image aspect specification for type Super_String.
380         * libgnat/a-strsup.adb (Put_Image): New procedure.
381         * libgnat/a-stwisu.ads: Declare new Put_Image procedure and add
382         Put_Image aspect specification for type Super_String.
383         * libgnat/a-stwisu.adb (Put_Image): New procedure.
384         * libgnat/a-stzsup.ads: Declare new Put_Image procedure and add
385         Put_Image aspect specification for type Super_String.
386         * libgnat/a-stzsup.adb (Put_Image): New procedure.
388 2022-11-21  Ghjuvan Lacambre  <lacambre@adacore.com>
390         * frontend.adb (Frontend): Disable subprogram call validation.
392 2022-11-21  Bob Duff  <duff@adacore.com>
394         * warnsw.ads, warnsw.adb: Move warning flags here from package
395         Opt. Rename Warning_Record to be Warnings_State. Use an array
396         instead of a record; this simplifies the code. Add renamings of
397         all the array components for easy reference outside this package.
398         Pass the "Family" to Set_Warning_Switch. Use more table-driven
399         code. Misc cleanup and comment fixes.
400         * opt.ads: Move warning switches to Warnsw.
401         * gnat1drv.adb
402         (Adjust_Global_Switches): Expanded names needed.
403         * inline.ads: Rename Warning_Record to be Warnings_State.
404         * sem_ch12.adb: Likewise.
405         * sem_prag.adb: Use new Set_Warning_Switch.
406         * contracts.adb, errout.adb, exp_aggr.adb, exp_ch11.adb: Adjust
407         imports for move to Warnsw.
408         * exp_ch5.adb, exp_prag.adb, exp_util.adb, frontend.adb: Likewise.
409         * layout.adb, lib-xref.adb, restrict.adb, scn.adb, sem_aggr.adb:
410         Likewise.
411         * sem_attr.adb, sem_case.adb, sem_ch10.adb, sem_ch11.adb:
412         Likewise.
413         * sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb: Likewise.
414         * sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb: Likewise.
415         * sem_eval.adb, sem_res.adb, sem_util.adb, sem_warn.adb: Likewise.
416         * switch-c.adb: Likewise.
418 2022-11-21  Steve Baird  <baird@adacore.com>
420         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Improve
421         the description of how the -gnatw.h switch interacts with
422         "partial" record layout specifications (i.e., specifications where
423         the locations of some components are left unspecified).
424         * gnat_ugn.texi: Regenerate.
426 2022-11-21  Marc Poulhiès  <poulhies@adacore.com>
428         * sem_ch13.adb (Check_One_Attr): produce error when Size attribute
429         used on aliased object of elementary types with nonconfirming
430         value.
432 2022-11-21  Ronan Desplanques  <desplanques@adacore.com>
434         * sfn_scan.adb (Scan_SFN_Pragmas): Improve handling of comments.
436 2022-11-21  Ronan Desplanques  <desplanques@adacore.com>
438         * par-ch3.adb (P_Declarative_Item): Tweak handling of with keyword.
440 2022-11-14  Boris Yakobowski  <yakobowski@adacore.com>
442         * sem_case.adb: silence false positive warning emitted by CodePeer
443         on predefined equality for type Choice_Range_Info.
445 2022-11-14  Bob Duff  <duff@adacore.com>
447         * atree.ads: Remove some comments.
448         * err_vars.ads: Likewise.
449         * scans.ads: Likewise.
450         * sinput.ads: Likewise.
451         * checks.ads: Likewise. Also add a "???" comment indicating an
452         obsolete comment that is too difficult to correct at this time.
453         * sem_attr.adb: Minor comment rewrite.
455 2022-11-14  Javier Miranda  <miranda@adacore.com>
457         * exp_intr.adb
458         (Expand_Dispatching_Constructor_Call): Improve warning message.
459         * freeze.adb
460         (Check_No_Parts_Violations): Improve error message.
462 2022-11-14  Alexandre Oliva  <oliva@adacore.com>
464         * doc/gnat_rm/security_hardening_features.rst: Document optional
465         hardcfr checkpoints.
466         * gnat_rm.texi: Regenerate.
467         * gnat_ugn.texi: Regenerate.
469 2022-11-14  Gary Dismukes  <dismukes@adacore.com>
471         * checks.adb
472         (Apply_Type_Conversion_Checks): Apply Root_Type to the type of the
473         prefix of a Pos attribute when checking whether the type is a
474         formal discrete type.
476 2022-11-14  Ronan Desplanques  <desplanques@adacore.com>
478         * libgnat/s-regpat.adb
479         (Parse): Fix handling of non-capturing parentheses.
481 2022-11-14  Yannick Moy  <moy@adacore.com>
483         * sem_prag.adb (Analyze_Pragma): Add special case for the special
484         local subprogram created for contracts.
486 2022-11-14  Piotr Trojanek  <trojanek@adacore.com>
488         * sem_ch12.adb (Build_Subprogram_Wrappers): Adjust slocs of the
489         copied aspects, just like we do in Build_Class_Wide_Expression for
490         inherited class-wide contracts.
492 2022-11-14  Piotr Trojanek  <trojanek@adacore.com>
494         * inline.adb (Replace_Formal): Tune whitespace.
495         * sem_ch12.adb (Check_Overloaded_Formal_Subprogram): Refine type
496         of a formal parameter and local variable; this routine operates on
497         nodes and not entities.
498         * sem_ch12.ads: Tune whitespace.
500 2022-11-14  Piotr Trojanek  <trojanek@adacore.com>
502         * sem_ch12.adb (Analyze_Associations): Expand wrappers for
503         GNATprove.
505 2022-11-14  Patrick Bernardi  <bernardi@adacore.com>
507         * libgnat/system-qnx-arm.ads: Set Support_Atomic_Primitives to
508         True.
509         * libgnat/system-rtems.ads: Add Support_Atomic_Primitives.
511 2022-11-14  Yannick Moy  <moy@adacore.com>
513         * errout.adb (Error_Msg_Internal): Store span for Optr field, and
514         adapt to new type of Optr.
515         (Finalize. Output_JSON_Message, Remove_Warning_Messages): Adapt to
516         new type of Optr.
517         (Output_Messages): Use Optr instead of Sptr to display code
518         snippet closer to error.
519         * erroutc.adb (dmsg): Adapt to new type of Optr.
520         * erroutc.ads (Error_Msg_Object): Make Optr a span like Sptr.
521         * errutil.adb (Error_Msg): Likewise.
523 2022-11-14  Arnaud Charlet  <charlet@adacore.com>
525         * doc/gnat_ugn/gnat_utility_programs.rst: Remove gnatcheck
526         reference.
528 2022-11-14  Martin Liska  <mliska@suse.cz>
530         Revert:
531         2022-11-09  Martin Liska  <mliska@suse.cz>
533         * doc/gnat-style.rst: Moved to...
534         * doc/gnat-style/index.rst: ...here.
535         * doc/gnat_rm.rst: Moved to...
536         * doc/gnat_rm/index.rst: ...here.
537         * doc/gnat_ugn.rst: Moved to...
538         * doc/gnat_ugn/index.rst: ...here.
539         * doc/share/latex_elements.py: Moved to...
540         * doc/share/ada_latex_elements.py: ...here.
541         * gcc-interface/Make-lang.in:
542         * doc/Makefile: Removed.
543         * doc/share/conf.py: Removed.
544         * doc/share/gnu_free_documentation_license.rst: Removed.
545         * gnat-style.texi: Removed.
546         * gnat_rm.texi: Removed.
547         * gnat_ugn.texi: Removed.
548         * doc/gnat-style/conf.py: New file.
549         * doc/gnat-style/gnu_free_documentation_license.rst: New file.
550         * doc/gnat_rm/conf.py: New file.
551         * doc/gnat_rm/gnu_free_documentation_license.rst: New file.
552         * doc/gnat_ugn/conf.py: New file.
553         * doc/gnat_ugn/gnu_free_documentation_license.rst: New file.
554         * doc/share/adabaseconf.py: New file.
555         * doc/gnat_rm/security_hardening_features.rst: Add role.
556         * doc/gnat_ugn/platform_specific_information.rst: Remove
557         duplicate definition of |nbsp|.
559 2022-11-14  Martin Liska  <mliska@suse.cz>
561         Revert:
562         2022-11-14  Martin Liska  <mliska@suse.cz>
564         * gcc-interface/Make-lang.in: Support --with-sphinx-build.
566 2022-11-14  Martin Liska  <mliska@suse.cz>
568         Revert:
569         2022-11-09  Martin Liska  <mliska@suse.cz>
571         * doc/gnat_rm/index.rst: Fix cross manual refs.
573 2022-11-14  Martin Liska  <mliska@suse.cz>
575         Revert:
576         2022-11-14  Martin Liska  <mliska@suse.cz>
578         * gcc-interface/Make-lang.in:
579         Support installation if sphinx-build is missing.
581 2022-11-09  Martin Liska  <mliska@suse.cz>
583         * gcc-interface/Make-lang.in:
584         Support installation if sphinx-build is missing.
586 2022-11-09  Martin Liska  <mliska@suse.cz>
588         * doc/gnat_rm/index.rst: Fix cross manual refs.
590 2022-11-09  Martin Liska  <mliska@suse.cz>
592         * gcc-interface/Make-lang.in: Support --with-sphinx-build.
594 2022-11-09  Martin Liska  <mliska@suse.cz>
596         * doc/gnat-style.rst: Moved to...
597         * doc/gnat-style/index.rst: ...here.
598         * doc/gnat_rm.rst: Moved to...
599         * doc/gnat_rm/index.rst: ...here.
600         * doc/gnat_ugn.rst: Moved to...
601         * doc/gnat_ugn/index.rst: ...here.
602         * doc/share/latex_elements.py: Moved to...
603         * doc/share/ada_latex_elements.py: ...here.
604         * gcc-interface/Make-lang.in:
605         * doc/Makefile: Removed.
606         * doc/share/conf.py: Removed.
607         * doc/share/gnu_free_documentation_license.rst: Removed.
608         * gnat-style.texi: Removed.
609         * gnat_rm.texi: Removed.
610         * gnat_ugn.texi: Removed.
611         * doc/gnat-style/conf.py: New file.
612         * doc/gnat-style/gnu_free_documentation_license.rst: New file.
613         * doc/gnat_rm/conf.py: New file.
614         * doc/gnat_rm/gnu_free_documentation_license.rst: New file.
615         * doc/gnat_ugn/conf.py: New file.
616         * doc/gnat_ugn/gnu_free_documentation_license.rst: New file.
617         * doc/share/adabaseconf.py: New file.
618         * doc/gnat_rm/security_hardening_features.rst: Add role.
619         * doc/gnat_ugn/platform_specific_information.rst: Remove
620         duplicate definition of |nbsp|.
622 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
624         * gcc-interface/utils2.cc (build_allocator): For unconstrained
625         array types with a storage model and an initializing expression,
626         copy the initialization expression separately from the bounds. In
627         all cases with a storage model, pass the locally computed size for
628         the store.
630 2022-11-08  Steve Baird  <baird@adacore.com>
632         * sem_attr.adb
633         (Eval_Attribute): Don't simplify 'Image call if Put_Image has been
634         specified.
636 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
638         * exp_ch6.adb, exp_put_image.adb, sem_aggr.adb, sem_attr.adb,
639         sem_ch5.adb, sem_type.adb, sem_util.adb: Replace
640         "Present (Find_Aspect (...))" with "Has_Aspect".
642 2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
644         * contracts.adb
645         (Preanalyze_Class_Conditions): New procedure.
646         (Preanalyze_Condition): Moved out from Merge_Class_Conditions in
647         order to be spec-visible.
648         * contracts.ads
649         (Preanalyze_Class_Conditions): New procedure.
650         * sem_prag.adb
651         (Analyze_Pre_Post_Condition_In_Decl_Part): Call
652         Preanalyze_Class_Conditions when necessary.
654 2022-11-08  Johannes Kliemann  <kliemann@adacore.com>
656         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Set
657         Support_Atomic_Primitives to True.
658         * libgnat/system-vxworks7-aarch64.ads: Set
659         Support_Atomic_Primitives to True.
660         * libgnat/system-vxworks7-arm-rtp-smp.ads: Set
661         Support_Atomic_Primitives to True.
662         * libgnat/system-vxworks7-arm.ads: Set Support_Atomic_Primitives
663         to True.
664         * libgnat/system-vxworks7-ppc-kernel.ads: Set
665         Support_Atomic_Primitives to False.
666         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Set
667         Support_Atomic_Primitives to False.
668         * libgnat/system-vxworks7-ppc64-kernel.ads: Set
669         Support_Atomic_Primitives to True.
670         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Set
671         Support_Atomic_Primitives to True.
672         * libgnat/system-vxworks7-x86-kernel.ads: Set
673         Support_Atomic_Primitives to True.
674         * libgnat/system-vxworks7-x86-rtp-smp.ads: Set
675         Support_Atomic_Primitives to True.
676         * libgnat/system-vxworks7-x86_64-kernel.ads: Set
677         Support_Atomic_Primitives to True.
678         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Set
679         Support_Atomic_Primitives to True.
681 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
683         * fe.h (Get_Warn_On_Questionable_Layout): Add void parameter.
685 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
687         * sem_ch12.adb (Instantiate_Formal_Subprogram): Copy aspect Ghost
688         from formal subprogram declaration to the internally generated
689         procedure.
691 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
693         * sem_ch4.adb (Analyze_Case_Expression): Compute the
694         interpretations of the expression only at the end of the analysis,
695         but skip doing it if it is the operand of a type conversion.
696         (Analyze_If_Expression): Likewise.
697         * sem_res.adb (Resolve): Deal specially with conditional
698         expression that is the operand of a type conversion.
699         (Resolve_Dependent_Expression): New procedure.
700         (Resolve_Case_Expression): Call Resolve_Dependent_Expression.
701         (Resolve_If_Expression): Likewise.
702         (Resolve_If_Expression.Apply_Check): Take result type as
703         parameter.
704         (Resolve_Type_Conversion): Do not warn about a redundant
705         conversion when the operand is a conditional expression.
707 2022-11-08  Javier Miranda  <miranda@adacore.com>
709         * debug.adb
710         (Debug_Flag_Underscore_XX): Switch -gnatd_X used temporarily to allow
711         disabling extra formal checks.
712         * exp_attr.adb
713         (Expand_N_Attribute_Reference [access types]): Add extra formals
714         to the subprogram referenced in the prefix of 'Unchecked_Access,
715         'Unrestricted_Access or 'Access; required to check that its extra
716         formals match the extra formals of the corresponding subprogram type.
717         * exp_ch3.adb
718         (Stream_Operation_OK): Declaration moved to the public part of the
719         package.
720         (Validate_Tagged_Type_Extra_Formals): New subprogram.
721         (Expand_Freeze_Record_Type): Improve the code that takes care of
722         adding the extra formals of dispatching primitives; extended to
723         add also the extra formals to renamings of dispatching primitives.
724         * exp_ch3.ads
725         (Stream_Operation_OK): Declaration moved from the package body.
726         * exp_ch6.adb
727         (Check_BIP_Actuals): Complete documentation.
728         (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
729         part of the package. In addition, a parameter has been added to
730         disable an assertion that requires its use with frozen entities.
731         (Duplicate_Params_Without_Extra_Actuals): New subprogram.
732         (Check_Subprogram_Variant): Emit the call without duplicating the
733         extra formals since they will be added when the call is analyzed.
734         (Expand_Call_Helper): Ensure that the called subprogram has all its
735         extra formals, enforce assertion checking extra formals on thunks,
736         and mark calls from thunks as processed-BIP-calls to avoid adding
737         their extra formals twice.
738         (Is_Build_In_Place_Function): Return False for entities with foreign
739         convention.
740         (Is_Build_In_Place_Function_Call): Return True also for not BIP functions
741         that have BIP formals since the extra actuals are required.
742         (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
743         Is_Return_Object replaced by the local variable Is_OK_Return_Object
744         that evaluates to False for scopes with foreign convention.
745         (Might_Have_Tasks): Fix check of class-wide limited record types.
746         (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
747         function in more contexts; in addition it returns False for functions
748         returning objects with foreign convention.
749         (Needs_BIP_Finalization_Master): Likewise.
750         (Needs_BIP_Alloc_Form): Likewise.
751         (Validate_Subprogram_Calls): Check that the number of actuals (including
752         extra actuals) of calls in the subtree N match their corresponding
753         formals.
754         * exp_ch6.ads
755         (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
756         part of the package. In addition, a parameter has been added to
757         disable an assertion that requires its use with frozen entities.
758         (Is_Build_In_Place_Function_Call): Complete documentation.
759         (Validate_Subprogram_Calls): Check that the number of actuals (including
760         extra actuals) of calls in the subtree N match their corresponding
761         formals.
762         * freeze.adb
763         (Check_Itype): Add extra formals to anonymous access subprogram itypes.
764         (Freeze_Expression): Improve code that disables the addition of extra
765         formals to functions with foreign convention.
766         (Check_Extra_Formals): Moved to package Sem_Ch6 as Extra_Formals_OK.
767         (Freeze_Subprogram): Add extra formals to non-dispatching subprograms.
768         * frontend.adb
769         (Frontend): Validate all the subprogram calls; it can be disabled using
770         switch -gnatd_X
771         * sem_ch3.adb
772         (Access_Subprogram_Declaration): Defer the addition of extra formals to
773         the freezing point so that we know the convention.
774         (Check_Anonymous_Access_Component): Likewise.
775         (Derive_Subprogram): Fix documentation.
776         * sem_ch6.adb
777         (Has_Reliable_Extra_Formals): New subprogram.
778         (Check_Anonymous_Return): Fix check of access to class-wide limited
779         record types.
780         (Check_Untagged_Equality): Placed in alphabetical order.
781         (Extra_Formals_OK): Subprogram moved from freeze.adb.
782         (Extra_Formals_Match_OK): New subprogram.
783         (Has_BIP_Formals): New subprogram.
784         (Has_Extra_Formals): New subprograms.
785         (Needs_Accessibility_Check_Extra): New subprogram.
786         (Parent_Subprogram): New subprogram.
787         (Add_Extra_Formal): Minor code cleanup.
788         (Create_Extra_Formals): Enforce matching extra formals on overridden
789         and aliased entities.
790         * sem_ch6.ads
791         (Extra_Formals_Match_OK): New subprogram.
792         (Extra_Formals_OK): Subprogram moved from freeze.adb.
793         * sem_eval.adb
794         (Compile_Time_Known_Value): Improve predicate to avoid assertion
795         failure; found working on this ticket; this change does not
796         affect the behavior of the compiler because this subprogram
797         has an exception handler that returns False when the assertion
798         fails.
799         * sem_util.adb
800         (Needs_Result_Accessibility_Level): Do not return False for dispatching
801         operations compiled with Ada_Version < 2012 since they they may be
802         overridden by primitives compiled with Ada_Version >= Ada_2012.
804 2022-11-08  Bob Duff  <duff@adacore.com>
806         * warnsw.ads, warnsw.adb, fe.h, err_vars.ads, errout.ads: Move
807         Warning_Doc_Switch from Err_Vars to Warnsw. Access
808         Warn_On_Questionable_Layout on the C side via a function rather
809         than a variable, because we plan to turn the variables into
810         renamings, and you can't Export renamings.
811         * erroutc.adb, switch-c.adb, errout.adb: Likewise.
812         * gcc-interface/decl.cc: Use Get_Warn_On_Questionable_Layout
813         instead of Warn_On_Questionable_Layout.
814         * gcc-interface/Makefile.in (GNATMAKE_OBJS): Add warnsw.o, because
815         it is indirectly imported via Errout.
816         * gcc-interface/Make-lang.in (GNATBIND_OBJS): Likewise and remove
817         restrict.o (not needed).
819 2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
821         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
822         (-gnatwc): Fix flag documentation.
823         * gnat_ugn.texi: Regenerate.
825 2022-11-08  Steve Baird  <baird@adacore.com>
827         * sem_ch3.adb
828         (Analyze_Object_Declaration): Do not perform expansion actions if
829         In_Spec_Expression is true.
831 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
833         * sem_ch4.adb (Analyze_Qualified_Expression): Analyze the
834         expression only after setting the type.
835         (Analyze_Unchecked_Type_Conversion): Likewise.
836         (Analyze_Short_Circuit): Likewise for the operands.
837         (Analyze_Type_Conversion): Minor tweaks.
838         (Analyze_Unchecked_Expression): Likewise.
840 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
842         * sem_ch4.adb (Analyze_Qualified_Expression): Remove redundant
843         line.
845 2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
847         * contracts.adb (Preanalyze_Condition): Use
848         Preanalyze_Spec_Expression.
850 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
852         * exp_imgv.adb
853         (Expand_Wide_Image_Attribute): Handle just like attribute Image.
854         (Expand_Wide_Wide_Image_Attribute): Likewise.
855         * exp_put_image.adb
856         (Build_Image_Call): Adapt to also work for Wide and Wide_Wide
857         attributes.
858         * exp_put_image.ads
859         (Build_Image_Call): Update comment.
860         * rtsfind.ads
861         (RE_Id): Support wide variants of Get.
862         (RE_Unit_Table): Likewise.
864 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
866         * libgnat/a-ngcoar.ads, libgnat/a-ngcoar.adb: Remove extra spaces.
868 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
870         * sem_ch12.adb (Validate_Formal_Type_Default): Remove call to
871         Collect_Interfaces, which had no effect apart from populating a
872         list that was not used; fix style.
874 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
876         * exp_spark.adb (SPARK_Freeze_Type): Refine type of a local
877         object.
878         * sem_ch3.adb (Derive_Subprograms): Remove initial value for
879         New_Subp, which is in only written as an out parameter and never
880         read.
882 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
884         * sem_res.adb (Resolve_If_Expression): Remove obsolete special
885         case.
887 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
889         * sem_aggr.adb (Resolve_Delta_Aggregate): Implement rules related
890         to limited objects appearing as the base expression.
892 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
894         * sem_ch3.adb (OK_For_Limited_Init_In_05): Handle delta aggregates
895         just like other aggregates.
897 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
899         * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject
900         expressions of a limited types.
902 2022-11-08  Javier Miranda  <miranda@adacore.com>
904         * exp_ch9.adb
905         (Build_Master_Entity): Handle missing case: when the context of
906         the master is a BIP function whose result type has tasks.
908 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
910         * libgnat/a-tags.adb
911         (Interface_Ancestor_Tags): Raise Tag_Error on No_Tag.
912         (Is_Descendant_At_Same_Level): Likewise.
914 2022-11-08  Bob Duff  <duff@adacore.com>
916         * usage.adb: Add -gnatw_q and -gnatw_Q.
918 2022-11-07  Cedric Landet  <landet@adacore.com>
920         * doc/gnat_ugn/gnat_and_program_execution.rst: Mention the needed
921         -no-pie for windows to use gprof.
922         * gnat_ugn.texi: Regenerate.
924 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
926         * lib-xref.adb (Hash): Tune hash function.
928 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
930         * sem_prag.adb (Non_Significant_Pragma_Reference): Detect
931         references with aggregates; only assign local variables Id and C
932         when necessary.
934 2022-11-07  Bob Duff  <duff@adacore.com>
936         * exp_ch4.adb
937         (Component_Equality, Expand_Array_Equality)
938         (Expand_Record_Equality): Use named notation.
940 2022-11-07  Bob Duff  <duff@adacore.com>
942         * exp_ch4.adb
943         (Expand_Array_Equality): Do not test Ltyp = Rtyp here, because
944         that is necessarily true. Move assertion thereof to more general
945         place.
946         (Expand_Composite_Equality): Pass in Outer_Type, for use in
947         warnings. Rename Typ to be Comp_Type, to more clearly distinguish
948         it from Outer_Type. Print warning when appropriate.
949         * exp_ch4.ads: Minor comment fix.
950         * errout.ads: There is no such pragma as Warning_As_Pragma --
951         Warning_As_Error must have been intended. Improve comment for ?x?.
952         * exp_ch3.adb
953         (Build_Untagged_Equality): Update comment to be accurate for more
954         recent versions of Ada.
955         * sem_case.adb
956         (Choice_Analysis): Declare user-defined "=" functions as abstract.
957         * sem_util.ads
958         (Is_Bounded_String): Give RM reference in comment.
959         * warnsw.ads, warnsw.adb
960         (Warn_On_Ignored_Equality): Implement new warning switch -gnatw_q.
961         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
962         Document new warning switch.
963         * gnat_ugn.texi: Regenerate.
965 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
967         * sem_aux.ads (Is_Body): Annotate with Inline.
968         * sem_util.ads (Is_Body_Or_Package_Declaration): Likewise.
970 2022-11-07  Bob Duff  <duff@adacore.com>
972         * freeze.adb
973         (Build_Inherited_Condition_Pragmas): Do nothing if A_Post is
974         empty.
976 2022-11-07  Quentin Ochem  <ochem@adacore.com>
977             Steve Baird  <baird@adacore.com>
979         * bindgen.adb: fixed the way the device init and final symbols are
980         computed, re-using the normal way these symbols would be computed
981         with a __device_ prefix. Also fixed the "is null;" procedure on
982         the host side which are not Ada 95, replaced with a procedure
983         raising an exception as it should never be called. Remove the
984         unused function Device_Ada_Final_Link_Name.
986 2022-11-07  Steve Baird  <baird@adacore.com>
988         * opt.ads: Declare new string pointer variable, CUDA_Device_Library_Name.
989         Modify comments for existing Boolean variable Enable_CUDA_Device_Expansion.
990         * switch-b.adb: When "-d_c" switch is encountered, check that the next
991         character is an "'='; use the remaining characters to initialize
992         Opt.CUDA_Device_Library_Name.
993         * bindgen.adb: Remove (for now) most support for host-side invocation of
994         device-side finalization. Make use of the new CUDA_Device_Library_Name
995         in determining the string used to refer (on the host side) to the
996         device-side initialization procedure. Declare the placeholder routine
997         that is named in the CUDA_Execute pragma (and the CUDA_Register_Function
998         call) as an exported null procedure, rather than as an imported procedure.
999         It is not clear whether it is really necessary to specify the link-name
1000         for this should-never-be-called subprogram on the host side, but for now it
1001         shouldn't hurt to do so.
1003 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1005         * exp_ch6.adb (Expand_Protected_Subprogram_Call): Examine scope
1006         tree and not the scope stack.
1008 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1010         * mdll.ads (Build_Import_Library): Fix grammar in comment.
1011         * mdll.adb (Build_Import_Library): Directly execute code of a
1012         nested routine; rename No_Lib_Prefix to Strip_Lib_Prefix.
1014 2022-11-07  Bob Duff  <duff@adacore.com>
1016         * sem_warn.adb
1017         (Check_For_Warnings): Remove unnecessary exception handler.
1018         (Warn_On_Known_Condition): Suppress warning when we detect a True
1019         or False that has been turned into a more complex expression
1020         because True is represented as "nonzero". (Note that the complex
1021         expression will subsequently be constant-folded to a Boolean True
1022         or False). Also simplify to always print "condition is always ..."
1023         instead of special-casing object names. The special case was
1024         unhelpful, and indeed wrong when the expression is a literal.
1026 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1028         * checks.adb (Safe_To_Capture_In_Parameter_Value): Remove.
1029         * sem_util.adb (Safe_To_Capture_Value): Stop search at the current
1030         body.
1032 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1034         * sem_warn.adb (Warn_On_In_Out): Remove No_ prefix; flip return
1035         values between True and False; adapt caller.
1037 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1039         * sem_ch13.adb (Add_Call): Just look at Instantiation_Depth.
1040         * sem_ch3.adb (Derive_Subprograms): Likewise.
1041         * sem_warn.adb (Check_References): Remove redundant filtering with
1042         Instantiation_Depth that follows filtering with
1043         Instantiation_Location.
1044         * sinput.adb (Instantiation_Depth): Reuse Instantiation_Location.
1046 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1048         * sem_warn.adb
1049         (No_Warn_On_In_Out): For subprograms we can simply call
1050         Warnings_Off.
1051         (Output_Non_Modified_In_Out_Warnings): Remove repeated
1052         suppression.
1054 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1056         * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Reject boxes in
1057         delta array aggregates.
1059 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1061         * sem_res.adb (Enclosing_Declaration_Or_Statement): Moved to
1062         Sem_Util.
1063         * sem_util.ads (Enclosing_Declaration_Or_Statement): Moved from
1064         Sem_Res.
1065         * sem_util.adb (Enclosing_Declaration_Or_Statement): Likewise.
1067 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1069         * sem_res.adb (Resolve): Only call Comes_From_Predefined_Lib_Unit
1070         when its result might be needed.
1072 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1074         * sem_ch12.adb (Check_Generic_Actuals): Remove redundant parens;
1075         refactor an excessive if-statement; remove repeated call to Node.
1077 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1079         * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Move
1080         comment next to a condition that it describes.
1082 2022-11-07  Steve Baird  <baird@adacore.com>
1084         * exp_put_image.adb
1085         (Image_Should_Call_Put_Image): Correctly handle the case of an
1086         inherited Put_Image aspect specification for a scalar type.
1088 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1090         * libgnarl/s-interr.adb: Tune whitespace.
1092 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1094         * libgnarl/s-interr.adb: Reorder context items and pragmas.
1096 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1098         * exp_ch4.adb
1099         (Expand_Modular_Addition): Rewrite using Make_XXX calls.
1100         (Expand_Modular_Op): Likewise.
1101         (Expand_Modular_Subtraction): Likewise.
1102         * exp_imgv.adb
1103         (Expand_User_Defined_Enumeration_Image): Likewise.
1105 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1107         * checks.adb (Apply_Arithmetic_Overflow_Strict): Rewrite using a
1108         newly created operator node.
1109         * exp_ch4.adb (Expand_Array_Comparison): Likewise.
1110         * exp_ch6.adb (Add_Call_By_Copy_Code): Rewriting actual parameter
1111         using its own location and not the location of the subprogram
1112         call.
1113         * sem_warn.adb (Check_References): Looping with Original_Node is
1114         no longer needed.
1116 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1118         * sem_prag.adb (Is_In_Context_Clause): Rewrite without negations
1119         and inequalities.
1121 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1123         * sem_prag.adb (Analyze_Pragma [Pragma_Obsolescent]): Reject
1124         misplaced pragma.
1126 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1128         * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warnings
1129         about obsolescent functions just like we tag similar warnings for
1130         packages and procedures.
1132 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
1134         * exp_attr.adb (Expand_N_Attribute_Reference): Remove useless
1135         skipping for attribute Input.
1137 2022-11-04  Justin Squirek  <squirek@adacore.com>
1139         * exp_attr.adb (Expand_N_Attribute_Reference): Skip operand
1140         validity checks for attributes Has_Same_Storage and
1141         Overlaps_Storage.
1143 2022-11-04  Eric Botcazou  <ebotcazou@adacore.com>
1145         * errout.adb (Remove_Warning_Messages.Check_For_Warning): Do not
1146         reinstate the Original_Node in the tree.
1147         * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Loop): Copy the bounds
1148         on all paths.
1150 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1152         * libgnat/g-excact.ads
1153         (Register_Global_Action): Refill comment.
1154         (Name_To_Id): Change pragma Restriction from singular to plural.
1156 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1158         * sem_warn.adb (Check_References): Remove redundant guard, as it
1159         is implied by a preceding call to Referenced_Check_Spec.
1161 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1163         * sem_warn.adb (Check_References): Remove useless query for "spec"
1164         of a variable; refactor nested if-statements into a single
1165         condition.
1167 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1169         * sem_util.adb
1170         (In_Pragma_Expression): Add standard guard against searching too
1171         far.
1172         (In_Quantified_Expression): Likewise.
1173         * sem_warn.adb
1174         (May_Need_Initialized_Actual): Remove redundant parens.
1175         (Check_References): Remove guard that duplicates a condition from
1176         the enclosing if-statement; only assign E1T variable when
1177         necessary.
1178         (Within_Postcondition): Fix layout.
1179         (No_Warn_On_In_Out): Balance parens in comment.
1181 2022-11-04  Steve Baird  <baird@adacore.com>
1183         * doc/gnat_rm/implementation_defined_pragmas.rst: Add the standard
1184         '... "On" enables this extension.' sentence to the description of
1185         static intrinsic functions.
1186         * sem_ch13.adb
1187         (Analyze_Aspect_Spec): In the call to Error_Msg_GNAT_Extension for
1188         a Static aspect specification for an intrinsic function, specify
1189         Is_Core_Extension => True.
1190         * sem_eval.adb
1191         (Eval_Intrinsic_Call): Test Core_Extensions_Allowed instead of
1192         testing All_Extensions_Allowed.
1193         * gnat_rm.texi: Regenerate.
1195 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1197         * aspects.adb (Relocate_Aspect): Remove call to Set_Has_Aspects.
1198         * sem_ch12.adb (Analyze_Formal_Package_Declaration): Likewise.
1199         * sem_util.adb (Copy_Ghost_Aspect, Copy_SPARK_Mode_Aspect):
1200         Likewise.
1202 2022-11-04  Javier Miranda  <miranda@adacore.com>
1204         * exp_intr.adb
1205         (Expand_Dispatching_Constructor_Call): Report an error on
1206         unsupported dispatching constructor calls and report a warning on
1207         calls that may fail at run time.
1209 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1211         * sem_util.adb
1212         (Check_Components): Iterate using
1213         First/Next_Component_Or_Discriminant.
1214         (Has_Preelaborable_Initialization): Avoid repeated iteration with
1215         calls to Check_Components with First_Entity and
1216         First_Private_Entity.
1217         (Is_Independent_Object_Entity): Tune indentation.
1219 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1221         * sem_ch7.adb (Clear_Constants): Only iterate from First_Entity
1222         through Next_Entity; only examine variables because packages have
1223         no assignable formal parameters.
1225 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1227         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
1228         typos.
1229         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Fix typos
1230         and refill as necessary; remove trailing whitespace.
1231         * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typos.
1232         * gnat_ugn.texi: Regenerate.
1234 2022-11-04  Marc Poulhiès  <poulhies@adacore.com>
1236         * sem_util.ads (Add_Block_Identifier): Add new extra Scope
1237         argument.
1238         * sem_util.adb (Add_Block_Identifier): Likewise and use this scope
1239         variable instead of Current_Scope.
1240         * exp_util.adb (Wrap_Statements_In_Block): Add new scope argument
1241         to Add_Block_Identifier call.
1243 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1245         * sem_util.adb (Kill_Current_Values): Only iterate from
1246         First_Entity through Next_Entity.
1248 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1250         * sem_ch6.adb (Controlling_Formal): Iterate with First/Next_Formal
1251         and not with First/Next_Entity.
1253 2022-11-04  Javier Miranda  <miranda@adacore.com>
1255         * exp_disp.adb
1256         (Expand_Interface_Conversion): Fix typo in comment.
1258 2022-11-04  Javier Miranda  <miranda@adacore.com>
1260         * exp_disp.adb
1261         (Expand_Interface_Conversion): Under configurable runtime, when
1262         the target type is an interface that is an ancestor of the operand
1263         type, skip generating code to displace the pointer to reference
1264         the target dispatch table.
1265         * sem_disp.adb
1266         (Propagate_Tag): Handle class-wide types when checking for the
1267         addition of an implicit interface conversion.
1269 2022-11-04  Ronan Desplanques  <desplanques@adacore.com>
1271         * doc/gnat_rm/standard_library_routines.rst: Fix typo.
1272         * gnat_rm.texi: Regenerate.
1274 2022-11-04  Ghjuvan Lacambre  <lacambre@adacore.com>
1276         * sa_messages.ads, sa_messages.adb: Remove files.
1278 2022-11-04  Ghjuvan Lacambre  <lacambre@adacore.com>
1280         * checks.adb, exp_atag.adb, exp_attr.adb, exp_ch4.adb, exp_ch6.adb,
1281         exp_ch7.adb, exp_dbug.adb, exp_disp.adb, exp_unst.adb, exp_util.adb,
1282         freeze.adb, layout.adb, pprint.adb, rtsfind.adb, sem_aggr.adb,
1283         sem_attr.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
1284         sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb,
1285         sem_util.adb, sem_warn.adb:
1286         Replace uses of `not Present (X)` with `No (X)`.
1288 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1290         * einfo.ads: Fix typos in comments; refill as necessary.
1291         * sinfo.ads: Likewise.
1293 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1295         * doc/gnat_rm/implementation_defined_aspects.rst: Fix typos.
1296         * doc/gnat_rm/implementation_defined_attributes.rst: Likewise
1297         * doc/gnat_rm/implementation_defined_characteristics.rst: Likewise
1298         * doc/gnat_rm/implementation_defined_pragmas.rst: Likewise
1299         * doc/gnat_rm/standard_library_routines.rst: Likewise.
1300         * gnat_rm.texi: Regenerate.
1302 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1304         * sem_ch8.adb (Restore_Scope_Stack): Remove elements from the head
1305         and not the tail of an element list.
1307 2022-11-04  Ronan Desplanques  <desplanques@adacore.com>
1309         * sinfo.ads: Small editorial changes.
1311 2022-11-04  Steve Baird  <baird@adacore.com>
1313         * opt.ads: Replace Ada_Version_Type enumeration literal
1314         Ada_With_Extensions with two literals, Ada_With_Core_Extensions
1315         and Ada_With_All_Extensions. Update uses of the deleted literal.
1316         Replace Extensions_Allowed function with two functions:
1317         All_Extensions_Allowed and Core_Extensions_Allowed.
1318         * errout.ads, errout.adb: Add Boolean parameter to
1319         Error_Msg_GNAT_Extension to indicate whether the construct in
1320         question belongs to the curated subset.
1321         * exp_ch5.adb, par-ch4.adb, sem_case.adb, sem_ch3.adb:
1322         * sem_ch4.adb, sem_ch5.adb, sem_ch8.adb: Replace calls to
1323         Extensions_Allowed with calls to Core_Extensions_Allowed for
1324         constructs that are in the curated subset.
1325         * sem_attr.adb, sem_ch13.adb, sem_eval.adb, sem_util.adb: Replace
1326         calls to Extensions_Allowed with calls to All_Extensions_Allowed
1327         for constructs that are not in the curated subset.
1328         * par-ch3.adb: Override default for new parameter in calls to
1329         Error_Msg_GNAT_Extension for constructs in the curated subset.
1330         * par-prag.adb: Add Boolean parameter to Check_Arg_Is_On_Or_Off to
1331         also allow ALL. Set Opt.Ada_Version appropriately for ALL or ON
1332         arguments.
1333         * sem_prag.adb: Allowed ALL argument for an Extensions_Allowed
1334         pragma. Set Opt.Ada_Version appropriately for ALL or ON arguments.
1335         * switch-c.adb: The -gnatX switch now enables only the curated
1336         subset of language extensions (formerly it enabled all of them);
1337         the new -gnatX0 switch enables all of them.
1338         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1339         Document new "-gnatX0" switch and update documentation for
1340         "-gnatX" switch.
1341         * doc/gnat_rm/implementation_defined_pragmas.rst: Document new ALL
1342         argument for pragma Extensions_Allowed and update documentation
1343         for the ON argument. Delete mention of Ada 2022 Reduce attribute
1344         as an extension.
1345         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1347 2022-11-04  Steve Baird  <baird@adacore.com>
1349         * bindgen.adb: Introduce two new string constants for the names of
1350         the C-String variables that are assigned the names for adainit and
1351         adafinal. Replace string literals in Gen_CUDA_Init with references
1352         to these constants. In Gen_CUDA_Defs, generate C-String variable
1353         declarations where these constants are the names of the variables.
1355 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1357         * sem_ch9.adb (Satisfies_Lock_Free_Requirements): Ignore
1358         references to global variables inserted due to pragma
1359         Initialize_Scalars.
1361 2022-11-04  Cedric Landet  <landet@adacore.com>
1363         * doc/gnat_rm/implementation_defined_pragmas.rst: Remove VxWorks
1364         version 6.
1365         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1367 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
1369         * sem_ch9.adb (Satisfies_Lock_Free_Requirements): Detect
1370         references via expanded names.
1372 2022-11-04  Steve Baird  <baird@adacore.com>
1374         * bindgen.adb
1375         (Gen_CUDA_Init): Move existing loop body into a new local
1376         procedure, Gen_CUDA_Register_Function_Call, and replace that loop
1377         body with a call to this procedure. This first part is just
1378         semantics-preserving refactoring. The second part is to add
1379         Gen_CUDA_Register_Function_Call calls after the loop for the
1380         device-side adainit and adafinal procedures.
1382 2022-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1384         * libgnat/system-linux-sparc.ads (Support_Atomic_Primitives): New
1385         constant set to True.
1387 2022-10-06  Eric Botcazou  <ebotcazou@adacore.com>
1389         * gcc-interface/ada-tree.def (LOAD_EXPR): New expression code.
1390         * gcc-interface/gigi.h (build_storage_model_load): Declare.
1391         (build_storage_model_store): Likewise.
1392         (instantiate_load_in_expr): Likewise.
1393         (INSTANTIATE_LOAD_IN_EXPR): New macro.
1394         (instantiate_load_in_array_ref): Declare.
1395         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Type>: Set a
1396         fake discriminant number on the fields of the template type.
1397         (gnat_to_gnu_field): Use integer for DECL_DISCRIMINANT_NUMBER.
1398         * gcc-interface/misc.cc (gnat_init_ts): Mark LOAD_EXPR as typed.
1399         * gcc-interface/trans.cc (fold_constant_decl_in_expr) <ARRAY_REF>:
1400         Also preserve the 4th operand.
1401         (Attribute_to_gnu): Deal with LOAD_EXPR of unconstrained array type.
1402         <Attr_Size>: Call INSTANTIATE_LOAD_IN_EXPR for a storage model.
1403         <Attr_Length>: Likewise.
1404         <Attr_Bit_Position>: Likewise.
1405         (get_storage_model): New function.
1406         (get_storage_model_access): Likewise.
1407         (storage_model_access_required_p): Likewise.
1408         (Call_to_gnu): Add GNAT_STORAGE_MODEL parameter and deal with it.
1409         Also deal with actual parameters that have a storage model.
1410         (gnat_to_gnu) <N_Object_Declaratio>: Adjust call to Call_to_gnu.
1411         <N_Explicit_Dereference>: Deal with a storage model access.
1412         <N_Indexed_Component>: Likewise.
1413         <N_Slice>: Likewise.
1414         <N_Selected_Component>: Likewise.
1415         <N_Assignment_Statement>: Adjust call to Call_to_gnu.  Deal with a
1416         storage model access either on the LHS, on the RHS or on both.
1417         <N_Function_Cal>: Adjust call to Call_to_gnu.
1418         <N_Free_Statement>: Deal with a pool that is a storage model.
1419         Replace test for UNCONSTRAINED_ARRAY_REF with test on the type.
1420         (gnat_gimplify_expr) <CALL_EXPR>: Tidy up.
1421         <LOAD_EXPR>: New case.
1422         <UNCONSTRAINED_ARRAY_REF>: Move down.
1423         * gcc-interface/utils.cc (maybe_unconstrained_array): Deal with a
1424         LOAD_EXPR by recursing on its first operand.
1425         * gcc-interface/utils2.cc (build_allocator): Deal with a pool that
1426         is a storage model.
1427         (build_storage_model_copy): New function.
1428         (build_storage_model_load): Likewise.
1429         (build_storage_model_store): Likewise.
1430         (instantiate_load_in_expr): Likewise.
1431         (instantiate_load_in_array_ref): Likewise.
1432         (gnat_rewrite_reference) <ARRAY_REF>: Also preserve the 4th operand.
1433         (get_inner_constant_reference) <ARRAY_REF>: Remove useless test.
1434         (gnat_invariant_expr) <ARRAY_REF>: Rewrite test.
1436 2022-10-06  Steve Baird  <baird@adacore.com>
1438         * sem_ch6.adb
1439         (Analyze_Procedure_Call): Replace "return;" with "goto Leave;", as
1440         per comment preceding body of Analyze_Procedure_Call.
1442 2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
1444         * sem_ch9.adb (Allows_Lock_Free_Implementation): Reject
1445         conditional goto statements.
1447 2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
1449         * doc/gnat_rm/implementation_defined_pragmas.rst
1450         (Lock_Free): Remove inconsistent periods that end item
1451         descriptions.
1452         * sem_ch9.adb
1453         (Allows_Lock_Free_Implementation): Remove unnecessary guard
1454         against an empty list of parameters; replace low-level entity kind
1455         membership test with a high-level query; refill error message.
1456         * gnat_rm.texi: Regenerate.
1458 2022-10-06  Alexandre Oliva  <oliva@adacore.com>
1460         * doc/gnat_rm/security_hardening_features.rst: Add examples of
1461         codegen changes in hardened conditionals.
1462         * gnat_rm.texi: Regenerate.
1464 2022-10-06  Alexandre Oliva  <oliva@adacore.com>
1466         * doc/gnat_rm/security_hardening_features.rst: Add examples of
1467         codegen changes in hardened booleans. Mention that C traps where
1468         Ada raises exceptions.
1469         * gnat_rm.texi: Regenerate.
1471 2022-10-06  Alexandre Oliva  <oliva@adacore.com>
1473         * doc/gnat_rm/security_hardening_features.rst: Add examples of
1474         codegen changes in stack scrubbing.
1475         * gnat_rm.texi: Regenerate.
1477 2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
1479         * exp_ch9.adb (Build_Lock_Free_Protected_Subprogram_Body): Replace
1480         shallow copy of protected statements with a deep copy.
1482 2022-10-06  Marc Poulhiès  <poulhies@adacore.com>
1484         * fe.h (Has_Storage_Model_Type_Aspect)
1485         (Has_Designated_Storage_Model_Aspect, Storage_Model_Object)
1486         (Storage_Model_Copy_From, Storage_Model_Copy_To): Add
1487         declarations.
1488         * sem_util.ads: Add WARNING markers for functions for which a new
1489         C declaration has been added in fe.h
1491 2022-10-06  Steve Baird  <baird@adacore.com>
1493         * exp_util.adb
1494         (Get_Current_Value_Condition): Treat references occurring within
1495         the condition of an if statement, an elsif, or a while loop in the
1496         same way as references that occur before the start of that
1497         enclosing construct.
1499 2022-10-06  Gary Dismukes  <dismukes@adacore.com>
1501         * sem_ch4.adb (Analyze_Call): Add test of Comes_From_Source on the
1502         enclosing subprogram's Entity_Id for determining whether to
1503         perform the compile-time accessibility check on actuals passed to
1504         aliased formals in a function call occurring within a return
1505         statement. That test excludes cases where the call occurs within
1506         the return statement of a Pre'Class wrapper function.
1508 2022-10-06  Bob Duff  <duff@adacore.com>
1510         * exp_ch5.adb
1511         (Expand_Assign_Array_Loop_Or_Bitfield): Minor cleanups.
1513 2022-10-06  Yannick Moy  <moy@adacore.com>
1515         * sem_prag.adb (Analyze_Pragma): Ignore one variant of pragma
1516         Warnings in GNATprove mode.
1518 2022-10-06  Bob Duff  <duff@adacore.com>
1520         * exp_ch5.adb
1521         (Expand_Assign_Array_Loop_Or_Bitfield): Disable the
1522         Fast_Copy_Bitfield optimization in certain cases.
1524 2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
1526         * sem_prag.adb
1527         (Sig_Pragma): Change flag for pragma Refined_State to mean "not
1528         significant"; this is primarily for documentation, because the
1529         exact value of the flag is not really taken into account for
1530         Refined_State.
1531         (Is_Non_Significant_Pragma_Reference): Add special handling for
1532         pragma Refined_State.
1534 2022-09-29  Ronan Desplanques  <desplanques@adacore.com>
1536         * einfo.ads: remove documentation duplicate
1538 2022-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1540         * contracts.adb (Build_Subprogram_Contract_Wrapper): Put back the
1541         extended return statement if the result type is built-in-place.
1542         * sem_attr.adb (Analyze_Attribute_Old_Result): Also expect an
1543         extended return statement.
1545 2022-09-29  Bob Duff  <duff@adacore.com>
1547         * exp_ch5.adb
1548         (Expand_Assign_Array_Loop_Or_Bitfield): Make the checks for
1549         volatile and independent objects more precise.
1551 2022-09-29  Piotr Trojanek  <trojanek@adacore.com>
1553         * sem_util.adb (Collect_Visible_States): Ignore package renamings.
1555 2022-09-26  Ghjuvan Lacambre  <lacambre@adacore.com>
1557         * doc/gnat_rm/implementation_defined_attributes.rst: Rename Valid_Image.
1558         * gnat_rm.texi: Regenerate.
1559         * gnat_ugn.texi: Regenerate.
1561 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1563         * sem_ch12.adb (Build_Instance_Compilation_Unit_Nodes): Relocate
1564         auxiliary declarations from the original compilation unit to the
1565         newly created compilation unit for the spec.
1567 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1569         * rtsfind.ads
1570         (RTU_Id): Remove unreferenced packages; fix whitespace.
1571         (RE_Id): Remove unreferenced entities; add comment about entity
1572         that is only used by GNATprove and not by GNAT.
1574 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1576         * s-oscons-tmplt.c (STR, STR1): Remove.
1578 2022-09-26  Eric Botcazou  <ebotcazou@adacore.com>
1580         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
1581         (-gnateT): Document new parameter Long_Long_Long_Size.
1582         * gnat_ugn.texi: Regenerate.
1584 2022-09-26  Steve Baird  <baird@adacore.com>
1586         * bindgen.adb: When the binder is invoked for the device, specify
1587         the CUDA_Global aspect for the adainit and adafinal procedures via
1588         a pragma instead of via an aspect_specification.
1590 2022-09-26  Kévin Le Gouguec  <legouguec@adacore.com>
1592         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
1593         (Linker Switches): Document support for mold along with gold; add some
1594         advice regarding OpenSSL in the Pro version.
1595         * gnat_ugn.texi: Regenerate.
1597 2022-09-26  Tucker Taft  <taft@adacore.com>
1599         * sem_util.adb (Original_Aspect_Pragma_Name): Check for Check
1600         pragmas.
1602 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1604         * sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion
1605         based on Full_Analysis flag.
1607 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1609         * sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion of
1610         for iterated component association just like it is done within
1611         quantified expression.
1613 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1615         * contracts.adb (Analyze_Object_Contract): Check SPARK_Mode before
1616         applying SPARK rule.
1618 2022-09-26  Justin Squirek  <squirek@adacore.com>
1620         * sem_util.adb
1621         (Accessibility_Level): Modify indexed and selected components case
1622         by reducing the scope where Original_Node gets used.
1624 2022-09-26  Boris Yakobowski  <yakobowski@adacore.com>
1626         * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation for
1627         gnatmetric.
1629 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1631         * gsocket.h: Remove redefinition of _WIN32_WINNT.
1632         * mingw32.h: Remove conditional definition of _WIN32_WINNT.
1634 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1636         * mingw32.h: Remove condition definition of MAXPATHLEN; the include
1637         directive for stdlib.h was most likely intended to provide the
1638         MAX_PATH.
1640 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1642         * adaint.c: Remove conditional #include directives for old MinGW.
1643         * cal.c: Always include winsock.h, since it is part of modern
1644         MinGW.
1645         * cstreams.c: Remove workaround for old MinGW.
1646         * expect.c: Remove conditional #include directive for old MinGW.
1647         * mingw32.h: Remove STD_MINGW and OLD_MINGW declarations.
1648         * sysdep.c: Remove conditional #include directive for old MinGW.
1650 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1652         * sem_warn.ads (Has_Junk_Name): Reword comment.
1654 2022-09-20  Martin Liska  <mliska@suse.cz>
1656         * exp_ch6.adb: Replace "the the" with "the".
1657         * sem_ch6.adb: Likewise.
1658         * sem_disp.ads: Likewise.
1660 2022-09-15  Richard Biener  <rguenther@suse.de>
1662         * gcc-interface/trans.cc (gigi): Do not initialize void_list_node.
1664 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1666         * gcc-interface/decl.cc (gnat_to_gnu_entity): Relax assertion when
1667         front-end unnesting is enabled.
1669 2022-09-12  Justin Squirek  <squirek@adacore.com>
1671         * sem_util.adb
1672         (Innermost_Master_Scope_Depth): Detect and handle case where scope
1673         depth is not set on an enclosing scope.
1675 2022-09-12  Steve Baird  <baird@adacore.com>
1677         * bindgen.adb: When the binder is invoked for the host, generate a
1678         "with CUDA.Internal;" with clause.
1680 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1682         * doc/gnat_rm/implementation_defined_pragmas.rst
1683         (Pragma Unreferenced): Sync description with
1684         Sem_Warn.Has_Junk_Name routine.
1685         * gnat_rm.texi: Regenerate.
1686         * gnat_ugn.texi: Regenerate.
1688 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1690         * sem_attr.adb (Analyze_Attribute [Valid_Scalars]): Move check for
1691         unchecked union before checks for private and public types.
1693 2022-09-12  Steve Baird  <baird@adacore.com>
1695         * bindgen.adb: When the binder is invoked for the host, it
1696         declares imported subprograms corresponding to the Adainit and
1697         Adafinal routines on the device. Declare string constants and
1698         expression functions for the Ada source names and the link names
1699         of these routines. Generate these subprogram declarations (and
1700         accompanying Import pragmas) in Gen_CUDA_Defs. Generate
1701         CUDA_Execute pragmas to call these subprograms from the host in
1702         Gen_Adafinal and Gen_CUDA_Init. When the binder is invoked for the
1703         device, include a CUDA_Global aspect declaration in the
1704         declarations of Adainit and Adafinal and use the aforementioned
1705         link names in the Export pragmas generated for those two routines.
1706         * debug.adb: Update comments about "d_c" and "d_d" switches.
1707         * opt.ads: Declare new Boolean variable,
1708         Enable_CUDA_Device_Expansion. This complements the existing
1709         Enable_CUDA_Expansion variable, which is used to enable host-side
1710         CUDA expansion. The new variable enables device-side CUDA
1711         expansion. It is currently never set during compilation; it is
1712         only set via a binder switch.
1713         * switch-b.adb
1714         (scan_debug_switches): Add new use of the "-d_d" binder switch.
1715         The new switch and the variable Opt.Enabled_CUDA_Device_Expansion
1716         follow the existing pattern of the "-d_c" switch and the variable
1717         Opt.Enabled_CUDA_Expansion. Flag error if both "-d_c" and "-d_d"
1718         are specified.
1720 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1722         * contracts.adb (Build_Subprogram_Contract_Wrapper): Remove useless
1723         local variable. In the case of a function, replace the extended
1724         return statement by a block statement declaring a renaming of the
1725         call to the local subprogram after removing side effects manually.
1726         (Expand_Subprogram_Contract): Adjust description accordingly.
1727         * exp_ch6.adb (Expand_Ctrl_Function_Call): Rewrite obsolete
1728         comment and do not apply the transformation twice.
1729         * sem_attr.adb (Analyze_Attribute_Old_Result): Now expect a block
1730         statement instead of an extended return statement.
1732 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1734         * erroutc.adb (Set_Msg_Insertion_Name): Special-case printing with
1735         acronyms.
1737 2022-09-12  Yannick Moy  <moy@adacore.com>
1739         * libgnat/s-imagei.adb (Image_Integer): Add justification.
1741 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1743         * sem_prag.adb (Get_SPARK_Mode_Type): Fix header box; replace
1744         chained IF with a CASE statement.
1746 2022-09-12  Yannick Moy  <moy@adacore.com>
1748         * sem_prag.adb (Analyze_Pragma): Accept SPARK_Mode=>Auto as
1749         configuration pragma.
1750         (Get_SPARK_Mode): Make the value for Auto explicit.
1751         * snames.ads-tmpl (Name_Auto): Add name.
1753 2022-09-12  Joffrey Huguet  <huguet@adacore.com>
1755         * doc/gnat_rm/the_gnat_library.rst: Remove paragraphs about SPARK
1756         containers.
1757         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1759 2022-09-12  Yannick Moy  <moy@adacore.com>
1761         * libgnat/s-maccod.ads: Mark package as SPARK_Mode Off.
1763 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1765         * fe.h (Unnest_Subprogram_Mode): Declare.
1767 2022-09-12  Steve Baird  <baird@adacore.com>
1769         * contracts.adb
1770         (Analyze_Package_Contract): Do not analyze the contract of a
1771         temporary package created just to check conformance of an actual
1772         package.
1774 2022-09-12  Joffrey Huguet  <huguet@adacore.com>
1776         * Makefile.rtl: Remove SPARK containers filenames.
1777         * impunit.adb: Remove SPARK containers packages names.
1778         * libgnat/a-cfdlli.adb, libgnat/a-cfdlli.ads: Remove content and
1779         add pragma Compile_Time_Error with suitable message.
1780         * libgnat/a-cfhama.adb, libgnat/a-cfhama.ads: Likewise.
1781         * libgnat/a-cfhase.adb, libgnat/a-cfhase.ads: Likewise.
1782         * libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Likewise.
1783         * libgnat/a-cfinse.adb, libgnat/a-cfinse.ads: Likewise.
1784         * libgnat/a-cfinve.adb, libgnat/a-cfinve.ads: Likewise.
1785         * libgnat/a-cforma.adb, libgnat/a-cforma.ads: Likewise.
1786         * libgnat/a-cforse.adb, libgnat/a-cforse.ads: Likewise.
1787         * libgnat/a-cofove.adb, libgnat/a-cofove.ads: Likewise.
1788         * libgnat/a-cofuma.adb, libgnat/a-cofuma.ads: Likewise.
1789         * libgnat/a-cofuse.adb, libgnat/a-cofuse.ads: Likewise.
1790         * libgnat/a-cofuve.adb, libgnat/a-cofuve.ads: Likewise.
1791         * libgnat/a-cofuba.adb, libgnat/a-cofuba.ads: Remove package.
1793 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1795         * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
1796         Adapt to object declaration being rewritten into object renaming.
1798 2022-09-12  Justin Squirek  <squirek@adacore.com>
1800         * contracts.adb, contracts.ads
1801         (Analyze_Pragmas_In_Declarations): Added to aid in the new
1802         expansion model so that pragmas relating to contracts can get
1803         processed early before the rest of the subprogram containing them.
1804         (Build_Subprogram_Contract_Wrapper): Created to do the majority of
1805         expansion for postconditions. It builds a local wrapper with the
1806         statements and declarations within a given subprogram.
1807         (Is_Prologue_Renaming): Moved out from Process_Preconditions to be
1808         used generally within the contracts package.
1809         (Build_Entry_Contract_Wrapper): Moved from exp_ch7.
1810         (Expand_Subprogram_Contract): Add new local variable Decls to
1811         store expanded declarations needed for evaluation of contracts.
1812         Call new wrapper building procedure and modify comments to match
1813         new expansion model.
1814         (Get_Postcond_Enabled): Deleted.
1815         (Get_Result_Object_For_Postcond): Deleted.
1816         (Get_Return_Success_For_Postcond): Deleted.
1817         (Process_Contract_Cases): Add new parameter to store declarations.
1818         (Process_Postconditions): Add new parameter to store declarations.
1819         (Process_Preconditions): Add new parameter to store declarations.
1820         Add code to move entry-call prologue renamings
1821         * einfo.ads: Document new field Wrapped_Statements and modify
1822         comment for Postconditions_Proc.
1823         * exp_attr.adb
1824         (Analyze_Attribute): Modify expansion of the 'Old attribute to
1825         recognize new expansion model and use Wrapped_Statements instead
1826         of Postconditions_Proc.
1827         * exp_ch6.adb
1828         (Add_Return): Remove special expansion for postconditions.
1829         (Expand_Call): Modify condition checking for calls to access
1830         subprogram wrappers to handle new expansion models.
1831         (Expand_Call_Helper): Remove special expansion for postconditions.
1832         (Expand_Non_Function_Return): Remove special expansion for
1833         postconditions.
1834         (Expand_Simple_Function_Return): Remove special expansion for
1835         postconditions.
1836         * exp_ch7.adb
1837         (Build_Finalizer): Deleted, but replaced by code in
1838         Build_Finalizer_Helper
1839         (Build_Finalizer_Helper): Renamed to Build_Finalizer, and special
1840         handling of 'Old objects removed.
1841         * exp_ch9.adb
1842         (Build_Contract_Wrapper): Renamed and moved to contracts package.
1843         * exp_prag.adb
1844         (Expand_Pragma_Contract_Cases): Delay analysis of contracts since
1845         they now instead get analyzed as part of the wrapper generation
1846         instead of after analysis of their corresponding subprogram's
1847         body.
1848         (Expand_Pragma_Check): Label expanded if-statements which come
1849         from the expansion of assertion statements as
1850         Comes_From_Check_Or_Contract.
1851         * freeze.adb
1852         (Freeze_Entity): Add special case to avoid freezing when a freeze
1853         node gets generated as part of the expansion of a postcondition
1854         check.
1855         * gen_il-gen-gen_nodes.adb: Add new flag
1856         Comes_From_Check_Or_Contract.
1857         * gen_il-fields.ads: Add new field Wrapped_Statements. Add new
1858         flag Comes_From_Check_Or_Contract.
1859         * gen_il-gen-gen_entities.adb: Add new field Wrapped_Statements.
1860         * ghost.adb
1861         (Is_OK_Declaration): Replace Name_uPostconditions with
1862         Name_uWrapped_Statements.
1863         (Is_OK_Statement): Simplify condition due to the loss of
1864         Original_Node as a result of the new expansion model of contracts
1865         and use new flag Comes_From_Check_Or_Contract in its place.
1866         * inline.adb
1867         (Declare_Postconditions_Result): Replace Name_uPostconditions with
1868         Name_uWrapped_Statements.
1869         (Expand_Inlined_Call): Replace Name_uPostconditions with
1870         Name_uWrapped_Statements.
1871         * lib.adb, lib.ads
1872         (ipu): Created to aid in debugging.
1873         * lib-xref.adb
1874         (Generate_References): Remove special handling for postcondition
1875         procedures.
1876         * sem_attr.adb
1877         (Analyze_Attribute_Old_Result): Add new context in which 'Old can
1878         appear due to the changes in expansion. Replace
1879         Name_uPostconditions with Name_uWrapped_Statements.
1880         (Result): Replace Name_uPostconditions with
1881         Name_uWrapped_Statements.
1882         * sem_ch11.adb
1883         (Analyze_Handled_Statements): Remove check to exclude warnings on
1884         useless assignments within postcondition procedures since
1885         postconditions no longer get isolated into separate subprograms.
1886         * sem_ch6.adb
1887         (Analyze_Generic_Subprogram_Body): Modify expansion of generic
1888         subprogram bodies so that contracts (and their associated pragmas)
1889         get analyzed first.
1890         (Analyze_Subprogram_Body_Helper): Remove global HSS variable due
1891         to the HSS of the body potentially changing during the expansion
1892         of contracts. In cases where it was used instead directly call
1893         Handled_Statement_Sequence. Modify expansion of subprogram bodies
1894         so that contracts (and their associated pragmas) get analyzed
1895         first.
1896         (Check_Missing_Return): Create local HSS variable instead of using
1897         a global one.
1898         (Move_Pragmas): Use new pragma table instead of an explicit list.
1899         * sem_elab.adb
1900         (Is_Postconditions_Proc): Deleted since the new scheme of
1901         expansion no longer divides postcondition checks to a separate
1902         subprogram and so cannot be easily identified (similar to
1903         pre-condition checks).
1904         (Info_Call): Remove info printing for _Postconditions subprograms.
1905         (Is_Assertion_Pragma_Target): Remove check for postconditions
1906         procedure
1907         (Is_Bridge_Target): Remove check for postconditions procedure.
1908         (Get_Invocation_Attributes): Remove unneeded local variables and
1909         check for postconditions procedure.
1910         (Output_Call): Remove info printing for _Postconditions
1911         subprograms.
1912         * sem_prag.adb, sem_prag.ads: Add new Pragma table for pragmas
1913         significant to subprograms, along with tech-debt comment.
1914         (Check_Arg_Is_Local_Name): Modified to recognize the new
1915         _Wrapped_Statements internal subprogram and the new expansion
1916         model.
1917         (Relocate_Pragmas_To_Body): Replace Name_uPostconditions with
1918         Name_uWrapped_Statements.
1919         * sem_res.adb
1920         (Resolve_Entry_Call): Add conditional to detect both contract
1921         based wrappers of entries, but also wrappers generated as part of
1922         general contract expansion (e.g. local postconditions
1923         subprograms).
1924         * sem_util.adb
1925         (Accessibility_Level): Verify 'Access is not taken based on a
1926         component of a function result.
1927         (Has_Significant_Contracts): Replace Name_uPostconditions with
1928         Name_uWrapped_Statements.
1929         (Same_Or_Aliased_Subprogram): Add conditional to detect and obtain
1930         the original subprogram based on the new concept of
1931         "postcondition" wrappers.
1932         * sinfo.ads: Add documentation for new flag
1933         Comes_From_Check_Or_Contract.
1934         * snames.ads-tmpl: Remove Name_uPostconditions and add
1935         Name_uWrapped_Statements
1937 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1939         * exp_unst.adb (Unnest_Subprograms.Search_Subprograms): Skip the
1940         subprogram bodies that are not to be unnested.
1942 2022-09-12  Steve Baird  <baird@adacore.com>
1944         * sem_aggr.adb
1945         (Resolve_Array_Aggregate): Generate an appropriate error message
1946         in the case where an error in the source code leads to an
1947         N_Iterated_Element_Association node in a bad context.
1949 2022-09-12  Steve Baird  <baird@adacore.com>
1951         * sem_ch4.adb
1952         (Analyze_Selected_Component): Initialize the local variable Comp
1953         to avoid having CodePeer generate an uninitialized variable
1954         warning.
1956 2022-09-12  Steve Baird  <baird@adacore.com>
1958         * sem_ch4.adb
1959         (Analyze_Selected_Component): Avoid initializing the local
1960         variable Comp if the variable is not going to be subsequently
1961         referenced. This is a correctness issue because the call to
1962         First_Entity can fail.
1964 2022-09-12  Steve Baird  <baird@adacore.com>
1966         * sem_ch9.adb
1967         (Satisfies_Lock_Free_Requirements): If Ceiling_Locking locking
1968         policy has been specified, then either return False (if Lock_Free
1969         was not explicitly specified) or generate a warning that ceiling
1970         locking will not be implemented for this protected unit (if
1971         Lock_Free was explicitly specified). Generate an error message (in
1972         addition to returning False) if an explicit Lock_Free aspect
1973         specification is rejected because atomic primitives are not
1974         supported on the given target.
1975         * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify that the
1976         Lock_Free aspect for a protected unit takes precedence over the
1977         Ceiling_Locking locking policy in the case where both apply.
1978         * gnat_rm.texi: Regenerate.
1980 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1982         * exp_ch9.adb (Build_Protected_Spec): Tidy up and propagate the
1983         Comes_From_Source flag onto the new formal parameters.
1984         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not check
1985         references for subprograms generated for protected subprograms.
1987 2022-09-12  Gary Dismukes  <dismukes@adacore.com>
1989         * sem_res.adb
1990         (Resolve_Equality_Op): Add handling for equality ops with
1991         user-defined literal operands.
1992         * sem_util.ads
1993         (Is_User_Defined_Literal): Update spec comment to indicate
1994         inclusion of named number cases.
1995         * sem_util.adb
1996         (Corresponding_Primitive_Op): Rather than following the chain of
1997         ancestor subprograms via Alias and Overridden_Operation links, we
1998         check for matching profiles between primitive subprograms of the
1999         descendant type and the ancestor subprogram (by calling a new
2000         nested function Profile_Matches_Ancestor). This prevents the
2001         compiler from hanging due to circular linkages via those fields
2002         that can occur between inherited and overriding subprograms
2003         (which might indicate a latent bug, but one that may be rather
2004         delicate to resolve).
2005         (Profile_Matches_Ancestor): New nested subprogram to compare the
2006         profile of a primitive subprogram with the profile of a candidate
2007         ancestor subprogram.
2008         (Is_User_Defined_Literal): Also return True in cases where the
2009         node N denotes a named number (E_Name_Integer and E_Named_Real).
2011 2022-09-12  Steve Baird  <baird@adacore.com>
2013         * debug.adb: remove a comment.
2015 2022-09-12  Bob Duff  <duff@adacore.com>
2017         * checks.adb
2018         (Selected_Length_Checks): In the message for an aggregate that has
2019         too few or too many elements, add "!!" to make sure the warning
2020         gets printed in with'ed units. Note that we have to put "!!"
2021         before the "??", because Compile_Time_Constraint_Error detects
2022         warnings by comparing the last character of the message with '?'
2023         (which is bit dubious, but we're not changing that here).
2024         (Length_Mismatch_Info_Message): Use Unat for some things that
2025         can't be negative. Specify Decimal instead of Auto in calls to
2026         UI_Image.
2027         * sem_util.adb
2028         (Compile_Time_Constraint_Error): Minor.
2029         * uintp.adb
2030         (Image_Uint): It's always better to initialize objects on their
2031         declaration.
2033 2022-09-12  Patrick Bernardi  <bernardi@adacore.com>
2035         * libgnat/system-vxworks7-x86_64-kernel.ads: Set
2036         Support_Atomic_Primitives to false.
2037         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Ditto.
2039 2022-09-12  Patrick Bernardi  <bernardi@adacore.com>
2041         * libgnat/system-qnx-arm.ads: Set Support_Atomic_Primitives to
2042         false.
2043         * libgnat/system-vxworks7-aarch64.ads: Ditto.
2044         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Ditto.
2045         * libgnat/system-vxworks7-arm.ads: Ditto.
2046         * libgnat/system-vxworks7-arm-rtp-smp.ads: Ditto.
2047         * libgnat/system-vxworks7-x86-kernel.ads: Ditto.
2048         * libgnat/system-vxworks7-x86-rtp-smp.ads: Ditto.
2050 2022-09-12  Bob Duff  <duff@adacore.com>
2052         * par-tchk.adb, par-util.adb, prep.adb, prepcomp.adb, scng.adb:
2053         Use "in" instead of chains of "=" connected with "or else".
2054         Likewise for "not in", "/=", "and then". Misc cleanup.
2055         * par-ch10.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb: Likewise.
2056         * par-ch8.adb, par-ch9.adb, par-endh.adb, par-sync.adb: Likewise.
2057         * par.adb
2058         (Pf_Rec): Remove filler, which was added August 25, 1993 to get
2059         around a compiler limitation that no longer exists. Minor cleanup.
2060         Remove useless qualfications.
2061         * par-ch3.adb: Remove redundant return statements.
2062         (Component_Scan_Loop): Remove loop name; there are no nested
2063         loops, so it's unnecessary and possibly misleading, and it causes
2064         too-long lines.
2065         * par-ch5.adb: DRY: Remove comments that repeat the comments in
2066         par.adb.
2067         (P_Sequence_Of_Statements): It is better to initialize things on
2068         the declaration. And constants are better than variables.
2069         (Test_Statement_Required): Remove unnecessary insertion of a null
2070         statement.
2071         * par-ch6.adb, par-ch7.adb: DRY: Remove comments that repeat the
2072         comments in par.adb.
2074 2022-09-12  Javier Miranda  <miranda@adacore.com>
2076         Revert:
2077         2022-09-06  Javier Miranda  <miranda@adacore.com>
2079         * debug.adb
2080         (Debug_Flag_Underscore_X): Switch added temporarily to allow
2081         disabling extra formal checks.
2082         * exp_attr.adb
2083         (Expand_N_Attribute_Reference [access types]): Add extra formals
2084         to the subprogram referenced in the prefix of 'Unchecked_Access,
2085         'Unrestricted_Access or 'Access; required to check that its extra
2086         formals match the extra formals of the corresponding subprogram
2087         type.
2088         * exp_ch3.adb
2089         (Stream_Operation_OK): Declaration moved to the public part of the
2090         package.
2091         (Validate_Tagged_Type_Extra_Formals): New subprogram.
2092         (Expand_Freeze_Record_Type): Improve the code that takes care of
2093         adding the extra formals of dispatching primitives; extended to
2094         add also the extra formals to renamings of dispatching primitives.
2095         * exp_ch3.ads
2096         (Stream_Operation_OK): Declaration moved from the package body.
2097         * exp_ch6.adb
2098         (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
2099         part of the package. In addition, a parameter has been added to
2100         disable an assertion that requires its use with frozen entities.
2101         (Expand_Call_Helper): Enforce assertion checking extra formals on
2102         thunks.
2103         (Is_Build_In_Place_Function): Return False for entities with
2104         foreign convention.
2105         (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
2106         Is_Return_Object replaced by the local variable
2107         Is_OK_Return_Object that evaluates to False for scopes with
2108         foreign convention.
2109         (Might_Have_Tasks): Fix check of class-wide limited record types.
2110         (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
2111         function in more contexts; in addition it returns False for
2112         functions returning objects with foreign convention.
2113         (Needs_BIP_Finalization_Master): Likewise.
2114         (Needs_BIP_Alloc_Form): Likewise.
2115         * exp_ch6.ads
2116         (Stream_Operation_OK): Declaration moved from the package body. In
2117         addition, a parameter has been added to disable assertion that
2118         requires its use with frozen entities.
2119         * freeze.adb
2120         (Check_Itype): Add extra formals to anonymous access subprogram
2121         itypes.
2122         (Freeze_Expression): Improve code that disables the addition of
2123         extra formals to functions with foreign convention.
2124         (Check_Extra_Formals): Moved to package Sem_Ch6 as
2125         Extra_Formals_OK.
2126         (Freeze_Subprogram): Add extra formals to non-dispatching
2127         subprograms.
2128         * sem_ch3.adb
2129         (Access_Subprogram_Declaration): Defer the addition of extra
2130         formals to the freezing point so that we know the convention.
2131         (Check_Anonymous_Access_Component): Likewise.
2132         (Derive_Subprogram): Fix documentation.
2133         * sem_ch6.adb
2134         (Check_Anonymous_Return): Fix check of access to class-wide
2135         limited record types.
2136         (Check_Untagged_Equality): Placed in alphabetical order.
2137         (Extra_Formals_OK): Subprogram moved from freeze.adb.
2138         (Extra_Formals_Match_OK): New subprogram.
2139         (Has_BIP_Formals): New subprogram.
2140         (Has_Extra_Formals): New subprograms.
2141         (Needs_Accessibility_Check_Extra): New subprogram.
2142         (Needs_Constrained_Extra): New subprogram.
2143         (Parent_Subprogram): New subprogram.
2144         (Add_Extra_Formal): Minor code cleanup.
2145         (Create_Extra_Formals): Enforce matching extra formals on
2146         overridden and aliased entities.
2147         (Has_Reliable_Extra_Formals): New subprogram.
2148         * sem_ch6.ads
2149         (Extra_Formals_OK): Subprogram moved from freeze.adb.
2150         (Extra_Formals_Match_OK): New subprogram.
2151         * sem_eval.adb
2152         (Compile_Time_Known_Value): Improve predicate to avoid assertion
2153         failure; found working on this ticket; this change does not affect
2154         the behavior of the compiler because this subprogram has an
2155         exception handler that returns False when the assertion fails.
2156         * sem_util.adb
2157         (Needs_Result_Accessibility_Level): Do not return False for
2158         dispatching operations compiled with Ada_Version < 2012 since they
2159         they may be overridden by primitives compiled with Ada_Version >=
2160         Ada_2012.
2162 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2164         * gcc-interface/decl.cc (gnat_to_gnu_param): Set DECL_ARTIFICIAL.
2166 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2168         * gcc-interface/trans.cc (At_End_Proc_to_gnu): Use the End_Label of
2169         the child Handled_Statement_Sequence for body nodes.
2170         (set_end_locus_from_node): Minor tweaks.
2172 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2174         * gcc-interface/trans.cc (Full_View_Of_Private_Constant): New
2175         function returning the Full_View of a private constant, after
2176         looking through a chain of renamings, if any.
2177         (Identifier_to_gnu): Call it on the entity.  Small cleanup.
2179 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2181         * gcc-interface/utils.cc (gnat_pushdecl): Preserve named
2182         TYPE_DECLs consistently for all kind of pointer types.
2184 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2186         * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Divide>: Report a
2187         violation of No_Dependence on System.GCC if the result type is
2188         larger than a word.
2189         <N_Op_Shift>: Likewise.
2190         <N_Op_Mod>: Likewise.
2191         <N_Op_Rem>: Likewise.
2192         (convert_with_check): Report a violation of No_Dependence on
2193         System.GCC for a conversion between an integer type larger than
2194         a word and a floating-point type.
2196 2022-09-06  Steve Baird  <baird@adacore.com>
2198         * sem_ch9.adb
2199         (Allows_Lock_Free_Implementation): Return False if
2200         Support_Atomic_Primitives is False.
2202 2022-09-06  Steve Baird  <baird@adacore.com>
2204         * debug.adb: Remove comment regarding the -gnatd9 switch.
2205         * doc/gnat_rm/implementation_defined_attributes.rst: Remove all
2206         mention of the Lock_Free attribute.
2207         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
2208         * exp_attr.adb, sem_attr.adb: Remove all mention of the former
2209         Attribute_Lock_Free enumeration element of the Attribute_Id type.
2210         * sem_ch9.adb
2211         (Allows_Lock_Free_Implementation): Remove the Debug_Flag_9 test.
2212         Return False in the case of a protected function whose result type
2213         requires use of the secondary stack.
2214         (Satisfies_Lock_Free_Requirements): This functions checks for
2215         certain constructs and returns False if one is found. In the case
2216         of a protected function, there is no need to check to see if the
2217         protected object is being modified. So it is ok to omit *some*
2218         checks in the case of a protected function. But other checks which
2219         are required (e.g., the test for a reference to a variable that is
2220         not part of the protected object) were being incorrectly omitted.
2221         This could result in accepting "Lock_Free => True" aspect
2222         specifications that should be rejected.
2223         * snames.adb-tmpl: Name_Lock_Free no longer requires special
2224         treatment in Get_Pragma_Id or Is_Pragma_Name (because it is no
2225         longer an attribute name).
2226         * snames.ads-tmpl: Move the declaration of Name_Lock_Free to
2227         reflect the fact that it is no longer the name of an attribute.
2228         Delete Attribute_Lock_Free from the Attribute_Id enumeration type.
2230 2022-09-06  Steve Baird  <baird@adacore.com>
2232         * libgnat/a-coorse.ads: Restore Aggregate aspect specification for
2233         type Set.
2235 2022-09-06  Marc Poulhiès  <poulhies@adacore.com>
2237         * exp_util.adb (Build_Allocate_Deallocate_Proc): Add
2238         Alignment_Param in the formal list for calls to SS_Allocate.
2240 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
2242         * inline.adb (Process_Formals): Preserve Has_Private_View flag while
2243         rewriting formal into actual parameters.
2245 2022-09-06  Javier Miranda  <miranda@adacore.com>
2247         * debug.adb
2248         (Debug_Flag_Underscore_X): Switch added temporarily to allow
2249         disabling extra formal checks.
2250         * exp_attr.adb
2251         (Expand_N_Attribute_Reference [access types]): Add extra formals
2252         to the subprogram referenced in the prefix of 'Unchecked_Access,
2253         'Unrestricted_Access or 'Access; required to check that its extra
2254         formals match the extra formals of the corresponding subprogram
2255         type.
2256         * exp_ch3.adb
2257         (Stream_Operation_OK): Declaration moved to the public part of the
2258         package.
2259         (Validate_Tagged_Type_Extra_Formals): New subprogram.
2260         (Expand_Freeze_Record_Type): Improve the code that takes care of
2261         adding the extra formals of dispatching primitives; extended to
2262         add also the extra formals to renamings of dispatching primitives.
2263         * exp_ch3.ads
2264         (Stream_Operation_OK): Declaration moved from the package body.
2265         * exp_ch6.adb
2266         (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
2267         part of the package. In addition, a parameter has been added to
2268         disable an assertion that requires its use with frozen entities.
2269         (Expand_Call_Helper): Enforce assertion checking extra formals on
2270         thunks.
2271         (Is_Build_In_Place_Function): Return False for entities with
2272         foreign convention.
2273         (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
2274         Is_Return_Object replaced by the local variable
2275         Is_OK_Return_Object that evaluates to False for scopes with
2276         foreign convention.
2277         (Might_Have_Tasks): Fix check of class-wide limited record types.
2278         (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
2279         function in more contexts; in addition it returns False for
2280         functions returning objects with foreign convention.
2281         (Needs_BIP_Finalization_Master): Likewise.
2282         (Needs_BIP_Alloc_Form): Likewise.
2283         * exp_ch6.ads
2284         (Stream_Operation_OK): Declaration moved from the package body. In
2285         addition, a parameter has been added to disable assertion that
2286         requires its use with frozen entities.
2287         * freeze.adb
2288         (Check_Itype): Add extra formals to anonymous access subprogram
2289         itypes.
2290         (Freeze_Expression): Improve code that disables the addition of
2291         extra formals to functions with foreign convention.
2292         (Check_Extra_Formals): Moved to package Sem_Ch6 as
2293         Extra_Formals_OK.
2294         (Freeze_Subprogram): Add extra formals to non-dispatching
2295         subprograms.
2296         * sem_ch3.adb
2297         (Access_Subprogram_Declaration): Defer the addition of extra
2298         formals to the freezing point so that we know the convention.
2299         (Check_Anonymous_Access_Component): Likewise.
2300         (Derive_Subprogram): Fix documentation.
2301         * sem_ch6.adb
2302         (Check_Anonymous_Return): Fix check of access to class-wide
2303         limited record types.
2304         (Check_Untagged_Equality): Placed in alphabetical order.
2305         (Extra_Formals_OK): Subprogram moved from freeze.adb.
2306         (Extra_Formals_Match_OK): New subprogram.
2307         (Has_BIP_Formals): New subprogram.
2308         (Has_Extra_Formals): New subprograms.
2309         (Needs_Accessibility_Check_Extra): New subprogram.
2310         (Needs_Constrained_Extra): New subprogram.
2311         (Parent_Subprogram): New subprogram.
2312         (Add_Extra_Formal): Minor code cleanup.
2313         (Create_Extra_Formals): Enforce matching extra formals on
2314         overridden and aliased entities.
2315         (Has_Reliable_Extra_Formals): New subprogram.
2316         * sem_ch6.ads
2317         (Extra_Formals_OK): Subprogram moved from freeze.adb.
2318         (Extra_Formals_Match_OK): New subprogram.
2319         * sem_eval.adb
2320         (Compile_Time_Known_Value): Improve predicate to avoid assertion
2321         failure; found working on this ticket; this change does not affect
2322         the behavior of the compiler because this subprogram has an
2323         exception handler that returns False when the assertion fails.
2324         * sem_util.adb
2325         (Needs_Result_Accessibility_Level): Do not return False for
2326         dispatching operations compiled with Ada_Version < 2012 since they
2327         they may be overridden by primitives compiled with Ada_Version >=
2328         Ada_2012.
2330 2022-09-06  Arnaud Charlet  <charlet@adacore.com>
2332         * exp_ch4.adb (Expand_N_If_Expression): Disable optimization
2333         for LLVM.
2335 2022-09-06  Javier Miranda  <miranda@adacore.com>
2337         * sem_prag.adb
2338         (Analyze_Pre_Post_Condition_In_Decl_Part): Improve check to report
2339         an error in non-legal class-wide conditions.
2341 2022-09-06  Steve Baird  <baird@adacore.com>
2343         * libgnat/a-strsup.adb, libgnat/a-stwisu.adb, libgnat/a-stzsup.adb
2344         (Super_Slice function and procedure): fix slice length computation.
2346 2022-09-06  Steve Baird  <baird@adacore.com>
2348         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2349         Improve -gnatVa, -gnatVc, -gnatVd, -gnatVe, -gnatVf, -gnatVo,
2350         -gnatVp, -gnatVr, and -gnatVs switch descriptions.
2351         * gnat_ugn.texi: Regenerate.
2353 2022-09-06  Justin Squirek  <squirek@adacore.com>
2355         * exp_unst.adb
2356         (Visit_Node): Add N_Block_Statement to the enclosing construct
2357         case since they can now have "At end" procedures. Also, recognize
2358         calls from "At end" procedures when recording subprograms.
2360 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
2362         * inline.adb (Replace_Formal): Fix name of the referenced routine.
2364 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
2366         * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
2367         Remove unnecessary local constant that was shadowing another
2368         constant with the same initial value.
2370 2022-09-06  Julien Bortolussi  <bortolussi@adacore.com>
2372         * libgnat/a-cforse.ads (Replace): Fix the postcondition.
2374 2022-09-06  Steve Baird  <baird@adacore.com>
2376         * exp_attr.adb
2377         (Attribute_Valid): Ensure that PBtyp is initialized to a value for
2378         which Is_Scalar_Type is True.
2379         * checks.adb
2380         (Determine_Range): Call Implemention_Base_Type instead of
2381         Base_Type in order to ensure that result is suitable for passing
2382         to Enum_Pos_To_Rep.
2384 2022-09-06  Bob Duff  <duff@adacore.com>
2385             Eric Botcazou  <ebotcazou@adacore.com>
2387         * gen_il-fields.ads
2388         (First_Real_Statement): Remove this field.
2389         * gen_il-gen-gen_nodes.adb: Remove the First_Real_Statement field.
2390         Add the At_End_Proc field to nodes that have both Declarations and
2391         HSS.
2392         * sinfo.ads
2393         (At_End_Proc): Document new semantics.
2394         (First_Real_Statement): Remove comment.
2395         * exp_ch11.adb
2396         (Expand_N_Handled_Sequence_Of_Statements): Remove
2397         First_Real_Statement.
2398         * exp_ch7.adb
2399         (Build_Cleanup_Statements): Remove "Historical note"; it doesn't
2400         seem useful, and we have revision history.
2401         (Create_Finalizer): Insert the finalizer later, typically in the
2402         statement list, in some cases.
2403         (Build_Finalizer_Call): Attach the "at end" handler to the parent
2404         of the HSS node in most cases, so it applies to declarations.
2405         (Expand_Cleanup_Actions): Remove Wrap_HSS_In_Block and the call to
2406         it. Remove the code that moves declarations. Remove some redundant
2407         code.
2408         * exp_ch9.adb
2409         (Build_Protected_Entry): Copy the At_End_Proc.
2410         (Build_Protected_Subprogram_Body): Reverse the sense of Exc_Safe,
2411         to avoid double negatives. Remove "Historical note" as in
2412         exp_ch7.adb.
2413         (Build_Unprotected_Subprogram_Body): Copy the At_End_Proc from the
2414         protected version.
2415         (Expand_N_Conditional_Entry_Call): Use First (Statements(...))
2416         instead of First_Real_Statement(...).
2417         (Expand_N_Task_Body): Put the Abort_Undefer call at the beginning
2418         of the declarations, rather than in the HSS. Use First
2419         (Statements(...)) instead of First_Real_Statement(...). Copy the
2420         At_End_Proc.
2421         * inline.adb
2422         (Has_Initialized_Type): Return False if the declaration does not
2423         come from source.
2424         * libgnarl/s-tpoben.ads
2425         (Lock_Entries, Lock_Entries_With_Status): Document when these
2426         things raise Program_Error. It's not clear that
2427         Lock_Entries_With_Status ought to be raising exceptions, but at
2428         least it's documented now.
2429         * sem.ads: Minor comment fixes.
2430         * sem_ch6.adb
2431         (Analyze_Subprogram_Body_Helper): Use First (Statements(...))
2432         instead of First_Real_Statement(...).
2433         (Analyze_Null_Procedure): Minor comment fix.
2434         * sem_util.adb
2435         (Might_Raise): Return True for N_Raise_Expression. Adjust the part
2436         about exceptions generated by the back end to match the reality of
2437         what the back end generates.
2438         (Update_First_Real_Statement): Remove.
2439         * sem_util.ads: Remove First_Real_Statement from comment.
2440         * sinfo-utils.ads
2441         (First_Real_Statement): New function that always returns Empty.
2442         This should be removed once gnat-llvm and codepeer have been
2443         updated to not refer to First_Real_Statement.
2444         * sprint.adb
2445         (Sprint_At_End_Proc): Deal with printing At_End_Proc.
2446         * sem_prag.adb: Minor comment fixes.
2447         * gcc-interface/trans.cc (At_End_Proc_to_gnu): New function.
2448         (Subprogram_Body_to_gnu): Call it to handle an At_End_Proc.
2449         (Handled_Sequence_Of_Statements_to_gnu): Likewise. Remove the
2450         support for First_Real_Statement and clean up the rest.
2451         (Exception_Handler_to_gnu): Do not push binding levels.
2452         (Compilation_Unit_to_gnu): Adjust call to process_decls.
2453         (gnat_to_gnu) <N_Package_Specification>: Likewise. <N_Entry_Body>:
2454         Likewise. <N_Freeze_Entity>: Likewise. <N_Block_Statement>:
2455         Likewise and call At_End_Proc_to_gnu to handle an At_End_Proc.
2456         <N_Package_Body>: Likewise.
2457         (process_decls): Remove GNAT_END_LIST parameter and adjust
2458         recursive calls.
2460 2022-09-06  Steve Baird  <baird@adacore.com>
2462         * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
2463         temporary rule that a "when others =>" case choice must be given
2464         when casing on a composite selector.
2465         * gnat_rm.texi: Regenerate.
2467 2022-09-06  Steve Baird  <baird@adacore.com>
2469         * sem_case.adb: Define a new Boolean constant,
2470         Simplified_Composite_Coverage_Rules, initialized to True. Setting
2471         this constant to True has two effects: 1- Representative value
2472         sets are not fully initialized - this is done to avoid capacity
2473         problems, as well as for performance. 2- In
2474         Check_Case_Pattern_Choices, the only legality check performed is a
2475         check that a "when others =>" choice is present.
2477 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
2479         * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix error
2480         template.
2482 2022-09-06  Steve Baird  <baird@adacore.com>
2484         * exp_attr.adb
2485         (Make_Range_Test): In determining which subtype's First and Last
2486         attributes are to be queried as part of a range test, call
2487         Validated_View in order to get a scalar (as opposed to private)
2488         subtype.
2489         (Attribute_Valid): In determining whether to perform a signed or
2490         unsigned comparison for a range test, call Validated_View in order
2491         to get a scalar (as opposed to private) type. Also correct a typo
2492         which, by itself, is the source of the problem reported for this
2493         ticket.
2495 2022-09-06  Steve Baird  <baird@adacore.com>
2497         * sem_ch4.adb
2498         (Analyze_Selected_Component): Define new Boolean-valued function,
2499         Constraint_Has_Unprefixed_Discriminant_Reference, which takes a
2500         subtype that is subject to a discriminant-dependent constraint and
2501         returns True if any of the constraint values are unprefixed
2502         discriminant names. Usually, the Etype of a selected component
2503         node is set to Etype of the component. However, in the case of an
2504         access-to-array component for which this predicate returns True,
2505         we instead use the base type of the Etype of the component.
2506         Normally such problematic discriminant references are addressed by
2507         calling Build_Actual_Subtype_Of_Component, but that doesn't work
2508         if Full_Analyze is False.
2510 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
2512         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Include
2513         System.Value_U_Spec and System.Value_I_Spec units.
2515 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2517         * libgnat/s-powflt.ads (Powfive): New constant array.
2518         * libgnat/s-powlfl.ads (Powfive): Likewise.
2519         (Powfive_100): New constant.
2520         (Powfive_200): Likewise.
2521         (Powfive_300): Likewise.
2522         * libgnat/s-powllf.ads (Powfive): New constant array.
2523         (Powfive_100): New constant.
2524         (Powfive_200): Likewise.
2525         (Powfive_300): Likewise.
2526         * libgnat/s-valflt.ads (Impl): Replace Powten with Powfive and pass
2527         Null_Address for the address of large constants.
2528         * libgnat/s-vallfl.ads (Impl): Replace Powten with Powfive and pass
2529         the address of large constants.
2530         * libgnat/s-valllf.ads (Impl): Likewise.
2531         * libgnat/s-valrea.ads (System.Val_Real): Replace Powten_Address
2532         with Powfive_Address and add Powfive_{1,2,3}00_Address parameters.
2533         * libgnat/s-valrea.adb (Is_Large_Type): New boolean constant.
2534         (Is_Very_Large_Type): Likewise.
2535         (Maxexp32): Change value of 10 to that of 5.
2536         (Maxexp64): Likewise.
2537         (Maxexp80): Likewise.
2538         (Integer_to_Real): Use a combination of tables of powers of 5 and
2539         scaling if the base is 10.
2540         (Large_Powten): Rename into...
2541         (Large_Powfive): ...this.  Add support for large constants.
2542         (Large_Powfive): New overloaded function for very large exponents.
2544 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
2546         * doc/gnat_rm/implementation_defined_aspects.rst
2547         (Aspect Iterable): Include Last and Previous primitives in
2548         syntactic and semantic description.
2549         * exp_attr.adb
2550         (Expand_N_Attribute_Reference): Don't expect attributes like
2551         Iterable that can only appear in attribute definition clauses.
2552         * sem_ch13.adb
2553         (Analyze_Attribute_Definition_Clause): Prevent crash on
2554         non-aggregate Iterable attribute; improve basic diagnosis of
2555         attribute values.
2556         (Resolve_Iterable_Operation): Improve checks for illegal
2557         primitives in aspect Iterable, e.g. with wrong number of formal
2558         parameters.
2559         (Validate_Iterable_Aspect): Prevent crashes on syntactically
2560         illegal aspect expression.
2561         * sem_util.adb
2562         (Get_Cursor_Type): Fix style.
2563         * gnat_ugn.texi, gnat_rm.texi: Regenerate.
2565 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2567         * libgnat/s-valuer.ads (System.Value_R): Add Parts formal parameter
2568         as well as Data_Index, Scale_Array and Value_Array types.
2569         (Scan_Raw_Real): Change type of Scale and return type.
2570         (Value_Raw_Real): Likewise.
2571         * libgnat/s-valuer.adb (Round_Extra): Reorder parameters and adjust
2572         recursive call.
2573         (Scan_Decimal_Digits): Reorder parameters, add N parameter and deal
2574         with multi-part scale and value.
2575         (Scan_Integral_Digits): Likewise.
2576         (Scan_Raw_Real): Change type of Scale and return type and deal with
2577         multi-part scale and value.
2578         (Value_Raw_Real): Change type of Scale and return type and tidy up.
2579         * libgnat/s-valued.adb (Impl): Pass 1 as Parts actual parameter.
2580         (Scan_Decimal): Adjust to type changes.
2581         (Value_Decimal): Likewise.
2582         * libgnat/s-valuef.adb (Impl): Pass 1 as Parts actual parameter.
2583         (Scan_Fixed): Adjust to type changes.
2584         (Value_Fixed): Likewise.
2585         * libgnat/s-valrea.adb (Need_Extra): Delete.
2586         (Precision_Limit): Always use the precision of the mantissa.
2587         (Impl): Pass 2 as Parts actual parameter.
2588         (Exact_Log2): New expression function.
2589         (Integer_to_Real): Change type of Scale and Val and deal with a
2590         2-part integer mantissa.
2591         (Scan_Real): Adjust to type changes.
2592         (Value_Real): Likewise.
2594 2022-09-05  Martin Liska  <mliska@suse.cz>
2596         * sigtramp-vxworks-target.h: Rename DBX_REGISTER_NUMBER to
2597         DEBUGGER_REGNO.
2599 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2601         * exp_aggr.adb (Check_Bounds): Move code and comment related to
2602         check for null array aggregate from Resolve_Null_Array_Aggregate.
2603         * sem_aggr.ads (Is_Null_Aggregate): Move spec from unit body.
2604         * sem_aggr.adb (Resolve_Null_Array_Aggregate): Move check to
2605         expansion.
2607 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2609         * sem_aggr.adb
2610         (Array_Aggr_Subtype): Bypass call to Collect_Aggr_Bound with
2611         dedicated code for null array aggregates.
2612         (Resolve_Array_Aggregate): Remove special handling of null array
2613         aggregates.
2614         (Resolve_Array_Aggregate): Create bounds, but let
2615         Array_Aggr_Subtype create itype entities.
2617 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2619         * sem_aggr.adb (Resolve_Null_Array_Aggregate): Insert check as a
2620         Raise_Constraint_Error node and not an If_Statement.
2622 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2624         * sem_aggr.adb
2625         (Resolve_Container_Aggregate): Style cleanup.
2626         (Resolve_Record_Aggregate): Remove redundant guard.
2628 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2630         * exp_util.ads (Entry_Names_OK): Remove spec.
2631         * exp_util.adb (Entry_Names_OK): Remove body.
2633 2022-09-05  Steve Baird  <baird@adacore.com>
2635         * libgnat/a-coinve.adb, libgnat/a-convec.adb
2636         (Append): If the Append that takes an Element and a Count is
2637         called with Count = 1, then call the Append that does not take a
2638         Count parameter; otherwise call the code that handles the general
2639         case. Move the special case detection/handling code that was
2640         formerly in that version of Append into the version that does not
2641         take a Count parameter, so that now both versions get the
2642         performance benefit.
2644 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2646         * sem_aggr.adb (Resolve_Null_Array_Aggregate): Create internal
2647         type for the aggregate as an itype.
2649 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2651         * sem_util.ads (Itype_Has_Declaration): Remove spec.
2652         * sem_util.adb (Itype_Has_Declaration): Remove body.
2654 2022-09-05  Steve Baird  <baird@adacore.com>
2656         * exp_ch3.adb
2657         (Expand_N_Object_Declaration): In deciding whether to emit a DIC
2658         check, we were previously testing the Has_Init_Expression flag.
2659         Continue to test that flag as before, but add a test for the
2660         syntactic presence of an initial value in the object declaration.
2661         This new test would not supersede the old test in the case where
2662         an explicit initial value has been eliminated as part of some tree
2663         transformation.
2665 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2667         * sem_ch13.adb (Validate_Unchecked_Conversions): Use
2668         Has_Warnings_Off.
2669         * sem_elab.adb (Check_Internal_Call_Continue): Likewise.
2671 2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
2673         * libgnat/s-valuer.adb (Scan_Decimal_Digits): Consistently avoid
2674         initializing local variables.
2675         (Scan_Integral_Digits): Likewise.
2676         (Scan_Raw_Real): Likewise and add a couple of comments.
2678 2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
2680         * sem_ch13.adb (Freeze_Entity_Checks): Build predicate functions
2681         only after checking the variant part of a record type, if any.
2683 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2685         * exp_aggr.adb
2686         (Two_Pass_Aggregate_Expansion): Expand into implicit rather than
2687         ordinary loops, to detect violations of restriction
2688         No_Implicit_Loops.
2689         (Generate_Loop): Likewise for delta array aggregates.
2691 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2693         * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Expand iterated
2694         component association with an unanalyzed copy of iterated
2695         expression. The previous code worked only because the expanded
2696         loop used both an analyzed copy of the iterator_specification and
2697         an analyzed copy of the iterated expression. Now the iterated
2698         expression is reanalyzed in the context of the expanded loop.
2699         * par-ch4.adb (Build_Iterated_Component_Association): Don't set
2700         defining identifier when iterator specification is present.
2701         * sem_aggr.adb (Resolve_Iterated_Association): Pick index name
2702         from the iterator specification.
2703         * sem_elab.adb (Traverse_Potential_Scenario): Handle iterated
2704         element association just like iterated component association. Not
2705         strictly part of this fix, but still worth for the completeness.
2706         * sem_res.adb (Resolve): Pick index name from the iterator
2707         specification, when present.
2708         * sem_util.adb (Traverse_More): For completeness, just like the
2709         change in Traverse_Potential_Scenario.
2710         * sinfo.ads
2711         (ITERATED_COMPONENT_ASSOCIATION): Fix and complete description.
2712         (ITERATED_ELEMENT_ASSOCIATION): Likewise.
2714 2022-09-05  Bob Duff  <duff@adacore.com>
2716         * sem_ch6.adb
2717         (Analyze_Subprogram_Body_Helper): Use First_Real_Statement to deal
2718         with this case. Note that First_Real_Statement is likely to be
2719         removed as part of this ticket, so this is a temporary fix.
2721 2022-09-05  Arnaud Charlet  <charlet@adacore.com>
2723         * ali.adb (Scan_ALI): Special case i-c*.ali when setting
2724         Sec_Stack_Used.
2726 2022-09-05  Bob Duff  <duff@adacore.com>
2728         * par-ch5.adb
2729         (P_Sequence_Of_Statements): Call Error_Msg_GNAT_Extension to give
2730         the error message.
2732 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2734         * sem_aggr.adb (Resolve_Iterated_Component_Association): Split
2735         processing of cases with and without iterator specification; reuse
2736         analysis of iterator specification; improve diagnostics for
2737         premature usage of iterator index in discrete choices.
2739 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2741         * sem_ch5.adb (Check_Subtype_Definition): Remove redundant call to
2742         Present; style cleanup.
2744 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2746         * sem_aggr.adb (Resolve_Array_Aggregate): Change an inconsistent
2747         use of False into its local equivalent Failure.
2749 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2751         * sem_aggr.adb (Resolve_Iterated_Component_Association): Change
2752         generic name Ent to a more intuitive Scop; rename Remove_Ref to
2753         Remove_Reference, so it can be instantiated as a traversal routine
2754         with plural name.
2756 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2758         * sem_ch4.adb
2759         (Is_Empty_Range): Move error reporting to the caller.
2760         (Analyze_Qualified_Expression): Move error reporting from Is_Empty_Range;
2761         add matching call to End_Scope before rewriting and returning.
2763 2022-09-05  Arnaud Charlet  <charlet@adacore.com>
2765         * bindgen.adb (Gen_Elab_Calls): Check for Check_Elaboration_Flags.
2766         * bindusg.adb (Display): Add -k.
2767         * opt.ads (Check_Elaboration_Flags): New.
2768         * switch-b.adb (Scan_Binder_Switches): Add processing of -k.
2769         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
2770         documentation for -k and -K.
2771         * gnat_ugn.texi: Regenerate.
2773 2022-09-05  Arnaud Charlet  <charlet@adacore.com>
2775         * treepr.adb: Remove local To_Lower and use the procedure
2776         version instead.
2778 2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
2780         * aspects.ads (Delaying Evaluation of Aspect): Fix typos.
2781         * exp_ch3.adb (Freeze_Type): Do not generate Invariant and DIC
2782         procedures for internal types.
2783         * exp_util.adb (Build_DIC_Procedure_Body): Adjust comment.
2784         * freeze.adb (Freeze_Entity): Call Inherit_Delayed_Rep_Aspects for
2785         subtypes and derived types only after the base or parent type has
2786         been frozen.  Remove useless freezing for first subtype.
2787         (Freeze_Fixed_Point_Type): Call Inherit_Delayed_Rep_Aspects too.
2788         * layout.adb (Set_Elem_Alignment): Deal with private types.
2789         * sem_ch3.adb (Build_Derived_Enumeration_Type): Build the implicit
2790         base as an itype and do not insert its declaration in the tree.
2791         (Build_Derived_Numeric_Type): Do not freeze the implicit base.
2792         (Derived_Standard_Character): Likewise.
2793         (Constrain_Enumeration): Inherit the chain of representation items
2794         instead of replacing it.
2795         * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): Add ??? comment.
2796         (Inherit_Delayed_Rep_Aspects): Declare.
2797         * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Do not invoke
2798         Inherit_Delayed_Rep_Aspects.
2799         (Inherit_Aspects_At_Freeze_Point): Deal with private types.
2800         (Inherit_Delayed_Rep_Aspects): Move to library level.
2802 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2804         * einfo-utils.adb (Number_Entries): Refine type of a local variable.
2805         * exp_attr.adb (Expand_N_Attribute_Reference): Rename Conctyp to
2806         Prottyp; refactor repeated calls to New_Occurrence_Of; replace
2807         Number_Entries with Has_Entries.
2808         * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise; remove Subprg
2809         variable (apparently copy-pasted from expansion of the attribute).
2811 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2813         * exp_attr.adb (Expand_N_Attribute_Reference): Fix detection of the
2814         enclosing protected type and of the enclosing protected subprogram.
2815         * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise.
2817 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2819         * freeze.adb (Freeze_Itype): Remove excessive guard.
2820         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Likewise.
2822 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2824         * sprint.adb (Sprint_Node_Actual): Handle iterator_specification within
2825         iterated_component_association and iterator_filter within
2826         iterator_specification.
2828 2022-09-05  Arnaud Charlet  <charlet@adacore.com>
2830         * doc/gnat_ugn/gnat_and_program_execution.rst: Fix rest syntax
2831         * gnat_ugn.texi: Regenerate.
2833 2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
2835         * exp_util.adb (Expand_Subtype_From_Expr): Be prepared for rewritten
2836         aggregates as expressions.
2838 2022-09-02  Gary Dismukes  <dismukes@adacore.com>
2840         * exp_ch6.adb (Expand_Simple_Function_Return) Bypass creation of an
2841         actual subtype and unchecked conversion to that subtype when the
2842         underlying type of the expression has discriminants without defaults.
2844 2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
2846         * exp_util.adb (Expand_Subtype_From_Expr): Check for the presence
2847         of the Is_Constr_Subt_For_U_Nominal flag instead of the absence
2848         of the Is_Constr_Subt_For_UN_Aliased flag on the subtype of the
2849         expression of an object declaration before reusing this subtype.
2850         * sem_ch3.adb (Analyze_Object_Declaration): Do not incorrectly
2851         set the Is_Constr_Subt_For_UN_Aliased flag on the actual subtype
2852         of an array with definite nominal subtype.  Remove useless test.
2854 2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
2856         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
2857         (No_Dependence): Cite implicit dependences on the runtime library.
2858         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
2860 2022-09-02  Claire Dross  <dross@adacore.com>
2862         * libgnat/a-strmap.adb: Add variants to simple and while loops.
2863         * libgnat/a-strsea.adb: Idem.
2865 2022-09-02  Claire Dross  <dross@adacore.com>
2867         * libgnat/s-expmod.adb (Lemma_Add_Mod): Add new lemma to factor
2868         out a complex sub-proof.
2869         (Exp_Modular): Add assertion to help proof.
2871 2022-09-02  Claire Dross  <dross@adacore.com>
2873         * libgnat/s-widthu.adb (Lemma_Euclidean): Lemma to prove the
2874         relation between the quotient/remainder of a division.
2876 2022-09-02  Yannick Moy  <moy@adacore.com>
2878         * libgnat/s-aridou.adb: Add or rework ghost code.
2879         * libgnat/s-aridou.ads: Add Big_Positive subtype.
2881 2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
2883         * doc/gnat_ugn/gnat_and_program_execution.rst
2884         (Non-Symbolic Traceback): Update section.
2885         * gnat_rm.texi, gnat_ugn.texi, gnat-style.texi: Regenerate.
2887 2022-09-02  Claire Dross  <dross@adacore.com>
2889         * libgnat/a-nbnbig.ads: Add Always_Return annotation.
2890         * libgnat/s-vaispe.ads: New ghost unit for the specification of
2891         System.Value_I. Restore proofs.
2892         * libgnat/s-vauspe.ads: New ghost unit for the specification of
2893         System.Value_U. Restore proofs.
2894         * libgnat/s-valuei.adb: The specification only subprograms are
2895         moved to System.Value_I_Spec. Restore proofs.
2896         * libgnat/s-valueu.adb: The specification only subprograms are
2897         moved to System.Value_U_Spec. Restore proofs.
2898         * libgnat/s-valuti.ads
2899         (Uns_Params): Generic unit used to bundle together the
2900         specification functions of System.Value_U_Spec.
2901         (Int_Params): Generic unit used to bundle together the
2902         specification functions of System.Value_I_Spec.
2903         * libgnat/s-imagef.adb: It is now possible to instantiate the
2904         appropriate specification units instead of creating imported ghost
2905         subprograms.
2906         * libgnat/s-imagei.adb: Update to refactoring of specifications
2907         and fix proofs.
2908         * libgnat/s-imageu.adb: Likewise.
2909         * libgnat/s-imgint.ads: Ghost parameters are grouped together in a
2910         package now.
2911         * libgnat/s-imglli.ads: Likewise.
2912         * libgnat/s-imgllu.ads: Likewise.
2913         * libgnat/s-imgllli.ads: Likewise.
2914         * libgnat/s-imglllu.ads: Likewise.
2915         * libgnat/s-imguns.ads: Likewise.
2916         * libgnat/s-vallli.ads: Likewise.
2917         * libgnat/s-valllli.ads: Likewise.
2918         * libgnat/s-imagei.ads: Likewise.
2919         * libgnat/s-imageu.ads: Likewise.
2920         * libgnat/s-vaispe.adb: Likewise.
2921         * libgnat/s-valint.ads: Likewise.
2922         * libgnat/s-valuei.ads: Likewise.
2923         * libgnat/s-valueu.ads: Likewise.
2924         * libgnat/s-vauspe.adb: Likewise.
2926 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2928         * gcc-interface/trans.cc (gnat_to_gnu) <N_Assignment_Statement>: Fix
2929         a couple of minor issues in the commentary.
2931 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2933         * gcc-interface/trans.cc (gigi): Report a violation of No_Dependence
2934         on System.Stack_Checking if Stack_Check_Probes_On_Target is not set
2935         and -fstack-check is specified.
2936         (build_binary_op_trapv): Report violatiosn of No_Dependence on both
2937         System.Arith_64 and System.Arith_128.
2938         (add_decl_expr): If an initialized variable, report a violation of
2939         No_Dependence on System.Memory_Copy for large aggregate types.
2940         (gnat_to_gnu) <N_Op_Eq>: Report a violation
2941         of No_Dependence on System.Memory_Compare for large aggregate types.
2942         <N_Assignment_Statement>! Report a violation of No_Dependence on
2943         System.Memory_Set, System.Memory_Move or else System.Memory_Copy for
2944         large aggregate types.
2945         * gcc-interface/utils2.cc (maybe_wrap_malloc): Report a violation of
2946         No_Dependence on System.Memory.
2947         (maybe_wrap_free): Add GNAT_NODE parameter and report a violation of
2948         No_Dependence on System.Memory.
2949         (build_call_alloc_dealloc): Adjust call to maybe_wrap_free.
2951 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2953         * gcc-interface/decl.cc (gnat_to_gnu_entity): Do not set the debug
2954         type for vector types.
2956 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2958         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>:
2959         Undo questionable renaming.
2961 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2963         * gcc-interface/decl.cc (Gigi_Cloned_Subtype): Handle private case.
2965 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2967         * gcc-interface/trans.cc (gigi): Add one more leading underscore to
2968         name of stack checking function.
2970 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2972         * gcc-interface/decl.cc (Gigi_Cloned_Subtype): New function.
2973         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Call it to get the
2974         cloned subtype, if any.
2975         <E_Floating_Point_Subtype>: Likewise.
2976         <E_Array_Subtype>: Likewise.
2977         <E_Record_Subtype>: Likewise.
2978         <E_Access_Subtype>: Likewise.
2979         Deal with all cloned subtypes on the main path.
2981 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2983         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: Do
2984         not reuse the TYPE_DECL of the base type.
2986 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2988         * gcc-interface/utils.cc (gnat_pushdecl): Build DECL_ORIGINAL_TYPE
2989         only for pointer types.
2991 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2993         * gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Also accept
2994         pointer-to-function types that are not variant of each other.
2996 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2998         * gcc-interface/utils.cc (unchecked_convert): Also pad in most cases
2999         if the source is not a scalar type but the destination is.
3001 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
3003         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Save
3004         and restore the alias set of the dummy pointer-to-array type.
3006 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
3008         * snames.ads-tmpl (Name_Memory_Compare): New package name.
3009         (Name_Memory_Copy): Likewise.
3010         (Name_Memory_Move): Likewise.
3011         (Name_Memory_Set): Likewise.
3013 2022-07-13  Gary Dismukes  <dismukes@adacore.com>
3015         * sem_ch13.adb (Check_And_Resolve_Storage_Model_Type_Argument):
3016         Call the System.Case_Util.To_Mixed procedure rather than the
3017         function, to avoid bootstrap problems.
3019 2022-07-13  Gary Dismukes  <dismukes@adacore.com>
3021         * aspects.ads (Aspect_Argument): Change the association for
3022         Aspect_Storage_Model_Type from Expression to
3023         Optional_Expression.
3024         * exp_util.ads (Find_Storage_Op): Update comment to indicate
3025         that Empty can be returned in the case where a storage-model
3026         operation is defaulted.
3027         * exp_util.adb (Find_Storage_Op): Allow the function to return
3028         Empty in Storage_Model_Type case rather than raising
3029         Program_Error, so that Procedure_To_Call fields in N_Allocator
3030         and N_Free_Statement nodes will be set to Empty in the defaulted
3031         native storage-model case.
3032         * sem_ch13.adb: Add with and use of System.Case_Util (and
3033         reformat context_clause).
3034         (Check_Aspect_At_Freeze_Point): Return with no action for a
3035         Storage_Model_Type aspect with no expression (fully-defaulted
3036         native memory-model case).
3037         (Resolve_Storage_Model_Type_Argument): If an Address_Type has
3038         not been explicitly specified, then set Addr_Type to denote type
3039         System.Address.
3040         (Validate_Storage_Model_Type_Aspect): Return immediately in the
3041         case where the aspect has no Expression (fully-defaulted native
3042         memory-model case).  No longer issue an error when Address_Type
3043         isn't specified, and instead use type System.Address as the
3044         default address type. When the address type is
3045         System.Address (whether specified or defaulted), no longer issue
3046         errors for any other "subaspects" that aren't specified, since
3047         in that case those are allowed to default as well. Remove ???
3048         comment about needing to check for duplicates, which is now
3049         addressed.
3050         (Check_And_Resolve_Storage_Model_Type_Argument): New procedure
3051         to check that an association for a storage-model subaspect in
3052         the aggregate has not been specified earlier in the aggregate,
3053         and to then resolve the expression of the association and save
3054         the resolved entity. Called by
3055         Validate_Storage_Model_Type_Aspect.
3056         * sem_util.ads (Storage_Model_Support): Update comments on specs
3057         of the functions Get_Storage_Model_Type_Entity,
3058         Storage_Model_Address_Type, and Storage_Model_Null_Address to
3059         indicate the behavior when the address type is System.Address
3060         (the native memory-model case).
3061         * sem_util.adb
3062         (Storage_Model_Support.Get_Storage_Model_Type_Entity): Suppress
3063         the search for the given subaspect name (Nam) when the
3064         Storage_Model_Type aspect is fully defaulted (i.e., no
3065         Expression is present) and simply return. In cases where the
3066         search is done, but no association that matches Nam is found,
3067         return System.Address for the Name_Address_Type case, return
3068         System.Null_Address for the Name_Null_Address case, and return
3069         Empty for all other cases.
3071 2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
3073         * sem_ch13.adb (Relocate_Expression): New routine with code that
3074         previously was only applied to Pre and Post aspects.
3075         (Analyze_Aspect_Specifications): Apply the above routine to
3076         other aspects, in particular to aspects Address, Attach_Handler,
3077         Predicate and Interrupt_Priority.
3079 2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
3081         * inline.adb (Build_Body_To_Inline): Instead of manipulating the
3082         Full_Analysis flag, use the Inside_A_Generic flag (which is
3083         conveniently manipulated by Start_Generic/End_Generic, together
3084         with Expander_Active).
3085         * sem_attr.adb (Analyze_Attribute_Old_Result): Adapt comment and
3086         assertion to different flag that is set while building
3087         body-to-inline.
3089 2022-07-13  Alexandre Oliva  <oliva@adacore.com>
3091         * doc/gnat_rm/security_hardening_features.rst: Clarify the need
3092         for choices after -fzero-call-used-regs and -fstrub.
3093         * gnat_rm.texi: Regenerate.
3095 2022-07-13  Yannick Moy  <moy@adacore.com>
3097         * sem_prag.adb (Analyze_Pragma): Recognize a generated subtype
3098         with Ghost pragma for generic instantiations.
3100 2022-07-13  Yannick Moy  <moy@adacore.com>
3102         * libgnat/s-aridou.adb (Lemma_Mult_Div, Lemma_Powers): New
3103         lemmas.
3104         (Prove_Sign_Quotient): New local lemma.
3105         (Prove_Signs): Expand definition of Big_R and Big_Q in the
3106         postcondition. Add intermediate assertions.
3107         (Double_Divide): Call new lemma.
3108         (Lemma_Div_Eq): Provide body for proving lemma.
3109         (Lemma_Powers_Of_2, Lemma_Shift_Without_Drop,
3110         Prove_Dividend_Scaling, Prove_Multiplication, Prove_Z_Low): Call
3111         lemmas, add intermediate assertions.
3113 2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
3115         * inline.adb (Has_Single_Return): Add guard for the subsequent
3116         call to Expression.
3118 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
3120         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Acts_As_Spec
3121         earlier if the body is not the completion of a declaration.
3122         (Check_Untagged_Equality): Deal with subprogram bodies that are
3123         not the completion of a declaration and make sure that they are
3124         not flagged when they cause the freezing of the type themselves.
3125         Give a warning on the freezing point of the type in more cases.
3126         * sem_res.adb (Resolve_Equality_Op): Revert latest change.
3128 2022-07-13  Yannick Moy  <moy@adacore.com>
3130         * libgnat/s-arit32.adb (Scaled_Divide32): Add an assertion, move
3131         the call of Prove_Sign_R around.
3133 2022-07-13  Marc Poulhiès  <poulhies@adacore.com>
3135         * exp_ch4.adb (Expand_N_If_Expression): Test for compile time
3136         known bounds when handling slices.
3138 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
3140         * exp_util.ads (Integer_Type_For): Mention Small_Integer_Type_For.
3141         (Small_Integer_Type_For): Mention Integer_Type_For.
3143 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
3145         * sem_res.adb (Resolve_Equality_Op): Make sure that the user-defined
3146         operator of an untagged record type is declared ahead of an instance
3147         before using it to resolve the equality operator in the instance.
3149 2022-07-13  Justin Squirek  <squirek@adacore.com>
3151         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Add default
3152         initialization for Stmts.
3153         * sem_ch12.adb (Analyze_Associations): Add default
3154         initialization for Match.
3155         * libgnat/a-ztenau.adb (Scan_Enum_Lit): Remove duplicated
3156         boolean test.
3157         * libgnat/g-spipat.adb (XMatch): Combine duplicated cases.
3159 2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
3161         * par-prag.adb (Check_Arg_Count): Change parameter type from Int
3162         to Nat, because this parameter is compared to Arg_Count variable
3163         which is of type Nat. Also, it wouldn't make sense to check for
3164         negative number of pragma arguments.
3166 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3168         * exp_ch11.adb (Expand_N_Exception_Declaration): Sync comment
3169         with declaration in System.Standard_Library.
3171 2022-07-12  Marc Poulhiès  <poulhies@adacore.com>
3173         * libgnat/s-secsta.adb (Has_Enough_Free_Memory): Check for full
3174         chunk before computing the available size.
3176 2022-07-12  Steve Baird  <baird@adacore.com>
3178         * exp_ch4.adb (Expand_Nonbinary_Modular_Op.Expand_Modular_Op):
3179         Reimplement choice of which predefined type to use for the
3180         implementation of a predefined operation of a modular type with
3181         a non-power-of-two modulus.
3183 2022-07-12  Justin Squirek  <squirek@adacore.com>
3185         * einfo.ads: Modify documentation for In_Use flag to include
3186         scope stack manipulation.
3187         * sem_ch8.adb (Use_One_Type): Add condition to return when
3188         attempting to detect redundant use_type_clauses in child units
3189         in certain cases.
3191 2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
3193         * restrict.ads (type ND_Entry): Add System_Child component.
3194         (Check_Restriction_No_Dependence_On_System): Declare.
3195         * restrict.adb (Global_Restriction_No_Tasking): Move around.
3196         (Violation_Of_No_Dependence): New procedure.
3197         (Check_Restriction_No_Dependence): Call Violation_Of_No_Dependence
3198         to report a violation.
3199         (Check_Restriction_No_Dependence_On_System): New procedure.
3200         (Set_Restriction_No_Dependenc): Set System_Child component if the
3201         unit is a child of System.
3202         * snames.ads-tmpl (Name_Arith_64): New package name.
3203         (Name_Arith_128): Likewise.
3204         (Name_Memory): Likewise.
3205         (Name_Stack_Checking): Likewise.
3206         * fe.h (Check_Restriction_No_Dependence_On_System): Declare.
3208 2022-07-12  Bob Duff  <duff@adacore.com>
3210         * par.adb (P_Declarative_Items): New function to parse a
3211         sequence of declarative items.
3212         (P_Sequence_Of_Statements): Add Handled flag, to indicate
3213         whether to wrap the result in a block statement.
3214         * par-ch3.adb (P_Declarative_Item): Rename P_Declarative_Items
3215         to be P_Declarative_Item, because it really only parses a single
3216         declarative item, and to avoid conflict with the new
3217         P_Declarative_Items. Add In_Statements.  We keep the old
3218         error-recovery mechanisms in place when In_Statements is False.
3219         When True, we don't want to complain about statements, because
3220         we are parsing a sequence of statements.
3221         (P_Identifier_Declarations): If In_Statements, and we see what
3222         looks like a statement, we no longer give an error. We return to
3223         P_Sequence_Of_Statements with Done = True, so it can parse the
3224         statement.
3225         * par-ch5.adb (P_Sequence_Of_Statements): Call
3226         P_Declarative_Items to parse declarative items that appear in
3227         the statement list.  Remove error handling code that complained
3228         about such items.  Check some errors conservatively.  Wrap the
3229         result in a block statement when necessary.
3230         * par-ch11.adb (P_Handled_Sequence_Of_Statements): Pass
3231         Handled => True to P_Sequence_Of_Statements.
3232         * types.ads (No, Present): New functions for querying
3233         Source_Ptrs (equal, not equal No_Location).
3235 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3237         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
3238         Fix range of iteration.
3240 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3242         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
3243         Do not process expression of unknown restrictions.
3245 2022-07-12  Vasiliy Fofanov  <fofanov@adacore.com>
3247         * makeusg.adb,
3248         doc/gnat_ugn/building_executable_programs_with_gnat.rst: Move -P
3249         to the top of switches list and make it clear that gnatmake
3250         passes the ball to gprbuild if -P is set.
3251         * gnat_ugn.texi: Regenerate.
3253 2022-07-12  Bob Duff  <duff@adacore.com>
3255         * libgnat/g-socthi__vxworks.adb (C_Connect): Suppress new warning.
3257 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3259         * sem_attr.adb (Set_Boolean_Result): Simplify using
3260         Boolean_Literals.
3262 2022-07-12  Yannick Moy  <moy@adacore.com>
3264         * errout.adb (Record_Compilation_Errors): Remove global
3265         variable.
3266         (Compilation_Errors): Simplify.
3267         (Initialize): Inline Reset_Warnings.
3268         (Reset_Warnings): Remove.
3269         * errout.ads (Reset_Warnings): Remove.
3270         (Compilation_Errors): Update comment.
3271         * gnat1drv.adb (Adjust_Global_Switches): Ignore all frontend
3272         warnings in GNATprove mode, except regarding elaboration and
3273         suspicious contracts.
3275 2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
3277         * sem_util.adb (Caller_Known_Size_Record): Make entry assertion
3278         more robust and add guard for null argument.  For protected
3279         types, invoke Caller_Known_Size_Record on
3280         Corresponding_Record_Type.
3281         (Needs_Secondary_Stack): Likewise.
3283 2022-07-12  Doug Rupp  <rupp@adacore.com>
3285         * libgnat/system-vxworks7-ppc-rtp.ads: Remove
3286         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
3288 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3290         * sem_ch12.adb (Analyze_Package_Instantiation): Remove dubious
3291         call to Set_Comes_From_Source.
3293 2022-07-12  Bob Duff  <duff@adacore.com>
3295         * sem_ch5.adb (Check_Unreachable_Code): Refine heuristics.
3296         * sem_util.ads, sem_util.adb (Is_Static_Constant_Name): Remove
3297         this; instead we have a new function Is_Simple_Case in
3298         Sem_Ch5.Check_Unreachable_Code.
3300 2022-07-12  Bob Duff  <duff@adacore.com>
3302         * gnatls.adb (Output_License_Information): Remove pragma
3303         No_Return; call sites deal with Exit_Program.
3304         * libgnat/g-socthi.adb (C_Connect): Suppress warning about
3305         unreachable code.
3306         * sem_ch5.adb (Check_Unreachable_Code): Special-case if
3307         statements with static conditions.  If we remove unreachable
3308         code (including the return statement) from a function, add
3309         "raise Program_Error", so we won't warn about missing returns.
3310         Remove Original_Node in test for N_Raise_Statement; it's not
3311         needed.  Remove test for CodePeer_Mode; if Operating_Mode =
3312         Generate_Code, then CodePeer_Mode can't be True.  Misc cleanup.
3313         Do not reuse Nxt variable for unrelated purpose (the usage in
3314         the Kill_Dead_Code loop is entirely local to the loop).
3315         * sem_ch6.adb: Add check for Is_Transfer. Misc cleanup.
3316         * sem_prag.adb: Minor.
3317         * sem_res.adb: Minor.
3318         * sem_util.adb: Minor cleanup.
3319         (Is_Trivial_Boolean): Move to nonnested place, so it can be
3320         called from elsewhere.
3321         (Is_Static_Constant_Boolean): New function.
3322         * sem_util.ads (Is_Trivial_Boolean): Export.
3323         (Is_Static_Constant_Boolean): New function.
3325 2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
3327         * libgnat/s-stchop.ads: Use a double underscore prefix for symbols.
3329 2022-07-12  Ed Schonberg  <schonberg@adacore.com>
3331         * freeze.adb (Check_Expression_Function.Find_Constant): Add a
3332         check that a type that is referenced as the prefix of an
3333         attribute is fully declared.
3334         (Freeze_And_Append): Do not freeze the profile when freezing an
3335         expression function.
3336         (Freeze_Entity): When a tagged type is frozen, also freeze any
3337         primitive operations of the type that are expression functions.
3338         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not prevent
3339         freezing associated with an expression function body if the
3340         function is a dispatching op.
3342 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3344         * sem_ch7.adb (Analyze_Package_Declaration): Check references to
3345         unset objects.
3347 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3349         * sem_ch13.adb (Analyze_Aspect_Yield): Look at the entity kind,
3350         not at the declaration kind.
3352 2022-07-12  Joffrey Huguet  <huguet@adacore.com>
3354         * libgnarl/a-reatim.ads, libgnat/a-cfdlli.ads,
3355         libgnat/a-cfhama.ads, libgnat/a-cfhase.ads,
3356         libgnat/a-cfinse.ads, libgnat/a-cfinve.ads,
3357         libgnat/a-cforma.ads, libgnat/a-cforse.ads,
3358         libgnat/a-chahan.ads, libgnat/a-cofove.ads,
3359         libgnat/a-cofuma.ads, libgnat/a-cofuse.ads,
3360         libgnat/a-cofuve.ads, libgnat/a-nbnbin.ads,
3361         libgnat/a-nbnbre.ads, libgnat/a-ngelfu.ads,
3362         libgnat/a-nlelfu.ads, libgnat/a-nllefu.ads,
3363         libgnat/a-nselfu.ads, libgnat/a-nuelfu.ads,
3364         libgnat/a-strbou.ads, libgnat/a-strfix.ads,
3365         libgnat/a-strmap.ads, libgnat/a-strunb.ads,
3366         libgnat/a-strunb__shared.ads,  libgnat/a-strsea.ads,
3367         libgnat/a-textio.ads, libgnat/a-tideio.ads,
3368         libgnat/a-tienio.ads, libgnat/a-tifiio.ads,
3369         libgnat/a-tiflio.ads, libgnat/a-tiinio.ads,
3370         libgnat/a-timoio.ads, libgnat/i-c.ads, libgnat/interfac.ads,
3371         libgnat/interfac__2020.ads, libgnat/s-atacco.ads,
3372         libgnat/s-stoele.ads: Annotate packages and subprograms with
3373         returning annotations.
3375 2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
3377         * rtsfind.ads (RE_Id): Remove RE_Str_Concat_Bounds_N values.
3378         (RE_Unit_Table): Remove RE_Str_Concat_Bounds_N entries.
3379         * libgnat/s-conca2.ads (Str_Concat_2): Adjust head comment.
3380         (Str_Concat_Bounds_2): Delete.
3381         * libgnat/s-conca2.adb (Str_Concat_2): Use the length of the last
3382         input to size the last assignment.
3383         (Str_Concat_Bounds_2): Delete.
3384         * libgnat/s-conca3.ads (Str_Concat_3): Adjust head comment.
3385         (Str_Concat_Bounds_3): Delete.
3386         * libgnat/s-conca3.adb (Str_Concat_3): Use the length of the last
3387         input to size the last assignment.
3388         (Str_Concat_Bounds_3): Delete.
3389         * libgnat/s-conca4.ads (Str_Concat_4): Adjust head comment.
3390         (Str_Concat_Bounds_4): Delete.
3391         * libgnat/s-conca4.adb (Str_Concat_4): Use the length of the last
3392         input to size the last assignment.
3393         (Str_Concat_Bounds_4): Delete.
3394         * libgnat/s-conca5.ads (Str_Concat_5): Adjust head comment.
3395         (Str_Concat_Bounds_5): Delete.
3396         * libgnat/s-conca5.adb (Str_Concat_5): Use the length of the last
3397         input to size the last assignment.
3398         (Str_Concat_Bounds_5): Delete.
3399         * libgnat/s-conca6.ads (Str_Concat_6): Adjust head comment.
3400         (Str_Concat_Bounds_6): Delete.
3401         * libgnat/s-conca6.adb (Str_Concat_6): Use the length of the last
3402         input to size the last assignment.
3403         (Str_Concat_Bounds_6): Delete.
3404         * libgnat/s-conca7.ads (Str_Concat_7): Adjust head comment.
3405         (Str_Concat_Bounds_7): Delete.
3406         * libgnat/s-conca7.adb (Str_Concat_7): Use the length of the last
3407         input to size the last assignment.
3408         (Str_Concat_Bounds_7): Delete.
3409         * libgnat/s-conca8.ads (Str_Concat_8): Adjust head comment.
3410         (Str_Concat_Bounds_8): Delete.
3411         * libgnat/s-conca8.adb (Str_Concat_8): Use the length of the last
3412         input to size the last assignment.
3413         (Str_Concat_Bounds_8): Delete.
3414         * libgnat/s-conca9.ads (Str_Concat_9): Adjust head comment.
3415         (Str_Concat_Bounds_9): Delete.
3416         * libgnat/s-conca9.adb (Str_Concat_9): Use the length of the last
3417         input to size the last assignment.
3418         (Str_Concat_Bounds_9): Delete.
3420 2022-07-12  Bob Duff  <duff@adacore.com>
3422         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use _Next and
3423         _Previous in the optimized expansion of "for ... of".  No longer
3424         need to check parameter profiles for these, because the
3425         leading-underscore names are unique.
3426         * libgnat/a-convec.ads (_Next, _Previous): Renamings of Next and
3427         Previous, to avoid namespace pollution.
3428         * libgnat/a-cbdlli.ads, libgnat/a-cbhama.ads,
3429         libgnat/a-cbhase.ads, libgnat/a-cbmutr.ads,
3430         libgnat/a-cborma.ads, libgnat/a-cborse.ads,
3431         libgnat/a-cdlili.ads, libgnat/a-cidlli.ads,
3432         libgnat/a-cihama.ads, libgnat/a-cihase.ads,
3433         libgnat/a-cimutr.ads, libgnat/a-ciorma.ads,
3434         libgnat/a-ciorse.ads, libgnat/a-cobove.ads,
3435         libgnat/a-cohama.ads, libgnat/a-cohase.ads,
3436         libgnat/a-coinve.ads, libgnat/a-comutr.ads,
3437         libgnat/a-coorma.ads, libgnat/a-coorse.ads: Likewise.  Also,
3438         remove duplicated comments -- refer to one comment about _Next,
3439         _Previous, Pseudo_Reference in libgnat/a-convec.ads. DRY.
3440         * scng.adb (Scan): Allow leading underscores in identifiers in
3441         the run-time library.
3442         * snames.ads-tmpl (Name_uNext, Name_uPrevious): New names with
3443         leading underscores.
3445 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3447         * sem_ch5.adb (Check_Unreachable_Code): Extend suppression to
3448         calls with No_Return aspect, but narrow it to functions.
3449         * sem_res.adb (Resolve_Call): Warn about unreachable code after
3450         calls with No_Return.
3452 2022-07-12  Bob Duff  <duff@adacore.com>
3454         * scans.ads: Fix obsolete comments about Tok_Special, and give
3455         Special_Character a predicate assuring it is one of the two
3456         characters used in preprocessing.
3457         * scng.ads: Clean up comments.
3458         * scng.adb: Clean up handling of Tok_Special.  Remove comment
3459         about '@' (target_name), which doesn't seem very helpful.
3460         Set_Special_Character will now blow up if given anything other
3461         than '#' and '$', because of the predicate on Special_Character;
3462         it's not clear why it used to say "when others => null;".
3463         Remove Comment_Is_Token, which is not used.
3464         * scn.ads: Remove commented-out use clause.  Remove redundant
3465         comment.
3466         * ali-util.adb: Use "is null" for do-nothing procedures.
3467         * gprep.adb (Post_Scan): Use "is null".
3469 2022-07-12  Bob Duff  <duff@adacore.com>
3471         * libgnarl/s-solita.adb (Task_Termination_Handler_T): Ignore all
3472         exceptions propagated by Specific_Handler.
3473         * libgnarl/s-tassta.adb, libgnarl/s-taskin.ads: Minor.
3475 2022-07-12  Marc Poulhiès  <poulhies@adacore.com>
3477         * sem.adb (Preanalyze): Suppress checks when not in GNATprove
3478         mode.
3479         * sem_res.adb (Preanalyze_And_Resolve): Add cross reference in
3480         comment to above procedure.
3481         * sinfo.ads: Typo fix in comment.
3483 2022-07-12  Julien Bortolussi  <bortolussi@adacore.com>
3485         * libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Implementation
3486         files of the formal unbounded indefinite list.
3487         * Makefile.rtl, impunit.adb: Take into account the add of the
3488         new files.
3490 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
3492         * sem_util.adb (Is_Variable): Remove excessive guard.
3494 2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
3496         * gcc-interface/Make-lang.in (ada/generated/gnatvsn.ads):
3497         Simplify regular expression. The "interval expression",
3498         i.e. \{8\} is part of the POSIX regular expressions, so it
3499         should not be a problem for modern implementations of sed.
3501 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3503         * gcc-interface/trans.cc (gnat_to_gnu): Update comment.
3505 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3507         * gcc-interface/gigi.h (simple_constant_p): Declare.
3508         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Strip
3509         the qualifiers from the type of a simple constant.
3510         (simple_constant_p): New predicate.
3511         * gcc-interface/trans.cc (node_is_atomic): Return true for objects
3512         with atomic type except for simple constants.
3513         (node_is_volatile_full_access): Return false for simple constants
3514         with VFA type.
3516 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3518         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Create a
3519         local constant holding the underlying GNAT type of the object.  Do
3520         not fiddle with the object size for an unconstrained array.
3522 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3524         * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Constify a
3525         local variable and move a couple of others around.
3527 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3529         * gcc-interface/trans.cc (gnat_gimplify_expr) <SAVE_EXPR>: New case.
3531 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3533         * exp_ch6.adb (Function return mechanisms): New paragraph.
3535 2022-07-06  Yannick Moy  <moy@adacore.com>
3537         * sem_util.adb (Is_Non_Preelaborable_Construct): Fix for
3538         deferred constants.
3540 2022-07-06  Justin Squirek  <squirek@adacore.com>
3542         * libgnat/s-regpat.adb, libgnat/s-regpat.ads (Compile): Add a
3543         new defaulted parameter Error_When_Too_Small to trigger an
3544         error, if specified true, when Matcher is too small to hold the
3545         compiled regex program.
3547 2022-07-06  Justin Squirek  <squirek@adacore.com>
3549         * sem_ch4.adb (Analyze_Selected_Component): Add condition to
3550         avoid interpreting derived type components as candidates for
3551         selected components in preanalysis of inherited class
3552         conditions.
3554 2022-07-06  Yannick Moy  <moy@adacore.com>
3556         * ghost.adb (Check_Ghost_Context): Delay checking for generic
3557         associations.
3558         (Check_Ghost_Context_In_Generic_Association): Perform ghost
3559         checking in analyzed generic associations.
3560         (Check_Ghost_Formal_Procedure_Or_Package): Check SPARK RM
3561         6.9(13-14) for formal procedures and packages.
3562         (Check_Ghost_Formal_Variable): Check SPARK RM 6.9(13-14) for
3563         variables.
3564         * ghost.ads: Declarations for the above.
3565         * sem_ch12.adb (Analyze_Associations): Apply delayed checking
3566         for generic associations.
3567         (Analyze_Formal_Object_Declaration): Same.
3568         (Analyze_Formal_Subprogram_Declaration): Same.
3569         (Instantiate_Formal_Package): Same.
3570         (Instantiate_Formal_Subprogram): Same.
3571         (Instantiate_Object): Same.  Copy ghost aspect to newly declared
3572         object for actual for IN formal object. Use new function
3573         Get_Enclosing_Deep_Object to retrieve root object.
3574         (Instantiate_Type): Copy ghost aspect to declared subtype for
3575         actual for formal type.
3576         * sem_prag.adb (Analyze_Pragma): Recognize new allowed
3577         declarations.
3578         * sem_util.adb (Copy_Ghost_Aspect): Copy the ghost aspect
3579         between nodes.
3580         (Get_Enclosing_Deep_Object): New function to return enclosing
3581         deep object (or root for reachable part).
3582         * sem_util.ads (Copy_Ghost_Aspect): Same.
3583         (Get_Enclosing_Deep_Object): Same.
3584         * libgnat/s-imageu.ads: Declare formal subprograms as ghost.
3585         * libgnat/s-valuei.ads: Same.
3586         * libgnat/s-valuti.ads: Same.
3588 2022-07-06  Javier Miranda  <miranda@adacore.com>
3590         * sem_res.adb (Resolve_Type_Conversion): Code cleanup since the
3591         previous static check has been moved to Valid_Tagged_Conversion.
3592         (Valid_Tagged_Conversion): Fix the code checking conversion
3593         to/from interface types since incorrectly returns True when the
3594         parent type of the operand type (or the target type) is an
3595         interface type; add missing static checks on interface type
3596         conversions.
3598 2022-07-06  Marc Poulhiès  <poulhies@adacore.com>
3600         * libgnat/s-secsta.ads (SS_Allocate): Add new Alignment
3601         parameter.
3602         (Memory_Alignment): Remove.
3603         * libgnat/s-secsta.adb (Align_Addr): New.
3604         (SS_Allocate): Add new Alignment parameter. Realign pointer if
3605         needed. Don't allocate anything for 0-sized allocations.
3606         * gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Add
3607         allocated object's alignment as last parameter to allocation
3608         invocation.
3610 2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
3612         * libgnat/g-socket.adb (Get_Address_Info): Reduce scope of the
3613         Found variable; avoid repeated assignment inside the loop.
3615 2022-07-06  Doug Rupp  <rupp@adacore.com>
3617         * Makefile.rtl [arm,aarch64 vxworks7]: Remove rtp and kernel
3618         build macros and set an error variable if needed.
3619         [x86,x86_vxworks7]: Likewise.
3620         [ppc,ppc64]: Set an error variable if needed.
3621         (rts-err): New phony Makefile target.
3622         (setup-rts): Depend on rts-err.
3624 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3626         * exp_ch3.adb (Make_Allocator_For_BIP_Return): New local function.
3627         (Expand_N_Object_Declaration): Use it to build the three allocators
3628         for a Build-In-Place return with an unconstrained type.  Update the
3629         head comment after other recent changes.
3631 2022-07-06  Doug Rupp  <rupp@adacore.com>
3633         * libgnat/system-vxworks7-e500-kernel.ads: Remove.
3634         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
3635         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
3637 2022-07-06  Justin Squirek  <squirek@adacore.com>
3639         * gnat_cuda.adb (Empty_CUDA_Global_Subprogram): Set
3640         Specification and Corresponding_Spec to match the original
3641         Kernel_Body.
3643 2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
3645         * exp_ch6.adb (Build_Static_Check_Helper_Call): Replace explicit
3646         call to Make_Unchecked_Type_Conversion with a call to
3647         Unchecked_Convert_To.
3648         * tbuild.adb (Unchecked_Convert_To): Fix whitespace.
3650 2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
3652         * sem_res.adb (Resolve_Actuals): Restore first sentence of a
3653         comment.
3655 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3657         * exp_aggr.adb (Expand_Record_Aggregate): Do not call
3658         Is_Full_Access_Aggregate here.
3659         * freeze.ads (Is_Full_Access_Aggregate): Delete.
3660         * freeze.adb (Is_Full_Access_Aggregate): Move to...
3661         (Freeze_Entity): Do not call Is_Full_Access_Aggregate here.
3662         * sem_aggr.adb (Is_Full_Access_Aggregate): ...here
3663         (Resolve_Aggregate): Call Is_Full_Access_Aggregate here.
3665 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3667         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
3668         (Warning Message Control): Update description of switch -gnatwj.
3669         * gnat_ugn.texi: Regenerate.
3670         * sem_ch10.adb (Analyze_With_Clause): Warn on WITH clauses for
3671         obsolete renamed units; in Ada 83 mode do not consider
3672         predefined renamings to be obsolete.
3674 2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>
3676         * exp_util.adb (Make_Subtype_From_Expr): Do not set field to Empty.
3677         * sem_util.adb (Visit_Itype): Remove ??? comment.
3679 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3681         * sem_attr.adb (Note_Possible_Modification): Revert a
3682         special-case for validity checks on Long_Float type.
3683         * snames.ads-tmpl (Name_Attr_Long_Float): Remove name added
3684         exclusively for the mentioned fix.
3686 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3688         * sem_ch6.adb (Set_Formal_Mode): Remove unnecessary setting of
3689         Never_Set_In_Source.
3691 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3693         * sem_ch6.adb (Process_Formals): Avoid repeated calls to
3694         Expression.
3696 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3698         * exp_code.adb (Setup_Asm_IO_Args): Remove guard against No_List.
3699         * par_sco.adb (Process_Decisions): Likewise.
3700         * sem_ch13.adb (Check_Component_List): Likewise.
3701         * sem_ch6.adb (FCL): Likewise.
3703 2022-07-05  Doug Rupp  <rupp@adacore.com>
3705         * cstreams.c (__gnat_full_name) [QNX]: Remove block.
3707 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3709         * osint.adb (Locate_File): Use Name_Find with a parameter and
3710         not with a global buffer.
3712 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3714         * exp_ch3.adb (Build_Init_Statements): Reuse Get_Pragma_Arg.
3715         * exp_prag.adb (Arg_N): Likewise.
3717 2022-07-05  Yannick Moy  <moy@adacore.com>
3719         * ghost.adb (Is_OK_Ghost_Context): Detect ghost type inside object
3720         renaming.
3722 2022-07-05  Bob Duff  <duff@adacore.com>
3724         * exp_ch7.adb: Change two constants Is_Protected_Body and
3725         Is_Prot_Body to be Is_Protected_Subp_Body; these are not true
3726         for protected bodies, but for protected subprogram bodies.
3727         (Expand_Cleanup_Actions): No need to search for
3728         Activation_Chain_Entity; just use Activation_Chain_Entity.
3729         * sem_ch8.adb (Find_Direct_Name): Use Entyp constant.
3730         * atree.adb, atree.ads, atree.h, nlists.adb, nlists.ads
3731         (Parent): Provide nonoverloaded versions of Parent, so that they
3732         can be easily found in the debugger.
3733         * debug_a.adb, debug_a.ads: Clarify that we're talking about the
3734         -gnatda switch; switches are case sensitive.  Print out the
3735         Chars field if appropriate, which makes it easier to find things
3736         in the output.
3737         (Debug_Output_Astring): Simplify. Also fix an off-by-one
3738         bug ("for I in Vbars'Length .." should have been "for I in
3739         Vbars'Length + 1 ..").  Before, it was printing Debug_A_Depth +
3740         1 '|' characters if Debug_A_Depth > Vbars'Length.
3742 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3744         * sem_prag.adb (Analyze_Pragma): Remove unnecessary call to
3745         Analyze.
3747 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3749         * libgnat/g-socket.adb (Raise_Host_Error): Add No_Return aspect.
3750         (Raise_GAI_Error): Likewise.
3751         * libgnat/g-socket.ads (Raise_Socket_Error): Likewise.
3753 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3755         * sem_util.adb (Aggregate_Constraint_Checks): Fix whitespace;
3756         refactor repeated code; replace a ??? comment with an
3757         explanation based on the comment for the routine spec.
3759 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3761         * sem_util.ads (Note_Possible_Modification): Fix occurrence of
3762         May_Be_Modified in comment.
3763         * sem_warn.ads (Check_Unset_Reference): Fix occurrence of
3764         Not_Assigned in comment.
3766 2022-07-05  Yannick Moy  <moy@adacore.com>
3768         * sem_attr.adb (Analyze_Attribute): Take into account the
3769         possibility of homonyms.
3771 2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>
3773         * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite as a renaming
3774         for any nonaliased local object with nominal unconstrained subtype
3775         originally initialized with the result of a function call that has
3776         been rewritten as the dereference of a reference to the result.
3777         * sem_ch3.adb (Analyze_Object_Declaration): Do not do it here
3779 2022-07-05  Arnaud Charlet  <charlet@adacore.com>
3781         * exp_imgv.adb (Build_Enumeration_Image_Tables): Also disable
3782         perfect hash in GNAT_Mode.
3783         * raise-gcc.c (__gnat_Unwind_RaiseException): Add support for
3784         disabling exception propagation.
3785         * sem_eval.adb (Compile_Time_Known_Value): Update comment and
3786         remove wrong call to Check_Error_Detected.
3787         * sem_prag.adb (Check_Loop_Pragma_Grouping, Analyze_Pragma):
3788         Remove exception propagation during bootstrap.
3790 2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>
3792         * exp_aggr.adb (Expand_Array_Aggregate): Remove obsolete code.
3793         Delay the expansion of aggregates initializing return objects of
3794         build-in-place functions.
3795         * exp_ch3.ads (Ensure_Activation_Chain_And_Master): Delete.
3796         * exp_ch3.adb (Ensure_Activation_Chain_And_Master): Fold back to...
3797         (Expand_N_Object_Declaration): ...here.
3798         Perform the expansion of return objects of build-in-place functions
3799         here instead of...
3800         * exp_ch6.ads (Is_Build_In_Place_Return_Object): Declare.
3801         * exp_ch6.adb (Expand_N_Extended_Return_Statement): ...here.
3802         (Is_Build_In_Place_Result_Type): Alphabetize.
3803         (Is_Build_In_Place_Return_Object): New predicate.
3804         * exp_ch7.adb (Enclosing_Function): Delete.
3805         (Process_Object_Declaration): Tidy up handling of return objects.
3806         * sem_ch3.adb (Analyze_Object_Declaration): Do not decorate and
3807         freeze the actual type if it is the same as the nominal type.
3808         * sem_ch6.adb: Remove use and with clauses for Exp_Ch3.
3809         (Analyze_Function_Return): Analyze again all return objects.
3810         (Create_Extra_Formals): Do not force the definition of an Itype
3811         if the subprogram is a compilation unit.
3813 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3815         * gnatls.adb (Corresponding_Sdep_Entry): Remove dead return
3816         statement in defensive path; there is another return statement
3817         for a normal execution of this routine, so rule Ada RM 6.5(5),
3818         which requires function to have at least one return statement is
3819         still satisfied.
3820         (Gnatls): Remove dead, call to nonreturning Exit_Program after
3821         Output_License_Information which itself does not return.
3822         * libgnat/a-exstat.adb (Bad_EO): Remove raise statement that was
3823         meant to please some ancient version of GNAT.
3824         * libgnat/g-awk.adb (Raise_With_Info): Likewise.
3825         * sem_attr.adb (Check_Reference): Remove dead return statement;
3826         rule Ada RM 6.5(5), which requires function to have at least one
3827         return statement is still satisfied.
3828         (Analyze_Attribute): Remove dead exit statement.
3829         (Check_Reference): Same as above.
3830         * sem_ch12.adb (Instantiate_Formal_Package): Remove dead raise
3831         statement; it was inconsistent with other calls to
3832         Abandon_Instantiation, which are not followed by a raise
3833         statement.
3834         * sem_prag.adb (Process_Convention): Remove dead defensive
3835         assignment.
3836         (Interrupt_State): Remove dead defensive exit statement.
3837         (Do_SPARK_Mode): Likewise.
3838         * sfn_scan.adb (Scan_String): Remove dead defensive assignment.
3840 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3842         * sem_attr.adb, sem_prag.adb: Remove dead return statements
3843         after calls to Error_Attr, Error_Pragma, Error_Pragma_Arg and
3844         Placement_Error. All these calls raise exceptions that are
3845         handled to gently recover from errors.
3847 2022-07-05  Doug Rupp  <rupp@adacore.com>
3849         * libgnat/system-vxworks-ppc-kernel.ads (Word_Size): Compute
3850         based on Standard'Word_Size.
3851         (Memory_Size): Compute based on Word_Size.
3852         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
3853         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
3855 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3857         * sem_attr.adb (Analyze_Attribute): Move call to
3858         Set_Address_Taken so that it is executed when the prefix
3859         attribute is legal.
3861 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3863         * sem_ch5.adb (Check_Unreachable_Code): Avoid explicit use of
3864         Sloc; this should also help when we finally use Source_Span for
3865         prettier error messages.
3867 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3869         * sem_ch5.adb (Check_Unreachable_Code): Remove redundant guard;
3870         the call to Present wasn't needed either.
3872 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3874         * sem_ch5.adb (Analyze_Block_Statement): Call to List_Length with
3875         No_List is safe and will return zero.
3877 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3879         * sem_ch6.adb (Check_Missing_Return): Add reference to an RM rule.
3881 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3883         * sem_ch6.adb (Check_Missing_Return): Remove outdated comment.
3885 2022-07-05  Dmitriy Anisimkov  <anisimko@adacore.com>
3887         * adaint.h (convert_addresses): Remove function declaration.
3889 2022-07-05  Doug Rupp  <rupp@adacore.com>
3891         * Makefile.rtl (*vxworks*): Remove most pre-vxworks7 code.
3892         * vxworks-arm-link.spec: Remove.
3893         * vxworks-e500-link.spec: Likewise.
3894         * vxworks-smp-arm-link.spec: Likewise.
3895         * vxworks-smp-e500-link.spec: Likewise.
3896         * vxworks-smp-x86-link.spec: Likewise.
3897         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
3898         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
3899         * libgnat/system-vxworks-arm.ads: Likewise.
3900         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
3901         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
3902         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
3903         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
3904         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
3905         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
3907 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3909         * sem_disp.adb (Check_Dispatching_Call): Merge the two special cases
3910         where there are no controlling actuals but tag-indeternminate ones.
3912 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3914         * exp_disp.adb (Expand_Dispatching_Call): Fix detection of calls
3915         that are dispatching on tagged result.
3917 2022-07-04  Doug Rupp  <rupp@adacore.com>
3919         * Makefile.rtl (ADA_EXCLUDE_SRCS): Add s-qnx.ads.
3921 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3923         * exp_ch3.adb (Expand_N_Object_Declaration) <OK_To_Rename_Ref>: New
3924         local function.
3925         <Rewrite_As_Renaming>: Change to a local variable whose value is
3926         computed once and generate a call to Finalize after this is done.
3927         Simplify the code creating the renaming at the end.
3929 2022-07-04  Doug Rupp  <rupp@adacore.com>
3931         * Makefile.rtl (GCC_SPEC_FILES): Remove vxworks cert files.
3933 2022-07-04  Piotr Trojanek  <trojanek@adacore.com>
3935         * sem_attr.adb (Resolve_Attribute): Refactor duplicated code for
3936         Count and Index attributes.
3938 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3940         * checks.adb (Apply_Length_Check_On_Assignment): Return early if
3941         the Suppress_Assignment_Checks flag is set.
3942         (Selected_Range_Checks): Deal with conditional expressions.
3943         * exp_ch4.adb (Too_Large_Length_For_Array): New constant.
3944         (Expand_Concatenate): Use it in lieu of Too_Large_Max_Length.
3945         (Expand_N_If_Expression): If the result has a unidimensional array
3946         type but the dependent expressions have constrained subtypes with
3947         known bounds, create a static temporary on the stack with a subtype
3948         covering the result.
3949         (Get_First_Index_Bounds): Deal with string literals.
3950         * uintp.ads (Uint_256): New deferred constant.
3951         * sinfo.ads (Suppress_Assignment_Checks): Document new usage.
3953 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3955         * exp_ch3.adb (Expand_N_Object_Declaration.Rewrite_As_Renaming):
3956         Do not rewrite if the declaration has got constraints.
3957         * sinfo.ads (Case Expression Alternative): Fix typo.
3959 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3961         * exp_ch3.adb (Expand_N_Object_Declaration.Rewrite_As_Renaming):
3962         Be prepared for slices.
3963         * exp_ch4.adb (Get_First_Index_Bounds): New procedure.
3964         (Expand_Array_Comparison.Length_Less_Than_4): Call it.
3965         (Expand_Concatenate): Try to compute a maximum length for
3966         operands with variable length and a maximum total length at the
3967         end.  If the concatenation is dynamic, but a sensible maximum
3968         total length has been computed, use this length to create a
3969         static array subtype for the temporary and return a slice of it.
3971 2022-07-04  Steve Baird  <baird@adacore.com>
3973         * sem_ch3.adb (Check_Possible_Deferred_Completion): Delete
3974         Prev_Obj_Def formal parameter.  Reorganize code so that
3975         statically matching check is also performed in the case where
3976         the subtype given in the initial declaration is constrained and
3977         the subtype given in the completion is not.
3979 2022-07-04  Bob Duff  <duff@adacore.com>
3981         * einfo-utils.ads, einfo-utils.adb: Add predicates on subtypes E
3982         and N.  Change some parameters to use the unpredicated subtypes,
3983         because they sometimes return e.g. Empty.  Note that N_Entity_Id
3984         has a predicate; Entity_Id does not.
3985         * exp_tss.adb (Base_Init_Proc): Use Entity_Id instead of E,
3986         because otherwise we fail the predicate. We shouldn't be
3987         referring to single-letter names from far away anyway.
3988         * sem_aux.adb (Is_Derived_Type): Likewise.
3989         * sem_res.adb (Is_Definite_Access_Type): Use N_Entity_Id for
3990         predicate.
3991         * types.ads (Entity_Id): Add comment explaining the difference
3992         between Entity_Id and N_Entity_Id.
3994 2022-07-04  Justin Squirek  <squirek@adacore.com>
3996         * exp_util.adb (Remove_Side_Effects): Combine identical
3997         branches.
3998         * sem_attr.adb (Analyze_Attribute): Combine identical cases
3999         Attribute_Has_Same_Storage and Attribute_Overlaps_Storage.
4000         * sem_prag.adb (Check_Role): Combine E_Out_Parameter case with
4001         general case for parameters.
4002         * sem_util.adb (Accessibility_Level): Combine identical
4003         branches.
4004         * sprint.adb (Sprint_Node_Actual): Combine cases for
4005         N_Real_Range_Specification and N_Signed_Integer_Type_Definition.
4007 2022-07-04  Justin Squirek  <squirek@adacore.com>
4009         * libgnat/s-os_lib.adb (Quote_Argument): Modify the result
4010         buffer size calculation to handle the case where Arg'Length is
4011         1.
4013 2022-07-04  Bob Duff  <duff@adacore.com>
4015         * exp_util.adb (Expand_Subtype_From_Expr): Generate a new
4016         subtype when Is_Constr_Subt_For_UN_Aliased is True, so the
4017         Is_Constr_Subt_For_U_Nominal flag will not be set on the
4018         preexisting subtype.
4019         * sem_attr.adb, sem_ch3.adb: Minor.
4021 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
4023         * debug.adb (d.9): Remove usage.
4024         * exp_ch6.adb (Expand_Simple_Function_Return): Remove redundant
4025         test on Debug_Flag_Dot_L.
4026         (Is_Build_In_Place_Result_Type): Return false for nonlimited types.
4027         (Is_Build_In_Place_Function): Tidy up and remove redundant test on
4028         Debug_Flag_Dot_L.
4030 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
4032         * exp_ch3.adb (Expand_N_Object_Declaration): Don't adjust the object
4033         if the expression is a function call.
4034         <Rewrite_As_Renaming>: Return true if the object needs finalization
4035         and is initialized  with the result of a function call returned on
4036         the secondary stack.
4037         * exp_ch6.adb (Expand_Ctrl_Function_Call): Add Use_Sec_Stack boolean
4038         parameter.  Early return if the parent is an object declaration and
4039         Use_Sec_Stack is false.
4040         (Expand_Call_Helper): Adjust call to Expand_Ctrl_Function_Call.
4041         * exp_ch7.adb (Find_Last_Init): Be prepared for initialization still
4042         present in the object declaration.
4043         * sem_ch3.adb (Analyze_Object_Declaration): Call the predicates
4044         Needs_Secondary_Stack and Needs_Finalization to guard the renaming
4045         optimization.
4047 2022-07-04  Bob Duff  <duff@adacore.com>
4049         * libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
4050         libgnat/a-cihase.ads, libgnat/a-ciorse.ads,
4051         libgnat/a-cohase.ads, libgnat/a-coorse.ads (Key): New function
4052         that takes a Container parameter, implemented as an expression
4053         function, so it is self explanatory (doesn't need a comment).
4055 2022-07-04  Vasiliy Fofanov  <fofanov@adacore.com>
4057         * doc/gnat_rm/the_gnat_library.rst: Fix length of title
4058         underlines.
4060 2022-07-04  Steve Baird  <baird@adacore.com>
4062         * sem_ch4.adb (Analyze_Allocator): After calling Insert_Action
4063         to insert a subtype declaration associated with an allocator,
4064         the subtype declaration will usually be analyzed. But not
4065         always. Add an explicit call to Preanalyze to cope with the
4066         unusual case. The subtype declaration must be at least
4067         preanalyzed before the call to Sem_Ch3.Process_Subtype a little
4068         while later, during which we analyze an identifier that refers
4069         to the subtype.
4071 2022-07-04  Steve Baird  <baird@adacore.com>
4073         * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
4074         generate a warning if the expression in question is an assertion
4075         expression, or a subexpression thereof. But do call
4076         Test_Comparison so that it can generate warnings for the cases
4077         that it generates warnings for.
4078         * sem_prag.ads: Modify Assertion_Expression_Pragma constant so
4079         that the predicate Sem_Util.In_Assertion_Expression_Pragma
4080         returns True for the expression of a Compile_Time_Error pragma.
4082 2022-07-04  Julien Bortolussi  <bortolussi@adacore.com>
4084         * doc/gnat_rm/the_gnat_library.rst: Add the new entry.
4085         * gnat_rm.texi: Regenerate.
4087 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
4089         * sem_res.adb (Resolve_Comparison_Op): Deal with ambiguous operands
4090         in all cases.
4091         (Resolve_Equality_Op): Likewise, except for the case of the implicit
4092         inequality operator created for a user-defined operator that is not
4093         an intrinsic subprogram.
4095 2022-07-04  Bob Duff  <duff@adacore.com>
4097         * libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
4098         libgnat/a-cborse.adb, libgnat/a-cborse.ads,
4099         libgnat/a-cihase.adb, libgnat/a-cihase.ads,
4100         libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
4101         libgnat/a-cohase.adb, libgnat/a-cohase.ads,
4102         libgnat/a-conhel.adb, libgnat/a-conhel.ads,
4103         libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add Has_Element,
4104         Element, Query_Element, and Next subprograms that take a Set
4105         parameter. Add Tampering_With_Cursors_Prohibited function. These
4106         are all new in Ada 2022.
4108 2022-07-04  Claire Dross  <dross@adacore.com>
4110         * doc/gnat_rm/the_gnat_library.rst: Functional vectors, sets,
4111         and maps are now controlled.
4112         * gnat_rm.texi: Regenerate.
4114 2022-07-04  Claire Dross  <dross@adacore.com>
4116         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
4117         (Debugging and Assertion Control): Add GNAT specific assertion
4118         pragmas to the equivalent Assertion_Policy for the -gnata
4119         option.
4120         * gnat_ugn.texi: Regenerate.
4122 2022-07-04  Justin Squirek  <squirek@adacore.com>
4124         * sem_disp.adb (Most_Descendant_Use_Clause): Remove call to
4125         deprecated Is_Internal.
4126         * sem_util.adb (Innermost_Master_Scope_Depth): Use
4127         Find_Enclosing_Scope instead of Nearest_Dynamic_Scope to avoid
4128         cases where relevant scopes get skipped leading to an incorrect
4129         scope depth calculation.
4131 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
4133         * exp_ch6.adb (Build_In_Place_Formal): Also compute Returns_By_Ref
4134         for the function if the extra formals were not built initially.
4136 2022-07-04  Piotr Trojanek  <trojanek@adacore.com>
4138         * sem_ch13.adb (Resolve_Iterable_Operation): Add guard to
4139         prevent crash when the examined function has no formal
4140         parameters and Etype is called on Empty entity.
4142 2022-07-04  Julien Bortolussi  <bortolussi@adacore.com>
4144         * libgnat/a-cfinse.adb, libgnat/a-cfinse.ads: Implementation
4145         files of the sequence.
4146         * Makefile.rtl, impunit.adb: Take into account the add of the
4147         new files
4149 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
4151         * doc/gnat_rm/implementation_defined_pragmas.rst (Pure_Function):
4152         Fix ambiguous wording about context dependence.
4153         * gnat_rm.texi: Regenerate.
4155 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
4157         * gcc-interface/misc.cc (gnat_get_sarif_source_language): New.
4158         (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): Redefine.
4160 2022-06-02  Pierre-Marie de Rodat  <derodat@adacore.com>
4162         * gcc-interface/gigi.h: Update copyright notice.
4163         * gcc-interface/lang-specs.h: Likewise.
4164         * gcc-interface/utils.cc: Likewise.
4166 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4168         * gcc-interface/gigi.h (enum standard_datatypes): Remove values
4169         for the SJLJ exception mechanism.
4170         (jmpbuf_type): Delete.
4171         (jmpbuf_ptr_type): Likewise.
4172         (get_jmpbuf_decl): Likewise.
4173         (set_jmpbuf_decl): Likewise.
4174         (get_excptr_decl): Likewise.
4175         (not_handled_by_others_decl): Likewise.
4176         (setjmp_decl): Likewise.
4177         (update_setjmp_buf_decl): Likewise.
4178         (raise_nodefer_decl): Likewise.
4179         (set_block_jmpbuf_decl): Likewise.
4180         (get_block_jmpbuf_decl): Likewise.
4181         * gcc-interface/trans.cc (gigi): Delete dead code.
4182         * gcc-interface/utils.cc (gnat_binding_level): Remove JMPBUF_DECL.
4183         (gnat_pushlevel): Do not clear it.
4184         (set_block_jmpbuf_decl): Delete.
4185         (get_block_jmpbuf_decl): Likewise.
4187 2022-06-02  Ghjuvan Lacambre  <lacambre@adacore.com>
4189         * gcc-interface/decl.cc (warn_on_field_placement): Add insertion
4190         character '.q' to warning string.
4192 2022-06-02  Arnaud Charlet  <charlet@adacore.com>
4194         * gcc-interface/Makefile.in (gnatlib-shared-default): Add
4195         -fno-lto.
4197 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4199         * gcc-interface/decl.cc (gnat_to_gnu_entity): Do not check the
4200         scope of anonymous access Itypes.
4201         * gcc-interface/trans.cc (Identifier_to_gnu): Do not translate
4202         the return type of a subprogram here.
4204 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4206         * exp_ch7.adb (Expand_N_Package_Body): Build static dispatch
4207         tables only for units that are not compilation units, unless
4208         they are generic instances.  Do not push a scope for this.
4209         (Expand_N_Package_Declaration): Build static dispatch tables
4210         only for units that are both not compilation units and generic
4211         instances.
4212         * exp_disp.adb (Build_Static_Dispatch_Tables): Remove redundant
4213         early return.  Push a scope for package bodies.
4214         * sem_ch10.adb: Add with and use clauses for Exp_Disp.
4215         (Analyze_Compilation_Unit): Build static dispatch tables here.
4217 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4219         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Clear the Is_Public
4220         flag on thunks.
4222 2022-06-02  Piotr Trojanek  <trojanek@adacore.com>
4224         * exp_ch13.adb, exp_ch5.adb, exp_ch9.adb, exp_strm.adb,
4225         sem_ch10.adb, sem_ch13.adb, sem_ch5.adb, sem_ch6.adb,
4226         sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb,
4227         sem_util.adb: Remove checks for the missing list before
4228         iterating with First/Next; reindent code and refill comments.
4230 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4232         * einfo.ads (Has_Controlling_Result): Document new usage.
4233         (Is_Thunk): Document secondary stack thunks.
4234         (Returns_By_Ref): Adjust.
4235         * exp_ch6.adb (Caller_Known_Size): Return true for tagged types.
4236         (Expand_N_Extended_Return_Statement): Do not call Set_By_Ref.
4237         (Expand_Simple_Function_Return): For a BIP return with an Alloc_Form
4238         parameter, mark the node as returning on the secondary stack.
4239         Replace call to Is_Limited_Interface with Is_Limited_View.  Deal wit
4240         secondary stack thunks.  Do not call Set_By_Ref.  Optimize the case
4241         of a call to a function whose type also needs finalization.
4242         (Needs_BIP_Task_Actuals): Replace Thunk_Entity with Thunk_Target.
4243         (Needs_BIP_Finalization_Master): Cosmetic fixes.
4244         (Needs_BIP_Alloc_Form): Check No_Secondary_Stack restriction and
4245         return true for tagged types.
4246         * exp_ch7.adb (Transient Scope Management): Update description.
4247         * exp_disp.adb (Expand_Dispatching_Call): Always set Returns_By_Ref
4248         on designated type if the call is dispatching on result.  Tidy up.
4249         (Expand_Interface_Thunk): Change type of Thunk_Code from Node_Id to
4250         List_Id.  Change type of local variables from Node_Id to Entity_Id.
4251         Propagate Aliased_Present flag to create the formals and explicitly
4252         set Has_Controlling_Result to False.  Build a secondary stack thunk
4253         if necessary in the function case.
4254         (Expand_Secondary_Stack_Thunk): New function.
4255         (Make_Secondary_DT): Build secondary stack thunks if necessary.
4256         (Make_DT): Likewise.
4257         (Register_Predefined_Primitive): Likewise.
4258         (Register_Primitive): Likewise.
4259         * exp_util.ads (Is_Secondary_Stack_Thunk): Declare.
4260         (Thunk_Target): Likewise.
4261         * exp_util.adb (Is_Secondary_Stack_Thunk): New function.
4262         (Thunk_Target): Likewise.
4263         * fe.h (Is_Secondary_Stack_Thunk): Declare.
4264         (Thunk_Target): Likewise.
4265         * gen_il-fields.ads (Opt_Field_Enum): Remove By_Ref.
4266         * gen_il-gen-gen_nodes.adb (N_Simple_Return_Statement): Likewise.
4267         (N_Extended_Return_Statement): Likewise.
4268         * sem_ch6.adb (Analyze_Subprogram_Specification): Skip check for
4269         abstract return type in the thunk case.
4270         (Create_Extra_Formals): Replace Thunk_Entity with Thunk_Target.
4271         * sem_disp.adb (Check_Controlling_Formals): Skip in the thunk case.
4272         * sem_util.adb: Add use and with clauses for Exp_Ch6.
4273         (Compute_Returns_By_Ref): Do not process procedures and only set
4274         the flag for direct return by reference.
4275         (Needs_Secondary_Stack): Do not return true for specific tagged
4276         types and adjust comments accordingly.
4277         * sinfo.ads (By_Ref): Delete.
4278         (N_Simple_Return_Statement): Remove By_Ref.
4279         (N_Extended_Return_Statement): Likewise.
4280         * gcc-interface/ada-tree.h (TYPE_RETURN_UNCONSTRAINED_P): Delete.
4281         * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Do not use it.
4282         Return by direct reference if the return type needs the secondary
4283         stack as well as for secondary stack thunks.
4284         * gcc-interface/gigi.h (fntype_same_flags_p): Remove parameter.
4285         * gcc-interface/misc.cc (gnat_type_hash_eq): Adjust to above change.
4286         * gcc-interface/trans.cc (finalize_nrv): Replace test on
4287         TYPE_RETURN_UNCONSTRAINED_P with TYPE_RETURN_BY_DIRECT_REF_P.
4288         (Subprogram_Body_to_gnu): Do not call maybe_make_gnu_thunk for
4289         secondary stack thunks.
4290         (Call_to_gnu): Do not test TYPE_RETURN_UNCONSTRAINED_P.
4291         (gnat_to_gnu) <N_Simple_Return_Statement>: In the return by direct
4292         reference case, test for the presence of Storage_Pool on the node
4293         to build an allocator.
4294         (maybe_make_gnu_thunk): Deal with Thunk_Entity and Thunk_Target.
4295         * gcc-interface/utils.cc (fntype_same_flags_p): Remove parameter.
4297 2022-06-02  Marc Poulhiès  <poulhies@adacore.com>
4299         * einfo.ads: Fix reference to Global_Entity_Suppress and
4300         Local_Entity_Suppress variable in the comments.
4301         * sem.ads: Likewise.
4302         * sem_prag.adb: Likewise.
4304 2022-06-02  Claire Dross  <dross@adacore.com>
4306         * libgnat/s-aridou.adb: Use Always_Return instead of Terminating
4307         to annotate termination for GNATprove.
4308         * libgnat/s-arit32.adb: Idem.
4309         * libgnat/s-spcuop.ads: Idem.
4311 2022-06-02  Julien Bortolussi  <bortolussi@adacore.com>
4313         * libgnat/a-cofuse.ads, libgnat/a-cofuse.adb,
4314         libgnat/a-cofuma.ads, libgnat/a-cofuma.adb: Make Length and
4315         Num_Overlaps return Big_Natural.
4316         * libgnat/a-cforse.ads, libgnat/a-cforse.adb,
4317         libgnat/a-cforma.adb, libgnat/a-cfhase.ads,
4318         libgnat/a-cfhase.adb, libgnat/a-cfhama.adb,
4319         libgnat/a-cfdlli.adb: Adapt code to handle Big_Integers instead
4320         of Count_Type.
4322 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4324         * exp_ch3.adb (Init_Secondary_Tags.Initialize_Tag): Initialize the
4325         Offset_Func component by means of 'Unrestricted_Access.
4327 2022-06-02  Ghjuvan Lacambre  <lacambre@adacore.com>
4329         * errout.adb (Write_JSON_Span): Add subprogram name to emitted
4330         JSON.
4332 2022-06-02  Arnaud Charlet  <charlet@adacore.com>
4334         * sem_ch7.adb (Set_Referencer_Of_Non_Subprograms): New local
4335         procedure, used for code refactoring. Also take into account
4336         Inline_Always pragma when deciding to make a symbol public for
4337         C generation.
4339 2022-06-02  Yannick Moy  <moy@adacore.com>
4341         * atree.adb (New_Copy): Reset flags related to ghost entities
4342         before marking the new node.
4344 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4346         * exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Move
4347         procedure to...
4348         * exp_disp.ads (Expand_Interface_Thunk): Move declaration to...
4349         (Register_Predefined_Primitive): Declare.
4350         * exp_disp.adb (Expand_Interface_Thunk): ...here.
4351         (Register_Predefined_Primitive): ...here and change into a function
4352         returning List_Id.
4354 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4356         * exp_ch3.adb (Expand_Freeze_Record_Type): Adjust comment.
4357         (Expand_N_Object_Declaration): Do not build static dispatch tables.
4358         * exp_disp.adb (Make_And_Insert_Dispatch_Table): New procedure.
4359         (Build_Static_Dispatch_Tables): Call it to build the dispatch tables
4360         and wrap them in the Actions list of a freeze node.
4362 2022-06-02  Doug Rupp  <rupp@adacore.com>
4364         * libgnat/system-vxworks7-arm.ads (Support_Atomic_Primitives):
4365         Set True.
4366         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
4367         * libgnat/system-vxworks7-aarch64.ads: Likewise.
4368         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise:
4370 2022-06-02  Javier Miranda  <miranda@adacore.com>
4372         * libgnat/g-dyntab.ads (Table_Type): Update documentation.
4374 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4376         * freeze.adb (Check_Expression_Function.Find_Constant): Make test
4377         for deferred constants more robust.
4379 2022-06-02  Joffrey Huguet  <huguet@adacore.com>
4381         * libgnat/i-cstrin.ads (Update): Update precondition.
4383 2022-06-02  Yannick Moy  <moy@adacore.com>
4385         * sem_ch2.adb (Analyze_Identifier): Add checking for ghost
4386         context.
4387         * sem_ch5.adb (Analyze_Implicit_Label_Declaration): Treat
4388         implicit labels like other entities by setting their ghost
4389         status according to context.
4390         * ghost.adb (Check_Ghost_Context): Adapt checking.
4392 2022-06-02  Joffrey Huguet  <huguet@adacore.com>
4394         * libgnat/i-cstrin.ads (Update): Add precondition.
4396 2022-06-02  Yannick Moy  <moy@adacore.com>
4398         * sem_ch5.adb (Analyze_Label_Entity): Remove body.
4399         * sem_ch5.ads (Analyze_Label_Entity): Remove spec.
4401 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4403         * sem_util.adb (Propagate_DIC_Attributes): Add ??? comment.
4404         (Propagate_Invariant_Attributes): Likewise.  Propagate the
4405         Has_Inheritable_Invariants and Has_Inherited_Invariants to
4406         the base type of the target type.
4408 2022-06-02  Doug Rupp  <rupp@adacore.com>
4410         * libgnat/system-linux-arm.ads (Memory_Size): Compute based on
4411         Word_Size.
4413 2022-06-02  Doug Rupp  <rupp@adacore.com>
4415         * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Word_Size):
4416         Compute based on Standard'Word_Size. (Memory_Size): Compute
4417         based on Word_Size.
4418         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
4419         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
4420         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
4421         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
4422         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
4423         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
4424         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
4425         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
4427 2022-06-02  Justin Squirek  <squirek@adacore.com>
4429         * gnatbind.adb (Gnatbind): Add initialize call for Uintp
4430         * gnatls.adb (Gnatls): Likewise.
4431         * gprep.adb (Gnatprep): Likewise.
4432         * make.adb (Initialize): Likewise.
4434 2022-06-02  Claire Dross  <dross@adacore.com>
4436         * libgnat/a-cfinve.ads (Element): Change the type of the
4437         Position parameter to Extended_Index.
4438         * libgnat/a-cfinve.adb (Element): Idem.
4439         * libgnat/a-cofove.ads (Element): Idem.
4440         * libgnat/a-cofove.adb (Element): Idem.
4442 2022-06-02  Joffrey Huguet  <huguet@adacore.com>
4444         * libgnat/s-atacco.ads (To_Pointer): Add Global => null.
4445         (To_Address): Add SPARK_Mode => Off.
4447 2022-06-02  Joffrey Huguet  <huguet@adacore.com>
4449         * libgnat/i-cstrin.ads (To_Chars_Ptr): Add SPARK_Mode => Off.
4450         (Free): Likewise.
4451         (New_Char_Array): Add global contracts and Volatile attribute.
4452         (New_String): Likewise.
4453         (Value, Strlen, Update): Add global contracts and preconditions.
4454         * libgnat/i-cstrin.adb: Add SPARK_Mode => Off to the package
4455         body.
4457 2022-06-01  Yannick Moy  <moy@adacore.com>
4459         * contracts.adb (Check_Type_Or_Object_External_Properties): Check
4460         the validity of combinations only when No_Caching is not used.
4461         * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Check
4462         valid combinations with No_Caching.
4464 2022-06-01  Doug Rupp  <rupp@adacore.com>
4466         * libgnat/system-vxworks7-aarch64.ads (Word_Size): Compute
4467         based on Standard'Word_Size. (Memory_Size): Compute based
4468         on Word_Size.
4469         * libgnat/system-vxworks7-arm.ads: Likewise.
4470         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
4471         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
4472         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
4473         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
4474         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
4476 2022-06-01  Doug Rupp  <rupp@adacore.com>
4478         * libgnat/system-qnx-arm.ads (Memory_Size): Compute based on
4479         Word_Size.
4481 2022-06-01  Piotr Trojanek  <trojanek@adacore.com>
4483         * par-util.adb (Ignore): Add missing space to message string.
4485 2022-06-01  Yannick Moy  <moy@adacore.com>
4487         * sem_prag.ads (Assertion_Expression_Pragmas): Fix value for
4488         pragma Subprogram_Variant.
4490 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4492         * exp_ch6.adb (Caller_Known_Size): Invoke Needs_Secondary_Stack in
4493         lieu of Returns_On_Secondary_Stack.
4494         (Expand_Call_Helper): Likewise.
4495         (Expand_Simple_Function_Return): Likewise.
4496         (Needs_BIP_Alloc_Form): Likewise.
4497         * exp_ch7.adb (Wrap_Transient_Declaration): Likewise.
4498         * sem_res.adb (Resolve_Call): Likewise.
4499         (Resolve_Entry_Call): Likewise.
4500         * sem_util.ads (Returns_On_Secondary_Stack): Rename into...
4501         (Needs_Secondary_Stack): ...this.
4502         * sem_util.adb (Returns_On_Secondary_Stack): Rename into...
4503         (Needs_Secondary_Stack): ...this.
4504         * fe.h (Returns_On_Secondary_Stack): Delete.
4505         (Needs_Secondary_Stack): New function.
4506         * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call
4507         to Returns_On_Secondary_Stack with Needs_Secondary_Stack.
4509 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4511         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For the case where
4512         there is no previous declaration, freeze the body entity only after
4513         it has been processed as a new overloaded name.
4514         Use Was_Expression_Function to recognize expression functions.
4515         * sem_disp.adb (Check_Dispatching_Operation): Do not require a body
4516         which is the last primitive to be frozen here.
4518 2022-06-01  Julien Bortolussi  <bortolussi@adacore.com>
4520         * libgnat/a-cfdlli.adb ("="): Make the function properly loop
4521         over the right list.
4523 2022-06-01  Marc Poulhiès  <poulhies@adacore.com>
4525         * checks.adb (Apply_Predicate_Check): Refine condition for
4526         applying optimization.
4527         * sem_ch3.adb (Analyze_Component_Declaration): Adjust calls to
4528         Should_Build_Subtype.
4529         (Analyze_Object_Declaration): Likewise.
4530         (Should_Build_Subtype): Rename/move to ...
4531         * sem_util.ads (Build_Default_Subtype_OK): ... this.
4532         * sem_util.adb (Build_Default_Subtype_OK): Moved from
4533         sem_ch3.adb.
4535 2022-06-01  Doug Rupp  <rupp@adacore.com>
4537         * init.c (__gnat_adjust_context_for_raise) [QNX][__thumb2__]: Bump
4538         the pc an extra byte.
4540 2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
4542         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4543         Document new behavior.
4544         * errout.adb (Write_JSON_Location): Output absolute paths when
4545         needed.
4546         * switch-c.adb (Scan_Front_End_Switches): Update -gnatef
4547         comment.
4548         * usage.adb (Usage): Update description of -gnatef.
4549         * gnat_ugn.texi: Regenerate.
4551 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4553         * contracts.adb (Build_Postconditions_Procedure): Set Is_Inlined
4554         unconditionnally on the procedure entity.
4556 2022-06-01  Piotr Trojanek  <trojanek@adacore.com>
4558         * sem_ch3.adb (Constrain_Access): Propagate null-exclusion flag
4559         from parent type.
4561 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4563         * sem_ch5.adb (Analyze_Loop_Statement): Add a comment about
4564         a finalization issue.
4566 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4568         * exp_ch6.adb (Caller_Known_Size): Call Returns_On_Secondary_Stack
4569         instead of Requires_Transient_Scope and tidy up.
4570         (Needs_BIP_Alloc_Form): Likewise.
4571         * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Also return
4572         true if the build-in-place function call has no BIPalloc parameter.
4573         (Is_Finalizable_Transient): Remove redundant test.
4575 2022-06-01  Alexandre Oliva  <oliva@adacore.com>
4577         * doc/gnat_rm/security_hardening_features.rst: Note that hardening
4578         features are experimental.
4579         * gnat_rm.texi: Regenerate.
4581 2022-06-01  Steve Baird  <baird@adacore.com>
4583         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Set the
4584         Corresponding_Spec field of a wrapper subprogram body before
4585         analyzing the subprogram body; the field will be set (again)
4586         during analysis, but we need it to be set earlier.
4587         * exp_ch13.adb (Expand_N_Freeze_Entity): Add wrapper subprogram
4588         bodies to the list of declarations for which we do not want to
4589         suppress checks.
4591 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4593         * sem_util.adb (Indirect_Temp_Needed): Adjust reference in comment.
4595 2022-06-01  Doug Rupp  <rupp@adacore.com>
4597         * Makefile.rtl (GNATLIB_SHARED): Revert disablement for arm-qnx.
4599 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4601         * sem_util.adb
4602         (Returns_On_Secondary_Stack.Caller_Known_Size_Record): Directly
4603         check the dependence on discriminants for the variant part, if
4604         any, instead of calling the Is_Definite_Subtype predicate.
4606 2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
4608         * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix warning tag.
4610 2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
4612         * sem_warn.adb (Check_References): Adjust conditions under which
4613         warning messages should be emitted and their tags as well.
4615 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4617         * exp_disp.ads (Expand_Interface_Thunk): Change type of Prim.
4618         * exp_disp.adb (Expand_Interface_Thunk): Declare Is_Predef_Op
4619         earlier, do not initialize Iface_Formal, use No idiom and tweaks
4620         comments.
4621         (Register_Primitive): Declare L earlier and tweak comments.
4622         * sem_disp.adb (Check_Dispatching_Operation): Move tests out of
4623         loop.
4625 2022-06-01  Steve Baird  <baird@adacore.com>
4627         * exp_ch3.ads: Replace visible Build_Discr_Checking_Funcs (which
4628         did not need to be visible - it was not referenced outside this
4629         package) with Build_Or_Copy_Discr_Checking_Funcs.
4630         * exp_ch3.adb: Refactor existing code into 3 procedures -
4631         Build_Discr_Checking_Funcs, Copy_Discr_Checking_Funcs, and
4632         Build_Or_Copy_Discr_Checking_Funcs. This refactoring is intended
4633         to be semantics-preserving.
4634         * exp_ch4.adb (Expand_N_Selected_Component): Detect case where a
4635         call should be generated to the Discriminant_Checking_Func for
4636         the component in question, but that subprogram does not yet
4637         exist.
4638         * sem_ch13.adb (Freeze_Entity_Checks): Immediately before
4639         calling Build_Predicate_Function, add a call to
4640         Exp_Ch3.Build_Or_Copy_Discr_Checking_Funcs in order to ensure
4641         that Discriminant_Checking_Func attributes are already set when
4642         Build_Predicate_Function is called.
4643         * sem_ch6.adb (Analyze_Expression_Function): If the expression
4644         of a static expression function has been transformed into an
4645         N_Raise_xxx_Error node, then we need to copy the original
4646         expression in order to check the requirement that the expression
4647         must be a potentially static expression. We also want to set
4648         aside a copy the untransformed expression for later use in
4649         checking calls to the expression function via
4650         Inline_Static_Function_Call.  So introduce a new function,
4651         Make_Expr_Copy, for use in these situations.
4652         * sem_res.adb (Preanalyze_And_Resolve): When analyzing certain
4653         expressions (e.g., a default parameter expression in a
4654         subprogram declaration) we want to suppress checks. However, we
4655         do not want to suppress checks for the expression of an
4656         expression function.
4658 2022-06-01  Bob Duff  <duff@adacore.com>
4660         * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): For each
4661         subprogram found, assert that the variable is Empty, so we can
4662         detect bugs where we find two or more things with the same name.
4663         Without this patch, that bug would happen when we add the new
4664         Next procedure.  For Step, make sure we pick the right one, by
4665         checking name and number of parameters.  For Get_Element_Access,
4666         check that we're picking a function.  That's not really
4667         necessary, because there is no procedure with that name, but it
4668         seems cleaner this way.
4669         * rtsfind.ads: Minor comment improvement. It seems kind of odd
4670         to say "under no circumstances", and then immediately contradict
4671         that with "The one exception is...".
4673 2022-06-01  Doug Rupp  <rupp@adacore.com>
4675         * init.c (QNX): __gnat_adjust_context_for_raise: New
4676         implementation for arm-qnx.
4678 2022-06-01  Julien Bortolussi  <bortolussi@adacore.com>
4680         * libgnat/a-cofuba.ads, libgnat/a-cofuba.adb: Add reference
4681         counting.
4683 2022-06-01  Yannick Moy  <moy@adacore.com>
4685         * sem_ch8.adb (Use_One_Package): Possibly warn.
4686         * sem_util.adb (Enter_Name): Factor out warning on hidden entity.
4687         (Warn_On_Hiding_Entity): Extract warning logic from Enter_Name and
4688         generalize it to be applied also on use_clause.
4689         * sem_util.ads (Warn_On_Hiding_Entity): Add new procedure.
4691 2022-06-01  Yannick Moy  <moy@adacore.com>
4693         * par-ch3.adb (P_Known_Discriminant_Part_Opt): Reword error
4694         message to benefit from existing codefix.
4695         (P_Record_Definition): Detect out-of-order keywords in record
4696         definition and issue appropriate messages. Other cases are
4697         already caught at appropriate places.
4699 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4701         * exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Put
4702         the actions into the Actions field of the freeze node instead of
4703         inserting them after it.
4705 2022-06-01  Marc Poulhiès  <poulhies@adacore.com>
4707         * sinfo.ads: Add inline documention for Is_Parenthesis_Aggregate
4708         and Is_Enum_Array_Aggregate.
4710 2022-06-01  Bob Duff  <duff@adacore.com>
4712         * einfo-utils.adb (Set_Convention): Call Set_Convention
4713         recursively, so that Set_Can_Use_Internal_Rep is called (if
4714         appropriate) on the anonymous access type of the object, and its
4715         designated subprogram type.
4716         * sem_ch3.adb (Access_Definition): Remove redundant call to
4717         Set_Can_Use_Internal_Rep.
4719 2022-06-01  Bob Duff  <duff@adacore.com>
4721         * exp_ch4.adb (Expand_N_In): Do not warn in the above-mentioned
4722         cases.
4723         * fe.h (Assume_No_Invalid_Values): Remove from fe.h, because
4724         this is not used in gigi.
4725         * opt.ads (Assume_No_Invalid_Values): Improve the comment. We
4726         don't need to "clearly prove"; we can just "prove". Remove the
4727         comment about fe.h, which is no longer true.
4729 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4731         * erroutc.adb (Get_Warning_Option): Don't consider `?` as a
4732         valid option switch.
4734 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4736         * erroutc.ads (Get_Warning_Option): New function returning the
4737         option responsible for a warning if it exists.
4738         * erroutc.adb (Get_Warning_Option): Likewise.
4739         (Get_Warning_Tag): Rely on Get_Warning_Option when possible.
4740         * errout.adb (Output_JSON_Message): Emit option field.
4742 2022-05-30  Julien Bortolussi  <bortolussi@adacore.com>
4744         * libgnat/a-cfdlli.ads (Insert): Remove the duplication.
4746 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4748         * exp_ch6.adb (Check_Subprogram_Variant): Ignore structural
4749         variants.
4751 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4753         * osint.adb (Locate_File): Change variable to constant and
4754         initialize it by concatenation of directory, file name and NUL.
4756 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4758         * doc/gnat_rm/implementation_advice.rst (Packed Types): Remove
4759         duplicated and wrongly placed paragraph.
4760         * gnat_rm.texi: Regenerate.
4762 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4764         * inline.adb (Check_Package_Body_For_Inlining): Add insertion
4765         character.
4767 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4769         * freeze.adb (Warn_Overlay): Add 'o' insertion character.
4770         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Likewise.
4771         * sem_util.adb (Note_Possible_Modifications): Likewise.
4773 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4775         * sem_warn.adb (Warn_On_Useless_Assignment): Fix insertion
4776         character.
4778 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4780         * sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension):
4781         Fix insertion character.
4783 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4785         * sem_elab.adb (Process_Conditional_ABE_Access_Taken): Add '.f'
4786         insertion characters.
4788 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4790         * lib-xref.ads (Deferred_Reference_Entry, Defer_Reference,
4791         Process_Deferred_References, Has_Deferred_Reference): Remove
4792         client API.
4793         * lib-xref.adb (Deferred_References, Defer_Reference,
4794         Has_Deferred_Reference, Process_Deferred_References): Remove
4795         implementation.
4796         * frontend.adb, sem_ch11.adb, sem_ch5.adb, sem_res.adb,
4797         sem_util.adb, sem_warn.adb: Remove uses of Deferred_References.
4799 2022-05-30  Bob Duff  <duff@adacore.com>
4801         * exp_ch7.adb (Wrap_HSS_In_Block): Do not create a new block in
4802         the case of function bodies. We include all subprogram bodies,
4803         because it's harmless for procedures. We cannot easily avoid
4804         creating this block in ALL cases, because some transformations
4805         of (e.g.) task bodies end up moving some code such that the
4806         wrong exception handlers apply to that code.
4807         (Build_Finalizer_Call): Remove code for creating a new block.
4808         This was unreachable code, given that Wrap_HSS_In_Block has
4809         already done that, but with the above change to
4810         Wrap_HSS_In_Block, this code becomes reachable, and triggers
4811         essentially the same bug.
4812         * exp_ch7.ads: Adjust comment.
4814 2022-05-30  Justin Squirek  <squirek@adacore.com>
4816         * par-ch6.adb (P_Formal_Part): Set Aspect_Specifications on all
4817         formals instead of just the last in a formal id list.
4818         * sem_ch6.adb (Analyze_Null_Procedure): Mark expanded null
4819         generic procedures as trivial in order to avoid spurious
4820         unreferenced warnings.
4822 2022-05-30  Romain Beguet  <beguet@adacore.com>
4824         * libgnat/s-dwalin.adb: Add a subtype declaration to fix the
4825         ambiguity.
4827 2022-05-30  Steve Baird  <baird@adacore.com>
4829         * sem_ch13.adb (Is_Predicate_Static): Do not generate warnings
4830         about subexpressions of enclosing expressions. Generate warnings
4831         for predicates that are known to be always true or always false,
4832         except in the case where the predicate is expressed as a Boolean
4833         literal. Deal with non-predicate-static expressions that have
4834         been transformed into predicate-static expressions.  Add missing
4835         Is_Type_Ref call to N_Membership_Test case.
4837 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4839         * exp_aggr.adb (Expand_Record_Aggregate.Build_Back_End_Aggregate):
4840         Skip the discriminants at the start of the component list before
4841         looking for the components inherited from the parent in the case
4842         of a tagged extension.
4844 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4846         * exp_disp.adb (Make_DT): Remove remaining freezing code.
4848 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4850         * sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Don't analyze
4851         the body of an expression function in the case of a dispatch table.
4853 2022-05-30  Arnaud Charlet  <charlet@adacore.com>
4855         * gnat1drv.adb, opt.ads, sem_ch7.adb: Introduce CCG_Mode.
4857 2022-05-30  Yannick Moy  <moy@adacore.com>
4859         * Makefile.rtl: Add new units.
4860         * libgnat/s-aridou.adb (Scaled_Divide): Add ghost code for provers.
4861         * libgnat/s-spcuop.adb: New unit for ghost cut operations.
4862         * libgnat/s-spcuop.ads: New unit for ghost cut operations.
4863         * libgnat/s-spark.ads: New unit.
4865 2022-05-30  Alexandre Oliva  <oliva@adacore.com>
4867         * doc/gnat_rm/security_hardening_features.rst: Mention
4868         availability in other languages when applicable.
4869         (Stack Scrubbing): Associate the attribute with types, expand
4870         some comments, fix the example involving access to variables.
4871         * gnat_rm.texi: Regenerate.
4873 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4875         * libgnat/a-cofuse.ads (Empty_Set): Fix typo in comment.
4877 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4879         * sem_ch6.adb (New_Overloaded_Entity): Deal specifically with the
4880         overriding of the "=" operator for tagged types.
4882 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4884         * exp_ch3.adb (Expand_N_Object_Declaration): Adjust call to Make_DT.
4885         * exp_disp.ads (Building_Static_DT): Remove pragma Inline.
4886         (Building_Static_Secondary_DT): Likewise.
4887         (Convert_Tag_To_Interface): Likewise.
4888         (Make_DT): Remove second parameter.
4889         * exp_disp.adb (Make_DT): Likewise.
4890         (Check_Premature_Freezing): Delete.
4891         Pass Do_Freeze_Profile as False in call to Freeze_Entity.
4892         * freeze.ads (Freezing_Library_Level_Tagged_Type): Delete.
4893         * freeze.adb (Freeze_Profile): Remove obsolete code.
4894         (Freeze_Entity): Tweak comment.
4896 2022-05-30  Yannick Moy  <moy@adacore.com>
4898         * libgnat/s-arit32.adb (Scaled_Divide32): Move assertion up.
4900 2022-05-30  Yannick Moy  <moy@adacore.com>
4902         PR ada/105303
4903         * libgnat/s-gearop.adb: Add pragma Assertion_Policy in generic
4904         bodies making use of additional assertions or ghost code.
4905         * libgnat/s-gearop.ads: Remove confusing Assertion_Policy.
4907 2022-05-30  Steve Baird  <baird@adacore.com>
4909         * exp_ch11.adb (Expand_N_Raise_Expression): Remove
4910         Convert_To_Return_False test.
4911         * gen_il-fields.ads: Remove Convert_To_Return_False field.
4912         * gen_il-gen-gen_nodes.adb: Remove use of
4913         Convert_To_Return_False field.
4914         * sinfo.ads: Remove comment describing Convert_To_Return_False
4915         flag.
4917 2022-05-30  Julien Bortolussi  <bortolussi@adacore.com>
4919         * libgnat/a-cofuma.ads, libgnat/a-cofuma.adb,
4920         libgnat/a-cofuse.ads, libgnat/a-cofuse.adb,
4921         libgnat/a-cofuve.ads, libgnat/a-cofuve.adb: Add empty
4922         constructors.
4924 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4926         * bindgen.adb (Gen_CUDA_Init): Remove code generating CUDA
4927         definitions.
4928         (Gen_CUDA_Defs): New function, generating definitions
4929         initialized by Gen_CUDA_Init.
4930         (Gen_Output_File_Ada): Call Gen_CUDA_Defs instead of
4931         Gen_CUDA_Init.
4932         (Gen_Adainit): Call Gen_CUDA_Init.
4934 2022-05-28  Alexandre Oliva  <oliva@adacore.com>
4936         * gcc-interface/Makefile.in (OSCONS_CC): Rename to...
4937         (GCC_FOR_ADA_RTS): ... this.  Adjust users.
4938         (gnatlib): Pass it down as CC.
4939         (gnatlib-shared-default): Likewise.
4940         (gnatlib-shared-win32, gnatlib-shared-darwin): Likewise.
4942 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4944         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Constant>: Deal with
4945         a constant related to a return in a function specially.
4946         * gcc-interface/trans.cc (Call_to_gnu): Use return slot optimization
4947         if the target is a return object.
4948         (gnat_to_gnu) <N_Object_Declaration>: Deal with a constant related
4949         to a return in a function specially.
4951 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4953         * gcc-interface/utils.cc (gnat_pushdecl): Also set TREE_NO_WARNING
4954         on the decl if Comes_From_Source is false for the associated node.
4956 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4958         * gcc-interface/trans.cc (gnat_gimplify_expr): Tidy up.
4960 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4962         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Function>: Also call
4963         process_attributes for built-in functions.
4964         (prepend_one_attribute_pragma): Deal with "simd" attribute.
4965         * gcc-interface/utils.cc (handle_simd_attribute): New function.
4966         (gnat_internal_attribute_table): Add entry for "simd" attribute.
4968 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4970         * gcc-interface/decl.cc (components_to_record): Use NULL recursively
4971         as P_GNU_REP_LIST for the innermost variant level in the unchecked
4972         union case with a fixed part.
4974 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4976         * gcc-interface/trans.cc (gnat_to_gnu): Do not set Current_Error_Node
4977         to a node without location.
4979 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4981         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: And
4982         skip the elaboration of the designated subtype when that of its base
4983         type has been delayed.
4985 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4987         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Subtype>: If
4988         it is a special subtype designated by an access subtype, then defer
4989         the completion of incomplete types.
4991 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4993         * gcc-interface/ada-tree.h, gcc-interface/ada.h,
4994         gcc-interface/gadaint.h, gcc-interface/targtyps.cc: Adjust
4995         copyright line.
4997 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4999         * gcc-interface/utils.cc (unchecked_convert): Do not fold a string
5000         constant if the target type is pointer to character.
5002 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
5004         * sem_prag.adb (Analyze_Pragma): Remove redundant call to
5005         Set_Error_Posted.
5007 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
5009         * sem_ch8.adb (Find_Expanded_Name): Emit a main error message
5010         before adding a continuation with the call to
5011         Error_Missing_With_Of_Known_Unit.
5013 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5015         * sem_util.ads (Requires_Transient_Scope): Add pragma Inline.
5017 2022-05-19  Steve Baird  <baird@adacore.com>
5019         * sem_ch13.adb (Build_Predicate_Functions): If a semantic error
5020         has been detected then ignore Predicate_Failure aspect
5021         specifications in the same way as is done for CodePeer and
5022         SPARK. This avoids an internal compiler error if
5023         Ancestor_Predicate_Function_Called is True but Result_Expr is
5024         not an N_And_Then node (and is therefore unsuitable as an
5025         argument in a call to Left_Opnd).
5027 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5029         * exp_ch7.adb (Wrap_Transient_Declaration): Propagate Uses_Sec_Stack
5030         to enclosing function if it does not return on the secondary stack.
5031         * exp_ch6.adb (Expand_Call_Helper): Call Establish_Transient_Scope
5032         with Manage_Sec_Stack set to True only when necessary.
5033         * sem_res.adb (Resolve_Call): Likewise.
5034         (Resolve_Entry_Call): Likewise.
5036 2022-05-19  Daniel Mercier  <mercier@adacore.com>
5038         * sem_ch13.adb (Build_Predicate_Function): Ignore predicate
5039         failure in CodePeer mode.
5041 2022-05-19  Arnaud Charlet  <charlet@adacore.com>
5043         * raise-gcc.c: Fix compilation with -DSTANDALONE under windows.
5045 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5047         * exp_ch4.adb (Narrow_Large_Operation): Preserve and reuse Etype.
5049 2022-05-19  Javier Miranda  <miranda@adacore.com>
5051         * exp_attr.adb (Add_Implicit_Interface_Type_Conversion): New
5052         subprogram which factorizes code.
5053         (Expand_N_Attribute_Reference): Call the new subprogram to add
5054         the missing implicit interface type conversion.
5056 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
5058         * sem_ch13.adb (Build_Predicate_Function): Ignore predicate
5059         failure in GNATprove mode.
5061 2022-05-19  Steve Baird  <baird@adacore.com>
5063         * einfo-utils.ads, einfo-utils.adb: Delete Predicate_Function_M
5064         function and Set_Predicate_Function_M procedure.
5065         * einfo.ads: Delete comments for Is_Predicate_Function_M and
5066         Predicate_Function_M functions. Add comment for new
5067         Predicate_Expression function. Update comment describing
5068         predicate functions.
5069         * exp_util.ads, exp_util.adb (Make_Predicate_Call): Replace Mem
5070         formal parameter with Static_Mem and Dynamic_Mem formals.
5071         (Make_Predicate_Check): Delete Add_Failure_Expression and call
5072         to it.
5073         * exp_ch4.adb (Expand_N_In.Predicate_Check): Update
5074         Make_Predicate_Call call to match profile change.
5075         * gen_il-fields.ads: Delete Is_Predicate_Function_M field, add
5076         Predicate_Expression field.
5077         * gen_il-gen-gen_entities.adb: Delete Is_Predicate_Function_M
5078         use, add Predicate_Expression use.
5079         * sem_ch13.adb (Build_Predicate_Functions): Rename as singular,
5080         not plural; we no longer build a Predicate_M function. Delete
5081         Predicate_M references. Add new Boolean parameter for predicate
5082         functions when needed. Restructure body of generated predicate
5083         functions to implement required Predicate_Failure behavior and
5084         to set new Predicate_Expression attribute. Remove special
5085         treatment of raise expressions within predicate expressions.
5086         * sem_util.ads (Predicate_Failure_Expression,
5087         Predicate_Function_Needs_Membership_Parameter): New functions.
5088         * sem_util.adb (Is_Current_Instance): Fix bugs which caused
5089         wrong result.
5090         (Is_Current_Instance_Reference_In_Type_Aspect): Delete
5091         Is_Predicate_Function_M reference.
5092         (Predicate_Failure_Expression): New function.
5093         (Propagate_Predicate_Attributes): Delete Is_Predicate_Function_M
5094         references.
5096 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5098         * exp_ch6.adb (Expand_Call_Helper): Adjust comment.
5099         (Expand_Simple_Function_Return): For the case of a type which needs
5100         finalization and is returned on the primary stack, do not create a
5101         copy if the expression originates from a function call.
5102         * exp_ch7.adb (Transient Scope Management): Adjust comment.
5103         * exp_util.ads (Is_Related_To_Func_Return): Add WARNING line.
5104         * fe.h (Is_Related_To_Func_Return): Declare.
5106 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
5108         * exp_ch9.adb (Build_Find_Body_Index): Remove empty Elsif_Parts
5109         from the constructed IF statement.
5111 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
5113         * exp_ch9.adb (Build_Find_Body_Index): Remove IF statement whose
5114         condition was true-by-construction; remove excessive assertion
5115         (since the call to Elsif_Parts will check that Nod is present
5116         and it is an if-statement).
5118 2022-05-19  Arnaud Charlet  <charlet@adacore.com>
5120         * gnat1drv.adb, gnatcmd.adb: Remove references to gnatfind/xref.
5121         * doc/gnat_ugn/building_executable_programs_with_gnat.rst,
5122         doc/gnat_ugn/the_gnat_compilation_model.rst: Ditto.
5123         * gnat_ugn.texi: Regenerate.
5124         * gnatfind.adb, gnatxref.adb, xr_tabls.adb, xr_tabls.ads,
5125         xref_lib.adb, xref_lib.ads: Removed, no longer used.
5127 2022-05-19  Claire Dross  <dross@adacore.com>
5129         * libgnat/a-strfix.adb: Add assertions.
5130         * libgnat/a-strsup.adb: Idem.
5132 2022-05-19  Ed Schonberg  <schonberg@adacore.com>
5134         * erroutc.ads: Fix a single-character typo in a comment.
5135         * exp_aggr.adb: Fix a single-character typo in a comment.
5136         Replace several pairs of calls to Low_Bound and
5137         High_Bound (which do not handle an identifier that denotes a
5138         scalar subtype) with corresponding calls to Get_Index_Bounds
5139         (which does handle that case).
5140         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Set the
5141         Component_Associations attribute of a null array aggregate to
5142         New_List.
5143         * sem_aggr.ads: New visible function
5144         Is_Null_Array_Aggregate_High_Bound.
5145         * sem_aggr.adb (Is_Null_Array_Aggregate_High_Bound,
5146         Is_Null_Aggregate, Resolve_Null_Array_Aggregate): New functions.
5147         (Resolve_Aggregate): Recognize null array aggregates (using
5148         Is_Null_Aggregate) and, when one is recognized, resolve
5149         it (using Resolve_Null_Array_Aggregate).  Avoid calling
5150         Array_Aggr_Subtype for a null array aggregate; the needed
5151         subtype is built in Resolve_Null_Array_Aggregate. Do not
5152         incorrectly flag a null aggregate (after it is transformed by
5153         expansion) as being both positional and named.
5154         * sem_attr.adb (Eval_Attribute): Special treatment for null
5155         array aggregate high bounds to avoid incorrectly flagging
5156         something like Integer'Pred (Integer'First) as an illegal static
5157         expression.
5158         * sem_eval.adb (Out_Of_Range): Special treatment for null array
5159         aggregate high bounds to avoid incorrectly flagging something
5160         like Integer'Pred (Integer'First) as an illegal static
5161         expression.
5163 2022-05-19  Yannick Moy  <moy@adacore.com>
5165         * libgnat/s-aridou.adb (Lemma_Abs_Range,
5166         Lemma_Double_Shift_Left, Lemma_Shift_Left): New lemmas.
5167         (Double_Divide): Add ghost code.
5168         (Lemma_Concat_Definition, Lemma_Double_Shift_Left,
5169         Lemma_Shift_Left, Lemma_Shift_Right): Define or complete lemmas.
5170         (Scaled_Divide): Add ghost code.
5172 2022-05-19  Bob Duff  <duff@adacore.com>
5174         * exp_pakd.adb (Expand_Packed_Eq): Replace the check for *same*
5175         modular type, with a check for any modular type, and assert that
5176         the two types have the same modulus and so on.
5177         * exp_pakd.ads: Minor comment improvements.
5179 2022-05-19  Bob Duff  <duff@adacore.com>
5181         * style.adb (Check_Identifier): Deal with the case where a
5182         record component definition has been transformed; we want to
5183         warn if the original came from source.
5184         * libgnat/s-objrea.ads, libgnat/s-objrea.adb: Fix casing of MF
5185         to be consistent.
5186         * uname.adb: Fix casing of Chars to be consistent.
5187         * sem_util.ads: Minor comment fix.
5189 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5191         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-retsta.
5192         * debug.adb (d_r): Document usage.
5193         * exp_ch4.adb (Expand_N_Allocato): Deal with the return stack pool.
5194         * exp_ch6.adb (Expand_Simple_Function_Return): Replace calls to
5195         Requires_Transient_Scope with Returns_On_Secondary_Stack.  Deal
5196         with types that need finalization returned on the primary stack,
5197         use CW_Or_Needs_Finalization for those returned on the secondary.
5198         * exp_util.adb (Build_Allocate_Deallocate_Proc): Return early
5199         for the return stack pool.
5200         (Remove_Side_Effects): Call CW_Or_Needs_Finalization.
5201         * fe.h (Requires_Transient_Scope): Delete.
5202         (Returns_On_Secondary_Stack): Declare.
5203         * gnat1drv.adb (Adjust_Global_Switches): Set Back_End_Return_Slot
5204         to False when generating C code or if -gnatd_r is specified.
5205         * opt.ads (Back_End_Return_Slot): New boolean variable.
5206         * rtsfind.ads (RTU_Id): Add System_Return_Stack.
5207         (RE_Id): Add RE_RS_Allocate and RE_RS_Pool.
5208         (RE_Unit_Table): Add entries for RE_RS_Allocate and RE_RS_Pool.
5209         * sem_util.ads (CW_Or_Has_Controlled_Part): Delete.
5210         (CW_Or_Needs_Finalization): Declare.
5211         (Requires_Transient_Scope): Adjust description.
5212         (Returns_On_Secondary_Stack): Declare.
5213         * sem_util.adb (Compute_Returns_By_Ref): Set Returns_By_Ref on types
5214         which need finalization if they are returned on the secondary stack.
5215         (CW_Or_Has_Controlled_Part): Rename to...
5216         (CW_Or_Needs_Finalization): ...this.
5217         (Requires_Transient_Scope): Move bulk of implementation to...
5218         (Returns_On_Secondary_Stack): ...here.  Return true for types which
5219         need finalization only if the back-end return slot is not supported.
5220         * libgnat/s-retsta.ads: New file.
5221         * gcc-interface/ada-builtin-types.def (BT_FN_PTR_SSIZE): Define.
5222         * gcc-interface/ada-builtins.def (return_slot): Likewise.
5223         * gcc-interface/ada-tree.h (BUILT_IN_RETURN_SLOT): Likewise.
5224         * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call to
5225         Requires_Transient_Scope with Returns_On_Secondary_Stack.
5226         * gcc-interface/trans.cc (gnat_to_gnu) <N_Simple_Return_Statement>:
5227         In the return by invisible reference, skip the copy if the source
5228         is the same as the destination.
5229         * gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Deal with
5230         the return stack pool.
5232 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5234         * gcc-interface/trans.cc: Fix formatting issues in comments.
5235         (Subprogram_Body_to_gnu): Tidy up.
5236         (Exception_Handler_to_gnu_gcc): Rename into...
5237         (Exception_Handler_to_gnu): ...this.
5238         (gnat_to_gnu) <N_Exception_Handler>: Adjust to above renaming.
5240 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5242         * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Rename a couple
5243         of local variables and use Is_Generic_Subprogram predicate.
5244         (process_decls): Likewise.
5246 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5248         * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Do not deal with
5249         inlining heuristics for expression functions here but...
5250         * gcc-interface/decl.cc (inline_status_for_subprog): ...here instead
5251         and do not override them at -Os.
5253 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
5255         * gcc-interface/decl.cc (gnat_to_gnu_entity): Remove dead code
5256         which expected Scope to return E_Subprogram_Body entity.
5258 2022-05-18  Claire Dross  <dross@adacore.com>
5260         * libgnat/s-imageu.adb (Set_Image_Unsigned): Change assertion.
5262 2022-05-18  Doug Rupp  <rupp@adacore.com>
5264         * sigtramp-qnx.c: Change struct sigcontext * to mcontext_t *.
5266 2022-05-18  Doug Rupp  <rupp@adacore.com>
5268         * sigtramp-arm-qnx.c: Rewrite.
5270 2022-05-18  Yannick Moy  <moy@adacore.com>
5272         * libgnat/s-aridou.adb (Big3): Change return type.
5273         (Lemma_Mult_Non_Negative, Lemma_Mult_Non_Positive): Reorder
5274         alphabetically.
5275         (Lemma_Concat_Definition, Lemma_Double_Big_2xxsingle): New
5276         lemmas.
5277         (Double_Divide, Scaled_Divide): Add assertions.
5279 2022-05-18  Claire Dross  <dross@adacore.com>
5281         * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertions.
5283 2022-05-18  Kévin Le Gouguec  <legouguec@adacore.com>
5285         * libgnat/s-dwalin.adb (Read_Aranges_Header): Initialize output
5286         parameter in case we return early.
5288 2022-05-18  Bob Duff  <duff@adacore.com>
5290         * libgnat/a-crbtgo.ads, libgnat/a-rbtgbo.ads,
5291         libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
5292         libgnat/a-cbhase.adb, libgnat/a-cdlili.adb,
5293         libgnat/a-cfdlli.adb, libgnat/a-cfhama.adb,
5294         libgnat/a-cfhase.adb, libgnat/a-cidlli.adb,
5295         libgnat/a-cihama.adb, libgnat/a-cihase.adb,
5296         libgnat/a-cohama.adb, libgnat/a-cohase.adb,
5297         libgnat/a-crbtgo.adb, libgnat/a-crdlli.adb, libgnat/a-rbtgbo.adb
5298         (Vet): Make the Vet functions do nothing when
5299         Container_Checks'Enabled is False, and inline them, so the calls
5300         disappear when optimizing.
5302 2022-05-18  Doug Rupp  <rupp@adacore.com>
5304         * Makefile.rtl (arm-qnx): Use default (non-fma) target pair.
5306 2022-05-18  Kévin Le Gouguec  <legouguec@adacore.com>
5308         * libgnat/s-dwalin.adb (Aranges_Lookup, Enable_Cache): Adapt to
5309         changes in the signature of Read_Aranges_*.
5310         (Debug_Info_Lookup): Do not control address size read from
5311         DWARF.
5312         (Read_Aranges_Header): Do not control address size read from
5313         DWARF; return this size.
5314         (Read_Aranges_Entry): Use the size returned by
5315         Read_Aranges_Header.
5317 2022-05-18  Gary Dismukes  <dismukes@adacore.com>
5319         * errout.ads (Error_Msg_GNAT_Extension): Add formal Loc and
5320         revise comment.
5321         * errout.adb (Error_Msg_GNAT_Extension): Condition message on
5322         the flag Ada_Version_Pragma, and add suggestion to use of pragma
5323         Extensions_Allowed in messages.
5324         * par-ch3.adb, par-ch5.adb, par-ch6.adb, par-ch11.adb,
5325         par-ch12.adb: Add actual Token_Ptr on calls to
5326         Error_Msg_GNAT_Extension.
5327         * par-ch4.adb: Change Error_Msg to Error_Msg_GNAT_Extension for
5328         error calls related to use of extension features.
5329         * sem_ch13.adb: Likewise.
5331 2022-05-18  Johannes Kliemann  <kliemann@adacore.com>
5333         * libgnarl/s-osinte__qnx.adb (To_Target_Priority): Perform
5334         arithmetic in int.
5336 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
5338         * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Use Needs_BIP_Alloc_Form.
5340 2022-05-18  Javier Miranda  <miranda@adacore.com>
5342         * sem_ch6.adb (Find_Corresponding_Spec): Avoid calling
5343         Is_Null_Extension with a class-wide type entity.
5344         (Overrides_Visible_Function): Handle alias entities.
5345         * sem_res.adb (Has_Applicable_User_Defined_Literal): Conversion
5346         not needed if the result type of the call is class-wide or if
5347         the result type matches the context type.
5348         * sem_util.ads (Is_Null_Extension): Adding documentation.
5349         (Is_Null_Extension_Of): Adding documentation.
5350         * sem_util.adb (Is_Null_Extension): Adding assertion.
5351         (Is_Null_Extension_Of): Adding assertions.
5353 2022-05-18  Javier Miranda  <miranda@adacore.com>
5355         * snames.ads-tmpl (Name_Index): New attribute name.
5356         (Attribute_Id): Adding Attribute_Index as regular attribute.
5357         * sem_attr.adb (Attribute_22): Adding Attribute_Index as Ada
5358         2022 attribute.
5359         (Analyze_Index_Attribute): Check that 'Index appears in a
5360         pre-/postcondition aspect or pragma associated with an entry
5361         family.
5362         (Analyze_Attribute): Adding semantic analysis for 'Index.
5363         (Eval_Attribute): Register 'Index as can never be folded.
5364         (Resolve_Attribute): Resolve attribute 'Index.
5365         * sem_ch9.adb (Check_Wrong_Attribute_In_Postconditions): New
5366         subprogram.
5367         (Analyze_Requeue): Check that the requeue target shall not have
5368         an applicable specific or class-wide postcondition which
5369         includes an Index attribute reference.
5370         * exp_attr.adb (Expand_N_Attribute_Reference): Transform
5371         attribute Index into a renaming of the second formal of the
5372         wrapper built for an entry family that has contract cases.
5373         * einfo.ads (Is_Entry_Wrapper): Complete documentation.
5375 2022-05-18  Yannick Moy  <moy@adacore.com>
5377         * libgnat/s-imagei.adb (Set_Digits): Add assertion.
5378         * libgnat/s-imgboo.adb (Image_Boolean): Add assertions.
5379         * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertion.
5381 2022-05-18  Arnaud Charlet  <charlet@adacore.com>
5383         * sem_aux.adb (Is_Immutably_Limited_Type): Do not look through
5384         private types as per RM 7.5(8.1).
5385         * sem_ch6.adb (Analyze_Function_Return): Use
5386         Is_Immutably_Limited_Type as per RM 6.5(5.10).
5388 2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
5390         * gen_il-gen-gen_nodes.adb (Gen_IL.Gen.Gen_Nodes): Add
5391         Is_Homogeneous_Aggregate field for N_Delta_Aggregate nodes.
5392         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Minor reformatting.
5393         * sem_aggr.adb (Resolve_Delta_Aggregate): Reject square brackets
5394         for record aggregate.
5395         (Resolve_Record_Aggregate): Uniformise error message.
5397 2022-05-18  Arnaud Charlet  <charlet@adacore.com>
5399         * ali.adb (Scan_ALI): Special case a-tags.ali when setting
5400         Sec_Stack_Used.
5401         * bindgen.adb (Gen_Adainit): Simplify handling of secondary
5402         stack related code, and only import __gnat_binder_ss_count when
5403         needed.
5404         * libgnat/s-secsta.adb (Binder_SS_Count): Default initialize to
5405         0.
5407 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
5409         * libgnat/s-dourea.adb ("/"): Add guard for zero and infinite
5410         divisor.
5411         * libgnat/s-valuer.adb (Scan_Raw_Real): Add guard for very large
5412         exponent values.
5414 2022-05-18  Yannick Moy  <moy@adacore.com>
5416         * sem_elab.adb (Is_Suitable_Construct): Fix for generated
5417         constructs.
5419 2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
5421         * sem_ch3.adb (Analyze_Object_Declaration): Skip predicate check
5422         for type conversion if object's subtype and expression's subtype
5423         statically match.
5424         * exp_prag.adb (Expand_Pragma_Check): Typo fix in comment.
5426 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
5428         * exp_dbug.ads (Build_Subprogram_Instance_Renamings): Fix typo.
5429         * exp_dbug.adb (Build_Subprogram_Instance_Renamings): Build the
5430         renaming only for actuals of formal objects.
5432 2022-05-18  Gary Dismukes  <dismukes@adacore.com>
5434         * sem_ch3.adb (Check_Abstract_Overriding): If the type is
5435         derived from an untagged type, then don't perform any of the
5436         abstract overriding error checks.
5438 2022-05-18  Piotr Trojanek  <trojanek@adacore.com>
5440         * exp_aggr.adb (Component_Count): Calculate size as an Uint and
5441         only then check if it is in the range of Int, as otherwise the
5442         multiplication of Int values can overflow.
5444 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
5446         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-gfmafu$(objext).
5447         (SIMD_PATH_TARGET_PAIRS): New variable.
5448         (TRASYM_DWARF_COMMON_OBJS): Minor tweak.
5449         (x86-64/Linux): Use SIMD_PATH_TARGET_PAIRS.
5450         (x32/Linux): Likewise.
5451         * doc/gnat_rm/the_gnat_library.rst (Generic_Fast_Math_Functions):
5452         New entry.
5453         * gnat_rm.texi: Regenerate.
5454         * impunit.adb (Non_Imp_File_Names_95): Add g-gfmafu.
5455         * sem_ch7.adb (Has_Referencer): Do not set In_Nested_Instance for
5456         instances of generic packages that do not have a body.
5457         * libgnat/a-nalofl__simd.ads: New SIMD-enabled version.
5458         * libgnat/a-nuaufl__simd.ads: Likewise.
5459         * libgnat/g-gfmafu.ads: New package renaming unit.
5461 2022-05-18  Arnaud Charlet  <charlet@adacore.com>
5463         * freeze.adb (Should_Freeze_Type): Fix handling of freezing in
5464         instances.
5466 2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
5468         * sem_ch12.adb (Check_Generic_Parent): Use
5469         Get_Unit_Instantiation_Node instead of Next.
5471 2022-05-18  Alexandre Oliva  <oliva@adacore.com>
5473         * libgnat/a-nagefl.ads: Replace mentions of C/unix math library
5474         with intrinsics.
5475         * libgnat/a-nallfl.ads: Likewise.  State compatibility
5476         requirements.
5477         * libgnat/a-nalofl.ads: Likewise.
5478         * libgnat/a-nuaufl.ads: Likewise.
5480 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
5482         * sem_ch8.adb (Analyze_Subprogram_Renaming): Move final test on
5483         In_Instance to outer condition.
5485 2022-05-18  Doug Rupp  <rupp@adacore.com>
5487         * Makefile.rtl: Rename system-qnx-aarch64.ads to
5488         system-qnx-arm.ads.
5489         (AARCH64 QNX section): Modify to handle both arm and arch64.
5490         * tracebak.c (__QNX__): Add new __ARMEL__ section.
5491         * sigtramp-arm-qnx.c: New file.
5492         * libgnat/system-qnx-aarch64.ads: Renamed to ...
5493         * libgnat/system-qnx-arm.ads: this.
5495 2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
5497         * sem_res.adb (Flag_Effectively_Volatile_Objects): Restore
5498         redundant guard.
5500 2022-05-17  Gary Dismukes  <dismukes@adacore.com>
5502         * sem_ch8.adb (Analyze_Subprogram_Renaming): Add error check for
5503         the case of a renamed subprogram given by an expanded name whose
5504         outermost prefix names a unit that is hidden by the name of the
5505         renaming.
5506         (Ult_Expanded_Prefix): New local expression function to return
5507         the ultimate prefix of an expanded name.
5509 2022-05-17  Ghjuvan Lacambre  <lacambre@adacore.com>
5511         * gnat_cuda.ads: Update package-level comments.
5512         (Build_And_Insert_CUDA_Initialization): Remove function.
5513         * gnat_cuda.adb (Build_And_Insert_CUDA_Initialization): Remove
5514         function.
5515         (Expand_CUDA_Package): Remove call to
5516         Build_And_Insert_CUDA_Initialization.
5518 2022-05-17  Etienne Servais  <servais@adacore.com>
5520         * freeze.adb (Freeze_Enumeration_Type): Fix comment, enhance
5521         message and silence warning for size > 32.
5523 2022-05-17  Yannick Moy  <moy@adacore.com>
5525         * exp_spark.adb (Expand_SPARK_Potential_Renaming): Deal with no
5526         entity case.
5527         * inline.ads (Check_Object_Renaming_In_GNATprove_Mode): New
5528         procedure.
5529         * inline.adb (Check_Object_Renaming_In_GNATprove_Mode): New
5530         procedure.
5531         (Can_Be_Inlined_In_GNATprove_Mode): Remove case forbidding
5532         inlining for subprograms inside generics.
5533         * sem_ch12.adb (Copy_Generic_Node): Preserve global entities
5534         when inlining in GNATprove mode.
5535         * sem_ch6.adb (Analyse_Subprogram_Body_Helper): Remove body to
5536         inline if renaming is detected in GNATprove mode.
5538 2022-05-17  Gary Dismukes  <dismukes@adacore.com>
5540         * exp_ch4.adb (Expand_N_Allocator): For an allocator with an
5541         unconstrained discriminated designated type, and whose
5542         allocation subtype is constrained, set the
5543         Actual_Designated_Subtype of the dereference passed to the init
5544         proc of the designated type to be the allocation subtype.
5545         * sinfo.ads: Add documentation of new setting of
5546         Actual_Designated_Subtype on a dereference used as an actual
5547         parameter of call to an init proc associated with an allocator.
5548         Also add missing syntax and documentation for the GNAT language
5549         extension that allows an expression as a default for a concrete
5550         generic formal function.
5552 2022-05-17  Bob Duff  <duff@adacore.com>
5554         * sinfo.ads: Remove From_At_End.  Update comments.
5555         * gen_il-fields.ads, gen_il-gen-gen_nodes.adb, sem_ch11.adb:
5556         Remove From_At_End.
5557         * exp_ch11.adb (Expand_At_End_Handler): Remove assertion.
5558         * fe.h (Exception_Mechanism, Exception_Mechanism_Type, Has_DIC,
5559         Has_Invariants, Is_List_Member, List_Containing): Remove
5560         declarations that are not used in gigi.
5561         * opt.ads (Exception_Mechanism): This is not used in gigi.
5562         * exp_util.ads: Minor comment fix.
5564 2022-05-17  Dmitriy Anisimkov  <anisimko@adacore.com>
5566         * impunit.adb: Add "g-binsea" to Non_Imp_File_Names_95 list.
5568 2022-05-17  Yannick Moy  <moy@adacore.com>
5570         * sem_ch5.adb (Analyze_Iterator_Specification): Use
5571         Insert_Action when possibly inside an expression.
5573 2022-05-17  Marc Poulhiès  <poulhies@adacore.com>
5575         * libgnat/g-forstr.adb (Is_Number): Add scientific notation and
5576         shortest representation.
5578 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5580         * exp_ch3.adb (Expand_N_Full_Type_Declaration): Look into N.
5582 2022-05-17  Bob Duff  <duff@adacore.com>
5584         * exp_util.adb (Requires_Cleanup_Actions): Remove
5585         N_Protected_Body from the case statement, so that case will be
5586         covered by "raise Program_Error".
5588 2022-05-17  Bob Duff  <duff@adacore.com>
5590         * output.adb (Pop_Output, Set_Output): Unconditionally flush
5591         output when switching from one output destination to another.
5592         Otherwise buffering can cause garbled output.
5593         (w): Push/pop the current settings, and temporarily
5594         Set_Standard_Error during these procedures.
5596 2022-05-17  Dmitriy Anisimkov  <anisimko@adacore.com>
5598         * libgnat/g-binsea.ads, libgnat/g-binsea.adb
5599         (GNAT.Binary_Search): New package.
5600         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): New item in list.
5601         * doc/gnat_rm/the_gnat_library.rst (GNAT.Binary_Search): New
5602         package record.
5603         * gnat_rm.texi: Regenerate.
5605 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5607         * sem_ch12.ads (Is_Abbreviated_Instance): Declare.
5608         * sem_ch12.adb (Check_Abbreviated_Instance): Declare.
5609         (Requires_Conformance_Checking): Declare.
5610         (Analyze_Association.Process_Default): Fix subtype of parameter.
5611         (Analyze_Formal_Object_Declaration): Check whether it is in the
5612         visible part of abbreviated instance.
5613         (Analyze_Formal_Subprogram_Declaration): Likewise.
5614         (Analyze_Formal_Type_Declaration): Likewise.
5615         (Analyze_Package_Instantiation): Do not check for a generic child
5616         unit in the case of an abbreviated instance.
5617         (Check_Abbreviated_Instance): New procedure.
5618         (Check_Formal_Packages): Tidy up.
5619         (Copy_Generic_Elist): Fix comment.
5620         (Instantiate_Formal_Package): Tidy up.  If the generic unit is a
5621         child unit, copy the qualified name onto the abbreviated instance.
5622         (Is_Abbreviated_Instance): New function.
5623         (Collect_Previous_Instances): Call Is_Abbreviated_Instance.
5624         (Requires_Conformance_Checking): New function.
5625         * sem_ch7.adb (Analyze_Package_Specification): Do not install the
5626         private declarations of the parent for an abbreviated instance.
5628 2022-05-17  Etienne Servais  <servais@adacore.com>
5630         * sem_ch3.adb (Analyze_Subtype_Declaration): Use underlying type
5631         of Indic_Typ.
5632         (Constrain_Array): Ditto for T.
5634 2022-05-17  Arnaud Charlet  <charlet@adacore.com>
5636         * sem_attr.adb (Analyze_Attribute [Attribute_Reduce]): Allow
5637         'Reduce for Ada 2022 and above.
5638         * sem_attr.ads (Attribute_Impl_Def): 'Reduce is no longer
5639         implementation defined.
5641 2022-05-17  Ghjuvan Lacambre  <lacambre@adacore.com>
5643         * exp_ch9.adb (Expand_N_Asynchronous_Select): Don't generate
5644         Abort_Undefers when not Abort_Allowed.
5646 2022-05-17  Marc Poulhiès  <poulhies@adacore.com>
5648         * exp_ch7.adb: Fix typo.
5650 2022-05-17  Etienne Servais  <servais@adacore.com>
5652         * lib.ads: initialize `Compiler_State` to `Parsing`.
5654 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5656         * sem_ch13.adb (Has_Compatible_Representation): Return true for
5657         derived untagged record types without representation clause.
5659 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5661         * sem_ch13.ads (Has_Compatible_Representation): Minor tweaks.
5662         * sem_ch13.adb (Has_Compatible_Representation): Look directly into
5663         the (implementation) base types and simplifiy accordingly.
5664         * exp_ch5.adb (Change_Of_Representation): Adjust.
5665         * exp_ch6.adb (Expand_Actuals): Likewise.
5667 2022-05-17  Etienne Servais  <servais@adacore.com>
5669         * sem_ch5.adb (Analyze_Assignment): Remove superfluous call to
5670         Original_Node.
5672 2022-05-17  Javier Miranda  <miranda@adacore.com>
5674         * freeze.adb (Freeze_Entity): Protect the call to
5675         Declaration_Node against entities of expressions replaced by the
5676         frontend with an N_Raise_CE node.
5678 2022-05-17  Javier Miranda  <miranda@adacore.com>
5680         * freeze.adb (Build_DTW_Spec): Do not inherit the not-overriding
5681         indicator because the DTW wrapper overrides its wrapped
5682         subprogram.
5683         * contracts.ads (Make_Class_Precondition_Subps): Adding
5684         documentation.
5686 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5688         * exp_ch13.adb (Expand_N_Freeze_Entity): Delete freeze nodes for
5689         subprograms only if they have no actions.
5690         * exp_ch6.adb (Freeze_Subprogram): Put the actions into the Actions
5691         field of the freeze node instead of inserting them after it.
5692         * sem_elab.adb (Is_SPARK_Semantic_Target): Fix typo in comment.
5693         * gcc-interface/trans.cc (process_freeze_entity): Return early for
5694         freeze nodes of subprograms with Interface_Alias set.
5696 2022-05-17  Javier Miranda  <miranda@adacore.com>
5698         * contracts.adb (Build_Call_Helper_Body): Improve handling of
5699         the case of a (legal) non-dispatching call to an abstract
5700         subprogram.
5702 2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
5704         * doc/gnat_rm/implementation_defined_attributes.rst
5705         (Loop_Entry): Mention pragmas Assert, Assert_And_Cut and Assume;
5706         refill.
5707         * gnat_rm.texi: Regenerate.
5709 2022-05-17  Etienne Servais  <servais@adacore.com>
5711         * par-ch3.adb (P_Access_Type_Definition): Outputs an error if
5712         token is not "access".
5714 2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
5716         * exp_ch2.adb (Expand_Current_Value): Remove special case for
5717         references immediately within pragma argument associations.
5718         * exp_prag.adb (Expand_Pragma_Inspection_Point): Remove special
5719         case for privals.
5721 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5723         * sem_ch7.adb (Inspect_Untagged_Record_Completion): Also move the
5724         equality operator on the homonym chain if there is another equality
5725         operator in the private part.
5727 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5729         * exp_attr.adb (Expand_Loop_Entry_Attribute): Disable value
5730         propagation when analysing the constant that holds the
5731         Loop_Entry prefix value.
5733 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5735         * sem_attr.adb (Address_Checks): Remove call to
5736         Kill_Current_Values for subprogram entities, because this
5737         routine only does something for object entities.
5739 2022-05-16  Justin Squirek  <squirek@adacore.com>
5741         * exp_ch7.adb (Build_Finalizer): Disable late evaluation of
5742         postconditions for functions returning types which where
5743         Has_Unconstrained_Elements is true or are unconstrained arrays.
5745 2022-05-16  Etienne Servais  <servais@adacore.com>
5747         * exp_ch4.adb (Expand_N_Qualified_Expression): Freeze
5748         Target_Type.
5750 2022-05-16  Yannick Moy  <moy@adacore.com>
5752         * libgnat/s-aridou.adb (Double_Divide): Add intermediate
5753         assertions.
5755 2022-05-16  Ghjuvan Lacambre  <lacambre@adacore.com>
5757         * lib-writ.adb (Output_CUDA_Symbols): Check for null packages.
5759 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5761         * libgnat/g-debpoo.ads: Improve documentation of the
5762         Stack_Trace_Depth parameter.
5764 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5766         * init.c (__gnat_install_handler) [__QNX__]: Save sigaction's
5767         return value in err before checking err's value.  Fix incorrect
5768         signal names in perror messages.
5770 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5772         * init.c (__gnat_install_handler) [__QNX__]: Set
5773         act.sa_sigaction rather than act.sa_handler.
5775 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5777         * cstreams.c: Add <stdlib.h> #include.
5779 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5781         * terminals.c: Remove bzero #define on HP/UX or Solaris
5782         platforms.
5783         (child_setup_tty): Replace bzero call by equivalent call to
5784         memset.
5786 2022-05-16  Gary Dismukes  <dismukes@adacore.com>
5788         * sem_util.ads (Storage_Model_Support): Revise comments on most
5789         operations within this nested package to reflect that they can
5790         now be passed either a type that has aspect Storage_Model_Type
5791         or an object of such a type.  Change the names of the relevant
5792         formals to SM_Obj_Or_Type. Also, add more precise semantic
5793         descriptions in some cases, and declare the subprograms in a
5794         more logical order.
5795         * sem_util.adb (Storage_Model_Support.Storage_Model_Object): Add
5796         an assertion that the type must specify aspect
5797         Designated_Storage_Model, rather than returning Empty when it
5798         doesn't specify that aspect.
5799         (Storage_Model_Support.Storage_Model_Type): Add an assertion
5800         that formal must be an object whose type specifies aspect
5801         Storage_Model_Type, rather than returning Empty for when it
5802         doesn't have such a type (and test Has_Storage_Model_Type_Aspect
5803         rather than Find_Value_Of_Aspect).
5804         (Storage_Model_Support.Get_Storage_Model_Type_Entity): Allow
5805         both objects and types, and add an assertion that the type (or
5806         the type of the object) has a value for aspect
5807         Storage_Model_Type.
5809 2022-05-16  Etienne Servais  <servais@adacore.com>
5811         * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
5812         Fix condition to return.
5814 2022-05-16  Yannick Moy  <moy@adacore.com>
5816         * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Update comment.
5818 2022-05-16  Marc Poulhiès  <poulhies@adacore.com>
5820         * sem_aggr.adb (Resolve_Iterated_Association): Create scope
5821         around N_Iterated_Element_Association handling. Analyze a copy
5822         of the Loop_Parameter_Specification. Call Analyze instead
5823         Analyze_* to be more homogeneous.
5824         (Sem_Ch5): Remove now unused package.
5826 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5828         * exp_util.adb (Insert_Actions) <N_Iterated_Component_Association>:
5829         Climb up out of the node if the actions come from Discrete_Choices.
5831 2022-05-16  Javier Miranda  <miranda@adacore.com>
5833         * sem_disp.adb (Check_Dispatching_Context): When checking to see
5834         whether an expression occurs in a class-wide pre/post-condition,
5835         also check for the possibility that it occurs in a class-wide
5836         preconditions subprogram that was introduced as part of
5837         expansion. Without this fix, some legal calls occuring in
5838         class-wide preconditions may be incorrectly flagged as violating
5839         the "a call to an abstract subprogram must be dispatching" rule.
5841 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5843         * inline.adb (Cleanup_Scopes): Test the underlying type.
5845 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5847         * sem_util.ads (Is_Entity_Of_Quantified_Expression): Declare.
5848         * sem_util.adb (Is_Entity_Of_Quantified_Expression): New
5849         predicate.
5850         (New_Copy_Tree): Deal with all entities of quantified
5851         expressions.
5852         * sem_ch13.adb (Build_Predicate_Functions): Get rid of
5853         superfluous tree copying and remove obsolete code.
5854         * sem_ch6.adb (Fully_Conformant_Expressions): Deal with all
5855         entities of quantified expressions.
5857 2022-05-16  Steve Baird  <baird@adacore.com>
5859         * exp_ch7.adb (Build_Finalize_Statements): Add Last_POC_Call
5860         variable to keep track of the last "early finalization" call
5861         generated for type extension's finalization procedure. If
5862         non-empty, then this will indicate the point at which to insert
5863         the call to the parent type's finalization procedure. Modify
5864         nested function Process_Component_List_For_Finalize to set this
5865         variable (and avoid setting it during a recursive call).  If
5866         Last_POC_Call is empty, then insert the parent finalization call
5867         before, rather than after, the finalization code for the
5868         extension components.
5870 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5872         * einfo-utils.adb (Remove_Entity): Fix couple of oversights.
5873         * exp_ch3.adb (Is_User_Defined_Equality): Delete.
5874         (User_Defined_Eq): Call Get_User_Defined_Equality.
5875         (Make_Eq_Body): Likewise.
5876         (Predefined_Primitive_Eq_Body): Call Is_User_Defined_Equality.
5877         * exp_ch4.adb (Build_Eq_Call): Call Get_User_Defined_Equality.
5878         (Is_Equality): Delete.
5879         (User_Defined_Primitive_Equality_Op): Likewise.
5880         (Find_Aliased_Equality): Call Is_User_Defined_Equality.
5881         (Expand_N_Op_Eq): Call Underlying_Type unconditionally.
5882         Do not implement AI12-0101 + AI05-0123 here.
5883         (Expand_Set_Membership): Call Resolve_Membership_Equality.
5884         * exp_ch6.adb (Expand_Call_Helper): Remove obsolete code.
5885         * sem_aux.ads (Is_Record_Or_Limited_Type): Delete.
5886         * sem_aux.adb (Is_Record_Or_Limited_Type): Likewise.
5887         * sem_ch4.ads (Nondispatching_Call_To_Abstract_Operation): Declare.
5888         * sem_ch4.adb (Analyze_Call): Call Call_Abstract_Operation.
5889         (Analyze_Membership_Op): Call Resolve_Membership_Equality.
5890         (Nondispatching_Call_To_Abstract_Operation): New procedure.
5891         (Remove_Abstract_Operations): Call it.
5892         * sem_ch6.adb (Check_Untagged_Equality): Remove obsolete error and
5893         call Is_User_Defined_Equality.
5894         * sem_ch7.adb (Inspect_Untagged_Record_Completion): New procedure
5895         implementing AI12-0101 + AI05-0123.
5896         (Analyze_Package_Specification): Call it.
5897         (Declare_Inherited_Private_Subprograms): Minor tweak.
5898         (Uninstall_Declarations): Likewise.
5899         * sem_disp.adb (Check_Direct_Call): Adjust to new implementation
5900         of Is_User_Defined_Equality.
5901         * sem_res.ads (Resolve_Membership_Equality): Declare.
5902         * sem_res.adb (Resolve): Replace direct error handling with call to
5903         Nondispatching_Call_To_Abstract_Operation
5904         (Resolve_Call): Likewise.
5905         (Resolve_Equality_Op): Likewise.  mplement AI12-0413.
5906         (Resolve_Membership_Equality): New procedure.
5907         (Resolve_Membership_Op): Call Get_User_Defined_Equality.
5908         * sem_util.ads (Get_User_Defined_Eq): Rename into...
5909         (Get_User_Defined_Equality): ...this.
5910         * sem_util.adb (Get_User_Defined_Eq): Rename into...
5911         (Get_User_Defined_Equality): ...this. Call Is_User_Defined_Equality.
5912         (Is_User_Defined_Equality): Also check the profile but remove tests
5913         on Comes_From_Source and Parent.
5914         * sinfo.ads (Generic_Parent_Type): Adjust field description.
5915         * uintp.ads (Ubool): Invoke user-defined equality in predicate.
5917 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5919         * exp_ch3.adb (User_Defined_Eq): Replace duplicated code with a
5920         call to Get_User_Defined_Eq.
5922 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5924         * exp_ch3.adb (Build_Untagged_Equality): Exit early when the
5925         outcome of a loop is already known.
5927 2022-05-16  Olivier Hainque  <hainque@adacore.com>
5929         * Makefile.rtl: Add aarch64 to the list of CPUs for which
5930         GNATLIB_SHARED maps to gnatlib-shared-dual for vxworks7r2.
5932 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5934         * sem_ch4.adb (Analyze_Negation): Minor tweak.
5935         (Analyze_Unary_Op): Likewise.
5937 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5939         * exp_ch3.adb (Build_Assignment): Adjust to the new definition of
5940         Incomplete_View field.
5941         * sem_ch10.ads (Decorate_Type): Declare.
5942         * sem_ch10.adb (Decorate_Type): Move to library level.
5943         (Install_Limited_With_Clause): In the already analyzed case, also
5944         deal with incomplete type declarations present in the sources and
5945         simplify the replacement code.
5946         (Build_Shadow_Entity): Deal with swapped views in package body.
5947         (Restore_Chain_For_Shadow): Deal with incomplete type declarations
5948         present in the sources.
5949         * sem_ch3.adb (Analyze_Full_Type_Declaration): Adjust to the new
5950         definition of Incomplete_View field.
5951         (Build_Incomplete_Type_Declaration): Small consistency tweak.
5952         Set the incomplete type as the Incomplete_View of the full type.
5953         If the scope is a package with a limited view, build a shadow
5954         entity for the incomplete type.
5955         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): When replacing
5956         the limited view of a CW type as designated type of an anonymous
5957         access return type, get to the CW type of the incomplete view of
5958         the tagged type, if any.
5959         (Collect_Primitive_Operations): Adjust to the new definition of
5960         Incomplete_View field.
5961         * sinfo.ads (Incomplete_View): Denote the entity itself instead
5962         of its declaration.
5963         * sem_util.adb: Remove call to Defining_Entity.
5965 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5967         * sem_util.adb (Type_Or_Variable_Has_Enabled_Property): Given a
5968         subtype recurse into its base type.
5970 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5972         * sem_util.adb (Type_Or_Variable_Has_Enabled_Property): Clarify.
5974 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5976         * sem_util.adb (Is_Enabled): Remove; use Is_Enabled_Pragma
5977         instead.
5979 2022-05-16  Martin Liska  <mliska@suse.cz>
5981         * locales.c (iso_639_1_to_639_3): Use ARRAY_SIZE.
5982         (language_name_to_639_3): Likewise.
5983         (country_name_to_3166): Likewise.
5985 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
5987         * gcc-interface/decl.cc (is_cplusplus_method): Build proper
5988         String for Get_External_Name.
5990 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5992         * sem_ch3.adb (Derive_Subprogram): For a function, also copy the
5993         Returns_By_Ref flag from the parent.
5995 2022-05-13  Gary Dismukes  <dismukes@adacore.com>
5997         * sem_ch13.adb (Check_Aspect_At_Freeze_Point): Analyze the
5998         expression of the aspect at this point, like other aspects that
5999         denote simple entities. Ensures that function
6000         Storage_Model_Object will have an entity to retrieve from the
6001         aspect expression. Also, move comment about aspects that don't
6002         require delay analysis in front of last alternative of the case
6003         statement, where it's supposed to be.
6005 2022-05-13  Javier Miranda  <miranda@adacore.com>
6007         * contracts.adb (Build_Unique_Name): New subprogram.
6008         (Make_Class_Precondition_Subps): Use Build_Unique_Name to
6009         generate the names of the call helpers and the name of indirect
6010         call wrappers.
6011         * freeze.adb (Needs_Wrapper): Remove dead code.
6012         (Check_Inherited_Conditions): Defer building helpers and ICW
6013         until all the dispatch table wrappers have been built and
6014         analyzed. Required to ensure uniqueness in their names because
6015         when building these wrappers for overlapped subprograms their
6016         homonym number is not definite until they have been analyzed.
6018 2022-05-13  Arnaud Charlet  <charlet@adacore.com>
6020         * libgnarl/s-taprop__linux.adb (Initialize): Do not use an
6021         alternate stack if no handler for SEGV is installed.
6023 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
6025         * doc/gnat_rm/security_hardening_features.rst (Control Flow
6026         Redundancy): Drop mentions of noreturn and tail calls.
6027         * gnat_rm.texi: Regenerate.
6029 2022-05-13  Ghjuvan Lacambre  <lacambre@adacore.com>
6031         * ali.adb: Introduce new 'K' line in ALI files, used to
6032         represent CUDA kernel entries.
6033         * ali.ads: Create new CUDA_Kernels table, which contains entries
6034         of type CUDA_Kernel_Record. Each CUDA_Kernel_Record corresponds
6035         to a K line in an ali file.
6036         * bindgen.adb: Introduce new Gen_CUDA_Init procedure in the
6037         binder, which generates CUDA kernel registration code.
6038         * gnat_cuda.adb: Move Get_CUDA_Kernels spec to package spec to
6039         make it available to bindgen.adb.
6040         * gnat_cuda.ads: Likewise.
6041         * lib-writ.adb: Introduce new Output_CUDA_Symbols procedure,
6042         which generates one 'K' line in the ALI file per visible CUDA
6043         kernel.
6044         * opt.ads: Introduce Enable_CUDA_Expansion option, triggered by
6045         using the -gnatd_c flag.
6046         * switch-b.adb: Likewise.
6047         * switch-c.adb: Likewise.
6049 2022-05-13  Marc Poulhiès  <poulhies@adacore.com>
6051         * exp_aggr.adb (Gen_Loop): Create scope for loop variable of
6052         iterated components.
6054 2022-05-13  Yannick Moy  <moy@adacore.com>
6056         * libgnat/a-chtgfk.adb (Checked_Equivalent_Keys, Checked_Index):
6057         Remove useless functions.
6058         (Delete_Key_Sans_Free, Find, Generic_Conditional_Insert): Adapt
6059         to removal of wrapper functions.
6060         * libgnat/a-chtgfk.ads (Checked_Equivalent_Keys, Checked_Index):
6061         Remove useless functions.
6062         * libgnat/a-chtgfo.adb (Checked_Index): Remove useless function.
6063         (Clear): Delete code commented out regarding Busy and Lock
6064         management.
6065         (Delete_Node_At_Index): Delete unused procedure.
6066         (Delete_Node_Sans_Free, Free, Generic_Read, Next): Adapt to
6067         removal of wrapper functions.
6068         * libgnat/a-chtgfo.ads (Checked_Index): Remove useless function.
6069         (Delete_Node_At_Index): Delete unused procedure.
6071 2022-05-13  Yannick Moy  <moy@adacore.com>
6073         * libgnat/a-cfhama.adb (Generic_Allocate): Retype to avoid
6074         aliasing.
6075         (Assign, Move): Remove address comparison.
6076         (Include): Insert constants for subtype constraints.
6077         (Insert): Rewrite to avoid aliasing and function with side-effects.
6078         * libgnat/a-cfhase.adb (Generic_Allocate): Retype to avoid
6079         aliasing.
6080         (Assign, Move): Remove address comparison.
6081         (Difference, Intersection, Is_Subset, Overlap,
6082         Symmetric_Difference, Union): Remove address comparison.  Insert
6083         constants for subtype constraints.
6084         (Insert): Rewrite to avoid aliasing and function with
6085         side-effects.
6086         * libgnat/a-chtgfk.adb (Checked_Equivalent_Keys, Checked_Index,
6087         Delete_Key_Sans_Free, Find, Generic_Replace_Element, Index):
6088         Type for hash tables not tagged anymore.
6089         (Generic_Conditional_Insert): New_Node generic formal is a
6090         procedure taking the hash table as first parameter now, to avoid
6091         aliasing in the caller.
6092         * libgnat/a-chtgfk.ads: Same.
6093         * libgnat/a-chtgfo.adb (Checked_Index, Clear,
6094         Delete_Node_At_Index, Delete_Node_Sans_Free, First, Free,
6095         Generic_Allocate, Generic_Iteration, Generic_Read,
6096         Generic_Write, Index, Next): Type for hash tables not tagged
6097         anymore.
6098         (Generic_Equal): Removed tagged. Remove address comparison.
6099         * libgnat/a-chtgfo.ads: Same.
6100         * libgnat/a-cohata.ads (Hash_Table_Type): Remove tagged.
6102 2022-05-13  Yannick Moy  <moy@adacore.com>
6104         * Makefile.rtl: Add new files.
6105         * libgnat/a-cfhama.adb: Use formal version of hash tables.
6106         * libgnat/a-cfhama.ads: Same.
6107         * libgnat/a-cfhase.adb: Same.
6108         * libgnat/a-cfhase.ads: Same.
6109         * libgnat/a-chtgfk.adb: New unit for formal containers, modified
6110         version of Generic_Bounded_Keys.
6111         * libgnat/a-chtgfk.ads: Same.
6112         * libgnat/a-chtgfo.adb: New unit for formal containers, modified
6113         version of Generic_Bounded_Operations.
6114         * libgnat/a-chtgfo.ads: Same.
6115         * libgnat/a-cohata.ads (Generic_Formal_Hash_Table_Types): Third
6116         version of the type for hash tables, equivalent to the bounded
6117         version without tampering checks.
6119 2022-05-13  Javier Miranda  <miranda@adacore.com>
6121         * freeze.adb (Check_Inherited_Conditions): Dispatch table
6122         wrappers must be placed in the list of entities of their scope
6123         at the same place of their wrapped primitive. This is required
6124         for private types since these wrappers are built when their full
6125         tagged type declaration is frozen but they may override a
6126         primitive defined in the public part of the package (and it is
6127         important to maintain the wrapper in the list of public entities
6128         of the package to ensure their correct visibility).
6130 2022-05-13  Johannes Kanig  <kanig@adacore.com>
6132         * osint.ads, osint.adb (Relocate_Path): If the GNSA_ROOT
6133         environment variable is set, we use that as the prefix, instead
6134         of computing the prefix from the executable location.
6136 2022-05-13  Steve Baird  <baird@adacore.com>
6138         * exp_ch3.ads (Build_Intialization_Call): Add new formal
6139         parameter, Init_Control_Actual, with default value. Clients
6140         outside of package Exp_Ch3 are unaffected.
6141         * exp_ch3.adb (Initialization_Control): new package; support for
6142         this 4-valued parameter.  The existing Requires_Late_Init
6143         function is moved into this new package.
6144         (Build_Initialization_Call): Add new formal parameter for
6145         subprogram body, use this new formal parameter in generating an
6146         init proc call.
6147         (Build_Record_Init_Proc): Replace Set_Tag Boolean formal
6148         parameter with 4-valued Init_Control_Formal. Wrap if-statements
6149         with appropriate conditions around tag initialization, early
6150         initialization, and late initialization statements.
6151         * exp_util.adb (Build_Task_Image_Decl): Avoid problem with
6152         duplicate declarations when an init proc for a type extension
6153         calls the parent type's init proc twice.
6155 2022-05-13  Ed Schonberg  <schonberg@adacore.com>
6157         * sem_ch5.adb (Analyze_Iterator_Specification): Fix Typ in the
6158         case of a class-wide derived iterator.
6160 2022-05-13  Yannick Moy  <moy@adacore.com>
6162         * libgnat/a-strbou.ads (Overwrite): Switch to >= operator in
6163         contracts.
6164         * libgnat/a-strsup.adb (Super_Overwrite): Switch to >= operator
6165         in code of procedure (function already uses it).
6166         * libgnat/a-strsup.ads (Super_Overwrite): Switch to >= operator
6167         in contracts.
6169 2022-05-13  Etienne Servais  <servais@adacore.com>
6171         * doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix code
6172         snippet.
6173         * gnat_rm.texi: Regenerate.
6175 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
6177         * aspects.adb (Find_Value_Of_Aspect): Add guard.
6178         * sem_ch4.adb (Complete_Object_Operation): Remove obsolete code.
6179         * sem_ch5.adb (Has_Sec_Stack_Default_Iterator): Add guard.
6181 2022-05-13  Javier Miranda  <miranda@adacore.com>
6183         * exp_attr.adb (Expand_N_Attribute_Reference): The expansion of
6184         'Address in a call to an instantiation of the implicit
6185         subprogram To_Pointer with a class-wide interface type target
6186         requires adding an implicit type conversion to force
6187         displacement of the "this" pointer.
6189 2022-05-13  Javier Miranda  <miranda@adacore.com>
6191         * sem_attr.adb (Resolve_Attribute): Ensure that attribute
6192         expressions are resolved at this stage; required for preanalyzed
6193         references to discriminants since their resolution (and
6194         expansion) will take care of updating their Entity attribute to
6195         reference their discriminal.
6197 2022-05-13  Justin Squirek  <squirek@adacore.com>
6199         * sem_util.adb (Wrong_Type): Avoid using the first subtype of
6200         the expected type in error messages when the expected type is
6201         not internally generated.
6203 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
6205         * doc/gnat_rm/security_hardening_features.rst: Add subsection on
6206         Control Flow Redundancy.
6207         * gnat_rm.texi: Regenerate.
6209 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
6211         * exp_util.adb (Insert_Actions) <N_Iteration_Scheme>: Check that
6212         it is a WHILE iteration scheme before using Condition_Actions.
6214 2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
6216         * atree.adb, gen_il-gen.adb, osint.adb, set_targ.adb,
6217         sinput.adb, table.adb, treepr.adb, types.ads: Replace uses of
6218         Unchecked_Conversion in the compiler itself.
6219         * libgnarl/a-reatim.adb, libgnarl/s-osinte__gnu.ads,
6220         libgnarl/s-osinte__kfreebsd-gnu.ads, libgnat/a-coboho.adb,
6221         libgnat/a-stuten.ads, libgnat/s-putima.adb: Likewise in the
6222         runtime.
6223         * doc/gnat_ugn/gnat_and_program_execution.rst: Likewise in
6224         documentation.
6225         * gnat_ugn.texi: Regenerate.
6227 2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
6229         * butil.adb, sem.adb, sinput.adb, types.ads, xref_lib.adb:
6230         Replace uses of Unchecked_Deallocation with
6231         Ada.Unchecked_Deallocation.
6232         * doc/gnat_ugn/gnat_and_program_execution.rst: Likewise for the
6233         documentation; fix casing of GNAT.IO.
6234         * gnat_ugn.texi: Regenerate.
6236 2022-05-13  Marc Poulhiès  <poulhies@adacore.com>
6238         * sem_aggr.adb (Resolve_Array_Aggregate): Fix ARM reference.
6239         Remove useless loop.
6241 2022-05-13  Etienne Servais  <servais@adacore.com>
6243         * sem_ch3.adb (Analyze_Subtype_Declaration): Fix typo in
6244         comment.
6246 2022-05-13  Justin Squirek  <squirek@adacore.com>
6248         * sem_ch6.adb (Check_Return_Construct_Accessibility): Modify
6249         generation of run-time accessibility checks to account for cases
6250         where Extra_Accessibility_Of_Result should be used versus the
6251         level of the enclosing subprogram. Use original node to avoid
6252         checking against expanded code. Disable check generation for
6253         tagged type case.
6254         (Is_Formal_Of_Current_Function): Added to encompass a predicate
6255         used within Check_Return_Construct_Accessibility to test if an
6256         associated expression is related to a relevant formal.
6257         * sem_util.adb, sem_util.ads (Enclosing_Subprogram): Modified to
6258         accept Node_Or_Entity_Id.
6259         (Innermost_Master_Scope_Depth): Calculate level based on the
6260         subprogram of a return statement instead of the one returned by
6261         Current_Subprogram.
6262         (Needs_Result_Accessibility_Level): Remove
6263         Disable_Coextension_Cases constant, and disable the tagged type
6264         case for performance reasons.
6266 2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
6268         * sem_res.adb (Flag_Effectively_Volatile_Objects): Ignore
6269         component and discriminant identifiers.
6271 2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
6273         * sem_res.adb (Flag_Effectively_Volatile_Objects): Remove
6274         redundant guard.
6276 2022-05-13  Justin Squirek  <squirek@adacore.com>
6278         * sem_ch8.adb (Determine_Package_Scope): Created to centralize
6279         the calculation of which package a given use clause belongs to.
6280         (Most_Descendant_Use_Clause): Modified to call
6281         Determine_Package_Scope.
6282         * sem_util.adb, sem_util.ads (Enclosing_Package): Modified to
6283         handle both entity and node ids.
6285 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6287         * gnat1drv.adb (Gnat1drv): Skip postponed checks when there are
6288         errors.
6290 2022-05-12  Arnaud Charlet  <charlet@adacore.com>
6292         * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix URL.
6293         * gnat_ugn.texi: Regenerate.
6295 2022-05-12  Bob Duff  <duff@adacore.com>
6297         * namet.ads, namet.adb (Write_Name_For_Debug): Add Quote
6298         parameter to allow conditional addition of quotes. Note that
6299         some calls to Write_Name_For_Debug, for example for file names,
6300         shouldn't have quotes, as in some_package.adb:123:45.
6301         * treepr.adb (Print_Name): Add double quotes around the name
6302         using the above Quote parameters.
6304 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6306         * sem_res.adb (Resolve_Actuals): Simplify with N_Op_Compare.
6307         * sem_util.adb (Replace_Null_Operand,
6308         Null_To_Null_Address_Convert_OK): Likewise.
6310 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6312         * sem_util.ads (Is_Selector_Name): Remove spec.
6313         * sem_util.adb (Is_Selector_Name): Remove body.
6315 2022-05-12  Arnaud Charlet  <charlet@adacore.com>
6317         * sem_warn.adb (Has_Junk_Name): Add more dummy names.
6319 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6321         * lib-xref.adb (Generate_Reference): Fix comment and implement
6322         it precisely.
6324 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6326         * atree.adb, atree.ads: Move WITH clause from spec to body; to
6327         prevent new warnings stopping the bootstrap.
6328         * fmap.adb, fname-sf.adb, libgnat/a-direct.adb,
6329         libgnat/s-bignum.adb: Remove unnecessary WITH clauses; to
6330         prevent new warnings stopping the bootstrap.
6331         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Only set
6332         Is_Instantiated flag when the instance is in the extended main
6333         source unit.
6335 2022-05-12  Yannick Moy  <moy@adacore.com>
6337         * libgnat/s-valuei.ads: Remove pragma Warnings Off.
6338         * libgnat/s-valueu.ads: Same.
6339         * libgnat/s-valuti.ads: Same.
6341 2022-05-12  Yannick Moy  <moy@adacore.com>
6343         * sem_util.adb (Check_Result_And_Post_State): Exempt trivial
6344         post.
6346 2022-05-12  Arnaud Charlet  <charlet@adacore.com>
6348         * ali.adb, ali.ads, bcheck.adb, exp_ch11.adb, fe.h,
6349         gnat1drv.adb, opt.adb, opt.ads, targparm.adb, targparm.ads,
6350         lib-writ.adb: Get rid of Frontend_Exceptions processing.
6351         * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads,
6352         libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads,
6353         libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads,
6354         libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads,
6355         libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads,
6356         libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads,
6357         libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads,
6358         libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads,
6359         libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads,
6360         libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads,
6361         libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads,
6362         libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads,
6363         libgnat/system-qnx-aarch64.ads, libgnat/system-rtems.ads,
6364         libgnat/system-solaris-sparc.ads,
6365         libgnat/system-solaris-x86.ads,
6366         libgnat/system-vxworks-arm-rtp-smp.ads,
6367         libgnat/system-vxworks-arm-rtp.ads,
6368         libgnat/system-vxworks-arm.ads,
6369         libgnat/system-vxworks-e500-kernel.ads,
6370         libgnat/system-vxworks-e500-rtp-smp.ads,
6371         libgnat/system-vxworks-e500-rtp.ads,
6372         libgnat/system-vxworks-ppc-kernel.ads,
6373         libgnat/system-vxworks-ppc-rtp-smp.ads,
6374         libgnat/system-vxworks-ppc-rtp.ads,
6375         libgnat/system-vxworks-x86-kernel.ads,
6376         libgnat/system-vxworks-x86-rtp-smp.ads,
6377         libgnat/system-vxworks-x86-rtp.ads,
6378         libgnat/system-vxworks7-aarch64-rtp-smp.ads,
6379         libgnat/system-vxworks7-aarch64.ads,
6380         libgnat/system-vxworks7-arm-rtp-smp.ads,
6381         libgnat/system-vxworks7-arm.ads,
6382         libgnat/system-vxworks7-e500-kernel.ads,
6383         libgnat/system-vxworks7-e500-rtp-smp.ads,
6384         libgnat/system-vxworks7-e500-rtp.ads,
6385         libgnat/system-vxworks7-ppc-kernel.ads,
6386         libgnat/system-vxworks7-ppc-rtp-smp.ads,
6387         libgnat/system-vxworks7-ppc-rtp.ads,
6388         libgnat/system-vxworks7-ppc64-kernel.ads,
6389         libgnat/system-vxworks7-ppc64-rtp-smp.ads,
6390         libgnat/system-vxworks7-x86-kernel.ads,
6391         libgnat/system-vxworks7-x86-rtp-smp.ads,
6392         libgnat/system-vxworks7-x86-rtp.ads,
6393         libgnat/system-vxworks7-x86_64-kernel.ads,
6394         libgnat/system-vxworks7-x86_64-rtp-smp.ads: Remove
6395         Frontend_Exceptions line.
6396         * gcc-interface/decl.cc, gcc-interface/trans.cc
6397         (gnat_to_gnu_entity, gnat_to_gnu_subprog_type, gigi,
6398         gnat_to_gnu): Remove Front_End_SJLJ processing and always assume
6399         Back_End_Exceptions.
6401 2022-05-12  Bob Duff  <duff@adacore.com>
6403         * namet.ads, namet.adb (Write_Name_For_Debug): New more-robust
6404         version of Write_Name.
6405         (Destroy_Global_Name_Buffer): New procedure to help detect bugs
6406         related to use of Global_Name_Buffer.  Misc cleanup and comment
6407         improvements. E.g. we don't need to document every detail of
6408         debugging printouts, especially since they can change.
6409         * uname.ads, uname.adb (Write_Unit_Name_For_Debug): New
6410         more-robust version of Write_Unit_Name.
6411         (Get_Unit_Name_String): Pass buffer in, instead of using the
6412         global variable. Misc cleanup. Remove the "special fudge", which
6413         is apparently not needed, and anyway the comment "the %s or %b
6414         has already been eliminated" seems wrong.
6415         (Write_Unit_Name): Call the new version of Get_Unit_Name_String.
6416         * errout.adb (Set_Msg_Insertion_Unit_Name): Call the new version
6417         of Get_Unit_Name_String. We pass the global variable here,
6418         because it's too much trouble to disentangle such uses in
6419         Errout.
6420         * sem_util.ads, sem_util.adb, sem_dist.adb
6421         (Get_Library_Unit_Name): New version of
6422         Get_Library_Unit_Name_String that avoids usage of the global
6423         variable.
6424         * casing.ads, casing.adb, exp_prag.adb, exp_util.adb
6425         (Set_All_Upper_Case): Remove. There is no need for a wrapper
6426         here -- code is clearer without it.
6427         * treepr.adb (Print_Name): Call Write_Name_For_Debug, which
6428         deals with No_Name (etc), rather than duplicating that here.
6429         Note that the call to Get_Name_String was superfluous.
6430         (Tree_Dump): Call Write_Unit_Name_For_Debug instead of
6431         Write_Unit_Name, which crashes if not Is_Valid_Name.
6432         * erroutc.ads: Improve comments.
6433         * erroutc.adb (Set_Msg_Name_Buffer): Call
6434         Destroy_Global_Name_Buffer to detect potential bugs where it
6435         incorrectly looks at the global variable.
6436         * sinput.adb (Write_Location): Call Write_Name_For_Debug instead
6437         of Write_Name, so it won't blow up on invalid data.
6438         * sinput.ads: Improve comments; remove some verbosity.
6439         * libgnat/s-imagef.adb: Fix typo in comment.
6441 2022-05-12  Yannick Moy  <moy@adacore.com>
6443         * libgnat/s-imageu.adb (Set_Image_Unsigned): Add lemma.
6444         * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertion.
6446 2022-05-12  Yannick Moy  <moy@adacore.com>
6448         * libgnat/s-aridou.ads: Remove use-clause, add renames and
6449         subtypes.
6450         * libgnat/s-exponn.ads: Same.
6451         * libgnat/s-expont.ads: Same.
6452         * libgnat/s-widthu.ads: Same.
6454 2022-05-12  Etienne Servais  <servais@adacore.com>
6456         * csets.adb (Fold_Latin_9): Fix y with diaeresis.
6457         (Fold_IBM_PC_850): Fix o with stroke.
6459 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6461         * sem_type.adb (Valid_Boolean_Arg): Remove redundant guard.
6463 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6465         * sem_type.adb (Valid_Boolean_Arg): Operands of Raise_Type are
6466         valid boolean arguments.
6468 2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
6470         * sem_ch4.adb (Possible_Type_For_Conditional_Expression): Add
6471         test for subtype conformance in the cases of
6472         access-to-subprogram types.
6474 2022-05-12  Yannick Moy  <moy@adacore.com>
6476         * libgnat/s-imagef.adb: Justify false message from CodePeer.
6478 2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
6480         * sem_ch4.adb (Analyze_Case_Expression): Rewrite.
6481         (Analyze_If_Expression): Likewise.
6482         (Possible_Type_For_Conditional_Expression): New function.
6483         * sem_type.adb (Specific_Type): Retur the base type in more
6484         cases.
6486 2022-05-12  Yannick Moy  <moy@adacore.com>
6488         * libgnat/s-imagef.adb: Adapt to new signature of Image_I, by
6489         providing ghost imported subprograms. For now, no contract is
6490         used on these subprograms, as System.Image_F is not proved.
6491         * libgnat/s-imagef.ads: Add modular type Uns as formal
6492         parameter, to use in defining Int_Params for instantiating
6493         Image_I.
6494         * libgnat/s-imagei.adb: Add contracts and ghost code.
6495         * libgnat/s-imagei.ads: Replace Int formal parameter by package
6496         Int_Params, which bundles type Int and Uns with ghost
6497         subprograms.  Add contracts.
6498         * libgnat/s-imfi128.ads: Adapt to new formal of Image_F.
6499         * libgnat/s-imfi32.ads: Adapt to new formal of Image_F.
6500         * libgnat/s-imfi64.ads: Adapt to new formal of Image_F.
6501         * libgnat/s-imgint.ads: Adapt to new formals of Image_I.
6502         * libgnat/s-imglli.ads: Adapt to new formals of Image_I.
6503         * libgnat/s-imgllli.ads: Adapt to new formals of Image_I.
6504         * libgnat/s-valint.ads: Adapt to new formals of Value_I.
6505         * libgnat/s-vallli.ads: Adapt to new formals of Value_I.
6506         * libgnat/s-valllli.ads: Adapt to new formals of Value_I.
6507         * libgnat/s-valuei.adb (Prove_Scan_Only_Decimal_Ghost): New
6508         ghost lemma.
6509         * libgnat/s-valuei.ads: New formal parameters to prove the new
6510         lemma.
6511         * libgnat/s-valuti.ads (Int_Params): Define a generic package to
6512         be used as a trait-like formal parameter in Image_I and other
6513         generics that need to instantiate Image_I.
6514         * libgnat/s-widthu.ads (Big_10): Qualify the 10 literal.
6516 2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
6518         * sem_ch4.adb (Find_Arithmetic_Types): Use local variables.
6519         (Find_Boolean_Types): Rewrite modeled on Find_Arithmetic_Types.
6521 2022-05-12  Alexandre Oliva  <oliva@adacore.com>
6523         * doc/gnat_rm/security_hardening_features.rst (Hardened
6524         Booleans): New.
6525         * exp_util.adb (Adjust_Condition): Perform validity checking on
6526         hardbool-annotated types even with -gnatVT.
6527         * gnat_rm.texi: Regenerate.
6528         * gcc-interface/utils.cc (gnat_internal_attribute_table): Ignore
6529         hardbool.
6531 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6533         * exp_ch9.adb (Build_Protected_Entry): Set scope of the nested
6534         block to spec and not the body of the procedure created for a
6535         protected entry.
6537 2022-05-12  Etienne Servais  <servais@adacore.com>
6539         * sem_ch3.adb (Find_Type_Of_Object): Remove duplicate "i" in
6540         comment.
6542 2022-05-12  Marc Poulhiès  <poulhies@adacore.com>
6544         * csets.adb (Initialize): Only treat square bracket as valid
6545         identifier character for Ada versions prior to Ada 2022.
6546         * style.ads (Check_Left_Paren): Rename...
6547         (Check_Left_Paren_Square_Bracket): ...to this.
6548         * styleg.adb (Check_Left_Bracket): Rename...
6549         (Check_Left_Paren_Square_Bracket): ...to this.
6550         * styleg.ads (Check_Left_Paren): Rename...
6551         (Check_Left_Paren_Square_Bracket): ...to this.
6552         * scng.adb (Scan): Add check for spacing around left square
6553         bracket and use new name for Check_Left_Paren_Square_Bracket.
6554         * libgnat/a-szmzco.ads (Control_Ranges, Graphic_Ranges)
6555         (Letter_Ranges, Decimal_Digit_Ranges, ISO_646_Ranges)
6556         (Character_Ranges): Fix style (remove extra space).
6557         * libgnat/a-swmwco.ads (Control_Ranges, Graphic_Ranges)
6558         (Letter_Ranges, Decimal_Digit_Ranges, ISO_646_Ranges)
6559         (Character_Ranges): Likewise.
6560         * opt.adb (Set_Config_Switches): Remove [ from Identifier_Char
6561         set.
6563 2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
6565         * sem_type.adb (Specific_Type): Add swapped cases for interfaces.
6567 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6569         * doc/gnat_rm/implementation_defined_pragmas.rst:
6570         (Export_Object, Import_Object, Short_Descriptors): Fix pragma
6571         syntax specification.
6572         * gnat_rm.texi: Regenerate.
6574 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6576         * ali.adb (Hash): Reuse GNAT.String_Hash.Hash and don't pollute
6577         the Name_Id table.
6579 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6581         * doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
6582         Pragmas): Add Aggregate_Individually_Assign; otherwise the list
6583         is complete except for some obsoleted pragmas, which most likely
6584         are intentionally omitted.
6585         * gnat_ugn.texi: Regenerate.
6587 2022-05-11  Yannick Moy  <moy@adacore.com>
6589         * libgnat/s-imaged.ads: Remove Pure.
6590         * libgnat/s-imagef.ads: Remove Pure.
6591         * libgnat/s-imager.ads: Remove Pure.
6592         * libgnat/s-imageu.adb: Add ghost code.
6593         * libgnat/s-imageu.ads: Add contracts.
6594         * libgnat/s-imde128.ads: Remove Pure.
6595         * libgnat/s-imde32.ads: Remove Pure.
6596         * libgnat/s-imde64.ads: Remove Pure.
6597         * libgnat/s-imfi128.ads: Remove Pure.
6598         * libgnat/s-imfi32.ads: Remove Pure.
6599         * libgnat/s-imfi64.ads: Remove Pure.
6600         * libgnat/s-imgflt.ads: Remove Pure.
6601         * libgnat/s-imglfl.ads: Remove Pure.
6602         * libgnat/s-imgllf.ads: Remove Pure.
6603         * libgnat/s-imglllu.ads: Instantiate with ghost subprograms.
6604         * libgnat/s-imgllu.ads: Instantiate with ghost subprograms.
6605         * libgnat/s-imgrea.ads: Remove Pure.
6606         * libgnat/s-imguns.ads: Instantiate with ghost subprograms.
6607         * libgnat/s-imguti.ads: Remove Pure.
6608         * libgnat/s-valueu.adb (Prove_Iter_Scan_Based_Number_Ghost,
6609         Prove_Scan_Only_Decimal_Ghost): New lemmas.
6610         * libgnat/s-valueu.ads (Uns_Option): Do not make type ghost to
6611         be able to use it as formal in instantiations.
6612         (Only_Decimal_Ghost): New ghost query.
6613         (Prove_Iter_Scan_Based_Number_Ghost,
6614         Prove_Scan_Only_Decimal_Ghost): New lemmas.
6615         * libgnat/s-widlllu.ads: Adapt to changes in Width_U.
6616         * libgnat/s-widllu.ads: Adapt to changes in Width_U.
6617         * libgnat/s-widthu.adb: Change generic function in generic
6618         package in order to complete the postcondition. Tighten the
6619         upper bound on the result by 1.
6620         * libgnat/s-widthu.ads: Same.
6621         * libgnat/s-widuns.ads: Adapt to changes in Width_U.
6622         * gcc-interface/Make-lang.in: Add dependencies on a-nubinu,
6623         a-numeri.ads and a-widuns.ads.
6625 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6627         * snames.ads-tmpl (Detect_Blocking): Move after
6628         Default_Storage_Pool.
6630 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6632         * sem_prag.adb (Analyze_Pragma): Remove custom check for
6633         Compile_Time_Error and Compile_Time_Warning pragmas.
6634         * snames.ads-tmpl (Compile_Time_Error, Compile_Time_Warning):
6635         Move beyond Last_Configuration_Pragma_Name.
6637 2022-05-11  Marc Poulhiès  <poulhies@adacore.com>
6639         * libgnat/a-direct.adb (Start_Search_Internal): Use parentheses
6640         for record aggregate.
6641         * libgnat/a-stbubo.adb (Get_UTF_8): Likewise.
6642         * libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
6643         * libgnat/a-stzbou.ads (Null_Bounded_Wide_Wide_String):
6644         Likewise.
6645         * libgnat/a-swmwco.ads (Lower_Case_Mapping, Basic_Mapping):
6646         Likewise.
6647         * libgnat/a-szmzco.ads (Lower_Case_Mapping, Basic_Mapping):
6648         Likewise.
6649         * libgnat/s-statxd.adb (Fields): Likewise.
6650         * libgnat/s-stausa.adb (Initialize): Likewise.
6651         * sem_aggr.adb (Resolve_Record_Aggregate): Reject aggregates
6652         using brackets.
6654 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6656         * doc/gnat_rm/implementation_defined_pragmas.rst,
6657         doc/gnat_rm/implementation_of_specific_ada_features.rst,
6658         doc/gnat_rm/representation_clauses_and_pragmas.rst,
6659         doc/gnat_rm/the_gnat_library.rst,
6660         doc/gnat_rm/the_implementation_of_standard_i_o.rst,
6661         doc/gnat_ugn/building_executable_programs_with_gnat.rst,
6662         doc/gnat_ugn/gnat_and_program_execution.rst,
6663         doc/gnat_ugn/platform_specific_information.rst: Fix unbalanced
6664         parentheses and brackets.
6665         * sem_prag.adb (pragma Obsolescent): Likewise.
6666         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
6668 2022-05-11  Marc Poulhiès  <poulhies@adacore.com>
6670         * libgnat/s-rident.ads (Restriction_Id): Add
6671         No_Local_Tagged_Types, update comment for adding new GNAT
6672         specific restriction.
6673         * restrict.ads (Implementation_Restriction): Add
6674         No_Local_Tagged_Types.
6675         * sem_ch3.adb (Analyze_Full_Type_Declaration): Add check for
6676         tagged type at library level.
6677         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
6678         Add No_Local_Tagged_Types description.
6679         * gnat_rm.texi: Regenerate.
6681 2022-05-11  Eric Botcazou  <ebotcazou@adacore.com>
6683         * sem_ch4.adb (Analyze_User_Defined_Binary_Op): Use the base type
6684         in the interpretation of the operator.
6686 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6688         * sem_case.adb (Free_Value_Sets): Fix style in body header box.
6689         * sem_ch12.adb (Build_Subprogram_Wrappers): Likewise.
6690         * sem_util.adb (Statically_Denotes_Entity): Likewise.
6692 2022-05-11  Etienne Servais  <servais@adacore.com>
6694         * sem_ch3.adb (Constrain_Access): Call Desig_Subtype in each if
6695         branch to avoid calling it twice.
6697 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6699         * sem_warn.adb (Find_Var): Detect all operators; replace
6700         "condition" to "expression" in comments, because when this
6701         routine is called recursively it no longer examines the
6702         condition.
6703         (Is_Suspicious_Function_Name): Reduce scope of a local variable
6704         to avoid shadowing with a parameter of a nested
6705         Substring_Present function.
6707 2022-05-11  Yannick Moy  <moy@adacore.com>
6709         * libgnat/s-aridou.adb (Double_Divide, Scaled_Divide): Add
6710         intermediate assertions.
6712 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6714         * libgnat/s-rident.ads (Implementation_Restriction): Remove
6715         No_Dynamic_Attachment, No_Implementation_Attributes,
6716         No_Implementation_Pragmas, No_Local_Protected_Objects,
6717         No_Protected_Type_Allocators, No_Relative_Delay,
6718         No_Requeue_Statements, No_Select_Statements,
6719         No_Task_Termination, Pure_Barriers and Simple_Barriers; add
6720         No_Dynamic_Sized_Objects,
6721         No_Implicit_Protected_Object_Allocations,
6722         No_Implicit_Task_Allocations, No_Task_At_Interrupt_Priority and
6723         Static_Dispatch_Tables; sort alphabetically.
6724         * restrict.ads (Restriction_Id): Change Pure_Barriers and
6725         No_Task_Termination from GNAT to Ada restrictions.
6727 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6729         * exp_atag.adb, lib-util.ads, libgnat/g-decstr.adb,
6730         libgnat/g-exptty.adb, libgnat/g-socpol.adb,
6731         libgnat/s-strhas.adb: Fix headers.
6733 2022-05-11  Joao Azevedo  <azevedo@adacore.com>
6735         * doc/gnat_ugn/platform_specific_information.rst: Add
6736         glibc-locale-base-32bit as a dependency in SUSE distributions.
6737         * gnat_ugn.texi: Regenerate.
6739 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6741         * doc/gnat_ugn/gnat_and_program_execution.rst,
6742         doc/gnat_ugn/gnat_utility_programs.rst,
6743         doc/gnat_ugn/inline_assembler.rst: Fix typos and formatting
6744         glitches.
6745         * gnat_ugn.texi: Regenerate.
6747 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6749         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Change
6750         blocks from plain code to Ada.
6752 2022-05-11  Gary Dismukes  <dismukes@adacore.com>
6754         * exp_ch5.adb (Expand_Assign_With_Target_Names): Bypass the temp
6755         object approach in the case where the type of the LHS is
6756         controlled or has controlled subcomponents (Needs_Finalization
6757         is True), and use the procedure approach instead.
6759 2022-05-11  Bob Duff  <duff@adacore.com>
6761         * sem_ch3.adb (Get_Discr_Value): Copy the result. Otherwise, the
6762         "tree" can be malformed (a DAG, not a tree) because
6763         Get_Discr_Value could be returning some subtree already attached
6764         to the tree.
6766 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6768         * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
6769         proper label entities.
6771 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6773         * doc/gnat_rm/implementation_defined_characteristics.rst: Add
6774         tabularcolums directive, as explained in documentation of Sphinx
6775         and tabular LaTeX package.
6777 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6779         * doc/gnat_rm/implementation_defined_aspects.rst,
6780         doc/gnat_rm/implementation_defined_pragmas.rst: Remove extra
6781         whitespace.
6782         * gnat_rm.texi: Regenerate.
6784 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6786         * doc/gnat_rm/implementation_defined_characteristics.rst: Remove
6787         extra indent in continuation lines; indent both descriptions of
6788         Max_Picture_Length.
6789         * gnat_rm.texi: Regenerate.
6791 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6793         * doc/gnat_rm/implementation_defined_pragmas.rst (Pragma
6794         Eliminate): Fix markup.
6795         * gnat_rm.texi: Regenerate.
6797 2022-05-11  Johannes Kliemann  <kliemann@adacore.com>
6799         * libgnat/g-sthcso.adb: Suppress warning about unneeded use type
6800         clause.
6802 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6804         * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
6805         proper label entities.
6807 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6809         * doc/gnat_rm/implementation_defined_pragmas.rst (Pragma
6810         Ada_2022): Copy description from pragma Ada 2012 and adapt.
6811         * doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
6812         Pragmas): List pragma Ada 2022.
6813         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
6815 2022-05-11  Steve Baird  <baird@adacore.com>
6817         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Replace
6818         the existing check for an address specification for an object of
6819         a class-wide type with a more general check which rejects either
6820         the class-wide case or the case where the FE would (if the
6821         address specification were accepted) build a malformed
6822         tree (specifically, an object renaming declaration with a
6823         specified address). In the case where the check fails, reject
6824         the construct at compile time instead of generating an
6825         unconditional raise of Program_Error.
6826         * doc/gnat_rm/representation_clauses_and_pragmas.rst: Update
6827         documentation to reflect these changes.
6828         * gnat_rm.texi: Regenerate.
6830 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6832         * gen_il-gen-gen_entities.adb (Reachable): Move from
6833         Root_Entity_Type to E_Label.
6835 2022-05-11  Alexandre Oliva  <oliva@adacore.com>
6837         * exp_ch3.adb (Expand_N_Object_Declaration): Guard
6838         Set_Is_Known_Valid with Safe_To_Capture_Value.
6840 2022-05-11  Bob Duff  <duff@adacore.com>
6842         * repinfo.adb (List_Object_Info): Do not try to print values
6843         that have not been computed (and so are No_Uint).
6844         (Rep_Not_Constant): Reverse sense and change name to
6845         Compile_Time_Known_Rep. This makes the code at call sites a
6846         little more readable. Simplify code to a single return
6847         statement.
6849 2022-05-10  Martin Liska  <mliska@suse.cz>
6851         * gcc-interface/decl.cc (compare_field_bitpos): Use void *
6852         instead PTR.
6853         * gcc-interface/utils2.cc (compare_elmt_bitpos): Likewise.
6855 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6857         * fe.h (Is_Expression_Function): Declare.
6858         * sem_util.ads (Is_Expression_Function): Add warning line.
6860 2022-05-10  Alexandre Oliva  <oliva@adacore.com>
6862         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Valid>:
6863         Drop redundant range check for nonstandard booleans.
6865 2022-05-10  Alexandre Oliva  <oliva@adacore.com>
6867         * exp_util.adb (Adjust_Result_Type): Leave result in
6868         Standard.Boolean if it's going to be converted to another
6869         boolean type.
6870         * exp_ch4.adb (Expand_N_Type_Conversion): When optimizing,
6871         convert to nonstandard booleans with an if_expression with
6872         boolean literals.
6874 2022-05-10  Alexandre Oliva  <oliva@adacore.com>
6876         * exp_ch4.adb (Expand_N_If_Expression): Call Adjust_Condition to
6877         handle non-standard booleans.
6879 2022-05-10  Justin Squirek  <squirek@adacore.com>
6881         * sem_ch8.adb (Use_One_Type): Remove code in charge of setting
6882         Current_Use_Clause when Id is known to be redundant, and modify
6883         the printing of errors associated with redundant use type
6884         clauses so that line number gets included in more cases.
6886 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6888         * sem_warn.adb (Check_Unset_Reference): Use variant of
6889         Earlier_In_Extended_Unit that calls Sloc internally.
6891 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6893         * par-ch10.adb, scng.adb, sem_res.adb, sinfo-utils.adb,
6894         treepr.adb: Simplify calculations with Source_Ptr and Loc
6895         values.
6897 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6899         * sem_res.adb (Resolve_Expression_With_Actions): Fix style in
6900         nested routines.
6902 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6904         * atree.adb, exp_ch6.adb, exp_ch9.adb, ghost.adb, sem_ch3.adb,
6905         sem_ch4.adb, sem_res.adb, sem_util.adb: Use
6906         Is_Rewrite_Substitution where possible.
6908 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6910         * exp_ch11.adb, exp_ch5.adb, exp_prag.adb, gnat_cuda.adb,
6911         sem_ch12.adb, sem_ch3.adb, sem_ch6.adb, sem_util.adb,
6912         treepr.adb: Replace /= and = operators with No and Present,
6913         respectively.
6915 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6917         * sem_warn.adb (Within_Postcondition): Guard against search
6918         going too far.
6920 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6922         * sem_warn.adb (Check_Unset_Reference): The early test was only
6923         saving time of calls to Original_Node, Comes_From_Source and
6924         Nkind, which are all quick and cheap.
6926 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6928         * sem_ch5.adb (Check_Unreachable_Code): Remove inner declare
6929         block; refill code and comments.
6931 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6933         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace
6934         First_Entity/Next_Entity with First_Formal/Next_Formal; rename
6935         E1/E2 to F1/F2.
6937 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6939         * sem_res.adb (Resolve_Declare_Expression): Check expression for
6940         references to unset objects.
6941         (Resolve_Qualified_Expression): Likewise.
6942         * sem_warn.adb (Check_Unset_Reference): Remove handling of
6943         declare and qualified expressions; clarify comment for type
6944         conversions.
6946 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6948         * sem_res.adb (Resolve_Case_Expression): Check alternative
6949         expressions for references to unset objects.
6950         (Resolve_If_Expression): Check condition, then and else
6951         expressions for references to unset objects.
6953 2022-05-10  Kévin Le Gouguec  <legouguec@adacore.com>
6955         * doc/gnat_rm/implementation_defined_attributes.rst,
6956         doc/gnat_ugn/the_gnat_compilation_model.rst: Fix typos.
6957         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
6959 2022-05-10  Etienne Servais  <servais@adacore.com>
6961         * sem_ch13.adb (Is_Predicate_Static): Fix typo in comment.
6963 2022-05-10  Yannick Moy  <moy@adacore.com>
6965         * libgnat/s-valuei.adb: Fix indentation.
6966         * libgnat/s-valuei.ads: Same.
6968 2022-05-10  Claire Dross  <dross@adacore.com>
6970         * snames.ads-tmpl: Add "Structural" as a name.
6971         * sem_prag.adb: (Analyze_Pragma): Accept modifier "Structural"
6972         in pragmas Loop_Variant and Subprogram_Variant. Check that items
6973         associated to Structural occur alone in the pragma associations.
6974         (Analyze_Subprogram_Variant_In_Decl_Part): Idem.
6975         * exp_prag.adb (Expand_Pragma_Loop_Variant): Discard structural
6976         variants.
6977         (Expand_Pragma_Subprogram_Variant): Idem.
6979 2022-05-10  Claire Dross  <dross@adacore.com>
6981         * libgnat/s-valint.ads: Add SPARK_Mode and pragma to ignore
6982         assertions in instance and add additional ghost parameters to
6983         the instance of Value_I.
6984         * libgnat/s-vallli.ads: Idem.
6985         * libgnat/s-valllli.ads: Idem.
6986         * libgnat/s-valuei.ads, libgnat/s-valuei.adb: New generic
6987         parameters for ghost functions from System.Valueu. Add
6988         functional contracts.
6990 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6992         * sem_res.adb (Resolve_Eqyality_Op): Remove obsolete code.
6993         (Resolve_Op_Not): Likewise.
6994         * sem_type.adb (Disambiguate): Add missing test for RM 8.4(10).
6995         * libgnat/s-dwalin.adb (Enable_Cache): Fix ambiguity.
6996         (Symbolic_Address): Likewise.
6998 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
7000         * sem_eval.adb (Eval_Integer_Literal): Fix oversight in entry test.
7002 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
7004         * exp_aggr.adb (Expand_N_Aggregate): Replace UI_To_Int with
7005         UI_To_CC; replace magic literals with high-level routines that
7006         recognise wide and wide wide characters; reorder if-then-elsif
7007         condition, because we don't have a routine to detect wide wide
7008         characters.
7010 2022-05-10  Etienne Servais  <servais@adacore.com>
7012         * scng.adb (Nlit): Error on big UI_Scale.
7014 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
7016         * exp_util.adb (Build_Task_Array_Image): Declare expanded
7017         objects as constants.
7018         (Build_Task_Image_Prefix): Likewise.
7019         (Build_Task_Record_Image): Likewise.
7021 2022-05-10  Marc Poulhiès  <poulhies@adacore.com>
7023         * checks.adb (Determine_Range): Fix range refining.
7025 2022-05-10  Steve Baird  <baird@adacore.com>
7027         * sem_util.adb (Get_Actual_Subtype): If a new subtype is built,
7028         do not freeze it if Expander_Active is False. The idea here is
7029         to avoid generating an unwanted Freeze_Node for a subtype that
7030         has been conjured up solely for purposes of preanalysis.
7032 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
7034         * exp_util.adb (Build_Task_Array_Image): Fix style in the
7035         structure of generated code; add Pref'Length as the component of
7036         the Sum initialization expression.
7038 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
7040         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Use
7041         Get_Char_Code.
7042         * exp_util.adb (Build_Task_Array_Image): Simplify conversion to
7043         Char_Code.
7044         (Build_Task_Image_Prefix): Likewise.
7045         (Build_Task_Record_Image): Likewise.
7046         * cstand.adb (Create_Standard): Use UI_From_Int instead of
7047         UI_From_CC.
7048         * exp_ch11.adb (Expand_N_Exception_Declaration): Likewise.
7049         * sem_res.adb (Patch_Up_Value): Likewise.
7050         * stringt.adb (Write_String_Table_Entry): Use Get_Char_Code.
7052 2022-05-09  Yannick Moy  <moy@adacore.com>
7054         * sem_util.adb (Bad_Predicated_Subtype_Use): Add continuation
7055         message.
7057 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7059         * uintp.adb (UI_To_CC): Guard against illegal inputs; reuse
7060         UI_To_Int.
7062 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7064         * par-prag.adb (Prag): Simplify conversion of character codes.
7065         * sem_case.adb (Choice_Image): Likewise.
7066         (Lit_Of): Likewise.
7068 2022-05-09  Justin Squirek  <squirek@adacore.com>
7070         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Tag>:
7071         Deal specifically wth class-wide equivalent types without a
7072         parent.
7073         * exp_util.adb (Build_Allocate_Deallocate_Proc): Extract
7074         allocator node for calculation of alignment actual and modify
7075         alignment for allocators of class-wide types with associated
7076         expressions.
7077         (Make_CW_Equivalent_Type): Handle interface types differently
7078         when generating the equivalent record.
7079         * sem_aux.adb (First_Tag_Component): Accept class-wide
7080         equivalent types too.
7082 2022-05-09  Etienne Servais  <servais@adacore.com>
7084         * repinfo.adb (List_Name): Rework termination condition.
7086 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7088         * bindgen.adb, errout.adb, exp_unst.adb, gnatchop.adb,
7089         libgnat/a-ngcefu.adb, libgnat/a-strunb.adb,
7090         libgnat/a-stwiun.adb, libgnat/a-stzunb.adb,
7091         libgnat/a-wtedit.adb, libgnat/g-debpoo.adb, osint.adb,
7092         sigtramp-vxworks.c, uintp.adb: Remove extra whitespace around +,
7093         -, *, / and **.
7095 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7097         * libgnat/s-expmod.adb: Remove CodePeer annotation for pragma
7098         Loop_Variant.
7100 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7102         * sem_util.ads (In_Statement_Condition_With_Actions): Renamed
7103         from In_While_Loop_Condition; move to fit the alphabetic order.
7104         * sem_util.adb (In_Statement_Condition_With_Actions): Detect
7105         Elsif condition; stop search on other statements; prevent search
7106         from going too far; move to fit the alphabetic order.
7107         * sem_res.adb (Resolve_Call): Adapt caller.
7109 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7111         * inline.adb (Build_Body_To_Inline): Remove redundant guards.
7112         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
7114 2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7116         * sem_util.adb (Is_OK_Variable_For_Out_Formal): Remove test on
7117         Comes_From_Source in the condition dealing with the expression
7118         of an N_Unchecked_Type_Conversion node.
7120 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7122         * exp_aggr.adb, exp_ch3.adb, exp_util.adb, freeze.adb,
7123         gnatfind.adb, gnatlink.adb, gnatxref.adb, gprep.adb,
7124         libgnat/a-cfhama.adb, libgnat/g-alleve.adb, sem_ch12.adb,
7125         sem_ch13.adb, xr_tabls.adb: Fix style labels.
7127 2022-05-09  Justin Squirek  <squirek@adacore.com>
7129         * err_vars.ads: Add new error message names and nodes.
7130         * erroutc.adb (Set_Msg_Insertion_Name,
7131         Set_Msg_Insertion_Name_Literal): Likewise.
7132         * errout.adb (Set_Msg_Insertion_Node): Likewise.
7133         * errout.ads: Likewise.
7134         * exp_disp.adb (Check_Premature_Freezing): Modify setting of
7135         Error_Msg_Node_2 to occur directly before Error_Msg call where
7136         applicable.
7137         * sem_ch8.adb (Error_Missing_With_Of_Known_Unit): Added to
7138         handle the printing of full package names of known units.
7139         (Undefined, Find_Expanded_Name): Replace error printing with
7140         call to Error_Missing_With_Of_Known_Unit.
7142 2022-05-09  Yannick Moy  <moy@adacore.com>
7144         * exp_ch4.adb (Expand_Allocator_Expression): Set Error_Msg_Warn
7145         correctly.
7147 2022-05-09  Steve Baird  <baird@adacore.com>
7149         * sem_ch13.adb (Replace_Type_Ref): In the case of an identifier
7150         that names a component of the type, simplify the test to decide
7151         whether to build a prefix for it (the prefix denotes the current
7152         instance of the enclosing type): if the identifier doesn't
7153         already have a prefix, then give it one. This isn't quite right
7154         in the corner case of a quantified expression or some other such
7155         expression that declares an object with the same name as a
7156         component, but it is still an improvement.
7158 2022-05-09  Ed Schonberg  <schonberg@adacore.com>
7160         * exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
7161         package if array type and element type come from the same
7162         package, and the original array type is private.
7164 2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7166         * exp_ch4.adb (Handle_Changed_Representation): Simplify and fix
7167         thinko in the loop building the constraints for discriminants.
7168         * exp_ch5.adb (Make_Component_List_Assign): Try also to extract
7169         discriminant values for a derived type.
7171 2022-05-09  Ed Schonberg  <schonberg@adacore.com>
7173         * sem_res.adb (Resolve_Declare_Expression): Traverse the
7174         expression to replace references to local variables that occur
7175         within declarations of the declare_expression; fix typos in
7176         comments.
7178 2022-05-09  Ed Schonberg  <schonberg@adacore.com>
7180         * sem_ch4.adb (Operator_Check): Fix condition.
7182 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7184         * doc/gnat_rm/implementation_defined_pragmas.rst
7185         (Abstract_State, Async_Readers, Async_Writers,
7186         Constant_After_Elaboration, Effective_Reads, Effective_Writes,
7187         Extensions_Visible, Ghost, No_Caching, Volatile_Function): Only
7188         static Boolean expressions are allowed.
7189         * gnat_rm.texi: Regenerate.
7191 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7193         * exp_prag.adb (Expand_Pragma_Loop_Variant,
7194         Expand_Pragma_Subprogram_Variant): Adapt call via
7195         Process_Variant to Make_Variant_Comparison.
7196         * exp_util.adb (Make_Variant_Comparison): Compare Big_Integer
7197         expressions with a function call and not an operator.
7198         * exp_util.ads (Make_Variant_Comparison): Add type parameter,
7199         which is needed because the Curr_Val and Old_Val expressions
7200         might not be yet decorated.
7201         * rtsfind.ads: (RTU_Id): Add support for Big_Integers and
7202         Big_Integers_Ghost.
7203         (RE_Id): Add support for Big_Integer and its ghost variant.
7204         (RE_Unit_Table): Add mapping from Big_Integer to Big_Integers;
7205         same for the ghost variants.
7206         * rtsfind.adb (Get_Unit_Name): Add support for Big_Numbers.
7207         * sem_prag.adb (Analyze_Pragma): Allow Big_Integer in pragma
7208         Loop_Variant.
7209         (Analyze_Variant): Allow Big_Integer in pragma
7210         Subprogram_Variant.
7212 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7214         * sem_ch3.ads, sem_ch3.adb (Preanalyze_Assert_Expression): Add a
7215         variant that doesn't force preanalysis to yield a specific type.
7217 2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7219         * einfo.ads (Access Kinds): Reorder and beef up.
7220         * sem.adb (Analyze): Call Analyze_Comparison_Equality_Op for all
7221         comparison and equality operators.
7222         * sem_ch4.ads (Analyze_Comparison_Op): Delete.
7223         (Analyze_Equality_Op): Likewise.
7224         (Analyze_Comparison_Equality_Op): Declare.
7225         (Ambiguous_Operands): Likewise.
7226         * sem_ch4.adb (Ambiguous_Operands): Remove declaration.
7227         (Defined_In_Scope): Delete.
7228         (Find_Comparison_Types): Merge into...
7229         (Find_Equality_Types): Merge into...
7230         (Find_Comparison_Equality_Types): ...this.  Make fully symmetrical.
7231         (Analyze_Arithmetic_Op): Minor consistency tweaks.
7232         (Analyze_Comparison_Op): Merge into...
7233         (Analyze_Equality_Op): Merge into...
7234         (Analyze_Comparison_Equality_Op): ...this.  Make fully symmetrical.
7235         (Analyze_Logical_Op): Minor consistency tweaks.
7236         (Analyze_Membership_Op): Make fully symmetrical.
7237         (Analyze_One_Call): Minor comment tweak.
7238         (Analyze_Operator_Call): Call Find_Comparison_Equality_Types.
7239         (Analyze_User_Defined_Binary_Op): Make fully symmetrical.
7240         (Check_Arithmetic_Pair.Specific_Type): Delete.
7241         (Diagnose_Call): Add special handling for "+" operator.
7242         (Operator_Check): Call Analyze_Comparison_Equality_Op.
7243         * sem_ch8.adb (Has_Implicit_Operator): Add Is_Type guard for boolean
7244         operators, use Valid_Comparison_Arg and Valid_Equality_Arg for resp.
7245         comparison and equality operators.
7246         * sem_res.adb (Check_For_Visible_Operator): Call Is_Visible_Operator
7247         (Make_Call_Into_Operator): Use Preserve_Comes_From_Source.
7248         (Resolve_Actuals): Deal specifically with Any_Type actuals for user-
7249         defined comparison and equality operators.
7250         (Resolve_Call): Minor tweaks.
7251         (Resolve_Comparison_Op): Tidy up and give error for ambiguity.
7252         (Resolve_Equality_Op): Likewise, as well as other errors.
7253         (Rewrite_Renamed_Operator): Simplify.
7254         * sem_type.ads (Is_Invisible_Operator): Delete.
7255         (Is_Visible_Operator): Declare.
7256         (Has_Compatible_Type): Remove For_Comparison parameter.
7257         (Specific_Type): Declare.
7258         (Valid_Equality_Arg): Likewise.
7259         * sem_type.adb (Specific_Type): Remove declaration.
7260         (Add_One_Interp): Call Is_Visible_Operator for the visibility test.
7261         (Remove_Conversions): Rename into...
7262         (Remove_Conversions_And_Abstract_Operations): ...this.  Do not apply
7263         numeric-type treatment to Any_Type.  Expand the special handling for
7264         abstract interpretations to second operand.  Remove obsolete code.
7265         (Disambiguate): Adjust to above renaming.  Tweak to hidden case and
7266         call Remove_Conversions_And_Abstract_Operations for operators too.
7267         (Entity_Matches_Spec): Minor tweak.
7268         (Find_Unique_Type): Simplify and deal with user-defined literals.
7269         (Has_Compatible_Type): Remove For_Comparison parameter and adjust.
7270         Call the Is_User_Defined_Literal predicate and remove call to
7271         the Is_Invisible_Operator predicate.
7272         (Is_Invisible_Operator): Delete.
7273         (Is_Visible_Operator): New function.
7274         (Operator_Matches_Spec): Use Valid_Equality_Arg predicate.
7275         (Specific_Type): Tidy up, make fully symmetrical and deal with
7276         private views the same way as Covers.
7277         (Valid_Comparison_Arg): Return true for Any_Composite/Any_String.
7278         (Valid_Equality_Arg): New function.
7279         * sem_util.ads (Is_User_Defined_Literal): Declare.
7280         * sem_util.adb (Is_User_Defined_Literal): New function.
7282 2022-05-09  Bob Duff  <duff@adacore.com>
7284         * lib-xref.adb, sem_util.adb: Change wording of warning messages
7285         to use "aspect".
7286         * sem_prag.adb: Use Fix_Error to change wording of warnings.
7287         * doc/gnat_rm/implementation_defined_pragmas.rst: Minor: fix
7288         cut&paste error.
7289         * gnat_rm.texi: Regenerate.
7291 2022-05-09  Doug Rupp  <rupp@adacore.com>
7293         * init.c [vxworks] (CLEAR_EXCEPTION_COUNT): New macro.
7294         (__gnat_clear_exception_count): Remove.
7295         (__gnat_map_signal): Call CLEAR_EXCEPTION_COUNT().
7297 2022-05-09  Fedor Rybin  <frybin@adacore.com>
7299         * doc/gnat_ugn/gnat_utility_programs.rst: Remove gnattest
7300         section.
7302 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7304         * sem_attr.adb (Analyze_Attribute): Remove calls to Analyze for
7305         attributes Identity, Priority, Ref, Restriction_Set, To_Address
7306         and for tasking-related attributes Callable, Terminated and
7307         Storage_Size.
7309 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7311         * sem_attr.adb (Analyze_Attribute): Don't call Set_Etype for
7312         Bit_Order attribute.
7314 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
7316         * exp_ch5.adb (Update_Choice_Index): Simplify condition.
7317         * sem_ch8.adb (Attribute_Renaming): Likewise.
7319 2022-05-09  Dmitriy Anisimkov  <anisimko@adacore.com>
7321         * adaint.c (__gnat_kill): Remove close parameter.
7322         (__gnat_killprocesstree): Do not provide close parameter on call
7323         to __gnat_kill.
7324         * libgnat/g-expect.adb (Kill): Remove Close parameter.
7325         (Close): Do not provide Close parameter on call to Kill.
7326         (Send_Signal): Do not provide Close parameter on call to Kill.
7327         * libgnat/s-os_lib.adb (Kill): Do not provide close parameter on
7328         call to __gnat_kill.
7330 2022-05-09  Dmitriy Anisimkov  <anisimko@adacore.com>
7332         * libgnat/g-expect.adb (Close): Call Kill before Close_Input.
7334 2022-04-29  Martin Liska  <mliska@suse.cz>
7336         * gnatvsn.ads: Bump Library_Version to 13.
7338 2022-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7340         * tracebak.c: Add support for ARM RTEMS. Add support for RTEMS to PPC
7341         ELF.  Add support for RTEMS to SPARC.  Merge aarch64 support of Linux
7342         and RTEMS.
7344 2022-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
7346         PR ada/104027
7347         * gnat1drv.adb: Remove the goto End_Of_Program.
7349 2022-03-24  Pascal Obry  <obry@adacore.com>
7351         PR ada/104767
7352         * libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1.
7353         * libgnat/g-sercom__linux.adb (Close): Likewise.
7355 2022-03-10  Richard Biener  <rguenther@suse.de>
7357         PR ada/104861
7358         * gcc-interface/Makefile.in (target_noncanonical): Substitute.
7359         (OSCONS_CPP): Pass target_noncanonical as TARGET.
7361 2022-02-13  Maciej W. Rozycki  <macro@orcam.me.uk>
7363         PR ada/98724
7364         PR ada/97504
7365         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <alpha*-*-linux*>: Use
7366         wraplf version of Aux_Long_Long_Float.
7368 2022-01-31  Pierre-Marie de Rodat  <derodat@adacore.com>
7370         * doc/share/conf.py: Remove spurious call to ".decode()".
7372 2022-01-31  Arnaud Charlet  <charlet@adacore.com>
7374         PR ada/104027
7375         * gnat1drv.adb (Gnat1drv): Only call Exit_Program when not
7376         generating code, otherwise instead go to End_Of_Program.
7378 2022-01-28  Eric Botcazou  <ebotcazou@adacore.com>
7380         PR ada/104258
7381         * exp_ch4.adb (Narrow_Large_Operation): Also copy the entity, if
7382         any, when rewriting the operator node.
7384 2022-01-19  H.J. Lu  <hjl.tools@gmail.com>
7386         PR ada/103538
7387         * gcc-interface/Makefile.in (target_cpu): Set to x32 for
7388         x86_64-linux-gnux32.
7390 2022-01-19  H.J. Lu  <hjl.tools@gmail.com>
7392         PR ada/103538
7393         * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Add
7394         $(TRASYM_DWARF_UNIX_PAIRS),
7395         s-tsmona.adb<libgnat/s-tsmona__linux.adb,
7396         $(GNATRTL_128BIT_PAIRS).
7397         (EXTRA_GNATRTL_NONTASKING_OBJS): Add $(TRASYM_DWARF_UNIX_OBJS)
7398         and $(GNATRTL_128BIT_OBJS).
7400 2022-01-18  Martin Liska  <mliska@suse.cz>
7402         * adaint.c: Revert filename changes in comments.
7403         * ctrl_c.c (dummy_handler): Likewise.
7404         * gsocket.h: Likewise.
7405         * init.c (__gnat_error_handler): Likewise.
7406         * libgnarl/s-intman.ads: Likewise.
7407         * libgnarl/s-osinte__android.ads: Likewise.
7408         * libgnarl/s-osinte__darwin.ads: Likewise.
7409         * libgnarl/s-osinte__hpux.ads: Likewise.
7410         * libgnarl/s-osinte__linux.ads: Likewise.
7411         * libgnarl/s-osinte__qnx.ads: Likewise.
7412         * libgnarl/s-taskin.ads: Likewise.
7413         * rtfinal.c: Likewise.
7415 2022-01-18  Martin Liska  <mliska@suse.cz>
7417         * Make-generated.in: Revert renaming changes.
7418         * Makefile.rtl: Likewise.
7419         * adadecode.cc: Moved to...
7420         * adadecode.c: ...here.
7421         * affinity.cc: Moved to...
7422         * affinity.c: ...here.
7423         * argv-lynxos178-raven-cert.cc: Moved to...
7424         * argv-lynxos178-raven-cert.c: ...here.
7425         * argv.cc: Moved to...
7426         * argv.c: ...here.
7427         * aux-io.cc: Moved to...
7428         * aux-io.c: ...here.
7429         * cio.cc: Moved to...
7430         * cio.c: ...here.
7431         * cstreams.cc: Moved to...
7432         * cstreams.c: ...here.
7433         * env.cc: Moved to...
7434         * env.c: ...here.
7435         * exit.cc: Moved to...
7436         * exit.c: ...here.
7437         * expect.cc: Moved to...
7438         * expect.c: ...here.
7439         * final.cc: Moved to...
7440         * final.c: ...here.
7441         * gcc-interface/Makefile.in:
7442         * init.cc: Moved to...
7443         * init.c: ...here.
7444         * initialize.cc: Moved to...
7445         * initialize.c: ...here.
7446         * libgnarl/thread.cc: Moved to...
7447         * libgnarl/thread.c: ...here.
7448         * link.cc: Moved to...
7449         * link.c: ...here.
7450         * locales.cc: Moved to...
7451         * locales.c: ...here.
7452         * mkdir.cc: Moved to...
7453         * mkdir.c: ...here.
7454         * raise.cc: Moved to...
7455         * raise.c: ...here.
7456         * rtfinal.cc: Moved to...
7457         * rtfinal.c: ...here.
7458         * rtinit.cc: Moved to...
7459         * rtinit.c: ...here.
7460         * s-oscons-tmplt.c (CND): Revert renaming changes.
7461         * seh_init.cc: Moved to...
7462         * seh_init.c: ...here.
7463         * sigtramp-armdroid.cc: Moved to...
7464         * sigtramp-armdroid.c: ...here.
7465         * sigtramp-ios.cc: Moved to...
7466         * sigtramp-ios.c: ...here.
7467         * sigtramp-qnx.cc: Moved to...
7468         * sigtramp-qnx.c: ...here.
7469         * sigtramp-vxworks.cc: Moved to...
7470         * sigtramp-vxworks.c: ...here.
7471         * socket.cc: Moved to...
7472         * socket.c: ...here.
7473         * tracebak.cc: Moved to...
7474         * tracebak.c: ...here.
7475         * version.cc: Moved to...
7476         * version.c: ...here.
7477         * vx_stack_info.cc: Moved to...
7478         * vx_stack_info.c: ...here.
7480 2022-01-17  Martin Liska  <mliska@suse.cz>
7482         * Makefile.rtl: Rename .c names to .cc.
7483         * gcc-interface/Make-lang.in: Likewise.
7484         * gcc-interface/Makefile.in: Likewise.
7486 2022-01-17  Martin Liska  <mliska@suse.cz>
7488         * Make-generated.in: Rename .c names to .cc.
7489         * adaint.c: Likewise.
7490         * ctrl_c.c (dummy_handler): Likewise.
7491         * gcc-interface/Makefile.in: Likewise.
7492         * gcc-interface/config-lang.in: Likewise.
7493         * gcc-interface/decl.cc (concat_name): Likewise.
7494         (init_gnat_decl): Likewise.
7495         * gcc-interface/gigi.h (concat_name): Likewise.
7496         (init_gnat_utils): Likewise.
7497         (build_call_raise_range): Likewise.
7498         (gnat_mark_addressable): Likewise.
7499         (gnat_protect_expr): Likewise.
7500         (gnat_rewrite_reference): Likewise.
7501         * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Likewise.
7502         * gcc-interface/utils.cc (GTY): Likewise.
7503         (add_deferred_type_context): Likewise.
7504         (init_gnat_utils): Likewise.
7505         * gcc-interface/utils2.cc (gnat_stable_expr_p): Likewise.
7506         (gnat_protect_expr): Likewise.
7507         (gnat_stabilize_reference_1): Likewise.
7508         (gnat_rewrite_reference): Likewise.
7509         * gsocket.h: Likewise.
7510         * init.cc (__gnat_error_handler): Likewise.
7511         * libgnarl/s-intman.ads: Likewise.
7512         * libgnarl/s-osinte__android.ads: Likewise.
7513         * libgnarl/s-osinte__darwin.ads: Likewise.
7514         * libgnarl/s-osinte__hpux.ads: Likewise.
7515         * libgnarl/s-osinte__linux.ads: Likewise.
7516         * libgnarl/s-osinte__qnx.ads: Likewise.
7517         * libgnarl/s-taskin.ads: Likewise.
7518         * rtfinal.cc: Likewise.
7519         * s-oscons-tmplt.c (CND): Likewise.
7520         * set_targ.ads: Likewise.
7522 2022-01-17  Martin Liska  <mliska@suse.cz>
7524         * adadecode.c: Moved to...
7525         * adadecode.cc: ...here.
7526         * affinity.c: Moved to...
7527         * affinity.cc: ...here.
7528         * argv-lynxos178-raven-cert.c: Moved to...
7529         * argv-lynxos178-raven-cert.cc: ...here.
7530         * argv.c: Moved to...
7531         * argv.cc: ...here.
7532         * aux-io.c: Moved to...
7533         * aux-io.cc: ...here.
7534         * cio.c: Moved to...
7535         * cio.cc: ...here.
7536         * cstreams.c: Moved to...
7537         * cstreams.cc: ...here.
7538         * env.c: Moved to...
7539         * env.cc: ...here.
7540         * exit.c: Moved to...
7541         * exit.cc: ...here.
7542         * expect.c: Moved to...
7543         * expect.cc: ...here.
7544         * final.c: Moved to...
7545         * final.cc: ...here.
7546         * gcc-interface/cuintp.c: Moved to...
7547         * gcc-interface/cuintp.cc: ...here.
7548         * gcc-interface/decl.c: Moved to...
7549         * gcc-interface/decl.cc: ...here.
7550         * gcc-interface/misc.c: Moved to...
7551         * gcc-interface/misc.cc: ...here.
7552         * gcc-interface/targtyps.c: Moved to...
7553         * gcc-interface/targtyps.cc: ...here.
7554         * gcc-interface/trans.c: Moved to...
7555         * gcc-interface/trans.cc: ...here.
7556         * gcc-interface/utils.c: Moved to...
7557         * gcc-interface/utils.cc: ...here.
7558         * gcc-interface/utils2.c: Moved to...
7559         * gcc-interface/utils2.cc: ...here.
7560         * init.c: Moved to...
7561         * init.cc: ...here.
7562         * initialize.c: Moved to...
7563         * initialize.cc: ...here.
7564         * libgnarl/thread.c: Moved to...
7565         * libgnarl/thread.cc: ...here.
7566         * link.c: Moved to...
7567         * link.cc: ...here.
7568         * locales.c: Moved to...
7569         * locales.cc: ...here.
7570         * mkdir.c: Moved to...
7571         * mkdir.cc: ...here.
7572         * raise.c: Moved to...
7573         * raise.cc: ...here.
7574         * rtfinal.c: Moved to...
7575         * rtfinal.cc: ...here.
7576         * rtinit.c: Moved to...
7577         * rtinit.cc: ...here.
7578         * seh_init.c: Moved to...
7579         * seh_init.cc: ...here.
7580         * sigtramp-armdroid.c: Moved to...
7581         * sigtramp-armdroid.cc: ...here.
7582         * sigtramp-ios.c: Moved to...
7583         * sigtramp-ios.cc: ...here.
7584         * sigtramp-qnx.c: Moved to...
7585         * sigtramp-qnx.cc: ...here.
7586         * sigtramp-vxworks.c: Moved to...
7587         * sigtramp-vxworks.cc: ...here.
7588         * socket.c: Moved to...
7589         * socket.cc: ...here.
7590         * tracebak.c: Moved to...
7591         * tracebak.cc: ...here.
7592         * version.c: Moved to...
7593         * version.cc: ...here.
7594         * vx_stack_info.c: Moved to...
7595         * vx_stack_info.cc: ...here.
7597 2022-01-14  Andrew Pinski  <apinski@marvell.com>
7599         PR ada/104027
7600         * gnat1drv.adb (Gnat1drv): After Back_End.Gen_Or_Update_Object_File
7601         goto End_Of_Program.
7603 2022-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7605         * gcc-interface/utils2.c (build_binary_op) <EQ_EXPR>: Relax a
7606         little the assertion on designated types of pointer types.
7608 2022-01-11  Justin Squirek  <squirek@adacore.com>
7610         * sem_ch8.adb (Nvis_Messages): Add generic instance name to
7611         error message.
7613 2022-01-11  Etienne Servais  <servais@adacore.com>
7615         * par-ch6.adb (Scan_Body_Or_Expression_Function): Accept left
7616         bracket as token to open an expression function.
7618 2022-01-11  Justin Squirek  <squirek@adacore.com>
7620         * sem_warn.adb (Check_References): Add call to Has_Task instead
7621         of checking component type.
7623 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7625         * exp_util.ads (Insert_Declaration): Remove spec.
7626         * exp_util.adb (Insert_Declaration): Remove body.
7628 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7630         * exp_ch4.adb (Expand_N_Expression_With_Actions): Avoid
7631         redundant check.
7632         * exp_ch5.adb (Expand_N_If_Statement): Likewise.
7633         * exp_ch7.adb (Process_Declarations): Likewise.
7634         * sem_elab.adb (Freeze_Node_Location): Likewise.
7635         * exp_util.adb (Insert_Actions): Likewise.
7636         (Is_OK_PF_Pragma): Likewise.
7637         (Requires_Cleanup_Actions): Remove early exit; ordinary
7638         processing path will similarly do nothing.
7640 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7642         * snames.ads-tmpl: Restore Name_Rpc.
7644 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7646         * sem_ch4.adb (Analyze_Allocator): Move DECLARE block inside IF
7647         statement; refill code and comments.
7649 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7651         * sem_ch4.adb (Analyze_Allocator): Fix comment.
7652         * sem_eval.ads (Compile-Time Known Values): Likewise.
7654 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7656         * snames.ads-tmpl: Remove unreferenced names.
7658 2022-01-11  Yannick Moy  <moy@adacore.com>
7660         * libgnat/s-aridou.adb (Double_Divide): Adjust proof of lemma
7661         Prove_Signs, call lemma for commutation of Big and
7662         multiplication.
7663         (Multiply_With_Ovflo_Check): Adjust postcondition of
7664         Prove_Pos_Int.
7665         (Scaled_Divide): Explicit commutation in the proof of lemma
7666         Prove_Multiplication, add new lemma Prove_Shift_Progress for
7667         congruence property that is not proved in a larger context, add
7668         assertions at the end of the loop to state loop invariant
7669         properties.
7671 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7673         * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Remove spec.
7674         * sem_eval.adb (Compile_Time_Known_Value_Or_Aggr): Remove body.
7676 2022-01-11  Yannick Moy  <moy@adacore.com>
7678         * libgnat/a-strfix.adb (Insert, Overwrite): Add assertions.
7680 2022-01-11  Arnaud Charlet  <charlet@adacore.com>
7682         PR ada/79724
7683         * osint.adb (Program_Name): Fix handling of suffixes.
7685 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7687         * exp_ch4.adb (Size_In_Storage_Elements): Remove unnecessary
7688         DECLARE block; refill code and comments.
7690 2022-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7692         * sem_ch3.adb (Analyze_Subtype_Declaration): In the case of an array
7693         copy Packed_Array_Impl_Type manually here.
7694         (Copy_Array_Subtype_Attributes): Do not copy it here.
7696 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7698         * exp_ch7.adb (Set_Block_Elab_Proc, Unnest_Block, Unnest_Loop,
7699         Unnest_Statement_List): Simplify with Make_Temporary.
7700         * exp_put_image.adb (Build_Image_Call): Likewise.
7701         * inline.adb (Generate_Subprogram_Body): Likewise.
7702         * sem_ch13.adb (Build_Predicate_Functions): Likewise.
7703         * sem_util.adb (New_Copy_Separate_List): Likewise.
7705 2022-01-11  Etienne Servais  <servais@adacore.com>
7707         * sem_ch3.adb (Check_Dynamic_Object): Swap check order.
7709 2022-01-11  Yannick Moy  <moy@adacore.com>
7711         * libgnat/s-casuti.adb: Add ghost code.
7712         * libgnat/s-casuti.ads: Add contracts.
7714 2022-01-11  Claire Dross  <dross@adacore.com>
7716         * libgnat/a-tiinau.ads: Use a procedure for the Scan parameter
7717         instead of a function with side-effects.
7718         * libgnat/a-tiinau.adb: Idem.
7719         * libgnat/a-wtinau.ads: Idem.
7720         * libgnat/a-wtinau.adb: Idem.
7721         * libgnat/a-ztinau.ads: Idem.
7722         * libgnat/a-ztinau.adb: Idem.
7723         * libgnat/s-valint.ads: Change the function with side-effects
7724         Scan_Integer into a procedure
7725         * libgnat/s-vallli.ads: Idem.
7726         * libgnat/s-valllli.ads: Idem.
7727         * libgnat/s-vallllu.ads: Add SPARK_Mode and pragma to ignore
7728         assertions in instance.
7729         * libgnat/s-valllu.ads: Idem.
7730         * libgnat/s-valuns.ads: Idem.
7731         * libgnat/s-valuei.ads: Use a procedure for the
7732         Scan_Raw_Unsigned parameter instead of a function with
7733         side-effects and change the function with side-effects
7734         Scan_Integer into a procedure.
7735         * libgnat/s-valuei.adb: Idem.
7736         * libgnat/s-valuti.ads: Introduce a ghost function that scans an
7737         exponent and complete the postcondition of Scan_Exponent to also
7738         describe the value of Ptr after the call. Fix the postcondition
7739         of Scan_Underscore. Simplify the definition of
7740         Scan_Natural_Ghost.
7741         * libgnat/s-valuti.adb: Idem.
7742         * libgnat/s-valboo.ads, libgnat/s-valboo.adb: Update calls to
7743         First_Non_Space_Ghost.
7744         * libgnat/s-valueu.ads: Add functional contracts.
7745         * libgnat/s-valueu.adb: Idem.
7747 2022-01-11  Yannick Moy  <moy@adacore.com>
7749         * libgnat/s-expmod.adb (Exp_Modular): Add assertions.
7751 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7753         * errout.adb (Error_Msg_CRT): Build message with string
7754         concatenation; it is slightly repetitive but much easier to
7755         read.
7757 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7759         * exp_ch11.adb (Expand_N_Exception_Declaration): Remove explicit
7760         initialization of the exceptF object.
7762 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7764         * par-ch3.adb (P_Array_Type_Definition): Use
7765         Error_Msg_GNAT_Extension.
7767 2022-01-11  Gary Dismukes  <dismukes@adacore.com>
7769         * sem_disp.adb (Check_Controlling_Type): Add test for the case
7770         where Subp is a subprogram associated with a protected
7771         subprogram and return Empty, unless Tagged_Type is the
7772         corresponding record type of the protected type.
7774 2022-01-11  Yannick Moy  <moy@adacore.com>
7776         * libgnat/s-veboop.adb: Add ghost code for proof.
7777         * libgnat/s-veboop.ads: Add specification.
7779 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7781         * exp_aggr.adb, exp_attr.adb, exp_ch3.adb, exp_ch7.adb,
7782         exp_dist.adb, exp_util.adb, freeze.adb, frontend.adb,
7783         inline.adb, itypes.adb, lib-load.adb, lib-xref.adb,
7784         libgnat/a-cfhase.adb, libgnat/a-cforse.adb,
7785         libgnat/a-chtgbo.adb, libgnat/a-crdlli.adb,
7786         libgnat/a-except.adb, libgnat/a-strfix.adb,
7787         libgnat/a-textio.adb, libgnat/a-tienau.adb,
7788         libgnat/a-tigeau.adb, libgnat/a-witeio.adb,
7789         libgnat/a-wtenau.adb, libgnat/a-wtgeau.adb,
7790         libgnat/a-ztenau.adb, libgnat/a-ztexio.adb,
7791         libgnat/a-ztgeau.adb, libgnat/g-comlin.adb,
7792         libgnat/g-debpoo.adb, libgnat/g-expect.adb,
7793         libgnat/s-fileio.adb, libgnat/s-memory.adb, libgnat/s-mmap.adb,
7794         libgnat/s-objrea.adb, libgnat/s-pehage.adb,
7795         libgnat/s-regpat.adb, libgnat/s-shasto.adb,
7796         libgnat/s-valued.adb, libgnat/s-valuef.adb, par-ch11.adb,
7797         par-ch4.adb, par-ch6.adb, par-ch9.adb, par_sco.adb,
7798         repinfo-input.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb,
7799         sem_ch13.adb, sem_ch4.adb, sem_eval.adb, sem_prag.adb,
7800         sem_res.adb, sem_util.adb, sinput.adb, switch-c.adb: Fix style.
7802 2022-01-11  Arnaud Charlet  <charlet@adacore.com>
7804         * exp_ch9.adb, gen_il-types.ads, make.adb, par-ch12.adb,
7805         sem_ch13.adb: Use membership tests.
7807 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7809         * erroutc.ads, erroutc.adb (Is_Runtime_Raise): Global flag to
7810         connect status of initial messages and their continuation; we
7811         already have several flags like this.
7812         (Error_Msg_Object): Add field Warn_Runtime_Raise to connect
7813         error reporting (when problematic code is found) and removal
7814         (when problematic code is determined to be dead).
7815         * errout.adb (Error_Msg_Internal): Handle new field when
7816         recording a continuation message; propagate status from
7817         continuation to the preceding messages.
7818         (To_Be_Removed): For dead code remove both simple warnings and
7819         warnings about constraint errors that have been escalated to
7820         hard errors.
7821         (Set_Msg_Text): Recognize warnings about constraint errors that
7822         are escalated to hard errors.
7823         * errutil.adb (Error_Msg): Handle added field when recording a
7824         new message.
7826 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7828         * errout.adb (Error_Msg_Internal): Propagate warnings-as-error
7829         flag from continuation message to its preceding messages.
7831 2022-01-11  Arnaud Charlet  <charlet@adacore.com>
7833         * gnatvsn.ads (Current_Year): Update copyright notice, bump to
7834         2022.
7835         * ada_get_targ.adb: Update copyright notice.
7836         * adabkend.adb: Likewise.
7837         * adabkend.ads: Likewise.
7838         * adadecode.c: Likewise.
7839         * adadecode.h: Likewise.
7840         * adaint.c: Likewise.
7841         * adaint.h: Likewise.
7842         * affinity.c: Likewise.
7843         * ali-util.adb: Likewise.
7844         * ali-util.ads: Likewise.
7845         * ali.adb: Likewise.
7846         * ali.ads: Likewise.
7847         * alloc.ads: Likewise.
7848         * argv-lynxos178-raven-cert.c: Likewise.
7849         * argv.c: Likewise.
7850         * aspects.adb: Likewise.
7851         * aspects.ads: Likewise.
7852         * atree.adb: Likewise.
7853         * atree.ads: Likewise.
7854         * atree.h: Likewise.
7855         * aux-io.c: Likewise.
7856         * back_end.adb: Likewise.
7857         * back_end.ads: Likewise.
7858         * backend_utils.adb: Likewise.
7859         * backend_utils.ads: Likewise.
7860         * bcheck.adb: Likewise.
7861         * bcheck.ads: Likewise.
7862         * binde.adb: Likewise.
7863         * binde.ads: Likewise.
7864         * binderr.adb: Likewise.
7865         * binderr.ads: Likewise.
7866         * bindgen.adb: Likewise.
7867         * bindgen.ads: Likewise.
7868         * bindo-augmentors.adb: Likewise.
7869         * bindo-augmentors.ads: Likewise.
7870         * bindo-builders.adb: Likewise.
7871         * bindo-builders.ads: Likewise.
7872         * bindo-diagnostics.adb: Likewise.
7873         * bindo-diagnostics.ads: Likewise.
7874         * bindo-elaborators.adb: Likewise.
7875         * bindo-elaborators.ads: Likewise.
7876         * bindo-graphs.adb: Likewise.
7877         * bindo-graphs.ads: Likewise.
7878         * bindo-units.adb: Likewise.
7879         * bindo-units.ads: Likewise.
7880         * bindo-validators.adb: Likewise.
7881         * bindo-validators.ads: Likewise.
7882         * bindo-writers.adb: Likewise.
7883         * bindo-writers.ads: Likewise.
7884         * bindo.adb: Likewise.
7885         * bindo.ads: Likewise.
7886         * bindusg.adb: Likewise.
7887         * bindusg.ads: Likewise.
7888         * butil.adb: Likewise.
7889         * butil.ads: Likewise.
7890         * cal.c: Likewise.
7891         * casing.adb: Likewise.
7892         * casing.ads: Likewise.
7893         * checks.adb: Likewise.
7894         * checks.ads: Likewise.
7895         * cio.c: Likewise.
7896         * clean.adb: Likewise.
7897         * clean.ads: Likewise.
7898         * comperr.adb: Likewise.
7899         * comperr.ads: Likewise.
7900         * contracts.adb: Likewise.
7901         * contracts.ads: Likewise.
7902         * csets.adb: Likewise.
7903         * csets.ads: Likewise.
7904         * cstand.adb: Likewise.
7905         * cstand.ads: Likewise.
7906         * cstreams.c: Likewise.
7907         * ctrl_c.c: Likewise.
7908         * debug.ads: Likewise.
7909         * debug_a.adb: Likewise.
7910         * debug_a.ads: Likewise.
7911         * einfo-utils.adb: Likewise.
7912         * einfo-utils.ads: Likewise.
7913         * einfo.adb: Likewise.
7914         * einfo.ads: Likewise.
7915         * elists.adb: Likewise.
7916         * elists.ads: Likewise.
7917         * elists.h: Likewise.
7918         * env.c: Likewise.
7919         * env.h: Likewise.
7920         * err_vars.ads: Likewise.
7921         * errno.c: Likewise.
7922         * errout.adb: Likewise.
7923         * errout.ads: Likewise.
7924         * erroutc.adb: Likewise.
7925         * erroutc.ads: Likewise.
7926         * errutil.adb: Likewise.
7927         * errutil.ads: Likewise.
7928         * eval_fat.adb: Likewise.
7929         * eval_fat.ads: Likewise.
7930         * exit.c: Likewise.
7931         * exp_aggr.adb: Likewise.
7932         * exp_aggr.ads: Likewise.
7933         * exp_atag.adb: Likewise.
7934         * exp_atag.ads: Likewise.
7935         * exp_attr.adb: Likewise.
7936         * exp_attr.ads: Likewise.
7937         * exp_cg.adb: Likewise.
7938         * exp_cg.ads: Likewise.
7939         * exp_ch10.ads: Likewise.
7940         * exp_ch11.adb: Likewise.
7941         * exp_ch11.ads: Likewise.
7942         * exp_ch12.adb: Likewise.
7943         * exp_ch12.ads: Likewise.
7944         * exp_ch13.adb: Likewise.
7945         * exp_ch13.ads: Likewise.
7946         * exp_ch2.adb: Likewise.
7947         * exp_ch2.ads: Likewise.
7948         * exp_ch3.adb: Likewise.
7949         * exp_ch3.ads: Likewise.
7950         * exp_ch4.adb: Likewise.
7951         * exp_ch4.ads: Likewise.
7952         * exp_ch5.adb: Likewise.
7953         * exp_ch5.ads: Likewise.
7954         * exp_ch6.adb: Likewise.
7955         * exp_ch6.ads: Likewise.
7956         * exp_ch7.adb: Likewise.
7957         * exp_ch7.ads: Likewise.
7958         * exp_ch8.adb: Likewise.
7959         * exp_ch8.ads: Likewise.
7960         * exp_ch9.adb: Likewise.
7961         * exp_ch9.ads: Likewise.
7962         * exp_code.adb: Likewise.
7963         * exp_code.ads: Likewise.
7964         * exp_dbug.adb: Likewise.
7965         * exp_dbug.ads: Likewise.
7966         * exp_disp.adb: Likewise.
7967         * exp_disp.ads: Likewise.
7968         * exp_dist.adb: Likewise.
7969         * exp_dist.ads: Likewise.
7970         * exp_fixd.adb: Likewise.
7971         * exp_fixd.ads: Likewise.
7972         * exp_imgv.adb: Likewise.
7973         * exp_imgv.ads: Likewise.
7974         * exp_intr.adb: Likewise.
7975         * exp_intr.ads: Likewise.
7976         * exp_pakd.adb: Likewise.
7977         * exp_pakd.ads: Likewise.
7978         * exp_prag.adb: Likewise.
7979         * exp_prag.ads: Likewise.
7980         * exp_put_image.adb: Likewise.
7981         * exp_put_image.ads: Likewise.
7982         * exp_sel.adb: Likewise.
7983         * exp_sel.ads: Likewise.
7984         * exp_smem.adb: Likewise.
7985         * exp_smem.ads: Likewise.
7986         * exp_spark.adb: Likewise.
7987         * exp_spark.ads: Likewise.
7988         * exp_strm.adb: Likewise.
7989         * exp_strm.ads: Likewise.
7990         * exp_tss.adb: Likewise.
7991         * exp_tss.ads: Likewise.
7992         * exp_unst.adb: Likewise.
7993         * exp_unst.ads: Likewise.
7994         * exp_util.adb: Likewise.
7995         * exp_util.ads: Likewise.
7996         * expander.adb: Likewise.
7997         * expander.ads: Likewise.
7998         * expect.c: Likewise.
7999         * fe.h: Likewise.
8000         * final.c: Likewise.
8001         * fmap.adb: Likewise.
8002         * fmap.ads: Likewise.
8003         * fname-sf.adb: Likewise.
8004         * fname-sf.ads: Likewise.
8005         * fname-uf.adb: Likewise.
8006         * fname-uf.ads: Likewise.
8007         * fname.adb: Likewise.
8008         * fname.ads: Likewise.
8009         * freeze.adb: Likewise.
8010         * freeze.ads: Likewise.
8011         * frontend.adb: Likewise.
8012         * frontend.ads: Likewise.
8013         * gen_il-fields.ads: Likewise.
8014         * gen_il-gen-gen_entities.adb: Likewise.
8015         * gen_il-gen-gen_nodes.adb: Likewise.
8016         * gen_il-gen.adb: Likewise.
8017         * gen_il-gen.ads: Likewise.
8018         * gen_il-internals.adb: Likewise.
8019         * gen_il-internals.ads: Likewise.
8020         * gen_il-main.adb: Likewise.
8021         * gen_il-types.ads: Likewise.
8022         * gen_il.adb: Likewise.
8023         * gen_il.ads: Likewise.
8024         * get_scos.adb: Likewise.
8025         * get_scos.ads: Likewise.
8026         * get_targ.adb: Likewise.
8027         * get_targ.ads: Likewise.
8028         * ghost.adb: Likewise.
8029         * ghost.ads: Likewise.
8030         * gnat1drv.adb: Likewise.
8031         * gnat1drv.ads: Likewise.
8032         * gnat_cuda.adb: Likewise.
8033         * gnat_cuda.ads: Likewise.
8034         * gnatbind.adb: Likewise.
8035         * gnatbind.ads: Likewise.
8036         * gnatchop.adb: Likewise.
8037         * gnatclean.adb: Likewise.
8038         * gnatcmd.adb: Likewise.
8039         * gnatcmd.ads: Likewise.
8040         * gnatdll.adb: Likewise.
8041         * gnatfind.adb: Likewise.
8042         * gnatkr.adb: Likewise.
8043         * gnatkr.ads: Likewise.
8044         * gnatlink.adb: Likewise.
8045         * gnatlink.ads: Likewise.
8046         * gnatls.adb: Likewise.
8047         * gnatls.ads: Likewise.
8048         * gnatmake.adb: Likewise.
8049         * gnatmake.ads: Likewise.
8050         * gnatname.adb: Likewise.
8051         * gnatname.ads: Likewise.
8052         * gnatprep.adb: Likewise.
8053         * gnatprep.ads: Likewise.
8054         * gnatvsn.adb: Likewise.
8055         * gnatxref.adb: Likewise.
8056         * gprep.adb: Likewise.
8057         * gprep.ads: Likewise.
8058         * gsocket.h: Likewise.
8059         * hostparm.ads: Likewise.
8060         * impunit.adb: Likewise.
8061         * impunit.ads: Likewise.
8062         * indepsw-aix.adb: Likewise.
8063         * indepsw-darwin.adb: Likewise.
8064         * indepsw-gnu.adb: Likewise.
8065         * indepsw.adb: Likewise.
8066         * indepsw.ads: Likewise.
8067         * init.c: Likewise.
8068         * initialize.c: Likewise.
8069         * inline.adb: Likewise.
8070         * inline.ads: Likewise.
8071         * itypes.adb: Likewise.
8072         * itypes.ads: Likewise.
8073         * krunch.adb: Likewise.
8074         * krunch.ads: Likewise.
8075         * layout.adb: Likewise.
8076         * layout.ads: Likewise.
8077         * lib-list.adb: Likewise.
8078         * lib-load.adb: Likewise.
8079         * lib-load.ads: Likewise.
8080         * lib-sort.adb: Likewise.
8081         * lib-util.adb: Likewise.
8082         * lib-util.ads: Likewise.
8083         * lib-writ.adb: Likewise.
8084         * lib-writ.ads: Likewise.
8085         * lib-xref-spark_specific.adb: Likewise.
8086         * lib-xref.adb: Likewise.
8087         * lib-xref.ads: Likewise.
8088         * lib.adb: Likewise.
8089         * lib.ads: Likewise.
8090         * libgnarl/a-astaco.adb: Likewise.
8091         * libgnarl/a-dispat.adb: Likewise.
8092         * libgnarl/a-dynpri.adb: Likewise.
8093         * libgnarl/a-etgrbu.ads: Likewise.
8094         * libgnarl/a-exetim__darwin.adb: Likewise.
8095         * libgnarl/a-exetim__default.ads: Likewise.
8096         * libgnarl/a-exetim__mingw.adb: Likewise.
8097         * libgnarl/a-exetim__mingw.ads: Likewise.
8098         * libgnarl/a-exetim__posix.adb: Likewise.
8099         * libgnarl/a-interr.adb: Likewise.
8100         * libgnarl/a-interr.ads: Likewise.
8101         * libgnarl/a-intnam.ads: Likewise.
8102         * libgnarl/a-intnam__aix.ads: Likewise.
8103         * libgnarl/a-intnam__darwin.ads: Likewise.
8104         * libgnarl/a-intnam__dragonfly.ads: Likewise.
8105         * libgnarl/a-intnam__dummy.ads: Likewise.
8106         * libgnarl/a-intnam__freebsd.ads: Likewise.
8107         * libgnarl/a-intnam__hpux.ads: Likewise.
8108         * libgnarl/a-intnam__linux.ads: Likewise.
8109         * libgnarl/a-intnam__lynxos.ads: Likewise.
8110         * libgnarl/a-intnam__mingw.ads: Likewise.
8111         * libgnarl/a-intnam__qnx.ads: Likewise.
8112         * libgnarl/a-intnam__rtems.ads: Likewise.
8113         * libgnarl/a-intnam__solaris.ads: Likewise.
8114         * libgnarl/a-intnam__vxworks.ads: Likewise.
8115         * libgnarl/a-reatim.adb: Likewise.
8116         * libgnarl/a-reatim.ads: Likewise.
8117         * libgnarl/a-retide.adb: Likewise.
8118         * libgnarl/a-retide.ads: Likewise.
8119         * libgnarl/a-rttiev.adb: Likewise.
8120         * libgnarl/a-rttiev.ads: Likewise.
8121         * libgnarl/a-synbar.adb: Likewise.
8122         * libgnarl/a-synbar.ads: Likewise.
8123         * libgnarl/a-synbar__posix.adb: Likewise.
8124         * libgnarl/a-synbar__posix.ads: Likewise.
8125         * libgnarl/a-sytaco.adb: Likewise.
8126         * libgnarl/a-sytaco.ads: Likewise.
8127         * libgnarl/a-tasatt.adb: Likewise.
8128         * libgnarl/a-tasatt.ads: Likewise.
8129         * libgnarl/a-taside.adb: Likewise.
8130         * libgnarl/a-taside.ads: Likewise.
8131         * libgnarl/a-tasini.adb: Likewise.
8132         * libgnarl/a-tasini.ads: Likewise.
8133         * libgnarl/a-taster.adb: Likewise.
8134         * libgnarl/g-boubuf.adb: Likewise.
8135         * libgnarl/g-boubuf.ads: Likewise.
8136         * libgnarl/g-boumai.ads: Likewise.
8137         * libgnarl/g-semaph.adb: Likewise.
8138         * libgnarl/g-semaph.ads: Likewise.
8139         * libgnarl/g-signal.adb: Likewise.
8140         * libgnarl/g-signal.ads: Likewise.
8141         * libgnarl/g-tastus.ads: Likewise.
8142         * libgnarl/g-thread.adb: Likewise.
8143         * libgnarl/g-thread.ads: Likewise.
8144         * libgnarl/i-vxinco.adb: Likewise.
8145         * libgnarl/i-vxinco.ads: Likewise.
8146         * libgnarl/s-inmaop.ads: Likewise.
8147         * libgnarl/s-inmaop__dummy.adb: Likewise.
8148         * libgnarl/s-inmaop__hwint.adb: Likewise.
8149         * libgnarl/s-inmaop__posix.adb: Likewise.
8150         * libgnarl/s-interr.adb: Likewise.
8151         * libgnarl/s-interr.ads: Likewise.
8152         * libgnarl/s-interr__dummy.adb: Likewise.
8153         * libgnarl/s-interr__hwint.adb: Likewise.
8154         * libgnarl/s-interr__sigaction.adb: Likewise.
8155         * libgnarl/s-interr__vxworks.adb: Likewise.
8156         * libgnarl/s-intman.ads: Likewise.
8157         * libgnarl/s-intman__android.adb: Likewise.
8158         * libgnarl/s-intman__dummy.adb: Likewise.
8159         * libgnarl/s-intman__lynxos.adb: Likewise.
8160         * libgnarl/s-intman__mingw.adb: Likewise.
8161         * libgnarl/s-intman__posix.adb: Likewise.
8162         * libgnarl/s-intman__qnx.adb: Likewise.
8163         * libgnarl/s-intman__rtems.adb: Likewise.
8164         * libgnarl/s-intman__rtems.ads: Likewise.
8165         * libgnarl/s-intman__solaris.adb: Likewise.
8166         * libgnarl/s-intman__susv3.adb: Likewise.
8167         * libgnarl/s-intman__vxworks.adb: Likewise.
8168         * libgnarl/s-intman__vxworks.ads: Likewise.
8169         * libgnarl/s-linux.ads: Likewise.
8170         * libgnarl/s-linux__alpha.ads: Likewise.
8171         * libgnarl/s-linux__android.ads: Likewise.
8172         * libgnarl/s-linux__hppa.ads: Likewise.
8173         * libgnarl/s-linux__mips.ads: Likewise.
8174         * libgnarl/s-linux__riscv.ads: Likewise.
8175         * libgnarl/s-linux__sparc.ads: Likewise.
8176         * libgnarl/s-linux__x32.ads: Likewise.
8177         * libgnarl/s-mudido.adb: Likewise.
8178         * libgnarl/s-mudido__affinity.adb: Likewise.
8179         * libgnarl/s-osinte__aix.adb: Likewise.
8180         * libgnarl/s-osinte__aix.ads: Likewise.
8181         * libgnarl/s-osinte__android.adb: Likewise.
8182         * libgnarl/s-osinte__android.ads: Likewise.
8183         * libgnarl/s-osinte__darwin.adb: Likewise.
8184         * libgnarl/s-osinte__darwin.ads: Likewise.
8185         * libgnarl/s-osinte__dragonfly.adb: Likewise.
8186         * libgnarl/s-osinte__dragonfly.ads: Likewise.
8187         * libgnarl/s-osinte__dummy.ads: Likewise.
8188         * libgnarl/s-osinte__freebsd.adb: Likewise.
8189         * libgnarl/s-osinte__freebsd.ads: Likewise.
8190         * libgnarl/s-osinte__gnu.adb: Likewise.
8191         * libgnarl/s-osinte__gnu.ads: Likewise.
8192         * libgnarl/s-osinte__hpux-dce.adb: Likewise.
8193         * libgnarl/s-osinte__hpux-dce.ads: Likewise.
8194         * libgnarl/s-osinte__hpux.ads: Likewise.
8195         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
8196         * libgnarl/s-osinte__linux.ads: Likewise.
8197         * libgnarl/s-osinte__lynxos178.adb: Likewise.
8198         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
8199         * libgnarl/s-osinte__mingw.ads: Likewise.
8200         * libgnarl/s-osinte__posix.adb: Likewise.
8201         * libgnarl/s-osinte__qnx.adb: Likewise.
8202         * libgnarl/s-osinte__qnx.ads: Likewise.
8203         * libgnarl/s-osinte__rtems.adb: Likewise.
8204         * libgnarl/s-osinte__rtems.ads: Likewise.
8205         * libgnarl/s-osinte__solaris.adb: Likewise.
8206         * libgnarl/s-osinte__solaris.ads: Likewise.
8207         * libgnarl/s-osinte__vxworks.adb: Likewise.
8208         * libgnarl/s-osinte__vxworks.ads: Likewise.
8209         * libgnarl/s-osinte__x32.adb: Likewise.
8210         * libgnarl/s-proinf.adb: Likewise.
8211         * libgnarl/s-proinf.ads: Likewise.
8212         * libgnarl/s-putaim.adb: Likewise.
8213         * libgnarl/s-putaim.ads: Likewise.
8214         * libgnarl/s-qnx.ads: Likewise.
8215         * libgnarl/s-solita.adb: Likewise.
8216         * libgnarl/s-solita.ads: Likewise.
8217         * libgnarl/s-stusta.adb: Likewise.
8218         * libgnarl/s-stusta.ads: Likewise.
8219         * libgnarl/s-taasde.adb: Likewise.
8220         * libgnarl/s-taasde.ads: Likewise.
8221         * libgnarl/s-tadeca.adb: Likewise.
8222         * libgnarl/s-tadeca.ads: Likewise.
8223         * libgnarl/s-tadert.adb: Likewise.
8224         * libgnarl/s-tadert.ads: Likewise.
8225         * libgnarl/s-taenca.adb: Likewise.
8226         * libgnarl/s-taenca.ads: Likewise.
8227         * libgnarl/s-taprob.adb: Likewise.
8228         * libgnarl/s-taprob.ads: Likewise.
8229         * libgnarl/s-taprop.ads: Likewise.
8230         * libgnarl/s-taprop__dummy.adb: Likewise.
8231         * libgnarl/s-taprop__hpux-dce.adb: Likewise.
8232         * libgnarl/s-taprop__linux.adb: Likewise.
8233         * libgnarl/s-taprop__mingw.adb: Likewise.
8234         * libgnarl/s-taprop__posix.adb: Likewise.
8235         * libgnarl/s-taprop__qnx.adb: Likewise.
8236         * libgnarl/s-taprop__rtems.adb: Likewise.
8237         * libgnarl/s-taprop__solaris.adb: Likewise.
8238         * libgnarl/s-taprop__vxworks.adb: Likewise.
8239         * libgnarl/s-tarest.adb: Likewise.
8240         * libgnarl/s-tarest.ads: Likewise.
8241         * libgnarl/s-tasdeb.adb: Likewise.
8242         * libgnarl/s-tasdeb.ads: Likewise.
8243         * libgnarl/s-tasinf.adb: Likewise.
8244         * libgnarl/s-tasinf.ads: Likewise.
8245         * libgnarl/s-tasinf__linux.adb: Likewise.
8246         * libgnarl/s-tasinf__linux.ads: Likewise.
8247         * libgnarl/s-tasinf__mingw.adb: Likewise.
8248         * libgnarl/s-tasinf__mingw.ads: Likewise.
8249         * libgnarl/s-tasinf__solaris.adb: Likewise.
8250         * libgnarl/s-tasinf__solaris.ads: Likewise.
8251         * libgnarl/s-tasinf__vxworks.ads: Likewise.
8252         * libgnarl/s-tasini.adb: Likewise.
8253         * libgnarl/s-tasini.ads: Likewise.
8254         * libgnarl/s-taskin.adb: Likewise.
8255         * libgnarl/s-taskin.ads: Likewise.
8256         * libgnarl/s-taspri__dummy.ads: Likewise.
8257         * libgnarl/s-taspri__hpux-dce.ads: Likewise.
8258         * libgnarl/s-taspri__lynxos.ads: Likewise.
8259         * libgnarl/s-taspri__mingw.ads: Likewise.
8260         * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
8261         * libgnarl/s-taspri__posix.ads: Likewise.
8262         * libgnarl/s-taspri__solaris.ads: Likewise.
8263         * libgnarl/s-taspri__vxworks.ads: Likewise.
8264         * libgnarl/s-tasque.adb: Likewise.
8265         * libgnarl/s-tasque.ads: Likewise.
8266         * libgnarl/s-tasren.adb: Likewise.
8267         * libgnarl/s-tasren.ads: Likewise.
8268         * libgnarl/s-tasres.ads: Likewise.
8269         * libgnarl/s-tassta.adb: Likewise.
8270         * libgnarl/s-tassta.ads: Likewise.
8271         * libgnarl/s-tasuti.adb: Likewise.
8272         * libgnarl/s-tasuti.ads: Likewise.
8273         * libgnarl/s-tataat.adb: Likewise.
8274         * libgnarl/s-tataat.ads: Likewise.
8275         * libgnarl/s-tpinop.adb: Likewise.
8276         * libgnarl/s-tpinop.ads: Likewise.
8277         * libgnarl/s-tpoaal.adb: Likewise.
8278         * libgnarl/s-tpoben.adb: Likewise.
8279         * libgnarl/s-tpoben.ads: Likewise.
8280         * libgnarl/s-tpobmu.adb: Likewise.
8281         * libgnarl/s-tpobmu.ads: Likewise.
8282         * libgnarl/s-tpobop.adb: Likewise.
8283         * libgnarl/s-tpobop.ads: Likewise.
8284         * libgnarl/s-tpopmo.adb: Likewise.
8285         * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
8286         * libgnarl/s-tpopsp__posix.adb: Likewise.
8287         * libgnarl/s-tpopsp__solaris.adb: Likewise.
8288         * libgnarl/s-tpopsp__tls.adb: Likewise.
8289         * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
8290         * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
8291         * libgnarl/s-tpopsp__vxworks.adb: Likewise.
8292         * libgnarl/s-tporft.adb: Likewise.
8293         * libgnarl/s-tposen.adb: Likewise.
8294         * libgnarl/s-tposen.ads: Likewise.
8295         * libgnarl/s-vxwext.adb: Likewise.
8296         * libgnarl/s-vxwext.ads: Likewise.
8297         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
8298         * libgnarl/s-vxwext__kernel.adb: Likewise.
8299         * libgnarl/s-vxwext__kernel.ads: Likewise.
8300         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
8301         * libgnarl/s-vxwext__rtp.adb: Likewise.
8302         * libgnarl/s-vxwext__rtp.ads: Likewise.
8303         * libgnarl/s-vxwork__aarch64.ads: Likewise.
8304         * libgnarl/s-vxwork__arm.ads: Likewise.
8305         * libgnarl/s-vxwork__ppc.ads: Likewise.
8306         * libgnarl/s-vxwork__x86.ads: Likewise.
8307         * libgnarl/thread.c: Likewise.
8308         * libgnat/a-assert.adb: Likewise.
8309         * libgnat/a-assert.ads: Likewise.
8310         * libgnat/a-btgbso.adb: Likewise.
8311         * libgnat/a-btgbso.ads: Likewise.
8312         * libgnat/a-calari.adb: Likewise.
8313         * libgnat/a-calari.ads: Likewise.
8314         * libgnat/a-calcon.adb: Likewise.
8315         * libgnat/a-calcon.ads: Likewise.
8316         * libgnat/a-caldel.adb: Likewise.
8317         * libgnat/a-caldel.ads: Likewise.
8318         * libgnat/a-calend.adb: Likewise.
8319         * libgnat/a-calend.ads: Likewise.
8320         * libgnat/a-calfor.adb: Likewise.
8321         * libgnat/a-calfor.ads: Likewise.
8322         * libgnat/a-catizo.adb: Likewise.
8323         * libgnat/a-cbdlli.adb: Likewise.
8324         * libgnat/a-cbdlli.ads: Likewise.
8325         * libgnat/a-cbhama.adb: Likewise.
8326         * libgnat/a-cbhama.ads: Likewise.
8327         * libgnat/a-cbhase.adb: Likewise.
8328         * libgnat/a-cbhase.ads: Likewise.
8329         * libgnat/a-cbmutr.adb: Likewise.
8330         * libgnat/a-cbmutr.ads: Likewise.
8331         * libgnat/a-cborma.adb: Likewise.
8332         * libgnat/a-cborma.ads: Likewise.
8333         * libgnat/a-cborse.adb: Likewise.
8334         * libgnat/a-cborse.ads: Likewise.
8335         * libgnat/a-cbprqu.adb: Likewise.
8336         * libgnat/a-cbprqu.ads: Likewise.
8337         * libgnat/a-cbsyqu.adb: Likewise.
8338         * libgnat/a-cbsyqu.ads: Likewise.
8339         * libgnat/a-cdlili.adb: Likewise.
8340         * libgnat/a-cdlili.ads: Likewise.
8341         * libgnat/a-cfdlli.adb: Likewise.
8342         * libgnat/a-cfdlli.ads: Likewise.
8343         * libgnat/a-cfhama.adb: Likewise.
8344         * libgnat/a-cfhama.ads: Likewise.
8345         * libgnat/a-cfhase.adb: Likewise.
8346         * libgnat/a-cfhase.ads: Likewise.
8347         * libgnat/a-cfinve.adb: Likewise.
8348         * libgnat/a-cfinve.ads: Likewise.
8349         * libgnat/a-cforma.adb: Likewise.
8350         * libgnat/a-cforma.ads: Likewise.
8351         * libgnat/a-cforse.adb: Likewise.
8352         * libgnat/a-cforse.ads: Likewise.
8353         * libgnat/a-cgaaso.adb: Likewise.
8354         * libgnat/a-cgaaso.ads: Likewise.
8355         * libgnat/a-cgarso.adb: Likewise.
8356         * libgnat/a-cgcaso.adb: Likewise.
8357         * libgnat/a-chacon.adb: Likewise.
8358         * libgnat/a-chacon.ads: Likewise.
8359         * libgnat/a-chahan.adb: Likewise.
8360         * libgnat/a-chahan.ads: Likewise.
8361         * libgnat/a-chlat9.ads: Likewise.
8362         * libgnat/a-chtgbk.adb: Likewise.
8363         * libgnat/a-chtgbk.ads: Likewise.
8364         * libgnat/a-chtgbo.adb: Likewise.
8365         * libgnat/a-chtgbo.ads: Likewise.
8366         * libgnat/a-chtgke.adb: Likewise.
8367         * libgnat/a-chtgke.ads: Likewise.
8368         * libgnat/a-chtgop.adb: Likewise.
8369         * libgnat/a-chtgop.ads: Likewise.
8370         * libgnat/a-chzla1.ads: Likewise.
8371         * libgnat/a-chzla9.ads: Likewise.
8372         * libgnat/a-cidlli.adb: Likewise.
8373         * libgnat/a-cidlli.ads: Likewise.
8374         * libgnat/a-cihama.adb: Likewise.
8375         * libgnat/a-cihama.ads: Likewise.
8376         * libgnat/a-cihase.adb: Likewise.
8377         * libgnat/a-cihase.ads: Likewise.
8378         * libgnat/a-cimutr.adb: Likewise.
8379         * libgnat/a-cimutr.ads: Likewise.
8380         * libgnat/a-ciorma.adb: Likewise.
8381         * libgnat/a-ciorma.ads: Likewise.
8382         * libgnat/a-ciormu.adb: Likewise.
8383         * libgnat/a-ciormu.ads: Likewise.
8384         * libgnat/a-ciorse.adb: Likewise.
8385         * libgnat/a-ciorse.ads: Likewise.
8386         * libgnat/a-clrefi.adb: Likewise.
8387         * libgnat/a-clrefi.ads: Likewise.
8388         * libgnat/a-coboho.adb: Likewise.
8389         * libgnat/a-coboho.ads: Likewise.
8390         * libgnat/a-cobove.adb: Likewise.
8391         * libgnat/a-cobove.ads: Likewise.
8392         * libgnat/a-cofove.adb: Likewise.
8393         * libgnat/a-cofove.ads: Likewise.
8394         * libgnat/a-cofuba.adb: Likewise.
8395         * libgnat/a-cofuba.ads: Likewise.
8396         * libgnat/a-cofuma.adb: Likewise.
8397         * libgnat/a-cofuma.ads: Likewise.
8398         * libgnat/a-cofuse.adb: Likewise.
8399         * libgnat/a-cofuse.ads: Likewise.
8400         * libgnat/a-cofuve.adb: Likewise.
8401         * libgnat/a-cofuve.ads: Likewise.
8402         * libgnat/a-cogeso.adb: Likewise.
8403         * libgnat/a-cogeso.ads: Likewise.
8404         * libgnat/a-cohama.adb: Likewise.
8405         * libgnat/a-cohama.ads: Likewise.
8406         * libgnat/a-cohase.adb: Likewise.
8407         * libgnat/a-cohase.ads: Likewise.
8408         * libgnat/a-cohata.ads: Likewise.
8409         * libgnat/a-coinho.adb: Likewise.
8410         * libgnat/a-coinho.ads: Likewise.
8411         * libgnat/a-coinho__shared.adb: Likewise.
8412         * libgnat/a-coinho__shared.ads: Likewise.
8413         * libgnat/a-coinve.adb: Likewise.
8414         * libgnat/a-coinve.ads: Likewise.
8415         * libgnat/a-colien.adb: Likewise.
8416         * libgnat/a-colien.ads: Likewise.
8417         * libgnat/a-colire.adb: Likewise.
8418         * libgnat/a-colire.ads: Likewise.
8419         * libgnat/a-comlin.adb: Likewise.
8420         * libgnat/a-comlin.ads: Likewise.
8421         * libgnat/a-comutr.adb: Likewise.
8422         * libgnat/a-comutr.ads: Likewise.
8423         * libgnat/a-conhel.adb: Likewise.
8424         * libgnat/a-conhel.ads: Likewise.
8425         * libgnat/a-convec.adb: Likewise.
8426         * libgnat/a-convec.ads: Likewise.
8427         * libgnat/a-coorma.adb: Likewise.
8428         * libgnat/a-coorma.ads: Likewise.
8429         * libgnat/a-coormu.adb: Likewise.
8430         * libgnat/a-coormu.ads: Likewise.
8431         * libgnat/a-coorse.adb: Likewise.
8432         * libgnat/a-coorse.ads: Likewise.
8433         * libgnat/a-coprnu.adb: Likewise.
8434         * libgnat/a-coprnu.ads: Likewise.
8435         * libgnat/a-costso.adb: Likewise.
8436         * libgnat/a-costso.ads: Likewise.
8437         * libgnat/a-crbltr.ads: Likewise.
8438         * libgnat/a-crbtgk.adb: Likewise.
8439         * libgnat/a-crbtgk.ads: Likewise.
8440         * libgnat/a-crbtgo.adb: Likewise.
8441         * libgnat/a-crbtgo.ads: Likewise.
8442         * libgnat/a-crdlli.adb: Likewise.
8443         * libgnat/a-crdlli.ads: Likewise.
8444         * libgnat/a-csquin.ads: Likewise.
8445         * libgnat/a-cuprqu.adb: Likewise.
8446         * libgnat/a-cuprqu.ads: Likewise.
8447         * libgnat/a-cusyqu.adb: Likewise.
8448         * libgnat/a-cusyqu.ads: Likewise.
8449         * libgnat/a-cwila1.ads: Likewise.
8450         * libgnat/a-cwila9.ads: Likewise.
8451         * libgnat/a-decima.adb: Likewise.
8452         * libgnat/a-decima.ads: Likewise.
8453         * libgnat/a-decima__128.ads: Likewise.
8454         * libgnat/a-dhfina.adb: Likewise.
8455         * libgnat/a-dhfina.ads: Likewise.
8456         * libgnat/a-diocst.adb: Likewise.
8457         * libgnat/a-diocst.ads: Likewise.
8458         * libgnat/a-direct.adb: Likewise.
8459         * libgnat/a-direct.ads: Likewise.
8460         * libgnat/a-direio.adb: Likewise.
8461         * libgnat/a-direio.ads: Likewise.
8462         * libgnat/a-dirval.adb: Likewise.
8463         * libgnat/a-dirval.ads: Likewise.
8464         * libgnat/a-dirval__mingw.adb: Likewise.
8465         * libgnat/a-einuoc.adb: Likewise.
8466         * libgnat/a-einuoc.ads: Likewise.
8467         * libgnat/a-elchha.adb: Likewise.
8468         * libgnat/a-elchha.ads: Likewise.
8469         * libgnat/a-envvar.adb: Likewise.
8470         * libgnat/a-excach.adb: Likewise.
8471         * libgnat/a-except.adb: Likewise.
8472         * libgnat/a-except.ads: Likewise.
8473         * libgnat/a-exctra.adb: Likewise.
8474         * libgnat/a-exctra.ads: Likewise.
8475         * libgnat/a-exexda.adb: Likewise.
8476         * libgnat/a-exexpr.adb: Likewise.
8477         * libgnat/a-exextr.adb: Likewise.
8478         * libgnat/a-exstat.adb: Likewise.
8479         * libgnat/a-finali.adb: Likewise.
8480         * libgnat/a-finali.ads: Likewise.
8481         * libgnat/a-locale.adb: Likewise.
8482         * libgnat/a-locale.ads: Likewise.
8483         * libgnat/a-nagefl.ads: Likewise.
8484         * libgnat/a-naliop.ads: Likewise.
8485         * libgnat/a-naliop__nolibm.ads: Likewise.
8486         * libgnat/a-nallfl.ads: Likewise.
8487         * libgnat/a-nallfl__wraplf.ads: Likewise.
8488         * libgnat/a-nalofl.ads: Likewise.
8489         * libgnat/a-nashfl.ads: Likewise.
8490         * libgnat/a-nashfl__wraplf.ads: Likewise.
8491         * libgnat/a-nbnbig.adb: Likewise.
8492         * libgnat/a-nbnbin.adb: Likewise.
8493         * libgnat/a-nbnbin__gmp.adb: Likewise.
8494         * libgnat/a-nbnbre.adb: Likewise.
8495         * libgnat/a-ngcefu.adb: Likewise.
8496         * libgnat/a-ngcoar.adb: Likewise.
8497         * libgnat/a-ngcoty.adb: Likewise.
8498         * libgnat/a-ngcoty.ads: Likewise.
8499         * libgnat/a-ngelfu.adb: Likewise.
8500         * libgnat/a-ngelfu.ads: Likewise.
8501         * libgnat/a-ngrear.adb: Likewise.
8502         * libgnat/a-ngrear.ads: Likewise.
8503         * libgnat/a-nuauco.ads: Likewise.
8504         * libgnat/a-nuauco__x86.ads: Likewise.
8505         * libgnat/a-nuaufl.ads: Likewise.
8506         * libgnat/a-nuaufl__wraplf.ads: Likewise.
8507         * libgnat/a-nudira.adb: Likewise.
8508         * libgnat/a-nudira.ads: Likewise.
8509         * libgnat/a-nuflra.adb: Likewise.
8510         * libgnat/a-nuflra.ads: Likewise.
8511         * libgnat/a-numaux.ads: Likewise.
8512         * libgnat/a-rbtgbk.adb: Likewise.
8513         * libgnat/a-rbtgbk.ads: Likewise.
8514         * libgnat/a-rbtgbo.adb: Likewise.
8515         * libgnat/a-rbtgbo.ads: Likewise.
8516         * libgnat/a-rbtgso.adb: Likewise.
8517         * libgnat/a-rbtgso.ads: Likewise.
8518         * libgnat/a-sbecin.adb: Likewise.
8519         * libgnat/a-sbecin.ads: Likewise.
8520         * libgnat/a-sbhcin.adb: Likewise.
8521         * libgnat/a-sbhcin.ads: Likewise.
8522         * libgnat/a-sblcin.adb: Likewise.
8523         * libgnat/a-sblcin.ads: Likewise.
8524         * libgnat/a-secain.adb: Likewise.
8525         * libgnat/a-secain.ads: Likewise.
8526         * libgnat/a-sequio.adb: Likewise.
8527         * libgnat/a-sequio.ads: Likewise.
8528         * libgnat/a-sfecin.ads: Likewise.
8529         * libgnat/a-sfhcin.ads: Likewise.
8530         * libgnat/a-sflcin.ads: Likewise.
8531         * libgnat/a-shcain.adb: Likewise.
8532         * libgnat/a-shcain.ads: Likewise.
8533         * libgnat/a-siocst.adb: Likewise.
8534         * libgnat/a-siocst.ads: Likewise.
8535         * libgnat/a-slcain.adb: Likewise.
8536         * libgnat/a-slcain.ads: Likewise.
8537         * libgnat/a-ssicst.adb: Likewise.
8538         * libgnat/a-ssicst.ads: Likewise.
8539         * libgnat/a-stboha.adb: Likewise.
8540         * libgnat/a-stbubo.adb: Likewise.
8541         * libgnat/a-stbubo.ads: Likewise.
8542         * libgnat/a-stbufi.adb: Likewise.
8543         * libgnat/a-stbufi.ads: Likewise.
8544         * libgnat/a-stbufo.adb: Likewise.
8545         * libgnat/a-stbufo.ads: Likewise.
8546         * libgnat/a-stbuun.adb: Likewise.
8547         * libgnat/a-stbuut.adb: Likewise.
8548         * libgnat/a-stbuut.ads: Likewise.
8549         * libgnat/a-stmaco.ads: Likewise.
8550         * libgnat/a-storio.adb: Likewise.
8551         * libgnat/a-strbou.adb: Likewise.
8552         * libgnat/a-strbou.ads: Likewise.
8553         * libgnat/a-stream.adb: Likewise.
8554         * libgnat/a-stream.ads: Likewise.
8555         * libgnat/a-strfix.adb: Likewise.
8556         * libgnat/a-strhas.adb: Likewise.
8557         * libgnat/a-strmap.adb: Likewise.
8558         * libgnat/a-strmap.ads: Likewise.
8559         * libgnat/a-strsea.adb: Likewise.
8560         * libgnat/a-strsea.ads: Likewise.
8561         * libgnat/a-strsto.ads: Likewise.
8562         * libgnat/a-strsup.adb: Likewise.
8563         * libgnat/a-strsup.ads: Likewise.
8564         * libgnat/a-strunb.adb: Likewise.
8565         * libgnat/a-strunb.ads: Likewise.
8566         * libgnat/a-strunb__shared.adb: Likewise.
8567         * libgnat/a-strunb__shared.ads: Likewise.
8568         * libgnat/a-ststbo.adb: Likewise.
8569         * libgnat/a-ststbo.ads: Likewise.
8570         * libgnat/a-ststio.adb: Likewise.
8571         * libgnat/a-ststio.ads: Likewise.
8572         * libgnat/a-ststun.adb: Likewise.
8573         * libgnat/a-ststun.ads: Likewise.
8574         * libgnat/a-sttebu.adb: Likewise.
8575         * libgnat/a-stunau.adb: Likewise.
8576         * libgnat/a-stunau.ads: Likewise.
8577         * libgnat/a-stunau__shared.adb: Likewise.
8578         * libgnat/a-stunha.adb: Likewise.
8579         * libgnat/a-stuten.adb: Likewise.
8580         * libgnat/a-stwibo.adb: Likewise.
8581         * libgnat/a-stwibo.ads: Likewise.
8582         * libgnat/a-stwifi.adb: Likewise.
8583         * libgnat/a-stwiha.adb: Likewise.
8584         * libgnat/a-stwima.adb: Likewise.
8585         * libgnat/a-stwima.ads: Likewise.
8586         * libgnat/a-stwise.adb: Likewise.
8587         * libgnat/a-stwise.ads: Likewise.
8588         * libgnat/a-stwisu.adb: Likewise.
8589         * libgnat/a-stwisu.ads: Likewise.
8590         * libgnat/a-stwiun.adb: Likewise.
8591         * libgnat/a-stwiun.ads: Likewise.
8592         * libgnat/a-stwiun__shared.adb: Likewise.
8593         * libgnat/a-stwiun__shared.ads: Likewise.
8594         * libgnat/a-stzbou.adb: Likewise.
8595         * libgnat/a-stzbou.ads: Likewise.
8596         * libgnat/a-stzfix.adb: Likewise.
8597         * libgnat/a-stzhas.adb: Likewise.
8598         * libgnat/a-stzmap.adb: Likewise.
8599         * libgnat/a-stzmap.ads: Likewise.
8600         * libgnat/a-stzsea.adb: Likewise.
8601         * libgnat/a-stzsea.ads: Likewise.
8602         * libgnat/a-stzsup.adb: Likewise.
8603         * libgnat/a-stzsup.ads: Likewise.
8604         * libgnat/a-stzunb.adb: Likewise.
8605         * libgnat/a-stzunb.ads: Likewise.
8606         * libgnat/a-stzunb__shared.adb: Likewise.
8607         * libgnat/a-stzunb__shared.ads: Likewise.
8608         * libgnat/a-suecin.adb: Likewise.
8609         * libgnat/a-suecin.ads: Likewise.
8610         * libgnat/a-suenco.adb: Likewise.
8611         * libgnat/a-suenst.adb: Likewise.
8612         * libgnat/a-suewst.adb: Likewise.
8613         * libgnat/a-suezst.adb: Likewise.
8614         * libgnat/a-suhcin.adb: Likewise.
8615         * libgnat/a-suhcin.ads: Likewise.
8616         * libgnat/a-sulcin.adb: Likewise.
8617         * libgnat/a-sulcin.ads: Likewise.
8618         * libgnat/a-suteio.adb: Likewise.
8619         * libgnat/a-suteio.ads: Likewise.
8620         * libgnat/a-suteio__shared.adb: Likewise.
8621         * libgnat/a-swbwha.adb: Likewise.
8622         * libgnat/a-swmwco.ads: Likewise.
8623         * libgnat/a-swunau.adb: Likewise.
8624         * libgnat/a-swunau.ads: Likewise.
8625         * libgnat/a-swunau__shared.adb: Likewise.
8626         * libgnat/a-swuwha.adb: Likewise.
8627         * libgnat/a-swuwti.adb: Likewise.
8628         * libgnat/a-swuwti.ads: Likewise.
8629         * libgnat/a-swuwti__shared.adb: Likewise.
8630         * libgnat/a-szbzha.adb: Likewise.
8631         * libgnat/a-szmzco.ads: Likewise.
8632         * libgnat/a-szunau.adb: Likewise.
8633         * libgnat/a-szunau.ads: Likewise.
8634         * libgnat/a-szunau__shared.adb: Likewise.
8635         * libgnat/a-szuzha.adb: Likewise.
8636         * libgnat/a-szuzti.adb: Likewise.
8637         * libgnat/a-szuzti.ads: Likewise.
8638         * libgnat/a-szuzti__shared.adb: Likewise.
8639         * libgnat/a-tags.adb: Likewise.
8640         * libgnat/a-tags.ads: Likewise.
8641         * libgnat/a-teioed.adb: Likewise.
8642         * libgnat/a-teioed.ads: Likewise.
8643         * libgnat/a-textio.adb: Likewise.
8644         * libgnat/a-textio.ads: Likewise.
8645         * libgnat/a-tiboio.adb: Likewise.
8646         * libgnat/a-ticoau.adb: Likewise.
8647         * libgnat/a-ticoau.ads: Likewise.
8648         * libgnat/a-ticoio.adb: Likewise.
8649         * libgnat/a-ticoio.ads: Likewise.
8650         * libgnat/a-tideau.adb: Likewise.
8651         * libgnat/a-tideau.ads: Likewise.
8652         * libgnat/a-tideio.adb: Likewise.
8653         * libgnat/a-tideio.ads: Likewise.
8654         * libgnat/a-tideio__128.adb: Likewise.
8655         * libgnat/a-tienau.adb: Likewise.
8656         * libgnat/a-tienau.ads: Likewise.
8657         * libgnat/a-tienio.adb: Likewise.
8658         * libgnat/a-tifiau.adb: Likewise.
8659         * libgnat/a-tifiau.ads: Likewise.
8660         * libgnat/a-tifiio.adb: Likewise.
8661         * libgnat/a-tifiio__128.adb: Likewise.
8662         * libgnat/a-tiflau.adb: Likewise.
8663         * libgnat/a-tiflau.ads: Likewise.
8664         * libgnat/a-tiflio.adb: Likewise.
8665         * libgnat/a-tiflio.ads: Likewise.
8666         * libgnat/a-tigeau.adb: Likewise.
8667         * libgnat/a-tigeau.ads: Likewise.
8668         * libgnat/a-tigeli.adb: Likewise.
8669         * libgnat/a-tiinau.adb: Likewise.
8670         * libgnat/a-tiinau.ads: Likewise.
8671         * libgnat/a-tiinio.adb: Likewise.
8672         * libgnat/a-tiinio.ads: Likewise.
8673         * libgnat/a-tiinio__128.adb: Likewise.
8674         * libgnat/a-timoio.adb: Likewise.
8675         * libgnat/a-timoio.ads: Likewise.
8676         * libgnat/a-timoio__128.adb: Likewise.
8677         * libgnat/a-tiocst.adb: Likewise.
8678         * libgnat/a-tiocst.ads: Likewise.
8679         * libgnat/a-tirsfi.adb: Likewise.
8680         * libgnat/a-tirsfi.ads: Likewise.
8681         * libgnat/a-titest.adb: Likewise.
8682         * libgnat/a-undesu.adb: Likewise.
8683         * libgnat/a-wichha.adb: Likewise.
8684         * libgnat/a-wichun.adb: Likewise.
8685         * libgnat/a-wichun.ads: Likewise.
8686         * libgnat/a-witeio.adb: Likewise.
8687         * libgnat/a-witeio.ads: Likewise.
8688         * libgnat/a-wrstfi.adb: Likewise.
8689         * libgnat/a-wrstfi.ads: Likewise.
8690         * libgnat/a-wtcoau.adb: Likewise.
8691         * libgnat/a-wtcoau.ads: Likewise.
8692         * libgnat/a-wtcoio.adb: Likewise.
8693         * libgnat/a-wtcstr.adb: Likewise.
8694         * libgnat/a-wtcstr.ads: Likewise.
8695         * libgnat/a-wtdeau.adb: Likewise.
8696         * libgnat/a-wtdeau.ads: Likewise.
8697         * libgnat/a-wtdeio.adb: Likewise.
8698         * libgnat/a-wtdeio__128.adb: Likewise.
8699         * libgnat/a-wtedit.adb: Likewise.
8700         * libgnat/a-wtedit.ads: Likewise.
8701         * libgnat/a-wtenau.adb: Likewise.
8702         * libgnat/a-wtenau.ads: Likewise.
8703         * libgnat/a-wtenio.adb: Likewise.
8704         * libgnat/a-wtfiau.adb: Likewise.
8705         * libgnat/a-wtfiau.ads: Likewise.
8706         * libgnat/a-wtfiio.adb: Likewise.
8707         * libgnat/a-wtfiio__128.adb: Likewise.
8708         * libgnat/a-wtflau.adb: Likewise.
8709         * libgnat/a-wtflau.ads: Likewise.
8710         * libgnat/a-wtflio.adb: Likewise.
8711         * libgnat/a-wtgeau.adb: Likewise.
8712         * libgnat/a-wtgeau.ads: Likewise.
8713         * libgnat/a-wtinau.adb: Likewise.
8714         * libgnat/a-wtinau.ads: Likewise.
8715         * libgnat/a-wtinio.adb: Likewise.
8716         * libgnat/a-wtinio__128.adb: Likewise.
8717         * libgnat/a-wtmoio.adb: Likewise.
8718         * libgnat/a-wtmoio.ads: Likewise.
8719         * libgnat/a-wtmoio__128.adb: Likewise.
8720         * libgnat/a-wttest.adb: Likewise.
8721         * libgnat/a-wwboio.adb: Likewise.
8722         * libgnat/a-zchhan.adb: Likewise.
8723         * libgnat/a-zchuni.adb: Likewise.
8724         * libgnat/a-zchuni.ads: Likewise.
8725         * libgnat/a-zrstfi.adb: Likewise.
8726         * libgnat/a-zrstfi.ads: Likewise.
8727         * libgnat/a-ztcoau.adb: Likewise.
8728         * libgnat/a-ztcoio.adb: Likewise.
8729         * libgnat/a-ztcstr.adb: Likewise.
8730         * libgnat/a-ztcstr.ads: Likewise.
8731         * libgnat/a-ztdeau.adb: Likewise.
8732         * libgnat/a-ztdeau.ads: Likewise.
8733         * libgnat/a-ztdeio.adb: Likewise.
8734         * libgnat/a-ztdeio__128.adb: Likewise.
8735         * libgnat/a-ztedit.adb: Likewise.
8736         * libgnat/a-ztedit.ads: Likewise.
8737         * libgnat/a-ztenau.adb: Likewise.
8738         * libgnat/a-ztenau.ads: Likewise.
8739         * libgnat/a-ztenio.adb: Likewise.
8740         * libgnat/a-ztexio.adb: Likewise.
8741         * libgnat/a-ztexio.ads: Likewise.
8742         * libgnat/a-ztfiau.adb: Likewise.
8743         * libgnat/a-ztfiau.ads: Likewise.
8744         * libgnat/a-ztfiio.adb: Likewise.
8745         * libgnat/a-ztfiio__128.adb: Likewise.
8746         * libgnat/a-ztflau.adb: Likewise.
8747         * libgnat/a-ztflau.ads: Likewise.
8748         * libgnat/a-ztflio.adb: Likewise.
8749         * libgnat/a-ztgeau.adb: Likewise.
8750         * libgnat/a-ztgeau.ads: Likewise.
8751         * libgnat/a-ztinau.adb: Likewise.
8752         * libgnat/a-ztinau.ads: Likewise.
8753         * libgnat/a-ztinio.adb: Likewise.
8754         * libgnat/a-ztinio__128.adb: Likewise.
8755         * libgnat/a-ztmoio.adb: Likewise.
8756         * libgnat/a-ztmoio__128.adb: Likewise.
8757         * libgnat/a-zttest.adb: Likewise.
8758         * libgnat/a-zzboio.adb: Likewise.
8759         * libgnat/g-allein.ads: Likewise.
8760         * libgnat/g-alleve.adb: Likewise.
8761         * libgnat/g-alleve.ads: Likewise.
8762         * libgnat/g-alleve__hard.adb: Likewise.
8763         * libgnat/g-alleve__hard.ads: Likewise.
8764         * libgnat/g-altcon.adb: Likewise.
8765         * libgnat/g-altcon.ads: Likewise.
8766         * libgnat/g-altive.ads: Likewise.
8767         * libgnat/g-alveop.adb: Likewise.
8768         * libgnat/g-alveop.ads: Likewise.
8769         * libgnat/g-alvety.ads: Likewise.
8770         * libgnat/g-alvevi.ads: Likewise.
8771         * libgnat/g-arrspl.adb: Likewise.
8772         * libgnat/g-arrspl.ads: Likewise.
8773         * libgnat/g-awk.adb: Likewise.
8774         * libgnat/g-awk.ads: Likewise.
8775         * libgnat/g-binenv.adb: Likewise.
8776         * libgnat/g-binenv.ads: Likewise.
8777         * libgnat/g-brapre.ads: Likewise.
8778         * libgnat/g-bubsor.adb: Likewise.
8779         * libgnat/g-bubsor.ads: Likewise.
8780         * libgnat/g-busora.adb: Likewise.
8781         * libgnat/g-busora.ads: Likewise.
8782         * libgnat/g-busorg.adb: Likewise.
8783         * libgnat/g-busorg.ads: Likewise.
8784         * libgnat/g-byorma.adb: Likewise.
8785         * libgnat/g-byorma.ads: Likewise.
8786         * libgnat/g-bytswa.adb: Likewise.
8787         * libgnat/g-bytswa.ads: Likewise.
8788         * libgnat/g-calend.adb: Likewise.
8789         * libgnat/g-calend.ads: Likewise.
8790         * libgnat/g-casuti.adb: Likewise.
8791         * libgnat/g-casuti.ads: Likewise.
8792         * libgnat/g-catiio.adb: Likewise.
8793         * libgnat/g-catiio.ads: Likewise.
8794         * libgnat/g-cgi.adb: Likewise.
8795         * libgnat/g-cgi.ads: Likewise.
8796         * libgnat/g-cgicoo.adb: Likewise.
8797         * libgnat/g-cgicoo.ads: Likewise.
8798         * libgnat/g-cgideb.adb: Likewise.
8799         * libgnat/g-cgideb.ads: Likewise.
8800         * libgnat/g-comlin.adb: Likewise.
8801         * libgnat/g-comlin.ads: Likewise.
8802         * libgnat/g-comver.adb: Likewise.
8803         * libgnat/g-comver.ads: Likewise.
8804         * libgnat/g-cppexc.adb: Likewise.
8805         * libgnat/g-cppexc.ads: Likewise.
8806         * libgnat/g-crc32.adb: Likewise.
8807         * libgnat/g-crc32.ads: Likewise.
8808         * libgnat/g-ctrl_c.adb: Likewise.
8809         * libgnat/g-ctrl_c.ads: Likewise.
8810         * libgnat/g-curexc.ads: Likewise.
8811         * libgnat/g-debpoo.adb: Likewise.
8812         * libgnat/g-debpoo.ads: Likewise.
8813         * libgnat/g-debuti.adb: Likewise.
8814         * libgnat/g-debuti.ads: Likewise.
8815         * libgnat/g-decstr.adb: Likewise.
8816         * libgnat/g-decstr.ads: Likewise.
8817         * libgnat/g-deutst.ads: Likewise.
8818         * libgnat/g-diopit.adb: Likewise.
8819         * libgnat/g-diopit.ads: Likewise.
8820         * libgnat/g-dirope.adb: Likewise.
8821         * libgnat/g-dirope.ads: Likewise.
8822         * libgnat/g-dynhta.adb: Likewise.
8823         * libgnat/g-dynhta.ads: Likewise.
8824         * libgnat/g-dyntab.adb: Likewise.
8825         * libgnat/g-dyntab.ads: Likewise.
8826         * libgnat/g-eacodu.adb: Likewise.
8827         * libgnat/g-encstr.adb: Likewise.
8828         * libgnat/g-encstr.ads: Likewise.
8829         * libgnat/g-enutst.ads: Likewise.
8830         * libgnat/g-excact.adb: Likewise.
8831         * libgnat/g-excact.ads: Likewise.
8832         * libgnat/g-except.ads: Likewise.
8833         * libgnat/g-exctra.adb: Likewise.
8834         * libgnat/g-exctra.ads: Likewise.
8835         * libgnat/g-expect.adb: Likewise.
8836         * libgnat/g-expect.ads: Likewise.
8837         * libgnat/g-exptty.adb: Likewise.
8838         * libgnat/g-exptty.ads: Likewise.
8839         * libgnat/g-flocon.ads: Likewise.
8840         * libgnat/g-forstr.adb: Likewise.
8841         * libgnat/g-forstr.ads: Likewise.
8842         * libgnat/g-graphs.adb: Likewise.
8843         * libgnat/g-graphs.ads: Likewise.
8844         * libgnat/g-heasor.adb: Likewise.
8845         * libgnat/g-heasor.ads: Likewise.
8846         * libgnat/g-hesora.adb: Likewise.
8847         * libgnat/g-hesora.ads: Likewise.
8848         * libgnat/g-hesorg.adb: Likewise.
8849         * libgnat/g-hesorg.ads: Likewise.
8850         * libgnat/g-htable.adb: Likewise.
8851         * libgnat/g-htable.ads: Likewise.
8852         * libgnat/g-io.adb: Likewise.
8853         * libgnat/g-io.ads: Likewise.
8854         * libgnat/g-io_aux.adb: Likewise.
8855         * libgnat/g-io_aux.ads: Likewise.
8856         * libgnat/g-lists.adb: Likewise.
8857         * libgnat/g-lists.ads: Likewise.
8858         * libgnat/g-locfil.adb: Likewise.
8859         * libgnat/g-locfil.ads: Likewise.
8860         * libgnat/g-mbdira.adb: Likewise.
8861         * libgnat/g-mbdira.ads: Likewise.
8862         * libgnat/g-mbflra.adb: Likewise.
8863         * libgnat/g-mbflra.ads: Likewise.
8864         * libgnat/g-md5.adb: Likewise.
8865         * libgnat/g-md5.ads: Likewise.
8866         * libgnat/g-memdum.adb: Likewise.
8867         * libgnat/g-memdum.ads: Likewise.
8868         * libgnat/g-moreex.adb: Likewise.
8869         * libgnat/g-moreex.ads: Likewise.
8870         * libgnat/g-os_lib.adb: Likewise.
8871         * libgnat/g-os_lib.ads: Likewise.
8872         * libgnat/g-pehage.adb: Likewise.
8873         * libgnat/g-pehage.ads: Likewise.
8874         * libgnat/g-rannum.adb: Likewise.
8875         * libgnat/g-rannum.ads: Likewise.
8876         * libgnat/g-regexp.adb: Likewise.
8877         * libgnat/g-regexp.ads: Likewise.
8878         * libgnat/g-regist.adb: Likewise.
8879         * libgnat/g-regist.ads: Likewise.
8880         * libgnat/g-regpat.adb: Likewise.
8881         * libgnat/g-regpat.ads: Likewise.
8882         * libgnat/g-rewdat.adb: Likewise.
8883         * libgnat/g-rewdat.ads: Likewise.
8884         * libgnat/g-sechas.adb: Likewise.
8885         * libgnat/g-sechas.ads: Likewise.
8886         * libgnat/g-sehamd.adb: Likewise.
8887         * libgnat/g-sehamd.ads: Likewise.
8888         * libgnat/g-sehash.adb: Likewise.
8889         * libgnat/g-sehash.ads: Likewise.
8890         * libgnat/g-sercom.adb: Likewise.
8891         * libgnat/g-sercom.ads: Likewise.
8892         * libgnat/g-sercom__linux.adb: Likewise.
8893         * libgnat/g-sercom__mingw.adb: Likewise.
8894         * libgnat/g-sestin.ads: Likewise.
8895         * libgnat/g-sets.adb: Likewise.
8896         * libgnat/g-sets.ads: Likewise.
8897         * libgnat/g-sha1.adb: Likewise.
8898         * libgnat/g-sha1.ads: Likewise.
8899         * libgnat/g-sha224.ads: Likewise.
8900         * libgnat/g-sha256.ads: Likewise.
8901         * libgnat/g-sha384.ads: Likewise.
8902         * libgnat/g-sha512.ads: Likewise.
8903         * libgnat/g-shsh32.adb: Likewise.
8904         * libgnat/g-shsh32.ads: Likewise.
8905         * libgnat/g-shsh64.adb: Likewise.
8906         * libgnat/g-shsh64.ads: Likewise.
8907         * libgnat/g-shshco.adb: Likewise.
8908         * libgnat/g-shshco.ads: Likewise.
8909         * libgnat/g-soccon.ads: Likewise.
8910         * libgnat/g-socket.adb: Likewise.
8911         * libgnat/g-socket.ads: Likewise.
8912         * libgnat/g-socket__dummy.adb: Likewise.
8913         * libgnat/g-socket__dummy.ads: Likewise.
8914         * libgnat/g-socpol.adb: Likewise.
8915         * libgnat/g-socpol.ads: Likewise.
8916         * libgnat/g-socpol__dummy.adb: Likewise.
8917         * libgnat/g-socpol__dummy.ads: Likewise.
8918         * libgnat/g-socthi.adb: Likewise.
8919         * libgnat/g-socthi.ads: Likewise.
8920         * libgnat/g-socthi__dummy.adb: Likewise.
8921         * libgnat/g-socthi__dummy.ads: Likewise.
8922         * libgnat/g-socthi__mingw.adb: Likewise.
8923         * libgnat/g-socthi__mingw.ads: Likewise.
8924         * libgnat/g-socthi__vxworks.adb: Likewise.
8925         * libgnat/g-socthi__vxworks.ads: Likewise.
8926         * libgnat/g-soliop.ads: Likewise.
8927         * libgnat/g-soliop__lynxos.ads: Likewise.
8928         * libgnat/g-soliop__mingw.ads: Likewise.
8929         * libgnat/g-soliop__qnx.ads: Likewise.
8930         * libgnat/g-soliop__solaris.ads: Likewise.
8931         * libgnat/g-sopowa.adb: Likewise.
8932         * libgnat/g-sopowa__mingw.adb: Likewise.
8933         * libgnat/g-sopowa__posix.adb: Likewise.
8934         * libgnat/g-sothco.adb: Likewise.
8935         * libgnat/g-sothco.ads: Likewise.
8936         * libgnat/g-sothco__dummy.adb: Likewise.
8937         * libgnat/g-sothco__dummy.ads: Likewise.
8938         * libgnat/g-souinf.ads: Likewise.
8939         * libgnat/g-spchge.adb: Likewise.
8940         * libgnat/g-spchge.ads: Likewise.
8941         * libgnat/g-speche.adb: Likewise.
8942         * libgnat/g-speche.ads: Likewise.
8943         * libgnat/g-spipat.adb: Likewise.
8944         * libgnat/g-spipat.ads: Likewise.
8945         * libgnat/g-spitbo.adb: Likewise.
8946         * libgnat/g-spitbo.ads: Likewise.
8947         * libgnat/g-spogwa.adb: Likewise.
8948         * libgnat/g-spogwa.ads: Likewise.
8949         * libgnat/g-sptabo.ads: Likewise.
8950         * libgnat/g-sptain.ads: Likewise.
8951         * libgnat/g-sptavs.ads: Likewise.
8952         * libgnat/g-sse.ads: Likewise.
8953         * libgnat/g-ssvety.ads: Likewise.
8954         * libgnat/g-sthcso.adb: Likewise.
8955         * libgnat/g-stheme.adb: Likewise.
8956         * libgnat/g-strhas.ads: Likewise.
8957         * libgnat/g-string.adb: Likewise.
8958         * libgnat/g-string.ads: Likewise.
8959         * libgnat/g-strspl.ads: Likewise.
8960         * libgnat/g-stseme.adb: Likewise.
8961         * libgnat/g-stsifd__sockets.adb: Likewise.
8962         * libgnat/g-table.adb: Likewise.
8963         * libgnat/g-table.ads: Likewise.
8964         * libgnat/g-tasloc.adb: Likewise.
8965         * libgnat/g-tasloc.ads: Likewise.
8966         * libgnat/g-timsta.adb: Likewise.
8967         * libgnat/g-timsta.ads: Likewise.
8968         * libgnat/g-traceb.adb: Likewise.
8969         * libgnat/g-traceb.ads: Likewise.
8970         * libgnat/g-trasym.adb: Likewise.
8971         * libgnat/g-trasym.ads: Likewise.
8972         * libgnat/g-tty.adb: Likewise.
8973         * libgnat/g-tty.ads: Likewise.
8974         * libgnat/g-u3spch.adb: Likewise.
8975         * libgnat/g-u3spch.ads: Likewise.
8976         * libgnat/g-utf_32.adb: Likewise.
8977         * libgnat/g-utf_32.ads: Likewise.
8978         * libgnat/g-wispch.adb: Likewise.
8979         * libgnat/g-wispch.ads: Likewise.
8980         * libgnat/g-wistsp.ads: Likewise.
8981         * libgnat/g-zspche.adb: Likewise.
8982         * libgnat/g-zspche.ads: Likewise.
8983         * libgnat/g-zstspl.ads: Likewise.
8984         * libgnat/gnat.ads: Likewise.
8985         * libgnat/i-c.adb: Likewise.
8986         * libgnat/i-cexten.ads: Likewise.
8987         * libgnat/i-cexten__128.ads: Likewise.
8988         * libgnat/i-cobol.adb: Likewise.
8989         * libgnat/i-cobol.ads: Likewise.
8990         * libgnat/i-cpoint.adb: Likewise.
8991         * libgnat/i-cpoint.ads: Likewise.
8992         * libgnat/i-cstrea.adb: Likewise.
8993         * libgnat/i-cstrea.ads: Likewise.
8994         * libgnat/i-cstrin.adb: Likewise.
8995         * libgnat/i-cstrin.ads: Likewise.
8996         * libgnat/i-fortra.adb: Likewise.
8997         * libgnat/i-pacdec.adb: Likewise.
8998         * libgnat/i-pacdec.ads: Likewise.
8999         * libgnat/i-vxwoio.adb: Likewise.
9000         * libgnat/i-vxwoio.ads: Likewise.
9001         * libgnat/i-vxwork.ads: Likewise.
9002         * libgnat/i-vxwork__x86.ads: Likewise.
9003         * libgnat/interfac.ads: Likewise.
9004         * libgnat/interfac__2020.ads: Likewise.
9005         * libgnat/memtrack.adb: Likewise.
9006         * libgnat/s-addima.adb: Likewise.
9007         * libgnat/s-addima.ads: Likewise.
9008         * libgnat/s-addope.adb: Likewise.
9009         * libgnat/s-addope.ads: Likewise.
9010         * libgnat/s-aoinar.adb: Likewise.
9011         * libgnat/s-aoinar.ads: Likewise.
9012         * libgnat/s-aomoar.adb: Likewise.
9013         * libgnat/s-aomoar.ads: Likewise.
9014         * libgnat/s-aotase.adb: Likewise.
9015         * libgnat/s-aotase.ads: Likewise.
9016         * libgnat/s-aridou.adb: Likewise.
9017         * libgnat/s-aridou.ads: Likewise.
9018         * libgnat/s-arit128.adb: Likewise.
9019         * libgnat/s-arit128.ads: Likewise.
9020         * libgnat/s-arit32.adb: Likewise.
9021         * libgnat/s-arit32.ads: Likewise.
9022         * libgnat/s-arit64.adb: Likewise.
9023         * libgnat/s-arit64.ads: Likewise.
9024         * libgnat/s-assert.adb: Likewise.
9025         * libgnat/s-assert.ads: Likewise.
9026         * libgnat/s-atacco.adb: Likewise.
9027         * libgnat/s-atacco.ads: Likewise.
9028         * libgnat/s-atocou.adb: Likewise.
9029         * libgnat/s-atocou.ads: Likewise.
9030         * libgnat/s-atocou__builtin.adb: Likewise.
9031         * libgnat/s-atoope.ads: Likewise.
9032         * libgnat/s-atopex.adb: Likewise.
9033         * libgnat/s-atopex.ads: Likewise.
9034         * libgnat/s-atopri.adb: Likewise.
9035         * libgnat/s-atopri.ads: Likewise.
9036         * libgnat/s-auxdec.adb: Likewise.
9037         * libgnat/s-auxdec.ads: Likewise.
9038         * libgnat/s-bignum.adb: Likewise.
9039         * libgnat/s-bignum.ads: Likewise.
9040         * libgnat/s-bitfie.ads: Likewise.
9041         * libgnat/s-bitops.adb: Likewise.
9042         * libgnat/s-bitops.ads: Likewise.
9043         * libgnat/s-bituti.adb: Likewise.
9044         * libgnat/s-bituti.ads: Likewise.
9045         * libgnat/s-boarop.ads: Likewise.
9046         * libgnat/s-boustr.adb: Likewise.
9047         * libgnat/s-boustr.ads: Likewise.
9048         * libgnat/s-bytswa.ads: Likewise.
9049         * libgnat/s-carsi8.adb: Likewise.
9050         * libgnat/s-carsi8.ads: Likewise.
9051         * libgnat/s-carun8.adb: Likewise.
9052         * libgnat/s-carun8.ads: Likewise.
9053         * libgnat/s-casi128.adb: Likewise.
9054         * libgnat/s-casi128.ads: Likewise.
9055         * libgnat/s-casi16.adb: Likewise.
9056         * libgnat/s-casi16.ads: Likewise.
9057         * libgnat/s-casi32.adb: Likewise.
9058         * libgnat/s-casi32.ads: Likewise.
9059         * libgnat/s-casi64.adb: Likewise.
9060         * libgnat/s-casi64.ads: Likewise.
9061         * libgnat/s-casuti.adb: Likewise.
9062         * libgnat/s-casuti.ads: Likewise.
9063         * libgnat/s-caun128.adb: Likewise.
9064         * libgnat/s-caun128.ads: Likewise.
9065         * libgnat/s-caun16.adb: Likewise.
9066         * libgnat/s-caun16.ads: Likewise.
9067         * libgnat/s-caun32.adb: Likewise.
9068         * libgnat/s-caun32.ads: Likewise.
9069         * libgnat/s-caun64.adb: Likewise.
9070         * libgnat/s-caun64.ads: Likewise.
9071         * libgnat/s-chepoo.ads: Likewise.
9072         * libgnat/s-commun.adb: Likewise.
9073         * libgnat/s-commun.ads: Likewise.
9074         * libgnat/s-conca2.adb: Likewise.
9075         * libgnat/s-conca2.ads: Likewise.
9076         * libgnat/s-conca3.adb: Likewise.
9077         * libgnat/s-conca3.ads: Likewise.
9078         * libgnat/s-conca4.adb: Likewise.
9079         * libgnat/s-conca4.ads: Likewise.
9080         * libgnat/s-conca5.adb: Likewise.
9081         * libgnat/s-conca5.ads: Likewise.
9082         * libgnat/s-conca6.adb: Likewise.
9083         * libgnat/s-conca6.ads: Likewise.
9084         * libgnat/s-conca7.adb: Likewise.
9085         * libgnat/s-conca7.ads: Likewise.
9086         * libgnat/s-conca8.adb: Likewise.
9087         * libgnat/s-conca8.ads: Likewise.
9088         * libgnat/s-conca9.adb: Likewise.
9089         * libgnat/s-conca9.ads: Likewise.
9090         * libgnat/s-crc32.adb: Likewise.
9091         * libgnat/s-crc32.ads: Likewise.
9092         * libgnat/s-crtl.ads: Likewise.
9093         * libgnat/s-dfmkio.ads: Likewise.
9094         * libgnat/s-dfmopr.ads: Likewise.
9095         * libgnat/s-dgmgop.ads: Likewise.
9096         * libgnat/s-diflio.adb: Likewise.
9097         * libgnat/s-diflio.ads: Likewise.
9098         * libgnat/s-diflmk.ads: Likewise.
9099         * libgnat/s-digemk.ads: Likewise.
9100         * libgnat/s-diinio.adb: Likewise.
9101         * libgnat/s-diinio.ads: Likewise.
9102         * libgnat/s-dilomk.ads: Likewise.
9103         * libgnat/s-dim.ads: Likewise.
9104         * libgnat/s-dimkio.ads: Likewise.
9105         * libgnat/s-dimmks.ads: Likewise.
9106         * libgnat/s-direio.adb: Likewise.
9107         * libgnat/s-direio.ads: Likewise.
9108         * libgnat/s-dlmkio.ads: Likewise.
9109         * libgnat/s-dlmopr.ads: Likewise.
9110         * libgnat/s-dmotpr.ads: Likewise.
9111         * libgnat/s-dorepr.adb: Likewise.
9112         * libgnat/s-dorepr__fma.adb: Likewise.
9113         * libgnat/s-dourea.adb: Likewise.
9114         * libgnat/s-dourea.ads: Likewise.
9115         * libgnat/s-dsaser.ads: Likewise.
9116         * libgnat/s-dwalin.adb: Likewise.
9117         * libgnat/s-dwalin.ads: Likewise.
9118         * libgnat/s-elaall.adb: Likewise.
9119         * libgnat/s-elaall.ads: Likewise.
9120         * libgnat/s-excdeb.adb: Likewise.
9121         * libgnat/s-excdeb.ads: Likewise.
9122         * libgnat/s-except.adb: Likewise.
9123         * libgnat/s-except.ads: Likewise.
9124         * libgnat/s-excmac__arm.adb: Likewise.
9125         * libgnat/s-excmac__arm.ads: Likewise.
9126         * libgnat/s-excmac__gcc.adb: Likewise.
9127         * libgnat/s-excmac__gcc.ads: Likewise.
9128         * libgnat/s-exctab.adb: Likewise.
9129         * libgnat/s-exctab.ads: Likewise.
9130         * libgnat/s-exctra.adb: Likewise.
9131         * libgnat/s-exctra.ads: Likewise.
9132         * libgnat/s-exnflt.ads: Likewise.
9133         * libgnat/s-exnint.adb: Likewise.
9134         * libgnat/s-exnint.ads: Likewise.
9135         * libgnat/s-exnlfl.ads: Likewise.
9136         * libgnat/s-exnllf.adb: Likewise.
9137         * libgnat/s-exnllf.ads: Likewise.
9138         * libgnat/s-exnlli.adb: Likewise.
9139         * libgnat/s-exnlli.ads: Likewise.
9140         * libgnat/s-exnllli.ads: Likewise.
9141         * libgnat/s-expint.adb: Likewise.
9142         * libgnat/s-expint.ads: Likewise.
9143         * libgnat/s-explli.adb: Likewise.
9144         * libgnat/s-explli.ads: Likewise.
9145         * libgnat/s-expllli.ads: Likewise.
9146         * libgnat/s-explllu.ads: Likewise.
9147         * libgnat/s-expllu.adb: Likewise.
9148         * libgnat/s-expllu.ads: Likewise.
9149         * libgnat/s-expmod.adb: Likewise.
9150         * libgnat/s-expmod.ads: Likewise.
9151         * libgnat/s-exponn.adb: Likewise.
9152         * libgnat/s-exponn.ads: Likewise.
9153         * libgnat/s-exponr.adb: Likewise.
9154         * libgnat/s-exponr.ads: Likewise.
9155         * libgnat/s-expont.adb: Likewise.
9156         * libgnat/s-expont.ads: Likewise.
9157         * libgnat/s-exponu.adb: Likewise.
9158         * libgnat/s-exponu.ads: Likewise.
9159         * libgnat/s-expuns.adb: Likewise.
9160         * libgnat/s-expuns.ads: Likewise.
9161         * libgnat/s-fatflt.ads: Likewise.
9162         * libgnat/s-fatgen.adb: Likewise.
9163         * libgnat/s-fatgen.ads: Likewise.
9164         * libgnat/s-fatlfl.ads: Likewise.
9165         * libgnat/s-fatllf.ads: Likewise.
9166         * libgnat/s-ficobl.ads: Likewise.
9167         * libgnat/s-filatt.ads: Likewise.
9168         * libgnat/s-fileio.adb: Likewise.
9169         * libgnat/s-fileio.ads: Likewise.
9170         * libgnat/s-finmas.adb: Likewise.
9171         * libgnat/s-finmas.ads: Likewise.
9172         * libgnat/s-finroo.adb: Likewise.
9173         * libgnat/s-finroo.ads: Likewise.
9174         * libgnat/s-flocon.adb: Likewise.
9175         * libgnat/s-flocon.ads: Likewise.
9176         * libgnat/s-flocon__none.adb: Likewise.
9177         * libgnat/s-fode128.ads: Likewise.
9178         * libgnat/s-fode32.ads: Likewise.
9179         * libgnat/s-fode64.ads: Likewise.
9180         * libgnat/s-fofi128.ads: Likewise.
9181         * libgnat/s-fofi32.ads: Likewise.
9182         * libgnat/s-fofi64.ads: Likewise.
9183         * libgnat/s-fore_d.adb: Likewise.
9184         * libgnat/s-fore_d.ads: Likewise.
9185         * libgnat/s-fore_f.adb: Likewise.
9186         * libgnat/s-fore_f.ads: Likewise.
9187         * libgnat/s-forrea.adb: Likewise.
9188         * libgnat/s-forrea.ads: Likewise.
9189         * libgnat/s-gearop.adb: Likewise.
9190         * libgnat/s-gearop.ads: Likewise.
9191         * libgnat/s-genbig.adb: Likewise.
9192         * libgnat/s-genbig.ads: Likewise.
9193         * libgnat/s-geveop.adb: Likewise.
9194         * libgnat/s-geveop.ads: Likewise.
9195         * libgnat/s-gloloc.adb: Likewise.
9196         * libgnat/s-gloloc.ads: Likewise.
9197         * libgnat/s-gloloc__mingw.adb: Likewise.
9198         * libgnat/s-htable.adb: Likewise.
9199         * libgnat/s-htable.ads: Likewise.
9200         * libgnat/s-imageb.adb: Likewise.
9201         * libgnat/s-imageb.ads: Likewise.
9202         * libgnat/s-imaged.adb: Likewise.
9203         * libgnat/s-imaged.ads: Likewise.
9204         * libgnat/s-imagef.adb: Likewise.
9205         * libgnat/s-imagef.ads: Likewise.
9206         * libgnat/s-imagei.adb: Likewise.
9207         * libgnat/s-imagei.ads: Likewise.
9208         * libgnat/s-imagen.adb: Likewise.
9209         * libgnat/s-imagen.ads: Likewise.
9210         * libgnat/s-imager.adb: Likewise.
9211         * libgnat/s-imager.ads: Likewise.
9212         * libgnat/s-imageu.adb: Likewise.
9213         * libgnat/s-imageu.ads: Likewise.
9214         * libgnat/s-imagew.adb: Likewise.
9215         * libgnat/s-imagew.ads: Likewise.
9216         * libgnat/s-imde128.ads: Likewise.
9217         * libgnat/s-imde32.ads: Likewise.
9218         * libgnat/s-imde64.ads: Likewise.
9219         * libgnat/s-imen16.ads: Likewise.
9220         * libgnat/s-imen32.ads: Likewise.
9221         * libgnat/s-imenu8.ads: Likewise.
9222         * libgnat/s-imfi128.ads: Likewise.
9223         * libgnat/s-imfi32.ads: Likewise.
9224         * libgnat/s-imfi64.ads: Likewise.
9225         * libgnat/s-imgbiu.adb: Likewise.
9226         * libgnat/s-imgbiu.ads: Likewise.
9227         * libgnat/s-imgboo.adb: Likewise.
9228         * libgnat/s-imgboo.ads: Likewise.
9229         * libgnat/s-imgcha.adb: Likewise.
9230         * libgnat/s-imgcha.ads: Likewise.
9231         * libgnat/s-imgflt.ads: Likewise.
9232         * libgnat/s-imgint.adb: Likewise.
9233         * libgnat/s-imgint.ads: Likewise.
9234         * libgnat/s-imglfl.ads: Likewise.
9235         * libgnat/s-imgllb.adb: Likewise.
9236         * libgnat/s-imgllb.ads: Likewise.
9237         * libgnat/s-imgllf.ads: Likewise.
9238         * libgnat/s-imglli.adb: Likewise.
9239         * libgnat/s-imglli.ads: Likewise.
9240         * libgnat/s-imglllb.ads: Likewise.
9241         * libgnat/s-imgllli.ads: Likewise.
9242         * libgnat/s-imglllu.ads: Likewise.
9243         * libgnat/s-imglllw.ads: Likewise.
9244         * libgnat/s-imgllu.adb: Likewise.
9245         * libgnat/s-imgllu.ads: Likewise.
9246         * libgnat/s-imgllw.adb: Likewise.
9247         * libgnat/s-imgllw.ads: Likewise.
9248         * libgnat/s-imgrea.adb: Likewise.
9249         * libgnat/s-imgrea.ads: Likewise.
9250         * libgnat/s-imguns.adb: Likewise.
9251         * libgnat/s-imguns.ads: Likewise.
9252         * libgnat/s-imguti.adb: Likewise.
9253         * libgnat/s-imguti.ads: Likewise.
9254         * libgnat/s-imgwch.adb: Likewise.
9255         * libgnat/s-imgwch.ads: Likewise.
9256         * libgnat/s-imgwiu.adb: Likewise.
9257         * libgnat/s-imgwiu.ads: Likewise.
9258         * libgnat/s-io.adb: Likewise.
9259         * libgnat/s-io.ads: Likewise.
9260         * libgnat/s-llflex.ads: Likewise.
9261         * libgnat/s-maccod.ads: Likewise.
9262         * libgnat/s-mantis.adb: Likewise.
9263         * libgnat/s-mantis.ads: Likewise.
9264         * libgnat/s-mastop.adb: Likewise.
9265         * libgnat/s-mastop.ads: Likewise.
9266         * libgnat/s-memcop.ads: Likewise.
9267         * libgnat/s-memory.adb: Likewise.
9268         * libgnat/s-memory.ads: Likewise.
9269         * libgnat/s-mmap.adb: Likewise.
9270         * libgnat/s-mmap.ads: Likewise.
9271         * libgnat/s-mmauni__long.ads: Likewise.
9272         * libgnat/s-mmosin__mingw.adb: Likewise.
9273         * libgnat/s-mmosin__mingw.ads: Likewise.
9274         * libgnat/s-mmosin__unix.adb: Likewise.
9275         * libgnat/s-mmosin__unix.ads: Likewise.
9276         * libgnat/s-multip.adb: Likewise.
9277         * libgnat/s-objrea.adb: Likewise.
9278         * libgnat/s-objrea.ads: Likewise.
9279         * libgnat/s-optide.adb: Likewise.
9280         * libgnat/s-os_lib.adb: Likewise.
9281         * libgnat/s-os_lib.ads: Likewise.
9282         * libgnat/s-osprim.ads: Likewise.
9283         * libgnat/s-osprim__darwin.adb: Likewise.
9284         * libgnat/s-osprim__lynxos.ads: Likewise.
9285         * libgnat/s-osprim__mingw.adb: Likewise.
9286         * libgnat/s-osprim__posix.adb: Likewise.
9287         * libgnat/s-osprim__posix2008.adb: Likewise.
9288         * libgnat/s-osprim__rtems.adb: Likewise.
9289         * libgnat/s-osprim__solaris.adb: Likewise.
9290         * libgnat/s-osprim__unix.adb: Likewise.
9291         * libgnat/s-osprim__x32.adb: Likewise.
9292         * libgnat/s-pack03.adb: Likewise.
9293         * libgnat/s-pack03.ads: Likewise.
9294         * libgnat/s-pack05.adb: Likewise.
9295         * libgnat/s-pack05.ads: Likewise.
9296         * libgnat/s-pack06.adb: Likewise.
9297         * libgnat/s-pack06.ads: Likewise.
9298         * libgnat/s-pack07.adb: Likewise.
9299         * libgnat/s-pack07.ads: Likewise.
9300         * libgnat/s-pack09.adb: Likewise.
9301         * libgnat/s-pack09.ads: Likewise.
9302         * libgnat/s-pack10.adb: Likewise.
9303         * libgnat/s-pack10.ads: Likewise.
9304         * libgnat/s-pack100.adb: Likewise.
9305         * libgnat/s-pack100.ads: Likewise.
9306         * libgnat/s-pack101.adb: Likewise.
9307         * libgnat/s-pack101.ads: Likewise.
9308         * libgnat/s-pack102.adb: Likewise.
9309         * libgnat/s-pack102.ads: Likewise.
9310         * libgnat/s-pack103.adb: Likewise.
9311         * libgnat/s-pack103.ads: Likewise.
9312         * libgnat/s-pack104.adb: Likewise.
9313         * libgnat/s-pack104.ads: Likewise.
9314         * libgnat/s-pack105.adb: Likewise.
9315         * libgnat/s-pack105.ads: Likewise.
9316         * libgnat/s-pack106.adb: Likewise.
9317         * libgnat/s-pack106.ads: Likewise.
9318         * libgnat/s-pack107.adb: Likewise.
9319         * libgnat/s-pack107.ads: Likewise.
9320         * libgnat/s-pack108.adb: Likewise.
9321         * libgnat/s-pack108.ads: Likewise.
9322         * libgnat/s-pack109.adb: Likewise.
9323         * libgnat/s-pack109.ads: Likewise.
9324         * libgnat/s-pack11.adb: Likewise.
9325         * libgnat/s-pack11.ads: Likewise.
9326         * libgnat/s-pack110.adb: Likewise.
9327         * libgnat/s-pack110.ads: Likewise.
9328         * libgnat/s-pack111.adb: Likewise.
9329         * libgnat/s-pack111.ads: Likewise.
9330         * libgnat/s-pack112.adb: Likewise.
9331         * libgnat/s-pack112.ads: Likewise.
9332         * libgnat/s-pack113.adb: Likewise.
9333         * libgnat/s-pack113.ads: Likewise.
9334         * libgnat/s-pack114.adb: Likewise.
9335         * libgnat/s-pack114.ads: Likewise.
9336         * libgnat/s-pack115.adb: Likewise.
9337         * libgnat/s-pack115.ads: Likewise.
9338         * libgnat/s-pack116.adb: Likewise.
9339         * libgnat/s-pack116.ads: Likewise.
9340         * libgnat/s-pack117.adb: Likewise.
9341         * libgnat/s-pack117.ads: Likewise.
9342         * libgnat/s-pack118.adb: Likewise.
9343         * libgnat/s-pack118.ads: Likewise.
9344         * libgnat/s-pack119.adb: Likewise.
9345         * libgnat/s-pack119.ads: Likewise.
9346         * libgnat/s-pack12.adb: Likewise.
9347         * libgnat/s-pack12.ads: Likewise.
9348         * libgnat/s-pack120.adb: Likewise.
9349         * libgnat/s-pack120.ads: Likewise.
9350         * libgnat/s-pack121.adb: Likewise.
9351         * libgnat/s-pack121.ads: Likewise.
9352         * libgnat/s-pack122.adb: Likewise.
9353         * libgnat/s-pack122.ads: Likewise.
9354         * libgnat/s-pack123.adb: Likewise.
9355         * libgnat/s-pack123.ads: Likewise.
9356         * libgnat/s-pack124.adb: Likewise.
9357         * libgnat/s-pack124.ads: Likewise.
9358         * libgnat/s-pack125.adb: Likewise.
9359         * libgnat/s-pack125.ads: Likewise.
9360         * libgnat/s-pack126.adb: Likewise.
9361         * libgnat/s-pack126.ads: Likewise.
9362         * libgnat/s-pack127.adb: Likewise.
9363         * libgnat/s-pack127.ads: Likewise.
9364         * libgnat/s-pack13.adb: Likewise.
9365         * libgnat/s-pack13.ads: Likewise.
9366         * libgnat/s-pack14.adb: Likewise.
9367         * libgnat/s-pack14.ads: Likewise.
9368         * libgnat/s-pack15.adb: Likewise.
9369         * libgnat/s-pack15.ads: Likewise.
9370         * libgnat/s-pack17.adb: Likewise.
9371         * libgnat/s-pack17.ads: Likewise.
9372         * libgnat/s-pack18.adb: Likewise.
9373         * libgnat/s-pack18.ads: Likewise.
9374         * libgnat/s-pack19.adb: Likewise.
9375         * libgnat/s-pack19.ads: Likewise.
9376         * libgnat/s-pack20.adb: Likewise.
9377         * libgnat/s-pack20.ads: Likewise.
9378         * libgnat/s-pack21.adb: Likewise.
9379         * libgnat/s-pack21.ads: Likewise.
9380         * libgnat/s-pack22.adb: Likewise.
9381         * libgnat/s-pack22.ads: Likewise.
9382         * libgnat/s-pack23.adb: Likewise.
9383         * libgnat/s-pack23.ads: Likewise.
9384         * libgnat/s-pack24.adb: Likewise.
9385         * libgnat/s-pack24.ads: Likewise.
9386         * libgnat/s-pack25.adb: Likewise.
9387         * libgnat/s-pack25.ads: Likewise.
9388         * libgnat/s-pack26.adb: Likewise.
9389         * libgnat/s-pack26.ads: Likewise.
9390         * libgnat/s-pack27.adb: Likewise.
9391         * libgnat/s-pack27.ads: Likewise.
9392         * libgnat/s-pack28.adb: Likewise.
9393         * libgnat/s-pack28.ads: Likewise.
9394         * libgnat/s-pack29.adb: Likewise.
9395         * libgnat/s-pack29.ads: Likewise.
9396         * libgnat/s-pack30.adb: Likewise.
9397         * libgnat/s-pack30.ads: Likewise.
9398         * libgnat/s-pack31.adb: Likewise.
9399         * libgnat/s-pack31.ads: Likewise.
9400         * libgnat/s-pack33.adb: Likewise.
9401         * libgnat/s-pack33.ads: Likewise.
9402         * libgnat/s-pack34.adb: Likewise.
9403         * libgnat/s-pack34.ads: Likewise.
9404         * libgnat/s-pack35.adb: Likewise.
9405         * libgnat/s-pack35.ads: Likewise.
9406         * libgnat/s-pack36.adb: Likewise.
9407         * libgnat/s-pack36.ads: Likewise.
9408         * libgnat/s-pack37.adb: Likewise.
9409         * libgnat/s-pack37.ads: Likewise.
9410         * libgnat/s-pack38.adb: Likewise.
9411         * libgnat/s-pack38.ads: Likewise.
9412         * libgnat/s-pack39.adb: Likewise.
9413         * libgnat/s-pack39.ads: Likewise.
9414         * libgnat/s-pack40.adb: Likewise.
9415         * libgnat/s-pack40.ads: Likewise.
9416         * libgnat/s-pack41.adb: Likewise.
9417         * libgnat/s-pack41.ads: Likewise.
9418         * libgnat/s-pack42.adb: Likewise.
9419         * libgnat/s-pack42.ads: Likewise.
9420         * libgnat/s-pack43.adb: Likewise.
9421         * libgnat/s-pack43.ads: Likewise.
9422         * libgnat/s-pack44.adb: Likewise.
9423         * libgnat/s-pack44.ads: Likewise.
9424         * libgnat/s-pack45.adb: Likewise.
9425         * libgnat/s-pack45.ads: Likewise.
9426         * libgnat/s-pack46.adb: Likewise.
9427         * libgnat/s-pack46.ads: Likewise.
9428         * libgnat/s-pack47.adb: Likewise.
9429         * libgnat/s-pack47.ads: Likewise.
9430         * libgnat/s-pack48.adb: Likewise.
9431         * libgnat/s-pack48.ads: Likewise.
9432         * libgnat/s-pack49.adb: Likewise.
9433         * libgnat/s-pack49.ads: Likewise.
9434         * libgnat/s-pack50.adb: Likewise.
9435         * libgnat/s-pack50.ads: Likewise.
9436         * libgnat/s-pack51.adb: Likewise.
9437         * libgnat/s-pack51.ads: Likewise.
9438         * libgnat/s-pack52.adb: Likewise.
9439         * libgnat/s-pack52.ads: Likewise.
9440         * libgnat/s-pack53.adb: Likewise.
9441         * libgnat/s-pack53.ads: Likewise.
9442         * libgnat/s-pack54.adb: Likewise.
9443         * libgnat/s-pack54.ads: Likewise.
9444         * libgnat/s-pack55.adb: Likewise.
9445         * libgnat/s-pack55.ads: Likewise.
9446         * libgnat/s-pack56.adb: Likewise.
9447         * libgnat/s-pack56.ads: Likewise.
9448         * libgnat/s-pack57.adb: Likewise.
9449         * libgnat/s-pack57.ads: Likewise.
9450         * libgnat/s-pack58.adb: Likewise.
9451         * libgnat/s-pack58.ads: Likewise.
9452         * libgnat/s-pack59.adb: Likewise.
9453         * libgnat/s-pack59.ads: Likewise.
9454         * libgnat/s-pack60.adb: Likewise.
9455         * libgnat/s-pack60.ads: Likewise.
9456         * libgnat/s-pack61.adb: Likewise.
9457         * libgnat/s-pack61.ads: Likewise.
9458         * libgnat/s-pack62.adb: Likewise.
9459         * libgnat/s-pack62.ads: Likewise.
9460         * libgnat/s-pack63.adb: Likewise.
9461         * libgnat/s-pack63.ads: Likewise.
9462         * libgnat/s-pack65.adb: Likewise.
9463         * libgnat/s-pack65.ads: Likewise.
9464         * libgnat/s-pack66.adb: Likewise.
9465         * libgnat/s-pack66.ads: Likewise.
9466         * libgnat/s-pack67.adb: Likewise.
9467         * libgnat/s-pack67.ads: Likewise.
9468         * libgnat/s-pack68.adb: Likewise.
9469         * libgnat/s-pack68.ads: Likewise.
9470         * libgnat/s-pack69.adb: Likewise.
9471         * libgnat/s-pack69.ads: Likewise.
9472         * libgnat/s-pack70.adb: Likewise.
9473         * libgnat/s-pack70.ads: Likewise.
9474         * libgnat/s-pack71.adb: Likewise.
9475         * libgnat/s-pack71.ads: Likewise.
9476         * libgnat/s-pack72.adb: Likewise.
9477         * libgnat/s-pack72.ads: Likewise.
9478         * libgnat/s-pack73.adb: Likewise.
9479         * libgnat/s-pack73.ads: Likewise.
9480         * libgnat/s-pack74.adb: Likewise.
9481         * libgnat/s-pack74.ads: Likewise.
9482         * libgnat/s-pack75.adb: Likewise.
9483         * libgnat/s-pack75.ads: Likewise.
9484         * libgnat/s-pack76.adb: Likewise.
9485         * libgnat/s-pack76.ads: Likewise.
9486         * libgnat/s-pack77.adb: Likewise.
9487         * libgnat/s-pack77.ads: Likewise.
9488         * libgnat/s-pack78.adb: Likewise.
9489         * libgnat/s-pack78.ads: Likewise.
9490         * libgnat/s-pack79.adb: Likewise.
9491         * libgnat/s-pack79.ads: Likewise.
9492         * libgnat/s-pack80.adb: Likewise.
9493         * libgnat/s-pack80.ads: Likewise.
9494         * libgnat/s-pack81.adb: Likewise.
9495         * libgnat/s-pack81.ads: Likewise.
9496         * libgnat/s-pack82.adb: Likewise.
9497         * libgnat/s-pack82.ads: Likewise.
9498         * libgnat/s-pack83.adb: Likewise.
9499         * libgnat/s-pack83.ads: Likewise.
9500         * libgnat/s-pack84.adb: Likewise.
9501         * libgnat/s-pack84.ads: Likewise.
9502         * libgnat/s-pack85.adb: Likewise.
9503         * libgnat/s-pack85.ads: Likewise.
9504         * libgnat/s-pack86.adb: Likewise.
9505         * libgnat/s-pack86.ads: Likewise.
9506         * libgnat/s-pack87.adb: Likewise.
9507         * libgnat/s-pack87.ads: Likewise.
9508         * libgnat/s-pack88.adb: Likewise.
9509         * libgnat/s-pack88.ads: Likewise.
9510         * libgnat/s-pack89.adb: Likewise.
9511         * libgnat/s-pack89.ads: Likewise.
9512         * libgnat/s-pack90.adb: Likewise.
9513         * libgnat/s-pack90.ads: Likewise.
9514         * libgnat/s-pack91.adb: Likewise.
9515         * libgnat/s-pack91.ads: Likewise.
9516         * libgnat/s-pack92.adb: Likewise.
9517         * libgnat/s-pack92.ads: Likewise.
9518         * libgnat/s-pack93.adb: Likewise.
9519         * libgnat/s-pack93.ads: Likewise.
9520         * libgnat/s-pack94.adb: Likewise.
9521         * libgnat/s-pack94.ads: Likewise.
9522         * libgnat/s-pack95.adb: Likewise.
9523         * libgnat/s-pack95.ads: Likewise.
9524         * libgnat/s-pack96.adb: Likewise.
9525         * libgnat/s-pack96.ads: Likewise.
9526         * libgnat/s-pack97.adb: Likewise.
9527         * libgnat/s-pack97.ads: Likewise.
9528         * libgnat/s-pack98.adb: Likewise.
9529         * libgnat/s-pack98.ads: Likewise.
9530         * libgnat/s-pack99.adb: Likewise.
9531         * libgnat/s-pack99.ads: Likewise.
9532         * libgnat/s-parame.adb: Likewise.
9533         * libgnat/s-parame.ads: Likewise.
9534         * libgnat/s-parame__hpux.ads: Likewise.
9535         * libgnat/s-parame__posix2008.ads: Likewise.
9536         * libgnat/s-parame__rtems.adb: Likewise.
9537         * libgnat/s-parame__vxworks.adb: Likewise.
9538         * libgnat/s-parame__vxworks.ads: Likewise.
9539         * libgnat/s-parint.adb: Likewise.
9540         * libgnat/s-parint.ads: Likewise.
9541         * libgnat/s-pehage.adb: Likewise.
9542         * libgnat/s-pehage.ads: Likewise.
9543         * libgnat/s-pooglo.adb: Likewise.
9544         * libgnat/s-pooglo.ads: Likewise.
9545         * libgnat/s-pooloc.adb: Likewise.
9546         * libgnat/s-pooloc.ads: Likewise.
9547         * libgnat/s-poosiz.adb: Likewise.
9548         * libgnat/s-poosiz.ads: Likewise.
9549         * libgnat/s-powflt.ads: Likewise.
9550         * libgnat/s-powlfl.ads: Likewise.
9551         * libgnat/s-powllf.ads: Likewise.
9552         * libgnat/s-purexc.ads: Likewise.
9553         * libgnat/s-putima.adb: Likewise.
9554         * libgnat/s-putima.ads: Likewise.
9555         * libgnat/s-rannum.adb: Likewise.
9556         * libgnat/s-rannum.ads: Likewise.
9557         * libgnat/s-ransee.adb: Likewise.
9558         * libgnat/s-ransee.ads: Likewise.
9559         * libgnat/s-regexp.adb: Likewise.
9560         * libgnat/s-regexp.ads: Likewise.
9561         * libgnat/s-regpat.adb: Likewise.
9562         * libgnat/s-regpat.ads: Likewise.
9563         * libgnat/s-resfil.adb: Likewise.
9564         * libgnat/s-resfil.ads: Likewise.
9565         * libgnat/s-restri.adb: Likewise.
9566         * libgnat/s-restri.ads: Likewise.
9567         * libgnat/s-rident.ads: Likewise.
9568         * libgnat/s-rpc.adb: Likewise.
9569         * libgnat/s-rpc.ads: Likewise.
9570         * libgnat/s-scaval.adb: Likewise.
9571         * libgnat/s-scaval.ads: Likewise.
9572         * libgnat/s-scaval__128.adb: Likewise.
9573         * libgnat/s-scaval__128.ads: Likewise.
9574         * libgnat/s-secsta.adb: Likewise.
9575         * libgnat/s-secsta.ads: Likewise.
9576         * libgnat/s-sequio.adb: Likewise.
9577         * libgnat/s-sequio.ads: Likewise.
9578         * libgnat/s-shabig.ads: Likewise.
9579         * libgnat/s-shasto.adb: Likewise.
9580         * libgnat/s-shasto.ads: Likewise.
9581         * libgnat/s-soflin.adb: Likewise.
9582         * libgnat/s-soflin.ads: Likewise.
9583         * libgnat/s-soliin.adb: Likewise.
9584         * libgnat/s-soliin.ads: Likewise.
9585         * libgnat/s-spsufi.adb: Likewise.
9586         * libgnat/s-spsufi.ads: Likewise.
9587         * libgnat/s-stache.adb: Likewise.
9588         * libgnat/s-stache.ads: Likewise.
9589         * libgnat/s-stalib.adb: Likewise.
9590         * libgnat/s-stalib.ads: Likewise.
9591         * libgnat/s-statxd.adb: Likewise.
9592         * libgnat/s-statxd.ads: Likewise.
9593         * libgnat/s-stausa.adb: Likewise.
9594         * libgnat/s-stausa.ads: Likewise.
9595         * libgnat/s-stchop.adb: Likewise.
9596         * libgnat/s-stchop.ads: Likewise.
9597         * libgnat/s-stchop__limit.ads: Likewise.
9598         * libgnat/s-stchop__vxworks.adb: Likewise.
9599         * libgnat/s-stoele.adb: Likewise.
9600         * libgnat/s-stoele.ads: Likewise.
9601         * libgnat/s-stopoo.adb: Likewise.
9602         * libgnat/s-stopoo.ads: Likewise.
9603         * libgnat/s-stposu.adb: Likewise.
9604         * libgnat/s-stposu.ads: Likewise.
9605         * libgnat/s-stratt.adb: Likewise.
9606         * libgnat/s-stratt.ads: Likewise.
9607         * libgnat/s-strcom.adb: Likewise.
9608         * libgnat/s-strcom.ads: Likewise.
9609         * libgnat/s-strhas.adb: Likewise.
9610         * libgnat/s-strhas.ads: Likewise.
9611         * libgnat/s-string.adb: Likewise.
9612         * libgnat/s-string.ads: Likewise.
9613         * libgnat/s-ststop.adb: Likewise.
9614         * libgnat/s-ststop.ads: Likewise.
9615         * libgnat/s-tasloc.adb: Likewise.
9616         * libgnat/s-tasloc.ads: Likewise.
9617         * libgnat/s-traceb.adb: Likewise.
9618         * libgnat/s-traceb.ads: Likewise.
9619         * libgnat/s-traceb__hpux.adb: Likewise.
9620         * libgnat/s-traceb__mastop.adb: Likewise.
9621         * libgnat/s-traent.adb: Likewise.
9622         * libgnat/s-traent.ads: Likewise.
9623         * libgnat/s-trasym.adb: Likewise.
9624         * libgnat/s-trasym.ads: Likewise.
9625         * libgnat/s-trasym__dwarf.adb: Likewise.
9626         * libgnat/s-tsmona.adb: Likewise.
9627         * libgnat/s-tsmona__linux.adb: Likewise.
9628         * libgnat/s-tsmona__mingw.adb: Likewise.
9629         * libgnat/s-unstyp.ads: Likewise.
9630         * libgnat/s-utf_32.adb: Likewise.
9631         * libgnat/s-utf_32.ads: Likewise.
9632         * libgnat/s-vade128.ads: Likewise.
9633         * libgnat/s-vade32.ads: Likewise.
9634         * libgnat/s-vade64.ads: Likewise.
9635         * libgnat/s-vaen16.ads: Likewise.
9636         * libgnat/s-vaen32.ads: Likewise.
9637         * libgnat/s-vaenu8.ads: Likewise.
9638         * libgnat/s-vafi128.ads: Likewise.
9639         * libgnat/s-vafi32.ads: Likewise.
9640         * libgnat/s-vafi64.ads: Likewise.
9641         * libgnat/s-valboo.adb: Likewise.
9642         * libgnat/s-valboo.ads: Likewise.
9643         * libgnat/s-valcha.adb: Likewise.
9644         * libgnat/s-valcha.ads: Likewise.
9645         * libgnat/s-valflt.ads: Likewise.
9646         * libgnat/s-valint.adb: Likewise.
9647         * libgnat/s-valint.ads: Likewise.
9648         * libgnat/s-vallfl.ads: Likewise.
9649         * libgnat/s-valllf.ads: Likewise.
9650         * libgnat/s-vallli.adb: Likewise.
9651         * libgnat/s-vallli.ads: Likewise.
9652         * libgnat/s-valllli.ads: Likewise.
9653         * libgnat/s-vallllu.ads: Likewise.
9654         * libgnat/s-valllu.adb: Likewise.
9655         * libgnat/s-valllu.ads: Likewise.
9656         * libgnat/s-valrea.adb: Likewise.
9657         * libgnat/s-valrea.ads: Likewise.
9658         * libgnat/s-valued.adb: Likewise.
9659         * libgnat/s-valued.ads: Likewise.
9660         * libgnat/s-valuef.adb: Likewise.
9661         * libgnat/s-valuef.ads: Likewise.
9662         * libgnat/s-valuei.adb: Likewise.
9663         * libgnat/s-valuei.ads: Likewise.
9664         * libgnat/s-valuen.adb: Likewise.
9665         * libgnat/s-valuen.ads: Likewise.
9666         * libgnat/s-valuer.adb: Likewise.
9667         * libgnat/s-valuer.ads: Likewise.
9668         * libgnat/s-valueu.adb: Likewise.
9669         * libgnat/s-valueu.ads: Likewise.
9670         * libgnat/s-valuns.adb: Likewise.
9671         * libgnat/s-valuns.ads: Likewise.
9672         * libgnat/s-valuti.adb: Likewise.
9673         * libgnat/s-valuti.ads: Likewise.
9674         * libgnat/s-valwch.adb: Likewise.
9675         * libgnat/s-valwch.ads: Likewise.
9676         * libgnat/s-veboop.adb: Likewise.
9677         * libgnat/s-veboop.ads: Likewise.
9678         * libgnat/s-vector.ads: Likewise.
9679         * libgnat/s-vercon.adb: Likewise.
9680         * libgnat/s-vercon.ads: Likewise.
9681         * libgnat/s-wchcnv.adb: Likewise.
9682         * libgnat/s-wchcnv.ads: Likewise.
9683         * libgnat/s-wchcon.adb: Likewise.
9684         * libgnat/s-wchcon.ads: Likewise.
9685         * libgnat/s-wchjis.adb: Likewise.
9686         * libgnat/s-wchjis.ads: Likewise.
9687         * libgnat/s-wchstw.adb: Likewise.
9688         * libgnat/s-wchstw.ads: Likewise.
9689         * libgnat/s-wchwts.adb: Likewise.
9690         * libgnat/s-wchwts.ads: Likewise.
9691         * libgnat/s-widboo.adb: Likewise.
9692         * libgnat/s-widboo.ads: Likewise.
9693         * libgnat/s-widcha.adb: Likewise.
9694         * libgnat/s-widcha.ads: Likewise.
9695         * libgnat/s-widenu.adb: Likewise.
9696         * libgnat/s-widenu.ads: Likewise.
9697         * libgnat/s-widint.ads: Likewise.
9698         * libgnat/s-widlli.adb: Likewise.
9699         * libgnat/s-widlli.ads: Likewise.
9700         * libgnat/s-widllli.ads: Likewise.
9701         * libgnat/s-widlllu.ads: Likewise.
9702         * libgnat/s-widllu.adb: Likewise.
9703         * libgnat/s-widllu.ads: Likewise.
9704         * libgnat/s-widthi.adb: Likewise.
9705         * libgnat/s-widthi.ads: Likewise.
9706         * libgnat/s-widthu.adb: Likewise.
9707         * libgnat/s-widthu.ads: Likewise.
9708         * libgnat/s-widuns.ads: Likewise.
9709         * libgnat/s-widwch.adb: Likewise.
9710         * libgnat/s-widwch.ads: Likewise.
9711         * libgnat/s-win32.ads: Likewise.
9712         * libgnat/s-winext.ads: Likewise.
9713         * libgnat/s-wwdcha.adb: Likewise.
9714         * libgnat/s-wwdcha.ads: Likewise.
9715         * libgnat/s-wwdenu.adb: Likewise.
9716         * libgnat/s-wwdenu.ads: Likewise.
9717         * libgnat/s-wwdwch.adb: Likewise.
9718         * libgnat/s-wwdwch.ads: Likewise.
9719         * libgnat/system-aix.ads: Likewise.
9720         * libgnat/system-darwin-arm.ads: Likewise.
9721         * libgnat/system-darwin-ppc.ads: Likewise.
9722         * libgnat/system-darwin-x86.ads: Likewise.
9723         * libgnat/system-djgpp.ads: Likewise.
9724         * libgnat/system-dragonfly-x86_64.ads: Likewise.
9725         * libgnat/system-freebsd.ads: Likewise.
9726         * libgnat/system-hpux-ia64.ads: Likewise.
9727         * libgnat/system-hpux.ads: Likewise.
9728         * libgnat/system-linux-alpha.ads: Likewise.
9729         * libgnat/system-linux-arm.ads: Likewise.
9730         * libgnat/system-linux-hppa.ads: Likewise.
9731         * libgnat/system-linux-ia64.ads: Likewise.
9732         * libgnat/system-linux-m68k.ads: Likewise.
9733         * libgnat/system-linux-mips.ads: Likewise.
9734         * libgnat/system-linux-ppc.ads: Likewise.
9735         * libgnat/system-linux-riscv.ads: Likewise.
9736         * libgnat/system-linux-s390.ads: Likewise.
9737         * libgnat/system-linux-sh4.ads: Likewise.
9738         * libgnat/system-linux-sparc.ads: Likewise.
9739         * libgnat/system-linux-x86.ads: Likewise.
9740         * libgnat/system-lynxos178-ppc.ads: Likewise.
9741         * libgnat/system-lynxos178-x86.ads: Likewise.
9742         * libgnat/system-mingw.ads: Likewise.
9743         * libgnat/system-qnx-aarch64.ads: Likewise.
9744         * libgnat/system-rtems.ads: Likewise.
9745         * libgnat/system-solaris-sparc.ads: Likewise.
9746         * libgnat/system-solaris-x86.ads: Likewise.
9747         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
9748         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
9749         * libgnat/system-vxworks-arm.ads: Likewise.
9750         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
9751         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
9752         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
9753         * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
9754         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
9755         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
9756         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
9757         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
9758         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
9759         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
9760         * libgnat/system-vxworks7-aarch64.ads: Likewise.
9761         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
9762         * libgnat/system-vxworks7-arm.ads: Likewise.
9763         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
9764         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
9765         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
9766         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
9767         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
9768         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
9769         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
9770         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
9771         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
9772         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
9773         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
9774         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
9775         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
9776         * link.c: Likewise.
9777         * live.adb: Likewise.
9778         * live.ads: Likewise.
9779         * locales.c: Likewise.
9780         * make.adb: Likewise.
9781         * make.ads: Likewise.
9782         * make_util.adb: Likewise.
9783         * make_util.ads: Likewise.
9784         * makeusg.adb: Likewise.
9785         * makeusg.ads: Likewise.
9786         * mdll-fil.adb: Likewise.
9787         * mdll-fil.ads: Likewise.
9788         * mdll-utl.adb: Likewise.
9789         * mdll-utl.ads: Likewise.
9790         * mdll.adb: Likewise.
9791         * mdll.ads: Likewise.
9792         * mingw32.h: Likewise.
9793         * mkdir.c: Likewise.
9794         * namet-sp.adb: Likewise.
9795         * namet-sp.ads: Likewise.
9796         * namet.adb: Likewise.
9797         * namet.ads: Likewise.
9798         * namet.h: Likewise.
9799         * nlists.adb: Likewise.
9800         * nlists.ads: Likewise.
9801         * nlists.h: Likewise.
9802         * opt.adb: Likewise.
9803         * opt.ads: Likewise.
9804         * osint-b.adb: Likewise.
9805         * osint-b.ads: Likewise.
9806         * osint-c.adb: Likewise.
9807         * osint-c.ads: Likewise.
9808         * osint-l.adb: Likewise.
9809         * osint-l.ads: Likewise.
9810         * osint-m.adb: Likewise.
9811         * osint-m.ads: Likewise.
9812         * osint.adb: Likewise.
9813         * osint.ads: Likewise.
9814         * output.adb: Likewise.
9815         * output.ads: Likewise.
9816         * par-ch10.adb: Likewise.
9817         * par-ch11.adb: Likewise.
9818         * par-ch12.adb: Likewise.
9819         * par-ch13.adb: Likewise.
9820         * par-ch2.adb: Likewise.
9821         * par-ch3.adb: Likewise.
9822         * par-ch4.adb: Likewise.
9823         * par-ch5.adb: Likewise.
9824         * par-ch6.adb: Likewise.
9825         * par-ch7.adb: Likewise.
9826         * par-ch8.adb: Likewise.
9827         * par-ch9.adb: Likewise.
9828         * par-endh.adb: Likewise.
9829         * par-labl.adb: Likewise.
9830         * par-load.adb: Likewise.
9831         * par-prag.adb: Likewise.
9832         * par-sync.adb: Likewise.
9833         * par-tchk.adb: Likewise.
9834         * par-util.adb: Likewise.
9835         * par.adb: Likewise.
9836         * par.ads: Likewise.
9837         * par_sco.adb: Likewise.
9838         * par_sco.ads: Likewise.
9839         * pprint.adb: Likewise.
9840         * pprint.ads: Likewise.
9841         * prep.adb: Likewise.
9842         * prep.ads: Likewise.
9843         * prepcomp.adb: Likewise.
9844         * prepcomp.ads: Likewise.
9845         * put_scos.adb: Likewise.
9846         * put_scos.ads: Likewise.
9847         * raise-gcc.c: Likewise.
9848         * raise.c: Likewise.
9849         * raise.h: Likewise.
9850         * repinfo-input.adb: Likewise.
9851         * repinfo-input.ads: Likewise.
9852         * repinfo.adb: Likewise.
9853         * repinfo.ads: Likewise.
9854         * repinfo.h: Likewise.
9855         * restrict.adb: Likewise.
9856         * restrict.ads: Likewise.
9857         * rident.ads: Likewise.
9858         * rtfinal.c: Likewise.
9859         * rtinit.c: Likewise.
9860         * rtsfind.adb: Likewise.
9861         * rtsfind.ads: Likewise.
9862         * runtime.h: Likewise.
9863         * s-oscons-tmplt.c: Likewise.
9864         * sa_messages.adb: Likewise.
9865         * sa_messages.ads: Likewise.
9866         * scans.adb: Likewise.
9867         * scans.ads: Likewise.
9868         * scil_ll.adb: Likewise.
9869         * scil_ll.ads: Likewise.
9870         * scn.adb: Likewise.
9871         * scn.ads: Likewise.
9872         * scng.adb: Likewise.
9873         * scng.ads: Likewise.
9874         * scos.adb: Likewise.
9875         * scos.ads: Likewise.
9876         * scos.h: Likewise.
9877         * sdefault.ads: Likewise.
9878         * seh_init.c: Likewise.
9879         * sem.adb: Likewise.
9880         * sem.ads: Likewise.
9881         * sem_aggr.adb: Likewise.
9882         * sem_aggr.ads: Likewise.
9883         * sem_attr.adb: Likewise.
9884         * sem_attr.ads: Likewise.
9885         * sem_aux.adb: Likewise.
9886         * sem_aux.ads: Likewise.
9887         * sem_case.adb: Likewise.
9888         * sem_case.ads: Likewise.
9889         * sem_cat.adb: Likewise.
9890         * sem_cat.ads: Likewise.
9891         * sem_ch10.adb: Likewise.
9892         * sem_ch10.ads: Likewise.
9893         * sem_ch11.adb: Likewise.
9894         * sem_ch11.ads: Likewise.
9895         * sem_ch12.adb: Likewise.
9896         * sem_ch12.ads: Likewise.
9897         * sem_ch13.adb: Likewise.
9898         * sem_ch13.ads: Likewise.
9899         * sem_ch2.adb: Likewise.
9900         * sem_ch2.ads: Likewise.
9901         * sem_ch3.adb: Likewise.
9902         * sem_ch3.ads: Likewise.
9903         * sem_ch4.adb: Likewise.
9904         * sem_ch4.ads: Likewise.
9905         * sem_ch5.adb: Likewise.
9906         * sem_ch5.ads: Likewise.
9907         * sem_ch6.adb: Likewise.
9908         * sem_ch6.ads: Likewise.
9909         * sem_ch7.adb: Likewise.
9910         * sem_ch7.ads: Likewise.
9911         * sem_ch8.adb: Likewise.
9912         * sem_ch8.ads: Likewise.
9913         * sem_ch9.adb: Likewise.
9914         * sem_ch9.ads: Likewise.
9915         * sem_dim.adb: Likewise.
9916         * sem_dim.ads: Likewise.
9917         * sem_disp.adb: Likewise.
9918         * sem_disp.ads: Likewise.
9919         * sem_dist.adb: Likewise.
9920         * sem_dist.ads: Likewise.
9921         * sem_elab.adb: Likewise.
9922         * sem_elab.ads: Likewise.
9923         * sem_elim.adb: Likewise.
9924         * sem_elim.ads: Likewise.
9925         * sem_eval.adb: Likewise.
9926         * sem_eval.ads: Likewise.
9927         * sem_intr.adb: Likewise.
9928         * sem_intr.ads: Likewise.
9929         * sem_mech.adb: Likewise.
9930         * sem_mech.ads: Likewise.
9931         * sem_prag.adb: Likewise.
9932         * sem_prag.ads: Likewise.
9933         * sem_res.adb: Likewise.
9934         * sem_res.ads: Likewise.
9935         * sem_scil.adb: Likewise.
9936         * sem_scil.ads: Likewise.
9937         * sem_smem.adb: Likewise.
9938         * sem_smem.ads: Likewise.
9939         * sem_type.adb: Likewise.
9940         * sem_type.ads: Likewise.
9941         * sem_util.adb: Likewise.
9942         * sem_util.ads: Likewise.
9943         * sem_warn.adb: Likewise.
9944         * sem_warn.ads: Likewise.
9945         * set_targ.adb: Likewise.
9946         * set_targ.ads: Likewise.
9947         * sfn_scan.adb: Likewise.
9948         * sfn_scan.ads: Likewise.
9949         * sigtramp-armdroid.c: Likewise.
9950         * sigtramp-ios.c: Likewise.
9951         * sigtramp-qnx.c: Likewise.
9952         * sigtramp-vxworks-target.h: Likewise.
9953         * sigtramp-vxworks.c: Likewise.
9954         * sigtramp.h: Likewise.
9955         * sinfo-cn.adb: Likewise.
9956         * sinfo-cn.ads: Likewise.
9957         * sinfo-utils.adb: Likewise.
9958         * sinfo-utils.ads: Likewise.
9959         * sinfo.adb: Likewise.
9960         * sinfo.ads: Likewise.
9961         * sinput-c.adb: Likewise.
9962         * sinput-c.ads: Likewise.
9963         * sinput-d.adb: Likewise.
9964         * sinput-d.ads: Likewise.
9965         * sinput-l.adb: Likewise.
9966         * sinput-l.ads: Likewise.
9967         * sinput.adb: Likewise.
9968         * sinput.ads: Likewise.
9969         * socket.c: Likewise.
9970         * spark_xrefs.adb: Likewise.
9971         * spark_xrefs.ads: Likewise.
9972         * sprint.adb: Likewise.
9973         * sprint.ads: Likewise.
9974         * stand.ads: Likewise.
9975         * stringt.adb: Likewise.
9976         * stringt.ads: Likewise.
9977         * stringt.h: Likewise.
9978         * strub.adb: Likewise.
9979         * strub.ads: Likewise.
9980         * style.adb: Likewise.
9981         * style.ads: Likewise.
9982         * styleg.adb: Likewise.
9983         * styleg.ads: Likewise.
9984         * stylesw.adb: Likewise.
9985         * stylesw.ads: Likewise.
9986         * switch-b.adb: Likewise.
9987         * switch-b.ads: Likewise.
9988         * switch-c.adb: Likewise.
9989         * switch-c.ads: Likewise.
9990         * switch-m.adb: Likewise.
9991         * switch-m.ads: Likewise.
9992         * switch.adb: Likewise.
9993         * switch.ads: Likewise.
9994         * sysdep.c: Likewise.
9995         * table.adb: Likewise.
9996         * table.ads: Likewise.
9997         * targext.c: Likewise.
9998         * targparm.adb: Likewise.
9999         * targparm.ads: Likewise.
10000         * tbuild.adb: Likewise.
10001         * tbuild.ads: Likewise.
10002         * tempdir.adb: Likewise.
10003         * tempdir.ads: Likewise.
10004         * terminals.c: Likewise.
10005         * tracebak.c: Likewise.
10006         * treepr.adb: Likewise.
10007         * treepr.ads: Likewise.
10008         * ttypes.ads: Likewise.
10009         * types.adb: Likewise.
10010         * types.ads: Likewise.
10011         * types.h: Likewise.
10012         * uintp.adb: Likewise.
10013         * uintp.ads: Likewise.
10014         * uintp.h: Likewise.
10015         * uname.adb: Likewise.
10016         * uname.ads: Likewise.
10017         * urealp.adb: Likewise.
10018         * urealp.ads: Likewise.
10019         * urealp.h: Likewise.
10020         * usage.adb: Likewise.
10021         * usage.ads: Likewise.
10022         * validsw.adb: Likewise.
10023         * validsw.ads: Likewise.
10024         * vast.adb: Likewise.
10025         * vast.ads: Likewise.
10026         * warnsw.adb: Likewise.
10027         * warnsw.ads: Likewise.
10028         * widechar.adb: Likewise.
10029         * widechar.ads: Likewise.
10030         * xoscons.adb: Likewise.
10031         * xr_tabls.adb: Likewise.
10032         * xr_tabls.ads: Likewise.
10033         * xref_lib.adb: Likewise.
10034         * xref_lib.ads: Likewise.
10035         * xsnamest.adb: Likewise.
10036         * xutil.adb: Likewise.
10037         * xutil.ads: Likewise.
10039 2022-01-11  Richard Kenner  <kenner@adacore.com>
10041         * debug.adb: Add documentation for new -gnatd_u and old -gnatd_R
10042         flags used for GNAT LLVM and its CCG.
10044 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
10046         * Makefile.rtl (X86_TARGET_PAIRS): Use __builtin variant of
10047         System.Atomic_Counters.
10048         * libgnat/s-atocou__x86.adb: Remove.
10050 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
10052         * gcc-interface/trans.c (Identifier_to_gnu): Use correct subtype.
10053         (elaborate_profile): New function.
10054         (Call_to_gnu): Call it on the formals and the result type before
10055         retrieving the translated result type from the subprogram type.
10057 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
10059         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Fix
10060         computation of boolean result in the unchecked union case.
10061         (components_to_record): Rename MAYBE_UNUSED parameter to IN_VARIANT
10062         and remove local variable of the same name.  Pass NULL recursively
10063         as P_GNU_REP_LIST for nested variants in the unchecked union case.
10065 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
10067         * gcc-interface/trans.c (lvalue_required_p) <N_Pragma>: New case.
10068         <N_Pragma_Argument_Association>: Likewise.
10069         (Pragma_to_gnu) <Pragma_Inspection_Point>: Fetch the corresponding
10070         variable of a constant before marking it as addressable.
10072 2022-01-10  Arnaud Charlet  <charlet@adacore.com>
10074         * gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Remove
10075         s-casuti.ad?, s-crtl.ad?, s-os_lib.ad?.  Update list of object
10076         files accordingly.
10078 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
10080         * libgnat/s-atopri.ads (Atomic_Compare_Exchange): Replaces
10081         deprecated Sync_Compare_And_Swap.
10082         * libgnat/s-atopri.adb (Lock_Free_Try_Write): Switch from __sync
10083         to __atomic builtins.
10085 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
10087         * libgnat/s-exponn.adb, libgnat/s-expont.adb,
10088         libgnat/s-exponu.adb, libgnat/s-widthi.adb,
10089         libgnat/s-widthu.adb: Remove CodePeer annotations for pragma
10090         Loop_Variant.
10092 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
10094         * exp_prag.adb (Expand_Pragma_Loop_Variant): Disable expansion
10095         in CodePeer mode.
10097 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
10099         * sem_util.adb (Is_Child_Or_Sibling): Fix typo in comment.
10101 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
10103         * exp_pakd.adb (Install_PAT): If the PAT is a scalar type, apply
10104         the canonical adjustment to its alignment.
10106 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
10108         * libgnat/s-atocou__builtin.adb (Decrement, Increment): Switch
10109         from __sync to __atomic builtins; use 'Address to be consistent
10110         with System.Atomic_Primitives.
10112 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
10114         * exp_pakd.adb (Install_PAT): Do not reset the alignment here.
10115         * layout.adb (Layout_Type): Call Adjust_Esize_Alignment after having
10116         copied the RM_Size onto the Esize when the latter is too small.
10118 2022-01-10  Justin Squirek  <squirek@adacore.com>
10120         * sem_warn.adb (Check_References): Handle arrays of tasks
10121         similar to task objects.
10123 2022-01-07  Patrick Bernardi  <bernardi@adacore.com>
10125         * libgnat/a-direct.adb (Search_Data): Remove type.
10126         (Directory_Vectors): New package instantiation.
10127         (Search_State): New type.
10128         (Fetch_Next_Entry): Remove.
10129         (Close): Remove.
10130         (Finalize): Rewritten.
10131         (Full_Name): Ditto.
10132         (Get_Next_Entry): Return next entry from Search results vector
10133         rather than querying the directory directly using readdir.
10134         (Kind): Rewritten.
10135         (Modification_Time): Rewritten.
10136         (More_Entries): Use Search state cursor to determine if more
10137         entries are available for users to read.
10138         (Simple_Name): Rewritten.
10139         (Size): Rewritten.
10140         (Start_Search_Internal): Rewritten to load the contents of the
10141         directory that matches the pattern and filter into the search
10142         object.
10143         * libgnat/a-direct.ads (Search_Type): New type.
10144         (Search_Ptr): Ditto.
10145         (Directory_Entry_Type): Rewritten to support new Start_Search
10146         procedure.
10147         * libgnat/s-filatt.ads (File_Length_Attr): New function.
10149 2022-01-07  Etienne Servais  <servais@adacore.com>
10151         * sem_attr.adb (Check_Reference): Fix condition.
10153 2022-01-07  Ghjuvan Lacambre  <lacambre@adacore.com>
10155         * libgnarl/s-taprop__mingw.adb (Timed_Sleep): Remove "pragma
10156         Unreferenced" for Result.
10157         (Timed_Delay): Likewise.
10159 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10161         * gen_il-gen.adb (Put_Make_Decls): Put pragma Inline in a
10162         dedicated line, so that the current indentation is taken into
10163         account.
10165 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10167         * exp_aggr.adb (Build_Array_Aggr_Code): Fix inconsistent style
10168         in comments and code.
10170 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10172         * exp_aggr.adb (Gen_Assign): Remove explicit initialization for
10173         components of access types.
10174         (Get_Assoc_Expr): Enable initialization for components of all
10175         types that require simple initialization.
10177 2022-01-07  Javier Miranda  <miranda@adacore.com>
10179         * atree.ads (Traverse_Func_With_Parent): New generic subprogram.
10180         (Traverse_Proc_With_Parent): Likewise.
10181         * atree.adb (Parents_Stack): New table used to traverse trees
10182         passing the parent field of each node.
10183         (Internal_Traverse_With_Parent): New generic subprogram.
10184         (Traverse_Func_With_Parent): Likewise.
10185         (Traverse_Proc_With_Parent): Likewise.
10186         * contracts.adb (Fix_Parents): New subprogram.
10187         (Restore_Original_Selected_Component): Enhanced to fix the
10188         parent field of restored nodes.
10189         (Inherit_Condition): Adding assertions to check the parent field
10190         of inherited conditions and to ensure that the built inherited
10191         condition has no reference to the formals of the parent
10192         subprogram.
10193         * sem_util.ads, sem_util.adb (Check_Parents): New subprogram.
10195 2022-01-07  Etienne Servais  <servais@adacore.com>
10197         * sem_attr.adb (Check_Placement_In_Test_Case): Fix typo.
10199 2022-01-07  Justin Squirek  <squirek@adacore.com>
10201         * comperr.adb (Delete_SCIL_Files): Replace unnecessary
10202         Unreferenced pragma with specific pragma Warnings.
10203         * doc/gnat_rm/implementation_defined_pragmas.rst (Unreferenced):
10204         Add documentation for new behavior.
10205         * gnat_rm.texi: Regenerate.
10206         * erroutc.adb (Set_At): Remove useless assignment.
10207         * exp_ch2.adb (In_Assignment_Context): Deleted.
10208         (Is_Object_Renaming_Name): Replace calls to Is_LHS with calls to
10209         Known_To_Be_Assigned.
10210         (Expand_Current_Value): Replace calls to May_Be_Lvalue with
10211         calls to Known_To_Be_Assigned.
10212         (Expand_Entry_Paramter): Replace calls to In_Assignment_Context
10213         with calls to Known_To_Be_Assigned.
10214         * exp_ch4.adb (Expand_N_Op_Rem): Remove unnecessary Unreferenced
10215         pragma.
10216         * exp_imgv.adb (Build_Enumeration_Image_Tables): Default
10217         initialize S_N.
10218         * ghost.adb (Check_Ghost_Policy): Replace call to May_Be_Lvalue
10219         with call to Known_To_Be_Assigned.
10220         * lib-xref.adb (Is_On_LHS): Deleted.
10221         (OK_To_Set_Referenced): Rewrite subprogram to encompass the new
10222         pragma Unreferenced behavior.
10223         (Process_Deferred_References): Replace call to Is_LHS with call
10224         to Known_To_Be_Assigned.
10225         * libgnarl/s-taasde.adb, libgnarl/s-tasren.adb,
10226         libgnarl/s-tpobop.adb, libgnat/a-calend.adb,
10227         libgnat/a-calfor.adb, libgnat/a-cbdlli.adb,
10228         libgnat/a-cbhama.adb, libgnat/a-cbhase.adb,
10229         libgnat/a-cbmutr.adb, libgnat/a-cborma.adb,
10230         libgnat/a-cborse.adb, libgnat/a-cdlili.adb,
10231         libgnat/a-cfhama.adb, libgnat/a-cforse.adb,
10232         libgnat/a-cidlli.adb, libgnat/a-cihama.adb,
10233         libgnat/a-cihase.adb, libgnat/a-cimutr.adb,
10234         libgnat/a-ciorma.adb, libgnat/a-ciormu.adb,
10235         libgnat/a-ciorse.adb, libgnat/a-cohama.adb,
10236         libgnat/a-cohase.adb, libgnat/a-comutr.adb,
10237         libgnat/a-convec.adb, libgnat/a-coorma.adb,
10238         libgnat/a-coormu.adb, libgnat/a-coorse.adb,
10239         libgnat/a-crdlli.adb, libgnat/a-tigeau.adb,
10240         libgnat/a-wtgeau.adb, libgnat/a-ztgeau.adb,
10241         libgnat/g-calend.adb, libgnat/g-comlin.adb,
10242         libgnat/g-expect.adb, libgnat/g-mbflra.adb,
10243         libgnat/g-spipat.adb, libgnat/s-fatgen.adb,
10244         libgnat/s-fileio.adb, libgnat/s-os_lib.adb,
10245         libgnat/s-regpat.adb, libgnat/s-valued.adb,
10246         libgnat/s-valuer.adb: Remove unnecessary Unreferenced pragmas
10247         * sem_ch10.adb (Process_Spec_Clauses): Remove useless
10248         assignments.
10249         * sem_ch13.adb (Validate_Literal_Aspect): Default initialize I.
10250         * sem_ch3.adb (Build_Derived_Concurrent_Type): Default
10251         initialize Corr_Decl.
10252         * sem_ch8.adb (Undefined): Replace calls to Is_LHS with calls to
10253         Known_To_Be_Assigned.
10254         (In_Abstract_View_Pragma): Likewise.
10255         * sem_eval.adb (Eval_Selected_Component): Replace calls to
10256         Is_LHS with calls to Known_To_Be_Assigned.
10257         * sem_res.adb (Init_Component): Replace calls to May_Be_Lvalue
10258         with calls to Known_To_Be_Assigned.
10259         * sem_util.adb, sem_util.ads (End_Label_Loc): Default initialize
10260         Owner.
10261         (Explain_Limited_Type): Default initialize Expr_Func.
10262         (Find_Actual): Modified to handle entry families.
10263         (Is_LHS): Deleted.
10264         (May_Be_Lvalue): Deleted.
10265         (Known_To_Be_Assigned): Modified and improved to handle all
10266         cases.
10267         * sem_warn.adb (Traverse_Result): Replace calls to May_Be_Lvalue
10268         with calls to Known_To_Be_Assigned.
10269         (Check_Ref): Modify error on unreferenced out parameters to take
10270         into account different warning flags.
10272 2022-01-07  Javier Miranda  <miranda@adacore.com>
10274         * sem_ch3.adb (Reorder_Interfaces): When the conflicting
10275         interface is identified we just replace the interface in the
10276         list of interfaces of the tagged type (instead of adding a
10277         duplicate to the list of interfaces).
10279 2022-01-07  Dmitriy Anisimkov  <anisimko@adacore.com>
10281         * adaint.c (__gnat_kill): Terminate process only in case of
10282         SIGKILL, SIGINT, SIGBREAK, SIGTERM, SIGABRT.  Do not call
10283         OpenProcess if not going to terminate process.
10285 2022-01-07  Eric Botcazou  <ebotcazou@adacore.com>
10287         * exp_prag.adb (Expand_Pragma_Inspection_Point): Do a single pass
10288         over the arguments of the pragma.  Set the Address_Taken flag on
10289         them and use the Has_Delayed_Freeze flag to spot those which have
10290         their elaboration delayed.  Reuse the location variable Loc.
10292 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10294         * osint.adb (To_Lower): Clarify that only To_Lower function
10295         causes bootstrap issues; fix style.
10296         * treepr.adb (Print_Str_Mixed_Case): Reuse existing case
10297         conversion routine.
10298         (To_Mixed): Rename from Capitalize; reuse System.Case_Util
10299         procedure and explain the bootstrap issue.
10301 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10303         * exp_ch7.adb (Process_Transients_In_Scope): Remove unnecessary
10304         initialization of Must_Hook; change Detect_Subprogram_Call from
10305         function to procedure; adapt caller.
10307 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10309         * exp_ch5.adb, exp_disp.adb, exp_util.adb, par-ch4.adb,
10310         sem_ch13.adb: Remove extra space before THEN that occurs at the
10311         end of a line.
10313 2022-01-07  Dmitriy Anisimkov  <anisimko@adacore.com>
10315         * expect.c (__gnat_waitpid): Use macros WIFEXITED, WEXITSTATUS,
10316         WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG to get exit status
10317         or signal that caused the child process to terminate/stop.  Do
10318         not process exit status in case of error in waitpid call.
10319         * adaint.c (__gnat_kill): Use of GenerateConsoleCtrlEvent is
10320         removed in Windows variant as it actually is not working and was
10321         terminating the calling process.  Set signal number into exit
10322         code parameter of TerminateProcess to work the same like in
10323         Linux.
10325 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10327         * exp_ch5.adb (Expand_N_Case_Statement): Remove explicit
10328         expansion.
10330 2022-01-07  Etienne Servais  <servais@adacore.com>
10332         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
10333         Update -gnatwr documentation.
10334         * gnat_ugn.texi: Regenerate.
10336 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10338         * exp_unst.adb (Unnest_Subprogram): Sync comment with the
10339         current code.
10341 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10343         * exp_ch4.adb (Raise_Accessibility_Error): Move exception name
10344         to the message string; move << control characters to the end,
10345         for consistency.
10346         * sem_ch6.adb (Analyze_Function_Return): Likewise.
10347         * sem_util.adb (Compile_Time_Constraint_Error): Likewise.
10348         * gcc-interface/decl.c (gnat_to_gnu_entity): Remove quotes
10349         around Storage_Error.
10350         * gcc-interface/trans.c (gnat_to_gnu): Remove quotes around
10351         Constraint_Error.
10353 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10355         * errout.adb (Error_Msg): Move warning suppression code from
10356         Error_Msg_NLE
10357         (Error_Msg_NLE): Warning suppression is now done by the internal
10358         call to Error_Msg.
10360 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10362         * exp_ch3.adb (Expand_N_Object_Declaration): Remove unnecessary
10363         guards.
10364         * exp_ch4.adb (Expand_N_If_Expression): Likewise; clarify comment.
10365         * exp_ch5.adb (Expand_N_If_Statement,
10366         Expand_Iterator_Loop_Over_Container): Likewise.
10367         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Remove redundant
10368         guard.
10369         * freeze.adb (Freeze_All_Ent): Reduce scope of a local variable.
10371 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
10373         * exp_ch3.adb (Build_Init_Procedure): Remove unnecessary guard.
10374         * exp_disp.adb (Make_DT): Likewise.
10375         * sem_ch12.adb (Analyze_Associations): Likewise.
10377 2022-01-07  Etienne Servais  <servais@adacore.com>
10379         * sem_res.adb (Resolve_Op_Concat_Arg): Check range when
10380         concatenating scalars.
10382 2022-01-07  Bob Duff  <duff@adacore.com>
10384         * treepr.adb (Print_Node_Ref): Change "not Is_Array_Type" to
10385         "Is_Discrete_Type".
10387 2022-01-07  Richard Kenner  <kenner@adacore.com>
10389         * libgnat/g-spipat.ads (Boolean_Func, Natural_Func,
10390         VString_Func): Mark as Favor_Top_Level.
10391         * sem_ch13.adb (Validate_Unchecked_Conversion): Avoid using
10392         internal representation if Unchecked_Conversion between
10393         an access to subprogram and System.Address within the same unit.
10395 2022-01-07  Bob Duff  <duff@adacore.com>
10397         * treepr.adb (Print_Node_Ref): Print the value if available.
10399 2022-01-07  Richard Kenner  <kenner@adacore.com>
10401         * sem_util.ads, sem_util.adb (Get_Fullest_View): Add option to
10402         not recurse and return the next-most-fullest view.
10404 2022-01-07  Bob Duff  <duff@adacore.com>
10406         * sem_ch10.adb (Check_Redundant_Withs): Add a warning if a
10407         library unit with's its own ancestor. Note that this warning is
10408         not triggered for something like "with P.R;" in P.Q, because
10409         there the "with P;" is considered implicit.
10410         * fname-sf.adb, libgnarl/s-stusta.adb, libgnarl/s-tasdeb.ads,
10411         libgnat/a-calfor.adb, libgnat/a-tiboio.adb,
10412         libgnat/a-wwboio.adb, libgnat/a-zzboio.adb, libgnat/i-cobol.adb,
10413         libgnat/s-bitops.adb, libgnat/s-bitops.ads,
10414         libgnat/s-direio.adb, libgnat/s-dwalin.adb,
10415         libgnat/s-geveop.adb, libgnat/s-mmosin__unix.adb,
10416         libgnat/s-os_lib.adb, libgnat/s-os_lib.ads,
10417         libgnat/s-pooglo.ads, libgnat/s-secsta.adb,
10418         libgnat/s-shasto.adb, libgnat/s-stausa.ads,
10419         libgnat/s-stratt.ads, libgnat/s-ststop.adb: Remove with of
10420         parent.
10421         * sinfo.ads: Minor comment fix.
10423 2022-01-07  Bob Duff  <duff@adacore.com>
10425         * osint-m.adb: Remove with_clause and pragma.
10427 2022-01-06  Bob Duff  <duff@adacore.com>
10429         * sem_res.adb (Resolve_Range): Warn on null range, unless we are
10430         inside a generic unit or an instance thereof.
10431         * sem_ch3.adb (Analyze_Subtype_Indication): Minor: avoid double
10432         negative.
10434 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10436         * errout.adb (Adjust_Name_Case): Remove unnecessary declare
10437         block.
10439 2022-01-06  Yannick Moy  <moy@adacore.com>
10441         * libgnat/a-ngcoar.adb: Add pragma to ignore assertions in
10442         instance.
10443         * libgnat/a-ngrear.adb: Likewise.
10444         * libgnat/s-gearop.adb: Prove implementation is free of runtime
10445         errors.
10446         * libgnat/s-gearop.ads: Add contracts to protect against runtime
10447         errors in the generic part.
10449 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10451         * errout.adb (Remove_Warning_Messages): Use traversal procedure
10452         instead of traversal function, since we discard status of each
10453         step anyway.
10455 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10457         * exp_ch4.adb (Expand_Concatenate): There is no reason for using
10458         declaring, raising and catching an exception; a simple return
10459         statement is enough.
10461 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10463         * sem_eval.adb (Eval_Arithmetic_Op): Add Loc parameter to all
10464         calls to Apply_Compile_Time_Constraint_Error related to division
10465         by zero.
10467 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10469         * errout.adb (Remove_Warning_Messages): Remove unnecessary guard.
10470         * exp_util.adb (Kill_Dead_Code): Likewise.
10471         * par_sco.adb (Traverse_Declarations_Or_Statements): Likewise.
10472         * sem_ch3.adb (Build_Derived_Record_Type): Likewise.
10473         * sem_ch4.adb (Traverse_Interfaces): Likewise.
10474         * sem_eval.adb (Traverse_Interfaces): Likewise.
10475         * sem_util.adb (Collect_Interfaces): Likewise.
10476         (Has_Non_Null_Statements, Side_Effect_Free_Statements):
10477         Likewise; turn into WHILE loops, for consistency.
10479 2022-01-06  Etienne Servais  <servais@adacore.com>
10481         * sem_type.adb (Full_View_Covers): Fix typo.
10483 2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10485         * sem_ch12.adb (Insert_Freeze_Node_For_Instance): When going to
10486         the outer level, do not jump over following instantiations in
10487         the list.
10489 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10491         * err_vars.ads (Warn_On_Instance): Remove; it was a relic from
10492         the previous handling of warning in instances that was removed
10493         decades ago.
10495 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10497         * errout.adb (Error_Msg_Internal): Reorder words.
10498         * erroutc.ads (Is_Warning_Msg): Add closing paren.
10499         * sem_util.adb (Compile_Time_Constraint_Error): Fix casing.
10501 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10503         * sem_res.adb (Resolve_String_Literal): Simplify pointer
10504         arithmetic.
10506 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10508         * sem_res.adb (Resolve_String_Literal): Avoid unnecessary
10509         conversions inside "<" and ">" bodies.
10511 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10513         * checks.adb (Null_Exclusion_Static_Checks,
10514         Selected_Range_Checks): Fix style.
10516 2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10518         * sem_ch8.adb (Analyze_Package_Renaming): Do not check for Text_IO
10519         special units when the name of the renaming is a generic instance,
10520         which is the case for package instantiations in the GNAT model.
10522 2022-01-06  Steve Baird  <baird@adacore.com>
10524         * sem_util.adb (Build_Discriminant_Reference): In the unexpected
10525         case where we previously would fail an assertion, we instead
10526         revert to the old behavior.
10528 2022-01-06  Steve Baird  <baird@adacore.com>
10530         * sem_util.adb (Build_Actual_Subtype_Of_Component): Define a new
10531         local function, Build_Discriminant_Reference, and call it in
10532         each of the three cases where Make_Selected_Component was
10533         previously being called to construct a discriminant reference (2
10534         in Build_Actual_Array_Constraint and 1 in
10535         Build_Actual_Record_Constraint). Instead of unconditionally
10536         using the passed-in object name as the prefix for the new
10537         selected component node, this new function checks to see if
10538         perhaps a prefix of that name should be used instead.
10540 2022-01-06  Etienne Servais  <servais@adacore.com>
10542         * atree.adb: Fix typo.
10543         * einfo.ads: Likewise.
10544         * exp_aggr.adb: Likewise.
10545         * exp_ch6.adb: Likewise.
10546         * exp_ch7.adb: Likewise.
10547         * exp_ch9.adb: Likewise.
10548         * exp_prag.adb: Likewise.
10549         * exp_unst.adb: Likewise.
10550         * exp_unst.ads: Likewise.
10551         * exp_util.adb: Likewise.
10552         * par-endh.adb: Likewise.
10553         * par.adb: Likewise.
10554         * restrict.adb: Likewise.
10555         * sem.ads: Likewise.
10556         * sem_ch4.adb: Likewise.
10557         * sem_ch5.adb: Likewise.
10558         * sem_ch6.adb: Likewise.
10559         * sem_ch8.adb: Likewise.
10560         * sem_ch12.adb: Likewise.
10561         * sem_ch13.adb: Likewise.
10562         * sem_dim.adb: Likewise.
10563         * sem_elab.adb: Likewise.
10564         * sem_prag.adb: Likewise.
10565         * sem_res.adb: Likewise.
10566         * sem_util.adb: Likewise.
10567         * sem_util.ads: Likewise.
10568         * sinfo.ads: Likewise.
10569         * sprint.adb: Likewise.
10570         * urealp.adb: Likewise.
10572 2022-01-06  Justin Squirek  <squirek@adacore.com>
10574         * exp_ch3.adb (Build_Assignment): Replace current instance of
10575         type with Init_Proc formal.
10576         * sem_attr.adb (OK_Self_Reference): Handle recognition of
10577         Current_Instance to detect certain expansion.
10578         * sem_ch4.adb (Analyze_One_Call): Set actual's type when the
10579         actual in question is a current instance and its corresponding
10580         formal is an incomplete type.
10581         * sem_util.adb (Is_Current_Instance): Add check for incomplete
10582         views and add comment.
10584 2022-01-06  Bob Duff  <duff@adacore.com>
10586         * libgnat/s-rident.ads (No_Tagged_Type_Registration): New
10587         restriction identifier.
10588         * restrict.ads (Implementation_Restriction): Add restriction.
10589         * exp_ch7.adb (Process_Declarations): Suppress
10590         tagged-type-related finalization actions if the restriction is
10591         active.  Call RTE_Available last.
10592         * exp_disp.adb (Make_DT): Likewise.
10593         * exp_util.adb (Requires_Cleanup_Actions): Return False for a
10594         tagged type declaration if No_Tagged_Type_Registration is
10595         active.
10596         * sem_attr.adb (Check_Stream_Attribute): Check restriction
10597         No_Tagged_Type_Registration.
10598         * libgnat/a-except.ads (Null_Occurrence): Minor: Initialize, to
10599         avoid stopping at a warning in gdb.
10600         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
10601         Document new restriction.
10602         * gnat_rm.texi: Regenerate.
10604 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10606         * par-ch4.adb (P_Simple_Expression): Reuse Null_String_Id.
10607         * prep.adb (Parse_Def_File): Likewise; remove Empty_String.
10609 2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10611         * stand.ads (Any_Access): Delete.
10612         (Universal_Access): New entity.
10613         * einfo.ads: Remove obsolete reference to Any_Access.
10614         * gen_il-gen-gen_entities.adb: Likewise.
10615         * cstand.adb (Create_Standard): Do not create Any_Access and create
10616         Universal_Access as a full type instead.
10617         * errout.adb (Set_Msg_Insertion_Type_Reference): Do not deal with
10618         Any_Access and deal with Universal_Access instead.
10619         * sem_ch3.adb (Analyze_Object_Declaration): Replace Any_Access with
10620         Universal_Access.
10621         * sem_ch4.adb (Analyze_Null): Likewise.
10622         (Find_Non_Universal_Interpretations): Likewise.
10623         (Find_Equality_Types.Try_One_Interp): Likewise and avoid shadowing
10624         by renaming a local variable of the same name.
10625         * sem_res.adb (Make_Call_Into_Operato): Likewise.
10626         (Resolve_Equality_Op): Likewise.
10627         * sem_type.adb (Covers): Likewise.
10628         (Specific_Type): Likewise.
10630 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10632         * treepr.adb (Destroy): Prevent spurious check from CodePeer.
10634 2022-01-06  Yannick Moy  <moy@adacore.com>
10636         * libgnat/s-exponu.adb (Exponu): Add annotation.
10638 2022-01-06  Justin Squirek  <squirek@adacore.com>
10640         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add comments
10641         regarding special handling of components which depend on
10642         discriminants.
10643         * exp_dist.adb (Build_From_Any_Function): Add Real_Rep actual
10644         for calls to Has_Stream_Attribute_Definition.
10645         (Build_To_Any_Function): Likewise.
10646         (Build_TypeCode_Function): Likewise.
10647         * freeze.adb (Freeze_Entity): Add missing comment for Test_E.
10648         * libgnat/s-utf_32.adb: Remove disabled warning comments and
10649         temporarily inserted pragma warnings.  Remove very old (2006 and
10650         2012) comments about bootstrapping older versions.
10651         * par.adb (P_Identifier): Add new parameter Force_Msg.
10652         * par-ch2.adb (P_Identifier): Restructure and clean up function.
10653         * par-ch3.adb (P_Defining_Identifier): Remove code duplication
10654         for parsing identifiers.
10655         * sem_attr.adb (Stream_Attribute_Available): Add missing
10656         comments and add Real_Rep actual for calls to
10657         Has_Stream_Attribute_Definition.
10658         * sem_cat.adb (Has_Read_Write_Attribute): Add Real_Rep actual
10659         for calls to Has_Stream_Attribute_Definition.
10660         (Has_Stream_Attribute_Definition): Remove local Real_Rep and fix
10661         recursive calls. Add default value for Real_Rep.
10662         * sem_cat.ads (Has_Stream_Attribute_Definition): Add new out
10663         parameter "Real_Rep".
10664         * sem_type.adb (Add_Entry): Add condition to avoid passing
10665         non-function calls to Function_Interp_Has_Abstract_Op.
10666         (Function_Interp_Has_Abstract_Op): Add missing comments and
10667         remove check for Is_Overloadable.
10668         * sem_util.adb (Derivation_Too_Early_To_Inherit): Remove
10669         duplicated code.
10671 2022-01-06  Javier Miranda  <miranda@adacore.com>
10673         * contracts.adb (Restore_Original_Selected_Component): New
10674         subprogram that traverses a preanalyzed expression searching for
10675         dispatching calls to functions whose original node was a
10676         selected component, and replacing them with their original node.
10677         This functionality is required because the preanalyis of
10678         dispatching calls using the Object.Operation notation transforms
10679         such calls, and we need the original condition to properly
10680         inherit and extend the condition expression on tagged type
10681         derivations.  This functionality was previously provided by the
10682         routine Install_Original_Selected_Component (as part of
10683         inheriting conditions); now it is performed as part of the
10684         preanalysis of the condition, thus avoiding repeatedly
10685         installing and restoring such nodes.
10686         (Install_Original_Selected_Component): Removed.
10687         (Restore_Dispatching_Calls): Removed.
10689 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10691         * treepr.adb (Visit_Node): Simplify repeated call to
10692         Next_Entity.
10694 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10696         * treepr.ads (Treepr, Print_Tree_List, Print_Tree_Elist): Fix
10697         style in comments.
10698         * treepr.adb (Serial_Numbers): Hash table instance.
10699         (Hash): Hashing routine.
10700         (Print_Field): Fix style.
10701         (Print_Init): Adapt to simple hash table.
10702         (Print_Term): Likewise.
10703         (Serial_Numbers): Likewise.
10704         (Set_Serial_Number): Likewise.
10706 2022-01-06  Yannick Moy  <moy@adacore.com>
10708         * libgnat/s-expmod.adb: Mark in SPARK. Add ghost code for proof.
10709         * libgnat/s-expmod.ads: Mark in SPARK. Add ghost specifications.
10711 2022-01-06  Yannick Moy  <moy@adacore.com>
10713         * libgnat/s-explllu.ads: Mark in SPARK.
10714         * libgnat/s-expllu.ads: Mark in SPARK.
10715         * libgnat/s-exponu.adb: Add loop invariants and needed
10716         assertions.
10717         * libgnat/s-exponu.ads: Add functional contract.
10718         * libgnat/s-expuns.ads: Mark in SPARK.
10720 2022-01-05  Steve Baird  <baird@adacore.com>
10722         * exp_ch5.adb (Finish_Binding_Object_Declaration): Fix a bug
10723         that was introduced in the previous commit.  The previous
10724         version initialized a Boolean constant Declare_Copy before the
10725         variable Decl had been initialized properly.
10727 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10729         * sem_prag.adb (Adjust_External_Name_Case): Use membership test.
10731 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10733         * exp_ch3.adb (Make_Controlling_Function_Wrappers): For
10734         GNATprove build the wrapper as an expression function.
10736 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10738         * exp_ch3.ads (Make_Controlling_Function_Wrappers): Move
10739         declaration from body to spec, so it can be called by
10740         SPARK-specific expansion.
10741         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Likewise.
10742         * exp_spark.adb (SPARK_Freeze_Type): Enable expansion of
10743         wrappers for function with controlling result types.
10745 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10747         * exp_dbug.adb, sem_dim.adb: Replace Add_Str_To_Name_Buffer with
10748         Add_Char_To_Name_Buffer.
10750 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10752         * gnatls.adb (Gnatls): Use Name_Find function.
10753         * targparm.adb (Get_Target_Parameters): Likewise.
10755 2022-01-05  Bob Duff  <duff@adacore.com>
10757         * repinfo.adb (List_Entities): The code was assuming that if we
10758         encounter a package in the current scope, then it must be
10759         a (physically) nested package.  That was wrong, because it could
10760         be a child package.  Avoid recursing into child packages; they
10761         have not been annotated with representation information, and
10762         -gnatR2 queries that information.
10764 2022-01-05  Marc Poulhiès  <poulhies@adacore.com>
10766         * libgnat/s-sopco3.ads, libgnat/s-sopco3.adb: Remove.
10767         * libgnat/s-sopco4.ads, libgnat/s-sopco4.adb: Remove.
10768         * libgnat/s-sopco5.ads, libgnat/s-sopco5.adb: Remove.
10769         * libgnat/s-strops.ads, libgnat/s-strops.adb: Remove.
10770         * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove occurences of removed
10771         units.
10772         * gcc-interface/Make-lang.in (ada/sdefault.o): Remove
10773         dependencies on removed units.
10774         (GNATBIND_OBJS): Remove occurences of removed units.
10776 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10778         * exp_ch3.adb (Build_Dcheck_Function): Remove extra whitespace.
10779         * libgnarl/s-taskin.adb (Initialize_ATCB): Likewise.
10781 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10783         * exp_attr.adb (Build_Array_VS_Func): Remove explicit "IN" in
10784         spec of the generated array validation function; it was
10785         redundant, just like it would be in a user-written code.
10787 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10789         * exp_ch4.adb (Expand_N_Op_Ne): Fix whitespace.
10790         * sem_dim.adb (Expand_Put_Call_With_Symbol): Likewise.
10791         (Reduce): Likewise.
10793 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10795         * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Fix whitespace.
10796         * libgnat/a-cofuve.ads (Add): Likewise.
10797         * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise.
10799 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10801         * exp_ch3.adb (Make_Eq_Body, Make_Neq_Body,
10802         Make_Predefined_Primitive_Eq_Spec,
10803         Make_Predefined_Primitive_Specs): Fix whitespace.
10805 2022-01-05  Etienne Servais  <servais@adacore.com>
10807         * sem_ch3.adb (Analyze_Component_Declaration): Rework condition
10808         to build subtypes.
10809         (Analyze_Object_Declaration): Likewise.
10810         (Should_Build_Subtype): New.
10812 2022-01-05  Yannick Moy  <moy@adacore.com>
10814         * libgnat/s-arit128.adb: Mark in SPARK.
10815         * libgnat/s-arit128.ads: Add functional contracts.
10817 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10819         * sem_util.adb (String_From_Numeric_Literal): Simplify using
10820         membership tests and ranges; fix whitespace.
10822 2022-01-05  Yannick Moy  <moy@adacore.com>
10824         * libgnat/s-expint.ads: Mark in SPARK. Adapt to change to
10825         package.
10826         * libgnat/s-explli.ads: Likewise.
10827         * libgnat/s-expllli.ads: Likewise.
10828         * libgnat/s-expont.adb: Add lemmas and ghost code.
10829         * libgnat/s-expont.ads: Add functional contract.
10831 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10833         * exp_disp.adb (Gen_Parameters_Profile): Remove redundant guard.
10835 2022-01-05  Claire Dross  <dross@adacore.com>
10837         * libgnat/s-valuti.ads (Starts_As_Exponent_Format_Ghost): Ghost
10838         function to determine if a string is recognized as something
10839         which might be an exponent.
10840         (Is_Opt_Exponent_Format_Ghost): Ghost function to determine if a
10841         string has the correct format for an optional exponent.
10842         (Scan_Exponent): Use ghost functions to factorize contracts.
10844 2022-01-05  Bob Duff  <duff@adacore.com>
10846         * exp_util.ads (Get_Current_Value_Condition): Belt: Add a
10847         postcondition that Val /= Var.
10848         * sem_util.adb (Known_Null): Suspenders: Raise Program_Error if
10849         Get_Current_Value_Condition returned the same value. This will
10850         be enabled even without assertions, because infinite recursion
10851         is a nuisance -- better to crash if this bug ever occurs.
10853 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10855         * exp_ch3.adb (Make_Null_Procedure_Specs): Simplify by reusing
10856         Copy_Subprogram_Spec.
10857         * sem_util.ads (Copy_Subprogram_Spec): Add New_Sloc parameter.
10858         * sem_util.adb (Copy_Subprogram_Spec): Pass New_Sloc to
10859         New_Copy_Tree.
10861 2022-01-05  Yannick Moy  <moy@adacore.com>
10863         * libgnat/s-exnint.ads: Mark in SPARK. Adapt to change to
10864         package.
10865         * libgnat/s-exnlli.ads: Likewise.
10866         * libgnat/s-exnllli.ads: Likewise.
10867         * libgnat/s-exponn.adb: Add lemmas and ghost code. Secial case
10868         value zero as Left or Right to simplify proof.
10869         * libgnat/s-exponn.ads: Transform the generic function into a
10870         generic package with a function inside. Add a functional
10871         contract.
10873 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10875         * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove redundant
10876         call to Set_Defining_Unit_Name; a similar call is done few lines
10877         below.
10879 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10881         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create
10882         distinct copies of parameter lists for spec and body with
10883         Copy_Parameter_List; cleanup.
10884         (Make_Null_Procedure_Specs): Fix style in comments; remove a
10885         potentially unnecessary initialization of a local variable.
10887 2022-01-05  Bob Duff  <duff@adacore.com>
10889         * einfo-utils.ads, einfo-utils.adb (Renamed_Entity Alias):
10890         Change Node_Id to Entity_Id.
10892 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10894         * sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wrapper):
10895         Remove unreferenced spec.
10896         * sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wrapper):
10897         Remove dead bodies.
10899 2022-01-05  Yannick Moy  <moy@adacore.com>
10901         * libgnat/s-aridou.adb: Apply replacement.
10903 2022-01-05  Yannick Moy  <moy@adacore.com>
10905         * libgnat/s-aridou.adb (Lemma_Word_Commutation): Fix for
10906         instances with other values of Single_Size.
10908 2022-01-05  Marc Poulhiès  <poulhies@adacore.com>
10910         * doc/gnat_rm/implementation_defined_pragmas.rst (Compiler_Unit)
10911         (Compiler_Unit_Warning): Remove.
10912         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
10913         * libgnat/g-dynhta.ads: Add comment indicating this unit is
10914         built during stage1.
10915         * libgnat/g-dyntab.ads: Likewise.
10916         * libgnat/g-graphs.ads: Likewise.
10917         * libgnat/g-lists.ads: Likewise.
10918         * libgnat/g-sets.ads: Likewise.
10919         * libgnat/gnat.ads: Likewise.
10920         * libgnat/s-pehage.ads: Likewise.
10921         * libgnat/s-resfil.ads: Likewise.
10922         * libgnat/s-rident.ads: Likewise.
10923         * libgnat/s-utf_32.ads: Likewise.
10924         * errout.ads: Update comment.
10925         * opt.ads (Opt): Remove Compiler_Unit.
10926         * par-ch5.adb (All_Pragmas): Remove call to Check_Compiler_Unit.
10927         * sem_prag.adb (Analyze_Pragma): Likewise.
10928         * sem_ch4.adb (Non_Static_Choice_Error, Analyze_If_Expression)
10929         (Analyze_Set_Membership, Record_Interp): Likewise.
10930         * sem_ch11.adb (Analyze_Raise_Expression): Likewise.
10931         * sem_ch6.adb: Remove Restric package reference.
10932         (Analyze_Extended_Return_Statement): Remove call to
10933         Check_Compiler_Unit.
10934         * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings):
10935         Remove handling of Pragma_Compiler_Unit[_Warning}.
10936         * restrict.adb (Check_Compiler_Unit): Remove both.
10937         * restrict.ads: Likewise.
10938         * snames.ads-tmpl (Pragma_Id): Remove
10939         Pragma_Compiler_Unit[_Warning].
10940         * libgnat/a-assert.ads: Remove pragma Compiler_Unit_Warning.
10941         * libgnat/a-chlat1.ads: Likewise.
10942         * libgnat/a-elchha.adb: Likewise.
10943         * libgnat/a-elchha.ads: Likewise.
10944         * libgnat/a-ioexce.ads: Likewise.
10945         * libgnat/a-strhas.ads: Likewise.
10946         * libgnat/g-byorma.adb: Likewise.
10947         * libgnat/g-byorma.ads: Likewise.
10948         * libgnat/g-dyntab.adb: Likewise.
10949         * libgnat/g-heasor.ads: Likewise.
10950         * libgnat/g-hesora.adb: Likewise.
10951         * libgnat/g-hesora.ads: Likewise.
10952         * libgnat/g-htable.adb: Likewise.
10953         * libgnat/g-htable.ads: Likewise.
10954         * libgnat/g-spchge.adb: Likewise.
10955         * libgnat/g-spchge.ads: Likewise.
10956         * libgnat/g-speche.adb: Likewise.
10957         * libgnat/g-speche.ads: Likewise.
10958         * libgnat/g-table.ads: Likewise.
10959         * libgnat/g-u3spch.adb: Likewise.
10960         * libgnat/g-u3spch.ads: Likewise.
10961         * libgnat/interfac.ads: Likewise.
10962         * libgnat/s-addope.adb: Likewise.
10963         * libgnat/s-addope.ads: Likewise.
10964         * libgnat/s-assert.adb: Likewise.
10965         * libgnat/s-assert.ads: Likewise.
10966         * libgnat/s-bitops.adb: Likewise.
10967         * libgnat/s-bitops.ads: Likewise.
10968         * libgnat/s-carun8.adb: Likewise.
10969         * libgnat/s-carun8.ads: Likewise.
10970         * libgnat/s-casuti.adb: Likewise.
10971         * libgnat/s-casuti.ads: Likewise.
10972         * libgnat/s-conca2.adb: Likewise.
10973         * libgnat/s-conca2.ads: Likewise.
10974         * libgnat/s-conca3.adb: Likewise.
10975         * libgnat/s-conca3.ads: Likewise.
10976         * libgnat/s-conca4.adb: Likewise.
10977         * libgnat/s-conca4.ads: Likewise.
10978         * libgnat/s-conca5.adb: Likewise.
10979         * libgnat/s-conca5.ads: Likewise.
10980         * libgnat/s-conca6.adb: Likewise.
10981         * libgnat/s-conca6.ads: Likewise.
10982         * libgnat/s-conca7.adb: Likewise.
10983         * libgnat/s-conca7.ads: Likewise.
10984         * libgnat/s-conca8.adb: Likewise.
10985         * libgnat/s-conca8.ads: Likewise.
10986         * libgnat/s-conca9.adb: Likewise.
10987         * libgnat/s-conca9.ads: Likewise.
10988         * libgnat/s-crc32.adb: Likewise.
10989         * libgnat/s-crc32.ads: Likewise.
10990         * libgnat/s-crtl.ads: Likewise.
10991         * libgnat/s-excdeb.adb: Likewise.
10992         * libgnat/s-excdeb.ads: Likewise.
10993         * libgnat/s-except.ads: Likewise.
10994         * libgnat/s-exctab.adb: Likewise.
10995         * libgnat/s-exctab.ads: Likewise.
10996         * libgnat/s-finmas.ads: Likewise.
10997         * libgnat/s-htable.adb: Likewise.
10998         * libgnat/s-htable.ads: Likewise.
10999         * libgnat/s-mastop.adb: Likewise.
11000         * libgnat/s-mastop.ads: Likewise.
11001         * libgnat/s-memory.adb: Likewise.
11002         * libgnat/s-memory.ads: Likewise.
11003         * libgnat/s-os_lib.ads: Likewise.
11004         * libgnat/s-parame.adb: Likewise.
11005         * libgnat/s-parame.ads: Likewise.
11006         * libgnat/s-parame__posix2008.ads: Likewise.
11007         * libgnat/s-purexc.ads: Likewise.
11008         * libgnat/s-resfil.adb: Likewise.
11009         * libgnat/s-restri.adb: Likewise.
11010         * libgnat/s-restri.ads: Likewise.
11011         * libgnat/s-secsta.adb: Likewise.
11012         * libgnat/s-secsta.ads: Likewise.
11013         * libgnat/s-soflin.adb: Likewise.
11014         * libgnat/s-soflin.ads: Likewise.
11015         * libgnat/s-sopco3.adb: Likewise.
11016         * libgnat/s-sopco3.ads: Likewise.
11017         * libgnat/s-sopco4.adb: Likewise.
11018         * libgnat/s-sopco4.ads: Likewise.
11019         * libgnat/s-sopco5.adb: Likewise.
11020         * libgnat/s-sopco5.ads: Likewise.
11021         * libgnat/s-spsufi.ads: Likewise.
11022         * libgnat/s-stache.adb: Likewise.
11023         * libgnat/s-stache.ads: Likewise.
11024         * libgnat/s-stalib.adb: Likewise.
11025         * libgnat/s-stalib.ads: Likewise.
11026         * libgnat/s-stoele.adb: Likewise.
11027         * libgnat/s-stoele.ads: Likewise.
11028         * libgnat/s-strcom.adb: Likewise.
11029         * libgnat/s-strcom.ads: Likewise.
11030         * libgnat/s-strhas.adb: Likewise.
11031         * libgnat/s-string.adb: Likewise.
11032         * libgnat/s-string.ads: Likewise.
11033         * libgnat/s-strops.adb: Likewise.
11034         * libgnat/s-strops.ads: Likewise.
11035         * libgnat/s-ststop.adb: Likewise.
11036         * libgnat/s-ststop.ads: Likewise.
11037         * libgnat/s-traceb.adb: Likewise.
11038         * libgnat/s-traceb.ads: Likewise.
11039         * libgnat/s-traent.adb: Likewise.
11040         * libgnat/s-traent.ads: Likewise.
11041         * libgnat/s-utf_32.adb: Likewise.
11042         * libgnat/s-unstyp.ads: Likewise.
11043         * libgnat/s-wchcnv.adb: Likewise.
11044         * libgnat/s-wchcnv.ads: Likewise.
11045         * libgnat/s-wchcon.adb: Likewise.
11046         * libgnat/s-wchcon.ads: Likewise.
11047         * libgnat/s-wchjis.adb: Likewise.
11048         * libgnat/s-wchjis.ads: Likewise.
11050 2022-01-05  Arnaud Charlet  <charlet@adacore.com>
11052         * osint.adb (File_Names_Equal): Declare To_Lower locally.
11053         * osint.ads (Null_FD): New.
11054         * fmap.adb, sinput-l.adb, targparm.adb: Adapt to changes above.
11055         * switch-b.adb (Scan_Debug_Switches): Use Is_Regular_File to
11056         simplify the bootstrap dependencies.
11058 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
11060         * gnat_ugn.texi: Bump @copying's copyright year.
11061         * gnat_rm.texi: Likewise.
11064 Copyright (C) 2022 Free Software Foundation, Inc.
11066 Copying and distribution of this file, with or without modification,
11067 are permitted in any medium without royalty provided the copyright
11068 notice and this notice are preserved.