MATCH: Improve `A CMP 0 ? A : -A` set of patterns to use bitwise_equal_p.
[official-gcc.git] / gcc / ada / ChangeLog
blob6cf1a63161d09b51a1598ce0128f6f5c660b7a11
1 2023-10-10  Eric Botcazou  <ebotcazou@adacore.com>
3         * gcc-interface/decl.cc (inline_status_for_subprog): Minor tweak.
4         (gnat_to_gnu_field): Try harder to get a packable form of the type
5         for a bitfield.
7 2023-10-10  Ronan Desplanques  <desplanques@adacore.com>
9         * libgnat/a-direct.adb (Start_Search_Internal): Tweak subprogram
10         body.
12 2023-10-10  Eric Botcazou  <ebotcazou@adacore.com>
14         * sem_util.ads (Set_Scope_Is_Transient): Delete.
15         * sem_util.adb (Set_Scope_Is_Transient): Likewise.
16         * exp_ch7.adb (Create_Transient_Scope): Set Is_Transient directly.
18 2023-10-10  Eric Botcazou  <ebotcazou@adacore.com>
20         * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Return true
21         if the aggregate is a dependent expression of a conditional
22         expression being returned from a build-in-place function.
24 2023-10-10  Eric Botcazou  <ebotcazou@adacore.com>
26         PR ada/111434
27         * sem_ch10.adb (Replace): New procedure to replace an entity with
28         another on the homonym chain.
29         (Install_Limited_With_Clause): Rename Non_Lim_View to Typ for the
30         sake of consistency.  Call Replace to do the replacements and split
31         the code into the regular and the special cases.  Add debuggging
32         output controlled by -gnatdi.
33         (Install_With_Clause): Print the Parent_With and Implicit_With flags
34         in the debugging output controlled by -gnatdi.
35         (Remove_Limited_With_Unit.Restore_Chain_For_Shadow (Shadow)): Rewrite
36         using a direct replacement of E4 by E2.   Call Replace to do the
37         replacements.  Add debuggging output controlled by -gnatdi.
39 2023-10-10  Ronan Desplanques  <desplanques@adacore.com>
41         * libgnat/a-direct.adb: Fix filesystem entry filtering.
43 2023-10-10  Ronan Desplanques  <desplanques@adacore.com>
45         * atree.ads, nlists.ads, types.ads: Remove references to extended
46         nodes. Fix typo.
47         * sinfo.ads: Likewise and fix position of
48         Comes_From_Check_Or_Contract description.
50 2023-10-10  Javier Miranda  <miranda@adacore.com>
52         * sem_attr.adb (Analyze_Attribute): Protect the frontend against
53         replacing 'Size by its static value if 'Size is not known at
54         compile time and we are processing pragmas Compile_Time_Warning or
55         Compile_Time_Errors.
57 2023-10-03  David Malcolm  <dmalcolm@redhat.com>
59         * gcc-interface/misc.cc: Use text_info ctor.
61 2023-10-02  David Malcolm  <dmalcolm@redhat.com>
63         * gcc-interface/misc.cc (gnat_post_options): Update for renaming
64         of diagnostic_context's show_caret to m_source_printing.enabled.
66 2023-09-26  Eric Botcazou  <ebotcazou@adacore.com>
68         * exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove call
69         to Is_Simple_Protected_Type as redundant.
70         (Build_Finalizer.Process_Object_Declaration): Do not retrieve the
71         corresponding record type for simple protected objects. Make the
72         flow of control more explicit in their specific processing.
73         * exp_util.adb (Requires_Cleanup_Actions): Return false for simple
74         protected objects present in library-level package bodies for the
75         sake of consistency with Build_Finalizer and remove call to
76         Is_Simple_Protected_Type as redundant.
78 2023-09-26  Eric Botcazou  <ebotcazou@adacore.com>
80         PR ada/110488
81         * sem_ch3.adb (Analyze_Object_Declaration): Do not build a default
82         subtype for a deferred constant in the definite case too.
84 2023-09-26  Marc Poulhiès  <poulhies@adacore.com>
86         * exp_ch7.adb (Contains_Subprogram): Recursively search for subp
87         in loop's statements.
88         (Unnest_Loop)<Fixup_Inner_Scopes>: New.
89         (Unnest_Loop): Rename local variable for more clarity.
90         * exp_unst.ads: Refresh comment.
92 2023-09-26  Javier Miranda  <miranda@adacore.com>
94         * exp_ch6.adb (Expand_Call_Helper): When computing the
95         accessibility level of an actual parameter based on the
96         expresssion of a constant declaration, add missing support for
97         deferred constants
99 2023-09-26  Eric Botcazou  <ebotcazou@adacore.com>
101         * einfo.ads (Status_Flag_Or_Transient_Decl): Remove ??? comment.
102         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Extend the
103         handling of finalizable return objects to the non-BIP case.
104         * exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust the
105         comment accordingly.
106         * exp_util.adb (Requires_Cleanup_Actions): Likewise.
108 2023-09-26  Daniel King  <dmking@adacore.com>
110         * raise-gcc.c (get_ip_from_context): Adapt for CHERI purecap
111         (get_call_site_action_for): Adapt for CHERI purecap
113 2023-09-26  Daniel King  <dmking@adacore.com>
115         * libgnat/a-tags.adb (To_Tag): Use System.Storage_Elements for
116         integer to address conversion.
117         * libgnat/s-putima.adb (Put_Image_Pointer): Likewise.
119 2023-09-26  Daniel King  <dmking@adacore.com>
121         * libgnat/s-stratt__cheri.adb: New file
123 2023-09-26  Daniel King  <dmking@adacore.com>
125         * libgnat/i-cheri.ads (Capability_Bound_Error)
126         (Capability_Permission_Error, Capability_Sealed_Error)
127         (Capability_Tag_Error): New, define CHERI exception types.
129 2023-09-26  Ronan Desplanques  <desplanques@adacore.com>
131         * exp_prag.adb: Make minor corrections in comments.
132         * rtsfind.ads: Remove unused element from RTU_Id definition.
134 2023-09-26  Derek Schacht  <schacht@adacore.com>
136         * doc/gnat_ugn/gnat_and_program_execution.rst: Add more details on
137         using Generic Elementary Functions with dimensional analysis.
138         * gnat_ugn.texi: Regenerate.
140 2023-09-26  Yannick Moy  <moy@adacore.com>
142         * exp_ch5.adb (Expand_N_Case_Statement): Reference both sections
143         of the Ada RM that deal with case statements and case expressions
144         to justify the insertion of a runtime check.
146 2023-09-19  Richard Wai  <richard@annexi-strayline.com>
148         * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Expanded comments
149         explaining why TSS Finalize_Address is not generated for
150         concurrent class-wide types.
151         * exp_ch7.adb (Make_Finalize_Address_Stmts): Handle cases where the
152         underlying non-constrained parent type is a concurrent type, and
153         adjust the designated type to be the corresponding record’s
154         class-wide type.
156 2023-09-19  Richard Wai  <richard@annexi-strayline.com>
158         * sem_ch3.adb (Build_Derived_Record_Type): Treat presence of
159         keyword "synchronized" the same as "limited" when determining if a
160         private extension is limited.
162 2023-09-19  Marc Poulhiès  <poulhies@adacore.com>
164         * gcc-interface/utils.cc (max_value): New.
165         * gcc-interface/gigi.h (max_value): New.
166         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>:
167         When computing gnu_min/gnu_max, try to use max_value if there is
168         an initial expression.
170 2023-09-19  Javier Miranda  <miranda@adacore.com>
172         * contracts.adb
173         (Has_Public_Visibility_Of_Subprogram): Add missing support for
174         child subprograms.
176 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
178         * gcc-interface/utils.cc (finish_record_type): Round the size in
179         the padding case as well.
181 2023-09-15  Piotr Trojanek  <trojanek@adacore.com>
183         * exp_aggr.adb (Build_Array_Aggr_Code): Don't build aggregate code
184         for null array aggregates.
185         * sem_aggr.adb (Resolve_Array_Aggregate): Don't examine formatting
186         of a null array aggregate.
188 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
190         * inline.adb (Expand_Inlined_Call): In the case of a function call
191         that returns an unconstrained type and initializes an object, set
192         the No_Initialization flag on the new declaration of the object.
194 2023-09-15  Patrick Bernardi  <bernardi@adacore.com>
196         * exp_ch6.adb (Expand_N_Subprogram_Body): Do not perform
197         local-exception-to- goto optimization on barrier functions.
198         * exp_ch9.adb (Expand_Entry_Barrier): Simplify the if statement
199         around the simple barrier optimization and remove an old, no
200         longer relevant comment.
202 2023-09-15  Patrick Bernardi  <bernardi@adacore.com>
204         * bindgen.adb (Gen_Adainit): Generate restrictions when standard
205         library is suppressed.
206         (Gen_Output_File_Ada): Ditto.
207         (Gen_Restrictions): Ditto.
209 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
211         * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return false
212         for a small component of a record type with a variant part.
214 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
216         * exp_aggr.adb (Convert_To_Assignments): In the case of a
217         component association, call Is_Container_Aggregate on the parent's
218         parent.
219         (Expand_Array_Aggregate): Likewise.
221 2023-09-15  Kévin Le Gouguec  <legouguec@adacore.com>
223         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Remove
224         extended discussion regarding mold run-time dependencies;
225         packaging changes in GNAT Pro have made them obsolete.
227 2023-09-15  Eric Botcazou  <ebotcazou@adacore.com>
229         * sem_res.adb (Resolve_Call): When the target is an entity, do not
230         freeze it if the current scope is the inner wrapper function built
231         for an expression function with a Post or Refined_Post aspect.
233 2023-09-15  Bob Duff  <duff@adacore.com>
234             Ronan Desplanques  <desplanques@adacore.com>
236         * atree.adb (Node_Kind_Table): Specify parameter explicitly in
237         GNAT.Table instantiations. Use fully qualified references instead
238         of relying on use clauses.
239         (Get_Field_Value): Remove special case for F_Scope_Depth_Value.
240         That is, enable the Field_Present check in that case.
241         (It was already enabled for all other fields.) Violations of this
242         check were already fixed.
243         (Print_Node_Statistics): Sort the output in decreasing order of
244         frequencies.
245         (Print_Field_Statistics): Likewise (sort).
246         * accessibility.adb (Accessibility_Level): Pass Allow_Alt_Model in
247         recursive calls. Apparently, an oversight.
248         (Innermost_Master_Scope_Depth): Need to special-case the 'Old
249         attribute and allocators.
250         * einfo-utils.ads (Scope_Depth): Use Scope_Kind_Id to get
251         predicate checks.
252         (Scope_Depth_Set): Likewise.
253         (Scope_Depth_Default_0): Likewise.
254         * einfo-utils.adb: As for spec.
255         * frontend.adb (Frontend): Remove unnecessary "return;".
256         * gen_il-types.ads (Scope_Kind): New union type.
257         * gen_il-gen-gen_entities.adb (Scope_Kind): New union type.
258         * sem.ads: Move "with Einfo.Entities;" from body to spec.
259         (Scope_Stack_Entry): Declare Entity to be of Scope_Kind_Id to get
260         predicate checks. We had previously been putting non-scopes on the
261         scope stack; this prevents such anomalies.
262         * sem.adb: Move "with Einfo.Entities;" from body to spec.
263         * sem_ch8.ads: Move "with Einfo.Entities;" from body to spec. Add
264         "with Types;".
265         (Push_Scope): Use Scope_Kind_Id to get predicate checks.
266         * sem_ch8.adb: Move "with Einfo.Entities;" from body to spec. Add
267         "with Types;".
268         (Push_Scope): Use Scope_Kind_Id to get predicate checks.
269         (Pop_Scope): Use Scope_Kind_Id on popped entity to get predicate
270         checks. This prevents anomalies where a scope pushed onto the
271         stack is later mutated to a nonscope before being popped.
272         * sem_util.ads (Find_Enclosing_Scope): Add postcondition to ensure
273         that the enclosing scope of a node N is not the same node N.
274         Clearly, N does not enclose itself.
275         * sem_util.adb (Find_Enclosing_Scope): There were several bugs
276         where Find_Enclosing_Scope(N) = N. For example, if N is an entity,
277         then we would typically go up to its declaration, and then back
278         down to the Defining_Entity of the declaration, which is N itself.
279         There were other cases where Find_Enclosing_Scope of an entity
280         disagreed with Scope. Clearly, Find_Enclosing_Scope and Scope
281         should agree (when both are defined). Such bugs caused latent bugs
282         in accessibility.adb related to 'Old, and fixing bugs here caused
283         such bugs to be revealed. These are fixed by calling Scope when N
284         is an entity.
286 2023-09-15  Javier Miranda  <miranda@adacore.com>
288         * accessibility.ads (Needs_Result_Accessibility_Extra_Formal):
289         Removed.
290         * accessibility.adb (Needs_Result_Accessibility_Level_Param):
291         Removed.
292         (Needs_Result_Accessibility_Extra_Formal): Removed.
293         (Needs_Result_Accessibility_Level): Revert previous patch.
294         * sem_ch6.adb (Parent_Subprogram): Handle function overriding an
295         enumeration literal.
296         (Create_Extra_Formals): Ensure that the parent subprogram has all
297         its extra formals.
299 2023-09-14  Yannick Moy  <moy@adacore.com>
301         * exp_util.adb (Is_Statically_Disabled): New function to detect a
302         "statically disabled condition which evaluates to a given value",
303         as described in SPARK UG 7.3.2.
304         (Kill_Dead_Code): Call the new function Is_Statically_Disabled for
305         conditions of if statements.
306         * exp_util.ads (Is_Statically_Disabled): New function spec.
308 2023-09-14  Javier Miranda  <miranda@adacore.com>
310         * exp_util.adb (Process_Record_Component): Adjust assertion on the
311         availablity of the invariant procedure; required because the
312         invariant procedure is built by the expander, and hence it is not
313         available compiling generic units or when the sources have errors,
314         since expansion is then disabled.
316 2023-09-14  Javier Miranda  <miranda@adacore.com>
318         * sem_util.adb (Large_Max_Size_Mutable): Protect access to
319         attribute Is_Array_Type.
321 2023-09-14  Javier Miranda  <miranda@adacore.com>
323         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Protect
324         access to Entity attribute and add missing code to check function
325         selector in a prefix form call.
327 2023-09-14  Eric Botcazou  <ebotcazou@adacore.com>
329         * exp_ch6.adb (Expand_Ctrl_Function_Call): Also do nothing for the
330         expression of a delta aggregate.
332 2023-09-14  Eric Botcazou  <ebotcazou@adacore.com>
334         * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Make the name
335         matching more robust.
337 2023-09-14  Javier Miranda  <miranda@adacore.com>
339         * sem_ch6.adb (Parent_Subprogram): Complete assertion.
341 2023-09-05  Eric Botcazou  <ebotcazou@adacore.com>
343         * gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on
344         the simple return statement.
346 2023-09-05  Tom Tromey  <tromey@adacore.com>
348         * gcc-interface/decl.cc (gnat_to_gnu_entity): Set bit-packed for
349         constrained and unconstrained array types.
350         * gcc-interface/misc.cc (gnat_get_array_descr_info): Examine
351         BIT_PACKED_ARRAY_TYPE_P.
353 2023-09-05  Piotr Trojanek  <trojanek@adacore.com>
355         * sem_type.adb (Interface_Present_In_Ancestor): Remove guard against no
356         list of interfaces; fix style in comments (trailing dots).
358 2023-09-05  Piotr Trojanek  <trojanek@adacore.com>
360         * sem_type.adb (Iface_Present_In_Ancestor): Only look at the list of
361         interfaces for types that allow it. The guard is a high-level equivalent
362         of the entity kinds listed in the preconditon of the Interfaces query.
364 2023-09-05  Piotr Trojanek  <trojanek@adacore.com>
366         * sem_type.adb (Iface_Present_In_Ancestor): Remove guard for empty list
367         of interfaces; the following loop will work just fine without it.
369 2023-09-05  Eric Botcazou  <ebotcazou@adacore.com>
371         * exp_ch9.adb (Build_Protected_Entry): Move the At_End procedure
372         from the entry body to the inner block statement.
374 2023-09-05  Bob Duff  <duff@adacore.com>
376         * sem_ch4.adb (Find_Component_In_Instance): Check that
377         Declaration_Node (Par) is not Empty, as it is for itypes.
379 2023-09-05  Ronan Desplanques  <desplanques@adacore.com>
381         * sem_ch7.adb (Analyze_Package_Declaration): Restrict calls to
382         `Sem_Warn.Check_References` and adjust comment accordingly.
384 2023-09-05  Eric Botcazou  <ebotcazou@adacore.com>
386         * freeze.adb (Freeze_Enumeration_Type): Give an error on a type with
387         both representation clause and too large size.
389 2023-09-05  Liaiss Merzougue  <merzougue@adacore.com>
391         * libgnat/s-imguti.adb: Remove comment.
393 2023-09-05  Javier Miranda  <miranda@adacore.com>
395         * accessibility.ads (Needs_Result_Accessibility_Extra_Formal): New
396         subprogram.
397         * accessibility.adb (Needs_Result_Accessibility_Level_Param): New
398         subprogram.
399         (Needs_Result_Accessibility_Extra_Formal): New subprogram,
400         temporarily keep the previous behavior of the frontend.
401         * sem_ch6.adb (Create_Extra_Formals): Replace occurrences of
402         function Needs_Result_Accessibility_Level_Param by calls to
403         function Needs_Result_Accessibility_Extra_Formal.
404         (Extra_Formals_OK): Ditto.
406 2023-09-05  Alexandre Oliva  <oliva@adacore.com>
408         * libgnat/system-vxworks-ppc-rtp-smp.ads: Add -msmp to
409         Linker_Options pragma.
411 2023-09-05  Javier Miranda  <miranda@adacore.com>
413         * exp_aggr.adb (Expand_Container_Aggregate): Report warning on
414         infinite recursion if an empty container aggregate appears in the
415         return statement of its Empty function. Fix typo in comment.
416         * sem_aggr.adb (Resolve_Aggregate): Resolve Ada 2022 empty
417         aggregate that initializes a record type that has defined its
418         container aggregate aspects.
419         (Resolve_Iterated_Association): Protect access to attribute Etype.
420         * sem_ch13.adb (Resolve_Aspect_Aggregate): Fix typo in comment.
422 2023-09-05  Steve Baird  <baird@adacore.com>
424         * sem_attr.adb (Denote_Same_Function): Handle the case where
425         Has_Homonym (Pref_Id) returns True but Homonym (Pref_Id) returns
426         an empty result.
428 2023-09-05  Steve Baird  <baird@adacore.com>
430         * sem_res.adb (Resolve_Unary_Op): In deciding whether to emit a
431         warning about a modular type's unary minus operator being applied
432         to an integer literal, ignore integer literals for which
433         Comes_From_Source is False.
435 2023-09-05  Johannes Kliemann  <kliemann@adacore.com>
437         * libgnarl/s-taprop__qnx.adb: Implement Set_Task_Affinity.
439 2023-09-05  Ghjuvan Lacambre  <lacambre@adacore.com>
441         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
442         index.
443         * gnat_ugn.texi: Regenerate.
445 2023-09-05  Daniel King  <dmking@adacore.com>
447         * libgnat/s-carsi8.adb: Use operations from
448         System.Storage_Elements for address arithmetic.
449         * libgnat/s-carun8.adb: Likewise
450         * libgnat/s-casi128.adb: Likewise
451         * libgnat/s-casi16.adb: Likewise
452         * libgnat/s-casi32.adb: Likewise
453         * libgnat/s-casi64.adb: Likewise
454         * libgnat/s-caun128.adb: Likewise
455         * libgnat/s-caun16.adb: Likewise
456         * libgnat/s-caun32.adb: Likewise
457         * libgnat/s-caun64.adb: Likewise
458         * libgnat/s-geveop.adb: Likewise
460 2023-09-05  Eric Botcazou  <ebotcazou@adacore.com>
462         * sem_ch12.adb (Component_Type_For_Private_View): New function.
463         (Check_Generic_Actuals): For an actual type parameter, also check
464         its component type if it is an array type.
465         (Check_Private_View): Use Component_Type_For_Private_View in the
466         case of an array type.
467         (Instantiate_Type): Likewise.
468         (Save_Global_References.Set_Global_Type): Likewise.
470 2023-09-05  Sheri Bernstein  <bernstein@adacore.com>
472         * libgnat/s-aridou.adb: Add pragma to exempt Metrics_LSLOC.
473         (Double_Divide): Add pragma to exempt
474         Metrics_Cyclomatic_Complexity.
475         (Scaled_Divide): Likewise.
476         * libgnat/s-vauspe.ads (Uns_Option): Add pragma to exempt
477         Discriminated_Records.
479 2023-09-05  Ronan Desplanques  <desplanques@adacore.com>
481         * Makefile.rtl: Add missing units.
483 2023-09-05  Sheri Bernstein  <bernstein@adacore.com>
485         * libgnarl/a-reatim.adb (Time_Of): Add pragma to exempt
486         Discriminated_Records.
487         * libgnat/s-imguti.adb (Round, Set_Decimal_Digits): Likewise.
488         * libgnat/s-multip.adb (Number_Of_CPUs): Likewise.
489         * libgnarl/s-tpopsp__posix-foreign.adb (Self): Refactor multiple
490         returns.
492 2023-09-05  Javier Miranda  <miranda@adacore.com>
494         * sem_ch3.adb (Add_Internal_Interface_Entities): Add missing
495         subtype-conformance check on primitives implementing interface
496         primitives.
497         (Error_Posted_In_Formals): New subprogram.
499 2023-09-05  Ronan Desplanques  <desplanques@adacore.com>
501         * libgnarl/s-tassta.adb: Tweak comment.
503 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
505         * Makefile.rtl: Add LoongArch support.
506         * libgnarl/s-linux__loongarch.ads: New file.
507         * libgnat/system-linux-loongarch.ads: New file.
509 2023-08-07  Sheri Bernstein  <bernstein@adacore.com>
511         * libgnat/s-parame__qnx.adb: Refactor multiple returns.
513 2023-08-07  Piotr Trojanek  <trojanek@adacore.com>
515         * libgnat/i-cstrin.ads (Value): Extend preconditions; adapt comment for
516         the package.
518 2023-08-07  Yannick Moy  <moy@adacore.com>
520         * sem_res.adb (Resolve_Call): Always call Cannot_Inline so that
521         subprogram called is marked as not always inlined.
523 2023-08-07  Javier Miranda  <miranda@adacore.com>
525         * sem_res.adb (Resolve_Type_Conversion): Do not warn on conversion
526         to class-wide type on internally build helpers of class-wide
527         preconditions.
529 2023-08-03  Sheri Bernstein  <bernstein@adacore.com>
531         * libgnat/s-aridou.adb: Add pragma to exempt Improper_Returns.
532         * libgnat/s-atopri.adb (Lock_Free_Try_Write): Likewise.
533         * libgnat/s-bitops.adb (Bit_Eq): Likewise.
534         * libgnat/s-carsi8.adb: Likewise.
535         * libgnat/s-carun8.adb: Likewise.
536         * libgnat/s-casi16.adb: Likewise.
537         * libgnat/s-casi32.adb: Likewise.
538         * libgnat/s-casi64.adb: Likewise.
539         * libgnat/s-caun16.adb: Likewise.
540         * libgnat/s-caun32.adb: Likewise.
541         * libgnat/s-caun64.adb: Likewise.
542         * libgnat/s-exponn.adb: Likewise.
543         * libgnat/s-expont.adb: Likewise.
544         * libgnat/s-valspe.adb: Likewise.
545         * libgnat/s-vauspe.adb: Likewise.
547 2023-08-03  Vasiliy Fofanov  <fofanov@adacore.com>
549         * libgnat/s-imageb.adb (Set_Image_Based_Unsigned): Rewritten.
550         * libgnat/s-imagew.adb (Set_Image_Width_Unsigned): Likewise.
552 2023-08-03  Eric Botcazou  <ebotcazou@adacore.com>
554         * exp_util.adb (Make_Invariant_Call): Convert the expression to
555         the type of the formal parameter if need be.
557 2023-08-03  Eric Botcazou  <ebotcazou@adacore.com>
559         * libgnat/s-dwalin.adb ("-"): New subtraction operator.
560         (Enable_Cache): Use it to compute the offset.
561         (Symbolic_Address): Likewise.
563 2023-08-01  Yannick Moy  <moy@adacore.com>
565         * repinfo.adb (Compute_Max_Length): Set parameter to print number
566         in decimal notation.
567         (List_Component_Layout): Same.
569 2023-08-01  Yannick Moy  <moy@adacore.com>
571         * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check for
572         Skip_Proof and Skip_Flow_And_Proof annotations for deciding
573         whether a subprogram can be inlined.
575 2023-08-01  Steve Baird  <baird@adacore.com>
577         * sem_ch3.adb (Constrain_Corresponding_Record): When copying
578         information from the unconstrained record type to a newly
579         constructed constrained record subtype, the
580         Direct_Primitive_Operations attribute must be copied.
582 2023-08-01  Steve Baird  <baird@adacore.com>
584         * sem_ch3.adb (Analyze_Component_Declaration): Remove
585         Build_Default_Subtype_OK call and code that could only executed in
586         the case where the removed call would have returned True. Other
587         calls to Build_Default_Subtype_Ok are unaffected by this change.
589 2023-08-01  Pascal Obry  <obry@adacore.com>
591         * aspects.ads (Find_Aspect): Add Boolean parameter Or_Rep_Item
592         (defaulted to False).
593         * aspects.adb (Find_Aspect): If new Boolean parameter Or_Rep_Item
594         is True, then instead of returning an empty result if no
595         appropriate N_Aspect_Specification node is found, return an
596         appropriate N_Attribute_Definition_Clause if one is found.
597         * exp_put_image.ads: Change name of Enable_Put_Image function to
598         Put_Image_Enabled.
599         * exp_put_image.adb (Build_Record_Put_Image_Procedure): Detect the
600         case where a call to the Put_Image procedure of a derived type can
601         be transformed into a call to the parent type's Put_Image
602         procedure (with a type conversion to the parent type as the actual
603         parameter).
604         (Put_Image_Enabled): Change name of function (previously
605         Enable_Put_Image). Return True in more cases. In particular,
606         return True for a type with an explicitly specified Put_Image
607         aspect even if the type is declared in a predefined unit (or in an
608         instance of a predefined generic unit).
609         * exp_attr.adb: Changes due to Put_Image_Enabled function name
610         change.
612 2023-08-01  Yannick Moy  <moy@adacore.com>
614         * repinfo.adb (List_Common_Type_Info): Fix output when alignment
615         is not statically known, and fix assertion when expansion is not
616         enabled.
618 2023-08-01  Bob Duff  <duff@adacore.com>
620         * atree.adb (Field_Present): New function to detect whether or not
621         a given field is present in a given node, based on either the node
622         kind or the entity kind as appropriate.
623         (Get_Field_Value): Check that the field begin fetched exists.
624         However, disable the check in the case of Scope_Depth_Value,
625         because we have failures in that case. Those failures need to be
626         fixed, and then the check can be enabled for all fields.
627         (Set_Field_Value): Check that the field begin set exists.
629 2023-08-01  Léo Creuse  <creuse@adacore.com>
631         * par_sco.adb (Process_Decisions): Traverse all attributes of
632         quantified expressions nodes.
634 2023-07-28  Eric Botcazou  <ebotcazou@adacore.com>
636         * gcc-interface/trans.cc (gnat_to_gnu): Restrict previous change to
637         the case where the simple return statement has got no storage pool.
639 2023-07-28  Clément Chigot  <chigot@adacore.com>
641         * libgnarl/s-inmaop__posix.adb: Add assert after sigwait in
642         Interrupt_Wait
644 2023-07-28  Javier Miranda  <miranda@adacore.com>
646         * einfo-utils.adb (Underlying_Type): Protect recursion call
647         against non-available attribute Etype.
648         * einfo.ads (Protected_Subprogram): Fix typo in documentation.
649         * exp_ch3.adb (BIP_Function_Call_Id): New subprogram.
650         (Expand_N_Object_Declaration): Improve code that evaluates if the
651         object is initialized with a BIP function call.
652         * exp_ch6.adb (Is_True_Build_In_Place_Function_Call): New
653         subprogram.
654         (Add_Task_Actuals_To_Build_In_Place_Call): Add dummy actuals if
655         the function does not require the BIP task actuals but it is a
656         dispatching operation that inherited them.
657         (Build_In_Place_Formal): Improve code to avoid never-ending loop
658         if the BIP formal is not found.
659         (Add_Dummy_Build_In_Place_Actuals): New subprogram.
660         (Expand_Call_Helper): Add calls to
661         Add_Dummy_Build_In_Place_Actuals.
662         (Expand_N_Extended_Return_Statement): Adjust assertion.
663         (Expand_Simple_Function_Return): Adjust assertion.
664         (Make_Build_In_Place_Call_In_Allocator): No action needed if the
665         called function inherited the BIP extra formals but it is not a
666         true BIP function.
667         (Make_Build_In_Place_Call_In_Assignment): Ditto.
668         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove code
669         reporting unsupported case (since this patch adds support for it).
670         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adding assertion
671         to ensure matching of BIP formals when setting the
672         Protected_Formal field of a protected subprogram to reference the
673         corresponding extra formal of the subprogram that implements it.
674         (Might_Need_BIP_Task_Actuals): New subprogram.
675         (Create_Extra_Formals): Improve code adding inherited extra
676         formals.
678 2023-07-28  Pascal Obry  <obry@adacore.com>
680         * s-oscons-tmplt.c: Add support for SO_BINDTODEVICE constant.
681         * libgnat/g-socket.ads (Set_Socket_Option): Handle SO_BINDTODEVICE option.
682         (Get_Socket_Option): Handle SO_BINDTODEVICE option.
683         * libgnat/g-socket.adb: Likewise.
684         (Get_Socket_Option): Handle the case where IF_NAMESIZE is not defined
685         and so equal to -1.
687 2023-07-28  Léo Creuse  <creuse@adacore.com>
689         * par_sco.adb (Has_Decision): Consider that quantified expressions
690         contain decisions.
692 2023-07-28  Ronan Desplanques  <desplanques@adacore.com>
694         * libgnarl/s-tposen.adb: Fix race condition. Add comment to justify
695         the locking timing.
697 2023-07-28  Viljar Indus  <indus@adacore.com>
699         * exp_util.adb (Find_Optional_Prim_Op): use "No" instead of "= Empty"
701 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
703         * sem_res.adb (Resolve_Actuals): Add guard for the call to
704         Class_Preconditions_Subprogram.
706 2023-07-28  Eric Botcazou  <ebotcazou@adacore.com>
708         * exp_aggr.adb (Is_Two_Dim_Packed_Array): Return true only if the
709         component type of the array is scalar.
711 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
713         * sem_ch6.adb (Check_Statement_Sequence): Only warn about missing return
714         statements and let GNATprove emit a check when needed.
716 2023-07-28  Tom Tromey  <tromey@adacore.com>
718         * fe.h (Convention): Now inline function.
719         * gen_il-gen.adb (Put_C_Type_And_Subtypes.Put_Enum_Lit)
720         (Put_C_Type_And_Subtypes.Put_Kind_Subtype, Put_C_Getter):
721         Emit enum.
722         * snames.h-tmpl (Name_Id, Name_, Attribute_Id, Attribute_)
723         (Convention_Id, Convention_, Pragma_Id, Pragma_): Now enum.
724         (Get_Attribute_Id, Get_Pragma_Id): Now inline functions.
725         * types.h (Node_Kind, Entity_Kind, Convention_Id, Name_Id):
726         Now enum.
727         * xsnamest.adb (Output_Header_Line, Make_Value): Emit enum.
729 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
731         * libgnat/a-except.ads (Save_Occurrence): Fix typo.
733 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
735         * einfo-utils.adb (Number_Formals): Change types in body.
736         * einfo-utils.ads (Number_Formals): Change type in spec.
737         * einfo.ads (Number_Formals): Change type in comment.
738         * sem_ch13.adb (Is_Property_Function): Fix style in a caller of
739         Number_Formals that was likely to crash because of missing guards.
741 2023-07-28  Piotr Trojanek  <trojanek@adacore.com>
743         * sem_warn.adb (Check_Infinite_Loop_Warning): Don't look at the type of
744         actual parameter when it has no type at all, e.g. because the entire
745         subprogram call is illegal.
747 2023-07-18  Tom Tromey  <tromey@adacore.com>
749         * gcc-interface/decl.cc (check_ok_for_atomic_type): Use Pragma_Id.
750         * gcc-interface/trans.cc (lvalue_required_p, Pragma_to_gnu): Use
751         Pragma_Id.
752         (get_type_length, Attribute_to_gnu, get_atomic_access): Use
753         Attribute_Id.
755 2023-07-18  Javier Miranda  <miranda@adacore.com>
757         * exp_imgv.adb (Rewrite_Object_Image): fix type of formal. Found
758         reading sources.
759         (Expand_Wide_Image_Attribute): ditto.
760         (Expand_Wide_Wide_Image_Attribute): ditto.
761         (Rewrite_Object_Image): ditto.
762         * exp_put_image.adb (Build_Image_Call): For class-wide interface
763         type prefix generate code to displace the pointer to the object to
764         reference the base of the underlying object.
766 2023-07-18  Viljar Indus  <indus@adacore.com>
768         * sem_aggr.adb (Resolve_Iterated_Association): Add temporary scope
769         when analyzing the Iterator Specification. Use preanalysis instead
770         of Analysis to avoid polluting the tree.
772 2023-07-18  Viljar Indus  <indus@adacore.com>
774         * sem_aggr.adb (Resolve_Iterated_Association): Use the element
775         type for the iterator in a container aggregate with an iterator
776         specification.
778 2023-07-18  Viljar Indus  <indus@adacore.com>
780         * exp_aggr.adb (Expand_Container_Aggregate): Use the positional
781         addition method only when dealing with a container aggregate
782         without an Iterator Specification e.g. with a loop parameter
783         specification
785 2023-07-18  Eric Botcazou  <ebotcazou@adacore.com>
787         * sem_util.ads (Wrong_Type): Add Multiple parameter defaulting to
788         False and document it.
789         * sem_util.adb (Wrong_Type): Do not return early if an error has
790         already been posted on Expr and Multiple is True.
791         * sem_ch4.adb (Analyze_One_Call): Pass All_Errors_Mode as the
792         actual parameter for Multiple to Wrong_Type.
794 2023-07-18  Javier Miranda  <miranda@adacore.com>
796         * exp_disp.adb (Has_Dispatching_Constructor_Call): Removed.
797         (Expand_Interface_Conversion): Reverse patch.
799 2023-07-18  Ronan Desplanques  <desplanques@adacore.com>
801         * libgnarl/s-taprop__linux.adb (Set_Task_Affinity, Create_Task): Tweak
802         handling of CPU affinities.
804 2023-07-18  Eric Botcazou  <ebotcazou@adacore.com>
806         * sem_type.ads (Is_Ancestor): Remove mention of tagged type.
807         * exp_aggr.adb: Add with and use clauses for Sem_Type.
808         (Build_Record_Aggr_Code.Replace_Type): Call Is_Ancestor to spot
809         self-references to the type of the aggregate.
810         * sem_aggr.adb (Resolve_Record_Aggregate.Add_Discriminant_Values):
811         Likewise.
813 2023-07-18  Eric Botcazou  <ebotcazou@adacore.com>
815         * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
816         In the case of private discriminated types, explicitly check that we
817         have a private declaration before examining its discriminant part.
819 2023-07-18  Alexandre Oliva  <oliva@adacore.com>
821         * libgnat/a-except.ads (Raise_Exception): Mark expected_throw.
822         (Reraise_Occurrence): Likewise.
823         (Raise_Exception_Always): Likewise.
824         (Raise_From_Controlled_Operation): Likewise.
825         (Reraise_Occurrence_Always): Likewise.
826         (Reraise_Occurrence_No_Defer): Likewise.
827         * libgnat/a-except.adb
828         (Exception_Propagation.Propagate_Exception): Likewise.
829         (Complete_And_Propagate_Occurrence): Likewise.
830         (Raise_Exception_No_Defer): Likewise.
831         (Raise_From_Signal_Handler): Likewise.
832         (Raise_With_Msg): Likewise.
833         (Raise_With_Location_And_Msg): Likewise.
834         (Raise_Constraint_Error): Likewise.
835         (Raise_Constraint_Error_Msg): Likewise.
836         (Raise_Program_Error): Likewise.
837         (Raise_Program_Error_Msg): Likewise.
838         (Raise_Storage_Error): Likewise.
839         (Raise_Storage_Error_Msg): Likewise.
840         (Reraise, Rcheck_*): Likewise.
841         * doc/gnat_rm/security_hardening_features.rst (Control Flow
842         Hardening): Note the influence of expected_throw.
843         * gnat_rm.texi: Regenerate.
844         * gnat_ugn.texi: Regenerate.
845         * gcc-interface/utils.cc (handle_expected_throw_attribute): New.
846         (gnat_internal_attribute_table): Add expected_throw.
848 2023-07-18  Vasiliy Fofanov  <fofanov@adacore.com>
850         * libgnat/s-pack03.adb: Update copyright year; refactor return statements.
851         * libgnat/s-pack05.adb: Likewise.
852         * libgnat/s-pack06.adb: Likewise.
853         * libgnat/s-pack07.adb: Likewise.
854         * libgnat/s-pack09.adb: Likewise.
855         * libgnat/s-pack10.adb: Likewise.
856         * libgnat/s-pack100.adb: Likewise.
857         * libgnat/s-pack101.adb: Likewise.
858         * libgnat/s-pack102.adb: Likewise.
859         * libgnat/s-pack103.adb: Likewise.
860         * libgnat/s-pack104.adb: Likewise.
861         * libgnat/s-pack105.adb: Likewise.
862         * libgnat/s-pack106.adb: Likewise.
863         * libgnat/s-pack107.adb: Likewise.
864         * libgnat/s-pack108.adb: Likewise.
865         * libgnat/s-pack109.adb: Likewise.
866         * libgnat/s-pack11.adb: Likewise.
867         * libgnat/s-pack110.adb: Likewise.
868         * libgnat/s-pack111.adb: Likewise.
869         * libgnat/s-pack112.adb: Likewise.
870         * libgnat/s-pack113.adb: Likewise.
871         * libgnat/s-pack114.adb: Likewise.
872         * libgnat/s-pack115.adb: Likewise.
873         * libgnat/s-pack116.adb: Likewise.
874         * libgnat/s-pack117.adb: Likewise.
875         * libgnat/s-pack118.adb: Likewise.
876         * libgnat/s-pack119.adb: Likewise.
877         * libgnat/s-pack12.adb: Likewise.
878         * libgnat/s-pack120.adb: Likewise.
879         * libgnat/s-pack121.adb: Likewise.
880         * libgnat/s-pack122.adb: Likewise.
881         * libgnat/s-pack123.adb: Likewise.
882         * libgnat/s-pack124.adb: Likewise.
883         * libgnat/s-pack125.adb: Likewise.
884         * libgnat/s-pack126.adb: Likewise.
885         * libgnat/s-pack127.adb: Likewise.
886         * libgnat/s-pack13.adb: Likewise.
887         * libgnat/s-pack14.adb: Likewise.
888         * libgnat/s-pack15.adb: Likewise.
889         * libgnat/s-pack17.adb: Likewise.
890         * libgnat/s-pack18.adb: Likewise.
891         * libgnat/s-pack19.adb: Likewise.
892         * libgnat/s-pack20.adb: Likewise.
893         * libgnat/s-pack21.adb: Likewise.
894         * libgnat/s-pack22.adb: Likewise.
895         * libgnat/s-pack23.adb: Likewise.
896         * libgnat/s-pack24.adb: Likewise.
897         * libgnat/s-pack25.adb: Likewise.
898         * libgnat/s-pack26.adb: Likewise.
899         * libgnat/s-pack27.adb: Likewise.
900         * libgnat/s-pack28.adb: Likewise.
901         * libgnat/s-pack29.adb: Likewise.
902         * libgnat/s-pack30.adb: Likewise.
903         * libgnat/s-pack31.adb: Likewise.
904         * libgnat/s-pack33.adb: Likewise.
905         * libgnat/s-pack34.adb: Likewise.
906         * libgnat/s-pack35.adb: Likewise.
907         * libgnat/s-pack36.adb: Likewise.
908         * libgnat/s-pack37.adb: Likewise.
909         * libgnat/s-pack38.adb: Likewise.
910         * libgnat/s-pack39.adb: Likewise.
911         * libgnat/s-pack40.adb: Likewise.
912         * libgnat/s-pack41.adb: Likewise.
913         * libgnat/s-pack42.adb: Likewise.
914         * libgnat/s-pack43.adb: Likewise.
915         * libgnat/s-pack44.adb: Likewise.
916         * libgnat/s-pack45.adb: Likewise.
917         * libgnat/s-pack46.adb: Likewise.
918         * libgnat/s-pack47.adb: Likewise.
919         * libgnat/s-pack48.adb: Likewise.
920         * libgnat/s-pack49.adb: Likewise.
921         * libgnat/s-pack50.adb: Likewise.
922         * libgnat/s-pack51.adb: Likewise.
923         * libgnat/s-pack52.adb: Likewise.
924         * libgnat/s-pack53.adb: Likewise.
925         * libgnat/s-pack54.adb: Likewise.
926         * libgnat/s-pack55.adb: Likewise.
927         * libgnat/s-pack56.adb: Likewise.
928         * libgnat/s-pack57.adb: Likewise.
929         * libgnat/s-pack58.adb: Likewise.
930         * libgnat/s-pack59.adb: Likewise.
931         * libgnat/s-pack60.adb: Likewise.
932         * libgnat/s-pack61.adb: Likewise.
933         * libgnat/s-pack62.adb: Likewise.
934         * libgnat/s-pack63.adb: Likewise.
935         * libgnat/s-pack65.adb: Likewise.
936         * libgnat/s-pack66.adb: Likewise.
937         * libgnat/s-pack67.adb: Likewise.
938         * libgnat/s-pack68.adb: Likewise.
939         * libgnat/s-pack69.adb: Likewise.
940         * libgnat/s-pack70.adb: Likewise.
941         * libgnat/s-pack71.adb: Likewise.
942         * libgnat/s-pack72.adb: Likewise.
943         * libgnat/s-pack73.adb: Likewise.
944         * libgnat/s-pack74.adb: Likewise.
945         * libgnat/s-pack75.adb: Likewise.
946         * libgnat/s-pack76.adb: Likewise.
947         * libgnat/s-pack77.adb: Likewise.
948         * libgnat/s-pack78.adb: Likewise.
949         * libgnat/s-pack79.adb: Likewise.
950         * libgnat/s-pack80.adb: Likewise.
951         * libgnat/s-pack81.adb: Likewise.
952         * libgnat/s-pack82.adb: Likewise.
953         * libgnat/s-pack83.adb: Likewise.
954         * libgnat/s-pack84.adb: Likewise.
955         * libgnat/s-pack85.adb: Likewise.
956         * libgnat/s-pack86.adb: Likewise.
957         * libgnat/s-pack87.adb: Likewise.
958         * libgnat/s-pack88.adb: Likewise.
959         * libgnat/s-pack89.adb: Likewise.
960         * libgnat/s-pack90.adb: Likewise.
961         * libgnat/s-pack91.adb: Likewise.
962         * libgnat/s-pack92.adb: Likewise.
963         * libgnat/s-pack93.adb: Likewise.
964         * libgnat/s-pack94.adb: Likewise.
965         * libgnat/s-pack95.adb: Likewise.
966         * libgnat/s-pack96.adb: Likewise.
967         * libgnat/s-pack97.adb: Likewise.
968         * libgnat/s-pack98.adb: Likewise.
969         * libgnat/s-pack99.adb: Likewise.
971 2023-07-18  Yannick Moy  <moy@adacore.com>
973         * errout.adb (Error_Msg_Internal): Remove call to
974         Prescan_Message on the special continuation for the explain code
975         command, as this does not play well with the setting of global
976         variables for the message (like its status as a warning or not).
977         Instead, set directly the global variables regarding content of
978         the message in terms of special characters.
980 2023-07-18  Eric Botcazou  <ebotcazou@adacore.com>
982         * sem_util.ads (Validated_View): Document enhanced behavior.
983         * sem_util.adb (Validated_View): Return the nonlimited view, if any,
984         of types coming from a limited with.
986 2023-07-11  Bob Duff  <duff@adacore.com>
988         * exp_ch3.adb (Expand_N_Object_Declaration): Avoid transforming to
989         a renaming in case of constrained array that comes from source.
991 2023-07-11  Eric Botcazou  <ebotcazou@adacore.com>
993         * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
994         In the case of private discriminated types, return a discriminant
995         only if it is listed in the discriminant part of the declaration.
997 2023-07-10  Eric Botcazou  <ebotcazou@adacore.com>
999         * adaint.c [_WIN32]: Undefine 'abort' macro.
1001 2023-07-10  Tom Tromey  <tromey@adacore.com>
1003         * snames.h-tmpl (Name_Id, Attribute_Id, Convention_Id)
1004         (Pragma_Id): New typedefs.
1005         (Get_Attribute_Id, Get_Pragma_Id): Use typedef.
1007 2023-07-10  Yannick Moy  <moy@adacore.com>
1009         * libgnat/s-aridou.adb (Lemma_Powers_Of_2_Commutation): Rewrite
1010         assertion.
1012 2023-07-10  Bob Duff  <duff@adacore.com>
1014         * doc/gnat_rm/gnat_language_extensions.rst
1015         (Local Declarations Without Block): Document the feature very
1016         briefly, and refer the reader to the RFC for details and examples.
1017         * gnat_rm.texi: Regenerate.
1018         * gnat_ugn.texi: Regenerate.
1020 2023-07-10  Alexandre Oliva  <oliva@adacore.com>
1022         * doc/gnat_rm/security_hardening_features.rst (Control Flow
1023         Hardening): Document -fhardcfr-skip-leaf.
1024         * gnat_rm.texi: Regenerate.
1026 2023-07-10  Alexandre Oliva  <oliva@adacore.com>
1028         * doc/gnat_rm/security_hardening_features.rst (Control Flow
1029         Redundancy): Add -fhardcfr-check-noreturn-calls=no-xthrow.
1030         * gnat_rm.texi: Regenerate.
1032 2023-07-10  Yannick Moy  <moy@adacore.com>
1034         * libgnat/s-aridou.adb (Lemma_Div_Mult): New simple lemma.
1035         (Lemma_Powers_Of_2_Commutation): State post in else branch.
1036         (Lemma_Div_Pow2): Introduce local lemma and use it.
1037         (Scaled_Divide): Use cut operations in assertions, lemmas, new
1038         assertions. Introduce local lemma and use it.
1040 2023-07-10  Alexandre Oliva  <oliva@adacore.com>
1042         * doc/gnat_rm/security_hardening_features.rst (Register
1043         Scrubbing): Document leafy mode.
1044         * gnat_rm.texi: Regenerate.
1046 2023-07-06  Claire Dross  <dross@adacore.com>
1048         * gcc-interface/Make-lang.in: Add object files of specification
1049         files.
1051 2023-07-06  Claire Dross  <dross@adacore.com>
1053         * libgnat/s-vs_int.ads: Instance of Value_I_Spec for Integer.
1054         * libgnat/s-vs_lli.ads: Instance of Value_I_Spec for
1055         Long_Long_Integer.
1056         * libgnat/s-vsllli.ads: Instance of Value_I_Spec for
1057         Long_Long_Long_Integer.
1058         * libgnat/s-vs_uns.ads: Instance of Value_U_Spec for Unsigned.
1059         * libgnat/s-vs_llu.ads: Instance of Value_U_Spec for
1060         Long_Long_Unsigned.
1061         * libgnat/s-vslllu.ads: Instance of Value_U_Spec for
1062         Long_Long_Long_Unsigned.
1063         * libgnat/s-imagei.ads: Take instances of Value_*_Spec as
1064         parameters.
1065         * libgnat/s-imagei.adb: Idem.
1066         * libgnat/s-imageu.ads: Idem.
1067         * libgnat/s-imageu.adb: Idem.
1068         * libgnat/s-valuei.ads: Idem.
1069         * libgnat/s-valuei.adb: Idem.
1070         * libgnat/s-valueu.ads: Idem.
1071         * libgnat/s-valueu.adb: Idem.
1072         * libgnat/s-imgint.ads: Adapt instance to new ghost parameters.
1073         * libgnat/s-imglli.ads: Adapt instance to new ghost parameters.
1074         * libgnat/s-imgllli.ads: Adapt instance to new ghost parameters.
1075         * libgnat/s-imglllu.ads: Adapt instance to new ghost parameters.
1076         * libgnat/s-imgllu.ads: Adapt instance to new ghost parameters.
1077         * libgnat/s-imguns.ads: Adapt instance to new ghost parameters.
1078         * libgnat/s-valint.ads: Adapt instance to new ghost parameters.
1079         * libgnat/s-vallli.ads: Adapt instance to new ghost parameters.
1080         * libgnat/s-valllli.ads: Adapt instance to new ghost parameters.
1081         * libgnat/s-vallllu.ads: Adapt instance to new ghost parameters.
1082         * libgnat/s-valllu.ads: Adapt instance to new ghost parameters.
1083         * libgnat/s-valuns.ads: Adapt instance to new ghost parameters.
1084         * libgnat/s-vaispe.ads: Take instance of Value_U_Spec as parameter
1085         and remove unused declaration.
1086         * libgnat/s-vaispe.adb: Idem.
1087         * libgnat/s-vauspe.ads: Remove unused declaration.
1088         * libgnat/s-valspe.ads: Factor out the specification part of
1089         Val_Util.
1090         * libgnat/s-valspe.adb: Idem.
1091         * libgnat/s-valuti.ads: Move specification to Val_Spec.
1092         * libgnat/s-valuti.adb: Idem.
1093         * libgnat/s-valboo.ads: Use Val_Spec.
1094         * libgnat/s-valboo.adb: Idem.
1095         * libgnat/s-imgboo.adb: Idem.
1096         * libgnat/s-imagef.adb: Adapt instances to new ghost parameters.
1097         * Makefile.rtl: List new files.
1099 2023-07-06  Viljar Indus  <indus@adacore.com>
1101         * sem_attr.adb (analyze_attribute.check_array_type): Replace valid
1102         indexes with their staticly evaluated values.
1104 2023-07-06  Viljar Indus  <indus@adacore.com>
1106         * doc/gnat_ugn/the_gnat_compilation_model.rst: Reference "Binding
1107         with Non-Ada Main Programs" from "Creating a Stand-alone Library
1108         to be used in a non-Ada context".
1109         * gnat_ugn.texi: Regenerate.
1111 2023-07-06  Viljar Indus  <indus@adacore.com>
1113         * sem_util.adb (Is_Fully_Initialized_Type): Avoid recalculating
1114         the underlying type twice.
1116 2023-07-06  Viljar Indus  <indus@adacore.com>
1118         * exp_util.adb (Find_Optional_Prim_Op): Stop deriving primitive
1119         operation if there is no underlying type to derive it from.
1121 2023-07-06  Yannick Moy  <moy@adacore.com>
1123         * errout.ads: Add explain code.
1124         * sem_prag.adb (Check_Library_Level_Entity): Refine error message
1125         and add explain code.
1127 2023-07-06  Steve Baird  <baird@adacore.com>
1129         * exp_ch7.adb (Make_Final_Call): Add assertion that if no
1130         finalization call is generated, then the type of the object being
1131         finalized does not require finalization.
1132         * freeze.adb (Freeze_Entity): If freezing an already-frozen
1133         subtype, do not assume that nothing needs to be done. In the case
1134         of a frozen subtype of a non-frozen type or subtype (which is
1135         possible), freeze the non-frozen entity.
1137 2023-07-04  Eric Botcazou  <ebotcazou@adacore.com>
1139         * exp_ch5.adb (Expand_Assign_Array): Adjust comment above the
1140         calls to Possible_Bit_Aligned_Component on the LHS and RHS. Do not
1141         call Is_Possibly_Unaligned_Slice in the slice case.
1142         * exp_util.ads (Component_May_Be_Bit_Aligned): Add For_Slice
1143         boolean parameter.
1144         (Possible_Bit_Aligned_Component): Likewise.
1145         * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return False
1146         for the slice of a small record or bit-packed array component.
1147         (Possible_Bit_Aligned_Component): Pass For_Slice in recursive
1148         calls, except in the slice case where True is passed, as well as
1149         in call to Component_May_Be_Bit_Aligned.
1151 2023-07-04  Eric Botcazou  <ebotcazou@adacore.com>
1153         * exp_ch4.ads (Expand_Unchecked_Union_Equality): Only take a
1154         single parameter.
1155         * exp_ch4.adb (Expand_Unchecked_Union_Equality): Add guard against
1156         repeated invocation on the same node.
1157         * exp_ch6.adb (Expand_Call): Only pass a single actual parameter
1158         in the call to Expand_Unchecked_Union_Equality.
1160 2023-07-04  Viljar Indus  <indus@adacore.com>
1162         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1163         add No_Use_Of_Attribute & No_Use_Of_Pragma restrictions.
1164         * gnat_rm.texi: Regenerate.
1165         * gnat_ugn.texi: Regenerate.
1167 2023-07-04  Yannick Moy  <moy@adacore.com>
1169         * sem_disp.adb (Inherited_Subprograms): Add parameter to filter
1170         out results.
1171         * sem_disp.ads: Likewise.
1173 2023-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1175         * exp_ch3.ads (Build_Variant_Record_Equality): Add Spec_Id as second
1176         parameter.
1177         * exp_ch3.adb (Build_Variant_Record_Equality): For unchecked union
1178         types, build the additional parameters as extra formal parameters.
1179         (Expand_Freeze_Record_Type.Build_Variant_Record_Equality): Pass
1180         Empty as Spec_Id in call to Build_Variant_Record_Equality.
1181         * exp_ch4.ads (Expand_Unchecked_Union_Equality): New procedure.
1182         * exp_ch4.adb (Expand_Composite_Equality): In the presence of a
1183         function implementing composite equality, do not special case the
1184         unchecked union types, and only convert the operands if the base
1185         types are not the same like in Build_Equality_Call.
1186         (Build_Equality_Call): Do not special case the unchecked union types
1187         and relocate the operands only once.
1188         (Expand_N_Op_Eq): Do not special case the unchecked union types.
1189         (Expand_Unchecked_Union_Equality): New procedure implementing the
1190         specific expansion of calls to the predefined equality function.
1191         * exp_ch6.adb (Is_Unchecked_Union_Equality): New predicate.
1192         (Expand_Call): Call Is_Unchecked_Union_Equality to determine whether
1193         to call Expand_Unchecked_Union_Equality or Expand_Call_Helper.
1194         * exp_ch8.adb (Build_Body_For_Renaming): Set Has_Delayed_Freeze flag
1195         earlier on Id and pass Id in call to Build_Variant_Record_Equality.
1197 2023-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1199         * exp_ch3.adb (Build_Untagged_Equality): Rename into...
1200         (Build_Untagged_Record_Equality): ...this.
1201         (Expand_Freeze_Record_Type): Adjust to above renaming and invoke
1202         the procedure also for discriminated types without a variant part.
1204 2023-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1206         * sem_util.adb (Has_Inferable_Discriminants): In the case of a
1207         component with a per-object constraint, also return true if the
1208         enclosing object is not of an unchecked union type.
1209         In the default case, remove a useless call to Base_Type.
1211 2023-06-29  Richard Sandiford  <richard.sandiford@arm.com>
1213         * gcc-interface/decl.cc (gt_pch_nx): Remove overloads for Entity_Id.
1215 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1217         * gcc-interface/Makefile.in (LIBIBERTY): Fix condition.
1218         (TOOLS_LIBS): Add @LD_PICFLAG@.
1220 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1222         * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Add guard to the
1223         code turning the type of the RESULT_DECL into a reference type.
1224         (maybe_make_gnu_thunk): Use a more precise guard in the same case.
1226 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1228         * gcc-interface/trans.cc (Case_Statement_to_gnu): Rename boolean
1229         constant and use From_Conditional_Expression flag for its value.
1231 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1233         * debug.adb (d.L): Remove documentation.
1234         * exp_ch4.adb (Expand_N_Case_Expression): In the not-by-copy case,
1235         do not wrap the case statement in an Expression_With_Actions node.
1236         (Expand_N_If_Expression): Do not test
1237         Back_End_Handles_Limited_Types
1238         * gnat1drv.adb (Adjust_Global_Switches): Do not set it.
1239         * opt.ads (Back_End_Handles_Limited_Types): Delete.
1241 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1243         * sem_ch12.adb (Check_Generic_Actuals): Check the component type
1244         of constants and variables of an array type.
1245         (Copy_Generic_Node): Fix bogus handling of iterator
1246         specifications.
1248 2023-06-27  Claire Dross  <dross@adacore.com>
1250         * libgnat/a-textio.ads (Get_Line): Use Relaxed_Initialization on
1251         the Item parameter of Get_Line.
1253 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1255         * exp_ch4.adb (Expand_N_Quantified_Expression): Revert the latest
1256         change as it is subsumed by the machinery in Sem_Ch5.
1257         * sem_ch5.adb (Prepare_Iterator_Loop): Also wrap the loop
1258         statement in a block in the name contains a function call that
1259         returns on the secondary stack.
1261 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1263         * sem_ch12.adb (Scope_Within_Body_Or_Same): New predicate.
1264         (Check_Actual_Type): Take into account packages nested in bodies
1265         to compute the enclosing scope by means of
1266         Scope_Within_Body_Or_Same.
1268 2023-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1270         * sem_ch12.adb (Check_Private_View): Also check the type of
1271         visible discriminants in record and concurrent types.
1273 2023-06-27  Viljar Indus  <indus@adacore.com>
1275         * sprint.adb (Print_Node_Actual): Print homogeneous N_Aggregate
1276         nodes with brackets.
1278 2023-06-27  Viljar Indus  <indus@adacore.com>
1280         * exp_aggr.adb (Expand_N_Aggregate): Ensure that container
1281         aggregate expressions do not get expanded as records but instead
1282         as container aggregates.
1284 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
1286         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Pass
1287         the NULL_TREE explicitly and test imported_p in lieu of
1288         Is_Imported. <E_Function>: Remove public_flag local variable and
1289         make extern_flag local variable a constant.
1291 2023-06-20  Yannick Moy  <moy@adacore.com>
1293         * sem_res.adb (Resolve_Call): Fix change that replaced test for
1294         quantified expressions by the test for potentially unevaluated
1295         contexts. Both should be performed.
1297 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
1299         * exp_ch7.adb (Convert_View): Detect more cases of mismatches for
1300         private types and use Implementation_Base_Type as main criterion.
1301         * gen_il-fields.ads (Opt_Field_Enum): Add
1302         Has_Secondary_Private_View
1303         * gen_il-gen-gen_nodes.adb (N_Expanded_Name): Likewise.
1304         (N_Direct_Name): Likewise.
1305         (N_Op): Likewise.
1306         * sem_ch12.ads (Check_Private_View): Document the usage of second
1307         flag Has_Secondary_Private_View.
1308         * sem_ch12.adb (Get_Associated_Entity): New function to retrieve
1309         the ultimate associated entity, if any.
1310         (Check_Private_View): Implement Has_Secondary_Private_View
1311         support.
1312         (Copy_Generic_Node): Remove specific treatment for Component_Type
1313         of an array type and Designated_Type of an access type. Add
1314         specific treatment for comparison and equality operators, as well
1315         as iterator and loop parameter specifications.
1316         (Instantiate_Type): Implement Has_Secondary_Private_View support.
1317         (Requires_Delayed_Save): Call Get_Associated_Entity.
1318         (Set_Global_Type): Implement Has_Secondary_Private_View support.
1319         * sem_ch6.adb (Conforming_Types): Remove bypass for private views
1320         in instances.
1321         * sem_type.adb (Covers): Return true if Is_Subtype_Of does so.
1322         Remove bypass for private views in instances.
1323         (Specific_Type): Likewise.
1324         * sem_util.adb (Wrong_Type): Likewise.
1325         * sinfo.ads (Has_Secondary_Private_View): Document new flag.
1327 2023-06-20  Ronan Desplanques  <desplanques@adacore.com>
1329         * libgnarl/s-mudido.ads: Remove outdated comment.
1331 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
1333         * doc/gnat_ugn/gnat_and_program_execution.rst (Overflows in GNAT)
1334         <Default Settings>: Remove obsolete paragraph about -gnato.
1335         <Implementation Notes>: Replace CHECKED with STRICT.
1336         * gnat_ugn.texi: Regenerate.
1338 2023-06-20  Yannick Moy  <moy@adacore.com>
1340         * sem_util.adb (Check_Result_And_Post_State): Do not warn in cases
1341         where the warning could be spurious.
1343 2023-06-20  Yannick Moy  <moy@adacore.com>
1345         * err_vars.ads (Error_Msg_Code): New variable for error codes.
1346         * errout.adb (Error_Msg_Internal): Display continuation message
1347         when an error code was present.
1348         (Set_Msg_Text): Handle character sequence [] for error codes.
1349         * errout.ads: Document new insertion sequence [].
1350         (Error_Msg_Code): New renaming.
1351         * erroutc.adb (Prescan_Message): Detect presence of error code.
1352         (Set_Msg_Insertion_Code): Handle new insertion sequence [].
1353         * erroutc.ads (Has_Error_Code): New variable for prescan.
1354         (Set_Msg_Insertion_Code): Handle new insertion sequence [].
1355         * contracts.adb (Check_Type_Or_Object_External_Properties):
1356         Replace reference to SPARK RM section by an error code.
1357         * sem_elab.adb (SPARK_Processor): Same.
1358         * sem_prag.adb (Check_Missing_Part_Of): Same.
1359         * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Same.
1361 2023-06-20  Piotr Trojanek  <trojanek@adacore.com>
1363         * sem_res.adb (Resolve_Entity_Name): Handle Range like First and Last.
1365 2023-06-20  Jose Ruiz  <ruiz@adacore.com>
1367         * doc/gnat_ugn/the_gnat_compilation_model.rst
1368         (Partition-Wide Settings): add this subsection to document
1369         configuration settings made by the Ada run time.
1370         * gnat_ugn.texi: Regenerate.
1372 2023-06-20  Piotr Trojanek  <trojanek@adacore.com>
1374         * sem_res.adb (Resolve_Entity_Name): Ignore implicit loop scopes
1375         introduced by quantified expressions.
1377 2023-06-20  Bob Duff  <duff@adacore.com>
1379         * sem_ch3.adb (Analyze_Object_Declaration): Remove predicate-check
1380         generation if there is an address clause. These are unnecessary,
1381         and cause gigi to crash.
1382         * exp_util.ads (Following_Address_Clause): Remove obsolete "???"
1383         comments. The suggested changes were done long ago.
1385 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
1387         * einfo.ads (Has_Private_Ancestor): Fix inaccuracy in description.
1388         * sem_ch12.adb (Check_Actual_Type): Do not switch the view of the
1389         type if it has a private ancestor.
1391 2023-06-20  Daniel King  <dmking@adacore.com>
1393         * libgnat/i-cheri.ads: Add CHERI intrinsics and helper functions.
1394         * libgnat/i-cheri.adb: Likewise
1396 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
1398         * exp_ch7.adb (Convert_View): Remove Ind parameter and adjust.
1399         * sem_ch12.adb (Check_Generic_Actuals): Check the type of both in
1400         and in out actual objects, as well as the type of formal parameters
1401         of actual subprograms.  Extend the condition under which the views
1402         are swapped to nested generic constructs.
1403         (Save_References_In_Identifier): Call Set_Global_Type on a global
1404         identifier rewritten as an explicit dereference, either directly
1405         or after having first been rewritten as a function call.
1406         (Save_References_In_Operator): Set N2 unconditionally and reuse it.
1407         * sem_ch3.adb (Build_Derived_Record_Type): Add missing comment.
1408         * sem_res.adb (Resolve_Implicit_Dereference): Remove special bypass
1409         for private views in instances.
1411 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
1413         * exp_aggr.adb (Convert_To_Assignments): Tweak comment.
1414         (Expand_Array_Aggregate): Do not delay the expansion if the parent
1415         node is a container aggregate.
1417 2023-06-20  Ghjuvan Lacambre  <lacambre@adacore.com>
1419         * errout.adb (Output_Messages): Fix loop termination condition.
1421 2023-06-20  Eric Botcazou  <ebotcazou@adacore.com>
1423         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
1424         Switches): Document -gnateH.
1425         * opt.ads (Reverse_Bit_Order_Threshold): New variable.
1426         * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Use its value
1427         if it is nonnegative instead of System_Max_Integer_Size.
1428         * switch-c.adb (Scan_Front_End_Switches): Deal with -gnateH.
1429         * usage.adb (Usage): Print -gnateH.
1430         * gnat_ugn.texi: Regenerate.
1432 2023-06-20  Yannick Moy  <moy@adacore.com>
1434         * libgnat/s-aridou.adb (Scaled_Divide): Add assertions.
1435         * libgnat/s-valuti.adb: Add Loop_Variant.
1436         * libgnat/s-valuti.ads: Add Exceptional_Cases on No_Return
1437         procedure.
1439 2023-06-20  Marc Poulhiès  <poulhies@adacore.com>
1441         * sem_ch3.adb (Build_Derived_Record_Type): Use full view as
1442         Parent_Base if needed.
1444 2023-06-20  Ghjuvan Lacambre  <lacambre@adacore.com>
1446         * lib-load.adb (Load_Unit): Pass Error_Node to calls to Error_Msg.
1448 2023-06-20  Claire Dross  <dross@adacore.com>
1450         * libgnat/a-strfix.ads: Replace Might_Not_Return annotations by
1451         Exceptional_Cases and Always_Terminates aspects.
1452         * libgnat/a-tideio.ads: Idem.
1453         * libgnat/a-tienio.ads: Idem.
1454         * libgnat/a-tifiio.ads: Idem.
1455         * libgnat/a-tiflio.ads: Idem.
1456         * libgnat/a-tiinio.ads: Idem.
1457         * libgnat/a-timoio.ads: Idem.
1458         * libgnat/a-textio.ads: Idem. Also mark functions Name, Col, Line,
1459         and Page as out of SPARK as they might raise Layout_Error.
1460         * libgnarl/a-reatim.ads: Replace Always_Return annotations by
1461         Always_Terminates aspects.
1462         * libgnat/a-chahan.ads: Idem.
1463         * libgnat/a-nbnbig.ads: Idem.
1464         * libgnat/a-nbnbin.ads: Idem.
1465         * libgnat/a-nbnbre.ads: Idem.
1466         * libgnat/a-ngelfu.ads: Idem.
1467         * libgnat/a-nlelfu.ads: Idem.
1468         * libgnat/a-nllefu.ads: Idem.
1469         * libgnat/a-nselfu.ads: Idem.
1470         * libgnat/a-nuelfu.ads: Idem.
1471         * libgnat/a-strbou.ads: Idem.
1472         * libgnat/a-strmap.ads: Idem.
1473         * libgnat/a-strsea.ads: Idem.
1474         * libgnat/a-strsup.ads: Idem.
1475         * libgnat/a-strunb.ads: Idem.
1476         * libgnat/a-strunb__shared.ads: Idem.
1477         * libgnat/g-souinf.ads: Idem.
1478         * libgnat/i-c.ads: Idem.
1479         * libgnat/interfac.ads: Idem.
1480         * libgnat/interfac__2020.ads: Idem.
1481         * libgnat/s-aridou.adb: Idem.
1482         * libgnat/s-arit32.adb: Idem.
1483         * libgnat/s-atacco.ads: Idem.
1484         * libgnat/s-spcuop.ads: Idem.
1485         * libgnat/s-stoele.ads: Idem.
1486         * libgnat/s-vaispe.ads: Idem.
1487         * libgnat/s-vauspe.ads: Idem.
1488         * libgnat/i-cstrin.ads: Add a precondition instead of a
1489         Might_Not_Return annotation.
1491 2023-06-20  Javier Miranda  <miranda@adacore.com>
1493         * sem_ch4.adb
1494         (Try_Selected_Component_In_Instance): New subprogram; factorizes
1495         existing code.
1496         (Find_Component_In_Instance) Moved inside the new subprogram.
1497         (Analyze_Selected_Component): Invoke the new subprogram before
1498         trying the Object.Operation notation.
1500 2023-06-20  Ronan Desplanques  <desplanques@adacore.com>
1502         * libgnat/a-calfor.adb (Time_Of): Fix handling of special case.
1504 2023-06-15  Marek Polacek  <polacek@redhat.com>
1506         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove NO_PIE_CFLAGS.  Add
1507         PICFLAG.  Use PICFLAG when building ada/b_gnat1.o and ada/b_gnatb.o.
1508         * gcc-interface/Makefile.in: Use pic/libiberty.a if PICFLAG is set.
1509         Remove NO_PIE_FLAG.
1511 2023-06-15  Marc Poulhiès  <poulhies@adacore.com>
1513         * vxworks7-cert-rtp-base-link.spec: Removed.
1514         * vxworks7-cert-rtp-base-link__ppc64.spec: Removed.
1515         * vxworks7-cert-rtp-base-link__x86.spec: Removed.
1516         * vxworks7-cert-rtp-base-link__x86_64.spec: Removed.
1517         * vxworks7-cert-rtp-link.spec: Removed.
1518         * vxworks7-cert-rtp-link__ppcXX.spec: Removed.
1520 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1522         * gcc-interface/utils2.cc (build_binary_op) <MODIFY_EXPR>: Do not
1523         remove a VIEW_CONVERT_EXPR on the LHS if it is also on the RHS.
1525 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1527         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Restrict
1528         the special handling of temporaries created for return values and
1529         subject to a renaming to the top level.
1531 2023-06-15  Ronan Desplanques  <desplanques@adacore.com>
1533         * doc/gnat_ugn/about_this_guide.rst: Fix typo. Uniformize punctuation.
1534         * doc/gnat_ugn/the_gnat_compilation_model.rst: Uniformize punctuation.
1535         Fix capitalization. Fix indentation of code block. Fix RST formatting
1536         syntax errors.
1537         * gnat_ugn.texi: Regenerate.
1539 2023-06-15  Yannick Moy  <moy@adacore.com>
1541         * sem_attr.adb (Analyze_Attribute): Reject case of Loop_Entry
1542         inside the prefix of Loop_Entry, as per SPARK RM 5.5.3.1(4,8).
1544 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1546         * exp_ch3.adb (Make_Allocator_For_Return): Rewrite the logic that
1547         determines the type used for the allocation and add assertions.
1548         * exp_util.adb (Has_Tag_Of_Type): Also return true for extension
1549         aggregates.
1551 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1553         * sinfo.ads (Iterator_Filter): Document field.
1554         * sem_ch5.adb (Analyze_Iterator_Specification): Move comment around.
1555         (Analyze_Loop_Parameter_Specification): Only preanalyze the iterator
1556         filter, if any.
1557         * exp_ch5.adb (Expand_N_Loop_Statement): Analyze the new list built
1558         when an iterator filter is present.
1560 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1562         * exp_util.adb (Find_Hook_Context): Revert latest change.
1564 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1566         * exp_ch3.adb (Make_Allocator_For_Return): Deal again specifically
1567         with an aggregate returned through an object of a class-wide type.
1569 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1571         * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Do not insert
1572         an always empty list. Remove unused parameter Isc.
1573         (Expand_Iterator_Loop): Adjust call to above procedure.
1575 2023-06-15  Ronan Desplanques  <desplanques@adacore.com>
1577         * targparm.adb: Allow pragma Style_Checks in some forms.
1578         * targparm.ads: Document new pragma permission.
1580 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1582         * exp_util.ads (Within_Case_Or_If_Expression): Adjust description.
1583         * exp_util.adb (Find_Hook_Context): Stop the search for the topmost
1584         conditional expression, if within one, at contexts where temporaries
1585         may be contained.
1586         (Within_Case_Or_If_Expression): Return false upon first encoutering
1587         contexts where temporaries may be contained.
1589 2023-06-15  Johannes Kliemann  <kliemann@adacore.com>
1591         * libgnarl/s-osinte__qnx.adb: Adjust priority conversion function.
1592         * libgnat/system-qnx-arm.ads: Adjust priority range and default
1593         priority.
1595 2023-06-15  Ronan Desplanques  <desplanques@adacore.com>
1597         * targparm.ads: Remove references to front-end-based exceptions. Fix
1598         thinko.
1600 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
1602         * contracts.adb (Add_Contract_Item): Add pragma Always_Terminates to
1603         package contract.
1604         * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates on
1605         packages and generic packages, but only when it has no arguments.
1607 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
1609         * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates when
1610         it applies to an entry.
1612 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
1614         * sem_prag.adb (Analyze_Pragma): Reject pragma Always_Terminates when
1615         it applies to a function or generic function.
1617 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1619         * sem_ch4.adb (Analyze_Call): Adjust the test to detect the presence
1620         of an incomplete view of a type on a function call.
1622 2023-06-15  Ronan Desplanques  <desplanques@adacore.com>
1624         * ttypes.ads: Remove reference to Ttypef in comment. Fix typo in
1625         comment.
1627 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1629         * get_targ.ads (Get_Max_Unaligned_Field): Delete.
1630         * ada_get_targ.adb (Get_Max_Unaligned_Field): Likewise.
1631         * get_targ.adb (Get_Max_Unaligned_Field): Likewise.
1632         * set_targ.ads (Max_Unaligned_Field): Adjust comment.
1633         * set_targ.adb: Set Max_Unaligned_Field to 1 during elaboration.
1634         * ttypes.ads (Max_Unaligned_Field): Delete.
1636 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1638         * sem_type.adb (Disambiguate): Fix pasto in the implementation of
1639         the RM 8.4(10) clause for operators.
1641 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
1643         * aspects.adb
1644         (Base_Aspect): Fix layout.
1645         * aspects.ads
1646         (Aspect_Argument): Expression for Always_Terminates is optional.
1647         * sem_prag.adb
1648         (Analyze_Always_Terminates_In_Decl_Part): Only analyze expression when
1649         pragma argument is present.
1650         (Analyze_Pragma): Argument for Always_Terminates is optional; fix
1651         whitespace for Async_Readers.
1653 2023-06-15  Javier Miranda  <miranda@adacore.com>
1655         * sem_util.adb
1656         (Is_CPP_Constructor_Call): Add missing support for calls to
1657         functions returning a private type.
1659 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1661         * exp_util.ads (Build_Transient_Object_Statements): Remove obsolete
1662         references to array and record aggregates in documentation.
1664 2023-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1666         * sem_ch13.adb (Analyze_Aspect_Specifications): Add missing items
1667         in the list of aspects handled by means of Insert_Pragma.
1668         <Aspect_Linker_Section>: Remove obsolete code.  Do not delay the
1669         processing of the aspect if the entity is already frozen.
1671 2023-06-15  Piotr Trojanek  <trojanek@adacore.com>
1673         * sem_aggr.adb
1674         (Resolve_Array_Aggregate): Simplify comment.
1675         (Resolve_Iterated_Component_Association): Tune comment; change variable
1676         to constant.
1678 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1680         * sem_aggr.adb (Resolve_Iterated_Component_Association): Simply resolve
1681         the expression.
1683 2023-06-13  Bob Duff  <duff@adacore.com>
1685         * exp_ch4.adb
1686         (Expand_N_Quantified_Expression): Detect the secondary-stack
1687         case, and find the innermost scope where we should mark/release,
1688         and Set_Uses_Sec_Stack on that. Skip intermediate blocks and loops
1689         that are part of expansion.
1691 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1693         * sem_util.adb (Is_Repeatedly_Evaluated): Recognize iterated component
1694         association as repeatedly evaluated.
1696 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1698         * sem_util.adb (Is_Potentially_Unevaluated): Recognize iterated
1699         component association as potentially unevaluated.
1701 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1703         * sem_res.adb (Resolve_Call): Replace early call to
1704         In_Quantified_Expression with a call to Is_Potentially_Unevaluated that
1705         was only done when Full_Analysis is true.
1707 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1709         * aspects.ads (Aspect_Id): Add new aspect.
1710         (Implementation_Defined_Aspect): New aspect is
1711         implementation-defined.
1712         (Aspect_Argument): New aspect has an expression argument.
1713         (Is_Representation_Aspect): New aspect is not a representation
1714         aspect.
1715         (Aspect_Names): Link new aspect identifier with a name.
1716         (Aspect_Delay): New aspect is never delayed.
1717         * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
1718         in comment.
1719         (Add_Contract_Item): Attach pragma corresponding to the new aspect
1720         to contract items.
1721         (Analyze_Entry_Or_Subprogram_Contract): Analyze pragma
1722         corresponding to the new aspect that appears with subprogram spec.
1723         (Analyze_Subprogram_Body_Stub_Contract): Expand pragma
1724         corresponding to the new aspect.
1725         * contracts.ads
1726         (Add_Contract_Item, Analyze_Entry_Or_Subprogram_Contract)
1727         (Analyze_Entry_Or_Subprogram_Body_Contract)
1728         (Analyze_Subprogram_Body_Stub_Contract): Mention new aspect in
1729         comment.
1730         * einfo-utils.adb (Get_Pragma): Return pragma attached to
1731         contract.
1732         * einfo-utils.ads (Get_Pragma): Mention new contract in comment.
1733         * exp_prag.adb (Expand_Pragma_Always_Terminates): Placeholder for
1734         possibly expanding new aspect.
1735         * exp_prag.ads (Expand_Pragma_Always_Terminates): Dedicated
1736         routine for expansion of the new aspect.
1737         * inline.adb (Remove_Aspects_And_Pragmas): Remove aspect from
1738         inlined bodies.
1739         * par-prag.adb (Prag): Postpone checking of the pragma until
1740         analysis.
1741         * sem_ch12.adb: Mention new aspect in explanation of handling
1742         contracts on generic units.
1743         * sem_ch13.adb (Analyze_Aspect_Specifications): Convert new aspect
1744         into a corresponding pragma.
1745         (Check_Aspect_At_Freeze_Point): Don't expect new aspect.
1746         * sem_prag.adb (Analyze_Always_Terminates_In_Decl_Part): Analyze
1747         pragma corresponding to the new aspect.
1748         (Analyze_Pragma): Handle pragma corresponding to the new aspect.
1749         (Is_Non_Significant_Pragma_Reference): Handle references appearing
1750         within new aspect.
1751         * sem_prag.ads (Aspect_Specifying_Pragma): New aspect can be
1752         emulated with a pragma.
1753         (Assertion_Expression_Pragma): New aspect has an assertion
1754         expression.
1755         (Pragma_Significant_To_Subprograms): New aspect is significant to
1756         subprograms.
1757         (Analyze_Always_Terminates_In_Decl_Part): Add spec for routine
1758         that analyses new aspect.
1759         (Find_Related_Declaration_Or_Body): Mention new aspect in comment.
1760         * sem_util.adb (Is_Subprogram_Contract_Annotation): New aspect is
1761         a subprogram contract annotation.
1762         * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
1763         aspect in comment.
1764         * sinfo.ads (Is_Generic_Contract_Pragma): New pragma is a generic
1765         contract.
1766         (Contract): Explain attaching new pragma to subprogram contract.
1767         * snames.ads-tmpl (Name_Always_Terminates): New name for the new
1768         contract.
1769         (Pragma_Always_Terminates): New pragma identifier.
1771 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1773         * sem_elab.adb (Check_Overriding_Primitive): Prevent Corresponding_Body
1774         to be called with entity of an abstract subprogram.
1776 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1778         * sem_ch12.adb (Save_References_In_Identifier): In the case where
1779         the identifier has been turned into a function call by analysis,
1780         call Set_Global_Type on the entity if it is global.
1782 2023-06-13  Marc Poulhiès  <poulhies@adacore.com>
1784         * sem_aggr.adb (Resolve_Iterated_Component_Association): Call
1785         Preanalyze_And_Resolve instead of Resolve_Aggr_Expr except for
1786         aggregate.
1787         Co-authored-by: Ed Schonberg <schonberg@adacore.com>
1789 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1791         * contracts.adb (Contract_Error): New exception.
1792         (Add_Contract_Item): Raise Contract_Error instead of Program_Error.
1793         (Add_Generic_Contract_Pragma): Deal with Contract_Error.
1795 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1797         * sem_attr.adb (Eval_Attribute): Add more exceptions to the early
1798         return for a prefix which is a nonfrozen generic actual type.
1799         * sem_ch12.adb (Copy_Generic_Node): Also check private views in the
1800         case of an entity name or operator analyzed as a function call.
1801         (Set_Global_Type): Make it a child of Save_Global_References.
1802         (Save_References_In_Operator): In the case where the operator has
1803         been turned into a function call, call Set_Global_Type on the entity
1804         if it is global.
1806 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1808         * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): For a
1809         subprogram body that has no contracts and does not come from source,
1810         make sure that contracts on its corresponding spec are analyzed, if
1811         any, before expanding them.
1813 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1815         * gen_il-fields.ads (Opt_Field_Enum): Add No_Finalize_Actions and
1816         remove No_Side_Effect_Removal.
1817         * gen_il-gen-gen_nodes.adb (N_Function_Call): Remove semantic flag
1818         No_Side_Effect_Removal
1819         (N_Assignment_Statement): Add semantic flag No_Finalize_Actions.
1820         * sinfo.ads (No_Ctrl_Actions): Adjust comment.
1821         (No_Finalize_Actions): New flag on assignment statements.
1822         (No_Side_Effect_Removal): Delete.
1823         * exp_aggr.adb (Build_Record_Aggr_Code): Remove obsolete comment and
1824         Ancestor_Is_Expression variable.  In the case of an extension, do
1825         not generate a call to Adjust manually, call Set_No_Finalize_Actions
1826         instead.  Do not set the tags, replace call to Make_Unsuppress_Block
1827         by Make_Suppress_Block and remove useless assertions.
1828         In the general case, call Initialize_Component.
1829         (Initialize_Controlled_Component): Delete.
1830         (Initialize_Simple_Component): Delete.
1831         (Initialize_Component): Do the low-level processing, but do not
1832         generate a call to Adjust manually, call Set_No_Finalize_Actions.
1833         (Process_Transient_Component): Delete.
1834         (Process_Transient_Component_Completion): Likewise.
1835         * exp_ch5.adb (Expand_Assign_Array): Deal with No_Finalize_Actions.
1836         (Expand_Assign_Array_Loop): Likewise.
1837         (Expand_N_Assignment_Statement): Likewise.
1838         (Make_Tag_Ctrl_Assignment): Likewise.
1839         * exp_util.adb (Remove_Side_Effects): Do not test the
1840         No_Side_Effect_Removal flag.
1841         * sem_prag.adb (Process_Suppress_Unsuppress): Give the warning in
1842         SPARK mode only for pragma Suppress.
1843         * tbuild.ads (Make_Suppress_Block): New declaration.
1844         (Make_Unsuppress_Block): Adjust comment.
1845         * tbuild.adb (Make_Suppress_Block): New procedure.
1846         (Make_Unsuppress_Block): Unsuppress instead of suppressing.
1848 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1850         * sem_ch5.adb (Analyze_Assignment): Turn Rhs into a constant and
1851         remove calls to the following subprograms.
1852         (Transform_BIP_Assignment): Delete.
1853         (Should_Transform_BIP_Assignment): Likewise.
1855 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1857         * sem_util.ads (Is_Inherited_Operation_For_Type): Remove spec.
1858         * sem_util.adb (Is_Inherited_Operation_For_Type): Remove body.
1860 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1862         * exp_aggr.adb (Build_Record_Aggr_Code): Add new variable Ancestor_Q
1863         to store the result of Unqualify on Ancestor.  Remove the dead call
1864         to Generate_Finalization_Actions in the case of another aggregate as
1865         ancestor part.  Remove the redundant setting of Assignment_OK.  Use
1866         Init_Typ in lieu of Etype (Ancestor) more consistently.
1868 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1870         * exp_aggr.adb (Build_Record_Aggr_Code): In the case of an extension
1871         aggregate of a limited type whose ancestor part is an aggregate, do
1872         not skip the final code assigning the tag of the extension.
1874 2023-06-13  Yannick Moy  <moy@adacore.com>
1876         * ghost.adb (Check_Ghost_Context): Allow absence of Ghost_Id
1877         for attribute. Update error message to mention Ghost_Predicate.
1878         (Is_Ghost_Attribute_Reference): New query.
1879         * ghost.ads (Is_Ghost_Attribute_Reference): New query.
1880         * sem_attr.adb (Resolve_Attribute): Check ghost context for ghost
1881         attributes.
1883 2023-06-13  Daniel King  <dmking@adacore.com>
1885         * libgnat/s-stoele.ads: Add No_Elaboration_Code_All pragma.
1887 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1889         * exp_util.ads (Make_Tag_Assignment_From_Type): Declare.
1890         * exp_util.adb (Make_Tag_Assignment_From_Type): New function.
1891         * exp_aggr.adb (Build_Record_Aggr_Code): Call the above function.
1892         (Initialize_Simple_Component): Likewise.
1893         * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Likewise.
1894         (Build_Record_Init_Proc.Build_Init_Procedure ): Likewise.
1895         (Make_Tag_Assignment): Likewise.  Rename local variable and call
1896         Unqualify to go through qualified expressions.
1897         * exp_ch4.adb (Expand_Allocator_Expression): Likewise.
1899 2023-06-13  Yannick Moy  <moy@adacore.com>
1901         * libgnat/a-strsup.ads: Change predicate aspect.
1902         * sem_ch13.adb (Add_Predicate): Fix for first predicate.
1904 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1906         * exp_aggr.adb (Initialize_Component): Perform immediate expansion
1907         of the initialization expression if it is a conditional expression
1908         and the component type is controlled.
1910 2023-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1912         * exp_aggr.adb (Initialize_Component): New procedure factored out
1913         from the processing of array and record aggregates.
1914         (Initialize_Controlled_Component): Likewise.
1915         (Initialize_Simple_Component): Likewise.
1916         (Build_Array_Aggr_Code.Gen_Assign): Remove In_Loop parameter.
1917         Call Initialize_Component to initialize the component.
1918         (Initialize_Array_Component): Delete.
1919         (Initialize_Ctrl_Array_Component): Likewise.
1920         (Build_Array_Aggr_Code): Adjust calls to Gen_Assign.
1921         (Build_Record_Aggr_Code): Call Initialize_Simple_Component or
1922         Initialize_Component to initialize the component.
1923         (Initialize_Ctrl_Record_Component): Delete.
1924         (Initialize_Record_Component): Likewise.
1926 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1928         * exp_ch11.adb (Expand_N_Raise_Statement): Expansion of raise statements
1929         never happens in GNATprove mode.
1931 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1933         * exp_ch11.adb (Find_Local_Handler): Replace guard against other
1934         constructs appearing in the list of exception handlers with iteration
1935         using First_Non_Pragma/Next_Non_Pragma.
1937 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1939         * exp_ch11.ads (Find_Local_Handler): Fix typo in comment.
1940         * exp_ch11.adb (Find_Local_Handler): Remove redundant check for the
1941         Exception_Handler list being present; use membership test to eliminate
1942         local object LCN; fold nested IF statements. Remove useless ELSIF
1943         condition.
1945 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1947         * sem_util.adb (Check_Function_Writable_Actuals): Tune style; use
1948         subtype name to detect membership test nodes.
1950 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
1952         * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Use a single call
1953         to New_List.
1955 2023-06-13  Yannick Moy  <moy@adacore.com>
1957         * doc/gnat_rm/implementation_defined_aspects.rst: Document new
1958         aspect.
1959         * doc/gnat_rm/implementation_defined_pragmas.rst: Whitespace.
1960         * aspects.adb (Init_Canonical_Aspect): Set it to Predicate.
1961         * aspects.ads: Set global constants for new aspect.
1962         * einfo.ads: Describe new flag related to new aspect.
1963         * exp_ch6.adb (Can_Fold_Predicate_Call): Do not fold new aspect.
1964         * exp_util.adb (Make_Predicate_Check): Add comment.
1965         * gen_il-fields.ads: Add new flag.
1966         * gen_il-gen-gen_entities.adb: Add new flag.
1967         * ghost.adb (Is_OK_Ghost_Context): Ghost predicate is an OK
1968         ghost context.
1969         (Mark_Ghost_Pragma): Add overloading with ghost mode parameter.
1970         * ghost.ads (Mark_Ghost_Pragma): Add overloading with ghpst mode
1971         parameter.
1972         (Name_To_Ghost_Mode): Make function public.
1973         * sem_aggr.adb: Issue error for violation of valid use.
1974         * sem_case.adb: Issue error for violation of valid use.
1975         * sem_ch13.adb: Adapt for new aspect.
1976         * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove dead code
1977         which was trying to propagate Has_Predicates flag in the wrong
1978         direction (from derived to parent type).
1979         (Analyze_Number_Declaration): Issue error for violation of valid
1980         use.
1981         (Build_Derived_Type): Cleanup inheritance of predicate flags from
1982         parent to derived type.
1983         (Build_Predicate_Function): Only add a predicate check when it
1984         is not ignored as Ghost code.
1985         * sem_ch4.adb (Analyze_Membership_Op): Issue an error for use of
1986         a subtype with a ghost predicate as name in a membership test.
1987         * sem_ch5.adb (Check_Predicate_Use): Issue error for violation of
1988         valid use.
1989         * sem_eval.adb: Adapt code for Dynamic_Predicate to account for
1990         Ghost_Predicate too.
1991         * sem_prag.adb (Analyze_Pragma): Make pragma ghost or not.
1992         * sem_util.adb (Bad_Predicated_Subtype_Use): Adapt to new aspect.
1993         (Inherit_Predicate_Flags): Add inheritance of flag. Add parameter
1994         to apply to derived types.
1995         * sem_util.ads (Inherit_Predicate_Flags): Change signature.
1996         * snames.ads-tmpl: Add new aspect name.
1997         * gnat_rm.texi: Regenerate.
1999 2023-06-13  Piotr Trojanek  <trojanek@adacore.com>
2001         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Remove early
2002         decoration.
2004 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2006         * gcc-interface/trans.cc (get_storage_model_access): Also strip any
2007         type conversion in the node when unwinding the components.
2009 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2011         * gcc-interface/trans.cc (node_is_component): Remove parentheses.
2012         (node_is_type_conversion): New predicate.
2013         (get_atomic_access): Use it.
2014         (get_storage_model_access): Likewise and look into the parent to
2015         find a component if it returns true.
2016         (present_in_lhs_or_actual_p): Likewise.
2018 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2020         * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Check that
2021         the storage model has Copy_From before instantiating loads for it.
2022         <Attr_Length>: Likewise.
2023         <Attr_Bit_Position>: Likewise.
2024         (gnat_to_gnu) <N_Indexed_Component>: Likewise.
2025         <N_Slice>: Likewise.
2027 2023-05-30  Marc Poulhiès  <poulhies@adacore.com>
2029         * gcc-interface/trans.cc (Attribute_to_gnu): Also strip conversion
2030         in case of DECL.
2032 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2034         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
2035         local variable for the GNAT index type.
2036         <E_Array_Subtype>: Likewise.  Call Is_Null_Range on the bounds and
2037         force the zero on TYPE_SIZE and TYPE_SIZE_UNIT if it returns true.
2039 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2041         * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Test the
2042         precision of the operation rather than that of the result type.
2044 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2046         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Replace
2047         integer_zero_node with null_pointer_node for pointer types.
2048         * gcc-interface/trans.cc (gnat_gimplify_expr) <NULL_EXPR>: Likewise.
2049         * gcc-interface/utils.cc (maybe_pad_type): Do not attempt to make a
2050         packable type from a fat pointer type.
2051         * gcc-interface/utils2.cc (build_atomic_load): Use a local variable.
2052         (build_atomic_store): Likewise.
2054 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2056         * gcc-interface/misc.cc (internal_error_function): Be prepared for
2057         an input_location set to UNKNOWN_LOCATION.
2059 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2061         * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Tweak.
2062         (gnat_to_gnu) <N_Assignment_Statement>: Declare a local variable.
2063         For a target with a storage model, use the Actual_Designated_Subtype
2064         to compute the size if it is present.
2066 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2068         * gcc-interface/trans.cc (Call_to_gnu): Remove code implementing the
2069         by-copy semantics for actuals with nonnative storage models.
2070         (gnat_to_gnu) <N_Assignment_Statement>: Remove code instantiating a
2071         temporary for assignments between nonnative storage models.
2073 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2075         * gcc-interface/decl.cc (range_cannot_be_superflat): Return true
2076         immediately if Cannot_Be_Superflat is set.
2077         * gcc-interface/misc.cc (gnat_post_options): Do not override the
2078         -Wstringop-overflow setting.
2080 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2082         * gcc-interface/Make-lang.in (ADA_CFLAGS): Move up.
2083         (ALL_ADAFLAGS): Add $(NO_PIE_CFLAGS).
2084         (ada/mdll.o): Remove.
2085         (ada/mdll-fil.o): Likewise.
2086         (ada/mdll-utl.o): Likewise.
2088 2023-05-30  Marc Poulhiès  <poulhies@adacore.com>
2090         * gcc-interface/trans.cc (get_storage_model_access): Don't require
2091         storage model access for dereference used as lvalue or renamings.
2093 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2095         * exp_aggr.adb (Build_Array_Aggr_Code): Move the declaration of Typ
2096         to the beginning.
2097         (Initialize_Array_Component): Test the unqualified version of the
2098         expression for the nested array case.
2099         (Initialize_Ctrl_Array_Component): Do not duplicate the expression
2100         here.  Do the pattern matching of the unqualified version of it.
2101         (Gen_Assign): Call Unqualify to compute Expr_Q and use Expr_Q in
2102         subsequent pattern matching.
2103         (Initialize_Ctrl_Record_Component): Do the pattern matching of the
2104         unqualified version of the aggregate.
2105         (Build_Record_Aggr_Code): Call Unqualify.
2106         (Convert_Aggr_In_Assignment): Likewise.
2107         (Convert_Aggr_In_Object_Decl): Likewise.
2108         (Component_OK_For_Backend): Likewise.
2109         (Is_Delayed_Aggregate): Likewise.
2111 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2113         * exp_aggr.adb (Build_Array_Aggr_Code.Get_Assoc_Expr): Duplicate the
2114         expression here instead of...
2115         (Build_Array_Aggr_Code): ...here.
2117 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2119         * freeze.adb (Check_Large_Modular_Array): Fix head comment, use
2120         Standard_Long_Long_Integer_Size directly and generate a reference
2121         just before the raise statement if the Etype of the object is an
2122         itype declared in an open scope.
2124 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2126         * exp_ch7.adb (Find_Enclosing_Transient_Scope): Return the index in
2127         the scope table instead of the scope's entity.
2128         (Establish_Transient_Scope): If an enclosing scope already exists,
2129         do not set the Uses_Sec_Stack flag on it if the node to be wrapped
2130         is a return statement which requires secondary stack management.
2132 2023-05-30  Joel Brobecker  <brobecker@adacore.com>
2134         * Makefile.rtl: Use libgnat/s-tsmona__linux.adb on
2135         aarch64-linux.  Link libgnat with -ldl, as the use of
2136         s-tsmona__linux.adb requires it.
2138 2023-05-30  Piotr Trojanek  <trojanek@adacore.com>
2140         * exp_ch3.adb
2141         (Build_Access_Subprogram_Wrapper_Body): Build wrapper body if requested
2142         by routine that builds wrapper spec.
2143         * sem_ch3.adb
2144         (Analyze_Full_Type_Declaration): Only build wrapper when expander is
2145         active.
2146         (Build_Access_Subprogram_Wrapper):
2147         Remove special-case for GNATprove.
2149 2023-05-30  Ronan Desplanques  <desplanques@adacore.com>
2151         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor issues.
2152         * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix minor issues.
2153         * gnat_ugn.texi: Regenerate.
2155 2023-05-30  Johannes Kliemann  <kliemann@adacore.com>
2157         * libgnat/s-parame.adb: Check that Default_Stack_Size >=
2158         Minimum_Stack_size.
2159         * libgnat/s-parame__rtems.adb: Ditto.
2160         * libgnat/s-parame__vxworks.adb: Check that Default_Stack_Size >=
2161         Minimum_Stack_size and use the proper Minimum_Stack_Size if
2162         Stack_Check_Limits is enabled.
2164 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2166         * sem_res.adb (Resolve_Call): Restrict previous change to calls that
2167         return on the same stack as the enclosing function.  Tidy up.
2169 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2171         * libgnat/a-cidlli.adb (Put_Image): Simplify.
2172         * libgnat/a-coinve.adb (Put_Image): Likewise.
2174 2023-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2176         * exp_util.adb (Build_DIC_Procedure_Body.Add_Own_DIC): When inside
2177         a generic unit, preanalyze the expression directly.
2178         (Build_Invariant_Procedure_Body.Add_Own_Invariants): Likewise.
2180 2023-05-30  Cedric Landet  <landet@adacore.com>
2182         * init.c: Replace FIXME by ???
2184 2023-05-29  Cedric Landet  <landet@adacore.com>
2186         * s-oscons-tmplt.c: move the definition of sigset out of the
2187         HAVE_SOCKETS bloc.
2189 2023-05-29  Cedric Landet  <landet@adacore.com>
2191         * Makefile.rtl: Move g-spogwa$(objext) from GNATRTL_NONTASKING_OBJS
2192         to GNATRTL_SOCKETS_OBJS
2194 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2196         * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in
2197         both cases to copy the spec of the subprogram.
2199 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2201         * exp_ch7.adb (Establish_Transient_Scope.Find_Transient_Context):
2202         Bail out for a simple return statement only if the transient scope
2203         and the function both require secondary stack management, or else
2204         if the function is a thunk.
2205         * sem_res.adb (Resolve_Call): Do not create a transient scope when
2206         the call is the expression of a simple return statement.
2208 2023-05-29  Patrick Bernardi  <bernardi@adacore.com>
2210         * libgnat/a-excach.adb (Call_Chain): Replace
2211         Code_Address_For_AAA/ZZZ functions with AAA/ZZZ'Code_Address.
2212         * libgnat/a-except.adb (Code_Address_For_AAA/ZZZ): Delete.
2213         (AAA/ZZZ): New null procedures.
2214         * libgnat/g-debpoo.adb
2215         (Code_Address_For_Allocate_End): Delete.
2216         (Code_Address_For_Deallocate_End): Delete.
2217         (Code_Address_For_Dereference_End): Delete.
2218         (Allocate): Remove label and use Code_Address attribute to
2219         determine subprogram addresses.
2220         (Dellocate): Likewise.
2221         (Dereference): Likewise.
2222         (Allocate_End): Convert to null procedure.
2223         (Dellocate_End): Likewise.
2224         (Dereference_End): Likewise.
2226 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2228         * exp_ch6.adb (Expand_Simple_Function_Return): Call Insert_Actions
2229         consistently when rewriting the expression.
2231 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2233         * exp_util.adb (Is_Finalizable_Transient.Is_Indexed_Container):
2234         New predicate to detect a temporary created to hold the result of
2235         a constant indexing on a container.
2236         (Is_Finalizable_Transient.Is_Iterated_Container): Adjust a couple
2237         of obsolete comments.
2238         (Is_Finalizable_Transient): Return False if Is_Indexed_Container
2239         returns True on the object.
2241 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2243         * sem_res.adb (Has_Applicable_User_Defined_Literal): Make it clear
2244         that the predicate also checks the node itself.
2245         (Try_User_Defined_Literal): Move current implementation to...
2246         Deal only with literals, named numbers and conditional expressions
2247         whose dependent expressions are literals or named numbers.
2248         (Try_User_Defined_Literal_For_Operator): ...this.  Remove multiple
2249         return False statements and put a single one at the end.
2250         (Resolve): Call Try_User_Defined_Literal instead of directly
2251         Has_Applicable_User_Defined_Literal for all nodes.  Call
2252         Try_User_Defined_Literal_For_Operator for operator nodes.
2254 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2256         * sem_res.adb (Invoked_With_Different_Arguments): Use Get_Called_Entity,
2257         which properly deals with calls via an access-to-subprogram; fix
2258         inconsistent use of a Call object declared in enclosing subprogram.
2260 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2262         * contracts.adb
2263         (Add_Pre_Post_Condition): Attach pre/post aspects to E_Subprogram_Type
2264         entity.
2265         (Analyze_Entry_Or_Subprogram_Contract): Adapt to use full type
2266         declaration for a contract attached to E_Subprogram_Type entity.
2267         * sem_prag.adb
2268         (Analyze_Pre_Post_Condition): Add pre/post aspects to the designed type.
2270 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2272         * sem_util.adb (Check_Function_Writable_Actuals): Remove guard against
2273         a membership test with no alternatives; simplify with a membership test.
2275 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2277         * doc/gnat_ugn/gnat_and_program_execution.rst
2278         (Some Useful Memory Pools): Remove extra whitespace from examples.
2279         * sem_aggr.adb (Make_String_Into_Aggregate): Remove extra whitespace.
2280         * gnat_ugn.texi: Regenerate.
2282 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2284         * exp_aggr.adb (Convert_Aggr_In_Allocator): Replace Get_TSS_Name
2285         with a high-level Is_TSS.
2286         * sem_ch6.adb (Check_Conformance): Replace DECLARE block and
2287         nested IF with a call to Get_TSS_Name and a membership test.
2288         (Has_Reliable_Extra_Formals): Refactor repeated calls to
2289         Get_TSS_Name.
2290         * sem_disp.adb (Check_Dispatching_Operation): Replace repeated
2291         calls to Get_TSS_Name with a membership test.
2293 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2295         * exp_ch5.adb (Expand_N_Case_Statement): Do not remove the statement
2296         if it is the node to be wrapped by a transient scope.
2298 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2300         * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not defer
2301         anything to the back-end when the main unit is generic.
2303 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2305         * sem_res.adb (Try_User_Defined_Literal): Restrict previous change
2306         to non-leaf nodes.
2308 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2310         * sem_res.adb (Try_User_Defined_Literal): For arithmetic operators,
2311         also accept operands whose type is covered by the resolution type.
2313 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2315         * exp_aggr.adb (Initialize_Array_Component): Fix condition detecting
2316         the nested case that requires an adjustment.
2318 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2320         * exp_ch4.adb (Expand_N_In): Deal specifically with a null operand.
2322 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2324         * exp_ch6.adb (Expand_Simple_Function_Return): Deal with a rewriting
2325         of the simple return during the adjustment of its expression.
2327 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2329         * exp_ch4.adb (Expand_N_Case_Expression): Distribute simple return
2330         statements enclosing the conditional expression into the dependent
2331         expressions in almost all cases.
2332         (Expand_N_If_Expression): Likewise.
2333         (Process_Transient_In_Expression): Adjust to the above distribution.
2334         * exp_ch6.adb (Expand_Ctrl_Function_Call): Deal with calls in the
2335         dependent expressions of a conditional expression.
2336         * sem_ch6.adb (Analyze_Function_Return): Deal with the rewriting of
2337         a simple return statement during the resolution of its expression.
2339 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2341         * sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases.
2343 2023-05-29  Marc Poulhiès  <poulhies@adacore.com>
2345         * exp_aggr.adb (Convert_To_Assignments): Do not mark node for
2346         delayed expansion if parent type has the Aggregate aspect.
2347         * sem_util.adb (Is_Container_Aggregate): Move...
2348         * sem_util.ads (Is_Container_Aggregate): ... here and make it
2349         public.
2351 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2353         * sem_res.adb (Resolve_Entity_Name): Relax rules for Exceptional_Cases.
2355 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2357         * sem_ch4.ads (Unresolved_Operator): New procedure.
2358         * sem_ch4.adb (Has_Possible_Literal_Aspects): Rename into...
2359         (Has_Possible_User_Defined_Literal): ...this.  Tidy up.
2360         (Operator_Check): Accept again unresolved operators if they have a
2361         possible user-defined literal as operand.  Factor out the handling
2362         of the general error message into...
2363         (Unresolved_Operator): ...this new procedure.
2364         * sem_res.adb (Resolve): Be prepared for unresolved operators on
2365         entry in Ada 2022 or later.  If they are still unresolved on exit,
2366         call Unresolved_Operator to give the error message.
2367         (Try_User_Defined_Literal): Tidy up.
2369 2023-05-29  Steve Baird  <baird@adacore.com>
2371         * exp_ch3.adb
2372         (Expand_N_Object_Declaration.Default_Initialize_Object): Add test for
2373         specified Default_Component_Value aspect when deciding whether
2374         either Initialize_Scalars or Normalize_Scalars impacts default
2375         initialization of an array object.
2377 2023-05-29  Javier Miranda  <miranda@adacore.com>
2379         * sem_aggr.adb
2380         (Resolve_Record_Aggregate): For aggregates of derived tagged
2381         record types with discriminants, when collecting components
2382         from ancestors, pass to subprogram Gather_Components the
2383         parent type. Required to report errors on wrong aggregate
2384         components.
2386 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2388         * sem_util.adb (Check_Result_And_Post_State): Replace low-level
2389         navigation with a high-level Unique_Entity.
2391 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2393         * sem_util.adb (Check_Result_And_Post_State): Properly handle entry
2394         bodies.
2396 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2398         * contracts.adb (Fix_Parent): Fir part both for lists and nodes.
2400 2023-05-29  Arnaud Charlet  <charlet@adacore.com>
2402         * sem_ch7.adb: Refine handling of inlining for CCG
2404 2023-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2406         * sem_ch12.adb (Copy_Generic_Node): Test the original node kind
2407         for the sake of consistency.  For identifiers and other entity
2408         names and operators, accept an expanded name as associated node.
2409         Replace "or" with "or else" in condtion and fix its formatting.
2411 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2413         * sem_util.adb (Check_Result_And_Post_State): Tune message.
2415 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2417         * contracts.adb (Remove_Formals): Remove.
2418         (Preanalyze_Condition): Replace Pop_Scope with End_Scope.
2419         * sem_ch13.adb (Build_Discrete_Static_Predicate): Replace
2420         Pop_Scope with End_Scope; enclose Install_Formals within
2421         Push_Scope/End_Scope.
2423 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2425         * sem_prag.adb (Analyze_Pre_Post_Condition): Tune error message.
2427 2023-05-29  Javier Miranda  <miranda@adacore.com>
2429         * scans.ads (Inside_Interpolated_String_Expression): New variable.
2430         * par-ch2.adb (P_Interpolated_String_Literal): Set/clear new
2431         variable when parsing interpolated string expressions.
2432         * scng.adb (Set_String): Skip processing operator symbols when we
2433         arescanning an interpolated string literal.
2435 2023-05-29  Johannes Kliemann  <kliemann@adacore.com>
2437         * Makefile.rtl (QNX): Use s-parame__qnx.adb for s-parame.adb.
2438         * libgnat/s-parame__qnx.adb: Add QNX specific version of
2439         System.Parameters.
2441 2023-05-29  Yannick Moy  <moy@adacore.com>
2443         * libgnat/a-ngelfu.ads: Restore SPARK_Mode from context.
2445 2023-05-29  Marc Poulhiès  <poulhies@adacore.com>
2447         * contracts.adb (Restore_Original_Selected_Component): Adjust assertion.
2449 2023-05-29  Piotr Trojanek  <trojanek@adacore.com>
2451         * contracts.adb
2452         (Add_Pre_Post_Condition): Adapt to handle pre/post of an
2453         access-to-subprogram type.
2454         (Analyze_Type_Contract): Analyze pre/post of an
2455         access-to-subprogram.
2456         * contracts.ads
2457         (Analyze_Type_Contract): Adapt comment.
2458         * sem_ch3.adb
2459         (Build_Access_Subprogram_Wrapper): Copy pre/post aspects to
2460         wrapper spec and keep it on the type.
2461         * sem_prag.adb
2462         (Analyze_Pre_Post_Condition): Expect pre/post aspects on
2463         access-to-subprogram and complain if they appear without -gnat2022
2464         switch.
2465         (Analyze_Pre_Post_Condition_In_Decl_Part): Adapt to handle
2466         pre/post on an access-to-subprogram type entity.
2467         * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
2468         (Result): Likewise.
2470 2023-05-26  Bob Duff  <duff@adacore.com>
2472         * sem_ch3.adb
2473         (Build_Derived_Record_Type): Temporarily set the state of the
2474         Derived_Type to "self-hidden" while processing constraints
2475         and discriminants of a record extension.
2477 2023-05-26  Bob Duff  <duff@adacore.com>
2479         * einfo.ads: Add comma.
2480         * contracts.adb: Fix typos.
2481         * exp_attr.adb: Likewise.
2482         * exp_ch5.adb: Likewise.
2483         * exp_ch6.adb: Likewise.
2484         * lib-xref.adb: Likewise.
2486 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2488         * debug.adb (d.N): Document new usage.
2489         * exp_ch4.adb (Expand_N_Type_Conversion): Copy the Float_Truncate
2490         flag when rewriting a floating-point to fixed-point conversion as
2491         a floating-point to integer conversion.
2492         * exp_fixd.adb: Add with and use clauses for Debug.
2493         (Expand_Convert_Fixed_To_Fixed): Generate a truncation in all cases
2494         except if the result is explicitly rounded.
2495         (Expand_Convert_Integer_To_Fixed): Likewise.
2496         (Expand_Convert_Float_To_Fixed): Generate a truncation for all kind
2497         of fixed-point types, except if the result is explicitly rounded, or
2498         -gnatd.N is specified and the type is an ordinary fixed-point type.
2499         * sinfo.ads (Float_Truncate): Document usage for floating-point to
2500         fixed-point conversions.
2502 2023-05-26  Javier Miranda  <miranda@adacore.com>
2504         * exp_ch4.adb
2505         (Expand_N_Allocator): If an allocator with constraints is called
2506         in the return statement of a function returning a general access
2507         type, then propagate to the itype the master of the general
2508         access type (since it is the master associated with the
2509         returned object).
2511 2023-05-26  Yannick Moy  <moy@adacore.com>
2513         * sem_aggr.adb (Resolve_Record_Aggregate): Add dummy initialization and
2514         assertion that clarifies when we reassigned to a useful value.
2516 2023-05-26  Yannick Moy  <moy@adacore.com>
2518         * doc/gnat_rm/gnat_language_extensions.rst: Be more explicit on
2519         pattern matching limitation.
2520         * gnat_rm.texi: Regenerate.
2521         * gnat_ugn.texi: Regenerate.
2523 2023-05-26  Yannick Moy  <moy@adacore.com>
2525         * libgnat/a-calend.ads: Mark with SPARK_Mode=>Off the functions which may
2526         raise Time_Error.
2527         * libgnat/a-ngelfu.ads: Mark with SPARK_Mode=>Off the functions which may
2528         lead to an overflow (which is not the case of Tan with one parameter for
2529         example, or Arctanh or Arcoth, despite their mathematical range covering
2530         the reals).
2531         * libgnat/a-textio.ads: Remove Always_Return annotation from functions, as
2532         this is now compulsory for functions to always return in SPARK.
2533         * libgnat/i-cstrin.ads: Add Might_Not_Return annotation to Update procedure
2534         which may not return.
2536 2023-05-26  Bob Duff  <duff@adacore.com>
2538         * exp_put_image.adb (Build_Image_Call): Treat 'Img the same as
2539         'Image.
2540         * exp_imgv.adb (Expand_Image_Attribute): If Discard_Names, expand
2541         to 'Image instead of 'Img.
2542         * snames.ads-tmpl, par-ch4.adb, sem_attr.adb, sem_attr.ads:
2543         Cleanups: Rename Attribute_Class_Array to be Attribute_Set. Remove
2544         unnecessary qualifications. DRY: Don't repeat "True".
2546 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2548         * sem_prag.adb (Record_Possible_Body_Reference): Remove call to Present.
2549         * sem_util.adb (Find_Untagged_Type_Of): Likewise.
2551 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2553         * exp_aggr.adb (Initialize_Array_Component): Remove obsolete code.
2554         (Expand_Array_Aggregate): In the case where a temporary is created
2555         and the parent is an assignment statement with No_Ctrl_Actions set,
2556         set Is_Ignored_Transient on the temporary.
2558 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2560         * sem_ch12.adb (Instantiate_Package_Body): Set the ghost mode to
2561         that of the instance only after loading the generic's parent.
2562         (Instantiate_Subprogram_Body): Likewise.
2564 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2566         * exp_ch4.adb (Expand_Set_Membership): Simplify by using Evolve_Or_Else.
2568 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2570         * exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to
2571         Unqual_Conv; consequently, change object from variable to constant;
2572         replace an IF statement with an AND THEN expression.
2574 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2576         * exp_ch9.adb
2577         (Build_Entry_Count_Expression): Remove loop over component declaration;
2578         consequently remove a parameter that is no longer used; adapt callers.
2579         (Make_Task_Create_Call): Refine type of a local variable.
2581 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2583         * sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside
2584         loop, not in the loop condition itself.
2586 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2588         * libgnat/a-cbdlli.ads (List): Move Nodes component to the end.
2590 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2592         * libgnat/a-crdlli.ads (List): Move Nodes component to the end.
2594 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2596         * sem_attr.adb (Is_Thin_Pointer_To_Unc_Array): New predicate.
2597         (Resolve_Attribute): Apply the static matching legality rule to an
2598         Unrestricted_Access attribute applied to an aliased prefix if the
2599         type is a thin pointer.  Call Is_Thin_Pointer_To_Unc_Array for the
2600         aliasing legality rule as well.
2602 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2604         * sem_util.adb (Is_Null_Record_Definition): Use First_Non_Pragma and
2605         Next_Non_Pragma to ignore pragmas within component list.
2607 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2609         * sem_prag.adb (Get_Argument): Improve detection of generic units.
2611 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2613         * sem_ch4.adb (Check_Action_OK): Replace low-level test with a
2614         high-level routine.
2615         * sem_ch13.adb (Is_Predicate_Static): Likewise.
2617 2023-05-26  Javier Miranda  <miranda@adacore.com>
2619         * exp_ch9.adb
2620         (Expand_N_Conditional_Entry_Call): Factorize code to avoid
2621         duplicating subtrees; required to avoid problems when the copied
2622         code has implicit labels.
2623         * sem_util.ads (New_Copy_Separate_List): Removed.
2624         (New_Copy_Separate_Tree): Removed.
2625         * sem_util.adb (New_Copy_Separate_List): Removed.
2626         (New_Copy_Separate_Tree): Removed.
2628 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2630         * sem_ch13.adb (Check_Component_List): Local variable Compl is now
2631         a constant; a nested block is no longer needed.
2633 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2635         * sem_aggr.adb
2636         (Resolve_Record_Aggregate): Remove useless assignment.
2637         * sem_aux.adb
2638         (Has_Variant_Part): Remove useless guard; this routine is only called
2639         on type entities (and now will crash in other cases).
2640         * sem_ch3.adb
2641         (Create_Constrained_Components): Only assign Assoc_List when necessary;
2642         tune whitespace.
2643         (Is_Variant_Record): Refactor repeated calls to Parent.
2644         * sem_util.adb
2645         (Gather_Components): Assert that discriminant association has just one
2646         choice in component_association; refactor repeated calls to Next.
2647         * sem_util.ads
2648         (Gather_Components): Tune whitespace in comment.
2650 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2652         * sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with
2653         First_Non_Pragma and Next_Non_Pragma.
2654         * exp_dist.adb (Append_Record_Traversal): Likewise.
2656 2023-05-26  Javier Miranda  <miranda@adacore.com>
2658         * exp_ch9.adb (Build_Class_Wide_Master): Remember internal blocks
2659         that have a task master entity declaration.
2660         (Build_Master_Entity): Code cleanup.
2661         * sem_util.ads (Is_Internal_Block): New subprogram.
2662         * sem_util.adb (Is_Internal_Block): New subprogram.
2664 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2666         * sem_util.adb (Gather_Components): Remove guard for empty list of
2667         components.
2669 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2671         * back_end.adb (Call_Back_End): Add gigi_standard_address to the
2672         signature of the gigi procedure and alphabetize other parameters.
2673         Pass Standard_Address as actual parameter for it.
2674         * cstand.adb (Create_Standard): Do not set Is_Descendant_Of_Address
2675         on Standard_Address.
2676         * gcc-interface/gigi.h (gigi): Add a standard_address parameter and
2677         alphabetize others.
2678         * gcc-interface/trans.cc (gigi): Likewise.  Record a builtin address
2679         type and save it as the type for Standard.Address.
2681 2023-05-26  Ghjuvan Lacambre  <lacambre@adacore.com>
2683         * exp_disp.adb (Expand_Dispatching_Call): Handle new Controlling_Tag.
2684         * sem_scil.adb (Check_SCIL_Node): Treat N_Object_Renaming_Declaration as
2685         N_Object_Declaration.
2687 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2689         * exp_aggr.adb
2690         (Build_Constrained_Type): Remove local constants that were shadowing
2691         equivalent global constants; replace a wrapper that calls
2692         Make_Integer_Literal with a numeric literal; remove explicit
2693         Aliased_Present parameter which is equivalent to the default value.
2694         (Check_Bounds): Remove unused initial value.
2695         (Expand_Array_Aggregate): Use aggregate type from the context.
2697 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2699         * einfo.ads (Delay_Cleanups): Document new usage.
2700         * exp_ch7.ads (Build_Finalizer): New declaration.
2701         * exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not treat
2702         library-level package instantiations specially.
2703         (Build_Finalizer): Return early for package bodies and specs that
2704         are not compilation units instead of using a more convoluted test.
2705         (Expand_N_Package_Body): Do not build a finalizer if Delay_Cleanups
2706         is set on the defining entity.
2707         (Expand_N_Package_Declaration): Likewise.
2708         * inline.ads (Pending_Body_Info): Reorder and add Fin_Scop.
2709         (Add_Pending_Instantiation): Add Fin_Scop parameter.
2710         * inline.adb (Add_Pending_Instantiation): Likewise and copy it into
2711         the Pending_Body_Info appended to Pending_Instantiations.
2712         (Add_Scope_To_Clean): Change parameter name to Scop and remove now
2713         irrelevant processing.
2714         (Cleanup_Scopes): Deal with scopes that are package specs or bodies.
2715         (Instantiate_Body): For package instantiations, deal specially with
2716         scopes that are package bodies and with scopes that are dynamic.
2717         Pass the resulting scope to Add_Scope_To_Clean directly.
2718         * sem_ch12.adb (Analyze_Package_Instantiation): In the case where a
2719         body is needed, compute the enclosing finalization scope and pass it
2720         in the call to Add_Pending_Instantiation.
2721         (Inline_Instance_Body): Adjust aggregate passed in the calls to
2722         Instantiate_Package_Body.
2723         (Load_Parent_Of_Generic): Likewise.
2725 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2727         * sem_util.adb (Compile_Time_Constraint_Error): Test the Ekind.
2729 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2731         * exp_aggr.adb (Build_Constrained_Type): Use List_Length to count
2732         expressions in consecutive subaggregates.
2734 2023-05-26  Doug Rupp  <rupp@adacore.com>
2736         * libgnarl/s-osinte__qnx.ads (sigset_t): Modify
2737         declaration to use system.os_constants computed
2738         value. Align it.
2740 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2742         * exp_sel.adb: Add clauses for Sem_Util, remove them for Opt, Sinfo
2743         and Sinfo.Nodes.
2744         (Build_K): Always use 'Tag of the object.
2745         (Build_S_Assignment): Likewise.
2747 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2749         * accessibility.adb
2750         (Is_Formal_Of_Current_Function): This routine expects an entity
2751         reference and not the entity itself, so its parameter is a Node_Id
2752         and not an Entity_Id.
2754 2023-05-26  Piotr Trojanek  <trojanek@adacore.com>
2756         * exp_aggr.adb
2757         (Build_Array_Aggr_Code): Change variable to constant.
2758         (Check_Same_Aggr_Bounds): Fix style; remove unused initial value.
2760 2023-05-26  Ronan Desplanques  <desplanques@adacore.com>
2762         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create extra formals
2763         in more situations.
2765 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2767         * checks.adb (Selected_Range_Checks): Add guards to protect calls
2768         to Expr_Value on bounds.
2770 2023-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2772         * sem_eval.ads (Is_Null_Range): Remove requirements of compile-time
2773         known bounds and add WARNING line.
2774         (Not_Null_Range): Remove requirements of compile-time known bounds.
2775         * sem_eval.adb (Is_Null_Range): Fall back to Compile_Time_Compare.
2776         (Not_Null_Range): Likewise.
2777         * fe.h (Is_Null_Range): New predicate.
2779 2023-05-25  Javier Miranda  <miranda@adacore.com>
2781         * sem_aggr.adb
2782         (Warn_On_Null_Component_Association): New subprogram.
2783         (Empty_Range): Adding missing support for iterated component
2784         association node.
2785         (Resolve_Array_Aggregate): Report warning on iterated component
2786         association that may initialize some component of an array of
2787         null-excluding access type components with a null value.
2788         * exp_ch4.adb
2789         (Expand_N_Expression_With_Actions): Add missing type check since
2790         the subtype of the EWA node and the subtype of the expression
2791         may differ.
2793 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2795         * sem_util.adb (Determining_Expressions): Fix style; fix layout and
2796         ordering of pragma names; expect pragma Exceptional_Cases.
2798 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2800         * einfo-utils.adb (Write_Entity_Info): Use procedural Next_Index.
2801         * sem_aggr.adb (Collect_Aggr_Bounds): Reuse local constant.
2802         (Resolve_Null_Array_Aggregate): Use procedural Next_Index.
2804 2023-05-25  Javier Miranda  <miranda@adacore.com>
2806         * exp_aggr.adb (Build_Record_Aggr_Code): Protect access to
2807         aggregate components when the aggregate is empty.
2809 2023-05-25  Johannes Kliemann  <kliemann@adacore.com>
2811         * libgnat/system-vxworks7-ppc-kernel.ads: Enable
2812         Support_Atomic_Primitives.
2813         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
2815 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2817         * sem_ch3.adb (Find_Type_Of_Object): Copy the object definition when
2818         building the subtype declaration in the case of a spec expression.
2820 2023-05-25  Tom Tromey  <tromey@adacore.com>
2822         * Make-generated.in (ada/stamp-snames): Check result of
2823         gnatmake.
2825 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2827         * cstand.adb (Create_Standard): Set the Is_Descendant_Of_Address
2828         flag on Standard_Address.
2829         * freeze.adb (Freeze_Entity): Copy the modulus of System.Address
2830         onto Standard_Address.
2832 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2834         * libgnat/system-aix.ads (Address): Likewise.
2835         * libgnat/system-darwin-arm.ads (Address): Likewise.
2836         * libgnat/system-darwin-ppc.ads (Address): Likewise.
2837         * libgnat/system-darwin-x86.ads (Address): Likewise.
2838         * libgnat/system-djgpp.ads (Address): Likewise.
2839         * libgnat/system-dragonfly-x86_64.ads (Address): Likewise.
2840         * libgnat/system-freebsd.ads (Address): Likewise.
2841         * libgnat/system-hpux-ia64.ads (Address): Likewise.
2842         * libgnat/system-hpux.ads (Address): Likewise.
2843         * libgnat/system-linux-alpha.ads (Address): Likewise.
2844         * libgnat/system-linux-arm.ads (Address): Likewise.
2845         * libgnat/system-linux-hppa.ads (Address): Likewise.
2846         * libgnat/system-linux-ia64.ads (Address): Likewise.
2847         * libgnat/system-linux-m68k.ads (Address): Likewise.
2848         * libgnat/system-linux-mips.ads (Address): Likewise.
2849         * libgnat/system-linux-ppc.ads (Address): Likewise.
2850         * libgnat/system-linux-riscv.ads (Address): Likewise.
2851         * libgnat/system-linux-s390.ads (Address): Likewise.
2852         * libgnat/system-linux-sh4.ads (Address): Likewise.
2853         * libgnat/system-linux-sparc.ads (Address): Likewise.
2854         * libgnat/system-linux-x86.ads (Address): Likewise.
2855         * libgnat/system-lynxos178-ppc.ads (Address): Likewise.
2856         * libgnat/system-lynxos178-x86.ads (Address): Likewise.
2857         * libgnat/system-mingw.ads (Address): Likewise.
2858         * libgnat/system-qnx-arm.ads (Address): Likewise.
2859         * libgnat/system-rtems.ads (Address): Likewise.
2860         * libgnat/system-solaris-sparc.ads (Address): Likewise.
2861         * libgnat/system-solaris-x86.ads (Address): Likewise.
2862         * libgnat/system-vxworks-ppc-kernel.ads (Address): Likewise.
2863         * libgnat/system-vxworks-ppc-rtp-smp.ads (Address): Likewise.
2864         * libgnat/system-vxworks-ppc-rtp.ads (Address): Likewise.
2865         * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Address): Likewise.
2866         * libgnat/system-vxworks7-aarch64.ads (Address): Likewise.
2867         * libgnat/system-vxworks7-arm-rtp-smp.ads (Address): Likewise.
2868         * libgnat/system-vxworks7-arm.ads (Address): Likewise.
2869         * libgnat/system-vxworks7-ppc-kernel.ads (Address): Likewise.
2870         * libgnat/system-vxworks7-ppc-rtp-smp.ads (Address): Likewise.
2871         * libgnat/system-vxworks7-ppc64-kernel.ads (Address): Likewise.
2872         * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Address): Likewise.
2873         * libgnat/system-vxworks7-x86-kernel.ads (Address): Likewise.
2874         * libgnat/system-vxworks7-x86-rtp-smp.ads (Address): Likewise.
2875         * libgnat/system-vxworks7-x86_64-kernel.ads (Address): Likewise.
2876         * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Address): Likewise.
2878 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
2880         * sem_ch13.adb (Check_Aspect_At_Freeze_Point): fix format string,
2881         use existing local Ident.
2883 2023-05-25  Bob Duff  <duff@adacore.com>
2885         * atree.adb (Check_Vanishing_Fields): Fix bug in the "blah type
2886         only" cases. Remove the special cases for E_Void. Misc cleanup.
2887         (Mutate_Nkind): Disallow mutating to the same kind.
2888         (Mutate_Ekind): Disallow mutating to E_Void.
2889         (From E_Void is still OK -- entities start out as E_Void by
2890         default.) Fix bug in statistics gathering -- was setting the wrong
2891         count. Enable Check_Vanishing_Fields for entities.
2892         * sem_ch8.adb (Is_Self_Hidden): New function.
2893         (Find_Direct_Name): Call Is_Self_Hidden to use the new
2894         Is_Not_Self_Hidden flag to determine whether a declaration is
2895         hidden from all visibility by itself. This replaces the old method
2896         of checking E_Void.
2897         (Find_Expanded_Name): Likewise.
2898         (Find_Selected_Component): Likewise.
2899         * sem_util.adb (Enter_Name): Remove setting of Ekind to E_Void.
2900         * sem_ch3.adb: Set the Is_Not_Self_Hidden flag in appropriate
2901         places. Comment fixes.
2902         (Inherit_Component): Remove setting of Ekind to E_Void.
2903         * sem_ch9.adb
2904         (Analyze_Protected_Type_Declaration): Update comment. Skip Itypes,
2905         which should not be turned into components.
2906         * atree.ads (Mutate_Nkind): Document error case.
2907         (Mutate_Ekind): Remove comments apologizing for E_Void mutations.
2908         Document error cases.
2910 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2912         * libgnat/a-ststio.adb (Set_Mode): Test System.Memory_Size.
2913         * libgnat/g-debuti.ads (Address_64): Likewise.
2914         * libgnat/i-c.ads: Add with clause for System.
2915         (ptrdiff_t): Define based on the size of memory space.
2916         (size_t): Likewise.
2917         * libgnat/s-crtl.ads (size_t): Likewise.
2918         (ssize_t): Likewise.
2919         * libgnat/s-memory.ads (size_t): Likewise.
2920         * libgnat/s-parame.ads (Size_Type): Likewise.
2921         * libgnat/s-parame__hpux.ads (Size_Type): Likewise.
2922         * libgnat/s-parame__posix2008.ads (Size_Type): Likewise.
2923         * libgnat/s-parame__vxworks.ads (Size_Type): Likewise.
2924         * libgnat/s-putima.adb (Signed_Address): Likewise.
2925         (Unsigned_Address): Likewise.
2926         * libgnat/s-stoele.ads (Storage_Offset): Likewise.
2928 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2930         * sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition
2931         as when it was incremented.
2933 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2935         * sem_util.ads (New_Copy_Tree): Remove Scopes_In_EWA_OK from spec;
2936         adapt comment.
2937         * sem_util.adb (New_Copy_Tree): Remove Scopes_In_EWA_OK from body;
2938         adapt code.
2940 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2942         * sem_util.adb (Update_New_Entities): Remove redundant check for entity
2943         map being present.
2945 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2947         * atree.adb (Copy_List): Call Copy_Separate_Tree for both entities and
2948         other nodes.
2950 2023-05-25  Steve Baird  <baird@adacore.com>
2952         * exp_attr.adb
2953         (Cached_Streaming_Ops): A new package, providing maps to save
2954         previously-generated Read/Write/Input/Output procedures.
2955         (Expand_N_Attribute_Reference): When a new subprogram is generated
2956         for a Read/Write/Input/Output attribute reference, record that
2957         type/subp pair in the appropriate Cached_Streaming_Ops map.
2958         (Find_Stream_Subprogram): Check the appropriate
2959         Cached_Streaming_Ops map to see if an appropriate subprogram has
2960         already been generated. If so, then return it. The appropriateness
2961         test includes a call to a new nested subprogram,
2962         In_Available_Context.
2963         * exp_strm.ads, exp_strm.adb: Do not pass in a Loc parameter (or a
2964         source-location-bearing Nod parameter) to the 16 procedures
2965         provided for building streaming-related subprograms. Use the
2966         source location of the type instead.
2967         * exp_dist.adb, exp_ch3.adb: Adapt to Exp_Strm spec changes. For
2968         these calls the source location of the type was already being
2969         used.
2971 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
2973         * sem_ch6.adb (Analyze_Function_Return): Add missing
2974         Is_Access_Type check before accessing the Designated_Type field.
2976 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2978         * sem_ch6.adb (Analyze_Return_Type): Remove unused initial value.
2980 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
2982         * sem_ch13.adb (Analyze_One_Aspect): Call Record_Rep_Item.
2983         (Check_Aspect_At_Freeze_Point): Check the aspect is specified on
2984         non-array type only...
2985         (Analyze_One_Aspect): ... instead of doing it too early here.
2986         * sem_aggr.adb (Resolve_Container_Aggregate): Do nothing in case
2987         the parameters failed to resolve.
2989 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2991         * sem_util.adb (Check_Internal_Protected_Use): Add standard protection
2992         against search going too far.
2994 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
2996         * contracts.adb
2997         (Add_Pre_Post_Condition): Mention new aspects in the comment.
2998         * contracts.ads
2999         (Add_Contract_Item): Likewise.
3000         (Analyze_Subprogram_Body_Stub_Contract): Likewise.
3001         * sem_prag.adb
3002         (Contract_Freeze_Error): Likewise.
3003         (Ensure_Aggregate_Form): Likewise.
3004         * sem_prag.ads
3005         (Find_Related_Declaration_Or_Body): Likewise.
3006         * sinfo.ads
3007         (Is_Generic_Contract_Pragma): Likewise.
3009 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
3011         * aspects.ads
3012         (Implementation_Defined_Aspect): Recently added aspects are
3013         implementation-defined, just like Contract_Cases.
3014         * sem_prag.ads
3015         (Aspect_Specifying_Pragma): Recently added aspects have corresponding
3016         pragmas, just like Contract_Cases.
3017         (Pragma_Significant_To_Subprograms): Recently added aspects are
3018         significant to subprograms, just like Contract_Cases.
3020 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
3022         * sem_res.adb (Resolve_Entity_Name): Tune handling of formal parameters
3023         in contract Exceptional_Cases.
3025 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
3027         * par-ch7.adb (P_Package): Remove redundant guard from call to
3028         Move_Aspects.
3029         * par-ch9.adb (P_Task): Likewise.
3030         * sem_ch6.adb (Analyze_Expression_Function, Is_Inline_Pragma): Likewise.
3032 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3034         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Use Get_Actual_Subtype
3035         to retrieve the actual subtype for all actuals and do it in only one
3036         place for all unconstrained composite formal types.
3038 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
3040         * sem_prag.adb (Analyze_Pragma): Fix references to Exceptional_Cases in
3041         code copied from handling of Subprogram_Variant.
3043 2023-05-25  Ronan Desplanques  <desplanques@adacore.com>
3045         * sem_ch3.adb (Replace_Type): Add more documentation.
3047 2023-05-25  Ronan Desplanques  <desplanques@adacore.com>
3049         * sem_ch3.adb (Replace_Type): Use existing constant wherever
3050         possible.
3052 2023-05-25  Ronan Desplanques  <desplanques@adacore.com>
3054         * sem_ch3.adb (Replace_Type): Reduce span of variable.
3056 2023-05-25  Bob Duff  <duff@adacore.com>
3058         * sem_ch9.adb (Analyze_Protected_Type_Declaration): Set the flag
3059         for protected types.
3060         (Analyze_Single_Protected_Declaration): Likewise, for singleton
3061         protected objects.
3062         (Analyze_Task_Type_Declaration): Set the flag for task types.
3063         (Analyze_Single_Task_Declaration): Likewise, for singleton task
3064         objects.
3065         * sem_ch10.adb (Decorate_Type): Set the flag for types treated as
3066         incomplete.
3067         (Build_Shadow_Entity): Set the flag for shadow entities.
3068         (Decorate_State): Set the flag for an abstract state.
3069         (Build_Limited_Views): Set the flag for limited view of package.
3070         * sem_attr.adb (Check_Not_Incomplete_Type): Disable the check when
3071         this is a current instance.
3073 2023-05-25  Ronan Desplanques  <desplanques@adacore.com>
3075         * freeze.adb (Build_DTW_Body): Add appropriate type conversions for
3076         controlling access parameters.
3077         * sem_util.adb (Build_Overriding_Spec): Fix designated types in
3078         controlling access parameters.
3080 2023-05-25  Bob Duff  <duff@adacore.com>
3082         * gen_il-gen-gen_entities.adb (E_Label): Add
3083         Entry_Cancel_Parameter. This is necessary because
3084         Analyze_Implicit_Label_Declaration set the Ekind to E_Label.
3085         Without this change, this field would fail the vanishing-fields
3086         check in Atree (which is currently commented out).
3087         * einfo.ads (Entry_Cancel_Parameter): Document for E_Label.
3088         * sem_eval.adb (Why_Not_Static): Protect against previous errors
3089         (no need to explain why something is not static if it's already
3090         illegal for other reasons).
3091         * sem_util.ads (Enter_Name): Fix misleading comment.
3093 2023-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3095         * einfo.ads (Scope_Depth): Fix circular definition.
3096         (Scope_Depth_Value): Fix value for library units.
3098 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
3100         * sem_ch11.adb (Analyze_Raise_Expression): Tune warning condition.
3101         * libgnat/g-dirope.ads (Open): Remove a potentially inaccurate comment.
3102         * libgnat/g-dirope.adb (Open): Remove a potentially useless assignment;
3103         the Dir output parameter should be assigned a null value anyway by the
3104         preceding call to Free.
3106 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
3108         * sem_res.adb (Resolve_Entity_Name): Allow aliased parameters; tune
3109         error message.
3111 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
3113         * sem_ch13.adb (Analyze_One_Aspect): Mark Aggregate aspect as
3114         needing delayed resolution and reject the aspect on non-array
3115         type.
3117 2023-05-25  Bob Duff  <duff@adacore.com>
3119         * sinfo-utils.adb: Update comment to refer to
3120         New_Node_Debugging_Output.
3122 2023-05-25  Marc Poulhiès  <poulhies@adacore.com>
3124         * rtsfind.adb (Load_RTU.Restore_SPARK_Context): New.
3125         (Load_RTU): Use Restore_SPARK_Context on all exit paths.
3126         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Initialize local
3127         variable to Empty.
3129 2023-05-25  Piotr Trojanek  <trojanek@adacore.com>
3131         * sem_attr.adb
3132         (Analyze_Attribute_Old_Result): Allow uses of 'Old and 'Result within
3133         the new aspect.
3134         * sem_res.adb
3135         (Within_Exceptional_Cases_Consequence): New utility routine.
3136         (Resolve_Entity_Name): Restrict use of formal parameters within the
3137         new aspect.
3139 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3141         * aspects.ads
3142         (Aspect_Id): Add aspect identifier.
3143         (Aspect_Argument): New aspect accepts an expression.
3144         (Is_Representation_Aspect): New aspect is not a representation
3145         aspect.
3146         (Aspect_Names): Associate name with the new aspect identifier.
3147         (Aspect_Delay): New aspect is never delayed.
3148         * contracts.adb
3149         (Add_Contract_Item): Store new aspect among contract items.
3150         (Analyze_Entry_Or_Subprogram_Contract): Likewise.
3151         (Analyze_Subprogram_Body_Stub_Contract): Likewise.
3152         (Process_Contract_Cases): Expand new aspect, if present.
3153         * contracts.ads
3154         (Analyze_Entry_Or_Subprogram_Body_Contract): Mention new aspect in
3155         spec.
3156         (Analyze_Entry_Or_Subprogram_Contract): Likewise.
3157         * einfo-utils.adb
3158         (Get_Pragma): Allow new aspect to be picked by the backend.
3159         * einfo-utils.ads
3160         (Get_Pragma): Mention new aspect in spec.
3161         * exp_prag.adb
3162         (Expand_Pragma_Exceptional_Cases): Dummy expansion routine.
3163         * exp_prag.ads
3164         (Expand_Pragma_Exceptional_Cases): Add spec for expansion routine.
3165         * inline.adb
3166         (Remove_Aspects_And_Pragmas): Remove aspect from bodies to inline.
3167         * par-prag.adb
3168         (Par.Prag): Accept pragma in the parser, so it will be checked
3169         later.
3170         * sem_ch12.adb
3171         (Implementation of Generic Contracts): Mention new aspect in
3172         comment.
3173         * sem_ch13.adb
3174         (Analyze_Aspect_Specifications): Transform new aspect info a
3175         corresponding pragma.
3176         * sem_prag.adb
3177         (Analyze_Exceptional_Cases_In_Decl_Part): Analyze aspect
3178         expression; heavily inspired by the existing code for analysis of
3179         Subprogram_Variant and exception handlers.
3180         (Analyze_Pragma): Analyze pragma corresponding to the new aspect.
3181         (Is_Non_Significant_Pragma_Reference): Add new pragma to the
3182         table.
3183         * sem_prag.ads
3184         (Assertion_Expression_Pragma): New pragma acts as an assertion
3185         expression, even though it is not currently expanded.
3186         (Analyze_Exceptional_Cases_In_Decl_Part): Add spec.
3187         * sem_util.adb
3188         (Is_Subprogram_Contract_Annotation): Mark new annotation is a
3189         subprogram contract, so the subprogram with it won't be inlined.
3190         * sem_util.ads
3191         (Is_Subprogram_Contract_Annotation): Mention new aspect in
3192         comment.
3193         * sinfo.ads
3194         (Contract_Test_Cases): Mention new aspect in comment.
3195         * snames.ads-tmpl: Add entries for the new name and pragma.
3197 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3199         * sem_ch13.adb (Build_Predicate_Functions): If the current scope
3200         is not that of the type, push this scope and pop it at the end.
3201         * sem_util.ads (Current_Scope_No_Loops_No_Blocks): Delete.
3202         * sem_util.adb (Current_Scope_No_Loops_No_Blocks): Likewise.
3203         (Set_Public_Status): Call again Current_Scope.
3205 2023-05-23  Gary Dismukes  <dismukes@adacore.com>
3207         * exp_ch6.adb (Might_Have_Tasks): Remove unneeded Etype call from
3208         call to Is_Limited_Record, since that flag is now properly
3209         inherited by class-wide types.
3210         * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remove call
3211         to Make_Class_Wide_Type, which is done too early, and will later
3212         be done in Build_Derived_Record_Type after flags such as
3213         Is_Limited_Record and Is_Controlled_Active have been set on the
3214         derived type.
3216 2023-05-23  Patrick Bernardi  <bernardi@adacore.com>
3218         * libgnat/s-stchop.adb (Stack_Check): Remove redundant parentheses.
3220 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3222         * freeze.adb (Freeze_Record_Type): Add tag for redundant pragma Pack.
3223         * sem_aggr.adb (Resolve_Record_Aggregate): Add tag for redundant OTHERS
3224         choice.
3225         * sem_ch8.adb (Use_One_Type): Add tag for redundant USE clauses.
3227 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3229         * sem_ch11.adb
3230         (Check_Duplication): Fix inconsistent iteration.
3231         (Others_Present): Iterate over handlers using First_Non_Pragma and
3232         Next_Non_Pragma just like in Check_Duplication.
3234 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3236         * einfo.ads (Delay_Subprogram_Descriptors): Delete.
3237         * gen_il-fields.ads (Opt_Field_Enum): Remove
3238         Delay_Subprogram_Descriptors.
3239         * gen_il-gen-gen_entities.adb (Gen_Entities): Likewise.
3240         * gen_il-gen-gen_nodes.adb (N_Entry_Body): Add Corresponding_Spec.
3241         * sinfo.ads (Corresponding_Spec): Document new use.
3242         (N_Entry_Body): Likewise.
3243         * exp_ch6.adb (Expand_Protected_Object_Reference): Be prepared for
3244         protected subprograms that have been expanded.
3245         * exp_ch7.adb (Expand_Cleanup_Actions): Remove unreachable code.
3246         * exp_ch9.adb (Build_Protected_Entry): Add a local variable for the
3247         new block and propagate Uses_Sec_Stack from the corresponding spec.
3248         (Expand_N_Protected_Body) <N_Subprogram_Body>: Unconditionally reset
3249         the scopes of top-level entities in the new body.
3250         * inline.adb (Cleanup_Scopes): Do not adjust the scope on the fly.
3251         * sem_ch9.adb (Analyze_Entry_Body): Set Corresponding_Spec.
3252         * sem_ch12.adb (Analyze_Package_Instantiation): Remove obsolete code
3253         setting Delay_Subprogram_Descriptors and tidy up.
3254         * sem_util.adb (Scope_Within): Deal with protected subprograms that
3255         have been expanded.
3256         (Scope_Within_Or_Same): Likewise.
3258 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3260         * libgnarl/s-taskin.ads (Atomic_Address): Delete.
3261         (Attribute_Array): Add pragma Atomic_Components.
3262         (Ada_Task_Control_Block): Adjust default value of Attributes.
3263         * libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local
3264         variable.
3265         * libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter.
3266         (To_Attribute): Adjust source type.
3267         * libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements.
3268         (New_Attribute): Adjust return type.
3269         (Deallocate): Adjust type of parameter.
3270         (To_Real_Attribute): Adjust source type.
3271         (To_Address): Add target type.
3272         (To_Attribute): Adjust source type.
3273         (Fast_Path): Adjust tested type.
3274         (Finalize): Compare with Null_Address.
3275         (Reference): Likewise.
3276         (Reinitialize): Likewise.
3277         (Set_Value): Likewise.  Add conversion to Integer_Address.
3278         (Value): Likewise.
3280 2023-05-23  Raphael Amiard  <amiard@adacore.com>
3282         * scng.adb (Scan): Replace occurrences of All_Extensions_Allowed
3283         by Core_Extensions_Allowed.
3285 2023-05-23  Claire Dross  <dross@adacore.com>
3287         * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Use new helpers.
3288         * libgnat/s-vauspe.ads (Raw_Unsigned_Starts_As_Based_Ghost,
3289         Raw_Unsigned_Is_Based_Ghost): New ghost helper functions.
3290         (Is_Raw_Unsigned_Format_Ghost, Scan_Split_No_Overflow_Ghost,
3291         Scan_Split_Value_Ghost, Raw_Unsigned_Last_Ghost): Use new
3292         helpers.
3294 2023-05-23  Arnaud Charlet  <charlet@adacore.com>
3296         * par-ch5.adb, style.ads, styleg.adb, styleg.ads
3297         (Check_Xtra_Parens): Remove extra parameter Enable.
3298         (Check_Xtra_Parens_Precedence): New.
3299         (P_Case_Statement): Add -gnatyx style check.
3300         * sem_ch4.adb: Replace calls to Check_Xtra_Parens by
3301         Check_Xtra_Parens_Precedence.
3302         * stylesw.ads, stylesw.adb, usage.adb: Add support for
3303         -gnatyz.
3304         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
3305         Update -gnatyxzg doc.
3306         * sem_prag.adb, libgnat/s-regpat.adb,
3307         libgnarl/s-interr__hwint.adb, libgnarl/s-interr__vxworks.adb:
3308         Remove extra parens.
3309         * par-ch3.adb (P_Discrete_Range): Do not emit a style check if
3310         the expression is not a simple expression.
3311         * gnat_ugn.texi: Regenerate.
3313 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3315         * libgnat/s-dwalin.adb (Enable_Cache): Use the subtract operator of
3316         System.Storage_Elements to compute the offset.
3317         (Symbolic_Address): Likewise.
3319 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3321         * sem_res.adb (Resolve_Intrinsic_Operator): Always perform the same
3322         resolution for the special mod operator of System.Storage_Elements.
3324 2023-05-23  Raphael Amiard  <amiard@adacore.com>
3326         * doc/gnat_rm.rst, doc/gnat_rm/gnat_language_extensions.rst,
3327         doc/gnat_rm/implementation_defined_pragmas.rst:
3328         * gnat_rm.texi: Regenerate.
3330 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3332         * exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special
3333         operator of System.Storage_Elements.  Do not rewrite it into a rem.
3334         * sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the
3335         left operand for the special mod operator of System.Storage_Elements
3337 2023-05-23  Vadim Godunko  <godunko@adacore.com>
3339         * libgnat/a-coinho__shared.adb (Constant_Reference): Remove call
3340         of Detach
3341         (Query_Element): Likewise.
3343 2023-05-23  Ronan Desplanques  <desplanques@adacore.com>
3345         * sem_disp.adb: Fix reference to Ada issue in comment.
3347 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3349         * exp_disp.adb (Expand_Dispatching_Call): In the abstract interface
3350         class-wide case, use 'Tag of the object as the controlling tag.
3351         (Expand_Interface_Thunk): Perform address arithmetic using operators
3352         of System.Storage_Elements.
3354 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3356         * libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements.
3357         (Addr): Delete.
3358         (Offset): New subtype of Storage_Offset.
3359         (To_Offset): New instance of Unchecked_Conversion.
3360         (To_Pointer): Adjust.
3361         (To_Addr): Likewise.
3362         (To_Ptrdiff): Likewise.
3363         ("+"): Call To_Offset on the offset.
3364         ("-"): Likewise.
3365         * libgnat/s-bituti.adb: Add clauses for System.Storage_Elements.
3366         (Val_Bytes): Change type to Storage_Count.
3367         (Get_Val_2): Add qualification to second operand of mod operator.
3368         (Set_Val_2): Likewise.
3369         (Copy_Bitfield): Likewise.  Change type of Src_Adjust & Dest_Adjust.
3370         * libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address.
3371         * libgnat/s-statxd.adb (I_AD): Adjust.
3372         (I_AS): Likewise.
3373         (W_AS): Likewise.
3375 2023-05-23  Steve Baird  <baird@adacore.com>
3377         * sem_util.adb
3378         (Is_Variable): Correctly return False for a selected component
3379         name of the form Some_Object.Some_Discriminant, even if
3380         Some_Object is a variable. We don't want to allow such a name as
3381         an actual parameter in a call if the corresponding formal
3382         parameter's mode is not "in".
3384 2023-05-23  Yannick Moy  <moy@adacore.com>
3386         * sem_util.adb (Check_Node): Add default init on local Id.
3388 2023-05-23  Yannick Moy  <moy@adacore.com>
3390         * libgnat/i-c.adb (To_Ada): Add loop invariant.
3392 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3394         * exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod
3395         operator of System.Storage_Elements.
3396         * exp_intr.adb (Expand_To_Integer): New procedure.
3397         (Expand_Intrinsic_Call): Call Expand_To_Integer appropriately.
3398         (Expand_To_Address): Deal with an argument with modular type.
3399         * sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic
3400         on a derived intrinsic subprogram.
3401         * sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic
3402         operators not coming from source exactly as those coming from
3403         source and also generate a reference in both cases.
3404         (Resolve_Op_Expon): Likewise.
3405         (Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get
3406         a nonprivate base type.
3407         * snames.ads-tmpl (Name_To_Integer): New intrinsic name.
3408         * libgnat/s-stoele.ads: Replace pragma Convention with pragma
3409         Import throughout and remove pragma Inline_Always and
3410         Pure_Function.
3411         * libgnat/s-stoele.adb: Replace entire contents with pragma
3412         No_Body.
3413         * libgnat/s-atacco.adb: Adjust comment about pragma No_Body.
3415 2023-05-23  Javier Miranda  <miranda@adacore.com>
3417         * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
3418         call to preanalyze class-wide conditions since here it is too
3419         early; they must be preanalyzed when full views of private types
3420         have been analyzed.
3421         * sem_ch7.adb (Analyze_Package_Specification): Preanalyze
3422         class-wide conditions of dispatching primitives defined in nested
3423         packages.
3425 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3427         * errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1"
3428         statement into a subprogram; replace assertions with defensive code;
3429         fix few more off-by-one errors.
3431 2023-05-23  Ronan Desplanques  <desplanques@adacore.com>
3433         * einfo.ads: Mention full name of LSP.
3435 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3437         * errout.adb (Last_Sloc): Rewrite skipping past numeric literals.
3439 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3441         * sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the
3442         commentary to the current implementation.
3443         * sem_util.ads (Current_Scope_No_Loops): Move around.
3444         (Current_Scope_No_Loops_No_Blocks): New declaration.
3445         (Add_Block_Identifier): Fix formatting.
3446         * sem_util.adb (Add_Block_Identifier): Likewise.
3447         (Current_Scope_No_Loops_No_Blocks): New function.
3448         (Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead
3449         of Current_Scope to get the current scope.
3451 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3453         * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not
3454         manually generate a predicate check.  Call Unqualify before doing
3455         pattern matching on the expression.
3456         * sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual
3457         subtype when it is built in the definite case.
3459 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3461         * libgnarl/s-interr.adb
3462         (Registered_Handler): Remove default expression.
3463         (Registered_Handlers): Switch to singly-linked list.
3464         (Bind_Interrupt_To_Entry): Sync whitespace with other unit variants.
3465         (Is_Registered): Use singly-linked list.
3466         (Register_Interrupt_Handler): Use singly-linked list and initialized
3467         allocator; sync assertion with other unit variants.
3468         * libgnarl/s-interr__sigaction.adb: Likewise.
3469         * libgnarl/s-interr__vxworks.adb: Likewise.
3470         * libgnarl/s-interr__hwint.adb: Likewise.
3471         (Is_Registered): Remove repeated declaration.
3473 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3475         * pprint.adb (Expression_Image): Restore some of the old pretty-printing
3476         for CodePeer.
3478 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3480         * errout.adb (First_And_Last_Nodes): Ignore accessibility parameters.
3482 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3484         * exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens.
3486 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3488         * pprint.adb (Expression_Image): Move Count_Parentheses and
3489         Fix_Parentheses routines from GNATprove and apply them before
3490         returning the slice of a source code buffer.
3492 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3494         * errout.adb
3495         (Paren_Required): New subsidiary routine for better handling of
3496         parentheses in First_Node/Last_Node.
3497         (First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly
3498         handle generic instances and inlined subprograms; tune handling of
3499         parentheses; improve handling of literals.
3500         * pprint.adb (Expression_Image): Simplify using
3501         First_Sloc/Last_Sloc.
3502         * sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis
3503         when relocating expression from expression function to simple
3504         return statement.
3506 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3508         * exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of
3509         subprogram variants.
3511 2023-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3513         * frontend.adb (Frontend): Merge two conditional blocks and adjust.
3515 2023-05-23  Piotr Trojanek  <trojanek@adacore.com>
3517         * libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment.
3519 2023-05-23  Ronan Desplanques  <desplanques@adacore.com>
3521         * sem_ch7.adb: Remove duplicate comment.
3523 2023-05-23  Javier Miranda  <miranda@adacore.com>
3525         * sem_ch10.adb
3526         (Analyze_Required_Limited_With_Units): New subprogram.
3527         (Depends_On_Limited_Views): New subprogram.
3528         (Has_Limited_With_Clauses): New subprogram.
3529         (Analyze_Compilation_Unit): Call the new subprogram that performs
3530         the full analysis of required limited-with units.
3532 2023-05-22  Ronan Desplanques  <desplanques@adacore.com>
3534         * cstand.adb: Use more idiomatic procedure.
3536 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3538         * errout.adb (First_Loc): Avoid repeated calls.
3539         (Last_Loc): Likewise.
3541 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3543         * inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack
3544         flag from original to rewritten protected subprograms here...
3545         * exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>:
3546         ...but here instead. Add local variables and remove a useless
3547         test.
3549 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3551         * exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get
3552         the entity of the body.
3554 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3556         * exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the
3557         attribute reference, not of the loop statement.
3559 2023-05-22  Ronan Desplanques  <desplanques@adacore.com>
3561         * par-ch3.adb: Add missing word in comment.
3563 2023-05-22  Justin Squirek  <squirek@adacore.com>
3565         * checks.adb (Install_Null_Excluding_Check): Avoid non-null
3566         optimizations when assertions are enabled.
3568 2023-05-22  Marc Poulhiès  <poulhies@adacore.com>
3570         * exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag
3571         for the copy of the initialization expression.
3572         * sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip
3573         error emission during Pre_Analyze.
3575 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3577         * exp_ch7.adb (Process_Package_Body): New procedure taken from...
3578         (Build_Finalizer.Process_Declarations): ...here.  Call the above
3579         procedure to deal with both package bodies and package body stubs.
3581 2023-05-22  Ronan Desplanques  <desplanques@adacore.com>
3583         * atree.ads: Remove outdated part of comment.
3585 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3587         * exp_ch7.adb (Build_Finalizer): Reverse the test comparing the
3588         instantiation and declaration nodes of a package instance, and
3589         therefore bail out only when they are equal.  Adjust comments.
3590         (Expand_N_Package_Declaration): Do not clear the Finalizer field.
3591         * lib-writ.adb: Add with and use clauses for Sem_Util.
3592         (Write_Unit_Information): Look at unit nodes to find finalizers.
3593         * sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment
3594         about the rewriting of the instantiation node into a declaration.
3596 2023-05-22  Bob Duff  <duff@adacore.com>
3598         * cstand.adb (Is_Past_Self_Hiding_Point): Rename to be
3599         Is_Not_Self_Hidden.
3600         * einfo.ads: Likewise.
3601         * exp_aggr.adb: Likewise.
3602         * gen_il-fields.ads: Likewise.
3603         * gen_il-gen-gen_entities.adb: Likewise.
3604         * sem.adb: Likewise.
3605         * sem_aggr.adb: Likewise.
3606         * sem_ch11.adb: Likewise.
3607         * sem_ch12.adb: Likewise.
3608         * sem_ch5.adb: Likewise.
3609         * sem_ch6.adb: Likewise.
3610         * sem_ch7.adb: Likewise.
3611         * sem_prag.adb: Likewise.
3613 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3615         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body
3616         as the expanded body of an expression function.
3618 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3620         * pprint.adb (Expression_Image): Handle several previously unsupported
3621         constructs.
3623 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3625         * sem_res.adb (Resolve_Entity_Name): Combine two IF statements that
3626         execute code only for references that come from source.
3628 2023-05-22  Bob Duff  <duff@adacore.com>
3630         * einfo.ads (Is_Past_Self_Hiding_Point): Document.
3631         * gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of
3632         fields.
3633         * gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare
3634         in all entities.
3635         * exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate.
3636         * sem.adb: Likewise.
3637         * sem_aggr.adb: Likewise.
3638         * sem_ch11.adb: Likewise.
3639         * sem_ch12.adb: Likewise.
3640         * sem_ch5.adb: Likewise.
3641         * sem_ch7.adb: Likewise.
3642         * sem_prag.adb: Likewise.
3643         * sem_ch6.adb: Likewise.
3644         (Set_Formal_Mode): Minor cleanup: Move from spec.
3645         * sem_ch6.ads:
3646         (Set_Formal_Mode): Minor cleanup: Move to body.
3647         * cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities
3648         as soon as they are created.
3649         * comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead
3650         of 'or else'.
3651         * debug.adb: Minor comment cleanups.
3653 2023-05-22  Steve Baird  <baird@adacore.com>
3655         * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
3656         Accept an executable pragma occuring in a declare expression as
3657         per AI22-0045. This means Assert and Inspection_Point pragmas as
3658         well as any implementation-defined pragmas that the implementation
3659         chooses to categorize as executable. Currently Assume and Debug
3660         are the only such pragmas.
3662 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3664         * sem_prag.adb
3665         (Check_Postcondition_Use_In_Inlined_Subprogram): Mention
3666         Subprogram_Variant in the comment.
3667         (Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is
3668         ignored because of pragma Inline_Always and frontend inlining.
3670 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3672         * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only
3673         emit warning when frontend inlining is enabled.
3675 2023-05-22  Arnaud Charlet  <charlet@adacore.com>
3677         * par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op,
3678         Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses.
3679         * par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses.
3680         * style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic
3681         related to expressions requiring parentheses here.
3683 2023-05-22  Arnaud Charlet  <charlet@adacore.com>
3685         * ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb,
3686         checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb,
3687         libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb,
3688         libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb,
3689         libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb,
3690         libgnat/a-strmap.adb, libgnat/g-alleve.adb,
3691         libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb,
3692         libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb,
3693         par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
3694         sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb,
3695         exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb,
3696         exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb,
3697         sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb,
3698         sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb,
3699         sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb,
3700         binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb,
3701         gprep.adb, sem_ch11.adb: Remove extra parentheses.
3703 2023-05-22  Arnaud Charlet  <charlet@adacore.com>
3705         * sem_aggr.adb (Get_Value): Use ?? instead of ?.
3707 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3709         * exp_aggr.adb (Aggregate_Size): Remove redundant calls to
3710         Present.
3711         * exp_ch5.adb (Expand_N_If_Statement): Likewise.
3712         * sem_prag.adb (Analyze_Pragma): Likewise.
3713         * sem_warn.adb (Find_Var): Likewise.
3715 2023-05-22  Claire Dross  <dross@adacore.com>
3717         * sem_util.adb (Find_Actual): On calls through dereferences,
3718         return the corresponding formal in the designated subprogram
3719         profile.
3721 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3723         * sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec.
3724         * sem_util.adb (Is_Actual_Tagged_Parameter): Remove body.
3726 2023-05-22  Joffrey Huguet  <huguet@adacore.com>
3728         * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads
3729         (To_Unbounded_String): Add postcondition. Add aspect SPARK_Mode
3730         Off on the version that takes a Natural as parameter.
3731         (To_String): Complete postcondition.
3732         (Set_Unbounded_String): Add postcondition.
3733         (Element): Likewise.
3734         ("="): Likewise.
3736 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3738         * exp_ch3.adb (Freeze_Type): Do not associate the Finalize_Address
3739         routine for a class-wide type if restriction No_Dispatching_Calls
3740         is in effect.
3742 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3744         * libgnat/s-genbig.ads (From_Bignum): New overloaded declarations.
3745         * libgnat/s-genbig.adb (LLLI): New subtype.
3746         (LLLI_Is_128): New boolean constant.
3747         (From_Bignum): Change the return type of the signed implementation
3748         to Long_Long_Long_Integer and add support for the case where its
3749         size is 128 bits.  Add a wrapper around it for Long_Long_Integer.
3750         Add an unsigned implementation returning Unsigned_128 and a wrapper
3751         around it for Unsigned_64.
3752         (To_Bignum): Test LLLI_Is_128 instead of its size.
3753         (To_String.Image): Add qualification to calls to From_Bignum.
3754         * libgnat/a-nbnbin.adb (To_Big_Integer): Likewise.
3755         (Signed_Conversions.From_Big_Integer): Likewise.
3756         (Unsigned_Conversions): Likewise.
3758 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3760         * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec
3761         to copy the spec from the subprogram to the generated subprogram
3762         body.
3763         (Freeze_Entity): Do not wrap imported subprograms inside generics.
3765 2023-05-22  Steve Baird  <baird@adacore.com>
3767         * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
3768         If Comes_From_Source (A) is False, then look at Original_Node (A)
3769         instead of A. In particular, if an (illegal) expression function
3770         is transformed into a "vanilla" function, we don't want to allow
3771         it just because Comes_From_Source is now False.
3773 2023-05-22  Steve Baird  <baird@adacore.com>
3775         * sem_prag.adb (Analyze_Pragma): In Check_No_Return, call
3776         Error_Msg_Ada_2022_Feature in the case of a function. Remove code
3777         outside of Check_No_Return that was querying Ada_Version.
3779 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3781         * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): Do
3782         not look into nested blocks.
3784 2023-05-22  Eric Botcazou  <ebotcazou@adacore.com>
3786         * sem_ch3.adb (Find_Type_Of_Object): In a spec expression, also set
3787         the Scope of the type, and call Constrain_Array for array subtypes.
3789 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3791         * pprint.adb (Expression_Image): Reduce scope of local variables; inline
3792         local uncommented constant From_Source; concatenate string with a single
3793         character, as it is likely to execute faster; add missing cases to
3794         traversal for the rightmost node and assertion to demonstrate that the
3795         ??? comment is no longer relevant.
3797 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3799         * pprint.adb (Expr_Name): Qualify CASE expression with N_Subexpr; add
3800         missing alternative for N_Raise_Storage_Error; remove dead alternatives;
3801         explicitly list unsupported alternatives.
3803 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3805         * pprint.adb (Expr_Name): Exclude DEL from printable range.
3807 2023-05-22  Piotr Trojanek  <trojanek@adacore.com>
3809         * sem_util.ads (New_Copy_Tree): Update comment.
3810         * sem_util.adb (New_Copy_Tree): Update Controlling_Argument, very
3811         much like we update the First/Next_Named_Association.
3813 2023-05-22  Bob Duff  <duff@adacore.com>
3815         * fe.h: Remove Ada_With_Extensions and add commentary.
3816         * opt.ads: Rearrange code and add commentary.
3818 2023-05-22  Bob Duff  <duff@adacore.com>
3820         * sem_util.adb (Process_Type): Stop the recursion.
3821         * exp_aggr.adb (Build_Record_Aggr_Code): Add assertion.
3823 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3825         * gcc-interface/decl.cc (gnat_to_gnu_entity): Use _P defines
3826         from tree.h.
3827         (constructor_address_p): Ditto.
3828         (elaborate_expression_1): Ditto.
3829         * gcc-interface/trans.cc (Identifier_to_gnu): Ditto.
3830         (is_nrv_p): Ditto.
3831         (Subprogram_Body_to_gnu): Ditto.
3832         (gnat_to_gnu): Ditto.
3833         (gnat_to_gnu_external): Ditto.
3834         (add_decl_expr): Ditto.
3835         (gnat_gimplify_expr): Ditto.
3836         * gcc-interface/utils.cc (create_var_decl): Ditto.
3837         * gcc-interface/utils2.cc (get_base_type): Ditto.
3838         (build_binary_op): Ditto.
3839         (build_unary_op): Ditto.
3840         (gnat_protect_expr): Ditto.
3841         (gnat_invariant_expr): Ditto.
3843 2023-05-16  Steve Baird  <baird@adacore.com>
3845         * usage.adb: Generate output text describing the -gnatw_s switch
3846         (and the corresponding -gnatw_S switch).
3848 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3850         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>:
3851         Use the canonical accumulator type as the type of the accumulator
3852         in the prefixed case.
3854 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3856         * exp_aggr.adb (Expand_Array_Aggregate): Do not set Warnings_Off on
3857         the temporary created when in-place expansion is not possible.
3859 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3861         * freeze.adb (Freeze_Expression): When the freezing is to be done
3862         outside the current scope, skip any scope that is an internal loop.
3864 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3866         * exp_imgv.adb (Rewrite_Object_Image): If the prefix is a component
3867         that depends on a discriminant, create an actual subtype for it.
3869 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3871         * sem_ch13.adb: Add with and use clauses for Expander.
3872         (Resolve_Aspect_Expressions) <Aspect_Predicate>: Emulate a
3873         bona-fide preanalysis setup before calling
3874         Resolve_Aspect_Expression.
3876 2023-05-16  Yannick Moy  <moy@adacore.com>
3878         * libgnat/s-aridou.adb (Lemma_Div_Pow2): Add assertion.
3879         * libgnat/s-arit32.adb (Lemma_Abs_Div_Commutation): Simplify.
3880         * libgnat/s-expmod.adb (Lemma_Exp_Mod): Add assertions.
3881         (Lemma_Euclidean_Mod): Add body to lemma.
3882         (Lemma_Mult_Mod): Add assertion.
3883         * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Modify assertion.
3884         * libgnat/s-vauspe.ads (Raw_Unsigned_Last_Ghost): Add
3885         postcondition.
3886         * libgnat/s-widthi.adb: Use more precise types.
3888 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3890         * sem_res.adb (Has_Applicable_User_Defined_Literal): Apply the
3891         same processing for derived untagged types as for tagged types.
3892         * sem_util.ads (Corresponding_Primitive_Op): Adjust description.
3893         * sem_util.adb (Corresponding_Primitive_Op): Handle untagged
3894         types.
3896 2023-05-16  Javier Miranda  <miranda@adacore.com>
3898         * sem_attr.adb
3899         (Analyze_Attribute_Old_Result): When preanalyzing a class-wide
3900         condition, search in the scopes stack for the subprogram that has
3901         the condition. This is required because returning the current
3902         scope causes reporting spurious errors when the occurrence of the
3903         attribute is found, for example, in a quantified expression.
3905 2023-05-16  Javier Miranda  <miranda@adacore.com>
3907         * exp_ch6.adb
3908         (Needs_BIP_Alloc_Form): Return False for functions with foreign
3909         convention since we never use build-in-place for such functions.
3911 2023-05-16  Piotr Trojanek  <trojanek@adacore.com>
3913         * sem_util.adb (Aggregate_Constraint_Checks): Don't exit early
3914         when preanalysing in GNATprove mode. Now the condition is
3915         consistent with other similar conditions in other code.
3917 2023-05-16  Ghjuvan Lacambre  <lacambre@adacore.com>
3919         * usage.adb (Usage): Document -gnatyD.
3921 2023-05-16  Marc Poulhiès  <poulhies@adacore.com>
3923         * libgnat/s-tsmona__linux.adb (link_map, r_debug_type): Add
3924         'aliased' on all components.
3926 2023-05-16  Johannes Kliemann  <kliemann@adacore.com>
3928         * libgnat/system-linux-ppc.ads: Add Support_Atomic_Primitives.
3929         * libgnat/s-atopri__32.ads: Add 32 bit version of s-atopri.ads.
3930         * Makefile.rtl: Use s-atopro__32.ads for ppc-linux.
3932 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3934         * sem_util.adb (Get_Actual_Subtype): For an explicit dereference,
3935         return the Actual_Designated_Subtype if it is present.
3936         (Get_Actual_Subtype_If_Available): Likewise.
3938 2023-05-16  Arnaud Charlet  <charlet@adacore.com>
3940         * errout.ads: Update comment.
3941         * errout.adb (Skip_Msg_Insertion_Warning): Update to take e.g.
3942         -gnatyM into account.
3943         * erroutc.adb (Get_Warning_Option, Get_Warning_Tag)
3944         (Prescan_Message): Add support for Style tags.
3945         * par-ch5.adb, par-ch6.adb, par-ch7.adb, par-endh.adb,
3946         par-util.adb, style.adb, styleg.adb: Set tag on all style
3947         messages.
3949 2023-05-16  Tom Tromey  <tromey@adacore.com>
3951         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
3952         (Switches_for_gnatbind): Fix typo.
3953         * libgnat/g-spipat.ads: Fix typo.
3954         * gnat_ugn.texi: Regenerate.
3956 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3958         * exp_aggr.adb (Build_Assignment_With_Temporary): Adjust comment
3959         and fix type of second parameter. Create the temporary on the
3960         secondary stack by calling Build_Temporary_On_Secondary_Stack.
3961         (Convert_Array_Aggr_In_Allocator): Adjust formatting.
3962         (Expand_Array_Aggregate): Likewise.
3963         * exp_ch4.adb (Expand_N_Allocator): Set Actual_Designated_Subtype
3964         on the dereference in the initialization for all composite types.
3965         * exp_ch5.adb (Expand_N_Assignment_Statement): Create a temporary
3966         on the host for an assignment between nonnative storage models.
3967         Suppress more checks when Suppress_Assignment_Checks is set.
3968         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Deal with actuals
3969         that are dereferences with an Actual_Designated_Subtype. Add
3970         support for nonnative storage models.
3971         (Expand_Actuals): Create a copy if the actual is a dereference
3972         with a nonnative storage model.
3973         * exp_util.ads (Build_Temporary_On_Secondary_Stack): Declare.
3974         * exp_util.adb (Build_Temporary_On_Secondary_Stack): New function.
3975         * sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Do not
3976         build an actual subtype for dereferences with an
3977         Actual_Designated_Subtype
3978         * sinfo.ads (Actual_Designated_Subtype): Adjust documentation.
3979         (Suppress_Assignment_Checks): Likewise.
3981 2023-05-16  Piotr Trojanek  <trojanek@adacore.com>
3983         * exp_spark.adb (SPARK_Freeze_Type): Copy whole handling of DIC
3984         and Type_Invariant from Freeze_Type.
3986 2023-05-16  Richard Kenner  <kenner@adacore.com>
3988         * sem_util.adb (Subprogram_Name): If what's passed is already an
3989         entity, use that for the name.
3991 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3993         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
3994         (No_Dependence): Give examples of new No_Dependence restrictions.
3995         * gnat_rm.texi: Regenerate.
3997 2023-05-16  Arnaud Charlet  <charlet@adacore.com>
3999         * snames.ads-tmpl (Name_ASCII): New.
4000         * style.adb (Check_Identifier): Fix handling of ASCII.
4002 2023-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4004         * gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat.
4005         * gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as
4006         semantical flag and change Includes_Infinities to semantical.
4007         * sinfo.ads (Cannot_Be_Superflat): Document it for N_Range.
4008         * exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the
4009         range of the result if the result cannot be null.
4011 2023-05-16  Richard Kenner  <kenner@adacore.com>
4013         * gen_il-gen-gen_nodes.adb (Present_Expr): Type is now Uint.
4015 2023-05-16  Yannick Moy  <moy@adacore.com>
4017         * libgnat/s-aridou.adb (Big3, Is_Mult_Decomposition)
4018         (Is_Scaled_Mult_Decomposition): Add annotation for inlining.
4019         (Double_Divide, Scaled_Divide): Simplify and remove ghost code.
4020         (Prove_Multiplication): Add calls to lemmas to make proof go
4021         through.
4022         * libgnat/s-aridou.ads (Big, In_Double_Int_Range): Add annotation
4023         for inlining.
4025 2023-05-16  Yannick Moy  <moy@adacore.com>
4027         * libgnat/a-strsup.adb: Add intermediate assertions.
4029 2023-05-16  Arnaud Charlet  <charlet@adacore.com>
4031         * gnat1drv.adb: Ensure all dependencies are recorded even when not
4032         generating code.
4034 2023-05-16  Yannick Moy  <moy@adacore.com>
4036         * libgnat/a-strsup.adb: Set assertion policy for Loop_Variant.
4038 2023-05-16  Marc Poulhiès  <poulhies@adacore.com>
4040         * sem_ch12.adb (Instantiate_Package_Body): Simplify if/then/else.
4041         (Instantiate_Subprogram_Body): Likewise.
4043 2023-05-16  Yannick Moy  <moy@adacore.com>
4045         * libgnat/s-aridou.adb:
4046         (Big3): Remove override made useless.
4047         (Lemma_Quot_Rem): Add new lemma and justify it, as no prover
4048         manages to prove it.
4049         (Lemma_Div_Pow2): Use new lemma Lemma_Quot_Rem.
4050         (Prove_Scaled_Mult_Decomposition_Regroup3): Retype for
4051         simplification.
4052         (Scaled_Divide): Remove useless assertions.Decompose some
4053         assertions with cut operations. Use Assert_And_Cut for second
4054         half. Add assertions.
4056 2023-05-15  Marc Poulhiès  <poulhies@adacore.com>
4058         * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
4060 2023-05-15  Yannick Moy  <moy@adacore.com>
4062         * libgnat/a-strbou.ads: Add justifications for Mapping.
4063         * libgnat/a-strfix.adb: Same.
4064         * libgnat/a-strfix.ads: Same.
4065         * libgnat/a-strsea.adb: Same.
4066         * libgnat/a-strsea.ads: Same.
4067         * libgnat/a-strsup.adb: Same and add loop variants.
4068         * libgnat/a-strsup.ads: Same and add specification of termination.
4070 2023-05-15  Yannick Moy  <moy@adacore.com>
4072         * libgnat/a-strsup.adb (Super_Slice): Reorder component assignment
4073         to avoid failing predicate check related to initialization.
4074         * libgnat/s-expmod.adb (Exp_Modular): Add intermediate assertion.
4076 2023-05-15  Yannick Moy  <moy@adacore.com>
4078         * libgnat/i-c.adb: Add loop variants. Remove useless
4079         initialization.
4081 2023-05-15  Bob Duff  <duff@adacore.com>
4083         * einfo-utils.ads: Remove comment.
4085 2023-05-15  Bob Duff  <duff@adacore.com>
4087         * einfo-utils.ads, einfo-utils.adb: Get rid of the Proc_Next_...
4088         procedures. Use Inline aspect instead of pragma Inline.
4089         Is_Discrete_Or_Fixed_Point_Type did not have pragma Inline, but
4090         now has the aspect; this was probably an oversight
4091         (which illustrates why aspects are better).
4093 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
4095         * doc/gnat_ugn/gnat_utility_programs.rst: Fix formatting
4096         inconsistency.
4098 2023-05-15  Bob Duff  <duff@adacore.com>
4100         * einfo-utils.adb:
4101         (Proc_Next_Component_Or_Discriminant): Call
4102         Next_Component_Or_Discriminant.
4104 2023-05-15  Bob Duff  <duff@adacore.com>
4106         * einfo.ads:
4107         (First_Entity): Update comment explaining why this exists on all
4108         [sub]types, as opposed to just the ones with associated entities.
4110 2023-05-15  Bob Duff  <duff@adacore.com>
4112         * atree.adb
4113         (Check_Vanishing_Fields): Disable the check for "root/base type
4114         only" fields. This is a bug fix -- if we're checking some subtype
4115         S, we don't want to reach over to the root or base type and
4116         Reinit_Field_To_Zero of that, thus modifying the field for lots of
4117         subtypes other than S. Disable in the to/from E_Void cases. Misc
4118         cleanup.
4119         * gen_il-gen-gen_entities.adb: Define First_Entity, Last_Entity,
4120         and Stored_Constraint for all type entities, because there are too
4121         many cases where Reinit_Field_To_Zero would otherwise be needed.
4122         In any case, it seems cleaner to have First_Entity and Last_Entity
4123         defined in the same entity kinds.
4124         * einfo.ads:
4125         (First_Entity, Last_Entity, Stored_Constraint): Update comments to
4126         reflect gen_il-gen-gen_entities.adb changes.
4127         (Lit_Hash): Add missing "[root type only]" comment.
4128         * exp_ch5.adb: Add Reinit_Field_To_Zero calls for vanishing
4129         fields.
4130         * sem_ch10.adb: Likewise.
4131         * sem_ch6.adb: Likewise.
4132         * sem_ch7.adb: Likewise.
4133         * sem_ch8.adb: Likewise.
4134         * sem_ch3.adb: Likewise. Also remove now-unnecessary
4135         Reinit_Field_To_Zero calls.
4137 2023-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4139         * sem_ch7.adb (Hide_Public_Entities): Use the same condition for
4140         subprogram bodies without specification as for those with one.
4142 2023-05-15  Piotr Trojanek  <trojanek@adacore.com>
4144         * sem_util.adb (New_Copy_Tree): Remove redundant calls to Present.
4146 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
4148         * sem_ch8.adb (End_Scope): Simplify lookup of predecessor in
4149         homonym chain.
4151 2023-05-15  Piotr Trojanek  <trojanek@adacore.com>
4153         * sem_aggr.adb (Resolve_Aggregate): Accept aggregates with OTHERS
4154         appearing inside unchecked conversions.
4156 2023-05-15  Steve Baird  <baird@adacore.com>
4158         * warnsw.ads: Add a new element,
4159         Warn_On_Ineffective_Predicate_Test, to the Opt_Warnings_Enum
4160         enumeration type.
4161         * warnsw.adb: Bind "-gnatw_s" to the new
4162         Warn_On_Ineffective_Predicate_Test switch. Add the new switch to
4163         the set of switches enabled by -gnata .
4164         * sem_ch13.adb
4165         (Build_Discrete_Static_Predicate): Declare new local procedure,
4166         Warn_If_Test_Ineffective, which conditionally generates new
4167         warning. Call this new procedure when building a new element of an
4168         RList.
4169         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4170         Document the -gnatw_s switch (and the corresponding -gnatw_S
4171         switch).
4172         * gnat_ugn.texi: Regenerate.
4174 2023-05-15  Yannick Moy  <moy@adacore.com>
4176         * sem_attr.adb: Update comment referring to rule number.
4178 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
4180         * sem_attr.adb: sem_attr.adb (Analyze_Access_Attribute): Tighten
4181         validity check for task types.
4183 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
4185         * doc/gnat_rm/implementation_defined_characteristics.rst: Fix
4186         minor documentation formatting issue.
4187         * gnat_rm.texi: Regenerate.
4188         * gnat_ugn.texi: Regenerate.
4190 2023-05-15  Bob Duff  <duff@adacore.com>
4192         * exp_ch4.adb
4193         (Expand_N_Op_Expon): Remove the too-big check. Simplify. Signed
4194         and modular cases are combined, etc. Remove code with comment "We
4195         only handle cases where the right type is a[sic] integer", because
4196         the right operand must always be an integer at this point.
4198 2023-05-15  Bob Duff  <duff@adacore.com>
4200         * sem_attr.adb
4201         (Analyze_Attribute): Add a call to Check_Error_Detected.
4203 2023-05-15  Yannick Moy  <moy@adacore.com>
4205         * par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to
4206         expression in pragma association.
4208 2023-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4210         * repinfo.ads (JSON output format): Document special case of
4211         Present member of a Variant object.
4212         * repinfo.adb (List_Structural_Record_Layout): Change the type of
4213         Ext_Level parameter to Integer. Restrict the first recursion with
4214         increasing levels to the fixed part and implement a second
4215         recursion with decreasing levels for the variant part. Deal with
4216         an extension of a type with unknown discriminants.
4218 2023-05-15  Claire Dross  <dross@adacore.com>
4220         * libgnat/s-valueu.adb: Use cut operations inside assertion to
4221         restore proofs
4222         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-spark and
4223         s-spcuop dependencies.
4225 2023-05-15  Yannick Moy  <moy@adacore.com>
4227         * sem_prag.adb (Check_Grouping): Allow Annotate pragmas between
4228         loop pragmas.
4230 2023-05-15  Javier Miranda  <miranda@adacore.com>
4232         * doc/gnat_rm/implementation_defined_pragmas.rst
4233         (Extensions_Allowed): Document string interpolation.
4234         * gnat_rm.texi: Regenerate.
4235         * gnat_ugn.texi: Regenerate.
4237 2023-05-15  Joel Brobecker  <brobecker@adacore.com>
4239         * doc/gnat_ugn/platform_specific_information.rst
4240         (_PIE_Enabled_By_Default_On_Linux): New section.
4241         * gnat-style.texi: Regenerate.
4242         * gnat_ugn.texi: Regenerate.
4244 2023-05-15  Javier Miranda  <miranda@adacore.com>
4246         * exp_disp.adb
4247         (Has_Dispatching_Constructor_Call): New subprogram.
4248         (Expand_Interface_Conversion): No need to perform dynamic
4249         interface conversion when the operand and the target type are
4250         interface types and the target interface type is an ancestor of
4251         the operand type. The unique exception to this rule is when the
4252         operand has a dispatching constructor call (as documented in the
4253         sources).
4255 2023-05-15  Piotr Trojanek  <trojanek@adacore.com>
4257         * sem_attr.adb (Analyze_Attribute): Reject attribute Initialized
4258         on unchecked unions; fix grammar in comment.
4260 2023-05-15  Ronan Desplanques  <desplanques@adacore.com>
4262         * sem_ch13.adb (Validate_Unchecked_Conversion): Fix behavior on
4263         System.Address to access to subprogram subtype conversion.
4265 2023-05-15  Piotr Trojanek  <trojanek@adacore.com>
4267         * atree.ads
4268         (Is_Syntactic_Node): Refactored from New_Copy_Tree.
4269         * atree.adb
4270         (Is_Syntactic_Node): Likewise.
4271         (Copy_Separate_Tree): Use Is_Syntactic_Node.
4272         * sem_util.adb
4273         (Has_More_Ids): Move to Atree.
4274         (Is_Syntactic_Node): Likewise.
4276 2023-04-18  Jin Ma  <jinma@linux.alibaba.com>
4278         * gcc-interface/utils.cc (unchecked_convert): Fix typo.
4280 2023-04-17  Martin Liska  <mliska@suse.cz>
4282         * gnatvsn.ads: Bump Library_Version to 14.
4284 2023-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4286         PR bootstrap/109510
4287         * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset
4288         align to zero in any case.  Set TYPE_USER_ALIGN on the type only if
4289         it is an aggregate type, or else a type whose default alignment is
4290         specifically capped on selected platforms.
4292 2023-04-14  Eric Botcazou  <ebotcazou@adacore.com>
4294         PR bootstrap/109510
4295         * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align
4296         to zero if its value is equal to TYPE_ALIGN and the type is scalar.
4297         Set TYPE_USER_ALIGN on the type only if align is positive.
4299 2023-03-06  Javier Miranda  <miranda@adacore.com>
4301         PR ada/108858
4302         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with
4303         separate spec, if their return type was visible through a limited-
4304         with context clause, their extra formals were not added when the
4305         spec was analyzed.  Now the full view must be available, and the
4306         extra formals can be created and Returns_By_Ref computed.
4308 2023-03-06  Eric Botcazou  <ebotcazou@adacore.com>
4310         PR ada/108909
4311         PR ada/108983
4312         * Make-generated.in: Do not use GNATMAKE.
4313         * gcc-interface/Makefile.in: Ditto.
4315 2023-02-26  Peter Foley  <pefoley2@pefoley.com>
4317         PR ada/108909
4318         * Make-generated.in: Use GNATMAKE.
4319         * gcc-interface/Makefile.in: Ditto.
4321 2023-02-14  Eric Botcazou  <ebotcazou@adacore.com>
4323         * gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard.
4325 2023-02-14  Dongsheng Song  <dongsheng.song@gmail.com>
4327         * adaint.c [Linux]: Include <features.h>.
4328         (__gnat_get_executable_load_address) [Linux]: Enable only for
4329         glibc and uClibc.
4331 2023-01-16  Marc Poulhiès  <poulhies@adacore.com>
4333         * gcc-interface/Make-lang.in: Update copyright years.
4334         * gcc-interface/Makefile.in: Likewise.
4335         * gcc-interface/ada-builtin-types.def: Likewise.
4336         * gcc-interface/ada-builtins.def: Likewise.
4337         * gcc-interface/ada-tree.def: Likewise.
4338         * gcc-interface/ada-tree.h: Likewise.
4339         * gcc-interface/ada.h: Likewise.
4340         * gcc-interface/config-lang.in: Likewise.
4341         * gcc-interface/cuintp.cc: Likewise.
4342         * gcc-interface/decl.cc: Likewise.
4343         * gcc-interface/gadaint.h: Likewise.
4344         * gcc-interface/gigi.h: Likewise.
4345         * gcc-interface/lang-specs.h: Likewise.
4346         * gcc-interface/lang.opt: Likewise.
4347         * gcc-interface/misc.cc: Likewise.
4348         * gcc-interface/system.ads: Likewise.
4349         * gcc-interface/targtyps.cc: Likewise.
4350         * gcc-interface/trans.cc: Likewise.
4351         * gcc-interface/utils.cc: Likewise.
4352         * gcc-interface/utils2.cc: Likewise.
4354 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4356         * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
4358 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4360         * exp_ch3.adb (Make_Allocator_For_Return): Convert the expression
4361         to the return object's type in the constrained array case as well.
4363 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4365         * exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non-
4366         interface stand-alone object initialized by a function call, call
4367         Remove_Side_Effects on the expression to capture the result.
4369 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4371         * exp_util.ads (Has_Tag_Of_Type): Declare.
4372         * exp_util.adb (Has_Tag_Of_Type): Move to package level.  Recurse on
4373         qualified expressions.
4374         * exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference
4375         to the interface tag in more cases for class-wide interface objects.
4377 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4379         * exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto.
4381 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4383         * exp_util.adb (Is_Temporary_For_Interface_Object): Delete.
4384         (Is_Finalizable_Transient.Is_Aliased): Deal with the specific case
4385         of temporaries generated for interface objects.
4387 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4389         * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back-
4390         and-forth displacement of the object's address when using a renaming
4391         for an interface object with an expression of the same type.
4392         * exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side
4393         effects of the expression up front for the simple allocators. Do not
4394         call the Adjust primitive if the expression is a function call.
4395         * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call
4396         unnecessarily for a special return object.
4397         (Expand_Simple_Function_Return): Restore the displacement of the
4398         return object's address in the case where the expression is the call
4399         to a function whose result type is a type that needs finalization.
4400         * exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side
4401         effects of the expression before calling Make_Subtype_From_Expr.
4402         (Make_CW_Equivalent_Type): If the expression has the tag of its type
4403         and this type has a uniform size, use 'Object_Size of this type in
4404         lieu of 'Size of the expression to compute the expression's size.
4406 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4408         * exp_ch3.adb (Make_Allocator_For_Return): Put back an interface
4409         conversion for expressions with non-interface class-wide type.
4411 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4413         * exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased
4414         objects if their nominal subtype is not an unconstrained array.
4416 2023-01-16  Eric Botcazou  <ebotcazou@adacore.com>
4418         * exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions
4419         needed for an initializating expression that is a function call to
4420         be renamable into the Is_Renamable_Function_Call predicate.
4421         Use it to implement the renaming in the case of class-wide interface
4422         objects.  Remove an interface conversion on all paths, separate and
4423         optimize the renaming path in the special expansion for interfaces.
4424         (Is_Renamable_Function_Call): New predicate.
4425         (Make_Allocator_For_Return): Put back an interface conversion.
4426         * exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access
4427         checks on RE_Tag_Ptr.
4429 2023-01-09  Arnaud Charlet  <charlet@adacore.com>
4431         * accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year.
4432         * adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise.
4433         * adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise.
4434         * ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise.
4435         * aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise.
4436         * aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise.
4437         * backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise.
4438         * binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise.
4439         * bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise.
4440         * bindo-builders.ads, bindo-diagnostics.adb: Likewise.
4441         * bindo-diagnostics.ads, bindo-elaborators.adb: Likewise.
4442         * bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise.
4443         * bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise.
4444         * bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise.
4445         * bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise.
4446         * butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise.
4447         * checks.ads, cio.c, clean.adb, clean.ads: Likewise.
4448         * comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise.
4449         * csets.adb, csets.ads, cstand.adb: Likewise.
4450         * cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise.
4451         * debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise.
4452         * einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise.
4453         * env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise.
4454         * erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise.
4455         * eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise.
4456         * exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise.
4457         * exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise.
4458         * exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise.
4459         * exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise.
4460         * exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise.
4461         * exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise.
4462         * exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise.
4463         * exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise.
4464         * exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise.
4465         * exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise.
4466         * exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise.
4467         * exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise.
4468         * exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise.
4469         * exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise.
4470         * exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise.
4471         * exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise.
4472         * final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise.
4473         * fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise.
4474         * freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise.
4475         * gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise.
4476         * gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise.
4477         * gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise.
4478         * gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise.
4479         * get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise.
4480         * gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise.
4481         * gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise.
4482         * gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise.
4483         * gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise.
4484         * gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise.
4485         * gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise.
4486         * gprep.adb, gprep.ads, gsocket.h: Likewise.
4487         * hostparm.ads: Likewise.
4488         * impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise.
4489         * indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise.
4490         * initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise.
4491         * krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise.
4492         * lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise.
4493         * lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise.
4494         * lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise.
4495         * lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise.
4496         * libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise.
4497         * libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise.
4498         * libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise.
4499         * libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise.
4500         * libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise.
4501         * libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise.
4502         * libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise.
4503         * libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise.
4504         * libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise.
4505         * libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise.
4506         * libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise.
4507         * libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise.
4508         * libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise.
4509         * libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise.
4510         * libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise.
4511         * libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise.
4512         * libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise.
4513         * libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise.
4514         * libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise.
4515         * libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise.
4516         * libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise.
4517         * libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise.
4518         * libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise.
4519         * libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise.
4520         * libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise.
4521         * libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise.
4522         * libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise.
4523         * libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise.
4524         * libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise.
4525         * libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise.
4526         * libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise.
4527         * libgnarl/s-interr__sigaction.adb: Likewise.
4528         * libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise.
4529         * libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise.
4530         * libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise.
4531         * libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise.
4532         * libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise.
4533         * libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise.
4534         * libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise.
4535         * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise.
4536         * libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise.
4537         * libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise.
4538         * libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise.
4539         * libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise.
4540         * libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise.
4541         * libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise.
4542         * libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise.
4543         * libgnarl/s-osinte__dragonfly.adb: Likewise.
4544         * libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise.
4545         * libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise.
4546         * libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise.
4547         * libgnarl/s-osinte__hpux-dce.adb: Likewise.
4548         * libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise.
4549         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
4550         * libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise.
4551         * libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise.
4552         * libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise.
4553         * libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise.
4554         * libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise.
4555         * libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise.
4556         * libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise.
4557         * libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise.
4558         * libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise.
4559         * libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise.
4560         * libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise.
4561         * libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise.
4562         * libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise.
4563         * libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise.
4564         * libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise.
4565         * libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise.
4566         * libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise.
4567         * libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise.
4568         * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise.
4569         * libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise.
4570         * libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise.
4571         * libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise.
4572         * libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise.
4573         * libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise.
4574         * libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise.
4575         * libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise.
4576         * libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise.
4577         * libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise.
4578         * libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise.
4579         * libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise.
4580         * libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise.
4581         * libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise.
4582         * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
4583         * libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise.
4584         * libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise.
4585         * libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise.
4586         * libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise.
4587         * libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise.
4588         * libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise.
4589         * libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise.
4590         * libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise.
4591         * libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise.
4592         * libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise.
4593         * libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise.
4594         * libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise.
4595         * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
4596         * libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise.
4597         * libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
4598         * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
4599         * libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise.
4600         * libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise.
4601         * libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise.
4602         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
4603         * libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise.
4604         * libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise.
4605         * libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise.
4606         * libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise.
4607         * libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise.
4608         * libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise.
4609         * libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise.
4610         * libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise.
4611         * libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise.
4612         * libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise.
4613         * libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise.
4614         * libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise.
4615         * libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise.
4616         * libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise.
4617         * libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise.
4618         * libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise.
4619         * libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise.
4620         * libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise.
4621         * libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise.
4622         * libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise.
4623         * libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise.
4624         * libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise.
4625         * libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise.
4626         * libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise.
4627         * libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise.
4628         * libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise.
4629         * libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise.
4630         * libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise.
4631         * libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise.
4632         * libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise.
4633         * libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise.
4634         * libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise.
4635         * libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise.
4636         * libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise.
4637         * libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise.
4638         * libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise.
4639         * libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise.
4640         * libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise.
4641         * libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise.
4642         * libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise.
4643         * libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise.
4644         * libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise.
4645         * libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise.
4646         * libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise.
4647         * libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise.
4648         * libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise.
4649         * libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise.
4650         * libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise.
4651         * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise.
4652         * libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise.
4653         * libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise.
4654         * libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise.
4655         * libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise.
4656         * libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise.
4657         * libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise.
4658         * libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise.
4659         * libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise.
4660         * libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise.
4661         * libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise.
4662         * libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise.
4663         * libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise.
4664         * libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise.
4665         * libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise.
4666         * libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise.
4667         * libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise.
4668         * libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise.
4669         * libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise.
4670         * libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise.
4671         * libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise.
4672         * libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise.
4673         * libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise.
4674         * libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise.
4675         * libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise.
4676         * libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise.
4677         * libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise.
4678         * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise.
4679         * libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise.
4680         * libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise.
4681         * libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise.
4682         * libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise.
4683         * libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise.
4684         * libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise.
4685         * libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise.
4686         * libgnat/a-excach.adb, libgnat/a-except.adb: Likewise.
4687         * libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise.
4688         * libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise.
4689         * libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise.
4690         * libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise.
4691         * libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise.
4692         * libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise.
4693         * libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise.
4694         * libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise.
4695         * libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise.
4696         * libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise.
4697         * libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise.
4698         * libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise.
4699         * libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise.
4700         * libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise.
4701         * libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise.
4702         * libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise.
4703         * libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise.
4704         * libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise.
4705         * libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise.
4706         * libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise.
4707         * libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise.
4708         * libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise.
4709         * libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise.
4710         * libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise.
4711         * libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise.
4712         * libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise.
4713         * libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise.
4714         * libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise.
4715         * libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise.
4716         * libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise.
4717         * libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise.
4718         * libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise.
4719         * libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise.
4720         * libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise.
4721         * libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise.
4722         * libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise.
4723         * libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise.
4724         * libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise.
4725         * libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise.
4726         * libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise.
4727         * libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise.
4728         * libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise.
4729         * libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise.
4730         * libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise.
4731         * libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise.
4732         * libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise.
4733         * libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise.
4734         * libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise.
4735         * libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise.
4736         * libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise.
4737         * libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise.
4738         * libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise.
4739         * libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise.
4740         * libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise.
4741         * libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise.
4742         * libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise.
4743         * libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise.
4744         * libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise.
4745         * libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise.
4746         * libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise.
4747         * libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise.
4748         * libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise.
4749         * libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise.
4750         * libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise.
4751         * libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise.
4752         * libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise.
4753         * libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise.
4754         * libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise.
4755         * libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise.
4756         * libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise.
4757         * libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise.
4758         * libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise.
4759         * libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise.
4760         * libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise.
4761         * libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise.
4762         * libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise.
4763         * libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise.
4764         * libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise.
4765         * libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise.
4766         * libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise.
4767         * libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise.
4768         * libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise.
4769         * libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise.
4770         * libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise.
4771         * libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise.
4772         * libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise.
4773         * libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise.
4774         * libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise.
4775         * libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise.
4776         * libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise.
4777         * libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise.
4778         * libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise.
4779         * libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise.
4780         * libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise.
4781         * libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise.
4782         * libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise.
4783         * libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise.
4784         * libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise.
4785         * libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise.
4786         * libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise.
4787         * libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise.
4788         * libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise.
4789         * libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise.
4790         * libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise.
4791         * libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise.
4792         * libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise.
4793         * libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise.
4794         * libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise.
4795         * libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise.
4796         * libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise.
4797         * libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise.
4798         * libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise.
4799         * libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise.
4800         * libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise.
4801         * libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise.
4802         * libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise.
4803         * libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise.
4804         * libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise.
4805         * libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise.
4806         * libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise.
4807         * libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise.
4808         * libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise.
4809         * libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise.
4810         * libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise.
4811         * libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise.
4812         * libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise.
4813         * libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise.
4814         * libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise.
4815         * libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise.
4816         * libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise.
4817         * libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise.
4818         * libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise.
4819         * libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise.
4820         * libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise.
4821         * libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise.
4822         * libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise.
4823         * libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise.
4824         * libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise.
4825         * libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise.
4826         * libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise.
4827         * libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise.
4828         * libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise.
4829         * libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise.
4830         * libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise.
4831         * libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise.
4832         * libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise.
4833         * libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise.
4834         * libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise.
4835         * libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise.
4836         * libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise.
4837         * libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise.
4838         * libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise.
4839         * libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise.
4840         * libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise.
4841         * libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise.
4842         * libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise.
4843         * libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise.
4844         * libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise.
4845         * libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise.
4846         * libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise.
4847         * libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise.
4848         * libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise.
4849         * libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise.
4850         * libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise.
4851         * libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise.
4852         * libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise.
4853         * libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise.
4854         * libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise.
4855         * libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise.
4856         * libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise.
4857         * libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise.
4858         * libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise.
4859         * libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise.
4860         * libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise.
4861         * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise.
4862         * libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise.
4863         * libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise.
4864         * libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise.
4865         * libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise.
4866         * libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise.
4867         * libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise.
4868         * libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise.
4869         * libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise.
4870         * libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise.
4871         * libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise.
4872         * libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise.
4873         * libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise.
4874         * libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise.
4875         * libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise.
4876         * libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise.
4877         * libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise.
4878         * libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise.
4879         * libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise.
4880         * libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise.
4881         * libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise.
4882         * libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise.
4883         * libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise.
4884         * libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise.
4885         * libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise.
4886         * libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise.
4887         * libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise.
4888         * libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise.
4889         * libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise.
4890         * libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise.
4891         * libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise.
4892         * libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise.
4893         * libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise.
4894         * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise.
4895         * libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise.
4896         * libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise.
4897         * libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise.
4898         * libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise.
4899         * libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise.
4900         * libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise.
4901         * libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise.
4902         * libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise.
4903         * libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise.
4904         * libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise.
4905         * libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise.
4906         * libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise.
4907         * libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise.
4908         * libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise.
4909         * libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise.
4910         * libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise.
4911         * libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise.
4912         * libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise.
4913         * libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise.
4914         * libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise.
4915         * libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise.
4916         * libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise.
4917         * libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise.
4918         * libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise.
4919         * libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise.
4920         * libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise.
4921         * libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise.
4922         * libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise.
4923         * libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise.
4924         * libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise.
4925         * libgnat/g-string.adb, libgnat/g-string.ads: Likewise.
4926         * libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise.
4927         * libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise.
4928         * libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise.
4929         * libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise.
4930         * libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise.
4931         * libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise.
4932         * libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise.
4933         * libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise.
4934         * libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise.
4935         * libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise.
4936         * libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise.
4937         * libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise.
4938         * libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise.
4939         * libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise.
4940         * libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise.
4941         * libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise.
4942         * libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise.
4943         * libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise.
4944         * libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise.
4945         * libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise.
4946         * libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise.
4947         * libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise.
4948         * libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise.
4949         * libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise.
4950         * libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise.
4951         * libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise.
4952         * libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise.
4953         * libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise.
4954         * libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise.
4955         * libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise.
4956         * libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise.
4957         * libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise.
4958         * libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise.
4959         * libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise.
4960         * libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise.
4961         * libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise.
4962         * libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise.
4963         * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise.
4964         * libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise.
4965         * libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise.
4966         * libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise.
4967         * libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise.
4968         * libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise.
4969         * libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise.
4970         * libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise.
4971         * libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise.
4972         * libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise.
4973         * libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise.
4974         * libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise.
4975         * libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise.
4976         * libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise.
4977         * libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise.
4978         * libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise.
4979         * libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise.
4980         * libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise.
4981         * libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise.
4982         * libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise.
4983         * libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise.
4984         * libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise.
4985         * libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise.
4986         * libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise.
4987         * libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise.
4988         * libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise.
4989         * libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise.
4990         * libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise.
4991         * libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise.
4992         * libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise.
4993         * libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise.
4994         * libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise.
4995         * libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise.
4996         * libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise.
4997         * libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise.
4998         * libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise.
4999         * libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise.
5000         * libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise.
5001         * libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise.
5002         * libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise.
5003         * libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise.
5004         * libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise.
5005         * libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise.
5006         * libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise.
5007         * libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise.
5008         * libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise.
5009         * libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise.
5010         * libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise.
5011         * libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise.
5012         * libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise.
5013         * libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise.
5014         * libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise.
5015         * libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise.
5016         * libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise.
5017         * libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise.
5018         * libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise.
5019         * libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise.
5020         * libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise.
5021         * libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise.
5022         * libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise.
5023         * libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise.
5024         * libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise.
5025         * libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise.
5026         * libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise.
5027         * libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise.
5028         * libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise.
5029         * libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise.
5030         * libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise.
5031         * libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise.
5032         * libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise.
5033         * libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise.
5034         * libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise.
5035         * libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise.
5036         * libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise.
5037         * libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise.
5038         * libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise.
5039         * libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise.
5040         * libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise.
5041         * libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise.
5042         * libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise.
5043         * libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise.
5044         * libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise.
5045         * libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise.
5046         * libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise.
5047         * libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise.
5048         * libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise.
5049         * libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise.
5050         * libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise.
5051         * libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise.
5052         * libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise.
5053         * libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise.
5054         * libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise.
5055         * libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise.
5056         * libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise.
5057         * libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise.
5058         * libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise.
5059         * libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise.
5060         * libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise.
5061         * libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise.
5062         * libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise.
5063         * libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise.
5064         * libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise.
5065         * libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise.
5066         * libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise.
5067         * libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise.
5068         * libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise.
5069         * libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise.
5070         * libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise.
5071         * libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise.
5072         * libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise.
5073         * libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise.
5074         * libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise.
5075         * libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise.
5076         * libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise.
5077         * libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise.
5078         * libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise.
5079         * libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise.
5080         * libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise.
5081         * libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise.
5082         * libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise.
5083         * libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise.
5084         * libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise.
5085         * libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise.
5086         * libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise.
5087         * libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise.
5088         * libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise.
5089         * libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise.
5090         * libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise.
5091         * libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise.
5092         * libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise.
5093         * libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise.
5094         * libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise.
5095         * libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise.
5096         * libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise.
5097         * libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise.
5098         * libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise.
5099         * libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise.
5100         * libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise.
5101         * libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise.
5102         * libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise.
5103         * libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise.
5104         * libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise.
5105         * libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise.
5106         * libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise.
5107         * libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise.
5108         * libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise.
5109         * libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise.
5110         * libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise.
5111         * libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise.
5112         * libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise.
5113         * libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise.
5114         * libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise.
5115         * libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise.
5116         * libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise.
5117         * libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise.
5118         * libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise.
5119         * libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise.
5120         * libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise.
5121         * libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise.
5122         * libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise.
5123         * libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise.
5124         * libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise.
5125         * libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise.
5126         * libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise.
5127         * libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise.
5128         * libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise.
5129         * libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise.
5130         * libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise.
5131         * libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise.
5132         * libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise.
5133         * libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise.
5134         * libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise.
5135         * libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise.
5136         * libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise.
5137         * libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise.
5138         * libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise.
5139         * libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise.
5140         * libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise.
5141         * libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise.
5142         * libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise.
5143         * libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise.
5144         * libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise.
5145         * libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise.
5146         * libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise.
5147         * libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise.
5148         * libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise.
5149         * libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise.
5150         * libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise.
5151         * libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise.
5152         * libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise.
5153         * libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise.
5154         * libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise.
5155         * libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise.
5156         * libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise.
5157         * libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise.
5158         * libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise.
5159         * libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise.
5160         * libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise.
5161         * libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise.
5162         * libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise.
5163         * libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise.
5164         * libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise.
5165         * libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise.
5166         * libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise.
5167         * libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise.
5168         * libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise.
5169         * libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise.
5170         * libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise.
5171         * libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise.
5172         * libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise.
5173         * libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise.
5174         * libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise.
5175         * libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise.
5176         * libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise.
5177         * libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise.
5178         * libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise.
5179         * libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise.
5180         * libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise.
5181         * libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise.
5182         * libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise.
5183         * libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise.
5184         * libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise.
5185         * libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise.
5186         * libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise.
5187         * libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise.
5188         * libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise.
5189         * libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise.
5190         * libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise.
5191         * libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise.
5192         * libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise.
5193         * libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise.
5194         * libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise.
5195         * libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise.
5196         * libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise.
5197         * libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise.
5198         * libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise.
5199         * libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise.
5200         * libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise.
5201         * libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise.
5202         * libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise.
5203         * libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise.
5204         * libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise.
5205         * libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise.
5206         * libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise.
5207         * libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise.
5208         * libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise.
5209         * libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise.
5210         * libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise.
5211         * libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise.
5212         * libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise.
5213         * libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise.
5214         * libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise.
5215         * libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise.
5216         * libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise.
5217         * libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise.
5218         * libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise.
5219         * libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise.
5220         * libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise.
5221         * libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise.
5222         * libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise.
5223         * libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise.
5224         * libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise.
5225         * libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise.
5226         * libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise.
5227         * libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise.
5228         * libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise.
5229         * libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise.
5230         * libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise.
5231         * libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise.
5232         * libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise.
5233         * libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise.
5234         * libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise.
5235         * libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise.
5236         * libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise.
5237         * libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise.
5238         * libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise.
5239         * libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise.
5240         * libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise.
5241         * libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise.
5242         * libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise.
5243         * libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise.
5244         * libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise.
5245         * libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise.
5246         * libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise.
5247         * libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise.
5248         * libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise.
5249         * libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise.
5250         * libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise.
5251         * libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise.
5252         * libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise.
5253         * libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise.
5254         * libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise.
5255         * libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise.
5256         * libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise.
5257         * libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise.
5258         * libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise.
5259         * libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise.
5260         * libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise.
5261         * libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise.
5262         * libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise.
5263         * libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise.
5264         * libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise.
5265         * libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise.
5266         * libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise.
5267         * libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise.
5268         * libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise.
5269         * libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise.
5270         * libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise.
5271         * libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise.
5272         * libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise.
5273         * libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise.
5274         * libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise.
5275         * libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise.
5276         * libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise.
5277         * libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise.
5278         * libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise.
5279         * libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise.
5280         * libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise.
5281         * libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise.
5282         * libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise.
5283         * libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise.
5284         * libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise.
5285         * libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise.
5286         * libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise.
5287         * libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise.
5288         * libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise.
5289         * libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise.
5290         * libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise.
5291         * libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise.
5292         * libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise.
5293         * libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise.
5294         * libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise.
5295         * libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise.
5296         * libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise.
5297         * libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise.
5298         * libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise.
5299         * libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise.
5300         * libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise.
5301         * libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise.
5302         * libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise.
5303         * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise.
5304         * libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise.
5305         * libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise.
5306         * libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise.
5307         * libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise.
5308         * libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise.
5309         * libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise.
5310         * libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise.
5311         * libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise.
5312         * libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise.
5313         * libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise.
5314         * libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise.
5315         * libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise.
5316         * libgnat/system-solaris-sparc.ads: Likewise.
5317         * libgnat/system-solaris-x86.ads: Likewise.
5318         * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
5319         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
5320         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
5321         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
5322         * libgnat/system-vxworks7-aarch64.ads: Likewise.
5323         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
5324         * libgnat/system-vxworks7-arm.ads: Likewise.
5325         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
5326         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
5327         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
5328         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
5329         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
5330         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
5331         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
5332         * libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise.
5333         * live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise.
5334         * make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise.
5335         * mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise.
5336         * mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise.
5337         * namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise.
5338         * opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise.
5339         * osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise.
5340         * osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise.
5341         * par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise.
5342         * par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise.
5343         * par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise.
5344         * par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise.
5345         * par.ads, par_sco.adb, par_sco.ads: Likewise.
5346         * pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise.
5347         * prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise.
5348         * raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise.
5349         * repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise.
5350         * restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise.
5351         * rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise.
5352         * scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise.
5353         * scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise.
5354         * scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise.
5355         * sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise.
5356         * sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise.
5357         * sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise.
5358         * sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise.
5359         * sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise.
5360         * sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise.
5361         * sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise.
5362         * sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise.
5363         * sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise.
5364         * sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise.
5365         * sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise.
5366         * sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise.
5367         * sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise.
5368         * sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise.
5369         * sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise.
5370         * sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise.
5371         * sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise.
5372         * sigtramp-ios.c, sigtramp-qnx.c: Likewise.
5373         * sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise.
5374         * sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise.
5375         * sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise.
5376         * sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise.
5377         * sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise.
5378         * sprint.adb, sprint.ads, stand.ads: Likewise.
5379         * stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise.
5380         * style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise.
5381         * stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise.
5382         * switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise.
5383         * switch.ads, sysdep.c, table.adb: Likewise.
5384         * table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise.
5385         * tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise.
5386         * treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise.
5387         * types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise.
5388         * urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise.
5389         * validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise.
5390         * warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise.
5391         * xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise.
5392         * gnatvsn.ads (Current_Year): Likewise and bump to 2023.
5394 2023-01-09  Eric Botcazou  <ebotcazou@adacore.com>
5396         * exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement.
5397         (Make_Final_Call): Likewise.
5399 2023-01-09  Eric Botcazou  <ebotcazou@adacore.com>
5401         * exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete.
5402         (Is_Displacement_Of_Object_Or_Function_Result): Likewise.
5403         * exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to...
5404         (Is_Temporary_For_Interface_Object): ...this.
5405         (Is_Finalizable_Transient): Adjust call to above renaming.
5406         (Is_Displacement_Of_Object_Or_Function_Result): Delete.
5407         (Requires_Cleanup_Actions): Remove special handling of the
5408         temporaries created for interface objects.
5409         * exp_ch7.adb (Build_Finalizer): Likewise.
5411 2023-01-07  LIU Hao  <lh_mouse@126.com>
5413         PR middle-end/108300
5414         * adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include
5415         <windows.h>`.
5416         * cio.c: Likewise.
5417         * ctrl_c.c: Likewise.
5418         * expect.c: Likewise.
5419         * gsocket.h: Likewise.
5420         * mingw32.h: Likewise.
5421         * mkdir.c: Likewise.
5422         * rtfinal.c: Likewise.
5423         * rtinit.c: Likewise.
5424         * seh_init.c: Likewise.
5425         * sysdep.c: Likewise.
5426         * terminals.c: Likewise.
5427         * tracebak.c: Likewise.
5429 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5431         * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak.
5433 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5435         * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the
5436         handling of objects with (class-wide) interface type by using the
5437         same idiom as the other cases generating a renaming.
5438         * exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak
5439         pattern matching code and exclude special return objects.
5440         (Requires_Cleanup_Actions): Adjust comment.
5441         * exp_ch7.adb (Build_Finalizer): Likewise.
5443 2023-01-05  Piotr Trojanek  <trojanek@adacore.com>
5445         * freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to
5446         subprogram declaration early and then set the Body_To_Inling flag.
5448 2023-01-05  Piotr Trojanek  <trojanek@adacore.com>
5450         * freeze.adb (Build_Renamed_Body): Revert a special case for
5451         GNATprove; remove unnecessary initialization of a local variable.
5453 2023-01-05  Marc Poulhiès  <poulhies@adacore.com>
5455         * sem_ch12.adb (Instantiate_Package_Body): Better filtering when
5456         installing parent on the scope stack.
5458 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5460         * repinfo.ads (The JSON output format): Document change.
5461         * urealp.adb (UR_Write_To_JSON): Output a fraction instead of a
5462         decimal approximation.
5464 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5466         * exp_ch3.adb (Expand_N_Object_Declaration): New local variable
5467         Func_Id holding the function for a special return object.
5468         Use a direct renaming in the class-wide case when the initializing
5469         expression is a captured function call, except for a special return
5470         object when the two functions do not return on the same stack.
5471         Apply the accessibility check for class-wide special return objects.
5472         * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New.
5473         Do not force a dispatching call to the primitive operation _Size if
5474         the expression is known to statically have the tag of its type.
5476 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5478         * exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment.
5480 2023-01-05  Ronan Desplanques  <desplanques@adacore.com>
5482         * sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for
5483         warning about use of parentheses for array aggregates.
5485 2023-01-05  Javier Miranda  <miranda@adacore.com>
5487         * scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket)
5488         (Tok_Left_Interpolated_String): Placed in no category since they
5489         don't fit well in the existing categories. Fix typo in comment.
5490         (Inside_Interpolated_String_Literal): New scan state variable.
5491         * scng.adb (Slit): Scan interpolated string literals,
5492         continuations of interpolated string literals and escaped
5493         characters found in interpolated string literals.
5494         (Scan): Handle consecutive interpolated expressions. Handle ending
5495         delimiter placed immediately after an interpolated expression.
5496         Handle string literal placed after interpolated expression. Handle
5497         left and right curly brackets; when extensions are not allowed
5498         they are treated as left and right paren; when extensions are
5499         allowed they are handled as delimiters of interpolated string
5500         literals.
5501         * sinfo.ads (N_Interpolated_String_Literal): New node.
5502         * gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define
5503         N_String_Literal node.
5504         * gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as
5505         concrete node type.
5506         * par-ch2.adb (P_Interpolated_String_Literal): New subprogram.
5507         * par-ch4.adb (P_Simple_Expression): Handle '}' as expression
5508         terminator when scanning an interpolated expression; disable error
5509         recovery machinery for binary operator when we are processing an
5510         interpolated string literal and reach the expression terminator
5511         '}'.
5512         (P_Primary): Call P_Interpolated_String_Literal when the opening
5513         interpolated-string-literal delimiter is found (that is, the left
5514         curly bracket '{').
5515         * par-tchk.adb (T_Right_Curly_Bracket): New subprogram.
5516         * par.adb (P_Interpolated_String_Literal): New declaration.
5517         (T_Right_Curly_Bracket): New declaration.
5518         * sem.adb (Analyze): Call Analyze_Interpolated_String_Literal.
5519         * sem_ch2.ads (Analyze_Interpolated_String_Literal): New
5520         subprogram
5521         * sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise.
5522         * sem_util.adb (Is_User_Defined_Literal): Complete mapping of
5523         literal aspects adding that interpolated string literals have no
5524         correspondence with any aspect.
5525         * sem_res.adb (Resolve_Interpolated_String_Literal): New
5526         subprogram.
5527         (Has_Applicable_User_Defined_Literal): Complete mapping of literal
5528         aspects adding that interpolated string literals have no
5529         correspondency with any aspect.
5530         * expander.adb (Expand): Add call to
5531         Expand_N_Interpolated_String_Literal.
5532         * exp_util.adb (Insert_Actions): Handle
5533         N_Interpolated_String_Literal nodes; that is, continue climbing.
5534         * exp_ch2.ads (Expand_N_Interpolated_String_Literal): New
5535         subprogram.
5536         * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise.
5537         * exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing
5538         conversion to force dispatching call. Required to handle calls to
5539         descendants.
5540         (Build_String_Put_Image_Call): Do not output string delimiters
5541         when the put_image call is part of an interpolated string literal.
5542         * rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces.
5543         * sprint.adb (Sprint_Node): Output interpolated string contents.
5544         * libgnat/a-stbubo.adb (Get_UTF_8): Add default value for
5545         Trim_Leading_White_Spaces component in aggregate.
5546         (Buffer_Type_Implementation): Update Trim_Leading_White_Spaces.
5547         * libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
5548         (Buffer_Type_Implementation): Likewise.
5549         * libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram.
5550         (Trim_Leading_Spaces): New subprogram.
5551         (Root_Buffer_Type): Adding Trim_Leading_While_Spaces component.
5552         * libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New
5553         subprogram.
5554         (Trim_Leading_Space): New subprogram.
5555         (Put_UTF_8): Handle Trim_Leading_White_Spaces.
5556         (New_Line): Likewise.
5557         * libgnat/s-putima.ads (Put_Image_String): Adding formal
5558         (with_delimiters).
5559         (Put_Image_Wide_String): Likewise.
5560         (Put_Image_Wide_Wide_String): Likewise.
5561         * libgnat/s-putima.adb (Put_Image_String): Adding support for new
5562         formal.
5563         (Put_Image_Wide_String): Likewise.
5564         (Put_Image_Wide_Wide_String): Likewise.
5566 2023-01-05  Joao Azevedo  <azevedo@adacore.com>
5568         * doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout
5569         switch and update legacy switches.
5571 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5573         * freeze.adb (Freeze_Entity): For the purpose of deciding whether to
5574         freeze an entity coming from an outer scope in an inner scope, treat
5575         the internal subprogram generated because of post-conditions as also
5576         coming from source if the original subprogram itself does.
5578 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5580         * contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an
5581         extended return statement in all cases.
5582         (Expand_Subprogram_Contract): Adjust comment.
5584 2023-01-05  Ronan Desplanques  <desplanques@adacore.com>
5586         * libgnat/g-forstr.adb (F_Kind): Rename enumeration literal.
5587         (P_Flt_Format): Adjust handling of "%g".
5588         (Determine_Notation_And_Aft): New procedure.
5589         (Decimal_Exponent): New function.
5590         (Increment_Integral_Part): New procedure.
5591         (Remove_Extraneous_Decimal_Digit): New procedure.
5592         (Trim_Fractional_Part): New procedure.
5593         * libgnat/g-forstr.ads: Change description of "%g" specifier.
5595 2023-01-05  Marc Poulhiès  <poulhies@adacore.com>
5597         * sem_ch12.adb (Instantiate_Package_Body): Correctly find the
5598         parent instance to place on the scope stack.
5600 2023-01-05  Justin Squirek  <squirek@adacore.com>
5602         * sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually
5603         resetting the entity field of a non-prefixed discriminant
5604         reference.
5606 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5608         * exp_ch3.adb (Expand_N_Object_Declaration): New local variable used
5609         throughout instead of testing Is_Special_Return_Object every time.
5610         Do not rename an OK_To_Rename object for a special return object.
5611         * exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation
5612         if the result is allocated on the secondary stack.
5614 2023-01-05  Steve Baird  <baird@adacore.com>
5616         * sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma
5617         function to handle case where the pragma's parent is an
5618         N_Aspect_Specification node. In analyzing a Discard_Names pragma,
5619         do not assume that a nonzero number of arguments implies that the
5620         pragma is not a configuration pragma; that assumption only holds
5621         for legal programs.
5623 2023-01-05  Bob Duff  <duff@adacore.com>
5625         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
5626         Add RM references.
5627         * gnat_ugn.texi: Regenerate.
5629 2023-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5631         * exp_ch3.adb (Expand_N_Object_Declaration): For a special return
5632         object of an interface type that is not inherently limited, make
5633         a call to the Adjust primitive after doing the copy.  For a special
5634         return object of a non-class-wide type initialized by a function
5635         call, use a direct renaming only if the object doing the capture
5636         is flagged by Is_Related_To_Func_Return.  For a special return
5637         object using a direct renaming, reassign the tag, if need be.
5638         * exp_ch6.adb (Expand_Simple_Function_Return): Fix comment.
5639         * exp_util.adb (Is_Related_To_Func_Return): Accept both regular and
5640         renaming object declarations for return objects.
5642 2023-01-05  Bob Duff  <duff@adacore.com>
5644         * sem_ch5.adb (Analyze_Assignment): Fix the bug by checking
5645         Original_Node. The renaming might be elsewhere, but the (original)
5646         reference is right here.
5647         * errout.adb: Remove pragma Unreferenced which was added because
5648         of the above bug.
5649         * einfo.ads: Misc cleanup.
5650         * lib.adb: Likewise.
5651         * lib.ads: Likewise.
5653 2023-01-03  Ghjuvan Lacambre  <lacambre@adacore.com>
5655         * errout.adb (Write_JSON_Span): Escape subprogram name.
5657 2023-01-03  Ghjuvan Lacambre  <lacambre@adacore.com>
5659         * output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol.
5661 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
5663         * libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling.
5665 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
5667         * libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug.
5669 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5671         * exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a
5672         captured function call also verifies Is_Related_To_Func_Return.
5673         Do not generate an actual subtype for special return objects.
5674         * exp_util.ads (Is_Related_To_Func_Return): Add commentary.
5676 2023-01-03  Ronan Desplanques  <desplanques@adacore.com>
5678         * libgnat/g-forstr.adb
5679         (Advance_And_Accumulate_Until_Next_Specifier): New procedure.
5680         ("-"): Replace inline code with call to
5681         Advance_And_Accumulate_Until_Next_Specifier.
5682         (Next_Format): likewise.
5684 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5686         * checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference):
5687         Return false for artificial dereferences generated by the expander.
5689 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5691         * exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment.
5692         * sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref
5693         on functions with foreign convention.
5695 2023-01-03  Marc Poulhiès  <poulhies@adacore.com>
5697         * exp_aggr.adb (Build_Assignment_With_Temporary): New.
5698         (Expand_Array_Aggregate): Tune backend optimization
5699         and insert a temporary in the case of an access with
5700         Designated_Storage_Model aspect.
5701         (Convert_Array_Aggr_In_Allocator): Likewise.
5703 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5705         * sem_res.adb (Resolve_Membership_Op): Adjust again latest change.
5707 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5709         * sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment.
5710         * sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return
5711         false for more artificial dereferences generated by the expander.
5712         (Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally
5713         in -gnatD mode.
5714         * exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the
5715         Is_Aliased flag.
5717 2023-01-03  Joel Brobecker  <brobecker@adacore.com>
5719         * doc/gnat_ugn/platform_specific_information.rst
5720         (_Platform_Specific_Information): Minor rewording of intro text.
5721         * gnat_ugn.texi: Regenerate.
5723 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5725         * exp_util.ads (Is_Captured_Function_Call): Declare.
5726         * exp_util.adb (Is_Captured_Function_Call): New predicate.
5727         * exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a
5728         rewritten function call as the initializing expression.
5729         * exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a
5730         rewritten function call as the returned expression.
5732 2023-01-03  Bob Duff  <duff@adacore.com>
5734         * exp_util.adb (Integer_Type_For): Assertion and comment.
5735         (Small_Integer_Type_For): Remove some code and call
5736         Integer_Type_For instead.
5737         * sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..."
5738         seems overly pedantic here.
5739         * exp_attr.adb (Succ, Pred): Clean up: make the code as similar as
5740         possible.
5741         * exp_ch4.adb: Minor: named notation.
5743 2023-01-03  Javier Miranda  <miranda@adacore.com>
5745         * ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may
5746         appear within the class-wide precondition of a helper subprogram.
5747         This context is treated as suitable because it was already
5748         verified when we were analyzing the original class-wide
5749         precondition.
5751 2023-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5753         * exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the
5754         ancestor type for a derived array type.
5755         * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the
5756         common processing done on representation items.
5757         For Default_Component_Value and Default_Value, look into the first
5758         subtype to find out the representation items.
5760 2023-01-02  Iain Sandoe  <iain@sandoe.co.uk>
5762         PR ada/108202
5763         * gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS):
5764         Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and
5765         -static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered
5766         out for other hosts).
5768 2023-01-02  Jakub Jelinek  <jakub@redhat.com>
5770         * gnat_ugn.texi: Bump @copying's copyright year.
5771         * gnat_rm.texi: Likewise.
5774 Copyright (C) 2023 Free Software Foundation, Inc.
5776 Copying and distribution of this file, with or without modification,
5777 are permitted in any medium without royalty provided the copyright
5778 notice and this notice are preserved.