Daily bump.
[official-gcc.git] / gcc / ada / ChangeLog
blob44afa74bea975d23321a21e10205c9aca9981e66
1 2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>
3         PR other/102663
4         * gcc-interface/Make-lang.in: Allow dvi-formatted
5         documentation to be installed.
7 2021-10-20  Bob Duff  <duff@adacore.com>
9         * gcc-interface/decl.c (gnat_to_gnu_entity): Remove unnecessary
10         call to No_Uint_To_0.
12 2021-10-20  Richard Kenner  <kenner@adacore.com>
14         * exp_unst.adb (Visit_Node, when N_Subprogram_Call): Never treat
15         instrinsic subprograms as nested.
17 2021-10-20  Yannick Moy  <moy@adacore.com>
19         * libgnat/s-widlllu.ads: Mark in SPARK.
20         * libgnat/s-widllu.ads: Likewise.
21         * libgnat/s-widuns.ads: Likewise.
22         * libgnat/s-widthu.adb: Add ghost code and a
23         pseudo-postcondition.
25 2021-10-20  Yannick Moy  <moy@adacore.com>
27         * libgnat/a-nbnbin__ghost.adb (Signed_Conversions,
28         Unsigned_Conversions): Mark subprograms as not imported.
29         * libgnat/a-nbnbin__ghost.ads: Provide a dummy body.
31 2021-10-20  Eric Botcazou  <ebotcazou@adacore.com>
33         * sem_eval.adb (Eval_Type_Conversion): If the target subtype is
34         a static floating-point subtype and the result is a real literal,
35         consider its machine-rounded value to raise Constraint_Error.
36         (Test_In_Range): Turn local variables into constants.
38 2021-10-20  Doug Rupp  <rupp@adacore.com>
40         * libgnat/g-io-put__vxworks.adb: Remove (unused)
41         * libgnat/s-parame__ae653.ads: Likewise.
42         * libgnat/s-thread.ads: Likewise.
43         * libgnat/s-thread__ae653.adb: Likewise.
45 2021-10-20  Eric Botcazou  <ebotcazou@adacore.com>
47         * sem_eval.ads (Machine_Number): New inline function.
48         * sem_eval.adb (Machine_Number): New function body implementing
49         the machine rounding operation specified by RM 4.9(38/2).
50         (Check_Non_Static_Context): Call Machine_Number and set the
51         Is_Machine_Number flag consistently on the resulting node.
52         * sem_attr.adb (Eval_Attribute) <Attribute_Machine>: Likewise.
53         * checks.adb (Apply_Float_Conversion_Check): Call Machine_Number.
54         (Round_Machine): Likewise.
56 2021-10-20  Johannes Kliemann  <kliemann@adacore.com>
58         * vxworks7-cert-rtp-link.spec: Add the definition of
59         __wrs_rtp_base.
61 2021-10-20  Piotr Trojanek  <trojanek@adacore.com>
63         * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject boxes in
64         record delta aggregates.
66 2021-10-20  Justin Squirek  <squirek@adacore.com>
68         * sem_ch6.adb (Check_Return_Construct_Accessibility): Modify
69         generation of accessibility checks to be more consolidated and
70         get triggered properly in required cases.
71         * sem_util.adb (Accessibility_Level): Add extra check within
72         condition to handle aliased formals properly in more cases.
74 2021-10-20  Justin Squirek  <squirek@adacore.com>
76         * exp_ch7.adb (Make_Final_Call): Detect expanded protected types
77         and use original protected type in order to calculate
78         appropriate finalization routine.
80 2021-10-20  Johannes Kliemann  <kliemann@adacore.com>
82         * libgnat/a-nbnbin__ghost.ads: Add ghost package.
84 2021-10-20  Piotr Trojanek  <trojanek@adacore.com>
86         * sem_aggr.adb (Variant_Depth): Refine type from Integer to
87         Natural.
89 2021-10-20  Bob Duff  <duff@adacore.com>
91         * atree.ads: Comment improvements. How is a "completely new
92         node" different from a "new node"? Document default values
93         corresponding to field types.
94         * exp_ch7.adb (Process_Tagged_Type_Declaration): Use
95         higher-level Scope_Depth instead of Scope_Depth_Value.  Remove
96         confusing comment: not clear what a "true" library level package
97         is.
98         * uintp.adb (Image_Out): Print No_Uint in a more readable way.
99         * gen_il-gen.adb, gen_il-gen-gen_entities.adb,
100         gen_il-gen-gen_nodes.adb, gen_il-types.ads: Tighten up the
101         subtypes of fields whose type is Uint, where possible; use
102         more-constrained subtypes such as Unat.
103         * einfo-utils.adb, einfo-utils.ads, exp_attr.adb,
104         exp_ch3.adb, exp_intr.adb, exp_unst.adb, exp_util.adb,
105         freeze.adb, repinfo.adb, sem.adb, sem_ch12.adb, sem_ch13.adb,
106         sem_ch3.adb, sem_ch8.adb, sem_util.adb, sprint.adb, treepr.adb:
107         No longer use Uint_0 to indicate "unknown" or "not yet known"
108         for various fields whose type is Uint. Use No_Uint for that,
109         except in a small number of legacy cases that cause test
110         failures. Protect many queries of such fields with calls to
111         Known_... functions. Improve comments.
112         * exp_aggr.adb: Likewise.
113         (Is_OK_Aggregate): Check whether Csiz is present.
114         (Aggr_Assignment_OK_For_Backend): Ensure we do not access an
115         uninitialized size.
116         * exp_strm.adb (Build_Elementary_Input_Call,
117         Build_Elementary_Write_Call): Check whether P_Size is present.
118         * cstand.adb: Leave Component_Size of Any_Composite unknown.
119         Similar for RM_Size of Standard_Exception_Type.  These should
120         not be used.
121         * einfo.ads: Comment improvements.
122         * exp_disp.ads: Minor.
123         * gen_il-internals.ads, gen_il-internals.adb: Minor.
124         * sinfo-utils.adb: Take advantage of full-coverage rules.
125         * types.h: Minor.
127 2021-10-20  Gary Dismukes  <dismukes@adacore.com>
129         * sem_ch6.adb: Add with and use of Warnsw.
130         (Check_Conformance): Report a warning when subtypes or
131         designated subtypes of formal parameters or result subtypes
132         denote different declarations between the spec and body of the
133         (Subprogram_Subtypes_Have_Same_Declaration): New function nested
134         within Check_Conformance that determines whether two subtype
135         entities referenced in a subprogram come from the same
136         declaration. Returns True immediately if the subprogram is in a
137         generic instantiation, or the subprogram is marked Is_Internal
138         or is declared in an internal (GNAT library) unit, or GNAT_Mode
139         is enabled, otherwise compares the nonlimited views of the
140         entities (or their designated subtypes' nonlimited views in the
141         anonymous access cases).
142         (Nonlimited_View_Of_Subtype): New function nested within
143         function Subprogram_Subtypes_Have_Same_Declaration that returns
144         Non_Limited_View of a type or subtype that is an incomplete or
145         class-wide type that comes from a limited of a
146         package (From_Limited_With is True for the entity), or returns
147         Full_View when the nonlimited view is an incomplete type.
148         Otherwise returns the entity passed in.
149         * warnsw.ads (Warn_On_Pedantic_Checks): New warning flag.
150         (type Warning_Record): New component Warn_On_Pedantic_Checks.
151         * warnsw.adb (All_Warnings): Set Warn_On_Pedantic_Checks from
152         parameter Setting.
153         (Restore_Warnings): Restore the value of the
154         Warn_On_Pedantic_Checks flag.
155         (Save_Warnings): Save the value of the Warn_On_Pedantic_Checks
156         flag.
157         (Set_Underscore_Warning_Switch): Add settings of the
158         Warn_On_Pedantic flag according to the switch ("-gnatw_p" vs.
159         "-gnatw_P").
160         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
161         documentation of new switches -gnatw_p and -gnatw_P (warnings
162         for pedantic checks).
163         * gnat_ugn.texi: Regenerate.
164         * usage.adb: Add Warn_On_Pedantic_Checks.
166 2021-10-20  Piotr Trojanek  <trojanek@adacore.com>
168         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Guard
169         against equality of an uninitialized RM_Size field.
171 2021-10-20  Eric Botcazou  <ebotcazou@adacore.com>
173         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Also propagate an
174         interface name on an intrinsic subprogram.  Remove obsolete comment.
175         * libgnat/s-atopri.ads (Atomic_Load): New generic intrinsic function
176         (Atomic_Load_8): Rewrite into instantiation.
177         (Atomic_Load_16): Likewise.
178         (Atomic_Load_32): Likewise.
179         (Atomic_Load_64): Likewise.
180         (Sync_Compare_And_Swap): New generic intrinsic function.
181         (Sync_Compare_And_Swap_8): Rewrite into instantiation.
182         (Sync_Compare_And_Swap_16): Likewise.
183         (Sync_Compare_And_Swap_32): Likewise.
184         (Sync_Compare_And_Swap_64): Likewise.
185         (Lock_Free_Read): New generic inline function.
186         (Lock_Free_Read_8): Rewrite into instantiation.
187         (Lock_Free_Read_16): Likewise.
188         (Lock_Free_Read_32): Likewise.
189         (Lock_Free_Read_64): Likewise.
190         (Lock_Free_Try_Write): New generic inline function.
191         (Lock_Free_Try_Write_8): Rewrite into instantiation.
192         (Lock_Free_Try_Write_16): Likewise.
193         (Lock_Free_Try_Write_32): Likewise.
194         (Lock_Free_Try_Write_64): Likewise.
195         * libgnat/s-atopri.adb (Lock_Free_Read): New function body.
196         (Lock_Free_Read_8): Delete.
197         (Lock_Free_Read_16): Likewise.
198         (Lock_Free_Read_32): Likewise.
199         (Lock_Free_Read_64): Likewise.
200         (Lock_Free_Try_Write): New function body.
201         (Lock_Free_Try_Write_8): Delete.
202         (Lock_Free_Try_Write_16): Likewise.
203         (Lock_Free_Try_Write_32): Likewise.
204         (Lock_Free_Try_Write_64): Likewise.
205         * libgnat/s-aoinar.adb (Atomic_Fetch_And_Add): Use type-generic GCC
206         atomic builtin and tidy up implementation.
207         (Atomic_Fetch_And_Subtract): Likewise.
208         * libgnat/s-aomoar.adb (Atomic_Fetch_And_Add): Likewise.
209         (Atomic_Fetch_And_Subtract): Likewise.
210         * libgnat/s-atopex.adb (Atomic_Exchange): Likewise.
211         (Atomic_Compare_And_Exchange): Likewise.
213 2021-10-20  Eric Botcazou  <ebotcazou@adacore.com>
215         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>:
216         Replace test on Convention_Intrinsic with Is_Intrinsic_Subprogram.
217         (gnat_to_gnu_param): Likewise.
218         (gnat_to_gnu_subprog_type): Likewise.
219         * gcc-interface/trans.c (elaborate_all_entities_for_package): Ditto.
221 2021-10-20  Eric Botcazou  <ebotcazou@adacore.com>
223         * sem_eval.ads (Check_Non_Static_Context): Update documentation.
224         * sem_eval.adb (In_Any_Integer_Context): Change parameter type,
225         adjust accordingly and remove unreachable case.
226         (Eval_Integer_Literal): Consider the node kind throughout and
227         trim down verbose condition.
229 2021-10-20  Doug Rupp  <rupp@adacore.com>
231         * Makefile.rtl: Remove references to system-vxworks-ppc.ads
232         and system-vxworks-x86.ads.
233         * libgnat/system-vxworks-ppc.ads: Remove.
234         * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
235         * libgnat/system-vxworks-x86.ads: Likewise.
237 2021-10-20  Yannick Moy  <moy@adacore.com>
239         * sem_ch4.adb (Analyze_QUantified_Expression): Issue warning on
240         conjunct/disjunct sub-expression of the full expression inside a
241         quantified expression, when it does not reference the quantified
242         variable.
244 2021-10-20  Marc Poulhiès  <poulhies@adacore.com>
246         * checks.adb (Insert_Valid_Check): in case of checked type
247         conversion, update Typ to match Exp's type and add call to
248         Analyze_And_Resolve.
250 2021-10-20  Arnaud Charlet  <charlet@adacore.com>
252         PR ada/100486
253         * sem_prag.adb (Check_Valid_Library_Unit_Pragma): Do not raise an
254         exception as part of the bootstrap.
256 2021-10-15  Richard Biener  <rguenther@suse.de>
258         * gcc-interface/misc.c (gnat_post_options): Do not warn
259         about DBX_DEBUG use here.
261 2021-10-14  Alexandre Oliva  <oliva@adacore.com>
263         * par-ch10.adb (P_Compilation_Unit): Reenable ada83 library
264         unit renaming test and error.
266 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
268         * gcc-interface/gigi.h (resolve_atomic_size): Declare.
269         (list_third): New inline function.
270         * gcc-interface/decl.c (type_for_atomic_builtin_p): New function.
271         (resolve_atomic_builtin): Likewise.
272         (gnat_to_gnu_subprog_type): Perform type resolution for most of
273         type-generic GCC atomic builtins and give an error for the rest.
274         * gcc-interface/utils2.c (resolve_atomic_size): Make public.
276 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
278         * gcc-interface/trans.c (gnat_to_gnu) <N_Pop_Constraint_Error_Label>:
279         Given the warning only if No_Exception_Propagation is active.
280         <N_Pop_Storage_Error_Label>: Likewise.
281         <N_Pop_Program_Error_Label>: Likewise.
283 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
285         * gcc-interface/decl.c (promote_object_alignment): Add GNU_SIZE
286         parameter and use it for the size of the object if not null.
287         (gnat_to_gnu_entity) <E_Variable>: Perform the automatic alignment
288         promotion for objects whose nominal subtype is of variable size.
289         (gnat_to_gnu_field): Adjust call to promote_object_alignment.
291 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
293         * gcc-interface/decl.c (gnat_to_gnu_param): Strip padding types
294         only if the size does not change in the process.  Rename local
295         variable and add bypass for initialization procedures.
297 2021-10-11  Doug Rupp  <rupp@adacore.com>
299         * libgnat/s-thread.ads: Fix comments.  Remove unused package
300         imports.
301         (Thread_Body_Exception_Exit): Remove Exception_Occurrence
302         parameter.
303         (ATSD): Declare type locally.
304         * libgnat/s-thread__ae653.adb: Fix comments.  Remove unused
305         package imports.  Remove package references to Stack_Limit
306         checking.
307         (Install_Handler): Remove.
308         (Set_Sec_Stack): Likewise.
309         (Thread_Body_Enter): Remove calls to Install_Handler and
310         Stack_Limit checking.
311         (Thread_Body_Exception_Exit): Remove Exception_Occurrence
312         parameter.
313         (Init_RTS): Call local Get_Sec_Stack.  Remove call to
314         Install_Handler.  Remove references to accessors for
315         Get_Sec_Stack and Set_Sec_Stack.  Remove OS check.
316         (Set_Sec_Stack): Remove.
318 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
320         * exp_ch3.adb (Make_Predefined_Primitive_Specs,
321         Predefined_Primitive_Bodies): Remove guard with restriction
322         No_Dispatching_Calls.
324 2021-10-11  Steve Baird  <baird@adacore.com>
326         * sem_attr.adb (Analyze_Attribute_Old_Result): Permit an
327         attribute reference inside a compiler-generated _Postconditions
328         procedure. In this case, Subp_Decl is assigned the declaration
329         of the enclosing subprogram.
330         * exp_util.adb (Insert_Actions): When climbing up the tree
331         looking for an insertion point, do not climb past an
332         N_Iterated_Component/Element_Association, since this could
333         result in inserting a reference to a loop parameter at a
334         location outside of the scope of that loop parameter. On the
335         other hand, be careful to preserve existing behavior in the case
336         of an N_Component_Association node.
338 2021-10-11  Steve Baird  <baird@adacore.com>
340         * exp_ch6.adb (Can_Fold_Predicate_Call): Do not attempt folding
341         if there is more than one predicate involved. Recall that
342         predicate aspect specification are additive, not overriding, and
343         that there are three different predicate
344         aspects (Dynamic_Predicate, Static_Predicate, and the
345         GNAT-defined Predicate aspect). These various ways of
346         introducing multiple predicates are all checked for.  A new
347         nested function, Augments_Other_Dynamic_Predicate, is
348         introduced.
349         * sem_ch4.adb
350         (Analyze_Indexed_Component_Form.Process_Function_Call): When
351         determining whether a name like "X (Some_Discrete_Type)" might
352         be interpreted as a slice, the answer should be "no" if the
353         type/subtype name denotes the current instance of type/subtype.
355 2021-10-11  Patrick Bernardi  <bernardi@adacore.com>
357         * libgnarl/s-osinte__rtems.ads: Change sigset_t to an unsigned
358         long.
360 2021-10-11  Patrick Bernardi  <bernardi@adacore.com>
362         * libgnat/s-parame__rtems.adb: use
363         _POSIX_Threads_Minimum_stack_size instead of
364         ada_pthread_minimum_stack_size.
366 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
368         * fe.h (No_Exception_Propagation_Active): Declare.
369         * restrict.ads (No_Exception_Propagation_Active): Add WARNING line.
371 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
373         * sem_ch13.adb (Validate_Unchecked_Conversion): Simplify code
374         for detecting conversions with Ada.Calendar.Time type and extend
375         it to similar types in the Ada.Real_Time package.
377 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
379         * sem_ch10.adb, sem_prag.adb, sem_util.adb: Use
380         N_Generic_Declaration in membership tests.
382 2021-10-11  Etienne Servais  <servais@adacore.com>
384         * ali.adb (Get_Name): Ignore_Spaces is always False.
385         * bindo-graphs.adb (Set_Is_Existing_Source_Target_Relation): Val
386         is always True.
387         * cstand.adb (New_Standard_Entity): New_Node_Kind is always
388         N_Defininig_Identifier.
389         * exp_ch3.adb (Predef_Stream_Attr_Spec): For_Body is always
390         False.
391         * exp_dist.adb (Add_Parameter_To_NVList): RACW_Ctrl is always
392         False.
393         * gnatls.adb (Add_Directories): Prepend is always False.
394         * sem_ch10.adb, sem_ch10.ads (Load_Needed_Body): Do_Analyze is
395         always True.
396         * sem_ch3.adb, sem_ch3.ads (Process_Range_Expr_In_Decl):
397         R_Check_Off is always False.
398         * sem_elab.adb: (Info_Variable_Reference): Info_Msg is always
399         False, In_SPARK is always True.
400         (Set_Is_Traversed_Body, Set_Is_Saved_Construct,
401         Set_Is_Saved_Relation): Val is always True.
402         * treepr.adb (Visit_Descendant): No_Indent is always False.
403         (Print_Node): Fmt does not need such a big scope.
405 2021-10-11  Etienne Servais  <servais@adacore.com>
407         * sem_ch4.adb (Analyze_Membership_Op): Finds interpretation for
408         the case of a membership test with a singleton value in case of
409         overloading.
411 2021-10-11  Patrick Bernardi  <bernardi@adacore.com>
413         * Makefile.rtl (VxWorks): Rename s-inmaop__vxworks.adb to
414         s-inmaop__hwint.adb.
415         (RTEMS): Use s-inmaop__hwint.adb, s-intman__rtems.adb/s,
416         s-taprop__rtems.adb.
417         * libgnarl/a-intnam__rtems.ads: Remove signals definitions and
418         replace with Hardware_Interrupts.
419         * libgnarl/s-inmaop__vxworks.adb: Rename as...
420         * libgnarl/s-inmaop__hwint.adb: ... this.
421         * libgnarl/s-interr__hwint.adb: Remove unnecessary comments.
422         * libgnarl/s-intman__rtems.ads, libgnarl/s-intman__rtems.adb:
423         New files.
424         * libgnarl/s-osinte__rtems.adb: Add RTEMS API bindings.
425         (Binary_Semaphore_Create, Binary_Semaphore_Delete,
426         Binary_Semaphore_Obtain, Binary_Semaphore_Release,
427         Binary_Semaphore_Flush, Interrupt_Connect,
428         Interrupt_Number_To_Vector): New functions.
429         * libgnarl/s-osinte__rtems.ads (Num_HW_Interrupts, Signal):
430         Removed.
431         (NSIG, Interrupt_Range): New.
432         (Binary_Semaphore_Create, Binary_Semaphore_Delete,
433         Binary_Semaphore_Obtain, Binary_Semaphore_Release,
434         Binary_Semaphore_Flush, Interrupt_Connect,
435         Interrupt_Number_To_Vector): Remove Import pragma.
436         * libgnarl/s-taprop__rtems.adb: New file.
438 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
440         * exp_fixd.adb (Get_Size_For_Value): New function returning a size
441         suitable for a non-negative integer value.
442         (Get_Type_For_Size): New function returning a standard type suitable
443         for a size.
444         (Build_Divide): Call both functions to compute the result type, but
445         make sure to pass a non-negative value to the first.
446         (Build_Multiply): Likewise.
447         (Do_Multiply_Fixed_Universal): Minor consistency tweak.
448         (Integer_Literal): Call both functions to compute the type.
450 2021-10-11  Etienne Servais  <servais@adacore.com>
452         * sem_ch4.adb (Analyze_Membership_Op): Reorder subprogram spec
453         and bodies in alphabetical order.
455 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
457         * exp_util.adb (Build_Class_Wide_Expression): Replace entities
458         of both simple and extended names.
460 2021-10-11  Ghjuvan Lacambre  <lacambre@adacore.com>
462         * libgnarl/s-intman__android.adb, libgnarl/s-intman__lynxos.adb,
463         libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb,
464         libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb,
465         libgnarl/s-taprob.adb, libgnarl/s-taprop__hpux-dce.adb,
466         libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
467         libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
468         libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
469         libgnarl/s-taskin.adb, libgnarl/s-tasque.adb,
470         libgnarl/s-tpoben.adb, libgnat/a-calend.adb,
471         libgnat/a-excach.adb, libgnat/a-except.adb, libgnat/a-tags.adb,
472         libgnat/a-textio.adb, libgnat/a-witeio.adb,
473         libgnat/a-ztexio.adb, libgnat/g-binenv.adb,
474         libgnat/s-parame.adb, libgnat/s-parame__vxworks.adb,
475         libgnat/s-stratt.adb, libgnat/s-trasym__dwarf.adb: Mark imported
476         binder globals as constant.
478 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
480         * exp_aggr.adb (Initialize_Record_Component): Add assertion
481         about one of the parameters, so that illegal attempts to
482         initialize record components with Empty node are detected early
483         on.
484         (Build_Record_Aggr_Code): Handle boxes in aggregate component
485         associations just the components with no initialization in
486         Build_Record_Init_Proc.
487         * sem_aggr.adb (Resolve_Record_Aggregate): For components that
488         require simple initialization carry boxes from resolution to
489         expansion.
490         * sem_util.adb (Needs_Simple_Initialization): Remove redundant
491         paren.
493 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
495         * exp_ch3.adb (Build_Init_Statements): Simplify detection of
496         concurrent record types.
498 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
500         * exp_aggr.adb (Is_Delayed_Aggregate): Simplify.
502 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
504         * exp_aggr.adb (Has_Default_Init_Comps): Simplify.
506 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
508         * exp_aggr.adb (Component_OK_For_Backend): Remove redundant
509         guard.
511 2021-10-11  Patrick Bernardi  <bernardi@adacore.com>
513         * Makefile.rtl (RTEMS): Add s-stchop.o to
514         EXTRA_GNATRTL_NONTASKING_OBJS, remove s-stchop__rtems.adb.
515         * libgnat/s-stchop__rtems.adb: Removed.
517 2021-10-11  Marc Poulhiès  <poulhies@adacore.com>
519         * expander.adb (Expand): Skip clearing of Analyzed flag if
520         already set for N_Real_Literal.
522 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
524         * sem_util.adb (Compile_Time_Constraint_Error): Simplify getting
525         the type of the first formal parameter.
527 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
529         * exp_util.adb (Inside_Init_Proc): Simplify.
530         * sem_aggr.adb (Resolve_Record_Aggregate): Fix style.
531         * sem_util.adb (Compile_Time_Constraint_Error): Guard against
532         calling Corresponding_Concurrent_Type with an array type entity.
534 2021-10-11  Doug Rupp  <rupp@adacore.com>
536         * libgnat/s-parame__ae653.ads (time_t_bits): Change to
537         Long_Long_Integer'Size.  Add some comments to explain.
539 2021-10-08  Martin Liska  <mliska@suse.cz>
541         * gcc-interface/misc.c (gnat_post_options): Use new macro
542         OPTION_SET_P.
543         (gnat_init_gcc_eh): Likewise.
544         (gnat_init_gcc_fp): Likewise.
546 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
548         * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values
549         referenced in pragmas.
551 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
553         * gcc-interface/trans.c (Subprogram_Body_to_gnu): Do not set the
554         DECL_DISREGARD_INLINE_LIMITS flag if -gnatd.8 is specified.
556 2021-10-05  Bob Duff  <duff@adacore.com>
558         * gcc-interface/trans.c (set_end_locus_from_node): Check that
559         Handled_Statement_Sequence is not Empty before calling
560         End_Label, because the Empty node has no End_Label, and
561         depending on the exact node layout chosen by gen_il, calling
562         End_Label might crash, or might work OK by accident.
564 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
566         * gcc-interface/cuintp.c: Adjust placement of include directive.
567         * gcc-interface/targtyps.c: Likewise.
569 2021-10-05  Alexandre Oliva  <oliva@adacore.com>
571         * doc/gnat_rm.rst: Add...
572         * doc/gnat_rm/security_hardening_features.rst: New.
573         * doc/gnat_rm/about_this_guide.rst: Link to new chapter.
574         * gnat_rm.texi: Regenerate.
575         * gcc-interface/utils.c (handle_strub_attribute): New.
576         (gnat_internal_attribute_table): Add strub.
577         * libgnat/a-except.adb: Make Rcheck_CE_* strub-callable.
578         * libgnat/a-except.ads (Raise_Exception): Likewise.
579         (Raise_Exception_Always): Likewise.
580         * libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128):
581         Likewise.
582         * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64):
583         Likewise.
584         * libgnat/s-secsta.ads (SS_Allocate, SS_Mark, SS_Release):
585         Likewise.
587 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
589         * exp_ch9.adb (Install_Private_Data_Declarations): Copy the Sloc of
590         components for the local renamings as well as the Comes_From_Source
591         flag, and also set Warnings_Off on them.  Use Nam local variable.
593 2021-10-05  Arnaud Charlet  <charlet@adacore.com>
595         * libgnarl/a-tasini.ads (Set_Initialization_Handler): Update
596         comments.
598 2021-10-05  Corentin Gay  <gay@adacore.com>
600         * init.c (QNX): Add #include errno.h.
602 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
604         * exp_attr.adb (Expand_Fpt_Attribute): Likewise.
605         * snames.ads-tmpl (Name_Unaligned_Valid): Delete.
607 2021-10-05  Etienne Servais  <servais@adacore.com>
609         * sem_prag.adb (Analyze_Pragma): Forbid use of
610         Compile_Time_(Error|Warning) as configuration pragma.
611         * doc/gnat_ugn/the_gnat_compilation_model.rst:
612         Compile_Time_(Error|Warning) and Compiler_Unit(_Warning) are not
613         configuration pragmas and shall not be listed as such.  The
614         following pragmas are either obsolete or undocumented:
615         No_Run_Time, Propagate_Exceptions, Rational, Ravenscar,
616         Restricted_Run_Time, Short_Descriptors, Universal_Data.  Fix
617         some typos (notably on Restriction_Warnings).
618         * doc/gnat_rm/implementation_defined_pragmas.rst: Move
619         Rename_Pragma documentation to alphabetical order.
620         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
622 2021-10-05  Corentin Gay  <gay@adacore.com>
624         * adaint.c (QNX): Add #include for sys/time.h.
626 2021-10-05  Pascal Obry  <obry@adacore.com>
628         * libgnat/g-forstr.adb (Next_Format): When there is no more
629         format specifier found issue a proper error message instead of
630         raising a contraint error.
632 2021-10-05  Pascal Obry  <obry@adacore.com>
634         * libgnat/g-forstr.adb (Get_Formatted): Fix computation of the
635         number of zero to use in the formatted string. This was a wrong
636         copy/paste.
638 2021-10-05  Pascal Obry  <obry@adacore.com>
640         * libgnat/g-forstr.adb (Get_Formatted): Minor code clean-up.
642 2021-10-05  Etienne Servais  <servais@adacore.com>
644         * libgnat/a-zchhan.ads, libgnat/a-zchhan.adb
645         (Character_Set_Version, Is_Basic, To_Basic): New.
646         * libgnat/a-zchuni.ads, libgnat/a-zchuni.adb (Is_Basic,
647         To_Basic): New.
649 2021-10-05  Yannick Moy  <moy@adacore.com>
651         * sem_aggr.adb (Resolve_Array_Aggregate): Improve error message.
653 2021-10-05  Gary Dismukes  <dismukes@adacore.com>
655         * aspects.ads (type Aspect_Id): Add
656         Aspect_Designated_Storage_Model and Aspect_Storage_Model_Type.
657         (Aspect_Argument): Add associations for the above new aspects.
658         (Is_Representation_Aspect): Likewise.
659         (Aspect_Names, Aspect_Delay): Likewise.
660         * exp_ch4.adb (Expand_N_Allocator): Call Find_Storage_Op rather
661         than Find_Prim_Op.
662         * exp_intr.adb (Expand_Unc_Deallocation): Likewise.
663         * exp_util.ads (Find_Storage_Op): New function that locates
664         either a primitive operation of a storage pool or an operation
665         of a storage-model type specified in its Storage_Model_Type
666         aspect.
667         * exp_util.adb (Find_Storage_Op): New function that calls either
668         Find_Prim_Op or Get_Storage_Model_Type_Entity to locate a
669         storage-related operation that is associated with a type.
670         * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Analyzes,
671         resolves, and validates the arguments of aspect
672         Designated_Storage_Model_Type.
673         (Analyze_Aspect_Specifications): Sets delay-related flags on
674         storage-model aspects when Delay_Required. Checks that aspect
675         Designated_Storage_Model is only specified for an access type
676         and that aspect Storage_Model_Type is only specified on an
677         immutably limited type. Also records such aspects for their
678         associated types.
679         (Check_Aspect_At_Freeze_Point): Resolve each of the argument
680         associations given for a Storage_Model_Type aspect.
681         (Resolve_Storage_Model_Type_Argument): New procedure that
682         resolves an argument given in the association for a given entity
683         name associated with a type with aspect Storage_Model_Type,
684         ensuring that it has the proper kind or profile.
685         (Validate_Storage_Model_Type_Aspect): New procedure that checks
686         the legality and completeness of the entity associations given
687         in a Storage_Model_Type aspect.
688         * sem_util.ads (package Storage_Model_Support): New nested
689         package that encapsulates a set of convenient utility functions
690         for retrieving entities, etc. associated with
691         storage-model-related types and objects.
692         (Get_Storage_Model_Type_Entity): New function to return a
693         specified entity associated with a type that has aspect
694         Storage_Model_Type.
695         (Has_Designated_Storage_Model_Aspect): New function that returns
696         whether a type has aspect Designated_Storage_Model.
697         (Has_Storage_Model_Type_Aspect): New function that returns
698         whether a type has aspect Storage_Model_Type.
699         (Storage_Model_Object): New function that returns the object
700         Entity_Id associated with a type's Designated_Storage_Model
701         aspect.
702         (Storage_Model_Type): New function that returns the type
703         associated with a storage-model object (when the object's type
704         specifies Storage_Model_Type).
705         (Storage_Model_Address_Type): New function that returns the
706         Address_Type associated with a type that has aspect
707         Storage_Model_Type.
708         (Storage_Model_Null_Address): New function that returns the
709         Null_Address constant associated with a type that has aspect
710         Storage_Model_Type.
711         (Storage_Model_Allocate): New function that returns the Allocate
712         procedure associated with a type that has aspect
713         Storage_Model_Type.
714         (Storage_Model_Deallocate): New function that returns the
715         Deallocate procedure associated with a type that has aspect
716         Storage_Model_Type.
717         (Storage_Model_Copy_From): New function that returns the
718         Copy_From procedure associated with a type that has aspect
719         Storage_Model_Type.
720         (Storage_Model_Copy_To): New function that returns the Copy_To
721         procedure associated with a type that has aspect
722         Storage_Model_Type.
723         (Storage_Model_Storage_Size): New function that returns the
724         Storage_Size function associated with a type that has aspect
725         Storage_Model_Type.
726         * sem_util.adb (package Storage_Model_Support): Body of new
727         nested package that contains the implementations the utility
728         functions declared in the spec of this package.
729         * snames.ads-tmpl: Add new names Name_Designated_Storage_Pool,
730         Name_Storage_Model, Name_Storage_Model_Type, Name_Address_Type,
731         Name_Copy_From, Name_Copy_To, and Name_Null_Address for the new
732         aspects and associated aspect arguments.
734 2021-10-05  Richard Kenner  <kenner@adacore.com>
736         * debug.adb: Add documentation for -gnatd_t.
738 2021-10-05  Corentin Gay  <gay@adacore.com>
740         * sysdep.c (__gnat_is_file_not_found_error): Add else if case.
742 2021-10-05  Piotr Trojanek  <trojanek@adacore.com>
744         * exp_util.adb (Build_Class_Wide_Expression): Replace entities
745         of both identifiers and operator symbols.
747 2021-10-05  Piotr Trojanek  <trojanek@adacore.com>
749         * sem_ch3.adb (Derive_Subprogram): Copy ghost status from parent
750         to derived subprogram.
752 2021-10-05  Joffrey Huguet  <huguet@adacore.com>
754         * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add
755         Default_Initial_Condition to Unbounded_String.
757 2021-10-05  Claire Dross  <dross@adacore.com>
759         * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable
760         contract cases at execution.
761         * libgnat/a-cfinve.ads: Idem.
762         * libgnat/a-cofove.ads: Idem.
763         * libgnat/a-cfhase.ads: Idem.
764         * libgnat/a-cfhama.ads: Idem.
765         * libgnat/a-cforse.ads: Idem.
766         * libgnat/a-cforma.ads: Idem.
768 2021-10-05  Bob Duff  <duff@adacore.com>
770         * par-ch4.adb (P_Iterated_Component_Association): Parse these
771         features the same way in all language versions.  Move the call
772         to Error_Msg_Ada_2022_Feature into semantic analysis.
773         * sem_aggr.adb (Resolve_Iterated_Component_Association,
774         Resolve_Iterated_Association): Move the call to
775         Error_Msg_Ada_2022_Feature here from par-ch4.adb.
777 2021-10-05  Yannick Moy  <moy@adacore.com>
779         * sem_res.adb (Resolve): Recognize specially that case.
781 2021-10-05  Yannick Moy  <moy@adacore.com>
783         * libgnat/a-strmap.adb: Add ghost code for proof.
784         (To_Range): This is the most involved proof, as it requires
785         creating the result of the call to To_Domain as a ghost
786         variable, and show the unicity of this result in order to prove
787         the postcondition.
788         * libgnat/a-strmap.ads: (SPARK_Proof_Sorted_Character_Sequence):
789         New ghost function.
790         (To_Domain): Add postcondition regarding sorting of result.
791         (To_Range): Fix postcondition that should compare Length instead
792         of Last for the results of To_Domain and To_Range, as the value
793         of Last for an empty result is not specified in the Ada RM.
795 2021-10-05  Yannick Moy  <moy@adacore.com>
797         * libgnat/a-chahan.adb: Add loop invariants as needed to prove
798         subprograms.  Also use extended return statements where
799         appropriate and not done already.  Mark data with
800         Relaxed_Initialization where needed for initialization by parts.
801         Convert regular functions to expression functions where needed
802         for proof.
803         * libgnat/a-chahan.ads: Add postconditions.
804         * libgnat/a-strmap.ads (Model): New ghost function to create a
805         publicly visible model of the private data Character_Mapping,
806         needed in order to prove subprograms in Ada.Characters.Handling.
808 2021-10-04  Justin Squirek  <squirek@adacore.com>
810         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
811         Add new entry for No_Dynamic_Accessibility_Checks documenting
812         behavior.
813         * gnat_rm.texi: Regenerate.
814         * exp_ch4.adb (Expand_N_In): Perform special expansion for
815         membership tests when No_Dynamic_Accessibility_Checks is active.
816         * sem_attr.adb (Resolve_Attribute): Skip static accessibility
817         check on actuals for anonymous access type formal parameters,
818         and add constants for readability.
819         * sem_util.adb (Function_Call_Or_Allocator_Level): Use the
820         innermost master for determining the level for function calls
821         within the alternative accessibility model.
822         (Type_Access_Level): Properly get the level for anonymous access
823         function result types.
825 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
827         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
828         (gnateA): This switch no longer looks at the formal parameter
829         type being composite (as originally mandated by SPARK), but in
830         the parameter passing mechanism being not specified (as
831         currently mandated by Ada).
832         * gnat_ugn.texi: Regenerate.
834 2021-10-04  Ed Schonberg  <schonberg@adacore.com>
836         * sem_ch6.adb (Analyze_Operator_Symbol): Recognize strings as
837         operator names when they are the value of one of the Ada2022
838         aspects for User_Defined_Literals.
839         * sem_ch13.adb (Analyze_One_Aspect): Handle an aspect value
840         given by an Operator_Name.
841         (Validate_Literal_Aspect): Call Analyze_Operator_Symbol when
842         needed.
844 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
846         * gen_il-gen.adb (Put_Make_Spec): Don't emit the LF character in
847         the middle of a string, because the Put routine won't indent it
848         properly.
850 2021-10-04  Ghjuvan Lacambre  <lacambre@adacore.com>
852         * gnat_cuda.adb (Remove_CUDA_Device_Entities): New function.
853         (Expand_CUDA_Package): Call Remove_CUDA_Device_Entities.
854         * gnat_cuda.ads (Expand_CUDA_Package): Expand documentation.
855         * sem_prag.adb (Analyze_Pragma): Remove warning about
856         CUDA_Device not being implemented.
858 2021-10-04  Gary Dismukes  <dismukes@adacore.com>
860         * sem_ch7.adb (Analyze_Package_Specification): For types marked
861         as Must_Have_Preelab_Init, we now check for the presence of a
862         Preelaborable_Initialization aspect on the type, and pass the
863         aspect's expression (if any) on the call to
864         Has_Preelaborable_Initialization (or pass Empty if the type has
865         no such aspect or the aspect has no associated expression).
866         * sem_util.ads (Has_Preelaborable_Initialization): Change
867         Boolean formal parameter Formal_Types_Have_Preelab_Init to
868         instead be a formal of type Node_Id (named Preelab_Init_Expr),
869         to allow passing an expression that may be a conjunction of
870         Preelaborable_Initialization aspects. Revise spec comment
871         accordingly (and remove ??? comment).
872         * sem_util.adb (Type_Named_In_Preelab_Init_Expression): New
873         nested function with a result indicating whether a given type is
874         named as the prefix of a Preelaborable_Initialization attribute
875         in the expression of a corresponding P_I aspect.
876         (Has_Preelaborable_Initialization): For generic formal derived
877         and private types, test whether the type is named in the
878         expression Preelab_Init_Expr (by calling
879         Type_Named_In_Preelab_Init_Expression), and if so, treat the
880         formal type as having preelaborable initialization (returning
881         True).
882         * libgnat/a-cobove.ads (Vector): Replace pragma
883         Preelaborable_Initialization with the aspect, specifying its
884         value as Element_Type'Preelaborable_Initialization.
885         (Cursor): Replace pragma P_I with the aspect (defaulting to
886         True).
887         * libgnat/a-cbdlli.ads (List): Replace pragma
888         Preelaborable_Initialization with the aspect, specifying its
889         value as Element_Type'Preelaborable_Initialization.
890         (Cursor): Replace pragma P_I with the aspect (defaulting to
891         True).
892         * libgnat/a-cbhama.ads (Map): Replace pragma
893         Preelaborable_Initialization with the aspect, specifying its
894         value as (Element_Type'Preelaborable_Initialization and
895         Key_Type'Preelaborable_Initialization).
896         (Cursor): Replace pragma P_I with the aspect (defaulting to
897         True).
898         * libgnat/a-cborma.ads (Map): Replace pragma
899         Preelaborable_Initialization with the aspect, specifying its
900         value as (Element_Type'Preelaborable_Initialization and
901         Key_Type'Preelaborable_Initialization).
902         (Cursor): Replace pragma P_I with the aspect (defaulting to
903         True).
904         * libgnat/a-cbhase.ads (Set): Replace pragma
905         Preelaborable_Initialization with the aspect, specifying its
906         value as Element_Type'Preelaborable_Initialization.
907         (Cursor): Replace pragma P_I with the aspect (defaulting to
908         True).
909         * libgnat/a-cborse.ads (Set): Replace pragma
910         Preelaborable_Initialization with the aspect, specifying its
911         value as Element_Type'Preelaborable_Initialization.
912         (Cursor): Replace pragma P_I with the aspect (defaulting to
913         True).
914         * libgnat/a-cbmutr.ads (Tree): Replace pragma
915         Preelaborable_Initialization with the aspect, specifying its
916         value as Element_Type'Preelaborable_Initialization.
917         (Cursor): Replace pragma P_I with the aspect (defaulting to
918         True).
919         * libgnat/a-coboho.ads (Holder): Replace pragma
920         Preelaborable_Initialization with the aspect, specifying its
921         value as Element_Type'Preelaborable_Initialization.
922         (Cursor): Replace pragma P_I with the aspect (defaulting to
923         True).
925 2021-10-04  Yannick Moy  <moy@adacore.com>
927         * libgnat/a-textio.adb: Mark body out of SPARK.
928         * libgnat/a-textio.ads: Mark spec in SPARK and private part out
929         of SPARK.
930         * sem.adb (Semantics.Do_Analyze): Similar to ghost code
931         attributes, save and restore value of
932         Ignore_SPARK_Mode_Pragmas_In_Instance.
934 2021-10-04  Bob Duff  <duff@adacore.com>
936         * libgnat/s-regpat.ads: Change Data_First to Data'First. Change
937         "still" to "always".  Similar changes for Data_Last.
939 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
941         * sprint.adb (Sprint_Node_Actual): Refactor code for generic
942         package and subprogram declarations.
944 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
946         * sem_res.adb (Resolve_Indexed_Component, Resolve_Slice): Rename
947         the local constant Name to Pref; remove repeated calls to
948         Prefix.
950 2021-10-04  Matthieu Eyraud  <eyraud@adacore.com>
952         * scos.ads: Extend the documentation.
953         * par_sco.adb (Process_Decisions): Emit specific SCOs for
954         quantified expressions.
956 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
958         * checks.adb (Selected_Range_Checks): Fix style.
959         * exp_ch4.adb (Expand_N_Slice): Fix style and comment.
960         * sem_res.adb (Resolve_Indexed_Component): Fix style.
962 2021-10-04  Yannick Moy  <moy@adacore.com>
964         * libgnat/a-strbou.ads: Add comments.
966 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
968         * sem_attr.adb (Eval_Attribute): Evaluation of attribute
969         Leading_Part with illegal second parameter is now similar to
970         evaluation of Remainder with its second parameter being zero.
972 2021-10-04  Ed Schonberg  <schonberg@adacore.com>
974         * sem_res.adb (Resolve_Declare_Expression): Use tree traversals
975         to perform name capture of local entities in the expression of
976         the construct.
977         * exp_util.adb (Possible_Side_Effects_In_SPARK): Do not apply to
978         the prefix of an attribute reference Reduce when that prefix is
979         an aggregate, because it will be expanded into a loop, and has
980         no identifiable type.
982 2021-10-04  Javier Miranda  <miranda@adacore.com>
984         * sem_ch8.adb (Build_Class_Wide_Wrapper): Fix handling of
985         class-wide subtypes; required to handle chains of
986         instantiations. Adding also code to identify these wrappers and
987         properly resolve instantiations where the wrapper and a tagged
988         type primitive are visible.
989         * einfo.ads (Is_Class_Wide_Wrapper): Adding documentation.
990         * gen_il-fields.ads (Opt_Field_Enum): Adding
991         Is_Class_Wide_Wrapper.
992         * gen_il-gen-gen_entities.adb (Root_Entity_Type): Adding
993         semantic flag Is_Class_Wide_Wrapper.
995 2021-10-04  Bob Duff  <duff@adacore.com>
997         * einfo.ads (Declaration_Node): Document that Declaration_Node
998         for Itypes.
999         * einfo-utils.adb (Declaration_Node): Make it return Empty for
1000         Itypes, or a proper type or subtype declaration.
1001         * gen_il-gen.adb: Minor comment improvement.
1003 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
1005         * sem_res.adb (Resolve_Slice): Fix application of range checks
1006         to slice range given as a subtype name.
1008 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
1010         * sem_res.adb (Resolve_Slice): Handle range given as a subtype
1011         indication.
1013 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
1015         * sem_res.adb (Resolve_Slice): Add custom handling of attribute
1016         Image and similar in CodePeer mode. This complements the
1017         existing custom handling of these attributes in
1018         Expand_N_Attribute_Reference.
1020 2021-10-04  Justin Squirek  <squirek@adacore.com>
1022         * sem_util.adb (Is_Variable): Add check for implicitly
1023         dereferenced access types
1024         (Is_Dependent_Component_Of_Mutable_Object): Set Prefix_Type when
1025         not specified.
1027 2021-10-04  Eric Botcazou  <ebotcazou@adacore.com>
1029         * doc/gnat_ugn/the_gnat_compilation_model.rst (Binding generation):
1030         Document specific behavior for /include/-ending paths and update.
1031         * gnat_ugn.texi: Regenerate.
1033 2021-10-04  Arnaud Charlet  <charlet@adacore.com>
1035         PR ada/102073
1036         * socket.c (__gnat_gethostbyaddr, __gnat_inet_pton): Add missing
1037         return statements.
1039 2021-10-04  Justin Squirek  <squirek@adacore.com>
1041         * sem_util.adb (Function_Or_Allocator_Level): Properly handle
1042         direct function calls in the default alternative accessibility
1043         checking mode.
1045 2021-10-04  Javier Miranda  <miranda@adacore.com>
1047         * sem_util.adb (Is_Library_Level_Entity): Return False for
1048         entities defined in E_Loop scopes. This change is not required
1049         by the frontend; it is required by tools that depend on the
1050         frontend sources.
1051         * einfo-utils.adb (Is_Dynamic_Scope): Code cleanup.
1053 2021-10-04  Justin Squirek  <squirek@adacore.com>
1055         * sem_util.adb (Accessibility_Level): Add a case to handle
1056         renamed subprograms in addition to renamed objects.
1058 2021-10-04  Doug Rupp  <rupp@adacore.com>
1060         * libgnarl/s-osinte__vxworks.ads (tlsKeyCreate): Return int.
1061         * libgnarl/s-tpopsp__vxworks-rtp.adb (ERROR): Declare from
1062         System.VxWorks.Ext.ERROR.
1063         (Initialize): Declare IERR. Assert it.
1064         * libgnarl/s-tpopsp__vxworks.adb (ERROR): Declare from
1065         System.VxWorks.Ext.ERROR.
1066         (Is_Valid_Task): Declare IERR. Test return.
1067         * libgnarl/s-vxwext__kernel.adb (semDelete): Return STATUS.
1069 2021-10-04  Eric Botcazou  <ebotcazou@adacore.com>
1071         * exp_disp.adb (Make_DT): Copy the Needs_Debug_Info flag from the
1072         type onto the TSD object.
1074 2021-10-04  Steve Baird  <baird@adacore.com>
1076         * sem_util.adb (Is_Repeatedly_Evaluated): Handle the case of an
1077         Old attribute reference that occurs within what was originally a
1078         quantified expression but which expansion has transformed into
1079         an Expression_With_Actions.
1081 2021-10-04  Steve Baird  <baird@adacore.com>
1083         * exp_ch4.adb (Expand_N_Indexed_Component): The two improvements
1084         described above.
1086 2021-10-01  Bob Duff  <duff@adacore.com>
1088         * exp_ch6.adb (Expand_Call_Helper): Do not call
1089         Check_Subprogram_Variant if the subprogram is an ignored ghost
1090         entity. Otherwise the compiler crashes (in debug builds) or
1091         gives strange error messages (in production builds).
1093 2021-10-01  Ghjuvan Lacambre  <lacambre@adacore.com>
1095         * gnat_cuda.adb (Empty_CUDA_Global_Subprograms): New procedure.
1096         (Expand_CUDA_Package): Call Empty_CUDA_Global_Subprograms.
1098 2021-10-01  Steve Baird  <baird@adacore.com>
1100         * checks.ads: Define a type Dimension_Set. Add an out-mode
1101         parameter of this new type to Generate_Index_Checks so that
1102         callers can know for which dimensions a check was generated. Add
1103         an in-mode parameter of this new type to
1104         Apply_Subscript_Validity_Checks so that callers can indicate
1105         that no check is needed for certain dimensions.
1106         * checks.adb (Generate_Index_Checks): Implement new
1107         Checks_Generated parameter.
1108         (Apply_Subscript_Validity_Checks): Implement new No_Check_Needed
1109         parameter.
1110         * exp_ch4.adb (Expand_N_Indexed_Component): Call
1111         Apply_Subscript_Validity_Checks in more cases than before. This
1112         includes declaring two new local functions,
1113         (Is_Renamed_Variable_Name,
1114         Type_Requires_Subscript_Validity_Checks_For_Reads): To help in
1115         deciding whether to call Apply_Subscript_Validity_Checks.
1116         Adjust to parameter profile changes in Generate_Index_Checks and
1117         Apply_Subscript_Validity_Checks.
1119 2021-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1121         * doc/gnat_rm/implementation_defined_characteristics.rst: Document
1122         the rounding mode assumed for dynamic computations as per 3.5.7(16).
1123         * gnat_rm.texi: Regenerate.
1125 2021-10-01  Bob Duff  <duff@adacore.com>
1127         * table.ads (Table_Type): Remove "aliased"; no longer needed by
1128         Atree.  Besides it contradicted the comment a few lines above,
1129         "--  Note: We do not make the table components aliased...".
1130         * types.ads: Move type Slot to Atree.
1131         * atree.ads: Move type Slot fromt Types to here.  Move type
1132         Node_Header from Seinfo to here.
1133         * atree.adb: Avoid the need for aliased components of the Slots
1134         table.  Instead of 'Access, use a getter and setter.  Misc
1135         cleanups.
1136         (Print_Statistics): Print statistics about node and entity kind
1137         frequencies. Give 3 digit fractions instead of percentages.
1138         * (Get_Original_Node_Count, Set_Original_Node_Count): Statistics
1139         for calls to Original_Node and Set_Original_Node.
1140         (Original_Node, Set_Original_Node): Gather statistics by calling
1141         the above.
1142         (Print_Field_Statistics): Print Original_Node statistics.
1143         (Update_Kind_Statistics): Remove, and put all statistics
1144         gathering under "if Atree_Statistics_Enabled", which is a flag
1145         generated in Seinfo by Gen_IL.
1146         * gen_il-gen.adb (Compute_Field_Offsets): Choose offsets of
1147         Nkind, Ekind, and Homonym first. This causes a slight efficiency
1148         improvement.  Misc cleanups.  Do not generate Node_Header; it is
1149         now hand-written in Atree.  When choosing the order in which to
1150         assign offsets, weight by the frequency of the node type, so the
1151         more common nodes get their field offsets assigned earlier.  Add
1152         more special cases.
1153         (Compute_Type_Sizes): Remove this and related things.
1154         There was a comment: "At some point we can instrument Atree to
1155         print out accurate size statistics, and remove this code." We
1156         have Atree statistics, so we now remove this code.
1157         (Put_Seinfo): Generate Atree_Statistics_Enabled, which is equal
1158         to Statistics_Enabled. This allows Atree to say "if
1159         Atree_Statistics_Enabled then <gather statistics>" for
1160         efficiency. When Atree_Statistics_Enabled is False, the "if ..."
1161         will be optimized away.
1162         * gen_il-internals.ads (Type_Frequency): New table of kind
1163         frequencies.
1164         * gen_il-internals.adb: Minor comment improvement.
1165         * gen_il-fields.ads: Remove unused subtypes.  Suppress style
1166         checks in the Type_Frequency table.  If we regenerate this
1167         table (see -gnatd.A) we don't want to have to fiddle with
1168         casing.
1169         * impunit.adb: Minor.
1170         * sinfo-utils.adb: Minor.
1171         * debug.adb: Minor comment improvement.
1173 2021-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1175         * sem_type.adb (Specific_Type): Check that the type is tagged
1176         before calling Interface_Present_In_Ancestor on it.
1178 2021-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1180         * debug.adb (d.8): Document usage.
1181         * fe.h (Debug_Flag_Dot_8): Declare.
1183 2021-10-01  Gary Dismukes  <dismukes@adacore.com>
1185         * sem_util.adb (Enter_Name): Suppress hiding warning when in an
1186         instance.
1188 2021-10-01  Ed Schonberg  <schonberg@adacore.com>
1190         * sem_attr.adb (Analyze_Attribute, case Type_Key): Attribute can
1191         be applied to a formal type.
1192         * sem_ch5.adb (Analyze_Case_Statement): If Extensions_Allowed is
1193         not enabled, verify that the type of the expression is discrete.
1195 2021-10-01  Justin Squirek  <squirek@adacore.com>
1197         * exp_dbug.adb (Debug_Renaming_Declaration): Add check for
1198         Entity present for Ren to prevent looking at unanalyzed nodes
1200 2021-10-01  Ghjuvan Lacambre  <lacambre@adacore.com>
1202         * atree.adb (Print_Statistics): Help CodePeer see Total as
1203         greater than zero.
1204         * gen_il-gen.adb (One_Comp): Annotate Field_Table as Modified.
1206 2021-10-01  Richard Kenner  <kenner@adacore.com>
1208         * gen_il-gen-gen_entities.adb (Evaluable_Kind,
1209         Global_Name_Kind): Add.
1210         * gen_il-types.ads (Evaluable_Kind, Global_Name_Kind): Likewise.
1212 2021-10-01  Ghjuvan Lacambre  <lacambre@adacore.com>
1214         * aspects.ads: Add CUDA_Device aspect.
1215         * gnat_cuda.ads (Add_CUDA_Device_Entity): New subprogram.
1216         * gnat_cuda.adb:
1217         (Add_CUDA_Device_Entity): New subprogram.
1218         (CUDA_Device_Entities_Table): New hashmap for CUDA_Device
1219         entities.
1220         (Get_CUDA_Device_Entities): New internal subprogram.
1221         (Set_CUDA_Device_Entities): New internal subprogram.
1222         * par-prag.adb (Prag): Handle pragma id Pragma_CUDA_Device.
1223         * sem_prag.ads (Aspect_Specifying_Pragma): Mark CUDA_Device as
1224         being both aspect and pragma.
1225         * sem_prag.adb (Analyze_Pragma): Add CUDA_Device entities to
1226         list of CUDA_Entities belonging to package N.
1227         (Sig_Flags): Signal CUDA_Device entities as referenced.
1228         * snames.ads-tmpl: Create CUDA_Device names and pragmas.
1230 2021-10-01  Gary Dismukes  <dismukes@adacore.com>
1232         * exp_util.adb (Build_DIC_Procedure_Body): Remove inappropriate
1233         Assert pragma.  Remove unneeded and dead code related to derived
1234         private types.
1236 2021-10-01  Richard Kenner  <kenner@adacore.com>
1238         * gen_il-gen-gen_nodes.adb (N_Alternative, N_Is_Case_Choice):
1239         Add.
1240         (N_Is_Exception_Choice, N_Is_Range): Likewise.
1241         * gen_il-types.ads: Add above names.
1242         * gen_il-gen.adb (Put_Union_Membership): Write both declarations
1243         and definitions of union functions.
1245 2021-10-01  Ed Schonberg  <schonberg@adacore.com>
1247         * exp_aggr.adb (Expand_Array_Aggregate,
1248         Two_Pass_Aggregate_Expansion): Increment index for element
1249         insertion within the loop, only if upper bound has not been
1250         reached.
1252 2021-10-01  Javier Miranda  <miranda@adacore.com>
1254         * contracts.ads (Make_Class_Precondition_Subps): New subprogram.
1255         (Merge_Class_Conditions): New subprogram.
1256         (Process_Class_Conditions_At_Freeze_Point): New subprogram.
1257         * contracts.adb (Check_Class_Condition): New subprogram.
1258         (Set_Class_Condition): New subprogram.
1259         (Analyze_Contracts): Remove code analyzing class-wide-clone
1260         subprogram since it is no longer built.
1261         (Process_Spec_Postconditions): Avoid processing twice seen
1262         subprograms.
1263         (Process_Preconditions): Simplify its functionality to
1264         non-class-wide preconditions.
1265         (Process_Preconditions_For): No action needed for wrappers and
1266         helpers.
1267         (Make_Class_Precondition_Subps): New subprogram.
1268         (Process_Class_Conditions_At_Freeze_Point): New subprogram.
1269         (Merge_Class_Conditions): New subprogram.
1270         * exp_ch6.ads (Install_Class_Preconditions_Check): New
1271         subprogram.
1272         * exp_ch6.adb (Expand_Call_Helper): Install class-wide
1273         preconditions check on dispatching primitives that have or
1274         inherit class-wide preconditions.
1275         (Freeze_Subprogram): Remove code for null procedures with
1276         preconditions.
1277         (Install_Class_Preconditions_Check): New subprogram.
1278         * exp_util.ads (Build_Class_Wide_Expression): Lower the
1279         complexity of this subprogram; out-mode formal Needs_Wrapper
1280         since this functionality is now provided by a new subprogram.
1281         (Get_Mapped_Entity): New subprogram.
1282         (Map_Formals): New subprogram.
1283         * exp_util.adb (Build_Class_Wide_Expression): Lower the
1284         complexity of this subprogram. Its previous functionality is now
1285         provided by subprograms Needs_Wrapper and Check_Class_Condition.
1286         (Add_Parent_DICs): Map the overridden primitive to the
1287         overriding one.
1288         (Get_Mapped_Entity): New subprogram.
1289         (Map_Formals): New subprogram.
1290         (Update_Primitives_Mapping): Adding assertion.
1291         * freeze.ads (Check_Inherited_Conditions): Subprogram made
1292         public with added formal to support late overriding.
1293         * freeze.adb (Check_Inherited_Conditions): New implementation;
1294         builds the dispatch table wrapper required for class-wide
1295         pre/postconditions; added support for late overriding.
1296         (Needs_Wrapper): New subprogram.
1297         * sem.ads (Inside_Class_Condition_Preanalysis): New global
1298         variable.
1299         * sem_disp.ads (Covered_Interface_Primitives): New subprogram.
1300         * sem_disp.adb (Covered_Interface_Primitives): New subprogram.
1301         (Check_Dispatching_Context): Skip checking context of
1302         dispatching calls during preanalysis of class-wide conditions
1303         since at that stage the expression is not installed yet on its
1304         definite context.
1305         (Check_Dispatching_Call): Skip checking 6.1.1(18.2/5) by
1306         AI12-0412 on helpers and wrappers internally built for
1307         supporting class-wide conditions; for late-overriding
1308         subprograms call Check_Inherited_Conditions to build the
1309         dispatch-table wrapper (if required).
1310         (Propagate_Tag): Adding call to
1311         Install_Class_Preconditions_Check.
1312         * sem_util.ads (Build_Class_Wide_Clone_Body): Removed.
1313         (Build_Class_Wide_Clone_Call): Removed.
1314         (Build_Class_Wide_Clone_Decl): Removed.
1315         (Class_Condition): New subprogram.
1316         (Nearest_Class_Condition_Subprogram): New subprogram.
1317         * sem_util.adb (Build_Class_Wide_Clone_Body): Removed.
1318         (Build_Class_Wide_Clone_Call): Removed.
1319         (Build_Class_Wide_Clone_Decl): Removed.
1320         (Class_Condition): New subprogram.
1321         (Nearest_Class_Condition_Subprogram): New subprogram.
1322         (Eligible_For_Conditional_Evaluation): No need to evaluate
1323         class-wide conditions during preanalysis since the expression is
1324         not installed on its definite context.
1325         * einfo.ads (Class_Wide_Clone): Removed.
1326         (Class_Postconditions): New attribute.
1327         (Class_Preconditions): New attribute.
1328         (Class_Preconditions_Subprogram): New attribute.
1329         (Dynamic_Call_Helper): New attribute.
1330         (Ignored_Class_Postconditions): New attribute.
1331         (Ignored_Class_Preconditions): New attribute.
1332         (Indirect_Call_Wrapper): New attribute.
1333         (Is_Dispatch_Table_Wrapper): New attribute.
1334         (Static_Call_Helper): New attribute.
1335         * exp_attr.adb (Expand_N_Attribute_Reference): When the prefix
1336         is of an access-to-subprogram type that has class-wide
1337         preconditions and an indirect-call wrapper of such subprogram is
1338         available, replace the prefix by the wrapper.
1339         * exp_ch3.adb (Build_Class_Condition_Subprograms): New
1340         subprogram.
1341         (Register_Dispatch_Table_Wrappers): New subprogram.
1342         * exp_disp.adb (Build_Class_Wide_Check): Removed; class-wide
1343         precondition checks now rely on internally built helpers.
1344         * sem_ch13.adb (Analyze_Aspect_Specifications): Set initial
1345         value of attributes Class_Preconditions, Class_Postconditions,
1346         Ignored_Class_Preconditions and Ignored_Class_Postconditions.
1347         These values are later updated with the full pre/postcondition
1348         by Merge_Class_Conditions.
1349         (Freeze_Entity_Checks): Call
1350         Process_Class_Conditions_At_Freeze_Point.
1351         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove code
1352         building the body of the class-wide clone subprogram since it is
1353         no longer required.
1354         (Install_Entity): Adding assertion.
1355         * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
1356         code building and analyzing the class-wide clone subprogram; no
1357         longer required.
1358         (Build_Pragma_Check_Equivalent): Adjust call to
1359         Build_Class_Wide_Expression since the formal named Needs_Wrapper
1360         has been removed.
1361         * sem_attr.adb (Analyze_Attribute_Old_Result): Skip processing
1362         these attributes during preanalysis of class-wide conditions
1363         since at that stage the expression is not installed yet on its
1364         definite context.
1365         * sem_res.adb (Resolve_Actuals): Skip applying RM 3.9.2(9/1) and
1366         SPARK RM 6.1.7(3) on actuals of internal helpers and wrappers
1367         built to support class-wide preconditions.
1368         * sem_ch5.adb (Process_Bounds): Do not generate a constant
1369         declaration for the bounds when we are preanalyzing a class-wide
1370         condition.
1371         (Analyze_Loop_Parameter_Specification): Handle preanalysis of
1372         quantified expression placed in the outermost expression of a
1373         class-wide condition.
1374         * ghost.adb (Check_Ghost_Context): No check required during
1375         preanalysis of class-wide conditions.
1376         * gen_il-fields.ads (Opt_Field_Enum): Adding
1377         Class_Postconditions, Class_Preconditions,
1378         Class_Preconditions_Subprogram, Dynamic_Call_Helper,
1379         Ignored_Class_Postconditions, Ignored_Class_Preconditions,
1380         Indirect_Call_Wrapper, Is_Dispatch_Table_Wrapper,
1381         Static_Call_Helper.
1382         * gen_il-gen-gen_entities.adb (Is_Dispatch_Table_Wrapper):
1383         Adding semantic flag Is_Dispatch_Table_Wrapper; removing
1384         semantic field Class_Wide_Clone; adding semantic fields for
1385         Class_Postconditions, Class_Preconditions,
1386         Class_Preconditions_Subprogram, Dynamic_Call_Helper,
1387         Ignored_Class_Postconditions, Indirect_Call_Wrapper,
1388         Ignored_Class_Preconditions, and Static_Call_Helper.
1390 2021-10-01  Piotr Trojanek  <trojanek@adacore.com>
1392         * comperr.adb (Delete_SCIL_Files): Handle generic subprogram
1393         declarations and renaming just like generic package declarations
1394         and renamings, respectively; handle
1395         N_Subprogram_Renaming_Declaration.
1397 2021-10-01  Steve Baird  <baird@adacore.com>
1399         * bcheck.adb (Check_Versions): Add support for the case where
1400         the .ali file contains both a primary and a secondary version
1401         number, as in "GNAT Lib v22.20210809".
1403 2021-10-01  Steve Baird  <baird@adacore.com>
1405         * sem_res.adb (Resolve): Two separate fixes. In the case where
1406         Find_Aspect for a literal aspect returns the aspect for a
1407         different (ancestor) type, call Corresponding_Primitive_Op to
1408         get the right callee. In the case where a downward tagged type
1409         conversion appears to be needed, generate a null extension
1410         aggregate instead, as per Ada RM 3.4(27).
1411         * sem_util.ads, sem_util.adb: Add new Corresponding_Primitive_Op
1412         function. It maps a primitive op of a tagged type and a
1413         descendant type of that tagged type to the corresponding
1414         primitive op of the descendant type. The body of this function
1415         was written by Javier Miranda.
1417 2021-10-01  Bob Duff  <duff@adacore.com>
1419         * atree.adb: Gather and print statistics about frequency of
1420         getter and setter calls.
1421         * atree.ads (Print_Statistics): New procedure for printing
1422         statistics.
1423         * debug.adb: Document -gnatd.A switch.
1424         * gen_il-gen.adb: Generate code for statistics gathering.
1425         Choose the offset of Homonym early.  Misc cleanup.  Put more
1426         comments in the generated code.
1427         * gen_il-internals.ads (Unknown_Offset): New value to indicate
1428         that the offset has not yet been chosen.
1429         * gnat1drv.adb: Call Print_Statistics.
1430         * libgnat/s-imglli.ads: Minor comment fix.
1431         * output.ads (Write_Int_64): New procedure to write a 64-bit
1432         value.  Needed for new statistics, and could come in handy
1433         elsewhere.
1434         * output.adb (Write_Int_64): Likewise.
1435         * sinfo.ads: Remove obsolete comment. The xtreeprs program no
1436         longer exists.
1437         * types.ads: New 64-bit types needed for new statistics.
1439 2021-10-01  Dmitriy Anisimkov  <anisimko@adacore.com>
1441         * libgnat/memtrack.adb (Putc): New routine wrapped around fputc
1442         with error check.
1443         (Write): New routine wrapped around fwrite with error check.
1444         Remove bound functions fopen, fwrite, fputs, fclose, OS_Exit.
1445         Use the similar routines from System.CRTL and System.OS_Lib.
1447 2021-10-01  Ed Schonberg  <schonberg@adacore.com>
1449         * exp_aggr.adb (Must_Slide): If the aggregate only contains an
1450         others_clause no sliding id involved. Otherwise sliding is
1451         required if any bound of the aggregate or the context subtype is
1452         non-static.
1454 2021-10-01  Richard Kenner  <kenner@adacore.com>
1456         * gen_il-gen-gen_nodes.adb (N_Is_Decl): Add.
1457         * gen_il-types.ads (N_Is_Decl): Likewise.
1459 2021-10-01  Richard Kenner  <kenner@adacore.com>
1461         * gen_il-gen-gen_nodes.adb (N_Entity_Name): Add.
1462         * gen_il-types.ads (N_Entity_Name): Likewise.
1464 2021-10-01  Steve Baird  <baird@adacore.com>
1466         * bcheck.adb (Check_Versions): In the case of an ali file
1467         version mismatch, if distinct integer values can be extracted
1468         from the two version strings then include those values in the
1469         generated error message.
1471 2021-10-01  Steve Baird  <baird@adacore.com>
1473         * sem_elab.adb (Is_Safe_Call): Return True in the case of a
1474         (possibly rewritten) call to an expression function.
1476 2021-10-01  Ghjuvan Lacambre  <lacambre@adacore.com>
1478         * sem_aggr.adb (Resolve_Iterated_Component_Association):
1479         Initialize Id_Typ to Any_Type by default.
1481 2021-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1483         * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Document
1484         that it works only with fixed-position executables.
1486 2021-10-01  Doug Rupp  <rupp@adacore.com>
1488         * libgnat/s-parame__vxworks.ads (time_t_bits): Change to
1489         Long_Long_Integer'Size.
1491 2021-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1493         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix comment.
1495 2021-09-23  Richard Kenner  <kenner@adacore.com>
1497         * gen_il-gen-gen_entities.adb (Subprogram_Body_Or_Type): Add.
1498         * gen_il-types.ads (Subprogram_Body_Or_Type): Likewise.
1500 2021-09-23  Richard Kenner  <kenner@adacore.com>
1502         * einfo-utils.adb (Next_Index): Verify input and output are
1503         N_Is_Index.
1504         * gen_il-gen-gen_nodes.adb (N_Has_Bounds, N_Is_Index): Add.
1505         * gen_il-types.ads (N_Has_Bounds, N_Is_Index): Likewise.
1506         * sem_ch3.adb (Array_Type_Declaration): Use Next, not
1507         Next_Index.
1508         * sem_ch12.adb (Formal_Dimensions): Likewise.
1509         * sem_util.adb (Is_Valid_Renaming): Likewise.
1511 2021-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1513         * doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize):
1514         Document new --load option and -g1 as minimal compilation
1515         requirement.
1517 2021-09-23  Piotr Trojanek  <trojanek@adacore.com>
1519         * sem_aggr.adb (Resolve_Array_Aggregate): Only keep the bounds
1520         for internally generated attributes; otherwise, compute them
1521                 anew.
1523 2021-09-23  Javier Miranda  <miranda@adacore.com>
1525         * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Decorate the
1526         wrapper with attribute Is_Wrapper, and move its declaration to
1527         the freezing actions of its type declaration; done to facilitate
1528         identifying it at later stages to avoid handling it as a
1529         primitive operation of a tagged type; otherwise it may be
1530         handled as a dispatching operation and erroneously registered in
1531         a dispatch table.
1532         (Make_Index): Add missing decoration of field Parent.
1533         * sem_disp.adb (Check_Dispatching_Operation): Complete
1534         decoration of late-overriding dispatching primitives.
1535         (Is_Access_To_Subprogram_Wrapper): New subprogram.
1536         (Inherited_Subprograms): Prevent cascaded errors; adding missing
1537         support for private types.
1538         * sem_type.adb (Add_One_Interp): Add missing support for the
1539         first interpretation of a primitive of an inmediate ancestor
1540         interface.
1541         * sem_util.adb (Check_Result_And_Post_State_In_Pragma): Do not
1542         report missing reference in postcondition placed in internally
1543         built wrappers.
1544         * exp_disp.adb (Expand_Dispatching_Call): Adding assertion.
1546 2021-09-23  Ed Schonberg  <schonberg@adacore.com>
1548         * sem_aggr.adb (Resolve_Array_Aggregate): Check the validity of
1549         an array aggregate all of whose components are iterated
1550         component associations.
1551         * exp_aggr.adb (Expand_Array_Aggregate,
1552         Two_Pass_Aggregate_Expansion): implement two-pass algorithm and
1553         replace original aggregate with resulting temporary, to ensure
1554         that a proper length check is performed if context is
1555         constrained. Use attributes Pos and Val to handle index types of
1556         any discrete type.
1558 2021-09-23  Bob Duff  <duff@adacore.com>
1560         * gen_il-gen.adb: Set the number of concrete nodes that have the
1561         Homonym field to a higher number than any other field. This
1562         isn't true, but it forces Homonym's offset to be chosen first,
1563         so it will be at offset zero and hence slot zero.
1565 2021-09-23  Richard Kenner  <kenner@adacore.com>
1567         * atree.adb (Relocate_Node): If relocating a subprgram call and
1568         we're doing unnesting, make a new Parameter_Associations, if
1569         any.
1571 2021-09-23  Piotr Trojanek  <trojanek@adacore.com>
1573         * libgnat/a-strbou.ads (Generic_Bounded_Length): Remove explicit
1574         Initializes contract.
1576 2021-09-23  Bob Duff  <duff@adacore.com>
1578         * gen_il-gen.adb: Generate getters and setters with much of the
1579         code inlined. Generate code for storing a few fields in the node
1580         header, to avoid the extra level of indirection for those
1581         fields. We generate the header type, so we don't have to
1582         duplicate hand-written Ada and C code to depend on the number of
1583         header fields.  Declare constants for slot size. Use short names
1584         because these are used all over.  Remove
1585         Put_Low_Level_Accessor_Instantiations, Put_Low_Level_C_Getter,
1586         which are no longer needed.  Rename
1587         Put_High_Level_C_Getter-->Put_C_Getter.
1588         * atree.ads, atree.adb: Take into account the header slots.
1589         Take into account the single Node_Or_Entity_Field type.  Remove
1590         "pragma Assertion_Policy (Ignore);", because the routines in
1591         this package are no longer efficiency critical.
1592         * atree.h: Remove low-level getters, which are no longer used by
1593         sinfo.h and einfo.h.
1594         * einfo-utils.adb: Avoid crash in Known_Alignment.
1595         * live.adb, sem_eval.adb: Remove code that prevents Node_Id from
1596         having a predicate.  We don't actually add a predicate to
1597         Node_Id, but we want to be able to for temporary debugging.
1598         * sinfo-utils.adb: Remove code that prevents Node_Id from having
1599         a predicate.  Take into account the single Node_Or_Entity_Field
1600         type.
1601         * sinfo-utils.ads: Minor.
1602         * table.ads (Table_Type): Make the components aliased, because
1603         low-level setters in Atree need to take 'Access.
1604         * treepr.adb: Take into account the single Node_Or_Entity_Field
1605         type.  Make some code more robust, so we can print out
1606         half-baked nodes.
1607         * types.ads: Move types here for visibility purposes.
1608         * gcc-interface/gigi.h, gcc-interface/trans.c: Take into account
1609         the Node_Header change in the GNAT front end.
1610         * gcc-interface/cuintp.c, gcc-interface/targtyps.c: Add because
1611         gigi.h now refers to type Node_Header, which is in sinfo.h.
1613 2021-09-23  Yannick Moy  <moy@adacore.com>
1615         * libgnat/a-strfix.adb (Delete, Insert, Overwrite,
1616         Replace_Slice): Remove SPARK_Mode Off.
1617         * libgnat/a-strfix.ads (Insert, Overwrite, Replace_Slice):
1618         Strengthen precondition.
1620 2021-09-23  Piotr Trojanek  <trojanek@adacore.com>
1622         * libgnat/a-strbou.ads (Generic_Bounded_Length): Remove non-null
1623         Global contracts.
1625 2021-09-23  Steve Baird  <baird@adacore.com>
1627         * doc/gnat_rm/implementation_defined_characteristics.rst: Update
1628         this section to reflect the current version of Ada RM M.2.
1629         * gnat_rm.texi: Regenerate.
1631 2021-09-22  Yannick Moy  <moy@adacore.com>
1633         * libgnat/a-strfix.ads (Trim): Simplify contracts.
1634         * libgnat/a-strfix.adb (Trim): Remove white space.
1636 2021-09-22  Piotr Trojanek  <trojanek@adacore.com>
1638         * exp_ch4.adb (Expand_N_Op_Eq): Reuse Is_Attribute_Result.
1639         * exp_prag.adb (Expand_Attributes): Reuse Is_Attribute_Old.
1641 2021-09-22  Yannick Moy  <moy@adacore.com>
1643         * sem_ch3.adb (Analyze_Object_Declaration): Do not insert a
1644         predicate check after a deferred constant declaration.
1646 2021-09-22  Bob Duff  <duff@adacore.com>
1648         * contracts.adb, einfo-utils.adb, einfo-utils.ads, exp_ch7.adb,
1649         exp_ch9.adb, exp_disp.adb, exp_prag.adb, exp_smem.adb,
1650         exp_util.adb, freeze.adb, sem_aggr.adb, sem_attr.adb,
1651         sem_ch8.adb, sem_prag.ads, sem_util.adb, sem_util.ads: Fix
1652         conformance errors.
1653         * errout.adb, erroutc.adb: Remove pragmas Suppress.
1654         * err_vars.ads: Initialize variables that were previously being
1655         read uninitialized.
1657 2021-09-22  Yannick Moy  <moy@adacore.com>
1659         * libgnat/a-strunb.ads: Mark package in SPARK with private part
1660         not in SPARK.
1661         (Free): Mark not in SPARK.
1663 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1665         * snames.ads-tmpl: Update status of some attributes.
1667 2021-09-22  Doug Rupp  <rupp@adacore.com>
1669         * libgnarl/s-interr__vxworks.adb (Interfaces.C): Remove as
1670         unused.
1671         (System.VxWorks.Ext): Import.
1672         (System.VxWorks.Ext.STATUS): use type.
1673         (STATUS): New subtype.
1674         (OK): New constant.
1675         (Interrupt_Connector): Return STATUS type vice int.
1676         (Interrupt_Connect, Notify_Interrupt, Unbind_Handler,
1677         Interrupt_Server_Task): Rename Status to Result. Assert Result =
1678         OK.
1679         * libgnarl/s-osinte__vxworks.adb (To_Clock_Ticks): Define constant
1680         IERR, and return it vice ERROR.
1681         (Binary_Semaphore_Delete): Return STATUS type vice int.
1682         (Binary_Semaphore_Obtain): Likewise.
1683         (Binary_Semaphore_Release): Likewise.
1684         (Binary_Semaphore_Flush): Likewise.
1685         * libgnarl/s-osinte__vxworks.ads (SVE): Renaming of
1686         System.VxWorks.Ext.
1687         (STATUS): Use SVE in declaration of subtype.
1688         (BOOL): Likewise.
1689         (vx_freq_t): Likewise.
1690         (t_id): Likewise.
1691         (gitpid): Use SVE in renaming of subprogram
1692         (Task_Stop): Likewise.
1693         (Task_Cont): Likewise.
1694         (Int_Lock): Likewise.
1695         (Int_Unlock): Likewise.
1696         (Set_Time_Slice): Likewise.
1697         (semDelete): Likewise.
1698         (taskCpuAffinitySet): Likewise.
1699         (taskMaskAffinitySet): Likewise.
1700         (sigset_t): Use SVE in declaration of type.
1701         (OK): Remove as unused.
1702         (ERROR): Likewise.
1703         (taskOptionsGet): return STATUS vice int.
1704         (taskSuspend): Likewise.
1705         (taskResume): Likewise.
1706         (taskDelay): Likewise.
1707         (taskVarAdd): Likewise.
1708         (taskVarDelete): Likewise.
1709         (taskVarSet): Likewise.
1710         (tlkKeyCreate): Likewise.
1711         (taskPrioritySet): Likewise.
1712         (semGive): Likewise.
1713         (semTake): Likewise.
1714         (Binary_Semaphore_Delete): Likewise.
1715         (Binary_Semaphore_Obtain): Likewise.
1716         (Binary_Semaphore_Release): Likewise.
1717         (Binary_Semaphore_Flush): Likewise.
1718         (Interrupt_Connect): Likewise.
1719         * libgnarl/s-taprop__vxworks.adb
1720         (System.VxWorks.Ext.STATUS): use type.
1721         (int): Syntactically align subtype.
1722         (STATUS): New subtype.
1723         (OK): New constant.
1724         (Finalize_Lock): Check STATUS vice int. Assert OK.
1725         (Finalize_Lock): Likewise.
1726         (Write_Lock): Likewise.
1727         (Write_Lock): Likewise.
1728         (Write_Lock): Likewise.
1729         (Unlock): Likewise.
1730         (Unlock): Likewise.
1731         (Unlock): Likewise.
1732         (Unlock): Likewise.
1733         (Sleep): Likewise.
1734         (Sleep): Likewise.
1735         (Sleep): Likewise.
1736         (Timed_Sleep): Likewise and test Result.
1737         (Timed_Delay): Likewise and test Result.
1738         (Wakeup): Likewise.
1739         (Yield): Likewise.
1740         (Finalize_TCB): Likewise.
1741         (Suspend_Until_True): Check OK.
1742         (Stop_All_Tasks): Declare Dummy STATUS vice in.  Check OK.
1743         (Is_Task_Context): Use OSI renaming.
1744         (Initialize): Use STATUS vice int.
1745         * libgnarl/s-vxwext.adb
1746         (IERR): Renamed from ERROR.
1747         (taskCpuAffinitySet): Return IERR (int).
1748         (taskMaskAffinitySet): Likewise.
1749         * libgnarl/s-vxwext.ads
1750         (STATUS): New subtype.
1751         (OK): New STATUS constant.
1752         (ERROR): Likewise.
1753         * libgnarl/s-vxwext__kernel-smp.adb
1754         (IERR): Renamed from ERROR.
1755         (Int_Lock): Return IERR.
1756         (semDelete): Return STATUS.
1757         (Task_Cont): Likewise.
1758         (Task_Stop): Likewise.
1759         * libgnarl/s-vxwext__kernel.adb
1760         (IERR): Renamed from ERROR.
1761         (semDelete): Return STATUS.
1762         (Task_Cont): Likewise.
1763         (Task_Stop): Likewise.
1764         (taskCpuAffinitySet): Return IERR (int)
1765         (taskMaskAffinitySet): Likewise.
1766         * libgnarl/s-vxwext__kernel.ads
1767         (STATUS): New subtype.
1768         (OK): New STATUS constant.
1769         (ERROR): Likewise.
1770         (Interrupt_Connect): Return STATUS
1771         (semDelete): Likewise.
1772         (Task_Cont): Likewise.
1773         (Task_Stop): Likewise.
1774         (Set_Time_Slice): Likewise.
1775         * libgnarl/s-vxwext__rtp-smp.adb
1776         (IERR): Renamed from ERROR.
1777         (Int_Lock): return IERR constant vice ERROR.
1778         (Interrupt_Connect): Return STATUS.
1779         (semDelete): Likewise.
1780         (Set_Time_Slice): Likewise.
1781         * libgnarl/s-vxwext__rtp.adb
1782         (IERR): Renamed from ERROR.
1783         (Int_Lock): return IERR constant vice ERROR.
1784         (Int_Unlock): Return STATUS.
1785         (semDelete): Likewise.
1786         (Set_Time_Slice): Likewise.
1787         (taskCpuAffinitySet): Return IERR (int)
1788         (taskMaskAffinitySet): Likewise.
1789         * libgnarl/s-vxwext__rtp.ads
1790         (STATUS): New subtype.
1791         (OK): New STATUS constant.
1792         (ERROR): Likewise.
1793         (Interrupt_Connect): Return STATUS
1794         (semDelete): Likewise.
1795         (Task_Cont): Likewise.
1796         (Task_Stop): Likewise.
1797         (Set_Time_Slice): Likewise.
1799 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1801         * prep.adb (Preprocess): Allow for more flexibility when
1802         Relaxed_RM_Semantics is set.
1804 2021-09-22  Pierre-Alexandre Bazin  <bazin@adacore.com>
1806         * libgnat/a-strbou.adb: Turn SPARK_Mode on.
1807         * libgnat/a-strbou.ads: Write contracts.
1808         * libgnat/a-strfix.ads (Index): Fix grammar error in a comment.
1809         * libgnat/a-strsea.ads (Index): Likewise.
1810         * libgnat/a-strsup.adb: Rewrite the body to take into account
1811         the new definition of Super_String using Relaxed_Initialization
1812         and a predicate.
1813         (Super_Replicate, Super_Translate, Times): Added loop
1814         invariants, and ghost lemmas for Super_Replicate and Times.
1815         (Super_Trim): Rewrite the body using search functions to
1816         determine the cutting points.
1817         (Super_Element, Super_Length, Super_Slice, Super_To_String):
1818         Remove (now written as expression functions in a-strsup.ads).
1819         * libgnat/a-strsup.ads: Added contracts.
1820         (Super_Element, Super_Length, Super_Slice, Super_To_String):
1821         Rewrite as expression functions.
1823 2021-09-22  Yannick Moy  <moy@adacore.com>
1825         * sem_ch13.adb (Build_Predicate_Functions): Add guard.
1827 2021-09-22  Doug Rupp  <rupp@adacore.com>
1829         * libgnarl/s-vxwext.ads (BOOL): New int type.
1830         (Interrupt_Context): Change return type to BOOL.
1831         * libgnarl/s-vxwext__kernel.ads: Likewise.
1832         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
1833         * libgnarl/s-vxwext__rtp.adb: Likewise.
1834         * libgnarl/s-vxwext__rtp.ads: Likewise.
1835         * libgnarl/s-osinte__vxworks.adb (Interrupt_Context): Change
1836         return type to BOOL.
1837         * libgnarl/s-osinte__vxworks.ads (BOOL) New subtype.
1838         (taskIsSuspended): Change return type to BOOL.
1839         (Interrupt_Context): Change return type to BOOL. Adjust comments
1840         accordingly.
1841         * libgnarl/s-taprop__vxworks.adb (System.VxWorks.Ext.BOOL):
1842         use type.
1843         (Is_Task_Context): Test Interrupt_Context against 0.
1844         * libgnat/i-vxwork.ads (BOOL): New int.
1845         (intContext): Change return type to BOOL. Adjust comments.
1846         * libgnat/i-vxwork__x86.ads: Likewise.
1848 2021-09-22  Piotr Trojanek  <trojanek@adacore.com>
1850         * sem_aux.adb, sem_aux.ads (Package_Body): Moved from GNATprove.
1851         * sem_elab.adb (Spec_And_Body_From_Entity): Refine type of parameter.
1853 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1855         * doc/gnat_ugn/platform_specific_information.rst: Improve doc
1856         on permission and containers.
1857         * gnat_ugn.texi: Regenerate.
1859 2021-09-22  Yannick Moy  <moy@adacore.com>
1861         * atree.adb (Rewrite): Fix parent node of shared aspects.
1862         * atree.ads (Rewrite): Add ??? comment on incorrect
1863         documentation.
1864         * einfo-utils.adb (Known_Esize): Fix logic.
1865         * sem_ch13.adb (Alignment_Check_For_Size_Change,
1866         Analyze_Attribute_Definition_Clause): Protect against unset
1867         Size.
1869 2021-09-22  Yannick Moy  <moy@adacore.com>
1871         * freeze.adb (Build_Renamed_Body): Special case for GNATprove.
1872         * sem_ch6.adb (Analyze_Expression_Function): Remove useless test
1873         for a node to come from source, which becomes harmful otherwise.
1875 2021-09-22  Justin Squirek  <squirek@adacore.com>
1877         * ali.adb, ali.ads (Scan_ALI): Remove use of deprecated
1878         parameter Ignore_ED, and all specification for Lower in call to
1879         Get_File_Name.
1880         * ali-util.adb (Read_Withed_ALIs): Modify call to Scan_ALI.
1881         * clean.adb (Clean_Executables): Likewise.
1882         * gnatbind.adb (Add_Artificial_ALI_File, Executable section):
1883         Likewise.
1884         * gnatlink.adb (Executable section): Likewise.
1885         * gnatls.adb (Executable section): Likewise.
1886         * make.adb (Check, Wait_For_Available_Slot): Likewise.
1887         * aspects.ads: Add Aspect_No_Controlled_Parts to
1888         Nonoverridable_Aspect_Id
1889         * opt.ads: Remove function pointers used as a workaround for
1890         ASIS.
1891         * osint-c.adb (Executable section): Remove setting of function
1892         pointer workarounds needed for ASIS.
1893         * osint.adb (Read_Default_Search_Dirs): Correct behavior to
1894         detect EOL characters.
1895         * par_sco.adb (Output_Header): Remove comment regarding use of
1896         First_Sloc.
1897         (Traverse_Sync_Definition): Renamed to
1898         Traverse_Protected_Or_Task_Definition.
1899         * pprint.adb (Interal_List_Name): Add description about purpose,
1900         and refactor conditional statement.
1901         (Prepend): Removed.
1902         * repinfo.adb (List_Rep_Info, Write_Info_Line): Remove use of
1903         subprogram pointer.
1904         * scng.adb (Scan): Remove CODEFIX question, and minor comment
1905         change.
1906         * sem_attr.adb (Analyze_Image_Attribute): Remove special
1907         processing for 'Img.
1908         * sem_ch6.adb (Check_Untagged_Equality): Add RM reference.
1909         (FCE): Add comment describing behavior.
1910         (Is_Non_Overriding_Operation): Minor comment formatting change.
1911         * sem_type.adb (Is_Actual_Subprogram): Add comment about
1912         Comes_From_Source test.
1913         (Matching_Types): Describe non-matching cases.
1914         * sem_util.adb (Is_Confirming): Add stub case for
1915         No_Controlled_Parts.
1917 2021-09-22  Yannick Moy  <moy@adacore.com>
1919         * sem_ch13.adb (Build_Predicate_Functions): Access
1920         Predicated_Parent only on subtypes.
1922 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1924         * sem_prag.adb (Process_Import_Or_Interface): Relax error when
1925         Relaxed_RM_Semantics.
1927 2021-09-22  Steve Baird  <baird@adacore.com>
1929         * libgnat/s-regpat.adb (Match): Handle the case where Self.First
1930         is not NUL (so we know the first character we are looking for),
1931         but case-insensitive matching has
1932         been specified.
1933         (Optimize): In the case of an EXACTF Op, set Self.First as is
1934         done in the EXACT case, except with the addition of a call to
1935         Lower_Case.
1937 2021-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1939         * libgnat/s-imenne.ads, libgnat/s-imenne.adb: Delete.
1940         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove s-imenne.o.
1941         (GNATBIND_OBJS): Likewise.
1943 2021-09-22  Yannick Moy  <moy@adacore.com>
1945         * einfo.ads: Fix comments.
1946         * exp_aggr.adb: Fix variable name.
1947         * exp_util.adb: Fix comments.
1948         * sem_ch13.adb: Fix comments.
1949         * sem_ch3.adb: Fix comments and variable name.
1951 2021-09-22  Doug Rupp  <rupp@adacore.com>
1953         * libgnarl/s-osinte__vxworks.ads: Make procedure vice function.
1954         * libgnarl/s-vxwext.ads: Likewise.
1955         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
1956         * libgnarl/s-vxwext__kernel.adb: Likewise.
1957         * libgnarl/s-vxwext__kernel.ads: Likewise.
1958         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
1959         * libgnarl/s-vxwext__rtp.adb: Likewise.
1960         * libgnarl/s-vxwext__rtp.ads: Likewise.
1961         * libgnarl/s-taprop__vxworks.adb (Stop_All_Tasks): Call
1962         Int_Unlock as a procedure.
1964 2021-09-22  Doug Rupp  <rupp@adacore.com>
1966         * libgnarl/s-osinte__vxworks.ads (SVE): New package renaming
1967         (vx_freq_t): New subtype.
1968         (sysClkRateGet): Return vx_freq_t.
1969         * libgnarl/s-vxwext.ads (vx_freq_t): New type.
1970         * libgnarl/s-vxwext__kernel.ads: Likewise.
1971         * libgnarl/s-vxwext__rtp.ads: Likewise.
1973 2021-09-22  Ghjuvan Lacambre  <lacambre@adacore.com>
1975         * sem_case.adb (Composite_Case_Ops): Replace 'Image with
1976         Error_Msg_Uint.
1978 2021-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1980         * exp_ch4.adb (Expand_N_If_Expression): Generate an intermediate
1981         temporary when the expression is a condition in an outer decision
1982         and control-flow optimizations are suppressed.
1984 2021-09-22  Steve Baird  <baird@adacore.com>
1986         * exp_ch5.adb (Expand_General_Case_Statement.Pattern_Match): Add
1987         new function Indexed_Element to handle array element
1988         comparisons. Handle case choices that are array aggregates,
1989         string literals, or names denoting constants.
1990         * sem_case.adb (Composite_Case_Ops.Array_Case_Ops): New package
1991         providing utilities needed for casing on arrays.
1992         (Composite_Case_Ops.Choice_Analysis): If necessary, include
1993         array length as a "component" (like a discriminant) when
1994         traversing components. We do not (yet) partition choice analysis
1995         to deal with unequal length choices separately. Instead, we
1996         embed everything in the minimum-dimensionality Cartesian product
1997         space needed to handle all choices properly; this is determined
1998         by the length of the longest choice pattern.
1999         (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts):
2000         Include length as a "component" in the traversal if necessary.
2001         (Composite_Case_Ops.Choice_Analysis.Parse_Choice.Traverse_Choice):
2002         Add support for case choices that are string literals or names
2003         denoting constants.
2004         (Composite_Case_Ops.Choice_Analysis): Include length as a
2005         "component" in the analysis if necessary.
2006         (Check_Choices.Check_Case_Pattern_Choices.Ops.Value_Sets.Value_Index_Count):
2007         Improve error message when capacity exceeded.
2008         * doc/gnat_rm/implementation_defined_pragmas.rst: Update
2009         documentation to reflect current implementation status.
2010         * gnat_rm.texi: Regenerate.
2012 2021-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2014         * freeze.adb (Check_Component_Storage_Order): Give a specific error
2015         message for non-byte-aligned component in the packed case.  Replace
2016         "composite" with "record" in both cases.
2018 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
2020         * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: Make compatible
2021         with No_Elaboration_Code_All.
2022         * libgnarl/s-taskin.ads, libgnarl/s-tassta.adb: Adjust
2023         accordingly.
2025 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
2027         * sem_ch6.adb (Check_Returns): Change message on missing return.
2029 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
2031         * gnatfind.adb, gnatxref.adb: Mark these tools as obsolete
2032         before removing them completely.
2034 2021-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2036         * gcc-interface/decl.c (range_cannot_be_superflat): Tweak comments.
2038 2021-09-21  Doug Rupp  <rupp@adacore.com>
2040         * init.c (__gnat_error_handler) [LynxOS]: Add a comment about
2041         missing optional args.
2043 2021-09-21  Yannick Moy  <moy@adacore.com>
2045         * gen_il-gen.adb (Put_Opt_Subtype): Add suffix.
2047 2021-09-21  Justin Squirek  <squirek@adacore.com>
2049         * sem_util.adb (Accessibility_Level): Remove spurious special
2050         case for protected type components.
2051         * exp_ch4.adb (Generate_Accessibility_Check): Use general
2052         Accessibility_Level instead of the low-level function
2053         Type_Access_Level.
2055 2021-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2057         * gnat_ugn.texi: Regenerate.
2059 2021-09-21  Matthieu Eyraud  <eyraud@adacore.com>
2061         * par_sco.adb (Traverse_One): Add support for pragma Invariant /
2062         Type_Invariant.
2064 2021-09-21  Bob Duff  <duff@adacore.com>
2066         * gen_il-gen.adb (Put_Opt_Subtype): Print out subtypes of the
2067         form:
2068         subtype Opt_N_Declaration is
2069         Node_Id with Predicate =>
2070         Opt_N_Declaration = Empty or else
2071         Opt_N_Declaration in N_Declaration_Id;
2072         One for each node or entity type, with the predicate allowing
2073         Empty.
2074         * atree.adb (Parent, Set_Parent): Remove unnecessary "Atree.".
2076 2021-09-21  Patrick Bernardi  <bernardi@adacore.com>
2078         * bindgen.adb (Gen_Adainit): For targets that suppress the
2079         standard library: set the default stack size global variable if
2080         a value is provided via the -d switch, and generate a call to
2081         __gnat_initialize_stack_limit if stack checking using stack
2082         limits is enabled.
2084 2021-09-21  Bob Duff  <duff@adacore.com>
2086         * sem_ch13.adb (Stream_Size): Print message about allowed stream
2087         sizes even if other error were already found. This avoids
2088         falling into the 'else', which prints "Stream_Size cannot be
2089         given for...", which is misleading -- the Size COULD be given if
2090         it were correct.
2092 2021-09-21  Daniel Mercier  <mercier@adacore.com>
2094         * exp_util.adb (Build_Temporary): In case of an external DISCR
2095         symbol, set the related expression for CodePeer so that a more
2096         comprehensible message can be emitted to the user.
2098 2021-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2100         * libgnat/s-dwalin.adb (Parse_Header): Tweak comments.
2101         (Read_Entry_Format_Array): Tweak exception message.
2102         (Symbolic_Address.Set_Result): Likewise.
2104 2021-09-21  Ed Schonberg  <schonberg@adacore.com>
2106         * exp_ch7.adb (Make_Init_Call): Add guard to protect against a
2107         missing initialization procedure for a type.
2109 2021-09-21  Doug Rupp  <rupp@adacore.com>
2111         * Makefile.rtl: Remove unused VxWorks sections.
2112         * libgnarl/s-vxwext__noints.adb: Remove.
2113         * libgnarl/s-vxwext__vthreads.ads: Remove.
2114         * libgnat/a-elchha__vxworks-ppc-full.adb: Remove.
2115         * libgnat/s-osprim__vxworks.adb: Remove.
2116         * libgnat/s-osvers__vxworks-653.ads: Remove.
2117         * libgnat/system-vxworks-e500-vthread.ads: Remove.
2118         * libgnat/system-vxworks-ppc-vthread.ads: Remove.
2119         * libgnat/system-vxworks-x86-vthread.ads: Remove.
2121 2021-09-21  Bob Duff  <duff@adacore.com>
2123         * uintp.ads, uintp.adb (UI_Is_In_Int_Range): Change the type of
2124         the formal parameter to Valid_Uint. Remove code that preserved
2125         the previous behavior, and replace it with an assertion. The
2126         previous behavior is no longer needed given the recent change to
2127         gigi.
2128         (No, Present): Add comment.
2130 2021-09-21  Bob Duff  <duff@adacore.com>
2132         * sem_eval.adb (Fold_Shift): Replace an if_expression with an
2133         if_statement.
2135 2021-09-21  Bob Duff  <duff@adacore.com>
2137         * uintp.ads, uintp.adb: Add assertions.
2138         (Ubool, Opt_Ubool): New "boolean" subtypes.
2139         (UI_Is_In_Int_Range): The parameter should probably be
2140         Valid_Uint, but we don't change that for now, because it causes
2141         failures in gigi.
2142         * sem_util.ads, sem_util.adb (Is_True, Is_False,
2143         Static_Boolean): Use Opt_Ubool subtype.  Document the fact that
2144         Is_True (No_Uint) = True.  Implement Is_False in terms of
2145         Is_True.  We considered changing Static_Boolean to return Uint_1
2146         in case of error, but that doesn't fit in well with
2147         Static_Integer.
2148         (Has_Compatible_Alignment_Internal): Deal with cases where Offs
2149         is No_Uint. Change one "and" to "and then" to ensure we don't
2150         pass No_Uint to ">", which would violate the new assertions.
2151         * exp_util.adb, freeze.adb, sem_ch13.adb: Avoid violating new
2152         assertions in Uintp.
2154 2021-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2156         * libgnat/s-dwalin.adb (To_File_Name): Fetch only the last string
2157         from the .debug_line_str section.
2158         (Symbolic_Address.Set_Result): Likewise.
2160 2021-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2162         * libgnat/s-dwalin.adb (Skip_Form): Fix cases of DW_FORM_addrx
2163         and DW_FORM_implicit_const.  Replace Constraint_Error with
2164         Dwarf_Error.
2166 2021-09-21  Ghjuvan Lacambre  <lacambre@adacore.com>
2168         * exp_pakd.adb (Expand_Packed_Not): Replace expression with
2169         statement.
2171 2021-09-21  Ghjuvan Lacambre  <lacambre@adacore.com>
2173         * sem_eval.adb (Is_Static_Subtype): Take predicates created
2174         through "predicate" pragma into account.
2176 2021-09-21  Frederic Konrad  <konrad@adacore.com>
2178         * Makefile.rtl (aarch64-rtems*): Add GNATRTL_128BIT_PAIRS to
2179         the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
2180         the EXTRA_GNATRTL_NONTASKING_OBJS list.
2182 2021-09-21  Gary Dismukes  <dismukes@adacore.com>
2184         * sem_ch4.adb (Remove_Abstract_Operations): Add condition to
2185         test for an E_Operator as part of criteria for setting
2186         Abstract_Op on interpretations involving predefined operators.
2188 2021-09-21  Javier Miranda  <miranda@adacore.com>
2190         * exp_ch6.adb (Expand_Simple_Function_Return): For explicit
2191         dereference of type conversion, enable code that ensures that
2192         the tag of the result is that of the result type.
2194 2021-09-21  Bob Duff  <duff@adacore.com>
2196         * einfo-utils.adb: Add support (currently disabled) for using
2197         "initial zero" instead of "Uint_0" to represent "unknown".  Call
2198         Known_ functions, instead of evilly duplicating their code
2199         inline.
2200         * fe.h (No_Uint_To_0): New function to convert No_Uint to
2201         Uint_0, in order to preserve existing behavior.
2202         (Copy_Esize, Copy_RM_Size): New imports from Einfo.Utils.
2203         * cstand.adb: Set size fields of Standard_Debug_Renaming_Type
2204         and Standard_Exception_Type.
2205         * checks.adb, exp_attr.adb, exp_ch3.adb, exp_ch5.adb,
2206         exp_ch6.adb, exp_pakd.adb, exp_util.adb, freeze.adb, itypes.adb,
2207         layout.adb, repinfo.adb, sem_attr.adb, sem_ch12.adb,
2208         sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch7.adb,
2209         sem_util.adb: Protect calls with Known_..., use Copy_...  Remove
2210         assumption that Uint_0 represents "unknown".
2211         * types.ads (Nonzero_Int): New subtype.
2212         * gcc-interface/decl.c, gcc-interface/trans.c: Protect calls
2213         with Known_... and use Copy_...  as appropriate, to avoid
2214         blowing up in unknown cases. Similarly, call No_Uint_To_0 to
2215         preserve existing behavior.
2217 2021-09-21  Steve Baird  <baird@adacore.com>
2219         * sem_ch13.adb (Analyze_Aspect_Specifications): Add a new nested
2220         function, Directly_Specified, and then use it in the
2221         implementation of the required check.
2223 2021-09-21  Steve Baird  <baird@adacore.com>
2225         * libgnat/a-costso.ads, libgnat/a-costso.adb: A new library
2226         unit, Ada.Containers.Stable_Sorting, which exports a pair of
2227         generics (one within the other) which are instantiated by each
2228         of the 5 doubly-linked list container generics to implement
2229         their respective Sort procedures. We use a pair of generics,
2230         rather than a single generic, in order to further reduce code
2231         duplication. The outer generic takes a formal private Node_Ref
2232         type representing a reference to a linked list element. For some
2233         instances, the corresponding actual parameter will be an access
2234         type; for others, it will be the index type for an array.
2235         * Makefile.rtl: Include new Ada.Containers.Stable_Sorting unit.
2236         * libgnat/a-cbdlli.adb, libgnat/a-cdlili.adb,
2237         libgnat/a-cfdlli.adb, libgnat/a-cidlli.adb, libgnat/a-crdlli.adb
2238         (Sort): Replace existing Sort implementation with a call to an
2239         instance of
2240         Ada.Containers.Stable_Sorting.Doubly_Linked_List_Sort. Declare
2241         the (trivial) actual parameters needed to declare that instance.
2242         * libgnat/a-cfdlli.ads: Fix a bug encountered during testing in
2243         the postcondition for M_Elements_Sorted. With a partial
2244         ordering, it is possible for all three of (X < Y), (Y < X),
2245         and (X = Y) to be simultaneously false, so that case needs to
2246         handled correctly.
2248 2021-09-21  Piotr Trojanek  <trojanek@adacore.com>
2250         * errout.adb (Error_Msg_Internal): Fix references to Sptr and
2251         Optr in comment; fix grammar of "low-level" where it is used as
2252         an adjective.
2254 2021-09-21  Piotr Trojanek  <trojanek@adacore.com>
2256         * errout.adb (Write_Source_Code_Lines): Use Cur_Loc before
2257         incrementing it, so that we don't need to decrement it.
2259 2021-09-21  Yannick Moy  <moy@adacore.com>
2261         * errout.adb (Get_Line_End): Do not allow the result to go past
2262         the end of the buffer.
2264 2021-09-21  Ed Schonberg  <schonberg@adacore.com>
2266         * sem_ch3.adb (Process_Discriminant_Expressions): If the
2267         constraint is for a Component_Definition that appears in a
2268         Component_Declaration, the entity to be used to create the
2269         potentially global symbol is the Defining_Identifier of the
2270         Component_Declaration.
2272 2021-09-21  Bob Duff  <duff@adacore.com>
2274         * libgnat/a-stbufi.ads, libgnat/a-stbufi.adb: Change all
2275         occurrences of GNAT.OS_Lib to System.OS_Lib.
2277 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2279         * inline.adb (Has_Excluded_Declaration): Remove redundant guard;
2280         the guarded code will call First on a No_List, which is
2281         well-defined and gives Empty.
2283 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2285         * inline.adb (Has_Excluded_Declaration): Rename and reduce scope
2286         of a local variable.
2288 2021-09-20  Bob Duff  <duff@adacore.com>
2290         * uintp.ads, uintp.adb (Present, No): New functions for
2291         comparing with No_Uint.
2292         * checks.adb, einfo-utils.adb, exp_aggr.adb, exp_attr.adb,
2293         exp_ch3.adb, exp_ch4.adb, exp_dbug.adb, exp_disp.adb,
2294         exp_util.adb, repinfo.adb, repinfo-input.adb, scn.adb,
2295         sem_attr.adb, sem_ch13.adb, sem_eval.adb, sem_util.adb,
2296         sinfo-utils.adb, treepr.adb: Use Present (...) instead of "...
2297         /= No_Uint", and No (...) instead of "... = No_Uint".
2299 2021-09-20  Claire Dross  <dross@adacore.com>
2301         * libgnat/s-ficobl.ads: The entire package has a SPARK_Mode =>
2302         Off aspect.
2304 2021-09-20  Doug Rupp  <rupp@adacore.com>
2306         * libgnat/a-calend.adb: Remove time_t, replace with OS_Time.
2307         * libgnat/s-os_lib.ads: Fix comments regarding time_t conversion
2308         functions to reflect the use of To_Ada in in Ada.Calendar
2309         package body.
2310         * sysdep.c (__gnat_localtime_tzoff): Use OS_Time instead of
2311         time_t.
2313 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2315         * sem_res.adb (Resolve_Actual): Remove
2317 2021-09-20  Bob Duff  <duff@adacore.com>
2319         * einfo-utils.ads, einfo-utils.adb, fe.h, einfo.ads,
2320         gen_il-fields.ads: Remove unused and no-longer-used routines.
2321         Move related routines together.  Rewrite incorrect
2322         documentation, and documentation that will be incorrect when
2323         e.g. Esize-related routines are fixed.  Remove unused field
2324         Normalized_Position_Max.
2325         * cstand.adb, exp_pakd.adb, freeze.adb,
2326         gen_il-gen-gen_entities.adb, itypes.adb, layout.adb,
2327         sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
2328         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb,
2329         sem_util.adb, ttypes.ads: Update calls to routines removed from
2330         or renamed in Einfo.Utils.
2331         * uintp.ads (Upos): Fix this subtype, which was unintentionally
2332         declared to include Uint_0.
2334 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2336         * exp_ch7.adb (Expand_N_Package_Declaration): Fix wording in
2337         comment.
2338         * exp_disp.adb (Mark_DT): Remove unnecessary initialization of
2339         I_Depth.
2341 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2343         * contracts.adb (Add_Contract_Item): Accept volatile-related
2344         properties on constants.
2345         (Analyze_Object_Contract): Check external properties on
2346         constants; accept volatile constants.
2347         (Check_Type_Or_Object_External_Properties): Replace "variable"
2348         with "object" in error messages; replace Decl_Kind with a local
2349         constant.
2350         * sem_prag.adb (Analyze_Pragma): Accept volatile-related
2351         properties on constants.
2353 2021-09-20  Pierre-Alexandre Bazin  <bazin@adacore.com>
2355         * libgnat/a-strfix.adb ("*"): Added loop invariants and lemmas
2356         for proof.
2357         (Delete): Added assertions for proof, and conditions to avoid
2358         overflow.
2359         (Head): Added loop invariant.
2360         (Insert): Same as Delete.
2361         (Move): Declared with SPARK_Mode Off.
2362         (Overwrite): Added assertions for proof, and conditions to avoid
2363         overflow.
2364         (Replace_Slice): Added assertions for proof, and conditions to
2365         avoid overflow.
2366         (Tail): Added loop invariant and avoided overflows.
2367         (Translate): Added loop invariants.
2368         (Trim): Ensured empty strings returned start at 1.
2369         * libgnat/a-strfix.ads (Index): Rewrote contract cases for
2370         easier proof.
2371         (Index_Non_Blank): Separated the null string case.
2372         (Count): Specified Mapping shouldn't be null.
2373         (Find_Token): Specified Source'First should be Positive when no
2374         From is given.
2375         (Translate): Specified Mapping shouldn't be null.
2376         ("*"): Rewrote postcondition for easier proof.
2377         * libgnat/a-strsea.adb (Belongs): Added postcondition.
2378         (Count): Rewrote loops and added loop invariants to avoid
2379         overflows.
2380         (Find_Token): Added loop invariants.
2381         (Index): Rewrote loops to avoid overflows and added loop
2382         invariants for proof.
2383         (Index_Non_Blank): Added loop invariants.
2384         (Is_Identity): New function isolated without SPARK_Mode.
2385         * libgnat/a-strsea.ads: Fix starting comment as package is no
2386         longer private.
2387         (Match): Declared ghost expression function Match.
2388         (Is_Identity): Described identity in the postcondition.
2389         (Index, Index_Non_Blank, Count, Find_Token): Added contract from
2390         a-strfix.ads.
2392 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2394         * sem_ch13.adb (Resolve_Aspect_Aggregate): Move comments after
2395         specs; fix typo in header box; cleanup whitespace.
2397 2021-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2399         * libgnat/s-objrea.adb (Get_Load_Address): Return 0 for ELF.
2401 2021-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2403         * adaint.c (__gnat_get_executable_load_address): Add Win32 support.
2404         * libgnat/s-objrea.ads (Get_Xcode_Bounds): Fix typo in comment.
2405         (Object_File): Minor reformatting.
2406         (ELF_Object_File): Uncomment predicate.
2407         (PECOFF_Object_File): Likewise.
2408         (XCOFF32_Object_File): Likewise.
2409         * libgnat/s-objrea.adb: Minor reformatting throughout.
2410         (Get_Load_Address): Implement for PE-COFF.
2411         * libgnat/s-dwalin.ads: Remove clause for System.Storage_Elements
2412         and use consistent wording in comments.
2413         (Dwarf_Context): Set type of Low, High and Load_Address to Address.
2414         * libgnat/s-dwalin.adb (Get_Load_Displacement): New function.
2415         (Is_Inside): Call Get_Load_Displacement.
2416         (Low_Address): Likewise.
2417         (Open): Adjust to type change.
2418         (Aranges_Lookup): Change type of Addr to Address.
2419         (Read_Aranges_Entry): Likewise for Start and adjust.
2420         (Enable_Cach): Adjust to type change.
2421         (Symbolic_Address): Change type of Addr to Address.
2422         (Symbolic_Traceback): Call Get_Load_Displacement.
2424 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2426         * exp_disp.adb (Make_DT): Move call to Set_Has_Dispatch_Table,
2427         so it is executed regardless of the Generate_SCIL mode.
2429 2021-09-20  Ed Schonberg  <schonberg@adacore.com>
2431         * exp_util.ads (Force_Evaluation): Add formal parameter
2432         Discr_Number, to indicate discriminant expression for which an
2433         external name must be created.
2434         (Remove_Side_Effects): Ditto.
2435         * exp_util.adb (Force_Evaluation): Call Remove_Side_Effects with
2436         added parameter.
2437         (Remove_Side_Effects, Build_Temporary): If Discr_Number is
2438         positive, create an external name with suffix DISCR and the
2439         given discriminant number, analogous to what is done for
2440         temporaries for array type bounds.
2441         * sem_ch3.adb (Process_Discriminant_Expressions): If the
2442         constraint is for an object or component declaration and the
2443         corresponding entity may be visible in another unit, invoke
2444         Force_Evaluation with the new parameter.
2446 2021-09-20  Arnaud Charlet  <charlet@adacore.com>
2448         * gen_il-internals.ads (Invalid_Val): Remove, unused and
2449         generates warnings.
2451 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2453         * exp_aggr.adb, exp_ch4.adb, exp_ch5.adb, sprint.adb: Refine
2454         types of local constants.
2456 2021-09-20  Gary Dismukes  <dismukes@adacore.com>
2458         * exp_attr.adb (Expand_N_Attribute_Reference): Fold
2459         Preelaborable_Initialization attribute in cases where it hasn't
2460         been folded by the analyzer.
2461         * exp_disp.adb (Original_View_In_Visible_Part): This function is
2462         removed and moved to sem_util.adb.
2463         * sem_attr.adb (Attribute_22): Add
2464         Attribute_Preelaborable_Initialization as an Ada 2022 attribute.
2465         (Analyze_Attribute, Attribute_Preelaborable_Initialization):
2466         Check that the prefix of the attribute is either a formal
2467         private or derived type, or a composite type declared within the
2468         visible part of a package or generic package.
2469         (Eval_Attribute): Perform folding of
2470         Preelaborable_Initialization attribute based on
2471         Has_Preelaborable_Initialization applied to the prefix type.
2472         * sem_ch3.adb (Resolve_Aspects): Add specialized code for
2473         Preelaborable_Initialization used at the end of a package
2474         visible part for setting Known_To_Have_Preelab_Init on types
2475         that are specified with True or that have a conjunction of one
2476         or more P_I attributes applied to formal types.
2477         * sem_ch7.adb (Analyze_Package_Specification): On call to
2478         Has_Preelaborable_Initialization, pass True for new formal
2479         Formal_Types_Have_Preelab_Init, so that error checking treats
2480         subcomponents that are declared within types in generics as
2481         having preelaborable initialization when the subcomponents are
2482         of formal types.
2483         * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add test for
2484         P_I to prevent calling Make_Pragma_From_Boolean_Aspect, since
2485         this aspect is handled specially and the
2486         Known_To_Have_Preelab_Init flag will get set on types that have
2487         the aspect by other means.
2488         (Analyze_Aspect_Specifications.Analyze_One_Aspect): Add test for
2489         Aspect_Preelaborable_Initialization for allowing the aspect to
2490         be specified on formal type declarations.
2491         (Is_Operational_Item): Treat Attribute_Put_Image as an
2492         operational attribute.  The need for this was encountered while
2493         working on these changes.
2494         * sem_util.ads (Has_Preelaborable_Initialization): Add
2495         Formal_Types_Have_Preelab_Init as a new formal parameter that
2496         defaults to False.
2497         (Is_Conjunction_Of_Formal_Preelab_Init_Attributes): New
2498         function.
2499         (Original_View_In_Visible_Part): Moved here from exp_disp.adb,
2500         so it can be called by Analyze_Attribute.
2501         * sem_util.adb (Has_Preelaborable_Initialization): Return True
2502         for formal private and derived types when new formal
2503         Formal_Types_Have_Preelab_Init is True, and pass along the
2504         Formal_Types_Have_Preelab_Init flag in the array component case.
2505         (Check_Components): Pass along Formal_Types_Have_Preelab_Init
2506         flag on call to Has_Preelaborable_Initialization.
2507         (Is_Conjunction_Of_Formal_Preelab_Init_Attributes): New function
2508         that returns True when passed an expression that includes one or
2509         more attributes for Preelaborable_Initialization applied to
2510         prefixes that denote formal types.
2511         (Is_Formal_Preelab_Init_Attribute): New utility function nested
2512         within Is_Conjunction_Of_Formal_Preelab_Init_Attributes that
2513         determines whether a node is a P_I attribute applied to a
2514         generic formal type.
2515         (Original_View_In_Visible_Part): Moved here from exp_util.adb,
2516         so it can be called by Analyze_Attribute.
2517         * snames.ads-tmpl: Add note near the start of spec giving
2518         details about what needs to be done when adding a name that
2519         corresponds to both an attribute and a pragma.  Delete existing
2520         occurrence of Name_Preelaborable_Initialization, and add a note
2521         comment in the list of Name_* constants at that place,
2522         indicating that it's included in type Pragma_Id, etc., echoing
2523         other such comments for names that are both an attribute and a
2524         pragma.  Insert Name_Preelaborable_Initialization in the
2525         alphabetized set of Name_* constants corresponding to
2526         attributes (between First_Attribute_Name and
2527         Last_Attribute_Name).
2528         (type Attribute_Id): Add new literal
2529         Attribute_Preelaborable_Initialization.
2530         (type Pragma_Id): Move Pragma_Preelaborable_Initialization from
2531         its current position to the end of the type, in the special set
2532         of pragma literals that have corresponding atttributes. Add to
2533         accompanying comment, indicating that functions Get_Pragma_Id
2534         and Is_Pragma_Name need to be updated when adding a pragma
2535         literal to the special set.
2536         * snames.adb-tmpl (Get_Pragma_Id): Add case alternative for
2537         Pragma_Preelaborable_Initialization.
2538         (Is_Pragma_Name): Add test for
2539         Name_Preelaborable_Initialization.
2541 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2543         * sem_ch4.adb (Finc_Non_Universal_Interpretations): Fix check.
2545 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2547         * sem_ch3.adb (Build_Discriminant_Constraints): Exit once a
2548         first discriminant is found and the Discrim_Present flag is set.
2550 2021-09-20  Bob Duff  <duff@adacore.com>
2552         * gnat1drv.adb (Gnat1drv): Avoid calling List_Rep_Info in
2553         Generate_SCIL and GNATprove_Mode.
2554         * repinfo.adb (List_Common_Type_Info): Fix comment.
2556 2021-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2558         * libgnat/s-dwalin.ads: Remove clause for Ada.Exceptions.Traceback,
2559         add clause for System.Traceback_Entries and alphabetize.
2560         (AET): Delete.
2561         (STE): New package renaming.
2562         (Symbolic_Traceback): Adjust.
2563         * libgnat/s-dwalin.adb: Remove clauses for Ada.Exceptions.Traceback
2564         and System.Traceback_Entries.
2565         (Symbolic_Traceback): Adjust.
2567 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2569         * sem_ch4.adb (Find_Non_Universal_Interpretations): Check if
2570         types are compatible before adding interpretation.
2572 2021-09-20  Justin Squirek  <squirek@adacore.com>
2574         * exp_ch4.adb (Expand_N_Type_Conversion): Add guard to protect
2575         against calculating accessibility levels against internal
2576         compiler-generated types.
2578 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2580         * sem_dim.adb (Dimensions_Msg_Of): Capitalize comment.
2582 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2584         * adabkend.adb (Scan_Back_End_Switches): Replace switch-scanning
2585         logic with call to Backend_Utils.Scan_Common_Back_End_Switches.
2586         * back_end.adb (Scan_Back_End_Switches): Replace switch-scanning
2587         logic with call to Backend_Utils.Scan_Common_Back_End_Switches.
2588         * backend_utils.adb: New file.
2589         * backend_utils.ads: New file.
2590         * gcc-interface/Make-lang.in: Add ada/backend_utils.o.
2592 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2594         * atree.adb (Get_32_Bit_Field): Declare result before returning.
2596 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2598         * exp_ch7.adb (Expand_N_Package_Body): Replace
2599         Build_And_Insert_Cuda_Initialization with Expand_CUDA_Package.
2600         * gnat_cuda.adb (Expand_CUDA_Package): New procedure.
2601         (Build_And_Insert_Cuda_Initialization): Make internal.
2602         * gnat_cuda.ads (Expand_CUDA_Package): New procedure.
2603         (Build_And_Insert_Cuda_Initialization): Remove from spec.
2605 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2607         * usage.adb (Usage): Update -gnatw.c messages.
2609 2021-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2611         * sem_aux.adb (Is_By_Reference_Type): Do not test Error_Posted.
2613 2021-09-15  Alexandre Oliva  <oliva@adacore.com>
2615         * gcc-interface/utils.c: Include opts.h.
2616         (handle_zero_call_used_regs_attribute): New.
2617         (gnat_internal_attribute_table): Add zero_call_used_regs.
2619 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2621         PR ada/101970
2622         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Enum_Rep>:
2623         Use an unchecked conversion instead of a regular conversion in the
2624         enumeration case and remove Conversion_OK flag in the integer case.
2625         <Attribute_Pos>: Remove superfluous test.
2627 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2629         * gcc-interface/decl.c (validate_size): Do not issue an error if the
2630         old size has overflowed.
2632 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2634         * gcc-interface/decl.c (gnat_to_gnu_entity): For vector types, make
2635         the representative array the debug type.
2637 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2639         * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Turn variable
2640         into constant.  Capitalize GCC in warning message.
2641         (intrin_arglists_compatible_p): Change parameter to pointer-to-const
2642         Adjust warning messages.  Turn warning into error for vector types.
2643         (intrin_return_compatible_p): Likewise.
2644         (intrin_profiles_compatible_p): Change parameter to pointer-to-const
2646 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2648         * libgnat/s-atopri.ads (bool): Delete.
2649         (Atomic_Test_And_Set): Replace bool with Boolean.
2650         (Atomic_Always_Lock_Free): Likewise.
2651         * libgnat/s-aoinar.adb (Is_Lock_Free): Adjust.
2652         * libgnat/s-aomoar.adb (Is_Lock_Free): Likewise.
2653         * libgnat/s-aotase.adb (Atomic_Test_And_Set): Likewise.
2654         * libgnat/s-atopex.adb (Atomic_Compare_And_Exchange): Likewise.
2655         * gcc-interface/decl.c: Include gimple-expr.h.
2656         (intrin_types_incompatible_p): Delete.
2657         (intrin_arglists_compatible_p): Call types_compatible_p.
2658         (intrin_return_compatible_p): Likewise.
2660 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2662         * gcc-interface/utils.c (update_pointer_to): Set TYPE_CANONICAL on
2663         pointer and reference types.
2665 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2667         PR ada/101385
2668         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
2669         (-Wall): Minor fixes.
2670         (-w): Likewise.
2671         (-Werror): Document that it also sets -gnatwe by default.
2672         * gcc-interface/lang-specs.h (ada): Expand -gnatwe if -Werror is
2673         passed and move expansion of -gnatw switches to before -gnatez.
2675 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2677         * gcc-interface/utils.c (can_materialize_object_renaming_p): Do not
2678         call UI_Is_In_Int_Range on the result of Normalized_First_Bit.
2680 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2682         * gcc-interface/decl.c (gnat_to_gnu_entity) <is_type>: Declare new
2683         constant.  Adjust error message issued by validate_size in the case
2684         of by-reference types.
2685         (validate_size): Always use the error strings passed by the caller.
2687 2021-09-08  liuhongt  <hongtao.liu@intel.com>
2689         * gcc-interface/misc.c (gnat_post_options): Issue an error for
2690         -fexcess-precision=16.
2692 2021-08-19  Arnaud Charlet  <charlet@adacore.com>
2694         PR ada/101924
2695         * gcc-interface/Make-lang.in (STAGE1_LIBS): Define on hpux.
2697 2021-08-18  Eric Botcazou  <ebotcazou@gcc.gnu.org>
2699         * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Fix
2700         thinko in latest change.
2702 2021-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2704         PR debug/101598
2705         * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the
2706         DECL_SOURCE_LOCATION of DECL_IGNORED_P gnu_subprog_decl to
2707         UNKNOWN_LOCATION.
2709 2021-07-25  Arnaud Charlet  <charlet@adacore.com>
2711         * libgnat/s-osprim__x32.adb: Add missing with clause.
2713 2021-07-12  Pierre-Marie de Rodat  <derodat@adacore.com>
2715         * adaint.c (__gnat_number_of_cpus): Replace "#ifdef" by "#if
2716         defined".
2718 2021-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2720         * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Add a
2721         parallel type only when -fgnat-encodings=all is specified.
2722         <E_Array_Type>: Use the PAT name and special suffixes only when
2723         -fgnat-encodings=all is specified.
2724         <E_Array_Subtype>: Build a special type for debugging purposes only
2725         when -fgnat-encodings=all is specified.  Add a parallel type or use
2726         the PAT name only when -fgnat-encodings=all is specified.
2727         <E_Record_Type>: Generate debug info for the inner record types only
2728         when -fgnat-encodings=all is specified.
2729         <E_Record_Subtype>: Use a debug type for an artificial subtype only
2730         except when -fgnat-encodings=all is specified.
2731         (elaborate_expression_1): Reset need_for_debug when possible only
2732         except when -fgnat-encodings=all is specified.
2733         (components_to_record): Use XV encodings for variable size only
2734         when -fgnat-encodings=all is specified.
2735         (associate_original_type_to_packed_array): Add a parallel type only
2736         when -fgnat-encodings=all is specified.
2737         * gcc-interface/misc.c (gnat_get_array_descr_info): Do not return
2738         full information only when -fgnat-encodings=all is specified.
2739         * gcc-interface/utils.c (make_packable_type): Add a parallel type
2740         only when -fgnat-encodings=all is specified.
2741         (maybe_pad_type): Make the inner type a debug type only except when
2742         -fgnat-encodings=all is specified.  Create an XVS type for variable
2743         size only when -fgnat-encodings=all is specified.
2744         (rest_of_record_type_compilation): Add a parallel type only when
2745         -fgnat-encodings=all is specified.
2747 2021-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2749         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Use a
2750         fixed lower bound if the index subtype is marked so, as well as a
2751         more efficient formula for the upper bound if the array cannot be
2752         superflat.
2753         (flb_cannot_be_superflat): New predicate.
2754         (cannot_be_superflat): Rename into...
2755         (range_cannot_be_superfla): ...this.  Minor tweak.
2757 2021-07-12  Bob Duff  <duff@adacore.com>
2759         * uintp.ads, types.h: New subtypes of Uint: Valid_Uint, Unat,
2760         Upos, Nonzero_Uint with predicates. These correspond to new
2761         field types in Gen_IL.
2762         * gen_il-types.ads (Valid_Uint, Unat, Upos, Nonzero_Uint): New
2763         field types.
2764         * einfo-utils.ads, einfo-utils.adb, fe.h (Known_Alignment,
2765         Init_Alignment): Use the initial zero value to represent
2766         "unknown". This will ensure that if Alignment is called before
2767         Set_Alignment, the compiler will blow up (if assertions are
2768         enabled).
2769         * atree.ads, atree.adb, atree.h, gen_il-gen.adb
2770         (Get_Valid_32_Bit_Field): New generic low-level getter for
2771         subtypes of Uint.
2772         (Copy_Alignment): New procedure to copy Alignment field even
2773         when Unknown.
2774         (Init_Object_Size_Align, Init_Size_Align): Do not bypass the
2775         Init_ procedures.
2776         * exp_pakd.adb, freeze.adb, layout.adb, repinfo.adb,
2777         sem_util.adb: Protect calls to Alignment with Known_Alignment.
2778         Use Copy_Alignment when it might be unknown.
2779         * gen_il-gen-gen_entities.adb (Alignment,
2780         String_Literal_Length): Use type Unat instead of Uint, to ensure
2781         that the field is always Set_ before we get it, and that it is
2782         set to a nonnegative value.
2783         (Enumeration_Pos): Unat.
2784         (Enumeration_Rep): Valid_Uint. Can be negative, but must be
2785         valid before fetching.
2786         (Discriminant_Number): Upos.
2787         (Renaming_Map): Remove.
2788         * gen_il-gen-gen_nodes.adb (Char_Literal_Value, Reason): Unat.
2789         (Intval, Corresponding_Integer_Value): Valid_Uint.
2790         * gen_il-internals.ads: New functions for dealing with special
2791         defaults and new subtypes of Uint.
2792         * scans.ads: Correct comments.
2793         * scn.adb (Post_Scan): Do not set Intval to No_Uint; that is no
2794         longer allowed.
2795         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Do
2796         not set Enumeration_Rep to No_Uint; that is no longer allowed.
2797         (Offset_Value): Protect calls to Alignment with Known_Alignment.
2798         * sem_prag.adb (Set_Atomic_VFA): Do not use Uint_0 to mean
2799         "unknown"; call Init_Alignment instead.
2800         * sinfo.ads: Minor comment fix.
2801         * treepr.adb: Deal with printing of new field types.
2802         * einfo.ads, gen_il-fields.ads (Renaming_Map): Remove.
2803         * gcc-interface/decl.c (gnat_to_gnu_entity): Use Known_Alignment
2804         before calling Alignment. This preserve some probably buggy
2805         behavior: if the alignment is not set, it previously defaulted
2806         to Uint_0; we now make that explicit.  Use Copy_Alignment,
2807         because "Set_Alignment (Y, Alignment (X));" no longer works when
2808         the Alignment of X has not yet been set.
2809         * gcc-interface/trans.c (process_freeze_entity): Use
2810         Copy_Alignment.
2812 2021-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2814         * libgnat/s-dwalin.ads: Adjust a few comments left and right.
2815         (Line_Info_Register): Comment out unused components.
2816         (Line_Info_Header): Add DWARF 5 support.
2817         (Dwarf_Context): Likewise.  Rename "prologue" into "header".
2818         * libgnat/s-dwalin.adb: Alphabetize "with" clauses.
2819         (DWARF constants): Add DWARF 5 support and reorder.
2820         (For_Each_Row): Adjust.
2821         (Initialize_Pass): Likewise.
2822         (Initialize_State_Machine): Likewise and fix typo.
2823         (Open): Add DWARF 5 support.
2824         (Parse_Prologue): Rename into...
2825         (Parse_Header): ...this and add DWARF 5 support.
2826         (Read_And_Execute_Isn): Rename into...
2827         (Read_And_Execute_Insn): ...this and adjust.
2828         (To_File_Name): Change parameter name and add DWARF 5 support.
2829         (Read_Entry_Format_Array): New procedure.
2830         (Skip_Form): Add DWARF 5 support and reorder.
2831         (Seek_Abbrev): Do not count entries and add DWARF 5 support.
2832         (Debug_Info_Lookup): Add DWARF 5 support.
2833         (Symbolic_Address.Set_Result): Likewise.
2834         (Symbolic_Address): Adjust.
2836 2021-07-12  Bob Duff  <duff@adacore.com>
2838         * sem_ch13.adb (Duplicate_Clause): Add a helper routine
2839         Check_One_Attr, with a parameter for the attribute_designator we
2840         are looking for, and one for the attribute_designator of the
2841         current node (which are usually the same). For Size and
2842         Value_Size, call it twice, once for each.
2843         * errout.ads: Fix a typo.
2845 2021-07-12  Piotr Trojanek  <trojanek@adacore.com>
2847         * exp_imgv.adb (Expand_Image_Attribute): Move rewriting to
2848         attribute Put_Image to the beginning of expansion of attribute
2849         Image.
2851 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2853         * gcc-interface/utils.c (finish_subprog_decl): Remove obsolete line.
2855 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2857         * exp_put_image.adb (Make_Put_Image_Name): Fix style.
2858         (Image_Should_Call_Put_Image): Likewise.
2859         (Build_Image_Call): Likewise.
2861 2021-07-09  Ghjuvan Lacambre  <lacambre@adacore.com>
2863         * par-ch6.adb (Contains_Import_Aspect): New function.
2864         (P_Subprogram): Acknowledge `Import` aspects.
2866 2021-07-09  Bob Duff  <duff@adacore.com>
2868         * exp_put_image.adb (Make_Component_Attributes): Use
2869         Implementation_Base_Type to get the parent type. Otherwise,
2870         Parent_Type_Decl is actually an internally generated subtype
2871         declaration, so we blow up on
2872         Type_Definition (Parent_Type_Decl).
2874 2021-07-09  Dmitriy Anisimkov  <anisimko@adacore.com>
2876         * gsocket.h: Include net/if.h to get IF_NAMESIZE constant.
2877         * s-oscons-tmplt.c: Define IPV6_FLOWINFO for Linux.
2879 2021-07-09  Steve Baird  <baird@adacore.com>
2881         * libgnat/a-cdlili.adb: Reimplement
2882         Ada.Containers.Doubly_Linked_Lists.Generic_Sorting.Sort using
2883         Mergesort instead of the previous Quicksort variant.
2885 2021-07-09  Justin Squirek  <squirek@adacore.com>
2887         * exp_ch6.adb (Is_Build_In_Place_Function_Call): Add check to
2888         verify the Selector_Name of Exp_Node has been analyzed before
2889         obtaining its entity.
2891 2021-07-09  Gary Dismukes  <dismukes@adacore.com>
2893         * libgnarl/s-osinte__vxworks.ads: Fix typo ("release" =>
2894         "releases") plus comment reformatting.
2895         * libgnat/s-os_lib.ads: In a comment, fix typo ("indended" =>
2896         "intended"), add a hyphen and semicolon, plus reformatting. In
2897         comment for subtype time_t, fix typo ("effect" => "affect"), add
2898         hyphens, plus reformatting.
2899         * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
2900         libgnat/s-parame__hpux.ads: Remove period from one-line comment.
2902 2021-07-09  Steve Baird  <baird@adacore.com>
2904         * exp_ch5.adb (Expand_General_Case_Statement): Add new function
2905         Else_Statements to handle the case of invalid data analogously
2906         to how it is handled when casing on a discrete value.
2907         * sem_case.adb (Has_Static_Discriminant_Constraint): A new
2908         Boolean-valued function.
2909         (Composite_Case_Ops.Scalar_Part_Count): Include discriminants
2910         when traversing components.
2911         (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts):
2912         Include discriminants when traversing components; the component
2913         range for a constrained discriminant is a single value.
2914         (Composite_Case_Ops.Choice_Analysis.Parse_Choice): Eliminate
2915         Done variable and modify how Next_Part is computed so that it is
2916         always correct (as opposed to being incorrect when Done is
2917         True).  This includes changes in Update_Result (a local
2918         procedure).  Add new local procedure
2919         Update_Result_For_Box_Component and call it not just for box
2920         components but also for "missing" components (components
2921         associated with an inactive variant).
2922         (Check_Choices.Check_Composite_Case_Selector.Check_Component_Subtype):
2923         Instead of disallowing all discriminated component types, allow
2924         those that are unconstrained or statically constrained. Check
2925         discriminant subtypes along with other component subtypes.
2926         * doc/gnat_rm/implementation_defined_pragmas.rst: Update
2927         documentation to reflect current implementation status.
2928         * gnat_rm.texi: Regenerate.
2930 2021-07-09  Justin Squirek  <squirek@adacore.com>
2932         * sem_ch6.adb (Check_Pragma_Inline): Correctly use
2933         Corresponding_Spec_Of_Stub when dealing subprogram body stubs.
2935 2021-07-09  Doug Rupp  <rupp@adacore.com>
2937         * Makefile.rtl: Add translations for s-parame__posix2008.ads
2938         * libgnarl/s-linux.ads: Import System.Parameters.
2939         (time_t): Declare using System.Parameters.time_t_bits.
2940         * libgnarl/s-linux__alpha.ads: Likewise.
2941         * libgnarl/s-linux__android.ads: Likewise.
2942         * libgnarl/s-linux__hppa.ads: Likewise.
2943         * libgnarl/s-linux__mips.ads: Likewise.
2944         * libgnarl/s-linux__riscv.ads: Likewise.
2945         * libgnarl/s-linux__sparc.ads: Likewise.
2946         * libgnarl/s-linux__x32.ads: Likewise.
2947         * libgnarl/s-qnx.ads: Likewise.
2948         * libgnarl/s-osinte__aix.ads: Likewise.
2949         * libgnarl/s-osinte__android.ads: Likewise.
2950         * libgnarl/s-osinte__darwin.ads: Likewise.
2951         * libgnarl/s-osinte__dragonfly.ads: Likewise.
2952         * libgnarl/s-osinte__freebsd.ads: Likewise.
2953         * libgnarl/s-osinte__gnu.ads: Likewise.
2954         * libgnarl/s-osinte__hpux-dce.ads: Likewise.
2955         * libgnarl/s-osinte__hpux.ads: Likewise.
2956         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
2957         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
2958         * libgnarl/s-osinte__qnx.ads: Likewise.
2959         * libgnarl/s-osinte__rtems.ads: Likewise.
2960         * libgnarl/s-osinte__solaris.ads: Likewise.
2961         * libgnarl/s-osinte__vxworks.ads: Likewise.
2962         * libgnat/g-sothco.ads: Likewise.
2963         * libgnat/s-osprim__darwin.adb: Likewise.
2964         * libgnat/s-osprim__posix.adb: Likewise.
2965         * libgnat/s-osprim__posix2008.adb: Likewise.
2966         * libgnat/s-osprim__rtems.adb: Likewise.
2967         * libgnat/s-osprim__x32.adb: Likewise.
2968         * libgnarl/s-osinte__linux.ads: use type System.Linux.time_t.
2969         * libgnat/s-os_lib.ads (time_t): Declare as subtype of
2970         Long_Long_Integer.
2971         * libgnat/s-parame.ads (time_t_bits): New constant.
2972         * libgnat/s-parame__ae653.ads (time_t_bits): Likewise.
2973         * libgnat/s-parame__hpux.ads (time_t_bits): Likewise.
2974         * libgnat/s-parame__vxworks.ads (time_t_bits): Likewise.
2975         * libgnat/s-parame__posix2008.ads: New file for 64 bit time_t.
2977 2021-07-09  Bob Duff  <duff@adacore.com>
2979         * comperr.adb (Compiler_Abort): Print source file name.
2981 2021-07-09  Joffrey Huguet  <huguet@adacore.com>
2983         * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Fix layout
2984         in contracts.
2986 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2988         * repinfo.ads (JSON output format): Document adjusted key name.
2989         * repinfo.adb (List_Record_Layout): Use Original_Record_Component
2990         if the normalized position of the component is not known.
2991         (List_Structural_Record_Layout): Rename Outer_Ent parameter into
2992         Ext_End and add Ext_Level parameter. In an extension, if the parent
2993         subtype has static discriminants, call List_Record_Layout on it.
2994         Output "parent_" prefixes before "variant" according to Ext_Level.
2995         Adjust recursive calls throughout the procedure.
2997 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2999         * exp_util.ads (Map_Types): Fix typo.
3001 2021-07-09  Fedor Rybin  <frybin@adacore.com>
3003         * krunch.adb: Add safeguards against index range violations.
3005 2021-07-09  Arnaud Charlet  <charlet@adacore.com>
3007         * libgnat/a-strfix.adb: Take advantage of extended returns.
3009 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
3011         * doc/gnat_rm/implementation_defined_attributes.rst
3012         (Scalar_Storage_Order): Add paragraph about representation
3013         changes.
3014         * gnat_rm.texi: Regenerate.
3016 2021-07-09  Frederic Konrad  <konrad@adacore.com>
3018         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <aarch64*-*-rtems*>: Use
3019         the wraplf variant of Aux_Long_Long_Float.
3021 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3023         * sem_ch6.adb (Analyze_Expression_Function): Initialize Orig_N
3024         and Typ variables.
3026 2021-07-09  Arnaud Charlet  <charlet@adacore.com>
3028         * sem_ch13.adb (Resolve_Aspect_Expressions): Use the same
3029         processing for Predicate, Static_Predicate and
3030         Dynamic_Predicate. Do not build the predicate function spec.
3031         Update comments.
3032         (Resolve_Name): Only reset Entity when necessary to avoid
3033         spurious visibility errors.
3034         (Check_Aspect_At_End_Of_Declarations): Handle consistently all
3035         Predicate aspects.
3036         * sem_ch3.adb (Analyze_Subtype_Declaration): Fix handling of
3037         private types with predicates.
3039 2021-07-09  Justin Squirek  <squirek@adacore.com>
3041         * sem_util.ads (Type_Access_Level): Add new optional parameter
3042         Assoc_Ent.
3043         * sem_util.adb (Accessibility_Level): Treat access discriminants
3044         the same as components when the restriction
3045         No_Dynamic_Accessibility_Checks is enabled.
3046         (Deepest_Type_Access_Level): Remove exception for
3047         Debug_Flag_Underscore_B when returning the result of
3048         Type_Access_Level in the case where
3049         No_Dynamic_Accessibility_Checks is active.
3050         (Function_Call_Or_Allocator_Level): Correctly calculate the
3051         level of Expr based on its containing subprogram instead of
3052         using Current_Subprogram.
3053         * sem_res.adb (Valid_Conversion): Add actual for new parameter
3054         Assoc_Ent in call to Type_Access_Level, and add test of
3055         No_Dynamic_Accessibility_Checks_Enabled to ensure that static
3056         accessibility checks are performed for all anonymous access type
3057         conversions.
3059 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
3061         * exp_dbug.ads: Update documentation of various items.
3063 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3065         * sem_ch6.adb (Analyze_Expression_Function): Reorder code.
3067 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3069         * sem_ch6.adb (Analyze_Expression_Function): Reorder code.
3071 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3073         * sem_ch6.adb (Analyze_Expression_Function): Add variable to
3074         avoid repeated calls to Etype.
3076 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3078         * sem_ch6.adb (Analyze_Expression_Function): Fix comment.
3080 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3082         * sem_ch6.adb (Analyze_Expression_Function): Use Orig_N variable
3083         instead of repeated calls to Original_Node.
3085 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3087         * sem_ch6.adb (Analyze_Expression_Function): Change types local
3088         variables from Entity_Id to Node_Id.
3090 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3092         * sem_ch6.adb (Analyze_Expression_Function): A local Expr
3093         constant was shadowing a global constant with the same name and
3094         the same value.
3096 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
3098         * sem_res.adb (Preanalyze_And_Resolve): Only call
3099         Set_Must_Not_Freeze when it is necessary to restore the previous
3100         value.
3102 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3104         * sem_ch5.adb (Analyze_Assignment): Clear Current_Assignment at
3105         exit.
3106         (Analyze_Target_Name): Prevent AST climbing from going too far.
3108 2021-07-08  Ed Schonberg  <schonberg@adacore.com>
3110         * sem_ch5.adb (Analyze_Target_Name): Properly reject a
3111         Target_Name when it appears outside of an assignment statement,
3112         or within the left-hand side of one.
3114 2021-07-08  Bob Duff  <duff@adacore.com>
3116         * einfo-utils.ads, einfo-utils.adb (Unknown_Alignment,
3117         Unknown_Component_Bit_Offset, Unknown_Component_Size,
3118         Unknown_Esize, Unknown_Normalized_First_Bit,
3119         Unknown_Normalized_Position, Unknown_Normalized_Position_Max,
3120         Unknown_RM_Size): Remove these functions.
3121         * exp_pakd.adb, exp_util.adb, fe.h, freeze.adb, layout.adb,
3122         repinfo.adb, sem_ch13.adb, sem_ch3.adb, sem_util.adb: Remove
3123         calls to these functions; do "not Known_..." instead.
3124         * gcc-interface/decl.c, gcc-interface/trans.c
3125         (Unknown_Alignment, Unknown_Component_Size, Unknown_Esize,
3126         Unknown_RM_Size): Remove calls to these functions; do
3127         "!Known_..." instead.
3129 2021-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3131         * exp_dbug.adb (Get_Encoded_Name): Do not encode names of discrete
3132         types with custom bounds, except with -fgnat-encodings=all.
3133         * exp_pakd.adb (Create_Packed_Array_Impl_Type): Adjust comment.
3135 2021-07-08  Bob Duff  <duff@adacore.com>
3137         * comperr.adb (Compiler_Abort): Call Sinput.Unlock, because if
3138         this is called late, then Source_Dump would crash otherwise.
3139         * debug.adb: Correct documentation of the -gnatd.9 switch.
3140         * exp_ch4.adb (Expand_Allocator_Expression): Add a comment.
3141         * exp_ch6.adb: Minor comment fixes.  Add assertion.
3142         * exp_ch6.ads (Is_Build_In_Place_Result_Type): Correct comment.
3143         * exp_ch7.adb, checks.ads: Minor comment fixes.
3145 2021-07-08  Doug Rupp  <rupp@adacore.com>
3147         * sigtramp-vxworks-target.inc: Rename to...
3148         * sigtramp-vxworks-target.h: ... this.
3149         * sigtramp-vxworks.c, Makefile.rtl: Likewise.
3151 2021-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>
3153         * lib-writ.ads: Mention SCOs dependency as reason for duplicates.
3154         * lib.ads (Units): Update documentation to mention duplicated
3155         units.
3157 2021-07-08  Ed Schonberg  <schonberg@adacore.com>
3159         * style.adb (Missing_Overriding): Do not emit message when
3160         parent of subprogram is a full type declaration.
3162 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3164         * par-ch5.adb (P_Iterator_Specification): Add support for access
3165         definition in loop parameter.
3166         * sem_ch5.adb (Check_Subtype_Indication): Renamed...
3167         (Check_Subtype_Definition): ... into this and check for conformance
3168         on access definitions, and improve error messages.
3169         (Analyze_Iterator_Specification): Add support for access definition
3170         in loop parameter.
3172 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3174         * sem_util.ads, sem_util.adb
3175         (Apply_Compile_Time_Constraint_Error): New parameter
3176         Emit_Message.
3177         * sem_ch4.adb (Analyze_Selected_Component): Disable warning
3178         within an instance.
3180 2021-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3182         * exp_imgv.adb: Add with and use clause for Restrict and Rident.
3183         (Build_Enumeration_Image_Tables): Do not generate the hash function
3184         if the No_Implicit_Loops restriction is active.
3186 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3188         * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb, sprint.adb: Simplify
3189         checks for non-empty lists.
3191 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3193         * par-ch10.adb (Unit_Display): Remove redundant condition; fix
3194         whitespace.
3196 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3198         * lib-load.adb (Load): Replace early return with goto to properly
3199         restore context on failure.
3201 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3203         * lib-writ.adb (Ensure_System_Dependency): Simplify condition.
3205 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3207         * lib-load.adb (Load_Unit): Fix style in comment.
3208         * par-load.adb (Load): Likewise.
3209         * scng.adb (Initialize_Scanner): Fix whitespace.
3211 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3213         * par-load.adb (Load): Don't remove unit, but flag it as
3214         erroneous and return.
3216 2021-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>
3218         * exp_prag.adb (Expand_Pragma_Inspection_Point): Fix error
3219         message.
3221 2021-07-08  Yannick Moy  <moy@adacore.com>
3223         * layout.adb (Layout_Type): Do not call Number_Dimensions if the
3224         type does not have First_Index set.
3226 2021-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>
3228         * exp_prag.adb (Expand_Pragma_Inspection_Point): After expansion
3229         of the Inspection_Point pragma, check if referenced entities
3230         that have a freeze node are already frozen. If they aren't, emit
3231         a warning and turn the pragma into a no-op.
3233 2021-07-08  Yannick Moy  <moy@adacore.com>
3235         * layout.adb (Layout_Type): Add guard before calling Expr_Value.
3237 2021-07-08  Yannick Moy  <moy@adacore.com>
3239         * layout.adb (Layout_Type): Special case when RM_Size and Esize
3240         can be computed for packed arrays.
3242 2021-07-08  Steve Baird  <baird@adacore.com>
3244         * rtsfind.ads, rtsfind.adb: Add support for finding the packages
3245         System.Atomic_Operations and
3246         System.Atomic_Operations.Test_And_Set and the declarations
3247         within that latter package of the type Test_And_Set_Flag and the
3248         function Atomic_Test_And_Set.
3249         * exp_ch11.adb (Expand_N_Exception_Declaration): If an exception
3250         is declared other than at library level, then we need to call
3251         Register_Exception the first time (and only the first time) the
3252         declaration is elaborated.  In order to decide whether to
3253         perform this call for a given elaboration of the declaration, we
3254         used to unconditionally use a (library-level) Boolean variable.
3255         Now we instead use a variable of type
3256         System.Atomic_Operations.Test_And_Set.Test_And_Set_Flag unless
3257         either that type is unavailable or a No_Tasking restriction is
3258         in effect (in which case we use a Boolean variable as before).
3260 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3262         * gcc-interface/system.ads: Add No_Tasking restriction.
3264 2021-07-08  Ed Schonberg  <schonberg@adacore.com>
3266         * libgnat/a-cohama.ads: Introduce an equality operator over
3267         cursors.
3268         * libgnat/a-cohase.ads: Ditto.
3269         * libgnat/a-cohama.adb: Add body for "=" over cursors.
3270         (Insert): Do not set the Position component of the cursor that
3271         denotes the inserted element.
3272         * libgnat/a-cohase.adb: Ditto.
3274 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3276         * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
3277         libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
3278         libgnat/a-cborma.adb, libgnat/a-cborse.adb,
3279         libgnat/a-cobove.adb, libgnat/a-textio.adb,
3280         libgnat/a-witeio.adb, libgnat/a-ztexio.adb: Make code compatible
3281         with No_Dynamic_Accessibility_Checks restriction.
3283 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3285         * debug.adb, sem_util.adb: Revert meaning of -gnatd_b.
3286         * sem_res.adb: Minor reformatting.
3288 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3290         * make.adb, osint.adb: Make code compatible with
3291         No_Dynamic_Accessibility_Checks restriction.
3293 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3295         * lib-writ.adb (Ensure_System_Dependency): Replace search in
3296         Lib.Units with a search in Lib.Unit_Names.
3298 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3300         * sinput-l.adb (Load_File): Simplify foreword manipulation with
3301         concatenation; similar for filename with preprocessed output.
3303 2021-07-07  Dmitriy Anisimkov  <anisimko@adacore.com>
3305         * s-oscons-tmplt.c (MSG_WAITALL): Remove wrong #ifdef
3306         __MINWGW32__.
3308 2021-07-07  Gary Dismukes  <dismukes@adacore.com>
3310         * einfo-utils.adb (Primitive_Operations): Default to returning
3311         Direct_Primitive_Operations in the case of concurrent types
3312         (when Corresponding_Record_Type not present).
3313         * sem_ch9.adb (Analyze_Protected_Type_Declaration): Initialize
3314         Direct_Primitive_Operations to an empty element list.
3315         (Analyze_Task_Type_Declaration): Initialize
3316         Direct_Primitive_Operations to an empty element list.
3318 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3320         * sem_eval.adb (Set_Checking_Potentially_Static_Expression):
3321         Stronger assertion.
3323 2021-07-07  Arnaud Charlet  <charlet@adacore.com>
3325         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Mark Anon_Id
3326         intrinsic before calling Analyze_Instance_And_Renamings because
3327         this flag may be propagated to other nodes.
3329 2021-07-07  Dmitriy Anisimkov  <anisimko@adacore.com>
3331         * s-oscons-tmplt.c (TCP_KEEPCNT TCP_KEEPIDLE, TCP_KEEPINTVL):
3332         Hardcode on Windows if undefined.
3334 2021-07-07  Bob Duff  <duff@adacore.com>
3336         * checks.adb (Install_Primitive_Elaboration_Check): Do not
3337         generate elaboration checks for primitives if pragma Pure or
3338         Preelaborate is present.  Misc comment fixes, including
3339         referring to the correct kind of check (elaboration, not
3340         accessibility).
3341         * checks.ads, restrict.adb, sem_cat.ads, sinfo.ads: Minor
3342         reformatting and comment fixes.
3344 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3346         * sem_prag.adb (Analyze_Pragma): Simplify processing of pragma
3347         CPP_Constructor.
3349 2021-07-07  Arnaud Charlet  <charlet@adacore.com>
3351         * libgnat/g-debpoo.adb (Code_Address_For_Allocate_End): Default
3352         Initialize.
3354 2021-07-07  Arnaud Charlet  <charlet@adacore.com>
3356         * libgnat/s-atocou.ads, libgnat/s-atocou__builtin.adb: Code
3357         cleanups.
3359 2021-07-07  Gary Dismukes  <dismukes@adacore.com>
3361         * freeze.adb (Check_Inherited_Conditions): Setting of Ekind,
3362         LSP_Subprogram, and Is_Wrapper needs to happen for null
3363         procedures as well as other wrapper cases, so the code is moved
3364         from the else part in front of the if statement.  (Fixes a
3365         latent bug encountered while working on this set of changes.)
3366         * sem_attr.adb (Resolve_Attribute): Report an error for the case
3367         of an Access attribute applied to a primitive of an abstract
3368         type when the primitive has any nonstatic Pre'Class or
3369         Post'Class expressions.
3370         * sem_ch8.adb (Analyze_Subprogram_Renaming): Report an error for
3371         the case of a actual subprogram associated with a nonabstract
3372         formal subprogram when the actual is a primitive of an abstract
3373         type and the primitive has any nonstatic Pre'Class or Post'Class
3374         expressions.
3375         * sem_disp.adb (Check_Dispatching_Context): Remove special
3376         testing for null procedures, and replace it with a relaxed test
3377         that avoids getting an error about illegal calls to abstract
3378         subprograms in cases where RM 6.1.1(7/5) applies in
3379         Pre/Post'Class aspects. Also, remove special test for
3380         Postcondition, which seems to be unnecessary, update associated
3381         comments, and fix a typo in one comment.
3382         (Check_Dispatching_Call): Remove an unneeded return statement,
3383         and report an error for the case of a nondispatching call to a
3384         nonabstract subprogram of an abstract type where the subprogram
3385         has nonstatic Pre/Post'Class aspects.
3386         * sem_util.ads
3387         (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): New function.
3388         (In_Pre_Post_Condition): Add a flag formal Class_Wide_Only,
3389         defaulted to False, for indicating whether the function should
3390         only test for the node being within class-wide pre- and
3391         postconditions.
3392         * sem_util.adb
3393         (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): New function
3394         to determine whether a subprogram is a primitive of an abstract
3395         type where the primitive has class-wide Pre/Post'Class aspects
3396         specified with nonstatic expressions.
3397         (In_Pre_Post_Condition): Extend testing to account for the new
3398         formal Class_Wide_Only.
3400 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3402         * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Errors
3403         emitted via Check_Volatility_Compatibility are now emitted at
3404         Actual, just like other errors emitted by
3405         Check_Shared_Variable_Control_Aspects.
3407 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3409         * uname.adb (Get_Unit_Name): Simplify with a bounded string
3410         buffer; also, this addresses a ??? comment about the max length
3411         being exceeded.
3413 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3415         * uname.adb (Get_Body_Name, Get_Parent_Body_Name,
3416         Get_Parent_Spec_Name, Get_Spec_Name, Is_Child_Name,
3417         Is_Body_Name, Is_Spec_Name, Name_To_Unit_Name): Use a local
3418         instead of the global buffer.
3420 2021-07-07  Bob Duff  <duff@adacore.com>
3422         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Combine
3423         processing of Size and Value_Size clauses. Ensure that
3424         Value_Size is treated the same as Size, in the cases where both
3425         are allowed (i.e. the prefix denotes a first subtype).  Misc
3426         cleanup.
3427         * einfo-utils.adb (Init_Size): Add assertions.
3428         (Size_Clause): Return a Value_Size clause if present, instead of
3429         just looking for a Size clause.
3430         * einfo.ads (Has_Size_Clause, Size_Clause): Change documentation
3431         to include Value_Size.
3432         * sem_ch13.ads, layout.ads, layout.adb: Comment modifications.
3434 2021-07-07  Steve Baird  <baird@adacore.com>
3436         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Add
3437         TSS_Put_Image to list of predefined primitives that need special
3438         treatment.
3439         (Build_General_Calling_Stubs, Build_Subprogram_Receiving_Stubs):
3440         Remove previous hack for dealing with TSS_Put_Image procedures.
3442 2021-07-07  Dmitriy Anisimkov  <anisimko@adacore.com>
3444         * libgnat/g-socket.adb (Get_Socket_Option): Add 500ms only when
3445         Minus_500ms_Windows_Timeout is True.
3446         (Set_Socket_Option): Use "* 1000" instead of "/ 0.001" to
3447         convert to milliseconds.
3449 2021-07-07  Bob Duff  <duff@adacore.com>
3451         * tbuild.adb (Unchecked_Convert_To): Set the Parent of the new
3452         node to the Parent of the old node.
3453         * tbuild.ads (Unchecked_Convert_To): Document differences
3454         between Convert_To and Unchecked_Convert_To. The previous
3455         documentation claimed they are identical except for the
3456         uncheckedness of the conversion.
3458 2021-07-07  Yannick Moy  <moy@adacore.com>
3460         * checks.adb (Apply_Scalar_Range_Check): Remove special case for
3461         GNATprove mode.
3462         * sem_res.adb (Resolve_Arithmetic_Op): Same.
3463         * sem_util.adb (Apply_Compile_Time_Constraint_Error): Same.
3465 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3467         * sem_ch6.adb (Check_For_Primitive_Subprogram): Move
3468         declarations of local variables after nested subprogram bodies.
3470 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3472         * exp_disp.adb (CPP_Num_Prims): Reuse List_Length.
3474 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3476         * exp_ch3.adb, exp_ch6.adb, sem_ch6.adb: Replace Ekind
3477         membership test in Private_Kind with a call to Is_Private_Type.
3479 2021-07-07  Bob Duff  <duff@adacore.com>
3481         * gen_il-gen-gen_entities.adb: Remove Linker_Section_Pragma
3482         field from Record_Field_Kind.  Minor comment improvement.
3484 2021-07-07  Yannick Moy  <moy@adacore.com>
3486         * libgnat/a-ngelfu.ads (Cot): Fix precondition.
3488 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3490         * par.adb (Par): A local Name variable is now a renaming of a
3491         constant slice.
3493 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3495         * gnat1drv.adb (Gnat1drv): Remove flagging of main unit and its
3496         corresponding spec as requiring code generation; now the flags
3497         are set much earlier.
3498         * lib-load.adb (Load_Main_Source): Set Generate_Code flag on the
3499         main unit source.
3500         (Make_Instance_Unit): Copy Generate_Code flag from the main unit
3501         to instance units.
3502         * lib-writ.adb (Write_ALI): Remove redundant condition;
3503         Generate_Code flag is always set for the main unit.
3504         * par-load.adb (Load): Set Generate_Code flag on the main unit's
3505         corresponding spec, if any.
3507 2021-07-07  Dmitriy Anisimkov  <anisimko@adacore.com>
3509         * libgnat/g-socket.ads (Option_Name): Add Keep_Alive_Count,
3510         Keep_Alive_Idle, and Keep_Alive_Interval items to enumeration.
3511         (Option_Type): Add Keep_Alive_Count, Keep_Alive_Idle, and
3512         Keep_Alive_Interval alternatives to the case of discriminated
3513         record.
3514         * libgnat/g-socket.adb (Options): Add Keep_Alive_Count,
3515         Keep_Alive_Idle, and Keep_Alive_Interval to items enumerator to
3516         OS constant converter.
3517         (Set_Socket_Option): Process Keep_Alive_Count, Keep_Alive_Idle,
3518         and Keep_Alive_Interval socket options.
3519         (Get_Socket_Option): Idem.
3521 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3523         * lib-writ.adb (Write_ALI): Exit from loop after seeing first
3524         unit that violates No_Elaboration_Code restriction.
3526 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3528         * inline.adb (Instantiate_Bodies): Fix white in declaration.
3529         (Remove_Dead_Instance): Change iteration from WHILE to FOR.
3531 2021-07-07  Bob Duff  <duff@adacore.com>
3533         * checks.adb, exp_attr.adb, exp_ch4.adb, exp_ch6.adb,
3534         exp_ch9.adb, exp_disp.adb, exp_util.adb, inline.adb,
3535         sem_res.adb: Change all calls to Make_Unchecked_Type_Conversion
3536         to call Unchecked_Convert_To instead. This involves removing
3537         New_Occurrence_Of on the first parameter, because
3538         Unchecked_Convert_To expects a type entity, rather than the name
3539         of one. Also, removed calls to Relocate_Node, because
3540         Unchecked_Convert_To takes care of that.
3541         * sinfo.ads: Change comment to be worded more firmly.
3543 2021-07-07  Steve Baird  <baird@adacore.com>
3545         * libgnarl/s-tassta.adb (Free_Task): Acquire the Task_Lock
3546         before, rather than after, querying the task's Terminated flag.
3547         Add a corresponding Task_Unlock call.
3549 2021-07-06  Bob Duff  <duff@adacore.com>
3551         * atree.ads (Current_Error_Node): Initialize to Empty.
3553 2021-07-06  Steve Baird  <baird@adacore.com>
3555         * exp_put_image.adb: Eliminate references to
3556         Debug_Flag_Underscore_Z.  Change the meaning of the function
3557         Enable_Put_Image. Previously, a result of False for a tagged
3558         type would mean that the type does not get a Put_Image (PI)
3559         routine at all. Now, it means that the type gets a PI routine
3560         with very abbreviated functionality (just a call to
3561         Unknown_Put_Image). This resolves problems in mixing code
3562         compiled with and without the -gnat2022 switch.
3563         * exp_ch3.adb: Enable_Put_Image no longer participates in
3564         determining whether a tagged type gets a Put_Image procedure.  A
3565         tagged type does not get a Put_Image procedure if the type
3566         Root_Buffer_Type is unavailable. This is needed to support cross
3567         targets where tagged types are supported but the type
3568         Root_Buffer_Type is not available.
3569         * exp_dist.adb: Add workarounds for some problems that arise
3570         when using the (obsolete?) Garlic implementation of the
3571         distributed systems annex with Ada 2022 constructs.
3572         * libgnat/a-sttebu.ads: Workaround a bootstrapping problem.
3573         Older compilers do not support raise expressions, so revise the
3574         the Pre'Class condition to meet this requirement without
3575         changing the condition's behavior at run time.
3577 2021-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3579         * repinfo-input.adb (JSON_Entity_Kind, Read_Variant_Part): Fix
3580         typo in comment.
3582 2021-07-06  Steve Baird  <baird@adacore.com>
3584         * sem_ch5.adb (Analyze_Assignment): Add new nested function,
3585         Omit_Range_Check_For_Streaming, and make call to
3586         Apply_Scalar_Range_Check conditional on the result of this new
3587         function.
3588         * exp_attr.adb (Compile_Stream_Body_In_Scope): Eliminate Check
3589         parameter, update callers.  The new
3590         Omit_Range_Check_For_Streaming parameter takes the place of the
3591         old use of calling Insert_Action with Suppress => All_Checks,
3592         which was insufficiently precise (it did not allow suppressing
3593         checks for one component but not for another).
3594         (Expand_N_Attribute_Reference): Eliminate another "Suppress =>
3595         All_Checks" from an Insert_Action call, this one in generating
3596         the expansion of a T'Read attribute reference for a composite
3597         type T.
3599 2021-07-06  Ghjuvan Lacambre  <lacambre@adacore.com>
3601         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check for
3602         empty loops caused by constraints.
3604 2021-07-06  Nicolas Roche  <roche@adacore.com>
3606         * rtinit.c (skip_quoted_string): Handle malformed command line
3607         with no closing double quote.
3608         (skip_argument): Handle case in which a null character is
3609         encountered by skip_quote_string.
3611 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3613         * uname.adb (Add_Node_Name): Replace local constant whose
3614         initial expression was evaluated even when unnecessary with just
3615         that expression that is evaluated at most once and only when
3616         needed.
3618 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3620         * lib.adb (Remove_Unit): Replace defensive code with an
3621         assertion.
3622         * par-load.adb (Load): Address a question mark in the comment.
3624 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3626         * sem_util.adb (Enclosing_Comp_Unit_Node): When the loop exits
3627         the Current_Node is either an N_Compilation_Unit node or Empty,
3628         so simply return it without redundant checks.
3630 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3632         * lib-load.adb (Load_Unit): Remove excessive whitespace.
3633         * lib.adb (Is_Internal_Unit, Is_Predefined_Unit): Likewise.
3634         * par-ch10.adb (P_Compilation_Unit): Simplify with membership
3635         test.
3636         * par-load.adb (Load): Likewise.
3637         * uname.adb (Get_Unit_Name): Likewise.
3639 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3641         * lib-writ.adb (Ensure_System_Dependency): Simplify by reusing a
3642         constant name.
3644 2021-07-06  Steve Baird  <baird@adacore.com>
3646         * exp_ch5.adb
3647         (Expand_N_Case_Statement.Expand_General_Case_Statement.Pattern_Match):
3648         When generating an equality test for a statically known discrete
3649         value, only generate the numeric value if the discrete type is
3650         not an enumeration type.  If it is an enumeration type, then
3651         call Get_Enum_Lit_From_Pos instead.
3653 2021-07-06  Justin Squirek  <squirek@adacore.com>
3655         * par-ch6.adb (Get_Return_Kind): Removed.
3656         (Is_Extended): Created to identify simple and "when" return
3657         statements from extended return statements.
3658         (P_Return_Statement): Merged simple and "when" return statement
3659         processing.
3661 2021-07-06  Gary Dismukes  <dismukes@adacore.com>
3663         * sem_ch4.adb (Try_One_Prefix_Interpretation): Augment test of
3664         "not Extensions_Allowed" with test for absence of Obj_Type's
3665         primitive operations Elist, as an additional condition for early
3666         return from this procedure.
3668 2021-07-06  Gary Dismukes  <dismukes@adacore.com>
3670         * exp_ch4.adb (Process_Transient_In_Expression): In one comment,
3671         fix two typos and reorder wording of one sentence, plus minor
3672         reformatting.
3674 2021-07-06  Justin Squirek  <squirek@adacore.com>
3676         * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove
3677         legacy expansion of element iterators, and use expansion form
3678         used by unconstrained element types in the general case.
3680 2021-07-06  Ed Schonberg  <schonberg@adacore.com>
3682         * exp_ch4.adb (Process_Transient_In_Expression): Ensure that
3683         Fin_Context, used to insert finalization code for the
3684         expression, is a list member: the value returned by
3685         Find_Hook_Context may be an expression node when the transient
3686         is part of a larger expression and it has a non-boolean type.
3688 2021-07-06  Yannick Moy  <moy@adacore.com>
3690         * sem_case.adb: Fix error message.
3692 2021-07-06  Bob Duff  <duff@adacore.com>
3694         * tbuild.adb (Convert_To): Add assert, along with a comment.
3695         (Make_DT_Access): Remove this function, which is not used.  It
3696         was incorrect anyway (the call to New_Occurrence_Of should not
3697         be there).
3698         (Unchecked_Convert_To): Add assert.  The previous version's test
3699         for unchecked conversion to the same type was redundant and
3700         could never be true, because the previous 'if' already checked
3701         for ANY expression of the same type. Remove that, and replace
3702         with a test for unchecked conversion to a related type.
3703         Otherwise, we somethings get things like
3704         "finalize(some_type!(some_type!(x)))" in the generated code,
3705         where x is already of type some_type, but we're converting it to
3706         the private type and then to the full type or vice versa (so the
3707         types aren't equal, so the previous 'if' doesn't catch it).
3708         Avoid updating the Parent. This is not necessary; the Parent
3709         will be updated if/when the node is attached to the tree.
3710         * tbuild.ads: Fix comments. No need to say "this is safe" when
3711         we just explained that a few lines earlier.  Remove
3712         Make_DT_Access.
3713         * sinfo.ads: Add comments.
3714         * exp_ch7.adb (Make_Finalize_Address_Stmts): Minor comment fix.
3715         * gen_il-gen.adb, gen_il-gen.ads, gen_il-gen-gen_nodes.adb,
3716         gen_il-internals.ads: Implement a feature where you can put:
3717         Nmake_Assert => "expr" where expr is a boolean expression in a
3718         call to Create_Concrete_Node_Type. It is added in a pragma
3719         Assert in the Nmake.Make_... function for that type.
3721 2021-07-06  Gary Dismukes  <dismukes@adacore.com>
3723         * checks.adb: Remove calls of Set_Do_Tag_Check (N, False).
3724         * einfo.ads: Remove hanging unneeded ??? comment ("this real description
3725         was clobbered").
3726         * exp_util.ads (Insert_Actions_After): Remove ??? from spec comment.
3727         * gen_il-fields.ads (Opt_Field_Enum): Remove literals
3728         Do_Accessibility_Check and Do_Tag_Check.
3729         * gen_il-gen-gen_nodes.adb: Remove all calls to Sm for
3730         Do_Accessibility_Check and Do_Tag_Check.
3731         * sem_type.ads (Is_Subtype_Of): Remove obsolete ???
3732         comment (function is not limited to scalar subtypes).
3733         * sem_util.ads (Is_Local_Variable_Reference): Revise comment to
3734         mention out-mode parameters as well, and remove ???.
3735         (Propagate_Concurrent_Flags): Minor reformatting.
3736         (Propagate_Invariant_Attributes): Typo fix.
3737         (Propagate_Predicate_Attributes): Indicate what is propagated
3738         and remove ??? comment.
3739         * sem_util.adb (Cannot_Raise_Constraint_Error): Remove unneeded
3740         test of Do_Tag_Check.
3741         (Is_Local_Variable_Reference): Extend function to testing for
3742         formals of mode out as well.
3743         * sinfo.ads: Remove ??? comment about flag
3744         Convert_To_Return_False indicating that the flag is obsolete (in
3745         fact it's used). Remove references to Do_Accessibility_Check and
3746         Do_Tag_Check (and the two associated ??? comments), as these
3747         flags are unneeded.
3748         * sinfo-cn.adb (Change_Conversion_To_Unchecked): Remove call of
3749         Set_Do_Tag_Check (N, False).
3750         * targparm.ads (Support_Atomic_Primitives_On_Target): Remove ???
3751         comment, plus minor reformatting.
3753 2021-07-06  Justin Squirek  <squirek@adacore.com>
3755         * par-ch6.adb (Get_Return_Kind): Properly handle the case of a
3756         "return when" statement in the procedure case.
3758 2021-07-06  Bob Duff  <duff@adacore.com>
3760         * sem.ads (Node_To_Be_Wrapped): Minor comment fix.
3761         * exp_ch7.adb (Establish_Transient_Scope): Misc cleanups and
3762         comment improvements.
3763         (Set_Node_To_Be_Wrapped): Remove -- not worth putting this code
3764         in a separate procedure, called only once.
3765         * sem_util.adb (Requires_Transient_Scope): Assert that our
3766         parameter has the right Kind. It probably shouldn't be E_Void,
3767         but that is passed in in some cases.
3768         (Ensure_Minimum_Decoration): Move the call later, so we know Typ
3769         is Present, and remove "if Present (Typ)" from this procedure.
3770         * exp_aggr.adb (Convert_To_Assignments): Use membership test,
3771         and avoid the "if False" idiom.
3772         (Expand_Array_Aggregate): Remove a ??? comment.
3773         * sem_ch8.adb (Push_Scope): Take advantage of the full coverage
3774         rules for aggregates.
3775         * sem_res.adb (Resolve_Declare_Expression): Remove test for
3776         Is_Type -- that's all it can be.  Use named notation in call to
3777         Establish_Transient_Scope.
3778         * libgnat/a-cdlili.adb (Adjust): Remove redundant code.
3779         (Clear): Remove "pragma Warnings (Off);", which wasn't actually
3780         suppressing any warnings.
3782 2021-07-06  Bob Duff  <duff@adacore.com>
3784         * gen_il-gen-gen_nodes.adb: Change the parent of
3785         N_Exception_Declaration to be N_Declaration.  Minor comment fix.
3787 2021-07-06  Ed Schonberg  <schonberg@adacore.com>
3789         * exp_ch4.adb (Expand_N_Type_Conversion): If the conversion is
3790         the name of an assignment operation do not apply predicate check
3791         to it prior to the assignment.
3793 2021-07-06  Bob Duff  <duff@adacore.com>
3795         * libgnat/a-conhel.adb: Assert that tampering counts remain
3796         between 0 and 2**31-1.  This makes debugging of
3797         finalization-related bugs easier.
3799 2021-07-06  Doug Rupp  <rupp@adacore.com>
3801         * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use s-osprim__posix.adb
3802         vice s-osprim__vxworks.adb for all vxworks7r2 targets.
3804 2021-07-06  Richard Kenner  <kenner@adacore.com>
3806         * gen_il-types.ads (Void_Or_Type_Kind,
3807         Exception_Or_Object_Kind): Declare.
3808         * gen_il-gen-gen_entities.adb: Likewise.
3810 2021-07-06  Gary Dismukes  <dismukes@adacore.com>
3812         * doc/gnat_rm/implementation_defined_pragmas.rst: Add a
3813         description of the feature of prefixed-view calls for untagged
3814         types to the section on pragma Extensions_Allowed.
3815         * gnat_rm.texi: Regenerate.
3816         * einfo.ads: Update specification for
3817         Direct_Primitive_Operations to reflect its use for untagged
3818         types when Extensions_Allowed is True.
3819         * gen_il-gen-gen_entities.adb: Allow Direct_Primitive_Operations
3820         as a field of untagged classes of types by removing the "Pre"
3821         test of "Is_Tagged_Type (N)", and making that field generally
3822         available for all types and subtypes by defining it for
3823         Type_Kind and removing its specification for individual classes
3824         of types.
3825         * sem_ch3.adb (Analyze_Full_Type_Declaration): Initialize the
3826         Direct_Primitive_Operations list when not already set for the
3827         new (sub)type and its base type (except when Ekind of the type
3828         is E_Void, which can happen due to errors in cases where
3829         Derived_Type_Declaration is called and perhaps in other
3830         situations).
3831         (Analyze_Subtype_Declaration): Inherit
3832         Direct_Primitive_Operations list from the base type, for record
3833         and private cases.
3834         (Build_Derived_Record_Type): Initialize the
3835         Direct_Primitive_Operations list for derived record and private
3836         types.
3837         (Build_Derived_Type): Initialize the Direct_Primitive_Operations
3838         list for derived types (and also for their associated base types
3839         when needed).
3840         (Process_Full_View): For full types that are untagged record and
3841         private types, copy the primitive operations of the partial view
3842         to the primitives list of the full view.
3843         * sem_ch4.adb (Analyze_Selected_Component): Allow prefixed
3844         notation for subprogram calls in the case of untagged
3845         types (when Extensions_Allowed is True). In the case where
3846         Is_Private_Type (Prefix_Type) is True, call Try_Object_Operation
3847         when a discriminant selector wasn't found. Also call
3848         Try_Object_Operation in other type kind cases (when
3849         Extensions_Allowed is True).
3850         (Try_Object_Operation.Try_One_Prefixed_Interpretation): Prevent
3851         early return in the untagged case (when Extensions_Allowed is
3852         True). Condition main call to Try_Primitive_Operation on the
3853         type having primitives, and after that, if Prim_Result is False,
3854         test for case where the prefix type is a named access type with
3855         primitive operations and in that case call
3856         Try_Primitive_Operation after temporarily resetting Obj_Type to
3857         denote the access type (and restore it to the designated type
3858         after the call)
3859         (Try_Object_Operation.Valid_First_Argument_Of): Do matching type
3860         comparison by testing Base_Type (Obj_Type) against
3861         Base_Type (Typ), rather than against just Typ, to properly
3862         handle cases where the object prefix has a constrained
3863         subtype.  (Fixes a bug discovered while working on this
3864         feature.)
3865         * sem_ch6.adb
3866         (New_Overloaded_Entity.Check_For_Primitive_Subprogram): Add a
3867         primitive of an untagged type to the type's list of primitive
3868         operations, for both explicit and implicit (derived, so
3869         Comes_From_Source is False) subprogram declarations. In the case
3870         where the new primitive overrides an inherited subprogram,
3871         locate the primitives Elist that references the overridden
3872         subprogram, and replace that element of the list with the new
3873         subprogram (done by calling the new procedure
3874         Add_Or_Replace_Untagged_Primitive on the result type and each
3875         formal atype).
3876         (Check_For_Primitive_Subprogram.Add_Or_Replace_Untagged_Primitive):
3877         New nested procedure to either add or replace an untagged
3878         primitive subprogram in a given type's list of primitive
3879         operations (replacement happens in case where the new subprogram
3880         overrides a primitive of the type).
3881         * sem_ch7.adb (New_Private_Type): When Extensions_Allowed is
3882         True, initialize the Direct_Primitive_Operations list of a
3883         private type to New_Elmt_List in the case of untagged types.
3884         * sem_ch8.adb (Find_Selected_Component): In the case where the
3885         prefix is an entity name, relax condition that tests
3886         Has_Components so that Analyze_Selected_Component will also be
3887         called when Extensions_Allowed is True and the prefix type is
3888         any type.
3890 2021-07-06  Ed Schonberg  <schonberg@adacore.com>
3892         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
3893         conformance check when the subprogram body has been created for
3894         an expression function that is not a completion of a previous
3895         specification, because the profile of the constructed body is
3896         copied from the expression function itself.
3898 2021-07-06  Steve Baird  <baird@adacore.com>
3900         * doc/gnat_rm/implementation_of_specific_ada_features.rst: Add a
3901         warning indicating that the details of the default (i.e.,
3902         selected by the compiler) implementation of T'Put_Image for a
3903         nonscalar type T are subject to change.
3904         * gnat_rm.texi: Regenerate.
3906 2021-07-05  Pierre-Marie de Rodat  <derodat@adacore.com>
3908         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
3910 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
3912         * sem_prag.adb (Analyze_Depends_In_Decl_Part): Reject overlays
3913         in Depends and Refined_Depends contracts.
3914         (Analyze_Global_In_Decl_Part): Likewise for Global and
3915         Refined_Global.
3916         (Analyze_Initializes_In_Decl_Part): Likewise for Initializes
3917         (when appearing both as a single item and as a initialization
3918         clause).
3919         * sem_util.ads (Ultimate_Overlaid_Entity): New routine.
3920         * sem_util.adb (Report_Unused_Body_States): Ignore overlays.
3921         (Ultimate_Overlaid_Entity): New routine.
3923 2021-07-05  Claire Dross  <dross@adacore.com>
3925         * libgnat/a-cfdlli.ads, libgnat/a-cfdlli.adb
3926         libgnat/a-cfinve.ads, libgnat/a-cfinve.adb,
3927         libgnat/a-cofove.ads, libgnat/a-cofove.adb,
3928         libgnat/a-coboho.ads, libgnat/a-coboho.adb (Constant_Reference):
3929         Get a read-only access to an element of the container.
3930         (At_End): Ghost functions used to express pledges in the
3931         postcondition of Reference.
3932         (Reference): Get a read-write access to an element of the
3933         container.
3934         * libgnat/a-cfhama.ads, libgnat/a-cfhama.adb,
3935         libgnat/a-cforma.ads, libgnat/a-cforma.adb: The full view of the
3936         Map type is no longer a tagged type, but a wrapper over this
3937         tagged type. This is to avoid issues with dispatching result in
3938         At_End functions.
3939         (Constant_Reference): Get a read-only access to an element of
3940         the container.
3941         (At_End): Ghost functions used to express pledges in the
3942         postcondition of Reference.
3943         (Reference): Get a read-write access to an element of the
3944         container.
3945         * libgnat/a-cfhase.ads, libgnat/a-cfhase.adb,
3946         libgnat/a-cforse.ads, libgnat/a-cforse.adb: The full view of the
3947         Map type is no longer a tagged type, but a wrapper over this
3948         tagged type.
3949         (Constant_Reference): Get a read-only access to an element of
3950         the container.
3951         * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads (Copy_Element):
3952         Expression function used to cause SPARK to make sure
3953         Element_Type is copiable.
3954         * libgnat/a-cofuma.ads (Copy_Key): Expression function used to
3955         cause SPARK to make sure Key_Type is copiable.
3956         (Copy_Element): Expression function used to cause SPARK to make
3957         sure Element_Type is copiable.
3959 2021-07-05  Yannick Moy  <moy@adacore.com>
3961         * sem_prag.adb (Analyze_Global_Item): Adapt to update SPARK RM
3962         rule.
3964 2021-07-05  Arnaud Charlet  <charlet@adacore.com>
3966         * Make-generated.in: Add -f switch to ensure cp will never fail.
3968 2021-07-05  Steve Baird  <baird@adacore.com>
3970         * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): When
3971         building the assignment statement corresponding to the default
3972         expression for a component, we make a copy of the expression.
3973         When making that copy (and if we have seen a component that
3974         requires late initialization), pass a Map parameter into the
3975         call to New_Copy_Tree to redirect references to the type to
3976         instead refer to the _Init formal parameter of the init proc.
3977         This includes hoisting the declaration of Has_Late_Init_Comp out
3978         one level so that it becomes available to Build_Assignment.
3979         (Find_Current_Instance): Return True for other kinds of current
3980         instance references, instead of just access-valued attribute
3981         references such as T'Access.
3982         * sem_util.adb (Is_Aliased_View): Return True for the _Init
3983         formal parameter of an init procedure. The changes in
3984         exp_ch3.adb can have the effect of replacing a "T'Access"
3985         attribute reference in an init procedure with an "_Init'Access"
3986         attribute reference. We want such an attribute reference to be
3987         legal. However, we do not simply mark the formal parameter as
3988         being aliased because that might impact callers.
3989         (Is_Object_Image): Return True if Is_Current_Instance returns
3990         True for the prefix of an Image (or related attribute) attribute
3991         reference.
3993 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
3995         * exp_ch3.adb (Stream_Operation_OK): Reuse
3996         Is_Concurrent_Interface.
3997         * sem_ch3.adb (Analyze_Interface_Declaration,
3998         Build_Derived_Record_Type): Likewise.
3999         * sem_ch6.adb (Check_Limited_Return): Likewise.
4000         * sem_util.adb (Is_Concurrent_Interface): Don't call
4001         Is_Interface because each of the Is_Protected_Interface,
4002         Is_Synchronized_Interface and Is_Task_Interface calls it anyway.
4004 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
4006         * sem_ch6.adb (Check_Limited_Return): Replace Comes_From_Source
4007         with Comes_From_Extended_Return_Statement.
4009 2021-07-05  Steve Baird  <baird@adacore.com>
4011         * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads,
4012         libgnat/a-stobfi.adb, libgnat/a-stobfi.ads,
4013         libgnat/a-stoubu.adb, libgnat/a-stoubu.ads,
4014         libgnat/a-stoufi.adb, libgnat/a-stoufi.ads,
4015         libgnat/a-stoufo.adb, libgnat/a-stoufo.ads,
4016         libgnat/a-stouut.adb, libgnat/a-stouut.ads,
4017         libgnat/a-stteou.ads: Delete files.
4018         * Makefile.rtl, impunit.adb: Remove references to deleted files.
4020 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
4022         * sem_util.adb (Has_Compatible_Alignment_Internal): If the
4023         prefix of the Address expression is an entire object with a
4024         known alignment, then skip checks related to its size.
4026 2021-07-05  Doug Rupp  <rupp@adacore.com>
4028         * libgnat/s-os_lib.ads: Import OS_Time comparison ops as
4029         intrinsic.
4030         * libgnat/s-os_lib.adb: Remove OS_TIme comparison ops
4031         implementation.
4033 2021-07-05  Doug Rupp  <rupp@adacore.com>
4035         * libgnat/s-os_lib.ads: Add some comments about time_t.
4036         * libgnat/s-os_lib.adb (GM_Split/To_GM_Time): Rename formal to
4037         P_OS_Time.
4038         (GM_Time_Of/To_OS_Time): Likewise.
4040 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
4042         * sem_res.adb (Resolve): Insert minus sign if needed.
4044 2021-07-05  Steve Baird  <baird@adacore.com>
4046         * exp_put_image.adb:
4047         (Enable_Put_Image, Preload_Root_Buffer_Type): Revert to querying
4048         the -gnatd_z switch, as opposed to testing whether Ada_Version >= Ada_2022.
4050 2021-07-05  Justin Squirek  <squirek@adacore.com>
4052         * checks.adb (Accessibility_Checks_Suppressed): Add check
4053         against restriction No_Dynamic_Accessibility_Checks.
4054         (Apply_Accessibility_Check): Add assertion to check restriction
4055         No_Dynamic_Accessibility_Checks is not active.
4056         * debug.adb: Add documentation for new debugging switch to
4057         control which accessibility model gets employed under
4058         restriction No_Dynamic_Accessibility_Checks.
4059         * exp_attr.adb (Expand_N_Attribute_Reference): Disable dynamic
4060         accessibility check generation when
4061         No_Dynamic_Accessibility_Checks is active.
4062         * exp_ch4.adb (Apply_Accessibility_Check): Skip check generation
4063         when restriction No_Dynamic_Accessibility_Checks is active.
4064         (Expand_N_Allocator): Disable dynamic accessibility checks when
4065         No_Dynamic_Accessibility_Checks is active.
4066         (Expand_N_In): Disable dynamic accessibility checks when
4067         No_Dynamic_Accessibility_Checks is active.
4068         (Expand_N_Type_Conversion): Disable dynamic accessibility checks
4069         when No_Dynamic_Accessibility_Checks is active.
4070         * exp_ch5.adb (Expand_N_Assignment_Statement): Disable
4071         alternative accessibility model calculations when computing a
4072         dynamic level for a SAOAAT.
4073         * exp_ch6.adb (Add_Call_By_Copy_Code): Disable dynamic
4074         accessibility check generation when
4075         No_Dynamic_Accessibility_Checks is active.
4076         (Expand_Branch): Disable alternative accessibility model
4077         calculations.
4078         (Expand_Call_Helper): Disable alternative accessibility model
4079         calculations.
4080         * restrict.adb, restrict.ads: Add new restriction
4081         No_Dynamic_Accessibility_Checks.
4082         (No_Dynamic_Accessibility_Checks_Enabled): Created to test when
4083         experimental features (which are generally incompatible with
4084         standard Ada) can be enabled.
4085         * sem_attr.adb (Safe_Value_Conversions): Add handling of new
4086         accessibility model under the restriction
4087         No_Dynamic_Accessibility_Checks.
4088         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
4089         Disallow new restriction No_Dynamic_Accessibility_Checks from
4090         being exclusively specified within a body or subunit without
4091         being present in a specification.
4092         * sem_res.adb (Check_Fully_Declared_Prefix): Minor comment
4093         fixup.
4094         (Valid_Conversion): Omit implicit conversion checks on anonymous
4095         access types and perform static checking instead when
4096         No_Dynamic_Accessibility_Checks is active.
4097         * sem_util.adb, sem_util.ads (Accessibility_Level): Add special
4098         handling of anonymous access objects, formal parameters,
4099         anonymous access components, and function return objects.
4100         (Deepest_Type_Access_Level): When
4101         No_Dynamic_Accessibility_Checks is active employ an alternative
4102         model. Add paramter Allow_Alt_Model to override the new behavior
4103         in certain cases.
4104         (Type_Access_Level): When No_Dynamic_Accessibility_Checks is
4105         active employ an alternative model. Add parameter
4106         Allow_Alt_Model to override the new behavior in certain cases.
4107         (Typ_Access_Level): Created within Accessibility_Level for
4108         convenience.
4109         * libgnat/s-rident.ads, snames.ads-tmpl: Add handing for
4110         No_Dynamic_Accessibility_Checks.
4112 2021-07-05  Doug Rupp  <rupp@adacore.com>
4114         * adaint.h (__gnat_set_file_time_name): Use OS_Time.
4115         * adaint.c (__gnat_set_file_time_name): Likewise.
4117 2021-07-05  Doug Rupp  <rupp@adacore.com>
4119         * adaint.h (OS_Time): typedef as long long.
4120         * osint.adb (Underlying_OS_Time): Declare as 64-bit signed type.
4121         * libgnat/s-os_lib.adb ("<"): Compare OS_Time as
4122         Long_Long_Integer.
4123         ("<="): Likewise.
4124         (">"): Likewise.
4125         (">="): Likewise.
4126         * libgnat/s-os_lib.ads (OS_Time): Declare as 64-bit signed type.
4128 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
4130         * sem_ch3.adb (Check_Abstract_Overriding): Post error message on
4131         renaming node.
4133 2021-07-05  Yannick Moy  <moy@adacore.com>
4135         * libgnat/a-uncdea.ads: Add Depends/Post to
4136         Ada.Unchecked_Deallocation.
4137         * sem_ch4.adb (Analyze_Allocator): Remove checking of allocator
4138         placement.
4139         * sem_res.adb (Flag_Object): Same.
4141 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
4143         * aspects.ads: Add GNAT_Annotate aspect.
4144         * gnat1drv.adb (Adjust_Global_Switches): Stop defining
4145         Name_Gnat_Annotate as an alias of Name_Annotate.
4146         * snames.ads-tmpl: Define Gnat_Annotate.
4147         * par-prag.adb, sem_prag.ads: Add Pragma_Gnat_Annotate to list
4148         of pragmas.
4149         * lib-writ.adb, sem_ch13.adb, sem_prag.adb: Handle Gnat_Annotate
4150         like Aspect_Annotate.
4152 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
4154         * ttypes.ads (Target_Strict_Alignment): Fix comment.
4156 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
4158         * sem_util.adb (Has_Compatible_Alignment_Internal): Fix
4159         indentation of ELSIF comments; remove explicit calls to
4160         UI_To_Int; remove extra parens around the MOD operand.
4162 2021-07-05  Ed Schonberg  <schonberg@adacore.com>
4164         * sem_aggr.adb (Resolve_Record_Aggregate, Step_5): Do not check
4165         for the need to use an extension aggregate for a given component
4166         when within an instance and the type of the component hss a
4167         private ancestor: the instantiation is legal if the generic
4168         compiles, and spurious errors may be generated otherwise.
4170 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
4172         * errout.adb (Output_JSON_Message): Recursively call
4173         Output_JSON_Message for continuation messages instead of
4174         appending their content to the initial message.
4176 2021-07-05  Steve Baird  <baird@adacore.com>
4178         * debug.adb: Remove comments about -gnatd_z switch.
4179         * exp_ch3.adb (Make_Predefined_Primitive_Specs): A one-line fix
4180         for a subtle bug that took some effort to debug. Append a new
4181         Put_Image procedure for a type extension even if it seems to
4182         already have one, just as is done for (for example) the
4183         streaming-related Read procedure.
4184         * exp_put_image.adb:
4185         (Build_Record_Put_Image_Procedure.Make_Component_Attributes): Do
4186         not treat _Parent component like just another component, for two
4187         reasons.  1. If the _parent component's type has a
4188         user-specified Put_Image procedure, then we want to generate a
4189         call to that procedure and then generate extension aggregate
4190         syntax.  2. Otherwise, we still don't want to see any mention of
4191         "_parent" in the generated image text.
4192         (Build_Record_Put_Image_Procedure.Make_Component_Name): Add
4193         assertion that we are not generating a reference to an "_parent"
4194         component.
4195         (Build_Record_Put_Image_Procedure): Add special treatment for
4196         null records.  Add call to Duplicate_Subexpr for image attribute
4197         prefix in order to help with expansion needed in the class-wide
4198         case (where the prefix is also referenced in the call to
4199         Wide_Wide_Expanded_Name) if evaluation of the prefix has side
4200         effects. Add new local helper function, Put_String_Exp.  Add
4201         support for case where prefix type is class-wide.
4202         (Enable_Put_Image, Preload_Root_Buffer_Type): Query Ada_Version
4203         > Ada_2022 instead of (indirectly) querying -gnatd_z switch.
4204         * freeze.adb (In_Expanded_Body): A one-line change to add
4205         TSS_Put_Image to the list of subprograms that have
4206         expander-created bodies.
4207         * rtsfind.ads: Add support for accessing
4208         Ada.Tags.Wide_Wide_Expanded_Name.
4209         * sem_ch3.ads, sem_ch3.adb: Delete Is_Null_Extension function,
4210         as part of moving it to Sem_Util.
4211         * sem_ch13.adb
4212         (Analyze_Put_Image_TSS_Definition.Has_Good_Profile): Improve
4213         diagnostic messages in cases where the result is going to be
4214         False and the Report parameter is True. Relax overly-restrictive
4215         checks in order to implement mode conformance.
4216         (Analyze_Stream_TSS_Definition.Has_Good_Profile): Add similar
4217         relaxation of parameter subtype checking for the Stream
4218         parameter of user-defined streaming subprograms.
4219         * sem_disp.adb (Check_Dispatching_Operation): A one-line
4220         change (and an accompanying comment change) to add TSS_Put_Image
4221         to the list of compiler-generated dispatching primitive
4222         operations.
4223         * sem_util.ads, sem_util.adb: Add Ignore_Privacy Boolean
4224         parameter to Is_Null_Record_Type function (typically the
4225         parameter will be False when the function is being used in the
4226         implementation of static semantics and True for dynamic
4227         semantics; the parameter might make a difference in the case of,
4228         for example, a private type that is implemented as a null record
4229         type).  Add related new routines Is_Null_Extension (formerly
4230         declared in Sem_Ch3), Is_Null_Extension_Of, and
4231         Is_Null_Record_Definition.
4233 2021-07-05  Justin Squirek  <squirek@adacore.com>
4235         * freeze.adb (Freeze_Profile): Use N's Sloc, F_type's chars.
4237 2021-07-05  Bob Duff  <duff@adacore.com>
4239         * checks.adb, exp_aggr.adb, exp_ch5.adb, freeze.adb,
4240         sem_util.adb, sem_util.ads: Change L and H to be First and Last,
4241         to match the attributes in the RM. Change calls from procedure
4242         to function where appropriate.
4244 2021-07-05  Bob Duff  <duff@adacore.com>
4246         * sem_util.ads, sem_util.adb (Compute_Returns_By_Ref): New
4247         procedure to compute Returns_By_Ref, to avoid some code
4248         duplication. This will likely change soon, so it's good to have
4249         the code in one place.
4250         (CW_Or_Has_Controlled_Part): Move here from Exp_Ch7, because
4251         it's called by Compute_Returns_By_Ref, and this is a better
4252         place for it anyway.
4253         (Needs_Finalization): Fix comment to be vague instead of wrong.
4254         * exp_ch6.adb (Expand_N_Subprogram_Body, Freeze_Subprogram):
4255         Call Compute_Returns_By_Ref.
4256         * sem_ch6.adb (Check_Delayed_Subprogram): Call
4257         Compute_Returns_By_Ref.
4258         * exp_ch7.ads, exp_ch7.adb (CW_Or_Has_Controlled_Part): Move to
4259         Sem_Util.
4260         (Has_New_Controlled_Component): Remove unused function.
4262 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
4264         * sem_ch3.adb (Check_Abstract_Overriding): Check for renamings.
4266 2021-07-05  Boris Yakobowski  <yakobowski@adacore.com>
4268         * exp_ch4.adb (Expand_N_Op_Rem): Remove special case for rem -1
4269         in CodePeer_Mode.
4271 2021-07-01  Eric Botcazou  <ebotcazou@adacore.com>
4273         PR ada/101094
4274         * exp_attr.adb (Get_Integer_Type): Return an integer type with the
4275         same signedness as the input type.
4277 2021-06-29  Richard Kenner  <kenner@adacore.com>
4279         * sem_util.adb (Visit_Node): Add handling for N_Block_Statement
4280         with declarations.
4282 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4284         * einfo-utils.adb
4285         (Unknown_Alignment): Simply negate the Known_ counterpart.
4286         (Unknown_Component_Bit_Offset): Likewise.
4287         (Unknown_Esize): Likewise.
4288         (Unknown_Normalized_First_Bit): Likewise.
4289         (Unknown_Normalized_Position): Likewise.
4290         (Unknown_Normalized_Position_Max): Likewise.
4291         (Unknown_RM_Size): Likewise.
4293 2021-06-29  Boris Yakobowski  <yakobowski@adacore.com>
4295         * exp_ch4.adb (Expand_N_Op_Mod): Remove special case for mod -1
4296         in CodePeer_Mode.
4298 2021-06-29  Aleksandra Pasek  <pasek@adacore.com>
4300         * libgnat/s-objrea.adb (EM_AARCH64): New Constant.
4301         (Initialize): Handle EM_AARCH64 case.
4302         (Read_Address): Handle AARCH64 case.
4303         * libgnat/s-objrea.ads (Object_Arch): Add AARCH64 record
4304         component.
4306 2021-06-29  Bob Duff  <duff@adacore.com>
4308         * sem_ch13.adb (Analyze_Record_Representation_Clause): Call
4309         Set_Entity_With_Checks instead of Set_Entity, so we perform the
4310         check for correct casing.
4311         * style.adb (Check_Identifier): Minor comment improvement.
4312         Cleanup overly complicated code.
4314 2021-06-29  Ed Schonberg  <schonberg@adacore.com>
4316         * exp_aggr.adb (Convert_Aggr_In_Object_Decl): After expansion of
4317         the aggregate, the expression can be removed from the
4318         declaration, except if the object is class-wide, in which case
4319         the aggregate provides the actual type. In other cases the
4320         presence of the expression may lead to spurious freezing issue.
4321         * exp_ch3.adb (Expand_N_Object_Declaration): If the expression
4322         in the declaration is an aggregate with delayed expansion (as is
4323         the case for objects of a limited type, or a subsequent address
4324         specification) the aggregate must be resolved at this point.
4325         This resolution must not include expansion, because the
4326         expansion of the enclosing declaration will construct the
4327         necessary aggregate expansion.
4329 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4331         * errout.ads (Adjust_Name_Case): Remove obsolete and now unused
4332         variant.
4333         * errout.adb (Adjust_Name_Case): Likewise; fix variant that uses
4334         a custom buffer to also use it for names in Standard_Location.
4336 2021-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4338         * sem_ch12.adb (Freeze_Subprogram_Body): Add missing "freeze".
4339         (Install_Body): Likewise.
4341 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4343         * adaint.c (__gnat_portable_spawn): Revert change that
4344         introduced setting of __gnat_in_child_after_fork.
4346 2021-06-29  Patrick Bernardi  <bernardi@adacore.com>
4348         * libgnarl/s-tasdeb.ads (Known_Tasks): Add Atomic_Components
4349         aspect.
4351 2021-06-29  Doug Rupp  <rupp@adacore.com>
4353         * Makefile.rtl (x86_64-vx7r2) [EXTRA_GNATRTL_TASKING_OBJS]: Move
4354         i-vxinco.o out of RTP runtime.
4356 2021-06-29  Claire Dross  <dross@adacore.com>
4358         * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable
4359         pre and postconditions.
4360         * libgnat/a-cfhama.ads: Likewise.
4361         * libgnat/a-cfhase.ads: Likewise.
4362         * libgnat/a-cfinve.ads: Likewise.
4363         * libgnat/a-cforma.ads: Likewise.
4364         * libgnat/a-cforse.ads: Likewise.
4365         * libgnat/a-cofove.ads: Likewise.
4367 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4369         * sem_util.ads (Get_Fullest_View): Refill comment; remove extra
4370         extra after period.
4371         * sem_util.adb (Get_Fullest_View): Fix style.
4373 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4375         * sem_ch3.adb (Analyze_Declarations): Remove explicit check for
4376         missing, because a subsequent call to Is_Empty_List will detect
4377         them anyway.
4379 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4381         * freeze.adb (Freeze_All): Simplify by reusing
4382         Is_Subprogram_Or_Entry.
4383         * sem_ch11.adb (Analyze_Handled_Statement): Likewise.
4385 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4387         * sem_warn.adb (Warn_On_Overlapping_Actuals): Prevent cascaded
4388         errors once for the subprogram call, not for every pair of
4389         actual parameters.
4391 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4393         * sem_ch3.adb (Is_Local_Type): Simplify by reusing Scope_Within.
4395 2021-06-29  Gary Dismukes  <dismukes@adacore.com>
4397         * sem_ch6.ads (Can_Override_Operator): Function declaration
4398         moved from package body to package spec.
4399         * sem_ch6.adb (Check_Overriding_Indicator): Now use test of
4400         whether the subprogram's Chars is an operator name, to handle
4401         cases of function instances whose entity is
4402         N_Defining_Identifier rather than N_Defining_Operator_Symbol.
4403         (Can_Override_Operator): Function declaration moved to package
4404         spec.  Now use test of whether the subprogram's Chars is an
4405         operator name, to handle cases of function instances whose
4406         entity is N_Defining_Identifier rather than
4407         N_Defining_Operator_Symbol.
4408         * sem_ch8.adb (Analyze_Renamed_Subprogram): Check for
4409         possibility of an overridden predefined operator, and suppress
4410         the "not overriding" message in that case.
4412 2021-06-29  Doug Rupp  <rupp@adacore.com>
4414         * Makefile.rtl: Add a new ifeq for vx7r2 shared gnatlib.
4416 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4418         * exp_attr.adb (Build_Array_VS_Func): Restore uses of
4419         Validated_View.
4420         (Build_Record_VS_Func): Likewise.
4421         (Expand_N_Attribute_Reference): Likewise.
4422         * sem_util.adb (Validated_View): Behave as an identity function
4423         for arrays and scalars.
4425 2021-06-29  Bob Duff  <duff@adacore.com>
4427         * atree.adb, atree.ads (Parent, Set_Parent): Assert node is
4428         Present.
4429         (Copy_Parent, Parent_Kind): New helper routines.
4430         * gen_il-gen.adb: Add with clause.
4431         * nlists.adb (Parent): Assert Parent of list is Present.
4432         * aspects.adb, checks.adb, exp_aggr.adb, exp_ch6.adb,
4433         exp_util.adb, lib-xref-spark_specific.adb, osint.ads,
4434         sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch6.adb,
4435         sem_dim.adb, sem_prag.adb, sem_res.adb, sem_util.adb,
4436         treepr.adb: Do not call Parent and Set_Parent on the Empty node.
4437         * libgnat/a-stwiun__shared.adb, libgnat/a-stzunb__shared.adb:
4438         Minor: Fix typos in comments.
4439         * einfo.ads: Minor comment update.
4440         * sinfo-utils.ads, sinfo-utils.adb (Parent_Kind, Copy_Parent):
4441         New functions.
4443 2021-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4445         * repinfo-input.adb (Read_JSON_Stream): Fix typo.
4447 2021-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4449         * rtsfind.ads (RE_Id): Change RE_Valid_Enumeration_Value_NN into
4450         RE_Valid_Value_Enumeration_NN.
4451         (RE_Unit_Table): Adjust to above renaming.
4452         * exp_imgv.adb (Expand_Valid_Value_Attribute): Likewise.
4453         * libgnat/s-valuen.ads (Invalid): Remove.
4454         (Value_Enumeration_Pos): Move to...
4455         * libgnat/s-valuen.adb (Value_Enumeration_Pos): ...here.
4456         Return -1 instead of Invalid.
4457         (Value_Enumeration): Compare against 0 instead of Invalid.
4458         (Valid_Enumeration_Value): Likewise.  Rename to...
4459         (Valid_Value_Enumeration): ...this.
4460         * libgnat/s-vaenu8.ads (Valid_Enumeration_Value_8): Rename into...
4461         (Valid_Value_Enumeration_8): ...this.
4462         * libgnat/s-vaen16.ads (Valid_Enumeration_Value_16): Rename into...
4463         (Valid_Value_Enumeration_16): ...this.
4464         * libgnat/s-vaen32.ads (Valid_Enumeration_Value_32): Rename into...
4465         (Valid_Value_Enumeration_32): ...this.
4467 2021-06-29  Bob Duff  <duff@adacore.com>
4469         * einfo.ads (Component_Bit_Offset, Component_Size): Update
4470         documentation: Repinfo is the package where these negative
4471         values are documented.
4472         * einfo-utils.adb (Known_Component_Size,
4473         Known_Static_Component_Size, Unknown_Component_Size): Remove
4474         calls to Implementation_Base_Type, because Component_Size is an
4475         Impl_Base_Type_Only field (see Gen_Entities).
4476         * sem_ch13.ads, sem_ch13.adb (Check_Size): Do not set Esize and
4477         RM_Size. This is unnecessary in the case of Size. For
4478         Component_Size, it is wrong, because we would be setting the
4479         Esize and RM_Size of the component type.
4481 2021-06-29  Pascal Obry  <obry@adacore.com>
4483         * s-oscons-tmplt.c: Add some OS constants.
4485 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4487         * sem_util.ads (Validated_View): Fix style in comment.
4488         * sem_util.adb (Validated_View): Rewrite in recursive style.
4490 2021-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4492         * Make-generated.in (ada/stamp-gen_il): Ignore errors from
4493         running gen_il-main.
4495 2021-06-29  Richard Kenner  <kenner@adacore.com>
4497         * gen_il-gen-gen_entities.adb (Record_Field_Kind,
4498         Allocatable_Kind): Add new abstract kinds.
4499         (Constant_Or_Variable_Kind): Likewise.
4500         (E_Constant, E_Variable, E_Loop_Parameter): Use them.
4501         (E_Discriminant, E_Component): Likewise.
4502         * gen_il-types.ads (type Opt_Type_Enum): Add them.
4504 2021-06-29  Bob Duff  <duff@adacore.com>
4506         * gen_il-gen.adb (Put_C_Type_And_Subtypes): Put the correct
4507         numbers.
4508         * gen_il-internals.ads, gen_il-internals.adb: (Pos): Remove this
4509         function. It was assuming that the order of the enumeration
4510         literals in Type_Enum is the same as the order of the generated
4511         types Node_Kind and Entity_Kind, which is not true.
4513 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4515         * exp_attr.adb (Expand_N_Attribute_Reference): Explicitly use
4516         Validated_View for record objects.
4518 2021-06-28  Martin Sebor  <msebor@redhat.com>
4520         * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
4521         Replace TREE_NO_WARNING with suppress_warning.
4522         (gnat_gimplify_expr): Same.
4523         * gcc-interface/utils.c (gnat_pushdecl): Same.
4525 2021-06-21  Gary Dismukes  <dismukes@adacore.com>
4527         * checks.adb (Selected_Range_Checks): In the case of a
4528         qualified_expression where the qualifying subtype is an
4529         unconstrained array subtype with fixed lower bounds for some of
4530         its indexes, generate tests to check that those bounds are equal
4531         to the corresponding lower bounds of the qualified array object.
4533 2021-06-21  Bob Duff  <duff@adacore.com>
4535         * libgnat/s-valuen.ads (Value_Enumeration,
4536         Valid_Enumeration_Value): Inline.
4537         (Value_Enumeration_Pos): Add Pure_Function.
4539 2021-06-21  Justin Squirek  <squirek@adacore.com>
4541         * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
4542         feature under pragma Extensions_Allowed.
4543         * gnat_rm.texi: Regenerate.
4544         * errout.adb, errout.ads (Error_Msg_GNAT_Extension): Created to
4545         issue errors when parsing extension only constructs.
4546         * exp_ch11.adb, exp_ch11.ads (Expand_N_Raise_When_Statement):
4547         Created to expand raise ... when constucts.
4548         * exp_ch5.adb, exp_ch5.ads (Expand_N_Goto_When_Statement):
4549         Created to expand goto ... when constructs.
4550         * exp_ch6.adb, exp_ch6.ads (Expand_N_Return_When_Statement):
4551         Created to expand return ... when constructs.
4552         * expander.adb (Expand): Add case entries for "when" constructs.
4553         * gen_il-gen-gen_nodes.adb, gen_il-types.ads: Add entries for
4554         "when" constructs.
4555         * par-ch11.adb (P_Raise_Statement): Add processing for raise ...
4556         when.
4557         * par-ch5.adb (Missing_Semicolon_On_Exit): Renamed to
4558         Missing_Semicolon_On_When and moved to par-util.adb.
4559         * par-ch6.adb (Get_Return_Kind): Renamed from Is_Simple and
4560         processing added for "return ... when" return kind.
4561         (Is_Simple): Renamed to Get_Return_Kind.
4562         (P_Return_Statement): Add case for return ... when variant of
4563         return statement.
4564         * par-util.adb, par.adb (Missing_Semicolon_On_When): Added to
4565         centeralize parsing of "when" keywords in the context of "when"
4566         constructs.
4567         * sem.adb (Analyze): Add case for "when" constructs.
4568         * sem_ch11.adb, sem_ch11.ads (Analyze_Raise_When_Statement):
4569         Created to analyze raise ... when constructs.
4570         * sem_ch5.adb, sem_ch5.ads (Analyzed_Goto_When_Statement):
4571         Created to analyze goto ... when constructs.
4572         * sem_ch6.adb, sem_ch6.ads (Analyze_Return_When_Statement):
4573         Created to analyze return ... when constructs.
4574         * sprint.adb (Sprint_Node_Actual): Add entries for new "when"
4575         nodes.
4577 2021-06-21  Steve Baird  <baird@adacore.com>
4579         * Make-generated.in (GEN_IL_FLAGS): Keep only GNAT flags.
4580         (ada/stamp-gen_il): Remove dependencies on libgnat/ sources.  Do not
4581         copy libgnat/ sources locally and tidy up.
4582         * Makefile.rtl: Include object files for new Text_Buffer units
4583         in the GNATRTL_NONTASKING_OBJS list.
4584         * exp_put_image.ads, exp_put_image.adb: Update Rtsfind calls to
4585         match new specs. For example, calls to RE_Sink are replaced with
4586         calls to RE_Root_Buffer_Type. Update comments and change
4587         subprogram names accordingly (e.g., Preload_Sink is changed to
4588         Preload_Root_Buffer_Type).
4589         * impunit.adb: Add 6 new predefined units (Text_Buffers and 5
4590         child units thereof).
4591         * rtsfind.ads, rtsfind.adb: Add interfaces for accessing the
4592         Ada.Strings.Text_Buffers package and declarations
4593         therein (including the Unbounded child unit). Do not (yet)
4594         delete interfaces for accessing the old Text_Output package.
4595         * sem_attr.adb (Check_Put_Image_Attribute): Replace RE_Sink uses
4596         with RE_Root_Buffer_Type and update comments accordingly.
4597         * sem_ch10.adb (Analyze_Compilation_Unit): Update call to
4598         reflect name change of callee (that is, the former Preload_Sink
4599         is now Preload_Root_Buffer_Type).
4600         * sem_ch13.adb (Has_Good_Profile): Replace RE_Sink use with
4601         RE_Root_Buffer_Type.
4602         (Build_Spec): Update comment describing a parameter type.
4603         * gen_il.ads: Remove clauses for the old Text_Output package and
4604         add them for Ada.Streams.Stream_IO.
4605         (Sink): Declare.
4606         (Create_File): Likewise.
4607         (Increase_Indent): Likewise.
4608         (Decrease_Indent): Likewise.
4609         (Put): Likewise.
4610         (LF): Likewise.
4611         * gen_il.adb: Add clauses for Ada.Streams.Stream_IO.
4612         (Create_File): New procedure.
4613         (Increase_Indent): Likewise.
4614         (Decrease_Indent): Likewise.
4615         (Put): New procedures.
4616         * gen_il-gen.adb: Add clauses for Ada.Text_IO.  Replace
4617         Sink'Class with Sink throughout.  Use string concatenation and
4618         LF marker instead of formatted strings and "\n" marker.  Update
4619         Indent/Outdent calls to use new Increase_Indent/Decrease_Indent
4620         names.
4621         (Put_Membership_Query_Decl): Remove.
4622         * gen_il-internals.ads: Replace Sink'Class with Sink throughout.
4623         (Ptypes): Remove.
4624         (Pfields): Likewise.
4625         * gen_il-internals.adb: Remove clauses for GNAT.OS_Lib and
4626         Ada.Strings.Text_Buffers.Files.  Replace Sink'Class with Sink
4627         throughout.  Use string concatenation and LF marker instead of
4628         formatted strings and "\n" marker.
4629         (Stdout): Remove.
4630         (Ptypes): Likewise.
4631         (Pfields): Likewise.
4632         * libgnarl/s-putaim.ads: Modify context clause, update
4633         declaration of subtype Sink to refer to
4634         Text_Buffers.Root_Buffer_Type instead of the old
4635         Text_Output.Sink type.
4636         * libgnarl/s-putaim.adb: Modify context clause and add use
4637         clause to refer to Text_Buffers package.
4638         * libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
4639         libgnat/a-cbhama.ads, libgnat/a-cbhama.adb,
4640         libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
4641         libgnat/a-cbmutr.ads, libgnat/a-cbmutr.adb,
4642         libgnat/a-cborma.ads, libgnat/a-cborma.adb,
4643         libgnat/a-cborse.ads, libgnat/a-cborse.adb,
4644         libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
4645         libgnat/a-cidlli.ads, libgnat/a-cidlli.adb,
4646         libgnat/a-cihama.ads, libgnat/a-cihama.adb,
4647         libgnat/a-cihase.ads, libgnat/a-cihase.adb,
4648         libgnat/a-cimutr.ads, libgnat/a-cimutr.adb,
4649         libgnat/a-ciorma.ads, libgnat/a-ciorma.adb,
4650         libgnat/a-ciormu.ads, libgnat/a-ciormu.adb,
4651         libgnat/a-ciorse.ads, libgnat/a-ciorse.adb,
4652         libgnat/a-coboho.ads, libgnat/a-coboho.adb,
4653         libgnat/a-cobove.ads, libgnat/a-cobove.adb,
4654         libgnat/a-cohama.ads, libgnat/a-cohama.adb,
4655         libgnat/a-cohase.ads, libgnat/a-cohase.adb,
4656         libgnat/a-coinho.ads, libgnat/a-coinho.adb,
4657         libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb,
4658         libgnat/a-coinve.ads, libgnat/a-coinve.adb,
4659         libgnat/a-comutr.ads, libgnat/a-comutr.adb,
4660         libgnat/a-convec.ads, libgnat/a-convec.adb,
4661         libgnat/a-coorma.ads, libgnat/a-coorma.adb,
4662         libgnat/a-coormu.ads, libgnat/a-coormu.adb,
4663         libgnat/a-coorse.ads, libgnat/a-coorse.adb,
4664         libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
4665         libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.ads,
4666         libgnat/a-nbnbre.adb, libgnat/a-strunb.ads,
4667         libgnat/a-strunb.adb, libgnat/a-strunb__shared.ads,
4668         libgnat/a-strunb__shared.adb, libgnat/s-rannum.ads,
4669         libgnat/s-rannum.adb: Modify Put_Image procedure used in
4670         Put_Image aspect specification to conform to Ada profile
4671         rules (in particular, the first parameter shall be of type
4672         Ada.Strings.Text_Buffers.Root_Buffer_Type'Class).
4673         * libgnat/a-sttebu.ads, libgnat/a-sttebu.adb,
4674         libgnat/a-stbubo.ads, libgnat/a-stbubo.adb,
4675         libgnat/a-stbufi.ads, libgnat/a-stbufi.adb,
4676         libgnat/a-stbufo.ads, libgnat/a-stbufo.adb,
4677         libgnat/a-stbuun.ads, libgnat/a-stbuun.adb,
4678         libgnat/a-stbuut.ads, libgnat/a-stbuut.adb: A new predefined
4679         unit, Ada.Strings.Text_Buffers, and five child units.  Two of
4680         the five are RM-defined: Bounded and Unbounded. The remaining
4681         three are GNAT-defined: Files, Utils, and Formatting. The buffer
4682         type corresponding to an output file, type Files.File_Buffer, is
4683         simpler (and perhaps therefore slower) than its predecessor.
4684         Caching similar to what was being done before could be added
4685         later if that seems appropriate.
4686         * libgnat/s-putima.ads: Modify context clause, update
4687         declaration of subtype Sink to refer to
4688         Text_Buffers.Root_Buffer_Type instead of the old
4689         Text_Output.Sink type.
4690         * libgnat/s-putima.adb: Modify context clause.  Update
4691         Indent/Outdent calls to use new Increase_Indent/Decrease_Indent
4692         names; ditto for "Put_String => Put" name change.
4693         * libgnat/a-stteou__bootstrap.ads: Delete.
4695 2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4697         * exp_ch5.adb (Expand_Assign_Array_Bitfield_Fast): If big-endian
4698         ordering is in effect for the operands and they are small,
4699         adjust the unchecked conversions done around them.
4701 2021-06-21  Richard Kenner  <kenner@adacore.com>
4703         * einfo.ads (Return_Statement): Add documentation.
4704         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set it.
4705         * gen_il-fields.ads: Add it.
4706         * gen_il-gen-gen_entities.adb: Add it.
4708 2021-06-21  Bob Duff  <duff@adacore.com>
4710         * rtsfind.ads, libgnat/s-bitfie.ads, libgnat/s-bituti.adb,
4711         libgnat/s-bituti.ads (Fast_Copy_Bitfield): New run-time library
4712         function to copy bit fields faster than Copy_Bitfield. Cannot be
4713         called with zero-size bit fields.  Remove obsolete ??? comments
4714         from s-bituti.adb; we already do "avoid calling this if
4715         Forwards_OK is False".
4716         * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield,
4717         Expand_Assign_Array_Bitfield_Fast): Generate calls to
4718         Fast_Copy_Bitfield when appropriate.
4719         * sem_util.adb, sem_util.ads (Get_Index_Bounds): Two new
4720         functions for getting the index bounds. These are more
4721         convenient than the procedure of the same name, because they can
4722         be used to initialize constants.
4724 2021-06-21  Ed Schonberg  <schonberg@adacore.com>
4726         * gen_il-fields.ads: Add Default_Subtype_Mark to enumeration
4727         type for fields.
4728         * gen_il-gen-gen_nodes.adb: Add call to create new field for
4729         Formal_Type_Declaration node.
4730         * par-ch12.adb (P_Formal_Type_Declaration): in Ada_2022 mode,
4731         recognize new syntax for default: "or use subtype_mark".
4732         (P_Formal_Type_Definition): Ditto for the case of a formal
4733         incomplete type.
4734         * sinfo.ads: Add field Default_Subtype_Mark to
4735         N_Formal_Type_Declaration.
4736         * sem_ch12.adb (Validate_Formal_Type_Default): New procedure, to
4737         apply legality rules to default subtypes in formal type
4738         declarations. Some legality rules apply to all defaults, such as
4739         the requirement that the default for a formal type that depends
4740         on previous formal entities must itself be a previously declared
4741         formal of the same unit. Other checks are kind- specific.
4742         (Analyze_Associations): Use specified default if there is no
4743         actual provided for a formal type in an instance.
4744         (Analyze_Formal_Type_Declaration): Call
4745         Validate_Formal_Type_Default when default subtype is present.
4747 2021-06-21  Bob Duff  <duff@adacore.com>
4749         * libgnat/s-valuen.ads, libgnat/s-valuen.adb
4750         (Value_Enumeration_Pos): New function to compute the 'Pos of the
4751         enumeration literal for a given String.  Return a special value
4752         instead of raising an exception on invalid input. Called by both
4753         Valid_Enumeration_Image and Value_Enumeration.
4754         (Valid_Enumeration_Image): Return a Boolean indicating whether
4755         the String is a valid Image for the given enumeration type.
4756         (Value_Enumeration): Implement in terms of
4757         Value_Enumeration_Pos.
4758         * libgnat/s-vaenu8.ads, libgnat/s-vaen16.ads,
4759         libgnat/s-vaen32.ads: Rename Valid_Enumeration_Image from the
4760         instances.
4761         * libgnat/s-valuti.ads: Correct documentation (it was not true
4762         for the null string).
4763         * libgnat/s-valuti.adb (Normalize_String): Do not raise
4764         Constraint_Error for the null string, nor strings containing
4765         nothing but blanks, so that Valid_Enumeration_Image can return
4766         False in these cases, rather than raising an exception.
4767         * rtsfind.ads (RE_Value_Enumeration_8, RE_Value_Enumeration_16,
4768         RE_Value_Enumeration_32): New functions.
4769         (RTE_Available): Improve comment (E doesn't have to be a
4770         subprogram, although that's the usual case).
4771         * sem_attr.adb (nalid_Value): Semantic analysis for new
4772         attribute.
4773         * exp_attr.adb: Call Expand_Valid_Value_Attribute for new
4774         attribute.
4775         * exp_imgv.ads, exp_imgv.adb (Expand_Valid_Value_Attribute): New
4776         procedure to expand Valid_Value into a call to
4777         Valid_Enumeration_Image_NN.
4778         (Expand_Value_Attribute): Misc code cleanups.  Remove two ???
4779         mark comments. RTE_Available won't work here.  For one thing,
4780         RTE_Available (X) shouldn't be called until the compiler has
4781         decided to make use of X (see comments on RTE_Available), and in
4782         this case we're trying to AVOID calling something.
4783         * snames.ads-tmpl: New attribute name.
4784         * doc/gnat_rm/implementation_defined_attributes.rst: Document
4785         new attribute.
4786         * gnat_rm.texi: Regenerate.
4788 2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4790         * fe.h (Assume_No_Invalid_Values): Declare.
4791         * opt.ads (Assume_No_Invalid_Values): Add warning comment.
4793 2021-06-21  Bob Duff  <duff@adacore.com>
4795         * libgnat/s-bituti.ads (Small_Size): Do not include 0 in this
4796         type.
4797         * libgnat/s-bituti.adb (Copy_Bitfield): Do nothing for 0-bit
4798         bitfields.
4800 2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
4802         * exp_ch9.adb (Build_Simple_Entry_Call): Add comment.
4803         * libgnat/s-rannum.adb (Random): Update comment.
4804         * libgnat/s-rannum.ads (Generator): Update comment.
4806 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4808         * doc/gnat_rm/representation_clauses_and_pragmas.rst (Address
4809         Clauses): Fix unbalanced parens.
4810         * gnat_rm.texi: Regenerate.
4812 2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
4814         * errout.adb (Handle_Serious_Error): Capitalize comment.
4815         * exp_dbug.adb (Set_Entity_Name): Capitalize sentence.
4816         * exp_dist.adb (Expand_All_Calls_Remote_Subprogram_Call): Fix
4817         typo.
4818         * sem_ch3.adb (Modular_Type_Declaration): Add space after comma.
4820 2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
4822         * debug.adb: Document -gnatd_U as taken.
4823         * err_vars.ads (Warning_Doc_Switch): Set to True.
4824         * errout.ads (Errout): Update documentation.
4825         * gnat1drv.adb (Adjust_Global_Switches): React to -gnatd_U.
4826         * hostparm.ads (Tag_Errors): Set to True.
4827         * opt.ads (Unique_Error_Tag): Document -gnatd_U.
4829 2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4831         * urealp.ads (UR_Write_To_JSON): Declare.
4832         * urealp.adb (Decimal_Exponent_Hi): Treat numbers in base 10
4833         specially and rewrite handling of numbers in other bases.
4834         (Decimal_Exponent_Lo): Likewise.
4835         (Normalize): Minor tweak.
4836         (UR_Write_To_JSON): New wrapper procedure around UR_Write.
4837         * repinfo.adb (List_Type_Info): When the output is to JSON, call
4838         UR_Write_To_JSON instead of UR_Write.
4840 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4842         * sem_util.adb (Indexed_Component_Bit_Offset): Return an unknown
4843         offset for components within multidimensional arrays; remove
4844         redundant parens.
4846 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4848         * sem_util.adb (Find_Overlaid_Entity): Ignore references to
4849         components and discriminants.
4851 2021-06-21  Doug Rupp  <rupp@adacore.com>
4853         * Makefile.rtl (aarch64-linux) [LIBGNAT_TARGET_PAIRS]: Add
4854         $(TRASYM_DWARF_UNIX_PAIRS).
4855         [EXTRA_GNAT_RTL_NONTASKING_OBJS]: Add $(TRASYM_DWARF_UNIX_OBJS)
4857 2021-06-21  Gary Dismukes  <dismukes@adacore.com>
4859         * exp_util.adb (Expand_Sliding_Conversion): Only perform
4860         expansion when Expander_Active is True. Add a comment about this
4861         and refine existing comment regarding string literals.
4863 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4865         * sem_util.adb (Denotes_Same_Object): Simplify handling of
4866         slices.
4868 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4870         * sem_util.adb (Is_Object_Renaming): Rename from Is_Renaming;
4871         simplify; adapt callers.
4873 2021-06-21  Frederic Konrad  <konrad@adacore.com>
4875         * Makefile.rtl: Compiles both static and dynamic libgnat for
4876         powerpc64-wrs-vxworks7r2.
4878 2021-06-18  Gary Dismukes  <dismukes@adacore.com>
4880         * sem_ch3.adb (Constrain_Array): Add error checking for
4881         fixed-lower-bound and constrained index ranges applied
4882         inappropriately on subtypes of unconstrained and
4883         fixed-lower-bound array types.
4884         (Constrain_Index): Correct and refine comment related to
4885         fixed-lower-bound index ranges.
4887 2021-06-18  Bob Duff  <duff@adacore.com>
4889         * gen_il-gen.adb: Improve comments.
4890         * snames.ads-tmpl (Convention_Id): Remove "--  Plenty of space
4891         for expansion", because that's irrelevant now that we are no
4892         longer laying out node fields by hand.
4894 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4896         * sem_util.adb (Denotes_Same_Object): Handle character literals
4897         just like integer literals.
4899 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4901         * sem_util.adb (Denotes_Same_Object): Explicitly test for node
4902         kinds being the same; deal with renamings one-by-one; adjust
4903         numbers in references to the Ada RM.
4905 2021-06-18  Bob Duff  <duff@adacore.com>
4907         * sprint.adb (Write_Source_Line): Check for EOF in
4908         Line_Terminator loop.  Note that when a source file is read in,
4909         an EOF character is added to the end.
4911 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4913         * sem_aux.adb (Package_Specification): Add assertions to confirm
4914         the kind of the of parameter and returned node.
4915         * sem_ch12.adb (Remove_Parent): Reorder conditions; this change
4916         appears to be semantically neutral, but is enough to avoid the
4917         problematic call to Package_Specification.
4918         * sem_util.adb (Is_Incomplete_Or_Private_Type): Replace loop
4919         with a call to Package_Specification.
4921 2021-06-18  Bob Duff  <duff@adacore.com>
4923         * sem_attr.adb (Eval_Attribute): For Enum_Lit'Size, use
4924         Enum_Type'Object_Size.
4926 2021-06-18  Olivier Hainque  <hainque@adacore.com>
4928         * sigtramp-vxworks-target.inc (__aarch64__): Sync
4929         REGNO_PC_OFFSET with the back-end DWARF_ALT_FRAME_RETURN_COLUMN.
4930         In CFI_COMMON_REGS, leave r18 alone, VxWorks private.
4932 2021-06-18  Javier Miranda  <miranda@adacore.com>
4934         * contracts.adb (Process_Spec_Postconditions): Add missing
4935         support for aliased subprograms and handle wrappers of
4936         class-wide pre/post conditions.
4937         (Process_Inherited_Preconditions): Add missing support for
4938         aliased subprograms and handle wrappers of class-wide pre/post
4939         conditions.
4940         * einfo.ads (Class_Wide_Clone): Fix typo.
4941         (Is_Class_Wide_Clone): Removed since it is not referenced.
4942         (Is_Wrapper): Documenting new flag.
4943         (LSP_Subprogram): Documenting new attribute.
4944         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Decorate
4945         wrapper as Is_Wrapper and adjust call to
4946         Override_Dispatching_Operation.
4947         * freeze.adb (Build_Inherited_Condition_Pragmas): Fix typo in
4948         documentation.
4949         (Check_Inherited_Conditions): Handle LSP wrappers; ensure
4950         correct decoration of LSP wrappers.
4951         * gen_il-fields.ads (Is_Class_Wide_Clone): Removed.
4952         (Is_Wrapper): Added.
4953         (LSP_Subprogram): Added.
4954         * gen_il-gen-gen_entities.adb (Is_Class_Wide_Clone): Removed.
4955         (Is_Wrapper): Added.
4956         (LSP_Subprogram): Added.
4957         * gen_il-internals.adb (Image): Adding uppercase image of
4958         LSP_Subprogram.
4959         * sem_ch6.adb (New_Overloaded_Entity): Fix decoration of LSP
4960         wrappers.
4961         * sem_disp.ads (Override_Dispatching_Operation): Remove
4962         parameter Is_Wrapper; no longer needed.
4963         * sem_disp.adb (Check_Dispatching_Operation): Adjust assertion.
4964         (Override_Dispatching_Operation): Remove parameter Is_Wrapper;
4965         no longer needed.
4966         * treepr.adb (Image): Adding uppercase image of LSP_Subprogram.
4968 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
4970         * exp_ch4.adb (Expand_N_Quantified_Expression): Ensure the type
4971         of the name of a "for of" loop is frozen.
4972         * exp_disp.adb (Check_Premature_Freezing): Complete condition to
4973         take into account a private type completed by another private
4974         type now that the freezing rule are better implemented.
4975         * freeze.adb (Freeze_Entity.Freeze_Profile): Do not perform an
4976         early freeze on types if not in the proper scope. Special case
4977         expression functions that requires access to the dispatch table.
4978         (Should_Freeze_Type): New.
4979         * sem_ch13.adb (Resolve_Aspect_Expressions): Prevent assert
4980         failure in case of an invalid tree (previous errors detected).
4981         * sem_res.adb (Resolve): Remove kludge related to entities
4982         causing incorrect premature freezing.
4983         * sem_util.adb (Ensure_Minimum_Decoration): Add protection
4984         against non base types.
4986 2021-06-18  Gary Dismukes  <dismukes@adacore.com>
4988         * sem_ch3.adb (Constrain_Index): Set the High_Bound of a
4989         fixed-lower-bound subtype's range to T (the subtype of the FLB
4990         index being constrained) rather than Base_Type (T).
4992 2021-06-18  Bob Duff  <duff@adacore.com>
4994         * ada_get_targ.adb, aspects.ads, checks.adb, cstand.adb,
4995         einfo.ads, exp_attr.adb, freeze.adb, get_targ.adb,
4996         libgnat/a-textio.ads, libgnat/g-memdum.ads,
4997         libgnat/s-scaval__128.adb, libgnat/s-scaval.adb, make.adb,
4998         osint.ads, par-prag.adb, sem_ch13.adb, sem_prag.adb,
4999         sem_prag.ads, set_targ.adb, set_targ.ads, snames.ads-tmpl,
5000         targparm.ads, types.ads: Remove AAMP-specific code.
5001         * switch.ads: Minor reformatting.
5002         * gen_il-fields.ads, gen_il-gen.adb,
5003         gen_il-gen-gen_entities.adb, gen_il-types.ads, einfo-utils.adb,
5004         einfo-utils.ads: Package Types now contains "type Float_Rep_Kind
5005         is (IEEE_Binary);", which used to also have an enumeral AAMP.
5006         Gen_IL can't handle fields of this type, which would be zero
5007         sized. Therefore, we move the Float_Rep field into Einfo.Utils
5008         as a synthesized attribute. (We do not delete the field
5009         altogether, in case we want new floating-point representations
5010         in the future.)
5011         * doc/gnat_rm/implementation_defined_pragmas.rst,
5012         doc/gnat_rm/implementation_defined_aspects.rst,
5013         doc/gnat_ugn/building_executable_programs_with_gnat.rst,
5014         doc/gnat_ugn/the_gnat_compilation_model.rst: Remove
5015         AAMP-specific documentation.
5016         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
5018 2021-06-18  Gary Dismukes  <dismukes@adacore.com>
5020         * exp_util.adb (Expand_Sliding_Conversion): Move test of
5021         Is_Fixed_Lower_Bound_Subtype to an assertion. Exclude string
5022         literals from sliding expansion.
5024 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
5026         * sem_warn.adb (Warn_On_Overlapping_Actuals): Cleanup conditions
5027         related to Ada_Version.
5029 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
5031         * sem_util.adb (Address_Value): Simplify.
5033 2021-06-18  Bob Duff  <duff@adacore.com>
5035         * sem_attr.adb (Check_Array_Or_Scalar_Type): Use Expr_Value
5036         instead of Intval, because the latter only exists in literals.
5037         Remove Set_Etype on E1; setting the type is done elsewhere.
5039 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
5041         * sem_warn.adb (Warn_On_Overlapping_Actuals): Examine types of
5042         both formal parameters; refactor a complex detection of
5043         by-reference types.
5045 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
5047         * gnatcmd.adb: Fix handling of check and test commands.
5049 2021-06-18  Gary Dismukes  <dismukes@adacore.com>
5051         * doc/gnat_rm/implementation_defined_pragmas.rst: Add
5052         documentation for the array fixed-lower-bound feature.
5053         * gnat_rm.texi: Regenerate.
5055 2021-06-18  Bob Duff  <duff@adacore.com>
5057         * debug.adb: Document switch.
5058         * exp_aggr.adb: If -gnatd_g was given, then do not bump the
5059         limit to 500_000.
5061 2021-06-18  Bob Duff  <duff@adacore.com>
5063         * sem_util.ads, sem_util.adb (Has_Access_Values): Remove
5064         Include_Internal parameter that was added in previous change.
5065         * sem_warn.adb (Warnings_Off_E1): Back out E_Out_Parameter ==>
5066         Formal_Kind change made previously. Check Is_Private_Type to
5067         avoid warnings on private types. Misc cleanup.
5068         * sem_attr.adb (Attribute_Has_Access_Values): Remove
5069         Include_Internal parameter.
5071 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
5073         * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead branch
5074         for overlapping actuals in prefix notation.
5076 2021-06-18  Eric Botcazou  <ebotcazou@adacore.com>
5078         * sem_prag.adb (Process_Import_Or_Interface): Do not
5079         artificially record a possible modification for a constant.
5081 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
5083         * exp_ch6.adb (Expand_Call_Helper): Code cleanups.
5085 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
5087         * exp_aggr.adb, exp_dist.adb, exp_unst.adb, sa_messages.ads,
5088         sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_eval.adb,
5089         sem_util.adb, sem_util.ads, sinfo.ads: Update comments.
5091 2021-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>
5093         * back_end.adb (Scan_Back_End_Switches): Set Opt.JSON_Output to
5094         True if -fdiagnostics-format=json option is found.
5095         * back_end.ads (Scan_Compiler_Arguments): Mention
5096         Opt.JSON_Output.
5097         * errout.adb (Output_JSON_Message): New procedure.
5098         (Output_Messages): If Opt.JSON_Output is True, print messages
5099         with new Output_JSON_Message procedure.
5100         * opt.ads: Declare JSON_Output variable.
5101         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
5102         Mention new -fdiagnostics-format option.
5103         * gnat_ugn.texi: Regenerate.
5105 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
5107         * sem_ch6.adb (Null_Exclusions_Match): Relax null exclusion
5108         mismatch check when Relaxed_RM_Semantics is set.
5110 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
5112         * fe.h, opt.adb, opt.ads, par-prag.adb, sem_prag.adb,
5113         switch-c.adb (Extensions_Allowed): Replace by a function.
5114         (Ada_Version_Type): Add new value Ada_With_Extensions, to
5115         replace setting of Extensions_Allowed.  Update setting of
5116         Extensions_Allowed.
5118 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
5120         * bindgen.adb (Gen_Output_File_Ada): Generate a new constant
5121         GNAT_Version_Address.
5122         * libgnat/g-comver.adb (GNAT_Version_Address): New;
5123         (GNAT_Version): Use GNAT_Version_Address to disable LTO warning.
5125 2021-06-18  Javier Miranda  <miranda@adacore.com>
5127         * einfo.ads (Is_Ada_2022_Only): Adding documentation.
5128         * gen_il-fields.ads (Is_Ada_2022_Only): New flag.
5129         * gen_il-gen-gen_entities.adb (Is_Ada_2022_Only): New flag.
5130         * itypes.adb (Create_Null_Excluding_Itype): Inherit
5131         Is_Ada_2022_Only.
5132         * sem_ch3.adb (Check_Abstract_Overriding): Skip reporting error
5133         on Ada 2022 only subprograms that require overriding if we are
5134         not in Ada 2022 mode.
5135         (Derive_Subprogram): Inherit Is_Ada_2022_Only.
5136         * sem_ch6.adb (Check_Overriding_Indicator): Inherit
5137         Is_Ada_2022_Only.
5138         (New_Overloaded_Entity): Inherit Is_Ada_2022_Only.
5139         * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Inherit
5140         Is_Ada_2022_Only.
5141         (Preserve_Full_Attributes): Inherit Is_Ada_2022_Only.
5142         * sem_disp.adb (Find_Hidden_Overridden_Primitive): Inherit
5143         Is_Ada_2022_Only.
5144         (Override_Dispatching_Operation): Inherit Is_Ada_2022_Only.
5145         * sem_prag.adb (Analyze_Pragma): Allow form with argument for
5146         Ada 2022.
5147         * sem_type.adb: (Disambiguate): Deal with Is_Ada_2022_Only
5148         * lib-xref.adb (Generate_Reference): Error on static and
5149         dispatching calls to Ada 2022 subprograms that require
5150         overriding if we are not in Ada 2022 mode; warn on other
5151         references to Ada 2022 entities when not in Ada 2022 mode.
5152         * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Inherit
5153         Ada_2020_Only.
5154         * libgnat/a-cdlili.ads (Empty): Adding pragma Ada_2022.
5155         * libgnat/a-cidlli.ads (Empty): Adding pragma Ada_2022.
5156         * libgnat/a-ciorma.ads (Empty): Adding pragma Ada_2022.
5157         * libgnat/a-cobove.ads (Empty): Adding pragma Ada_2022.
5158         * libgnat/a-coorma.ads (Empty): Adding pragma Ada_2022.
5159         (New_Vector): Adding pragma Ada_2022.
5160         (Insert_Vector): Adding pragma Ada_2022.
5161         (Prepend_Vector): Adding pragma Ada_2022.
5162         (Append_Vector): Adding pragma Ada_2022.
5164 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5166         * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Protect against
5167         no Primitive_Operations.
5169 2021-06-17  Vadim Godunko  <godunko@adacore.com>
5171         * libgnat/a-strunb__shared.ads (Allocate): Additional parameter
5172         to provide additional amount of space to be allocated.
5173         * libgnat/a-strunb__shared.adb (Aligned_Max_Length): Limit
5174         length to Natural'Last when requested length is larger than it.
5175         (Allocate): Merge two slightly different implementations into
5176         one.
5178 2021-06-17  Gary Dismukes  <dismukes@adacore.com>
5180         * checks.adb (Discrete_Range_Cond): For an index subtype that
5181         has a fixed lower bound, require that the range's lower bound
5182         match that of the subtype.
5183         (Selected_Range_Checks): Warn about the case where a static
5184         lower bound does not equal an index subtype's fixed lower bound.
5185         * einfo.ads (Is_Fixed_Lower_Bound_Array_Subtype,
5186         Is_Fixed_Lower_Bound_Index_Subtype): Document new entity flag.
5187         * exp_ch4.adb (Expand_N_Type_Conversion): If the operand is of
5188         an unconstrained array subtype with fixed lower bound, then
5189         Expand_Sliding_Conversion is applied to the operand.
5190         * exp_ch6.adb (Expand_Simple_Function_Return): If the result
5191         subtype is an unconstrained array subtype with fixed lower
5192         bound, then Expand_Sliding_Conversion is applied to the return
5193         object.
5194         * exp_util.ads (Expand_Sliding_Conversion): New procedure for
5195         applying a sliding subtype conversion to an array object of a
5196         fixed-lower-bound subtype when needed.
5197         * exp_util.adb: Add with_clause for Freeze.
5198         (Expand_Sliding_Conversion): New procedure for applying a
5199         sliding subtype conversion to an array object of a
5200         fixed-lower-bound subtype when needed.  It traverses the indexes
5201         of the unconstrained array type/subtype to create a target
5202         constrained subtype and rewrites the array object to be a
5203         conversion to that subtype, when there's at least one index
5204         whose lower bound does not statically match the fixed-lower
5205         bound of the target subtype.
5206         * gen_il-fields.ads (type Opt_Field_Enum): Add literals
5207         Is_Fixed_Lower_Bound_Array_Subtype and
5208         Is_Fixed_Lower_Bound_Index_Subtype for new flags on type
5209         entities.
5210         * gen_il-gen-gen_entities.adb: Add calls to
5211         Create_Semantic_Field for the new fixed-lower-bound flags on
5212         type entities.
5213         * par-ch3.adb (P_Array_Type_Definition): Add handling for
5214         parsing of fixed-lower-bound index ranges in unconstrained array
5215         types. Report an error if such an index is encountered and GNAT
5216         language extensions are not enabled.
5217         (P_Index_Subtype_Def_With_Fixed_Lower_Bound): Support procedure
5218         for parsing unconstrained index ranges.
5219         (P_Index_Or_Discriminant_Constraint): Add handling for parsing
5220         of index constraints that specify ranges with fixed lower
5221         bounds. Report an error if such an index is encountered and GNAT
5222         language extensions are not enabled.
5223         * sem_ch3.adb (Analyze_Object_Declaration): If the object's
5224         nominal subtype is an array subtype with fixed lower bound, then
5225         Expand_Sliding_Conversion is applied to the object.
5226         (Array_Type_Declaration): Mark the array type and the subtypes
5227         of any indexes that specify a fixed lower bound as being
5228         fixed-lower-bound subtypes, and set the High_bound of the range
5229         of such an index to the upper bound of the named subtype.
5230         (Constrain_Array): For an array subtype with one or more index
5231         ranges specifying a fixed lower bound, set Is_Constrained to
5232         False and set the array subtype's
5233         Is_Fixed_Lower_Bound_Array_Subtype flag to True.
5234         (Constrain_Index): Mark the subtypes of an index that specifies
5235         a fixed lower bound as being a fixed-lower-bound index subtype,
5236         and set the High_bound of the range of such an index to the
5237         upper bound of the base type of the array type's corresponding
5238         index.
5239         * sem_res.adb (Resolve_Actuals): If a formal is of an
5240         unconstrained array subtype with fixed lower bound, then
5241         Expand_Sliding_Conversion is applied to the actual.
5242         * sem_util.adb (Build_Actual_Subtype): If the actual subtype
5243         corresponds to an unconstrained array subtype having any indexes
5244         with fixed lower bounds, then set the lower bounds of any such
5245         indexes of the actual subtype to the appropriate fixed lower
5246         bound of the formal subtype (rather than taking it from the
5247         formal itself).
5248         * sprint.adb (Sprint_Node_Actual, case N_Range): If a range's
5249         Etype has a fixed lower bound, then print "<>" rather than the
5250         High_Bound of the range.
5252 2021-06-17  Bob Duff  <duff@adacore.com>
5254         * sem_util.adb, sem_util.ads (Has_Access_Values): New formal
5255         Include_Internal to indicate whether internal types should be
5256         included.
5257         * sem_warn.adb (Check_References): Change E_Out_Parameter to
5258         Formal_Kind, to match the comment about Spec_Entity.  Pass
5259         Include_Internal => False to Has_Access_Values, so that we warn
5260         on types with access values that happen to be in internal types,
5261         such as Unbounded_String.
5262         * sem_attr.adb (Attribute_Has_Access_Values): Pass
5263         Include_Internal => True to Has_Access_Values, to preserve
5264         existing behavior.
5265         * libgnat/g-rewdat.adb (Do_Output): Change B from 'in out' to
5266         'in', to avoid warning enabled by the change to sem_warn.adb.
5267         * libgnat/s-objrea.adb (Check_Read_Offset): Change S from 'in
5268         out' to 'in', to avoid warning enabled by the change to
5269         sem_warn.adb.
5271 2021-06-17  Steve Baird  <baird@adacore.com>
5273         * exp_ch5.adb
5274         (Expand_N_Case_Statement.Expand_General_Case_Statement): New
5275         subprogram.
5276         (Expand_N_Case_Statement): If extensions are allowed and the
5277         case selector is not of a discrete type, then call
5278         Expand_General_Case_Statement to generate expansion instead of
5279         flagging the non-discrete selector as an error.
5280         * sem_case.ads (Is_Case_Choice_Pattern): New Boolean-valued
5281         function for testing whether a given expression occurs as part
5282         of a case choice pattern.
5283         * sem_case.adb (Composite_Case_Ops): New package providing
5284         support routines for the new form of case statements. This
5285         includes a nested package, Composite_Case_Ops.Value_Sets, which
5286         encapsulates the "representative values" implementation of
5287         composite value sets.
5288         (Check_Choices.Check_Case_Pattern_Choices): New procedure for
5289         semantic checking of non-discrete case choices. This includes
5290         the checks pertaining to coverage and overlapping.
5291         (Check_Choices.Check_Composite_Case_Selector): New procedure for
5292         semantic checking of non-discrete case selectors.
5293         (Check_Choices): If extensions are allowed then a non-discrete
5294         selector type no longer implies that an error must have been
5295         flagged earlier.  Instead of simply returning, call
5296         Check_Composite_Case_Selector and Check_Case_Pattern_Choices.
5297         (Is_Case_Choice_Pattern): Body of new function declared in
5298         sem_case.ads .
5299         * sem_ch5.adb (Analyze_Case_Statement): If extensions are
5300         allowed, then we can't use RM 5.4's "The selecting_expression is
5301         expected to be of any discrete type" name resolution rule.
5302         Handle the case where the type of the selecting expression is
5303         not discrete, as well as the new ambiguous-name-resolution error
5304         cases made possible by this change.
5305         * sem_res.adb (Resolve_Entity_Name): It is ok to treat the name
5306         of a type or subtype as an expression if it is part of a case
5307         choice pattern, as in "(Field1 => Positive, Field2 => <>)".
5308         * exp_aggr.adb (Expand_Record_Aggregate): Do not expand case
5309         choice aggregates.
5310         * gen_il-fields.ads: Define two new node attributes,
5311         Binding_Chars and Multidefined_Bindings.
5312         * gen_il-gen-gen_nodes.adb: The new Multidefined_Bindings
5313         attribute is Boolean-valued and may be set on
5314         N_Case_Statement_Alternative nodes. The new Binding_Chars
5315         attribute is Name_Id-valued and may be set on
5316         N_Component_Association nodes.
5317         * par-ch4.adb (P_Record_Or_Array_Component_Association): When
5318         parsing a component association, check for both new syntax forms
5319         used to specify a bound value in a case-choice aggregate.  In
5320         the case of a box value, an identifier may occur within the box,
5321         as in "Foo => <Abc>" instead of "Foo => <>". In the more general
5322         case, an expression (or a box) may be followed by "is
5323         <identifier>", as in
5324         "Foo => Bar is Abc" instead of just "Foo => Bar".
5325         * sem_aggr.adb (Resolve_Record_Aggregate): Do not transform box
5326         component values in a case-choice aggregate.
5327         * sinfo.ads: Provide comments for the new attributes added in
5328         gen_il-fields.ads.
5329         * doc/gnat_rm/implementation_defined_pragmas.rst: Describe this
5330         new feature in documentation for pragma Extensions_Allowed.
5331         * gnat_rm.texi: Regenerate.
5333 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5335         * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action):
5336         Do not abandon processing on a nested N_Expression_With_Actions
5337         or N_Loop_Statement, otherwise we may miss some transient
5338         declarations.
5340 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5342         * exp_util.adb (Find_Hook_Context): Do not stop on an aggregate
5343         node.
5345 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5347         * sem_util.adb (Is_Valid_Renaming): Check not only indexed
5348         components, but slices too.
5350 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5352         * sem_ch3.adb (Analyze_Private_Extension_Declaration): Check
5353         No_Wide_Characters restriction after rejecting illegal parent
5354         types.
5355         (Derived_Type_Declaration): Likewise.
5356         (Find_Type_Of_Subtype_Indic): Remove check for
5357         No_Wide_Characters restriction, which was done too early.
5359 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5361         * sem_util.adb (Is_Valid_Renaming): Body moved from its nested
5362         routine.
5364 2021-06-17  Gary Dismukes  <dismukes@adacore.com>
5366         * sem_ch12.adb (Instantiate_Type): If the actual type for an
5367         incomplete formal type is also incomplete, but has a Full_View,
5368         use the Full_View of the actual type rather than the incomplete
5369         view.
5371 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5373         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
5374         (-gnatw.I): Remove double period at the end of sentence.
5375         * gnat_ugn.texi: Regenerate.
5377 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5379         * sem_util.adb (Denotes_Same_Object): Call Get_Index_Bounds with
5380         the range of a slice object, not its type.
5382 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5384         * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix style;
5385         refactor repeated calls to Nkind; remove early RETURN.
5387 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5389         * sem_warn.adb (Warn_On_Overlapping_Actuals): Ignore formal of
5390         generic types, but keep examining other parameters.
5392 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5394         * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead code.
5396 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5398         * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove repeated
5399         code.
5401 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5403         * checks.adb (Overlap_Check): Replace Set_Casing with
5404         Adjust_Name_Case and adapt surrounding code as needed.
5406 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5408         * libgnat/s-putaim.ads, libgnat/s-putaim.adb: Move...
5409         * libgnarl/s-putaim.ads, libgnarl/s-putaim.adb: ... here.
5411 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5413         * uintp.ads, uintp.adb (UI_To_Unsigned_64): New.
5415 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5417         * sem_prag.adb (Get_Overflow_Mode): Reword error message.
5418         * switch-c.adb (Get_Overflow_Mode): Likewise.
5420 2021-06-17  Richard Kenner  <kenner@adacore.com>
5422         * exp_util.adb (Expand_Static_Predicates_In_Choices): Handle
5423         Others_Discrete_Choices in N_Others_Choice.
5425 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5427         * atree.adb: Remove redundant comment with spec.
5428         * sem_warn.adb: Fix typo in comment.
5430 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5432         * atree.adb: Do not suppress checks.
5434 2021-06-17  Justin Squirek  <squirek@adacore.com>
5436         * exp_ch3.adb (Check_Missing_Others): Add comment.
5437         (Build_Initialization_Call): Remove inaccurate accessibility
5438         comment.
5439         * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Remove
5440         test for Ada2012.
5441         (Analyze_Package_Instantiation): Remove speculative comment.
5442         (Inline_Instance_Body): Add comments for loops.
5443         (Build_Subprogram_Renaming): Remove comment about fix being
5444         partial and "ugly."
5445         (Instantiate_Subprogram_Body): Remove comment referencing DEC
5446         related internal issue.
5447         (Subtypes_Match): Add comment and simplify anonymous access
5448         test.
5449         (Is_Global): Add test for when E is an expanded name, and
5450         calculate the scope accordingly.
5451         * sem_ch6.adb (Analyze_Function_Return): Update comment
5452         regarding accessibility, and add check for
5453         Warn_On_Ada_2012_Compatibility.
5454         (Mask_Type_Refs): Add comments.
5455         (Analyze_Subprogram_Declaration): Remove mysterious suppression
5456         of elaboration checks.
5457         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Is_Atomic
5458         value.
5459         * sem_ch8.adb (Most_Descendant_Use_Clause): Remove comment.
5460         (Note_Redundant_Use): Fix calls to Find_First_Use to be
5461         Find_Most_Prev.
5462         (Get_Object_Name): Modify error message to be more descriptive.
5463         (Known_But_Visible): Remove mysterious special case for
5464         GNAT_Mode.
5465         (Find_First_Use): Removed.
5466         (Find_Most_Prev): Renamed from Find_First_Use.
5467         * sem_prag.adb (Check_Static_Constraint): Add comments to
5468         routine.
5470 2021-06-17  Bob Duff  <duff@adacore.com>
5472         * treepr.adb (Print_Node): Display the Entity or Associated_Node
5473         fields if appropriate.
5474         * sinfo-utils.ads (F_Associated_Node, F_Entity): Remove. These
5475         are no longer needed.
5477 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5479         * checks.adb (Apply_Parameter_Aliasing_Checks): Replace calls to
5480         Is_Object_Reference with calls to Is_Name_Reference; remove
5481         asymmetric condition that only detected an aggregate as the
5482         first actual (aggregate objects were just a special case of an
5483         object reference that was not a name).
5485 2021-06-17  Bob Duff  <duff@adacore.com>
5487         * gen_il-gen.adb, gen_il-internals.ads: Generate field
5488         enumeration literals with "F_" prefix.  Update all generated
5489         references accordingly.
5490         * atree.adb, einfo-utils.adb, sem_ch3.adb, sem_ch5.adb,
5491         sem_ch6.adb, sem_ch8.adb, sinfo-cn.adb, sinfo-utils.adb,
5492         sinfo-utils.ads, treepr.adb: Add "F_" prefix to all uses of the
5493         field enumeration literals.
5495 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5497         * libgnat/i-c.ads, libgnat/i-cexten.ads,
5498         libgnat/i-cexten__128.ads: bool renamed C_bool.
5500 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5502         * sem_ch4.adb (Analyze_Allocator): Reject allocators in
5503         restricted contexts.
5505 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5507         * gcc-interface/Make-lang.in: Use libgnat.so if libgnat.a cannot
5508         be found.
5510 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5512         * sem_util.adb (Is_Volatile_Function): Follow the exact wording
5513         of SPARK (regarding volatile functions) and Ada (regarding
5514         protected functions).
5516 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5518         * sem_util.adb (Is_OK_Volatile_Context): All references to
5519         volatile objects are legal in preanalysis.
5520         (Within_Volatile_Function): Previously it was wrongly called on
5521         Empty entities; now it is only called on E_Return_Statement,
5522         which allow the body to be greatly simplified.
5524 2021-06-16  Yannick Moy  <moy@adacore.com>
5526         * sem_res.adb (Set_Slice_Subtype): Revert special-case
5527         introduced previously, which is not needed as Itypes created for
5528         slices are precisely always used.
5530 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5532         * urealp.adb (Scale): Change first paramter to Uint and adjust.
5533         (Equivalent_Decimal_Exponent): Pass U.Den directly to Scale.
5534         * libgnat/s-exponr.adb (Negative): Rename to...
5535         (Safe_Negative): ...this and change its lower bound.
5536         (Exponr): Adjust to above renaming and deal with Integer'First.
5538 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5540         * sem_res.adb (Flag_Effectively_Volatile_Objects): Detect also
5541         allocators within restricted contexts and not just entity names.
5542         (Resolve_Actuals): Remove duplicated code for detecting
5543         restricted contexts; it is now exclusively done in
5544         Is_OK_Volatile_Context.
5545         (Resolve_Entity_Name): Adapt to new parameter of
5546         Is_OK_Volatile_Context.
5547         * sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): Adapt to
5548         handle contexts both inside and outside of subprogram call
5549         actual parameters.
5550         (Within_Subprogram_Call): Remove; now handled by
5551         Is_OK_Volatile_Context itself and its parameter.
5553 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5555         * sinput.adb (Sloc_Range): Refactor several repeated calls to
5556         Sloc and two comparisons with No_Location.
5558 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5560         * checks.adb (Apply_Scalar_Range_Check): Fix handling of check depending
5561         on the parameter passing mechanism.  Grammar adjustment ("has"
5562         => "have").
5563         (Parameter_Passing_Mechanism_Specified): Add a hyphen in a comment.
5565 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5567         * exp_ch3.adb (Build_Slice_Assignment): Remove unused
5568         initialization.
5570 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5572         * restrict.adb, sem_attr.adb, types.ads: Fix typos in
5573         "occuring"; refill comment as necessary.
5575 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5577         * sem_util.ads (Is_Actual_Parameter): Update comment.
5578         * sem_util.adb (Is_Actual_Parameter): Also detect entry parameters.
5580 2021-06-16  Arnaud Charlet  <charlet@adacore.com>
5582         * rtsfind.ads, libgnarl/s-taskin.ads, exp_ch3.adb, exp_ch4.adb,
5583         exp_ch6.adb, exp_ch9.adb, sem_ch6.adb: Move master related
5584         entities to the expander directly.
5586 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5588         * sem_res.adb (Is_Assignment_Or_Object_Expression): Whitespace
5589         cleanup.
5590         (Is_Attribute_Expression): Prevent AST climbing from going to
5591         the root of the compilation unit.
5593 2021-06-16  Steve Baird  <baird@adacore.com>
5595         * doc/gnat_rm/implementation_advice.rst: Add a section for RM
5596         A.18 .
5597         * gnat_rm.texi: Regenerate.
5599 2021-06-16  Justin Squirek  <squirek@adacore.com>
5601         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Add
5602         check for the mixing of entries.
5604 2021-06-16  Justin Squirek  <squirek@adacore.com>
5606         * sem_ch13.adb (Make_Aitem_Pragma): Check for static expressions
5607         in Priority aspect arguments for restriction Static_Priorities.
5609 2021-06-16  Justin Squirek  <squirek@adacore.com>
5611         * sem_util.adb (Accessibility_Level): Take into account
5612         renamings of loop parameters.
5614 2021-06-16  Matthieu Eyraud  <eyraud@adacore.com>
5616         * par_sco.adb (Set_Statement_Entry): Change sloc for dominance
5617         marker.
5618         (Traverse_One): Fix typo.
5619         (Output_Header): Fix comment.
5621 2021-06-16  Richard Kenner  <kenner@adacore.com>
5623         * exp_unst.adb (Register_Subprogram): Don't look for aliases for
5624         subprograms that are generic.  Reorder tests for efficiency.
5626 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5628         * sem_util.adb (Incomplete_Or_Partial_View): Retrieve the scope of
5629         the parameter and use it to find its incomplete view, if any.
5631 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5633         * freeze.adb (Check_No_Parts_Violations): Return earlier if the
5634         type is elementary or does not come from source.
5636 2021-06-16  Bob Duff  <duff@adacore.com>
5638         * ghost.adb: Add another special case where full analysis is
5639         needed. This bug is due to quirks in the way
5640         Mark_And_Set_Ghost_Assignment works (it happens very early,
5641         before name resolution is done).
5643 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5645         * sem_util.adb (Current_Entity_In_Scope): Reimplement.
5647 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5649         * sem_ch8.adb (End_Scope): Remove extra parens.
5651 2021-06-16  Javier Miranda  <miranda@adacore.com>
5653         * exp_disp.adb (Build_Class_Wide_Check): Ensure that evaluation
5654         of actuals is side effects free (since the check duplicates
5655         actuals).
5657 2021-06-16  Ed Schonberg  <schonberg@adacore.com>
5659         * sem_res.adb (Resolve_Raise_Expression): Apply Ada_2020 rules
5660         concerning the need for parentheses around Raise_Expressions in
5661         various contexts.
5663 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5665         * sem_ch13.adb (Validate_Unchecked_Conversion): Move detection
5666         of generic types before switching to their private views; fix
5667         style in using AND THEN.
5669 2021-06-16  Arnaud Charlet  <charlet@adacore.com>
5671         * sem_ch3.adb (Analyze_Component_Declaration): Do not special
5672         case raise expressions.
5674 2021-06-16  Sergey Rybin  <rybin@adacore.com>
5676         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
5677         Instead of referring to the formatting of the Ada examples in
5678         Ada RM add use the list of checks that are actually performed.
5679         * gnat_ugn.texi: Regenerate.
5681 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5683         * initialize.c: Do not include vxWorks.h and fcntl.h from here.
5684         (__gnat_initialize) [__MINGW32__]: Remove #ifdef and attribute
5685         (__gnat_initialize) [init_float]: Delete.
5686         (__gnat_initialize) [VxWorks]: Likewise.
5687         (__gnat_initialize) [PA-RISC HP-UX 10]: Likewise.
5688         * runtime.h: Add comment about vxWorks.h include.
5690 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5692         * libgnat/s-except.ads (ZCX_By_Default): Delete.
5693         (Require_Body): Likewise.
5694         * libgnat/s-except.adb: Replace body with pragma No_Body.
5696 2021-06-15  Steve Baird  <baird@adacore.com>
5698         * exp_util.adb (Kill_Dead_Code): Generalize the existing
5699         handling of if statements to handle case statements similarly.
5701 2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5703         * raise.h (_gnat_builtin_longjmp): Delete.
5704         (set_gnat_exit_status): Likewise.
5706 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5708         * exp_util.adb (Possible_Side_Effect_In_SPARK): Handle component
5709         declaration just like full type and subtype declarations.
5711 2021-06-15  Yannick Moy  <moy@adacore.com>
5713         * errout.adb (First_And_Last_Node): Also apply to arbitrary late
5714         declarations, not only subprogram specs.
5716 2021-06-15  Bob Duff  <duff@adacore.com>
5718         * sem_ch3.adb (Make_Class_Wide_Type): Make sure all the calls to
5719         Reinit_Field_To_Zero are for the correct Ekinds.
5721 2021-06-15  Bob Duff  <duff@adacore.com>
5723         * aspects.ads (No_Task_Parts): New aspect.
5724         * snames.ads-tmpl: Add the aspect name.
5725         * exp_ch6.adb (Might_Have_Tasks): Return False if this is a
5726         class-wide type whose specific type has No_Task_Parts.
5727         * freeze.adb (Check_No_Parts_Violations): This is an adaptation
5728         of the procedure formerly known as
5729         Check_No_Controlled_Parts_Violations, which now supports both
5730         No_Controlled_Parts and No_Task_Parts.  It takes a parameter
5731         indicating which aspect is being checked.
5732         (Freeze_Entity): Call Check_No_Parts_Violations for both
5733         aspects.
5734         * sem_ch13.adb (Analyze_Aspect_Specifications): The code for
5735         Aspect_No_Controlled_Parts already works as is with
5736         Aspect_No_Task_Parts.
5737         * libgnat/a-iteint.ads: Add No_Task_Parts aspect to the two
5738         iterator iterfaces.
5739         * doc/gnat_rm/implementation_defined_aspects.rst: Add
5740         documentation for the No_Task_Parts aspect.
5741         * gnat_rm.texi: Regenerate.
5743 2021-06-15  Arnaud Charlet  <charlet@adacore.com>
5745         * exp_unst.adb (Unnest_Subprogram.Build_Table.Visit_Node): Fix
5746         handling of scopes for subprogram calls.
5748 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5750         * sem_prag.adb: Fix typos in comments related to access types.
5751         * sem_util.adb (Is_Access_Variable): Stronger condition.
5753 2021-06-15  Arnaud Charlet  <charlet@adacore.com>
5755         * Make-generated.in: Add rule to copy runtime files needed
5756         during stage1.
5757         * raise.c: Remove obsolete symbols used during bootstrap.
5758         * gcc-interface/Make-lang.in: Do not use libgnat sources during
5759         stage1.
5760         (GNAT_ADA_OBJS, GNATBIND_OBJS): Split in two parts, the common
5761         part and the part only used outside of stage1.
5762         (ADA_GENERATED_FILES): Add runtime files needed during bootstrap
5763         when recent APIs are needed.
5764         (ada/b_gnatb.adb): Remove prerequisite.
5765         * gcc-interface/system.ads: Remove obsolete entries.
5767 2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5769         * raise-gcc.c (__gnat_personality_seh0): Use PERSONALITY_FUNCTION.
5771 2021-06-15  Ed Schonberg  <schonberg@adacore.com>
5773         * sem_util.adb (Is_Confirming): Separate the handling of
5774         Implicit_Dereference, for which no pragma is generated but which
5775         is already checked for legality in Sem_Ch13, including renamed
5776         discriminants in a derived type.
5777         (Is_Confirming, Same_Name): For expanded names, only check
5778         matching of selector, because prefix may correspond to original
5779         and derived types with different names and/or scopes. Semantic
5780         checks on aspect expression have already verified its legality.
5781         Add comments regarding possible gaps in RM description of the
5782         feature.
5784 2021-06-15  Gary Dismukes  <dismukes@adacore.com>
5786         * freeze.adb (Freeze_Subprogram): Don't propagate conventions
5787         Intrinsic or Entry to anonymous access-to-subprogram types
5788         associated with subprograms having those conventions. Update
5789         related comment.
5790         * sem_attr.adb (Resolve_Attribute, Attribute_*Access): Remove
5791         special-case warning code for cases where a called subprogram
5792         has convention Intrinsic as well as its formal's type (the
5793         expected type for the Access attribute), since this case can no
5794         longer occur.
5796 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5798         * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Fix
5799         typos.
5801 2021-06-15  Bob Duff  <duff@adacore.com>
5803         * einfo-utils.adb (Known_Component_Size,
5804         Known_Static_Component_Size, Unknown_Component_Size): Use
5805         Implementation_Base_Type instead of Base_Type.
5807 2021-06-15  Bob Duff  <duff@adacore.com>
5809         * gen_il-gen-gen_entities.adb (E_Loop_Parameter): Add
5810         Interface_Name field.
5812 2021-06-15  Bob Duff  <duff@adacore.com>
5814         * sem_cat.adb (Check_Non_Static_Default_Expr): Allow nonstatic
5815         expression in predefined unit with pragma Preelaborate.
5817 2021-06-15  Yannick Moy  <moy@adacore.com>
5819         * doc/gnat_rm/intrinsic_subprograms.rst: More details on shift
5820         operations for signed types. Also add the missing Import and
5821         Convention on the example.
5822         * gnat_rm.texi: Regenerate.
5824 2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5826         * raise-gcc.c: Include <cstdarg> instead of <stdarg.h> in C++.
5827         Include <stdbool.h> and unconditionally <stdlib.h> in C.
5829 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5831         * sem_util.ads (Find_Overlaid_Entity): Simplify comment for
5832         spec.
5833         * sem_util.adb (Find_Overlaid_Entity): Remove defensive code
5834         from body.
5836 2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5838         * argv.c: Add include of <stdlib.h> for the runtime.
5839         (gnat_argv): Change type to char ** and initialize to NULL.
5840         (gnat_envp): Likewise.
5841         * argv-lynxos178-raven-cert.c: Add include of <stdlib.h>.
5842         (gnat_argv): Change type to char ** and initialize to NULL.
5843         (gnat_envp): Likewise.
5845 2021-06-15  Bob Duff  <duff@adacore.com>
5847         * gen_il-gen.adb (Setter_Needs_Parent): Add missing
5848         Then_Actions.  Fix self-contradictory comment.
5849         * exp_util.adb (Insert_Actions): Minor comment improvments.
5851 2021-06-15  Arnaud Charlet  <charlet@adacore.com>
5853         * sem_eval.adb (Eval_Logical_Op, Test_Expression_Is_Foldable):
5854         Add support for folding more "and"/"or" expressions.
5855         * exp_util.adb (Side_Effect_Free): Fix handling of membership
5856         tests.
5858 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5860         * sem_res.adb (Resolve_Actual): Replace repeated calls to
5861         "Etype (F)" with references to "F_Typ", which keeps the results
5862         of exactly that call.
5864 2021-06-15  Bob Duff  <duff@adacore.com>
5866         * gen_il-gen.adb (To_Bit_Offset): Use 'Base to avoid overflow in
5867         computations in Last_Bit when Offset = 'Last.
5868         (Choose_Offset): Give a better error message when we run out of
5869         fields.  In particular, point out that
5870         Gen_IL.Internals.Bit_Offset'Last needs to be increased.
5872 2021-06-15  Bob Duff  <duff@adacore.com>
5874         * atree.ads, einfo-utils.ads, einfo-utils.adb, fe.h, gen_il.adb,
5875         gen_il.ads, gen_il-gen-gen_entities.adb,
5876         gen_il-gen-gen_nodes.adb, sem_ch12.adb, sem_ch3.adb,
5877         sem_util.adb, sinfo-utils.ads, treepr.adb, types.ads: Clean up
5878         ??? comments and other comments.
5879         * atree.adb: Clean up ??? comments and other comments.
5880         (Validate_Node): Fix bug: "Off_0 (N) < Off_L (N)"
5881         should be "Off_0 (N) <= Off_L (N)".
5882         * gen_il-gen.adb, gen_il-gen.ads: Clean up ???
5883         comments and other comments.  Add support for getter-specific
5884         and setter-specific preconditions.  Detect the error of putting
5885         a field in the wrong subrange.  Misc cleanup.
5886         (Node_Field vs. Entity_Field): Clean up Nmake.  Improve
5887         comments.
5888         * gen_il-utils.ads: Misc cleanup. Move...
5889         * gen_il-internals.ads: ... here.
5890         * gen_il-utils.adb: Misc cleanup. Move...
5891         * gen_il-internals.adb: ... here.
5892         * gen_il-fields.ads: Move Was_Default_Init_Box_Association,
5893         which was in the wrong subrange.  Add comments.  Misc cleanup.
5894         * gen_il-types.ads: Add Named_Access_Kind.
5895         * sinfo-cn.adb: Clean up ??? comments and other comments.
5896         Remove redundant assertions.
5897         * einfo.ads, sinfo.ads: Clean up ??? comments and other
5898         comments.  Remove all the comments indicating field offsets.
5899         These are obsolete now that Gen_IL computes the offsets
5900         automatically.
5902 2021-06-15  Arnaud Charlet  <charlet@adacore.com>
5904         * einfo.ads, errout.adb, errout.ads, exp_aggr.adb, exp_ch5.adb,
5905         exp_ch6.adb, exp_ch8.adb, exp_ch9.adb, exp_imgv.adb,
5906         exp_put_image.adb, fe.h, impunit.adb, impunit.ads,
5907         libgnat/a-cobove.ads, libgnat/a-convec.ads, opt.ads,
5908         par-ch12.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
5909         par-ch6.adb, par-prag.adb, par-util.adb, scans.ads, scng.adb,
5910         sem_aggr.adb, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
5911         sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
5912         sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb,
5913         sem_res.adb, sem_type.adb, sem_util.adb, sem_util.ads,
5914         sinfo.ads, snames.ads-tmpl, sprint.adb, switch-c.adb, usage.adb,
5915         doc/gnat_ugn/building_executable_programs_with_gnat.rst,
5916         doc/gnat_rm/implementation_defined_aspects.rst,
5917         gcc-interface/trans.c: Update all references to Ada 2020 to Ada
5918         2022. Rename pragma Ada_2020 to Ada_2022.  Update documentation
5919         accordingly.
5920         * gnat_ugn.texi, gnat_rm.texi: Regenerate.
5922 2021-06-15  Steve Baird  <baird@adacore.com>
5924         * sem_util.adb (Gather_Components): Factor the test that was
5925         already being used to govern emitting a pre-Ada_2020 error
5926         message into an expression function,
5927         OK_Scope_For_Discrim_Value_Error_Messages. Call that new
5928         function in two places: the point where the same test was being
5929         performed previously, and in governing emission of a newer
5930         Ada_2020 error message. In both cases, the out-mode parameter
5931         Gather_Components.Report_Errors is set to True even if no error
5932         messages are generated within Gather_Components.
5933         * sem_util.ads: Correct a comment.
5935 2021-06-15  Richard Kenner  <kenner@adacore.com>
5937         * sem_ch3.adb (Array_Type_Declaration, Build_Derived_Type):
5938         Reinitialize Stored_Constraint when needed.
5939         (Set_Modular_Size): Likewise.
5940         * atree.adb: (Check_Vanishing_Fields): Add node id to debugging
5941         information.
5943 2021-06-15  Bob Duff  <duff@adacore.com>
5945         * sem_util.adb (Propagate_Invariant_Attributes): Call
5946         Set_Has_Own_Invariants on the base type, because these are
5947         Base_Type_Only. The problem is that the base type of a type is
5948         indeed a base type when Set_Base_Type is called, but then the
5949         type is mutated into a subtype in rare cases.
5950         * atree.ads, atree.adb (Is_Entity): Export. Correct subtype of
5951         parameter in body.
5952         * gen_il-gen.adb: Improve getters so that "Pre => ..." can refer
5953         to the value of the field. Put Warnings (Off) on some with
5954         clauses that are not currently used, but might be used by such
5955         Pre's.
5957 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5959         * sem_ch3.adb (Access_Type_Declaration): Add comments to explain
5960         the ordering of Mutate_Kind and Set_Directly_Designated_Type;
5961         remove temporary setting of Ekind to E_Access_Type for building
5962         _master objects, since now the Ekind is already set to its final
5963         value. Move repeated code into Setup_Access_Type routine and use
5964         it so that Process_Subtype is executed before mutating the kind
5965         of the type entity.
5966         * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
5967         Directly_Designated_Type from E_Void, E_Private_Record,
5968         E_Limited_Private_Type and Incomplete_Kind; now it only belongs
5969         to Access_Kind entities.
5970         * sem_util.adb: Minor reformatting.
5972 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5974         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add PAT
5975         local constant and use it throughout.  If it is set, use a ref-all
5976         pointer type for the pointer-to-array field of the fat pointer type.
5977         <E_Array_Subtype>: Add PAT local constant and use it throughout.
5979 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
5981         * init.c (__gnat_error_handler): Remove register keyword.
5983 2021-05-25  Martin Liska  <mliska@suse.cz>
5985         * doc/share/conf.py: Fix Sphinx 4.0.x error.
5987 2021-05-21  Piotr Trojanek  <trojanek@adacore.com>
5989         * gcc-interface/trans.c (Raise_Error_to_gnu): Add an assertion.
5991 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5993         * gcc-interface/utils.c (gnat_pushdecl): Fix typo in comment.
5994         * gcc-interface/utils2.c (build_simple_component_ref): Build NULL_EXPR
5995         if the offset of the field has overflowed.
5996         (build_component_ref): Add gigi checking assertion that the reference
5997         has been built and replace the discriminant check by a Program_Error.
5999 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6001         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_Integer>: Do
6002         not pass default value in call to create_var_decl.
6003         <E_Variable>: Likewise.
6004         <E_Record_Subtype>: Both pass true for const_flag and false for
6005         const_decl_allowed_p in call to create_var_decl.
6006         Small tweaks in the generic record type case.
6007         (elaborate_expression): Rename need_debug into need_for_debug and
6008         adjust throughout.
6009         (elaborate_expression_1): Likewise.  Pass Needs_Debug_Info instead
6010         of need_for_debug in call to create_var_decl.
6011         (elaborate_expression_2): Likewise.
6012         * gcc-interface/utils.c (maybe_pad_type): Pass false for
6013         const_decl_allowed_p in call to create_var_decl.
6015 2021-05-21  Ghjuvan Lacambre  <lacambre@adacore.com>
6017         * gcc-interface/decl.c (gnat_to_gnu_entity): Replace ? with ??.
6018         (gnat_to_gnu_param): Likewise.
6019         (gnat_to_gnu_subprog_type): Likewise.
6020         (warn_on_field_placement): Likewise.
6021         (intrin_arglists_compatible_p): Likewise.
6022         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
6023         (gnat_to_gnu): Likewise.
6024         (validate_unchecked_conversion): Likewise.
6025         * gcc-interface/utils.c (maybe_pad_type): Likewise.
6027 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6029         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Process
6030         the implementation type of a packed type implemented specially.
6032 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6034         * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate
6035         the Is_Pure flag into the "pure" attribute of GNU C.
6037 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6039         * gcc-interface/trans.c (Call_to_gnu): Restrict previous change
6040         to bitfields whose size is not equal to the type size.
6041         (gnat_to_gnu): Likewise.
6043 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6045         * gcc-interface/trans.c (Call_to_gnu): Minor tweaks.
6046         (gnat_to_gnu_external): Likewise.
6047         (Raise_Error_to_gnu): Return an empty statement list if there is a
6048         condition and it is always false.
6049         (gnat_to_gnu): Do not check for elaboration code a priori during the
6050         translation but a posteriori instead.
6052 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6054         * gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>:
6055         Put a SLOC on the assignment from the return value to the return
6056         object in the copy-in/copy-out case.
6058 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6060         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Replace
6061         CEIL_DIV_EXPR with EXACT_DIV_EXPR.
6062         * gcc-interface/misc.c (gnat_type_max_size): Likewise.
6063         * gcc-interface/utils.c (maybe_pad_type): Likewise.
6064         (finish_record_type): Likewise.  And always compute the unit size.
6066 2021-05-14  Martin Liska  <mliska@suse.cz>
6068         * doc/Makefile: Add gnat-style target.
6069         * doc/share/conf.py: Likewise.
6070         * doc/gnat-style.rst: New file.
6072 2021-05-12  Bob Duff  <duff@adacore.com>
6074         PR ada/100564
6075         * atree.adb (Change_Node): Do not call Zero_Slots on a Node_Id
6076         when the Nkind has not yet been set; call the other Zero_Slots
6077         that takes a range of slot offsets.  Call the new Mutate_Kind
6078         that takes an Old_Size, for the same reason -- the size cannot
6079         be computed without the Nkind.
6080         (Mutate_Nkind): New function that allows specifying the Old_Size.
6081         (Size_In_Slots): Assert that the Nkind has proper (nonzero) value.
6082         * atree.ads: Minor reformatting.
6084 2021-05-12  Martin Liska  <mliska@suse.cz>
6086         * doc/share/conf.py: Do not use binary mode.
6087         Do not use u' literals as Python3 uses unicode by default.
6089 2021-05-11  Martin Liska  <mliska@suse.cz>
6091         * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): Use builtins
6092         from COROUTINES.
6093         (BUILT_IN_UNLIKELY): Likewise.
6095 2021-05-11  Eric Botcazou  <ebotcazou@adacore.com>
6097         * gnatvsn.adb (Version_String): Rename to...
6098         (C_Version_String): ...this.
6099         (Gnat_Version_String): Adjust to above renaming.
6100         * version.c : Fix formatting glitches.
6102 2021-05-10  Martin Liska  <mliska@suse.cz>
6104         PR bootstrap/100506
6105         * Make-generated.in: Replace version.c with ada/version.c.
6106         * gcc-interface/Make-lang.in: Add version.o to GNAT1_C_OBJS and
6107         GNATBIND_OBJS.
6108         * gcc-interface/Makefile.in: Replace version.c with ada/version.c.
6109         Add version.o to TOOLS_LIBS.
6110         * gnatvsn.adb: Replace version_string with gnat_version_string.
6111         * version.c: New file.
6113 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6115         * einfo-utils.ads (Classification Attributes): Add pragma Inline.
6116         (Synthesized Attribute Functions): Move pragma Inline around.
6117         (Type Representation Attribute Predicates): Likewise.
6118         (Field Initialization Routines): Likewise.
6119         (Miscellaneous Subprogram): Likewise.
6121 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6123         * atree.ads (Slot): Remove pragma Provide_Shift_Operators.
6124         (Shift_Left): New intrinsic function.
6125         (Shift_Right): Likewise.
6126         * atree.adb (Get_1_Bit_Val): Use Natural instead of Integer.
6127         (Get_2_Bit_Val): Likewise.
6128         (Get_4_Bit_Val): Likewise.
6129         (Get_8_Bit_Val): Likewise.
6130         (Set_1_Bit_Val): Likewise.
6131         (Set_2_Bit_Val): Likewise.
6132         (Set_4_Bit_Val): Likewise.
6133         (Set_8_Bit_Val): Likewise.
6135 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6137         * atree.adb (Zero_Slots): Remove obsolete comment and add header.
6139 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6141         * atree.h (Get_32_Bit_Field): Tidy up.
6142         (Get_32_Bit_Field_With_Default): Likewise.
6144 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6146         * Make-generated.in (do_gen_il): Replace with...
6147         (ada/stamp-gen_il): ...this.  Do not copy files into generated/.
6149 2021-05-10  Martin Liska  <mliska@suse.cz>
6151         * gcc-interface/utils.c (def_builtin_1): Use startswith
6152         function instead of strncmp.
6154 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
6156         * einfo-utils.adb (Is_Access_Object_Type): Use
6157         Directly_Designated_Type.
6158         (Is_Access_Subprogram_Type): Use Directly_Designated_Type.
6159         (Set_Convention): Use plain Ekind.
6160         * gen_il-gen-gen_entities.adb (Type_Kind): Use plain Ekind.
6161         * sem_ch3.adb (Access_Type_Declaration): When seeing an illegal
6162         completion with an access type don't attempt to decorate the
6163         completion entity; previously the entity had its Ekind set to
6164         E_General_Access_Type or E_Access_Type, but its Designated_Type
6165         was empty, which caused a crash in freezing. (Actually, the
6166         error recovery in the surrounding context is still incomplete,
6167         e.g. we will crash when the illegal completion is an access to
6168         an unknown identifier).
6170 2021-05-07  Bob Duff  <duff@adacore.com>
6172         * par_sco.adb: Align with/use clauses.
6173         (Traverse_Declarations_Or_Statements): Minor comment fix.
6174         * aspects.adb, atree.adb, atree.ads, checks.adb, comperr.adb,
6175         contracts.adb, cstand.adb, debug_a.adb, einfo-utils.adb,
6176         errout.adb, eval_fat.adb, exp_aggr.adb, expander.adb,
6177         exp_atag.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb,
6178         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb,
6179         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb,
6180         exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_disp.adb,
6181         exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb,
6182         exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb,
6183         exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb,
6184         exp_unst.adb, exp_util.adb, exp_util.ads, freeze.adb,
6185         frontend.adb, ghost.adb, gnat1drv.adb, gnat_cuda.adb,
6186         impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb,
6187         lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb,
6188         lib-xref-spark_specific.adb, live.adb, nlists.adb, par.adb,
6189         par-ch11.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, pprint.adb,
6190         repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb,
6191         sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb,
6192         sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb,
6193         sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
6194         sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
6195         sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb,
6196         sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb,
6197         sem_prag.adb, sem_res.adb, sem_scil.adb, sem_smem.adb,
6198         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
6199         sinfo-cn.adb, sinfo-utils.ads, sinput.adb, sinput-l.adb,
6200         sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads,
6201         treepr.adb, uname.adb: Align with/use clauses.
6203 2021-05-07  Bob Duff  <duff@adacore.com>
6205         * atree.ads, atree.adb, gen_il-gen.ads: Fix comments and clean
6206         up ???  marks.  Rename Set_Ekind to be Mutate_Ekind.
6207         * einfo.ads, sinfo.ads: Likewise.  Change "definitive
6208         definition" to "official definition", because the former sounds
6209         redundant.  Rename Set_Ekind to be Mutate_Ekind.
6210         * checks.adb, contracts.adb, cstand.adb, exp_aggr.adb,
6211         exp_attr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch5.adb,
6212         exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_disp.adb,
6213         exp_dist.adb, exp_imgv.adb, exp_intr.adb, exp_prag.adb,
6214         exp_unst.adb, exp_util.adb, gen_il-gen.adb, inline.adb,
6215         lib-writ.adb, lib-xref-spark_specific.adb, sem_aggr.adb,
6216         sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
6217         sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
6218         sem_ch9.adb, sem_dist.adb, sem_elab.adb, sem_prag.adb,
6219         sem_util.adb: Rename Set_Ekind to be Mutate_Ekind.
6221 2021-05-07  Bob Duff  <duff@adacore.com>
6223         * atree.adb: Move nnd-related code from here, and leave a
6224         comment pointing to sinfo-utils.adb.
6225         * sinfo-utils.ads, sinfo-utils.adb: Move nnd-related code to
6226         here.
6228 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
6230         * einfo.ads: Move Corresponding_Protected_Entry...
6231         * sinfo.ads: ... here.
6232         * exp_ch9.adb (Build_Entry_Body): Link procedure and entry
6233         bodies.
6234         * gen_il-fields.ads (Opt_Field_Enum): Add
6235         Corresponding_Entry_Body field to nodes; remove
6236         Corresponding_Protected_Entry field from entities.
6237         * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
6238         Corresponding_Protected_Entry field from E_Void and
6239         E_Subprogram_Body.
6240         * gen_il-gen-gen_nodes.adb (Gen_Nodes): Add
6241         Corresponding_Entry_Body field to N_Subprogram_Body.
6242         * sem_ch6.adb (Analyze_Subprogram_Specification): Remove
6243         manipulation of Ekind and Corresponding_Protected_Entry added as
6244         part of the support for varsize-nodes.
6246 2021-05-07  Bob Duff  <duff@adacore.com>
6248         * sem_ch3.adb (Process_Incomplete_Dependents): Reset
6249         Private_Dependents field to zero before calling Set_Ekind.  Also
6250         move Set_Etype to after Set_Ekind, because it's always best to
6251         set the Ekind as early as possible.
6252         * atree.adb: Improve debugging facilities for vanishing fields.
6254 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6256         * atree.ads (Slot): Change to modular type.
6257         (Slot_1_Bit): Delete.
6258         (Slot_2_Bit): Likewise.
6259         (Slot_4_Bit): Likewise.
6260         (Slot_8_Bit): Likewise.
6261         (Slot_32_Bit): Likewise.
6262         * atree.adb (Get_1_Bit_Val): Adjust to above change.
6263         (Get_2_Bit_Val): Likewise.
6264         (Get_4_Bit_Val): Likewise.
6265         (Get_8_Bit_Val): Likewise.
6266         (Get_32_Bit_Val): Likewise.
6267         (Set_1_Bit_Val): Likewise.
6268         (Set_2_Bit_Val): Likewise.
6269         (Set_4_Bit_Val): Likewise.
6270         (Set_8_Bit_Val): Likewise.
6271         (Set_32_Bit_Val): Likewise.
6272         (Print_Atree_Info): Likewise.
6273         (Zero): Likewise.
6274         * atree.h (Get_1_Bit_Field): Likewise.
6275         (Get_2_Bit_Field): Likewise.
6276         (Get_4_Bit_Field): Likewise.
6277         (Get_8_Bit_Field): Likewise.
6278         (Get_32_Bit_Field): Likewise.
6279         (Get_32_Bit_Field_With_Default): Likewise.
6280         * types.h (slot_1_bit): Delete.
6281         (slot_2_bit): Likewise.
6282         (slot_4_bit): Likewise.
6283         (slot_8_bit): Likewise.
6284         (slot_32_bit): Likewise.
6285         (any_slot): Change to unsigned int.
6286         (Slot_Size): New macro.
6288 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6290         * gcc-interface/gigi.h (enum standard_datatype): Remove
6291         ADT_exception_data_name_id and add ADT_not_handled_by_others_name_id.
6292         (exception_data_name_id): Delete.
6293         (not_handled_by_others_name_id): New macro.
6294         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Exception>: Remove old
6295         kludge for exceptions.
6296         <E_Record_Type>: Likewise.
6297         (gnat_to_gnu_field): Force character type on Not_Handled_By_Others.
6298         * gcc-interface/misc.c (gnat_argv): Change type to char **.
6299         (gnat_init_options): Adjust accordingly.
6300         * gcc-interface/trans.c (gigi): Set not_handled_by_others_name_id
6301         and use it to set not_handled_by_others_decl.
6302         (Exception_Handler_to_gnu_fe_sjlj): Fix indentation.
6304 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6306         * raise-gcc.c (__gnat_others_value): Remove const qualifier.
6307         (__gnat_all_others_value): Likewise.
6308         (__gnat_unhandled_others_value): Likewise.
6309         (GNAT_OTHERS): Cast to Exception_Id instead of _Unwind_Ptr.
6310         (GNAT_ALL_OTHERS): Likewise.
6311         (GNAT_UNHANDLED_OTHERS): Likewise.
6312         (Is_Handled_By_Others): Change parameter type to Exception_Id.
6313         (Language_For): Likewise.
6314         (Foreign_Data_For): Likewise.
6315         (is_handled_by): Likewise.  Adjust throughout, remove redundant
6316         line and fix indentation.
6317         * libgnat/a-exexpr.adb (Is_Handled_By_Others): Remove pragma and
6318         useless qualification from parameter type.
6319         (Foreign_Data_For): Likewise.
6320         (Language_For): Likewise.
6322 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6324         * libgnat/s-stalib.ads (Exception_Data): Mark components as aliased.
6325         * stand.ads (Standard_Entity_Type): Enhance comments.
6326         * cstand.adb (Make_Component): Rename into...
6327         (Make_Aliased_Component): ...this; set Is_Aliased and Is_Independent
6328         flags on the component.
6329         (Create_Standard): Adjust the types of the component of the record
6330         Standard_Exception_Type and mark them as aliased.
6331         * exp_ch11.adb (Expand_N_Exception_Declaration): Use OK
6332         conversion to Standard_Address for Full_Name component, except
6333         in CodePeer_Mode (set it to 0).
6334         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Likewise.
6335         * raise.h (struct Exception_Data): Change the type of Full_Name,
6336         HTable_Ptr and Foreign_Data.
6338 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6340         * atree.h (Slots_Ptr): Change pointed-to type to any_slot.
6341         * fe.h (Get_RT_Exception_Name): Change type of parameter.
6342         * namet.ads (Name_Entry): Mark non-boolean components as aliased,
6343         reorder the boolean components and add an explicit Spare component.
6344         * namet.adb (Name_Enter): Adjust aggregate accordingly.
6345         (Name_Find): Likewise.
6346         (Reinitialize): Likewise.
6347         * namet.h (struct Name_Entry): Adjust accordingly.
6348         (Names_Ptr): Use correct type.
6349         (Name_Chars_Ptr): Likewise.
6350         (Get_Name_String): Fix declaration and adjust to above changes.
6351         * types.ads (RT_Exception_Code): Add pragma Convention C.
6352         * types.h (Column_Number_Type): Fix original type.
6353         (slot): Rename union type to...
6354         (any_slot): ...this and adjust assertion accordingly.
6355         (RT_Exception_Code): New enumeration type.
6356         * uintp.ads (Uint_Entry): Mark components as aliased.
6357         * uintp.h (Uints_Ptr):  Use correct type.
6358         (Udigits_Ptr): Likewise.
6359         * gcc-interface/gigi.h (gigi): Adjust name and type of parameter.
6360         * gcc-interface/cuintp.c (UI_To_gnu): Adjust references to Uints_Ptr
6361         and Udigits_Ptr.
6362         * gcc-interface/trans.c (Slots_Ptr): Adjust pointed-to type.
6363         (gigi): Adjust type of parameter.
6364         (build_raise_check): Add cast in call to Get_RT_Exception_Name.
6366 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6368         * init.c (__gnat_raise_program_error): Fix parameter type.
6369         (Raise_From_Signal_Handler): Likewise and mark as no-return.
6370         * raise-gcc.c (__gnat_others_value): Fix type.
6371         (__gnat_all_others_value): Likewise.
6372         (__gnat_unhandled_others_value): Likewise.
6373         * seh_init.c (Raise_From_Signal_Handler): Fix parameter type.
6374         * libgnat/a-except.ads (Raise_From_Signal_Handler): Use convention C
6375         and new symbol name, move declaration to...
6376         (Raise_From_Controlled_Operation): Minor tweak.
6377         * libgnat/a-except.adb (Raise_From_Signal_Handler): ...here.
6378         * libgnat/a-exexpr.adb (bool): New C compatible boolean type.
6379         (Is_Handled_By_Others): Use it as return type for the function.
6381 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6383         * errout.ads (Set_Identifier_Casing): Add pragma Convention C.
6384         * eval_fat.ads (Rounding_Mode): Likewise.
6385         (Machine): Add WARNING comment line.
6386         * exp_code.ads (Clobber_Get_Next): Add pragma Convention C.
6387         * fe.h (Compiler_Abort): Fix return type.
6388         (Set_Identifier_Casing): Change type of parameters.
6389         (Clobber_Get_Next): Change return type.
6390         * gcc-interface/trans.c (gnat_to_gnu) <N_Code_Statement>: Add cast.
6392 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6394         * atree.h (Parent): Remove duplicate declaration.
6395         (Get_1_Bit_Field): Also use INLINE specifier in the declaration,
6396         fix formatting and use gcc_unreachable for the default case.
6397         (Get_2_Bit_Field): Likewise.
6398         (Get_4_Bit_Field): Likewise.
6399         (Get_8_Bit_Field): Likewise.
6400         (Get_32_Bit_Field): Likewise.
6401         (Get_32_Bit_Field_With_Default): Likewise.
6403 2021-05-07  Bob Duff  <duff@adacore.com>
6405         * atree.ads, atree.adb: Major rewrite to support variable-sized
6406         node types. Add pragmas Suppress and Assertion_Policy.  We now
6407         have an extra level of indirection: Node_Offsets is a table
6408         mapping Node_Ids to the offset of the start of each node in
6409         Slots. Slots is a table containing one or more contiguous slots
6410         for each node. Each slot is a 32-bit unchecked union that can
6411         contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits.
6412         The old low-level getters and setters (e.g.  Flag123) are
6413         removed.
6414         * gen_il-fields.ads, gen_il-gen-gen_entities.adb,
6415         gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads,
6416         gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb,
6417         gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program
6418         that generates various Ada and C++ files. In particular, the
6419         following files are generated by gen_il: einfo-entities.adb
6420         einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads,
6421         seinfo.ads, seinfo_tables.adb, seinfo_tables.ads,
6422         sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h.
6423         * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb,
6424         einfo-utils.ads: New files containing code that needs to refer
6425         to Sinfo.Nodes and Einfo.Entities. This code is mostly moved
6426         here from Sinfo and Einfo to break cycles.
6427         * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi,
6428         instead of nodes_ptr and flags_ptr. The Nodes and Flags tables
6429         no longer exist. (Note that gigi never used the Flags table.)
6430         * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier,
6431         Change_Character_Literal_To_Defining_Character_Literal,
6432         Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into
6433         an IN formal.
6434         * sinfo-cn.adb: Update.  Add assertions, which can be removed at
6435         some point.  Rewrite to use higher-level facilities.  Make sure
6436         vanishing fields are zeroed out.  Add with/use for new packages.
6437         * sem_util.adb: Remove "Assert(False)" immediately followed by
6438         "raise Program_Error".  Use higher-level facilities such as
6439         Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
6440         routines that no longer exist. Use Get_Comes_From_Source_Default
6441         instead of Default_Node.Comes_From_Source (Default_Node no
6442         longer exists).  Use Set_Basic_Convention instead of
6443         Basic_Set_Convention.  Add with/use for new packages.
6444         * sem_util.ads: The Convention field had getter Convention and
6445         setter Basic_Set_Convention. Make that more uniform: there is
6446         now a field called Basic_Convention, with Basic_Convention and
6447         Set_Basic_Convention as getter/setter, and write Convention and
6448         Set_Convention here.
6449         * nlists.adb: Rewrite to use abstractions, rather then depending
6450         on low-level implementation details of Atree. Necessary because
6451         those details have changed. Add with/use for new packages.
6452         * sem_ch12.adb: Use higher-level facilities such as
6453         Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
6454         routines that no longer exist. Add with/use for new packages.
6455         * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb,
6456         sem_prag.adb, sem_warn.adb: Change expanded names to refer to
6457         the new packages for things that moved. Add with/use for new
6458         packages.
6459         * sem_ch3.adb: Likewise. Reinitialize vanishing fields.
6460         * exp_disp.adb: Likewise. Remove failing assertion.
6461         * sinfo.ads, einfo.ads: Remove code that is now generated into
6462         Sinfo.Nodes and Einfo.Entities.
6463         * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;".
6464         We should delete these at some point, but No_Body makes make
6465         files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities,
6466         Sinfo.Utils, and Einfo.Utils. Some is no longer necessary.
6467         * treepr.adb: Rewrite to use new tables. We no longer need
6468         treeprs.ads.
6469         * treepr.ads: Add comment.
6470         * types.ads: Move types Component_Alignment_Kind and
6471         Float_Rep_Kind here.
6472         * atree.h: Major update to match atree.ads changes.  Add slot
6473         types, for use by getters/setters.
6474         * types.h: Move types Component_Alignment_Kind and
6475         Float_Rep_Kind here.
6476         * fe.h: Rewrite to deal with code that has changed or moved from
6477         Atree, Sinfo, Einfo.
6478         * nlists.h: Move some code to fe.h.
6479         * alloc.ads: Split Nodes_* constants into Node_Offsets and
6480         Slots, because Atree has two separate tables.  Increase values.
6481         Remove Nodes_Release_Threshold. Improve comment.
6482         * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N
6483         switches.  Add with/use for new packages.
6484         * opt.ads: Minor comment fix.
6485         * aspects.adb, checks.adb, comperr.adb, contracts.adb,
6486         cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb,
6487         exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb,
6488         exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
6489         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
6490         exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb,
6491         exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb,
6492         exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb,
6493         exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb,
6494         exp_util.ads, expander.adb, freeze.adb, frontend.adb,
6495         get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb,
6496         itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb,
6497         lib-writ.adb, lib-xref.adb, lib-xref.ads,
6498         lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb,
6499         pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb,
6500         scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb,
6501         sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb,
6502         sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb,
6503         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb,
6504         sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb,
6505         sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb,
6506         sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb,
6507         sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb,
6508         tbuild.ads, uname.adb: Add with/use for new packages.
6509         * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease
6510         bootstrap.
6511         * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File,
6512         Create_New_File): Create file in binary format, to avoid
6513         introducing unwanted text conversions on Windows. Simplify to
6514         ease bootstrap.
6515         * libgnat/a-stteou__bootstrap.ads: New.
6516         * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb,
6517         xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete.
6518         * Make-generated.in: Build and run the gen_il program to
6519         generate files. The files are generated in the ada/gen_il
6520         subdirectory, and then moved up to ada.  We rely on gnatmake (as
6521         opposed to make) to build the gen_il program efficiently (i.e.
6522         don't do anything if the sources didn't change).
6523         * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU.
6524         (GNATMAKE_OBJS): Add new object files.
6525         (GENERATED_FILES_FOR_TOOLS): New variable.
6526         (../stamp-tools): Create a link for all
6527         GENERATED_FILES_FOR_TOOLS.
6528         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object
6529         files.  Remove ada/treeprs.o.
6530         (GNATBIND_OBJS): Add new object files.
6531         (ada.mostlyclean): Remove ada/sdefault.adb and add
6532         ada/stamp-gen_il.
6533         (ada.maintainer-clean): Remove ada/treeprs.ads.
6534         (update-sources): Remove obsolete target.
6535         (ada_generated_files): Rename to...
6536         (ADA_GENERATED_FILES): ... this.  Add new source files.  Add
6537         comment.
6538         * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and
6539         Flags_ptr.  Add Node_Offsets_Ptr and Slots_Ptr, which point to
6540         the corresponding tables in Atree.
6541         * gcc-interface/gigi.h (gigi): New parameters for initializing
6542         Node_Offsets_Ptr and Slots_Ptr.
6543         * gcc-interface/decl.c: Numeric_Kind,
6544         Discrete_Or_Fixed_Point_Kind, and Record_Kind were
6545         nonhierarchical, and were therefore removed for simplicity.
6546         Replace uses with calls to Is_In_... functions.
6548 2021-05-07  Ed Schonberg  <schonberg@adacore.com>
6550         * exp_ch4.adb (Unconstrained_UU_In_Component_Declaration): A
6551         component declaration whose subtype indication is an entity name
6552         without an explicit constraint is an Unchecked_Union type only
6553         if the entity has an unconstrained nominal subtype (record type
6554         or private type) whose parent type is an Unchecked_Union.
6556 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
6558         * sem_res.adb (Flag_Object): Ignore prefixes of attribute
6559         Address.
6561 2021-05-07  Yannick Moy  <moy@adacore.com>
6563         * opt.ads: Update comment for Warn_On_Suspicious_Modulus_Value.
6564         * sem_res.adb (Resolve_Unary_Op): Generate warning.
6565         * usage.adb: Refine doc for -gnatw.m/M switch.
6566         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
6567         Update doc on -gnatw.m switch.
6568         * gnat_ugn.texi: Regenerate.
6570 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
6572         * sem_res.adb (Flag_Object): Replace chained IF with a CASE;
6573         remove repeated calls to Entity; do not traverse into
6574         N_Identifier and N_Expanded_Name, because only need to examine
6575         their Entity field anyway.
6577 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
6579         * sem_ch4.adb (Analyze_Call): Remove call to End_Interp_List.
6580         (Process_Overloaded_Indexed_Component): Remove call to
6581         End_Interp_List.
6582         * sem_util.adb (Insert_Explicit_Dereference): Remove call to
6583         End_Interp_List.
6584         * sem_type.ads (End_Interp_List): Remove.
6585         * sem_type.adb (Add_Entry): The guard against duplicate entries
6586         is now checked before other conditions, so that EXIT statements
6587         do not bypass this guard.
6588         (End_Interp_List): Remove.
6590 2021-05-07  Ed Schonberg  <schonberg@adacore.com>
6592         * exp_util.adb (Remove_Init_Call): If a simple initialization
6593         call is present, and the next statement is an initialization
6594         block (that contains a call to a Deep_ Initialize routine),
6595         remove the block as well, and insert the first initialization
6596         call in it, in case it is needed for later relocation.
6598 2021-05-07  Gary Dismukes  <dismukes@adacore.com>
6600         * errout.ads (Size_Too_Small_Message): Remove low-value ???
6601         comment.
6602         * exp_util.ads: Remove ??? in part of overall package comments
6603         and restructure comment to clarify.
6604         (Duplicate_Subexpr): Remove ??? comment that seems unnecessary.
6605         * sem_ch3.ads (Analyze_Declarations): Remove two parenthesized
6606         ??? comments and add more description of the procedure's
6607         actions.
6608         (Get_Discriminant_Value): Remove ??? comment requesting more
6609         documentation, expanding description of the function's actions.
6610         * sem_disp.ads (Check_Operation_From_Incomplete_Type): Add more
6611         semantic description of the procedure and remove ??? comment
6612         requesting such.
6613         (Propagate_Tag): Refine comment to indicate meaning of formal
6614         parameters and generally improve the spec comment (and remove
6615         ??? comment asking about the parameters).
6617 2021-05-07  Arnaud Charlet  <charlet@adacore.com>
6619         * sem_eval.adb (Fold_Shift): Fix computation of Shift_Left
6620         resulting in negative signed values.
6622 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6624         * sem_util.ads (Defining_Entity): Remove Empty_On_Errors parameter.
6625         (Defining_Entity_Or_Empty): New function.
6626         * sem_util.adb (Defining_Entity): Move bulk of implementation to...
6627         (Defining_Entity_Or_Empty): ...here.  Do not raise Program_Error.
6628         (Innermost_Master_Scope_Depth): Call Defining_Entity_Or_Empty.
6630 2021-05-07  Justin Squirek  <squirek@adacore.com>
6632         * aspects.ads: Add entries to register
6633         Aspect_No_Controlled_Parts.
6634         * freeze.adb (Check_No_Controlled_Parts_Violations): Added to
6635         check requirements of aspect No_Controlled_Parts after a type
6636         has been frozen.
6637         (Freeze_Entity): Add call to
6638         Check_No_Controlled_Parts_Violations.
6639         (Find_Aspect_No_Controlled_Parts): Created to obtain the aspect
6640         specification for No_Controlled_Parts on a given type when
6641         present.
6642         (Find_Aspect_No_Controlled_Parts_Value): Protect against invalid
6643         value.
6644         (Has_Aspect_No_Controlled_Parts): Created as a prediate function
6645         to check if No_Controlled_Parts has been specified on a type for
6646         Get_Anacestor_Types_With_Specification.
6647         (Get_Aspect_No_Controlled_Parts_Value): Created to obtain the
6648         value of the aspect No_Controlled_Parts when specified on a
6649         given type.
6650         (Get_Generic_Formal_Types_In_Hierarchy): Created to collect
6651         formal types in a given type's hierarchy.
6652         (Get_Types_With_Aspect_In_Hierarchy): Created to collect types
6653         in a given type's hierarchy with No_Controlled_Parts specified.
6654         * sem_ch13.adb (Analyze_One_Aspect): Add processing for
6655         No_Controlled_Parts, and fix error in check for allowed pragmas
6656         for formal types.
6657         (Check_Expr_Is_OK_Static_Expression): Created to enforce
6658         checking of static expressions in the same vein as
6659         Analyze_Pragma.Check_Expr_OK_Static_Expression.
6660         * sem_util.adb (Collect_Types_In_Hierarchy): Created to collect
6661         types in a given type's hierarchy that match a given predicate
6662         function.
6663         * sem_util.ads: Fix typo.
6664         * snames.ads-tmpl: Add entry for No_Controlled_Parts.
6666 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6668         * libgnat/s-fatgen.adb (Scaling): Raise Constraint_Error in the
6669         overflow case when T'Machine_Overflows is True.
6671 2021-05-07  Bob Duff  <duff@adacore.com>
6673         * libgnat/a-conhel.adb (TC_Check): Move the Assert into the
6674         'if'.
6676 2021-05-07  Frederic Konrad  <konrad@adacore.com>
6678         * sigtramp-vxworks-target.inc: Use a local label for the TOC.
6680 2021-05-07  Claire Dross  <dross@adacore.com>
6682         * exp_ch4.adb (Has_Inferable_Discriminants): Moved to Sem_Util.
6683         * sem_util.ads, sem_util.adb (Has_Inferable_Discriminants):
6684         Moved from Exp_Ch4.
6686 2021-05-07  Ed Schonberg  <schonberg@adacore.com>
6688         * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
6689         Add guard to verify that the enclosing pragma is a precondition.
6691 2021-05-06  Javier Miranda  <miranda@adacore.com>
6693         * exp_disp.adb (Build_Class_Wide_Check): Extending the
6694         functionality of this routine to climb to the ancestors
6695         searching for the enclosing overridden dispatching primitive
6696         that has a class-wide precondition to generate the check.
6698 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6700         * sem_ch3.adb (Constraint_Index): Remove redundant problematic
6701         analysis.
6703 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6705         * exp_unst.adb (Note_Uplevel_Bound): Exclude
6706         E_Enumeration_Literal.
6708 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6710         * exp_ch4.adb (Expand_N_If_Expression):
6711         Apply_Arithmetic_Overflow_Check will not deal with
6712         Then/Else_Actions so skip minimizing overflow checks if any
6713         actions are present.
6715 2021-05-06  Boris Yakobowski  <yakobowski@adacore.com>
6717         * gnat1drv.adb (Adjust_Global_Switches): Simplify logic.
6719 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6721         * libgnat/i-c.ads (bool): New type.
6722         * libgnat/i-cexten.ads, libgnat/i-cexten__128.ads (bool): Now
6723         a subtype of Interfaces.C.bool.
6724         * libgnarl/s-interr__vxworks.adb (Interrupt_Manager): Qualify
6725         False.
6726         * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb,
6727         libgnarl/s-tasini.adb, libgnarl/s-tasren.adb,
6728         libgnarl/s-tassta.adb, libgnarl/s-tpobmu.adb,
6729         libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb: Replace
6730         Assert (False) by Assert (Standard.False).
6732 2021-05-06  Ghjuvan Lacambre  <lacambre@adacore.com>
6734         * make.adb (Compute_Executable): Document parameter.
6736 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6738         * libgnat/s-fatgen.adb (Scaling): Use single handling of
6739         underflow.  Add pragma Annotate.
6741 2021-05-06  Ghjuvan Lacambre  <lacambre@adacore.com>
6743         * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype,
6744         remove redundant checks.
6746 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6748         * sem_res.adb (First_Last_Ref): Simplify "if [condition] then
6749         return True" in "return [condition]".
6750         (Resolve_Range): Remove calls appearing in IF condition from the
6751         THEN statements.
6753 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6755         * sem_case.adb (Missing_Choice): Fix typo in comment.
6756         (Lit_Of): Simplify with Make_Character_Literal.
6757         (Check_Choices): Remove extra spaces in parameter
6758         specifications.
6759         * sem_case.ads: Same reformatting.
6761 2021-05-06  Ed Schonberg  <schonberg@adacore.com>
6763         * exp_aggr.adb (Expand_Array_Aggregate): If the expression in an
6764         Others_Clause has not been analyzed because previous analysis of
6765         the enclosing aggregate showed the clause to be ineffective i.e.
6766         cover a null range, analyze it now to detect a possible type
6767         illegality.
6769 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6771         * libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow.
6773 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6775         * sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a
6776         list member in both branches.
6778 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6780         * libgnat/a-cofove.adb (Insert_Space): Remove hardcoded pragma
6781         Warnings.
6783 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6785         * sem_ch4.adb (Analyze_Selected_Component): Remove explicit call
6786         to Set_Raises_Constraint_Error on statically missing component.
6787         * sem_eval.adb (Eval_Arithmetic_Op): Likewise for static
6788         divisions by integer and real zeros.
6789         * sem_util.adb (Apply_Compile_Time_Constraint_Error): Call
6790         Set_Raises_Constraint_Error before exiting early in GNATprove
6791         mode.
6793 2021-05-06  Justin Squirek  <squirek@adacore.com>
6795         * checks.adb (Make_Discriminant_Constraint_Check): Add check for
6796         null when the type being converted is an access type.
6798 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6800         * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs.
6802 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6804         * osint.adb (Read_Library_Info_From_Full): Cleanup unused
6805         initial value.
6807 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6809         * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.7):
6810         Mention the IEEE standard explicitly.  Use current format names.
6811         Document assumed rounding mode and new features of I/O support.
6812         * gnat_rm.texi: Regenerate.
6814 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6816         * init.c (__gnat_init_float): Use full version on Linux too.
6818 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6820         * libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0
6821         when denormalized numbers are not supported.
6823 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6825         * sem_attr.adb (Check_Enum_Image): Reword comment; add
6826         Check_Enumeration_Maps parameter.  Now this routine combines
6827         both referencing enumeration literals and checking restriction
6828         No_Enumeration_Maps, if required.
6829         (Analyze_Attribute): Remove duplicated code and instead call
6830         Check_Enum_Image.
6832 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6834         * sem_attr.adb (Analyze_Image_Attribute): Remove redundant
6835         condition; add a missing header box.
6837 2021-05-06  Gary Dismukes  <dismukes@adacore.com>
6839         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
6840         mention of underscore and fix grammar error in doc for -gnatd.
6841         * gnat_ugn.texi: Regenerate.
6843 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6845         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-exponr, s-exnflt
6846         and s-exnlfl.
6847         * exp_ch4.adb (Expand_N_Op_Expon): Use RE_Exn_Float for Short_Float.
6848         * rtsfind.ads (RTU_Id): Add System_Exn_Flt and System_Exn_LFlt.
6849         (RE_Id): Adjust entries for RE_Exn_Float and RE_Exn_Long_Float.
6850         (RE_Unit_Table): Likewise.
6851         * libgnat/s-exnflt.ads: New file.
6852         * libgnat/s-exnlfl.ads: Likewise.
6853         * libgnat/s-exnllf.ads: Change to mere instantiation.
6854         * libgnat/s-exnllf.adb: Move implementation to...
6855         * libgnat/s-exponr.ads: New generic unit.
6856         * libgnat/s-exponr.adb: ...here and also make it generic.
6857         (Expon): Do the computation in double precision internally.
6859 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6861         * lib-writ.adb, osint.adb, osint.ads: Cleanup.
6863 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6865         * exp_ch3.adb (Expand_Freeze_Array_Type): Remove excessive
6866         condition.
6867         (Expand_N_Object_Declaration): Likewise.
6868         (Build_Equivalent_Aggregate): Likewise.
6869         (Initialization_Warning): Likewise; change another excessive
6870         condition into assertion.
6871         * freeze.adb (Freeze_Entity): Remove excessive condition.
6873 2021-05-06  Ed Schonberg  <schonberg@adacore.com>
6875         * sem_res.adb (Resolve_If_Expression): If the context of the
6876         expression is an indexed_component, resolve the expression and
6877         its dependent_expressions with the base type of the index, to
6878         ensure that an index check is generated when resolving the
6879         enclosing indexxed_component, and avoid an improper use of
6880         discriminants out of scope, when the index type is
6881         discriminant-dependent.
6883 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6885         * einfo.ads, exp_prag.adb, exp_util.adb: Fix typos.
6887 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6889         * exp_attr.adb (Expand_N_Attribute_Reference): Fix expansion of
6890         attributes Input and Output for unchecked unions.
6891         * sem_case.ads: Fix typo "disriminant" and refill comment.
6893 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6895         * exp_attr.adb, exp_ch9.adb, sem_ch3.adb: Reuse
6896         Has_Defaulted_Discriminants.
6897         * sem_ch4.adb (Analyze_Allocator): Reuse
6898         Has_Defaulted_Discriminants (after reordering conjuncts); remove
6899         redundant IF statement, whose condition is implied by
6900         Has_Defaulted_Discriminants.
6901         * sem_util.adb (Has_Defaulted_Discriminants): Has_Discriminants
6902         implies that the First_Discriminant is present.
6903         (Is_Fully_Initialized_Type): Reuse Has_Defaulted_Discriminants.
6905 2021-05-05  Justin Squirek  <squirek@adacore.com>
6907         * exp_ch6.adb (Expand_Call_Helper): Add condition to check for
6908         expanded actuals and remove dead code.
6910 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6912         * exp_ch4.adb (Has_Unconstrained_UU_Component): Rewrite to
6913         follow the Ada RM grammar.
6915 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6917         * exp_ch4.adb (User_Defined_Primitive_Equality_Op): Refine type
6918         of a local variable.
6919         * exp_dbug.adb (Scope_Contains): Refine all types from Node_Id
6920         to Entity_Id; rename parameters to match those of the
6921         Scope_Within routine (which is similar but not the same); also,
6922         simplify an OR ELSE into a membership test.
6924 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6926         * exp_ch4.adb (Component_Is_Unconstrained_UU): Detect both
6927         qualified and unqualified names of unchecked union components.
6929 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6931         * exp_ch4.adb (Variant_Is_Unconstrained_UU): Remove redundant
6932         check for empty list.
6933         * exp_disp.adb (Find_Entry_Index): Simplify by removing
6934         redundant check and counting from zero; fix type of a local
6935         variable.
6936         * sem_ch12.adb (Save_Global_Descendant): Remove an unnecessary
6937         special-case for empty lists.
6939 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6941         * exp_ch4.adb (Apply_Accessibility_Check): Skip a statically
6942         true condition in expanded raise statement.
6944 2021-05-05  Bob Duff  <duff@adacore.com>
6946         * libgnat/s-os_lib.adb (Missed_Drive_Letter): Simplify the code.
6948 2021-05-05  Ed Schonberg  <schonberg@adacore.com>
6950         * sem_ch5.adb (Analyze_Assignment): Do not emit the warning that
6951         a previous value of the target object is useless if the
6952         right-hand side of the assignment includes target names.
6954 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6956         * exp_imgv.adb: Add with/use clauses for Targparm.
6957         (Build_Enumeration_Image_Tables): Set type of Threshold to Nat and
6958         initialize it to Nat'Last if the type is local and the target does
6959         not support descriptors.  Adjust Threshold_For_Size similarly.
6960         (Expand_Value_Attribute): Minor tweaks.
6962 2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
6964         * exp_ch7.adb (Expand_N_Package_Body): Add CUDA init call.
6965         * sem_ch7.adb (Analyze_Package_Body_Helper): Remove CUDA init
6966         call.
6968 2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
6970         * par-ch5.adb (P_Condition): Check if expression is declare
6971         expression.
6973 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6975         * make.adb (Make): Use GNAT.Ctrl_C.Install_Handler instead of a
6976         custom imported procedure.
6978 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6980         * exp_imgv.adb (Is_User_Defined_Enumeration_Type): Delete.
6981         (Expand_Image_Attribute): Move inline expansion into normal flow of
6982         control, move down declarations and remove superfluous processing.
6984 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6986         * libgnat/g-alleve.adb (Bit_Operation): Now a not-null type.
6987         * libgnat/g-sechas.adb (Fill_Buffer_Access): Likewise.
6988         * libgnat/s-dwalin.adb (Callback): Likewise.
6990 2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
6992         * exp_util.adb (Is_Possibly_Unaligned_Object): Remove commented
6993         code.
6995 2021-05-05  Ed Schonberg  <schonberg@adacore.com>
6997         * sem_ch3.adb (Find_Type_Of_Object):  When In_Spec_Expression is
6998         set and the object declaration generates a subtype indication,
6999         build the corresponding subtype declaration and place it in tree
7000         without the use of Insert_Actions, which is disabled in this
7001         context.
7003 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7005         * debug.adb (d_x): Document extended usage.
7006         * exp_imgv.adb (Expand_Standard_Boolean_Image): New procedure.
7007         (Expand_Image_Attribute): Call it to expand in line the attribute
7008         for standard boolean by default.
7010 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7012         * debug.adb (d_x): Document new usage.
7013         * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Add Typ
7014         parameter and use it throughout the processing.
7015         (Expand_Image_Attribute): Retrieve the underlying type of the
7016         prefix and use the inline expansion for user-defined enumeration
7017         types with a literal string by default.
7019 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7021         * libgnat/s-dorepr.adb (Split): Declare a per-size temporary.
7022         Add pragma Annotate.
7024 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7026         * exp_ch4.adb, sem_ch13.adb, sem_eval.adb, sem_res.adb: Remove
7027         redundant calls to UI_From_Int.
7029 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7031         * exp_imgv.ads (Build_Enumeration_Image_Tables): Adjust comment.
7032         * exp_imgv.adb (Build_Enumeration_Image_Tables): Add the
7033         declaration nodes of the 4 tables to the declaration list of the
7034         function body.
7036 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7038         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imagen, s-imen16,
7039         s-imen32, s-imenu8, s-pehage, s-valuen, s-vaen16, s-vaen32 and
7040         s-vaenu8.  Remove s-imenne, s-imgenu and s-valenu.
7041         * debug.adb (d_h): Document new usage.
7042         * einfo.ads (Lit_Hash): New attribute for enumeration types.
7043         (Set_Lit_Hash): Declare.
7044         * einfo.adb (Lit_Hash): New function.
7045         (Set_Lit_Hash): New procedure.
7046         (Write_Field21_Name): Print Lit_Hash for Enumeration_Kind.
7047         * exp_imgv.ads (Build_Enumeration_Image_Tables): Fix description
7048         and document the hash function and its tables.
7049         * exp_imgv.adb: Add with/use clauses for Debug.  Add with clause
7050         for System.Perfect_Hash_Generators.
7051         (Append_Table_To): New helper routine.
7052         (Build_Enumeration_Image_Tables): Call it to build the tables.
7053         In the main unit, register the literals with the hash generator.
7054         If they are sufficiently many and -gnatd_h is not passed, generate
7055         a perfect hash function and its tables; otherwise, generate a dummy
7056         hash function.  For the other units, generate only the declaration.
7057         In all cases, set Lit_Hash to the entity of the function, if any.
7058         (Expand_Value_Attribute): Pass the 'Unrestricted_Access of Lit_Hash,
7059         if any, as third argument to the Value_Enumeration_NN function.
7060         * gnat1drv.adb (Adjust_Global_Switches): force simpler implementation
7061         of 'Value in CodePeer_Mode.
7062         * lib.ads (Synchronize_Serial_Number): Add SN parameter.
7063         * lib.adb (Synchronize_Serial_Number): Assert that it is larger than
7064         the serial number of the current unit and set the latter to it only
7065         in this case.
7066         * rtsfind.ads (RTU_Id): Add System_Img_Enum_8, System_Img_Enum_16,
7067         System_Img_Enum_32, System_Val_Enum_8, System_Val_Enum_16 and
7068         System_Val_Enum_32.  Remove System_Img_Enum, System_Img_Enum_New
7069         and System_Val_Enum.
7070         * sem_attr.adb (Analyze_Access_Attribute): Do not flag a compiler
7071         generated Unrestricted_Access attribute as illegal in a declare
7072         expression.
7073         (RE_Unit_Table): Adjust to above changes.
7074         * libgnat/g-heasor.ads: Add pragma Compiler_Unit_Warning.
7075         * libgnat/g-table.ads: Likewise.
7076         * libgnat/g-pehage.ads: Add with clause and local renaming for
7077         System.Perfect_Hash_Generators.
7078         (Optimization): Turn into derived type.
7079         (Verbose): Turn into renaming.
7080         (Too_Many_Tries): Likewise.
7081         (Table_Name): Move to System.Perfect_Hash_Generators.
7082         (Define): Likewise.
7083         (Value): Likewise.
7084         * libgnat/g-pehage.adb: Remove with clause for Ada.Directories,
7085         GNAT.Heap_Sort_G and GNAT.Table.  Move bulk of implementation
7086         to System.Perfect_Hash_Generators, only keep the output part.
7087         * libgnat/s-imagen.ads: New generic unit.
7088         * libgnat/s-imagen.adb: New body.
7089         * libgnat/s-imen16.ads: New unit.
7090         * libgnat/s-imen32.ads: Likewise.
7091         * libgnat/s-imenu8.ads: Likewise.
7092         * libgnat/s-imenne.ads: Adjust description.
7093         * libgnat/s-imgenu.ads: Delete.
7094         * libgnat/s-imgenu.adb: Likewise.
7095         * libgnat/s-pehage.ads: New unit from GNAT.Perfect_Hash_Generators.
7096         * libgnat/s-pehage.adb: New body from GNAT.Perfect_Hash_Generators.
7097         * libgnat/s-valuen.ads: New generic unit.
7098         * libgnat/s-valuen.adb: New body.
7099         * libgnat/s-vaen16.ads: New unit.
7100         * libgnat/s-vaen32.ads: Likewise.
7101         * libgnat/s-vaenu8.ads: Likewise.
7102         * libgnat/s-valenu.ads: Delete.
7103         * libgnat/s-valenu.adb: Likewise.
7104         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-pehage.o.
7105         (GNATBIND_OBJS): Remove s-imgenu.o.
7107 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7109         * sem_util.ads (Apply_Compile_Time_Constraint_Error): Remove
7110         parameter Rep from the function spec and "and if the flag Rep is
7111         set" from the comment.
7112         * sem_util.adb (Apply_Compile_Time_Constraint_Error): Remove
7113         parameter Rep.
7115 2021-05-05  Ed Schonberg  <schonberg@adacore.com>
7117         * sem_aggr.adb (Resolve_Indexed_Aggregate): For indexed
7118         aggregates with component associations verify that if there is
7119         more than one component association then all the choices are
7120         static, that the set of choices define a continuous sequence of
7121         values, and that if loop specfications appear, they do not
7122         include iterator filters or key expressions.
7124 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7126         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-dourea, s-imager,
7127         s-imgflt, s-imglfl and s-imgllf.
7128         (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorks]: Use s-dorepr__fma.adb.
7129         (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorksAE]: Likewise.
7130         (LIBGNAT_TARGET_PAIRS) [Aarch64/VxWorks]: Likewise.
7131         (LIBGNAT_TARGET_PAIRS) [Aarch64/QNX]: Likewise.
7132         (LIBGNAT_TARGET_PAIRS) [Aarch64/FreeBSD]: Likewise.
7133         (LIBGNAT_TARGET_PAIRS) [PowerPC/Linux]: Likewise.
7134         (LIBGNAT_TARGET_PAIRS) [Aarch64/Linux]: Likewise.
7135         (LIBGNAT_TARGET_PAIRS) [IA-64/Linux]: Likewise.
7136         (LIBGNAT_TARGET_PAIRS) [IA-64/HP-UX]: Likewise.
7137         (LIBGNAT_TARGET_PAIRS) [RISC-V/Linux]: Likewise.
7138         (LIBGNAT_TARGET_PAIRS) [PowerPC/Darwin]: Likewise.
7139         * exp_attr.adb (Expand_N_Attribute_Reference) [Attribute_Fore]: Use
7140         Fixed suffix and Long_Float type.
7141         * exp_imgv.adb (Expand_Image_Attribute): For floating-point types,
7142         use the routine of the corresponding root type.  For ordinary fixed
7143         point types, use Fixed suffix and Long_Float type.
7144         (Expand_Value_Attribute): Revert latest change for Long_Long_Float.
7145         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove libgnat units
7146         g-hesora.o and s-imgenu.o, add g-heasor.o, g-table.o and s-pehage.o.
7147         (GNATBIND_OBJS): Remove libgnat unit s-imgenu.o.
7148         * rtsfind.ads (RTU_Id): Add System_Img_Flt, System_Img_LFlt and
7149         System_Img_LLF.  Remove System_Img_Real.
7150         (RE_Id): Rename RE_Fore_Real to RE_Fore_Fixed.  Add RE_Image_Float,
7151         RE_Image_Long_Float and RE_Image_Long_Long_Float.  Rename
7152         RE_Image_Ordinary_Fixed_Point to RE_Image_Fixed.
7153         (RE_Unit_Table): Adjust to above changes.
7154         * libgnat/a-nbnbre.adb (Fixed_Conversions): Use Long_Float instead
7155         of Long_Long_Float.
7156         * libgnat/a-textio.ads (Field): Remove obsolete comment.
7157         * libgnat/a-ticoau.ads (Aux): Adjust ancestor package.
7158         * libgnat/a-ticoau.adb: Remove with/use clause for System.Img_Real.
7159         (Puts): Call Aux.Set_Image instead of Set_Image_Real.
7160         * libgnat/a-ticoio.adb: Add with/use clauses for System.Img_Flt,
7161         System.Img_LFlt and System.Img_LLF.
7162         (Scalar_Float): Add third actual parameter.
7163         (Scalar_Long_Float): Likewise.
7164         (Scalar_Long_Long_Float): Likewise.
7165         * libgnat/a-tifiio.adb: Add with/use clauses for System.Img_LFlt
7166         and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
7167         Long_Long_Float with Long_Float throughout.
7168         * libgnat/a-tifiio__128.adb: Likewise.
7169         * libgnat/a-tiflau.ads: Add Set_Image formal parameter.
7170         * libgnat/a-tiflau.adb: Add with/use clause for System.Img_Util,
7171         remove the one for System.Img_Real.
7172         (Put): Call Set_Image instead of Set_Image_Real.
7173         (Puts): Likewise.
7174         * libgnat/a-tiflio.adb: Add with/use clause for System.Img_Flt,
7175         System.Img_LFlt and System.Img_LLF.
7176         (Aux_Float): Add third actual parameter.
7177         (Aux_Long_Float): Likewise.
7178         (Aux_Long_Long_Float): Likewise.
7179         * libgnat/a-witeio.ads (Field): Remove obsolete comment.
7180         * libgnat/a-wtcoau.ads (Aux): Adjust ancestor package.
7181         * libgnat/a-wtcoau.adb: Remove with/use clause for System.Img_Real.
7182         (Puts): Call Aux.Set_Image instead of Set_Image_Real.
7183         * libgnat/a-wtcoio.adb: Add with/use clauses for System.Img_Flt,
7184         System.Img_LFlt and System.Img_LLF.
7185         (Scalar_Float): Add third actual parameter.
7186         (Scalar_Long_Float): Likewise.
7187         (Scalar_Long_Long_Float): Likewise.
7188         * libgnat/a-wtfiio.adb: Add with/use clauses for System.Img_LFlt
7189         and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
7190         Long_Long_Float with Long_Float throughout.
7191         * libgnat/a-wtfiio__128.adb: Likewise.
7192         * libgnat/a-wtflau.ads: Add Set_Image formal parameter.
7193         * libgnat/a-wtflau.adb: Add with/use clause for System.Img_Util,
7194         remove the one for System.Img_Real.
7195         (Put): Call Set_Image instead of Set_Image_Real.
7196         (Puts): Likewise.
7197         * libgnat/a-wtflio.adb: Add with/use clause for System.Img_Flt,
7198         System.Img_LFlt and System.Img_LLF.
7199         (Aux_Float): Add third actual parameter.
7200         (Aux_Long_Float): Likewise.
7201         (Aux_Long_Long_Float): Likewise.
7202         * libgnat/a-ztexio.ads (Field): Remove obsolete comment.
7203         * libgnat/a-ztcoau.ads (Aux): Adjust ancestor package.
7204         * libgnat/a-ztcoau.adb: Remove with/use clause for System.Img_Real.
7205         (Puts): Call Aux.Set_Image instead of Set_Image_Real.
7206         * libgnat/a-ztcoio.adb: Add with/use clauses for System.Img_Flt,
7207         System.Img_LFlt and System.Img_LLF.
7208         (Scalar_Float): Add third actual parameter.
7209         (Scalar_Long_Float): Likewise.
7210         (Scalar_Long_Long_Float): Likewise.
7211         * libgnat/a-ztfiio.adb: Add with/use clauses for System.Img_LFlt
7212         and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
7213         Long_Long_Float with Long_Float throughout.
7214         * libgnat/a-ztfiio__128.adb: Likewise.
7215         * libgnat/a-ztflau.ads: Add Set_Image formal parameter.
7216         * libgnat/a-ztflau.adb: Add with/use clause for System.Img_Util,
7217         remove the one for System.Img_Real.
7218         (Put): Call Set_Image instead of Set_Image_Real.
7219         (Puts): Likewise.
7220         * libgnat/a-ztflio.adb: Add with/use clause for System.Img_Flt,
7221         System.Img_LFlt and System.Img_LLF.
7222         (Aux_Float): Add third actual parameter.
7223         (Aux_Long_Float): Likewise.
7224         (Aux_Long_Long_Float): Likewise.
7225         * libgnat/s-dorepr.adb: New file.
7226         * libgnat/s-dorepr__fma.adb: Likewise.
7227         * libgnat/s-dourea.ads: Likewise.
7228         * libgnat/s-dourea.adb: Likewise.
7229         * libgnat/s-forrea.ads (Fore_Real): Rename into...
7230         (Fore_Fixed): ...this and take Long_Float parameters.
7231         * libgnat/s-forrea.adb (Fore_Real): Likewise.
7232         (Fore_Fixed): Likewise.
7233         * libgnat/s-imgrea.ads: Move to...
7234         (Set_Image_Real): Turn into mere renaming.
7235         * libgnat/s-imager.ads: ...here.
7236         (Image_Ordinary_Fixed_Point): Turn into...
7237         (Image_Fixed_Point): ...this.
7238         * libgnat/s-imgrea.adb: Add pragma No_Body.  Move to...
7239         * libgnat/s-imager.adb: ...here.
7240         (Image_Ordinary_Fixed_Point): Turn into...
7241         (Image_Fixed_Point): ...this.
7242         (Is_Negative): Replace Long_Long_Float with Num.
7243         (Set_Image_Real): Likewise.  Use Double_T instead of single Num
7244         throughout the algorithm.
7245         * libgnat/s-imgflt.ads: New file.
7246         * libgnat/s-imglfl.ads: Likewise.
7247         * libgnat/s-imgllf.ads: Likewise.
7248         * libgnat/s-imagef.ads: Adjust comment.
7249         * libgnat/s-imguti.ads (Max_Real_Image_Length): New named number.
7250         * libgnat/s-powflt.ads (Maxpow): Adjust.
7251         (Powten): Turn into an exact table of double Float.
7252         * libgnat/s-powlfl.ads (Maxpow): Adjust.
7253         (Powten): Turn into an exact table of double Long_Float.
7254         * libgnat/s-powllf.ads (Maxpow): Adjust.
7255         (Powten): Turn into an exact table of double Long_Long_Float.
7256         * libgnat/s-valrea.ads: Change order of formal parameters.
7257         * libgnat/s-valrea.adb: Add with clause for System.Double_Real.
7258         (Double_Real): New instantiation.
7259         (Fast2Sum): Delete.
7260         (Large_Powten): New function.
7261         (Integer_to_Real): Use Quick_Two_Sum instead of Fast2Sum.  Convert
7262         the value to Double_T.  Do the scaling in Double_T for base 10.
7263         * libgnat/s-valflt.ads: Remove with/use clasue for Interfaces,
7264         add it for System.Unsigned_Types.  Use Unsigned.
7265         * libgnat/s-vallfl.ads: Remove with/use clasue for Interfaces,
7266         add it for System.Unsigned_Types.  Use Long_Unsigned.
7267         * libgnat/s-valllf.ads: Remove with/use clasue for Interfaces,
7268         add it for System.Unsigned_Types.  Use Long_Long_Unsigned.
7270 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7272         * sem_eval.adb (Eval_Arithmetic_Op): Call
7273         Set_Raises_Constraint_Error on real division by zero just like
7274         it is called for integer division by zero earlier in this
7275         routine.
7277 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7279         * freeze.adb (Build_Renamed_Body): Simplify IF and WHILE
7280         statements with the same condition.
7282 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7284         * pprint.adb (Expr_Name): Introduce local constants to make the
7285         code more readable and avoid repeated calls to Next to reach the
7286         ELSE part of an if-expression.
7288 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7290         * pprint.adb: Remove qualification of arbitrary calls to
7291         Sinfo.Expressions and Sinfo.Parameter_Associations.
7293 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7295         * pprint.adb (Expr_Name): Simplify with functional variant of
7296         UI_Image.
7298 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7300         * pprint.adb (To_Mixed): Removed.
7302 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7304         * pprint.adb (List_Name_Count): Change type from Integer to
7305         Natural.
7307 2021-05-04  Yannick Moy  <moy@adacore.com>
7309         * pprint.adb (Expression_Image): Special case for
7310         expression-with-actions.
7312 2021-05-04  Bob Duff  <duff@adacore.com>
7314         * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.
7316 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7318         * lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated
7319         branch for generic subprograms (they are now handled together
7320         with non-generic subprograms in the ELSE branch); replace a
7321         low-level Ekind membership test with a high-level call to
7322         Is_Access_Subprogram_Type.
7324 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7326         * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal
7327         with Next_Formal.
7328         * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise.
7330 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7332         * sem_prag.adb (Collect_Global_Item): Iterate directly over
7333         formals.
7335 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7337         * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
7338         comment; this routine is no longer used by GNATprove.
7339         * sem_prag.adb (Find_Role): The IN parameter is on output only
7340         when it belongs to non-function; also, the otherwise constant
7341         object can only be written by a non-function.
7342         (Collect_Global_Item): The IN parameter can only be written when
7343         it belongs to non-function; also, unnest this check to make it
7344         easier to read.
7346 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7348         * libgnat/s-assert.ads (Assert_Failure): Now a renaming of
7349         Assertion_Error.
7350         * libgnat/a-assert.ads (Assertion_Error): Now a first class
7351         citizen.  Remove dependency on System.Assertions.
7352         * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New.
7353         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
7354         a-assert.o from gcc-interface.
7356 2021-05-04  Yannick Moy  <moy@adacore.com>
7358         * erroutc.adb (Matches): Move spec...
7359         * erroutc.ads (Matches): ...here.
7361 2021-05-04  Yannick Moy  <moy@adacore.com>
7363         * gnat1drv.adb (Adjust_Global_Switches): Force error marker in
7364         GNATprove mode.
7366 2021-05-04  Bob Duff  <duff@adacore.com>
7368         * binde.adb: No need for ??? marks in Binde, because it is
7369         superseded by Bindo.
7370         * bindo-writers.adb (Write_Unit_Closure): Verified that -Ra
7371         works.
7372         * exp_ch4.adb, sinfo.ads (Expand_N_Type_Conversion): Rules for
7373         conversions passed to gigi are documented in sinfo.ads.
7374         (Expand_N_Unchecked_Type_Conversion): Comment is a duplicate of
7375         one in sinfo.ads.
7376         (Expand_N_In): Robert already added sufficient comments years
7377         after the ??? comment was inserted.
7378         (Expand_Membership_Minimize_Eliminate_Overflow): I don't see any
7379         reason why Stand should export Long_Long_Integer'Base -- it
7380         doesn't export any other base types.
7381         (Size_In_Storage_Elements): We are doing an allocator, so we
7382         don't care about sizes in bits.
7383         (Expand_N_Allocator): PolyORB isn't going to be significantly
7384         improved, so we're not going to mess with remote access to
7385         class-wide types.
7386         (Optimize_Return_Stmt): It's not important to optimize return
7387         statements in predicate functions -- there are many
7388         more-important optimizations we could do. Keep part of the
7389         comment without "???", to clarify why the "and then ...".
7390         (User_Defined_Primitive_Equality_Op): The optimization doesn't
7391         seem important enough.
7392         (Expand_N_Unchecked_Type_Conversion): Refactor to use
7393         Expand_N_Unchecked_Expression.
7394         (Make_Array_Comparison_Op): This seems like a case of "it it's
7395         not broken, don't fix it". Too much risk of causing bugs.
7396         * debug_a.adb: Remove ??? comments asking why Current_Error_Node
7397         is maintained unconditionally, and add a comment explaining why.
7398         * errout.adb: These kinds of minor bugs do indeed exist, but
7399         we're never going to get around to fixing them "properly", so we
7400         need this code for robustness.
7401         * gnatchop.adb (Read_File): Document when read can fail.
7402         * gnatdll.adb (Parse_Command_Line): Nobody is complaining about
7403         these arbitrary limits, so no need to use Table. Increase the
7404         limits just in case.  It is clear from the names what they are
7405         limits on.
7406         * gnatlink.adb: Add needed comments.
7407         (Delete): An existing comment makes clear it's intentional, and
7408         it's been like that since 1996.
7409         (Process_Args): Improve comments.
7410         (Search_Library_Path): Refactoring to avoid deep nesting.
7411         * inline.adb (Build_Body_To_Inline): Probably won't get around
7412         to doing that optimization.
7413         (Is_Unit_Subprogram): No, this should not be moved to Sem_Aux,
7414         because it is too specialized to this context.
7415         (Do_Reset): No comment is needed here; it's clear from the
7416         comment on Reset_Dispatching_Calls. Do_Reset is an artificial
7417         subprogram; if we had proper iterators, it would just be an if
7418         statement in the loop.
7419         (Rewrite_Function_Call): Probably won't get around to doing that
7420         optimization.
7421         * layout.adb (Layout_Type): The gigi comment doesn't need to be
7422         a ??? comment, and it's been that way since 2000.  The
7423         limitation to scalars will likely never be investigated, and
7424         it's been that way since 2009.
7425         * lib.adb (Check_Same_Extended_Unit): This doesn't look like
7426         something that needs fixing; it looks like a permanent
7427         workaround.
7428         * lib-load.adb (Change_Main_Unit_To_Spec): It is good enough in
7429         practice.
7430         (Load_Unit): Nobody will ever get around to investigating the
7431         obscure PMES oddity, and the optimization is not worth the
7432         trouble.
7433         * live.adb: It's not worth documenting this. It is used only
7434         with a debug switch. Nobody who has done significant work on it
7435         is still around, so it would require substantial investigation.
7436         * mdll.ads: I see no reason for USE.
7437         * namet.ads: Routines are obsolete, but they're not going
7438         anywhere anytime soon (too much work, and surprisingly delicate
7439         because of dependences on global variables).
7440         * osint.ads: Minor.
7441         * osint.adb: Improve comments.
7442         (Full_Lib_File_Name): Use Smart_Find_File.
7444 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7446         * exp_prag.adb, sem_prag.adb: Replace low-level Ekind membership
7447         tests with a high-level call to Is_Formal_Object.
7449 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7451         * cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads,
7452         xr_tabls.adb, xref_lib.adb: Address ??? comments.
7454 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7456         * sem_prag.adb (Analyze_Global_Item): Take subprogram kind into
7457         account when accepting or rejecting a constant of an
7458         access-to-variable type as a global Output/In_Out; do this check
7459         inside an ELSIF branch to avoid unnecessary evaluation of the
7460         subsequent condition.
7462 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7464         * sem_prag.adb (Role_Error, Usage_Error): Replace calls to
7465         Name_Find and Get_Name_String with a call to To_String.
7467 2021-05-04  Ed Schonberg  <schonberg@adacore.com>
7469         * exp_aggr.adb (Build_Siz_Exp): new function, subsidiary of
7470         Expand_Container_Aggregate, to create an expression to be used
7471         in the dynamic allocation of a container with a single container
7472         element association.
7473         (Add_Range): Handle static bounds of ranges over enumerations.
7474         (Expand_Container_Aggregate): Add declaration for size
7475         expression when needed, and use it in container object
7476         declaration for container.
7478 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7480         * exp_ch7.adb (Build_Finalizer_Helper.New_Finalizer_Name):
7481         Unnest so that it can be reused.
7482         (Build_Finalizer_Helper.Process_Declarations): Call the
7483         xxx__finalize_body procedure of a package instantiation in case
7484         it contains finalization statements.  Code clean ups.
7485         (Build_Finalizer_Helper.Create_Finalizer): Export and set an
7486         Interface_Name for library level finalizers since these may be
7487         imported now.
7488         (Build_Finalizer_Helper): Need to process library level package
7489         body instantiations which may contain objects requiring
7490         finalization.
7491         * libgnat/s-finmas.ads: Fix typo.
7493 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7495         * checks.adb (Append_Range_Checks, Apply_Selected_Length_Checks,
7496         Determine_Range, Insert_Range_Checks,
7497         Install_Null_Excluding_Check, Selected_Length_Checks,
7498         Selected_Range_Checks): Address ??? comments and code cleanups.
7500 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7502         * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
7503         Apply the rule even with no explicit Global contract (and remove
7504         a dead condition for Refined_Global).
7506 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7508         * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
7509         Extend check to protected entries.
7511 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7513         * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
7514         Fix reference to SPARK RM rule number.
7516 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7518         * exp_intr.adb: Remove with/use clauses for Urealp.
7519         (Expand_Is_Negative): Delete.
7520         (Expand_Intrinsic_Call): Do not call it.
7521         * rtsfind.ads (RE_Id): Remove RE_Float_Unsigned.
7522         (RE_Unit_Table): Remove entry for RE_Float_Unsigned.
7523         * snames.ads-tmpl (Name_Is_Negative): Delete.
7524         * libgnat/s-imgrea.ads (Set_Image_Real): Fix mode of S parameter.
7525         * libgnat/s-imgrea.adb: Add with/use clauses for System.Img_Util.
7526         (LLU): New subtype.
7527         (Maxdigs): Use it.
7528         (Is_Negative): Reimplement.
7529         (Image_Floating_Point): Simplify.
7530         (Set_Image_Real): Fix mode of S parameter.  Remove the low-level
7531         processing on characters.  Flip the sign of the Scale variable.
7532         Compute the maximum number of digits for the straight notation.
7533         Call Set_Decimal_Digits at the end to do the final formatting.
7534         * libgnat/s-imguti.ads (Floating_Invalid_Value): New type.
7535         (Set_Floating_Invalid_Value): New procedure.
7536         * libgnat/s-imguti.adb (Set_Floating_Invalid_Value): Implement it
7537         based on existing code from Set_Image_Real.
7538         * libgnat/s-unstyp.ads (Float_Unsigned): Delete.
7540 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7542         * csets.adb (Initialize): Refactor into CASE statement; raise
7543         exception on unsupported code of character set (it will be
7544         gently rejected earlier when scanning command line switches).
7545         * switch-b.adb (Scan_Binder_Switches): Refactor into a
7546         membership expression; add missing '9' choice; reorder as
7547         described by GNAT UG, section 4.3.11.
7548         * switch-c.adb (Scan_Front_End_Switches): Refactor into a
7549         membership expression and reorder as above.
7550         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
7551         (gnatic): Mention '5' as an allowed value for "c".
7552         * gnat_ugn.texi: Regenerate.
7554 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7556         * errout.adb (Error_Msg_Internal): Add assertion to prevent
7557         style mistakes reappearing in the future.
7559 2021-05-04  Javier Miranda  <miranda@adacore.com>
7561         * exp_ch4.adb (Tagged_Membership): Remove wrong condition that
7562         is not consistent with the documentation of this subprogram.
7564 2021-05-04  Yannick Moy  <moy@adacore.com>
7566         * sem_res.adb (Valid_Conversion): Make message a continuation.
7568 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7570         * styleg.adb: Address ??? comments.
7572 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
7574         * libgnat/a-stunau.ads, libgnat/a-stunau.adb,
7575         libgnat/a-stunau__shared.adb (Set_String): Remove old version,
7576         replace by a new version taking a callback to set the string.
7578 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
7580         * libgnat/a-coorma.ads (Map): Add missing
7581         Preelaborate_Initialization.
7583 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7585         * exp_ch4.adb (Analyze_Number_Declaration, Expand_N_Op_Expon):
7586         Simplify with Is_Universal_Numeric_Type.
7587         * sem_attr.adb (Resolve_Attribute): Likewise.
7588         * sem_ch3.adb: Likewise.
7589         * sem_ch4.adb (Check_Common_Type, Check_Arithmetic_Pair):
7590         Likewise.
7591         * sem_eval.adb (Eval_Unary_Op, Test_In_Range): Likewise.
7592         * sem_res.adb (Resolve_Arithmetic_Op, Resolve_Membership_Op,
7593         Resolve_Op_Expon, Resolve_Unary_Op, Set_Mixed_Mode_Operand,
7594         Set_Operand_Type): Likewise.
7595         * sem_type.adb (Disambiguate, Find_Unique_Type): Likewise.
7596         * sem_util.adb (Universal_Interpretation): Likewise.
7598 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7600         * exp_aggr.adb (Max_Aggregate_Size): Add header boxes for nested
7601         routines; move a local constant after nested subprogram bodies;
7602         refill comment.
7604 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7606         * sem_attr.adb (Analyze_Attribute): Reuse Resolve with implicit
7607         type when analysing attribute Priority.
7608         * sem_ch5.adb (Analyze_Case_Statement): Likewise for a rare case
7609         in analysis of case statements.
7610         (Analyze_Iterator_Specification): Likewise for non-overloaded
7611         domain of iteration.
7613 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7615         * einfo.adb (Write_Entity_Info): Simplify an Ekind membership
7616         test.
7617         * exp_aggr.adb (Is_CCG_Supported_Aggregate): Likewise.
7619 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7621         * exp_ch7.adb (Build_Finalize_Statements): Refine type of a
7622         local counter variable.
7623         * exp_dist.adb (Append_Record_Traversal): Refine type of Counter
7624         parameter.
7625         (Add_Process_Element): Likewise.
7626         (Build_From_Any_Call): Refine type of a local counter variable.
7627         (Build_From_Any_Function): Likewise.
7628         (Build_To_Any_Function): Likewise.
7629         (FA_Rec_Add_Process_Element): Likewise.
7630         (TA_Append_Record_Traversal): Likewise.
7631         (TA_Rec_Add_Process_Element): Likewise.
7633 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7635         * rtsfind.adb (SPARK_Implicit_Load): Simplify with Discard_Node.
7637 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
7639         * Makefile.rtl: Update copyright notice.
7640         * ada_get_targ.adb: Likewise.
7641         * adabkend.adb: Likewise.
7642         * adabkend.ads: Likewise.
7643         * adadecode.c: Likewise.
7644         * adadecode.h: Likewise.
7645         * adaint.c: Likewise.
7646         * adaint.h: Likewise.
7647         * affinity.c: Likewise.
7648         * ali-util.adb: Likewise.
7649         * ali-util.ads: Likewise.
7650         * ali.adb: Likewise.
7651         * ali.ads: Likewise.
7652         * alloc.ads: Likewise.
7653         * argv-lynxos178-raven-cert.c: Likewise.
7654         * argv.c: Likewise.
7655         * aspects.adb: Likewise.
7656         * aspects.ads: Likewise.
7657         * atree.adb: Likewise.
7658         * atree.ads: Likewise.
7659         * atree.h: Likewise.
7660         * aux-io.c: Likewise.
7661         * back_end.adb: Likewise.
7662         * back_end.ads: Likewise.
7663         * bcheck.adb: Likewise.
7664         * bcheck.ads: Likewise.
7665         * binde.adb: Likewise.
7666         * binde.ads: Likewise.
7667         * binderr.adb: Likewise.
7668         * binderr.ads: Likewise.
7669         * bindgen.adb: Likewise.
7670         * bindgen.ads: Likewise.
7671         * bindo-augmentors.adb: Likewise.
7672         * bindo-augmentors.ads: Likewise.
7673         * bindo-builders.adb: Likewise.
7674         * bindo-builders.ads: Likewise.
7675         * bindo-diagnostics.adb: Likewise.
7676         * bindo-diagnostics.ads: Likewise.
7677         * bindo-elaborators.adb: Likewise.
7678         * bindo-elaborators.ads: Likewise.
7679         * bindo-graphs.adb: Likewise.
7680         * bindo-graphs.ads: Likewise.
7681         * bindo-units.adb: Likewise.
7682         * bindo-units.ads: Likewise.
7683         * bindo-validators.adb: Likewise.
7684         * bindo-validators.ads: Likewise.
7685         * bindo-writers.adb: Likewise.
7686         * bindo-writers.ads: Likewise.
7687         * bindo.adb: Likewise.
7688         * bindo.ads: Likewise.
7689         * bindusg.adb: Likewise.
7690         * bindusg.ads: Likewise.
7691         * butil.adb: Likewise.
7692         * butil.ads: Likewise.
7693         * cal.c: Likewise.
7694         * casing.adb: Likewise.
7695         * casing.ads: Likewise.
7696         * ceinfo.adb: Likewise.
7697         * checks.adb: Likewise.
7698         * checks.ads: Likewise.
7699         * cio.c: Likewise.
7700         * clean.adb: Likewise.
7701         * clean.ads: Likewise.
7702         * comperr.adb: Likewise.
7703         * comperr.ads: Likewise.
7704         * contracts.adb: Likewise.
7705         * contracts.ads: Likewise.
7706         * csets.adb: Likewise.
7707         * csets.ads: Likewise.
7708         * csinfo.adb: Likewise.
7709         * cstand.adb: Likewise.
7710         * cstand.ads: Likewise.
7711         * cstreams.c: Likewise.
7712         * ctrl_c.c: Likewise.
7713         * debug.adb: Likewise.
7714         * debug.ads: Likewise.
7715         * debug_a.adb: Likewise.
7716         * debug_a.ads: Likewise.
7717         * einfo.adb: Likewise.
7718         * einfo.ads: Likewise.
7719         * elists.adb: Likewise.
7720         * elists.ads: Likewise.
7721         * elists.h: Likewise.
7722         * env.c: Likewise.
7723         * env.h: Likewise.
7724         * err_vars.ads: Likewise.
7725         * errno.c: Likewise.
7726         * errout.adb: Likewise.
7727         * errout.ads: Likewise.
7728         * erroutc.adb: Likewise.
7729         * erroutc.ads: Likewise.
7730         * errutil.adb: Likewise.
7731         * errutil.ads: Likewise.
7732         * eval_fat.adb: Likewise.
7733         * eval_fat.ads: Likewise.
7734         * exit.c: Likewise.
7735         * exp_aggr.adb: Likewise.
7736         * exp_aggr.ads: Likewise.
7737         * exp_atag.adb: Likewise.
7738         * exp_atag.ads: Likewise.
7739         * exp_attr.adb: Likewise.
7740         * exp_attr.ads: Likewise.
7741         * exp_cg.adb: Likewise.
7742         * exp_cg.ads: Likewise.
7743         * exp_ch10.ads: Likewise.
7744         * exp_ch11.adb: Likewise.
7745         * exp_ch11.ads: Likewise.
7746         * exp_ch12.adb: Likewise.
7747         * exp_ch12.ads: Likewise.
7748         * exp_ch13.adb: Likewise.
7749         * exp_ch13.ads: Likewise.
7750         * exp_ch2.adb: Likewise.
7751         * exp_ch2.ads: Likewise.
7752         * exp_ch3.adb: Likewise.
7753         * exp_ch3.ads: Likewise.
7754         * exp_ch4.adb: Likewise.
7755         * exp_ch4.ads: Likewise.
7756         * exp_ch5.adb: Likewise.
7757         * exp_ch5.ads: Likewise.
7758         * exp_ch6.adb: Likewise.
7759         * exp_ch6.ads: Likewise.
7760         * exp_ch7.adb: Likewise.
7761         * exp_ch7.ads: Likewise.
7762         * exp_ch8.adb: Likewise.
7763         * exp_ch8.ads: Likewise.
7764         * exp_ch9.adb: Likewise.
7765         * exp_ch9.ads: Likewise.
7766         * exp_code.adb: Likewise.
7767         * exp_code.ads: Likewise.
7768         * exp_dbug.adb: Likewise.
7769         * exp_dbug.ads: Likewise.
7770         * exp_disp.adb: Likewise.
7771         * exp_disp.ads: Likewise.
7772         * exp_dist.adb: Likewise.
7773         * exp_dist.ads: Likewise.
7774         * exp_fixd.adb: Likewise.
7775         * exp_fixd.ads: Likewise.
7776         * exp_imgv.adb: Likewise.
7777         * exp_imgv.ads: Likewise.
7778         * exp_intr.adb: Likewise.
7779         * exp_intr.ads: Likewise.
7780         * exp_pakd.adb: Likewise.
7781         * exp_pakd.ads: Likewise.
7782         * exp_prag.adb: Likewise.
7783         * exp_prag.ads: Likewise.
7784         * exp_put_image.adb: Likewise.
7785         * exp_put_image.ads: Likewise.
7786         * exp_sel.adb: Likewise.
7787         * exp_sel.ads: Likewise.
7788         * exp_smem.adb: Likewise.
7789         * exp_smem.ads: Likewise.
7790         * exp_spark.adb: Likewise.
7791         * exp_spark.ads: Likewise.
7792         * exp_strm.adb: Likewise.
7793         * exp_strm.ads: Likewise.
7794         * exp_tss.adb: Likewise.
7795         * exp_tss.ads: Likewise.
7796         * exp_unst.adb: Likewise.
7797         * exp_unst.ads: Likewise.
7798         * exp_util.adb: Likewise.
7799         * exp_util.ads: Likewise.
7800         * expander.adb: Likewise.
7801         * expander.ads: Likewise.
7802         * expect.c: Likewise.
7803         * fe.h: Likewise.
7804         * final.c: Likewise.
7805         * fmap.adb: Likewise.
7806         * fmap.ads: Likewise.
7807         * fname-sf.adb: Likewise.
7808         * fname-sf.ads: Likewise.
7809         * fname-uf.adb: Likewise.
7810         * fname-uf.ads: Likewise.
7811         * fname.adb: Likewise.
7812         * fname.ads: Likewise.
7813         * freeze.adb: Likewise.
7814         * freeze.ads: Likewise.
7815         * frontend.adb: Likewise.
7816         * frontend.ads: Likewise.
7817         * gcc-interface/ada-tree.h: Likewise.
7818         * gcc-interface/ada.h: Likewise.
7819         * gcc-interface/cuintp.c: Likewise.
7820         * gcc-interface/decl.c: Likewise.
7821         * gcc-interface/gadaint.h: Likewise.
7822         * gcc-interface/gigi.h: Likewise.
7823         * gcc-interface/lang-specs.h: Likewise.
7824         * gcc-interface/misc.c: Likewise.
7825         * gcc-interface/system.ads: Likewise.
7826         * gcc-interface/targtyps.c: Likewise.
7827         * gcc-interface/trans.c: Likewise.
7828         * gcc-interface/utils.c: Likewise.
7829         * gcc-interface/utils2.c: Likewise.
7830         * get_scos.adb: Likewise.
7831         * get_scos.ads: Likewise.
7832         * get_targ.adb: Likewise.
7833         * get_targ.ads: Likewise.
7834         * ghost.adb: Likewise.
7835         * ghost.ads: Likewise.
7836         * gnat1drv.adb: Likewise.
7837         * gnat1drv.ads: Likewise.
7838         * gnat_cuda.adb: Likewise.
7839         * gnat_cuda.ads: Likewise.
7840         * gnatbind.adb: Likewise.
7841         * gnatbind.ads: Likewise.
7842         * gnatchop.adb: Likewise.
7843         * gnatclean.adb: Likewise.
7844         * gnatcmd.adb: Likewise.
7845         * gnatcmd.ads: Likewise.
7846         * gnatdll.adb: Likewise.
7847         * gnatfind.adb: Likewise.
7848         * gnatkr.adb: Likewise.
7849         * gnatkr.ads: Likewise.
7850         * gnatlink.adb: Likewise.
7851         * gnatlink.ads: Likewise.
7852         * gnatls.adb: Likewise.
7853         * gnatls.ads: Likewise.
7854         * gnatmake.adb: Likewise.
7855         * gnatmake.ads: Likewise.
7856         * gnatname.adb: Likewise.
7857         * gnatname.ads: Likewise.
7858         * gnatprep.adb: Likewise.
7859         * gnatprep.ads: Likewise.
7860         * gnatvsn.adb: Likewise.
7861         * gnatvsn.ads: Likewise.
7862         * gnatxref.adb: Likewise.
7863         * gprep.adb: Likewise.
7864         * gprep.ads: Likewise.
7865         * gsocket.h: Likewise.
7866         * hostparm.ads: Likewise.
7867         * impunit.adb: Likewise.
7868         * impunit.ads: Likewise.
7869         * indepsw-aix.adb: Likewise.
7870         * indepsw-darwin.adb: Likewise.
7871         * indepsw-gnu.adb: Likewise.
7872         * indepsw.adb: Likewise.
7873         * indepsw.ads: Likewise.
7874         * init.c: Likewise.
7875         * initialize.c: Likewise.
7876         * inline.adb: Likewise.
7877         * inline.ads: Likewise.
7878         * itypes.adb: Likewise.
7879         * itypes.ads: Likewise.
7880         * krunch.adb: Likewise.
7881         * krunch.ads: Likewise.
7882         * layout.adb: Likewise.
7883         * layout.ads: Likewise.
7884         * lib-list.adb: Likewise.
7885         * lib-load.adb: Likewise.
7886         * lib-load.ads: Likewise.
7887         * lib-sort.adb: Likewise.
7888         * lib-util.adb: Likewise.
7889         * lib-util.ads: Likewise.
7890         * lib-writ.adb: Likewise.
7891         * lib-writ.ads: Likewise.
7892         * lib-xref-spark_specific.adb: Likewise.
7893         * lib-xref.adb: Likewise.
7894         * lib-xref.ads: Likewise.
7895         * lib.adb: Likewise.
7896         * lib.ads: Likewise.
7897         * libgnarl/a-astaco.adb: Likewise.
7898         * libgnarl/a-dispat.adb: Likewise.
7899         * libgnarl/a-dynpri.adb: Likewise.
7900         * libgnarl/a-etgrbu.ads: Likewise.
7901         * libgnarl/a-exetim__darwin.adb: Likewise.
7902         * libgnarl/a-exetim__default.ads: Likewise.
7903         * libgnarl/a-exetim__mingw.adb: Likewise.
7904         * libgnarl/a-exetim__mingw.ads: Likewise.
7905         * libgnarl/a-exetim__posix.adb: Likewise.
7906         * libgnarl/a-interr.adb: Likewise.
7907         * libgnarl/a-interr.ads: Likewise.
7908         * libgnarl/a-intnam.ads: Likewise.
7909         * libgnarl/a-intnam__aix.ads: Likewise.
7910         * libgnarl/a-intnam__darwin.ads: Likewise.
7911         * libgnarl/a-intnam__dragonfly.ads: Likewise.
7912         * libgnarl/a-intnam__dummy.ads: Likewise.
7913         * libgnarl/a-intnam__freebsd.ads: Likewise.
7914         * libgnarl/a-intnam__hpux.ads: Likewise.
7915         * libgnarl/a-intnam__linux.ads: Likewise.
7916         * libgnarl/a-intnam__lynxos.ads: Likewise.
7917         * libgnarl/a-intnam__mingw.ads: Likewise.
7918         * libgnarl/a-intnam__qnx.ads: Likewise.
7919         * libgnarl/a-intnam__rtems.ads: Likewise.
7920         * libgnarl/a-intnam__solaris.ads: Likewise.
7921         * libgnarl/a-intnam__vxworks.ads: Likewise.
7922         * libgnarl/a-reatim.adb: Likewise.
7923         * libgnarl/a-reatim.ads: Likewise.
7924         * libgnarl/a-retide.adb: Likewise.
7925         * libgnarl/a-retide.ads: Likewise.
7926         * libgnarl/a-rttiev.adb: Likewise.
7927         * libgnarl/a-rttiev.ads: Likewise.
7928         * libgnarl/a-synbar.adb: Likewise.
7929         * libgnarl/a-synbar.ads: Likewise.
7930         * libgnarl/a-synbar__posix.adb: Likewise.
7931         * libgnarl/a-synbar__posix.ads: Likewise.
7932         * libgnarl/a-sytaco.adb: Likewise.
7933         * libgnarl/a-sytaco.ads: Likewise.
7934         * libgnarl/a-tasatt.adb: Likewise.
7935         * libgnarl/a-tasatt.ads: Likewise.
7936         * libgnarl/a-taside.adb: Likewise.
7937         * libgnarl/a-taside.ads: Likewise.
7938         * libgnarl/a-tasini.adb: Likewise.
7939         * libgnarl/a-tasini.ads: Likewise.
7940         * libgnarl/a-taster.adb: Likewise.
7941         * libgnarl/g-boubuf.adb: Likewise.
7942         * libgnarl/g-boubuf.ads: Likewise.
7943         * libgnarl/g-boumai.ads: Likewise.
7944         * libgnarl/g-semaph.adb: Likewise.
7945         * libgnarl/g-semaph.ads: Likewise.
7946         * libgnarl/g-signal.adb: Likewise.
7947         * libgnarl/g-signal.ads: Likewise.
7948         * libgnarl/g-tastus.ads: Likewise.
7949         * libgnarl/g-thread.adb: Likewise.
7950         * libgnarl/g-thread.ads: Likewise.
7951         * libgnarl/i-vxinco.adb: Likewise.
7952         * libgnarl/i-vxinco.ads: Likewise.
7953         * libgnarl/s-inmaop.ads: Likewise.
7954         * libgnarl/s-inmaop__dummy.adb: Likewise.
7955         * libgnarl/s-inmaop__posix.adb: Likewise.
7956         * libgnarl/s-inmaop__vxworks.adb: Likewise.
7957         * libgnarl/s-interr.adb: Likewise.
7958         * libgnarl/s-interr.ads: Likewise.
7959         * libgnarl/s-interr__dummy.adb: Likewise.
7960         * libgnarl/s-interr__hwint.adb: Likewise.
7961         * libgnarl/s-interr__sigaction.adb: Likewise.
7962         * libgnarl/s-interr__vxworks.adb: Likewise.
7963         * libgnarl/s-intman.ads: Likewise.
7964         * libgnarl/s-intman__android.adb: Likewise.
7965         * libgnarl/s-intman__dummy.adb: Likewise.
7966         * libgnarl/s-intman__lynxos.adb: Likewise.
7967         * libgnarl/s-intman__mingw.adb: Likewise.
7968         * libgnarl/s-intman__posix.adb: Likewise.
7969         * libgnarl/s-intman__qnx.adb: Likewise.
7970         * libgnarl/s-intman__solaris.adb: Likewise.
7971         * libgnarl/s-intman__susv3.adb: Likewise.
7972         * libgnarl/s-intman__vxworks.adb: Likewise.
7973         * libgnarl/s-intman__vxworks.ads: Likewise.
7974         * libgnarl/s-linux.ads: Likewise.
7975         * libgnarl/s-linux__alpha.ads: Likewise.
7976         * libgnarl/s-linux__android.ads: Likewise.
7977         * libgnarl/s-linux__hppa.ads: Likewise.
7978         * libgnarl/s-linux__mips.ads: Likewise.
7979         * libgnarl/s-linux__riscv.ads: Likewise.
7980         * libgnarl/s-linux__sparc.ads: Likewise.
7981         * libgnarl/s-linux__x32.ads: Likewise.
7982         * libgnarl/s-mudido.adb: Likewise.
7983         * libgnarl/s-mudido__affinity.adb: Likewise.
7984         * libgnarl/s-osinte__aix.adb: Likewise.
7985         * libgnarl/s-osinte__aix.ads: Likewise.
7986         * libgnarl/s-osinte__android.adb: Likewise.
7987         * libgnarl/s-osinte__android.ads: Likewise.
7988         * libgnarl/s-osinte__darwin.adb: Likewise.
7989         * libgnarl/s-osinte__darwin.ads: Likewise.
7990         * libgnarl/s-osinte__dragonfly.adb: Likewise.
7991         * libgnarl/s-osinte__dragonfly.ads: Likewise.
7992         * libgnarl/s-osinte__dummy.ads: Likewise.
7993         * libgnarl/s-osinte__freebsd.adb: Likewise.
7994         * libgnarl/s-osinte__freebsd.ads: Likewise.
7995         * libgnarl/s-osinte__gnu.adb: Likewise.
7996         * libgnarl/s-osinte__gnu.ads: Likewise.
7997         * libgnarl/s-osinte__hpux-dce.adb: Likewise.
7998         * libgnarl/s-osinte__hpux-dce.ads: Likewise.
7999         * libgnarl/s-osinte__hpux.ads: Likewise.
8000         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
8001         * libgnarl/s-osinte__linux.ads: Likewise.
8002         * libgnarl/s-osinte__lynxos178.adb: Likewise.
8003         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
8004         * libgnarl/s-osinte__mingw.ads: Likewise.
8005         * libgnarl/s-osinte__posix.adb: Likewise.
8006         * libgnarl/s-osinte__qnx.adb: Likewise.
8007         * libgnarl/s-osinte__qnx.ads: Likewise.
8008         * libgnarl/s-osinte__rtems.adb: Likewise.
8009         * libgnarl/s-osinte__rtems.ads: Likewise.
8010         * libgnarl/s-osinte__solaris.adb: Likewise.
8011         * libgnarl/s-osinte__solaris.ads: Likewise.
8012         * libgnarl/s-osinte__vxworks.adb: Likewise.
8013         * libgnarl/s-osinte__vxworks.ads: Likewise.
8014         * libgnarl/s-osinte__x32.adb: Likewise.
8015         * libgnarl/s-proinf.adb: Likewise.
8016         * libgnarl/s-proinf.ads: Likewise.
8017         * libgnarl/s-qnx.ads: Likewise.
8018         * libgnarl/s-solita.adb: Likewise.
8019         * libgnarl/s-solita.ads: Likewise.
8020         * libgnarl/s-stusta.adb: Likewise.
8021         * libgnarl/s-stusta.ads: Likewise.
8022         * libgnarl/s-taasde.adb: Likewise.
8023         * libgnarl/s-taasde.ads: Likewise.
8024         * libgnarl/s-tadeca.adb: Likewise.
8025         * libgnarl/s-tadeca.ads: Likewise.
8026         * libgnarl/s-tadert.adb: Likewise.
8027         * libgnarl/s-tadert.ads: Likewise.
8028         * libgnarl/s-taenca.adb: Likewise.
8029         * libgnarl/s-taenca.ads: Likewise.
8030         * libgnarl/s-taprob.adb: Likewise.
8031         * libgnarl/s-taprob.ads: Likewise.
8032         * libgnarl/s-taprop.ads: Likewise.
8033         * libgnarl/s-taprop__dummy.adb: Likewise.
8034         * libgnarl/s-taprop__hpux-dce.adb: Likewise.
8035         * libgnarl/s-taprop__linux.adb: Likewise.
8036         * libgnarl/s-taprop__mingw.adb: Likewise.
8037         * libgnarl/s-taprop__posix.adb: Likewise.
8038         * libgnarl/s-taprop__qnx.adb: Likewise.
8039         * libgnarl/s-taprop__solaris.adb: Likewise.
8040         * libgnarl/s-taprop__vxworks.adb: Likewise.
8041         * libgnarl/s-tarest.adb: Likewise.
8042         * libgnarl/s-tarest.ads: Likewise.
8043         * libgnarl/s-tasdeb.adb: Likewise.
8044         * libgnarl/s-tasdeb.ads: Likewise.
8045         * libgnarl/s-tasinf.adb: Likewise.
8046         * libgnarl/s-tasinf.ads: Likewise.
8047         * libgnarl/s-tasinf__linux.adb: Likewise.
8048         * libgnarl/s-tasinf__linux.ads: Likewise.
8049         * libgnarl/s-tasinf__mingw.adb: Likewise.
8050         * libgnarl/s-tasinf__mingw.ads: Likewise.
8051         * libgnarl/s-tasinf__solaris.adb: Likewise.
8052         * libgnarl/s-tasinf__solaris.ads: Likewise.
8053         * libgnarl/s-tasinf__vxworks.ads: Likewise.
8054         * libgnarl/s-tasini.adb: Likewise.
8055         * libgnarl/s-tasini.ads: Likewise.
8056         * libgnarl/s-taskin.adb: Likewise.
8057         * libgnarl/s-taskin.ads: Likewise.
8058         * libgnarl/s-taspri__dummy.ads: Likewise.
8059         * libgnarl/s-taspri__hpux-dce.ads: Likewise.
8060         * libgnarl/s-taspri__lynxos.ads: Likewise.
8061         * libgnarl/s-taspri__mingw.ads: Likewise.
8062         * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
8063         * libgnarl/s-taspri__posix.ads: Likewise.
8064         * libgnarl/s-taspri__solaris.ads: Likewise.
8065         * libgnarl/s-taspri__vxworks.ads: Likewise.
8066         * libgnarl/s-tasque.adb: Likewise.
8067         * libgnarl/s-tasque.ads: Likewise.
8068         * libgnarl/s-tasren.adb: Likewise.
8069         * libgnarl/s-tasren.ads: Likewise.
8070         * libgnarl/s-tasres.ads: Likewise.
8071         * libgnarl/s-tassta.adb: Likewise.
8072         * libgnarl/s-tassta.ads: Likewise.
8073         * libgnarl/s-tasuti.adb: Likewise.
8074         * libgnarl/s-tasuti.ads: Likewise.
8075         * libgnarl/s-tataat.adb: Likewise.
8076         * libgnarl/s-tataat.ads: Likewise.
8077         * libgnarl/s-tpinop.adb: Likewise.
8078         * libgnarl/s-tpinop.ads: Likewise.
8079         * libgnarl/s-tpoaal.adb: Likewise.
8080         * libgnarl/s-tpoben.adb: Likewise.
8081         * libgnarl/s-tpoben.ads: Likewise.
8082         * libgnarl/s-tpobmu.adb: Likewise.
8083         * libgnarl/s-tpobmu.ads: Likewise.
8084         * libgnarl/s-tpobop.adb: Likewise.
8085         * libgnarl/s-tpobop.ads: Likewise.
8086         * libgnarl/s-tpopmo.adb: Likewise.
8087         * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
8088         * libgnarl/s-tpopsp__posix.adb: Likewise.
8089         * libgnarl/s-tpopsp__solaris.adb: Likewise.
8090         * libgnarl/s-tpopsp__tls.adb: Likewise.
8091         * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
8092         * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
8093         * libgnarl/s-tpopsp__vxworks.adb: Likewise.
8094         * libgnarl/s-tporft.adb: Likewise.
8095         * libgnarl/s-tposen.adb: Likewise.
8096         * libgnarl/s-tposen.ads: Likewise.
8097         * libgnarl/s-vxwext.adb: Likewise.
8098         * libgnarl/s-vxwext.ads: Likewise.
8099         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
8100         * libgnarl/s-vxwext__kernel.adb: Likewise.
8101         * libgnarl/s-vxwext__kernel.ads: Likewise.
8102         * libgnarl/s-vxwext__noints.adb: Likewise.
8103         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
8104         * libgnarl/s-vxwext__rtp.adb: Likewise.
8105         * libgnarl/s-vxwext__rtp.ads: Likewise.
8106         * libgnarl/s-vxwext__vthreads.ads: Likewise.
8107         * libgnarl/s-vxwork__aarch64.ads: Likewise.
8108         * libgnarl/s-vxwork__arm.ads: Likewise.
8109         * libgnarl/s-vxwork__ppc.ads: Likewise.
8110         * libgnarl/s-vxwork__x86.ads: Likewise.
8111         * libgnarl/thread.c: Likewise.
8112         * libgnat/a-assert.adb: Likewise.
8113         * libgnat/a-assert.ads: Likewise.
8114         * libgnat/a-btgbso.adb: Likewise.
8115         * libgnat/a-btgbso.ads: Likewise.
8116         * libgnat/a-calari.adb: Likewise.
8117         * libgnat/a-calari.ads: Likewise.
8118         * libgnat/a-calcon.adb: Likewise.
8119         * libgnat/a-calcon.ads: Likewise.
8120         * libgnat/a-caldel.adb: Likewise.
8121         * libgnat/a-caldel.ads: Likewise.
8122         * libgnat/a-calend.adb: Likewise.
8123         * libgnat/a-calend.ads: Likewise.
8124         * libgnat/a-calfor.adb: Likewise.
8125         * libgnat/a-calfor.ads: Likewise.
8126         * libgnat/a-catizo.adb: Likewise.
8127         * libgnat/a-cbdlli.adb: Likewise.
8128         * libgnat/a-cbdlli.ads: Likewise.
8129         * libgnat/a-cbhama.adb: Likewise.
8130         * libgnat/a-cbhama.ads: Likewise.
8131         * libgnat/a-cbhase.adb: Likewise.
8132         * libgnat/a-cbhase.ads: Likewise.
8133         * libgnat/a-cbmutr.adb: Likewise.
8134         * libgnat/a-cbmutr.ads: Likewise.
8135         * libgnat/a-cborma.adb: Likewise.
8136         * libgnat/a-cborma.ads: Likewise.
8137         * libgnat/a-cborse.adb: Likewise.
8138         * libgnat/a-cborse.ads: Likewise.
8139         * libgnat/a-cbprqu.adb: Likewise.
8140         * libgnat/a-cbprqu.ads: Likewise.
8141         * libgnat/a-cbsyqu.adb: Likewise.
8142         * libgnat/a-cbsyqu.ads: Likewise.
8143         * libgnat/a-cdlili.adb: Likewise.
8144         * libgnat/a-cdlili.ads: Likewise.
8145         * libgnat/a-cfdlli.adb: Likewise.
8146         * libgnat/a-cfdlli.ads: Likewise.
8147         * libgnat/a-cfhama.adb: Likewise.
8148         * libgnat/a-cfhama.ads: Likewise.
8149         * libgnat/a-cfhase.adb: Likewise.
8150         * libgnat/a-cfhase.ads: Likewise.
8151         * libgnat/a-cfinve.adb: Likewise.
8152         * libgnat/a-cfinve.ads: Likewise.
8153         * libgnat/a-cforma.adb: Likewise.
8154         * libgnat/a-cforma.ads: Likewise.
8155         * libgnat/a-cforse.adb: Likewise.
8156         * libgnat/a-cforse.ads: Likewise.
8157         * libgnat/a-cgaaso.adb: Likewise.
8158         * libgnat/a-cgaaso.ads: Likewise.
8159         * libgnat/a-cgarso.adb: Likewise.
8160         * libgnat/a-cgcaso.adb: Likewise.
8161         * libgnat/a-chacon.adb: Likewise.
8162         * libgnat/a-chacon.ads: Likewise.
8163         * libgnat/a-chahan.adb: Likewise.
8164         * libgnat/a-chahan.ads: Likewise.
8165         * libgnat/a-chlat9.ads: Likewise.
8166         * libgnat/a-chtgbk.adb: Likewise.
8167         * libgnat/a-chtgbk.ads: Likewise.
8168         * libgnat/a-chtgbo.adb: Likewise.
8169         * libgnat/a-chtgbo.ads: Likewise.
8170         * libgnat/a-chtgke.adb: Likewise.
8171         * libgnat/a-chtgke.ads: Likewise.
8172         * libgnat/a-chtgop.adb: Likewise.
8173         * libgnat/a-chtgop.ads: Likewise.
8174         * libgnat/a-chzla1.ads: Likewise.
8175         * libgnat/a-chzla9.ads: Likewise.
8176         * libgnat/a-cidlli.adb: Likewise.
8177         * libgnat/a-cidlli.ads: Likewise.
8178         * libgnat/a-cihama.adb: Likewise.
8179         * libgnat/a-cihama.ads: Likewise.
8180         * libgnat/a-cihase.adb: Likewise.
8181         * libgnat/a-cihase.ads: Likewise.
8182         * libgnat/a-cimutr.adb: Likewise.
8183         * libgnat/a-cimutr.ads: Likewise.
8184         * libgnat/a-ciorma.adb: Likewise.
8185         * libgnat/a-ciorma.ads: Likewise.
8186         * libgnat/a-ciormu.adb: Likewise.
8187         * libgnat/a-ciormu.ads: Likewise.
8188         * libgnat/a-ciorse.adb: Likewise.
8189         * libgnat/a-ciorse.ads: Likewise.
8190         * libgnat/a-clrefi.adb: Likewise.
8191         * libgnat/a-clrefi.ads: Likewise.
8192         * libgnat/a-coboho.adb: Likewise.
8193         * libgnat/a-coboho.ads: Likewise.
8194         * libgnat/a-cobove.adb: Likewise.
8195         * libgnat/a-cobove.ads: Likewise.
8196         * libgnat/a-cofove.adb: Likewise.
8197         * libgnat/a-cofove.ads: Likewise.
8198         * libgnat/a-cofuba.adb: Likewise.
8199         * libgnat/a-cofuba.ads: Likewise.
8200         * libgnat/a-cofuma.adb: Likewise.
8201         * libgnat/a-cofuma.ads: Likewise.
8202         * libgnat/a-cofuse.adb: Likewise.
8203         * libgnat/a-cofuse.ads: Likewise.
8204         * libgnat/a-cofuve.adb: Likewise.
8205         * libgnat/a-cofuve.ads: Likewise.
8206         * libgnat/a-cogeso.adb: Likewise.
8207         * libgnat/a-cogeso.ads: Likewise.
8208         * libgnat/a-cohama.adb: Likewise.
8209         * libgnat/a-cohama.ads: Likewise.
8210         * libgnat/a-cohase.adb: Likewise.
8211         * libgnat/a-cohase.ads: Likewise.
8212         * libgnat/a-cohata.ads: Likewise.
8213         * libgnat/a-coinho.adb: Likewise.
8214         * libgnat/a-coinho.ads: Likewise.
8215         * libgnat/a-coinho__shared.adb: Likewise.
8216         * libgnat/a-coinho__shared.ads: Likewise.
8217         * libgnat/a-coinve.adb: Likewise.
8218         * libgnat/a-coinve.ads: Likewise.
8219         * libgnat/a-colien.adb: Likewise.
8220         * libgnat/a-colien.ads: Likewise.
8221         * libgnat/a-colire.adb: Likewise.
8222         * libgnat/a-colire.ads: Likewise.
8223         * libgnat/a-comlin.adb: Likewise.
8224         * libgnat/a-comlin.ads: Likewise.
8225         * libgnat/a-comutr.adb: Likewise.
8226         * libgnat/a-comutr.ads: Likewise.
8227         * libgnat/a-conhel.adb: Likewise.
8228         * libgnat/a-conhel.ads: Likewise.
8229         * libgnat/a-convec.adb: Likewise.
8230         * libgnat/a-convec.ads: Likewise.
8231         * libgnat/a-coorma.adb: Likewise.
8232         * libgnat/a-coorma.ads: Likewise.
8233         * libgnat/a-coormu.adb: Likewise.
8234         * libgnat/a-coormu.ads: Likewise.
8235         * libgnat/a-coorse.adb: Likewise.
8236         * libgnat/a-coorse.ads: Likewise.
8237         * libgnat/a-coprnu.adb: Likewise.
8238         * libgnat/a-coprnu.ads: Likewise.
8239         * libgnat/a-crbltr.ads: Likewise.
8240         * libgnat/a-crbtgk.adb: Likewise.
8241         * libgnat/a-crbtgk.ads: Likewise.
8242         * libgnat/a-crbtgo.adb: Likewise.
8243         * libgnat/a-crbtgo.ads: Likewise.
8244         * libgnat/a-crdlli.adb: Likewise.
8245         * libgnat/a-crdlli.ads: Likewise.
8246         * libgnat/a-csquin.ads: Likewise.
8247         * libgnat/a-cuprqu.adb: Likewise.
8248         * libgnat/a-cuprqu.ads: Likewise.
8249         * libgnat/a-cusyqu.adb: Likewise.
8250         * libgnat/a-cusyqu.ads: Likewise.
8251         * libgnat/a-cwila1.ads: Likewise.
8252         * libgnat/a-cwila9.ads: Likewise.
8253         * libgnat/a-decima.adb: Likewise.
8254         * libgnat/a-decima.ads: Likewise.
8255         * libgnat/a-decima__128.ads: Likewise.
8256         * libgnat/a-dhfina.adb: Likewise.
8257         * libgnat/a-dhfina.ads: Likewise.
8258         * libgnat/a-diocst.adb: Likewise.
8259         * libgnat/a-diocst.ads: Likewise.
8260         * libgnat/a-direct.adb: Likewise.
8261         * libgnat/a-direct.ads: Likewise.
8262         * libgnat/a-direio.adb: Likewise.
8263         * libgnat/a-direio.ads: Likewise.
8264         * libgnat/a-dirval.adb: Likewise.
8265         * libgnat/a-dirval.ads: Likewise.
8266         * libgnat/a-dirval__mingw.adb: Likewise.
8267         * libgnat/a-einuoc.adb: Likewise.
8268         * libgnat/a-einuoc.ads: Likewise.
8269         * libgnat/a-elchha.adb: Likewise.
8270         * libgnat/a-elchha.ads: Likewise.
8271         * libgnat/a-elchha__vxworks-ppc-full.adb: Likewise.
8272         * libgnat/a-envvar.adb: Likewise.
8273         * libgnat/a-excach.adb: Likewise.
8274         * libgnat/a-except.adb: Likewise.
8275         * libgnat/a-except.ads: Likewise.
8276         * libgnat/a-exctra.adb: Likewise.
8277         * libgnat/a-exctra.ads: Likewise.
8278         * libgnat/a-exexda.adb: Likewise.
8279         * libgnat/a-exexpr.adb: Likewise.
8280         * libgnat/a-exextr.adb: Likewise.
8281         * libgnat/a-exstat.adb: Likewise.
8282         * libgnat/a-finali.adb: Likewise.
8283         * libgnat/a-finali.ads: Likewise.
8284         * libgnat/a-locale.adb: Likewise.
8285         * libgnat/a-locale.ads: Likewise.
8286         * libgnat/a-nagefl.ads: Likewise.
8287         * libgnat/a-naliop.ads: Likewise.
8288         * libgnat/a-naliop__nolibm.ads: Likewise.
8289         * libgnat/a-nallfl.ads: Likewise.
8290         * libgnat/a-nallfl__wraplf.ads: Likewise.
8291         * libgnat/a-nalofl.ads: Likewise.
8292         * libgnat/a-nashfl.ads: Likewise.
8293         * libgnat/a-nashfl__wraplf.ads: Likewise.
8294         * libgnat/a-nbnbin.adb: Likewise.
8295         * libgnat/a-nbnbin__gmp.adb: Likewise.
8296         * libgnat/a-nbnbre.adb: Likewise.
8297         * libgnat/a-ngcefu.adb: Likewise.
8298         * libgnat/a-ngcoar.adb: Likewise.
8299         * libgnat/a-ngcoty.adb: Likewise.
8300         * libgnat/a-ngcoty.ads: Likewise.
8301         * libgnat/a-ngelfu.adb: Likewise.
8302         * libgnat/a-ngelfu.ads: Likewise.
8303         * libgnat/a-ngrear.adb: Likewise.
8304         * libgnat/a-ngrear.ads: Likewise.
8305         * libgnat/a-nuauco.ads: Likewise.
8306         * libgnat/a-nuauco__x86.ads: Likewise.
8307         * libgnat/a-nuaufl.ads: Likewise.
8308         * libgnat/a-nuaufl__wraplf.ads: Likewise.
8309         * libgnat/a-nudira.adb: Likewise.
8310         * libgnat/a-nudira.ads: Likewise.
8311         * libgnat/a-nuflra.adb: Likewise.
8312         * libgnat/a-nuflra.ads: Likewise.
8313         * libgnat/a-numaux.ads: Likewise.
8314         * libgnat/a-rbtgbk.adb: Likewise.
8315         * libgnat/a-rbtgbk.ads: Likewise.
8316         * libgnat/a-rbtgbo.adb: Likewise.
8317         * libgnat/a-rbtgbo.ads: Likewise.
8318         * libgnat/a-rbtgso.adb: Likewise.
8319         * libgnat/a-rbtgso.ads: Likewise.
8320         * libgnat/a-sbecin.adb: Likewise.
8321         * libgnat/a-sbecin.ads: Likewise.
8322         * libgnat/a-sbhcin.adb: Likewise.
8323         * libgnat/a-sbhcin.ads: Likewise.
8324         * libgnat/a-sblcin.adb: Likewise.
8325         * libgnat/a-sblcin.ads: Likewise.
8326         * libgnat/a-secain.adb: Likewise.
8327         * libgnat/a-secain.ads: Likewise.
8328         * libgnat/a-sequio.adb: Likewise.
8329         * libgnat/a-sequio.ads: Likewise.
8330         * libgnat/a-sfecin.ads: Likewise.
8331         * libgnat/a-sfhcin.ads: Likewise.
8332         * libgnat/a-sflcin.ads: Likewise.
8333         * libgnat/a-shcain.adb: Likewise.
8334         * libgnat/a-shcain.ads: Likewise.
8335         * libgnat/a-siocst.adb: Likewise.
8336         * libgnat/a-siocst.ads: Likewise.
8337         * libgnat/a-slcain.adb: Likewise.
8338         * libgnat/a-slcain.ads: Likewise.
8339         * libgnat/a-ssicst.adb: Likewise.
8340         * libgnat/a-ssicst.ads: Likewise.
8341         * libgnat/a-stboha.adb: Likewise.
8342         * libgnat/a-stmaco.ads: Likewise.
8343         * libgnat/a-stobbu.adb: Likewise.
8344         * libgnat/a-stobbu.ads: Likewise.
8345         * libgnat/a-stobfi.adb: Likewise.
8346         * libgnat/a-stobfi.ads: Likewise.
8347         * libgnat/a-storio.adb: Likewise.
8348         * libgnat/a-stoubu.adb: Likewise.
8349         * libgnat/a-stoubu.ads: Likewise.
8350         * libgnat/a-stoufi.adb: Likewise.
8351         * libgnat/a-stoufi.ads: Likewise.
8352         * libgnat/a-stoufo.adb: Likewise.
8353         * libgnat/a-stoufo.ads: Likewise.
8354         * libgnat/a-stouut.adb: Likewise.
8355         * libgnat/a-stouut.ads: Likewise.
8356         * libgnat/a-strbou.adb: Likewise.
8357         * libgnat/a-strbou.ads: Likewise.
8358         * libgnat/a-stream.adb: Likewise.
8359         * libgnat/a-stream.ads: Likewise.
8360         * libgnat/a-strfix.adb: Likewise.
8361         * libgnat/a-strhas.adb: Likewise.
8362         * libgnat/a-strmap.adb: Likewise.
8363         * libgnat/a-strmap.ads: Likewise.
8364         * libgnat/a-strsea.adb: Likewise.
8365         * libgnat/a-strsea.ads: Likewise.
8366         * libgnat/a-strsto.ads: Likewise.
8367         * libgnat/a-strsup.adb: Likewise.
8368         * libgnat/a-strsup.ads: Likewise.
8369         * libgnat/a-strunb.adb: Likewise.
8370         * libgnat/a-strunb.ads: Likewise.
8371         * libgnat/a-strunb__shared.adb: Likewise.
8372         * libgnat/a-strunb__shared.ads: Likewise.
8373         * libgnat/a-ststbo.adb: Likewise.
8374         * libgnat/a-ststbo.ads: Likewise.
8375         * libgnat/a-ststio.adb: Likewise.
8376         * libgnat/a-ststio.ads: Likewise.
8377         * libgnat/a-ststun.adb: Likewise.
8378         * libgnat/a-ststun.ads: Likewise.
8379         * libgnat/a-stteou.ads: Likewise.
8380         * libgnat/a-stunau.adb: Likewise.
8381         * libgnat/a-stunau.ads: Likewise.
8382         * libgnat/a-stunau__shared.adb: Likewise.
8383         * libgnat/a-stunha.adb: Likewise.
8384         * libgnat/a-stuten.adb: Likewise.
8385         * libgnat/a-stwibo.adb: Likewise.
8386         * libgnat/a-stwibo.ads: Likewise.
8387         * libgnat/a-stwifi.adb: Likewise.
8388         * libgnat/a-stwiha.adb: Likewise.
8389         * libgnat/a-stwima.adb: Likewise.
8390         * libgnat/a-stwima.ads: Likewise.
8391         * libgnat/a-stwise.adb: Likewise.
8392         * libgnat/a-stwise.ads: Likewise.
8393         * libgnat/a-stwisu.adb: Likewise.
8394         * libgnat/a-stwisu.ads: Likewise.
8395         * libgnat/a-stwiun.adb: Likewise.
8396         * libgnat/a-stwiun.ads: Likewise.
8397         * libgnat/a-stwiun__shared.adb: Likewise.
8398         * libgnat/a-stwiun__shared.ads: Likewise.
8399         * libgnat/a-stzbou.adb: Likewise.
8400         * libgnat/a-stzbou.ads: Likewise.
8401         * libgnat/a-stzfix.adb: Likewise.
8402         * libgnat/a-stzhas.adb: Likewise.
8403         * libgnat/a-stzmap.adb: Likewise.
8404         * libgnat/a-stzmap.ads: Likewise.
8405         * libgnat/a-stzsea.adb: Likewise.
8406         * libgnat/a-stzsea.ads: Likewise.
8407         * libgnat/a-stzsup.adb: Likewise.
8408         * libgnat/a-stzsup.ads: Likewise.
8409         * libgnat/a-stzunb.adb: Likewise.
8410         * libgnat/a-stzunb.ads: Likewise.
8411         * libgnat/a-stzunb__shared.adb: Likewise.
8412         * libgnat/a-stzunb__shared.ads: Likewise.
8413         * libgnat/a-suecin.adb: Likewise.
8414         * libgnat/a-suecin.ads: Likewise.
8415         * libgnat/a-suenco.adb: Likewise.
8416         * libgnat/a-suenst.adb: Likewise.
8417         * libgnat/a-suewst.adb: Likewise.
8418         * libgnat/a-suezst.adb: Likewise.
8419         * libgnat/a-suhcin.adb: Likewise.
8420         * libgnat/a-suhcin.ads: Likewise.
8421         * libgnat/a-sulcin.adb: Likewise.
8422         * libgnat/a-sulcin.ads: Likewise.
8423         * libgnat/a-suteio.adb: Likewise.
8424         * libgnat/a-suteio.ads: Likewise.
8425         * libgnat/a-suteio__shared.adb: Likewise.
8426         * libgnat/a-swbwha.adb: Likewise.
8427         * libgnat/a-swmwco.ads: Likewise.
8428         * libgnat/a-swunau.adb: Likewise.
8429         * libgnat/a-swunau.ads: Likewise.
8430         * libgnat/a-swunau__shared.adb: Likewise.
8431         * libgnat/a-swuwha.adb: Likewise.
8432         * libgnat/a-swuwti.adb: Likewise.
8433         * libgnat/a-swuwti.ads: Likewise.
8434         * libgnat/a-swuwti__shared.adb: Likewise.
8435         * libgnat/a-szbzha.adb: Likewise.
8436         * libgnat/a-szmzco.ads: Likewise.
8437         * libgnat/a-szunau.adb: Likewise.
8438         * libgnat/a-szunau.ads: Likewise.
8439         * libgnat/a-szunau__shared.adb: Likewise.
8440         * libgnat/a-szuzha.adb: Likewise.
8441         * libgnat/a-szuzti.adb: Likewise.
8442         * libgnat/a-szuzti.ads: Likewise.
8443         * libgnat/a-szuzti__shared.adb: Likewise.
8444         * libgnat/a-tags.adb: Likewise.
8445         * libgnat/a-tags.ads: Likewise.
8446         * libgnat/a-teioed.adb: Likewise.
8447         * libgnat/a-teioed.ads: Likewise.
8448         * libgnat/a-textio.adb: Likewise.
8449         * libgnat/a-textio.ads: Likewise.
8450         * libgnat/a-tiboio.adb: Likewise.
8451         * libgnat/a-ticoau.adb: Likewise.
8452         * libgnat/a-ticoau.ads: Likewise.
8453         * libgnat/a-ticoio.adb: Likewise.
8454         * libgnat/a-ticoio.ads: Likewise.
8455         * libgnat/a-tideau.adb: Likewise.
8456         * libgnat/a-tideau.ads: Likewise.
8457         * libgnat/a-tideio.adb: Likewise.
8458         * libgnat/a-tideio.ads: Likewise.
8459         * libgnat/a-tideio__128.adb: Likewise.
8460         * libgnat/a-tienau.adb: Likewise.
8461         * libgnat/a-tienau.ads: Likewise.
8462         * libgnat/a-tienio.adb: Likewise.
8463         * libgnat/a-tifiau.adb: Likewise.
8464         * libgnat/a-tifiau.ads: Likewise.
8465         * libgnat/a-tifiio.adb: Likewise.
8466         * libgnat/a-tifiio__128.adb: Likewise.
8467         * libgnat/a-tiflau.adb: Likewise.
8468         * libgnat/a-tiflau.ads: Likewise.
8469         * libgnat/a-tiflio.adb: Likewise.
8470         * libgnat/a-tiflio.ads: Likewise.
8471         * libgnat/a-tigeau.adb: Likewise.
8472         * libgnat/a-tigeau.ads: Likewise.
8473         * libgnat/a-tigeli.adb: Likewise.
8474         * libgnat/a-tiinau.adb: Likewise.
8475         * libgnat/a-tiinau.ads: Likewise.
8476         * libgnat/a-tiinio.adb: Likewise.
8477         * libgnat/a-tiinio.ads: Likewise.
8478         * libgnat/a-tiinio__128.adb: Likewise.
8479         * libgnat/a-timoio.adb: Likewise.
8480         * libgnat/a-timoio.ads: Likewise.
8481         * libgnat/a-timoio__128.adb: Likewise.
8482         * libgnat/a-tiocst.adb: Likewise.
8483         * libgnat/a-tiocst.ads: Likewise.
8484         * libgnat/a-tirsfi.adb: Likewise.
8485         * libgnat/a-tirsfi.ads: Likewise.
8486         * libgnat/a-titest.adb: Likewise.
8487         * libgnat/a-undesu.adb: Likewise.
8488         * libgnat/a-wichha.adb: Likewise.
8489         * libgnat/a-wichun.adb: Likewise.
8490         * libgnat/a-wichun.ads: Likewise.
8491         * libgnat/a-witeio.adb: Likewise.
8492         * libgnat/a-witeio.ads: Likewise.
8493         * libgnat/a-wrstfi.adb: Likewise.
8494         * libgnat/a-wrstfi.ads: Likewise.
8495         * libgnat/a-wtcoau.adb: Likewise.
8496         * libgnat/a-wtcoau.ads: Likewise.
8497         * libgnat/a-wtcoio.adb: Likewise.
8498         * libgnat/a-wtcstr.adb: Likewise.
8499         * libgnat/a-wtcstr.ads: Likewise.
8500         * libgnat/a-wtdeau.adb: Likewise.
8501         * libgnat/a-wtdeau.ads: Likewise.
8502         * libgnat/a-wtdeio.adb: Likewise.
8503         * libgnat/a-wtdeio__128.adb: Likewise.
8504         * libgnat/a-wtedit.adb: Likewise.
8505         * libgnat/a-wtedit.ads: Likewise.
8506         * libgnat/a-wtenau.adb: Likewise.
8507         * libgnat/a-wtenau.ads: Likewise.
8508         * libgnat/a-wtenio.adb: Likewise.
8509         * libgnat/a-wtfiau.adb: Likewise.
8510         * libgnat/a-wtfiau.ads: Likewise.
8511         * libgnat/a-wtfiio.adb: Likewise.
8512         * libgnat/a-wtfiio__128.adb: Likewise.
8513         * libgnat/a-wtflau.adb: Likewise.
8514         * libgnat/a-wtflau.ads: Likewise.
8515         * libgnat/a-wtflio.adb: Likewise.
8516         * libgnat/a-wtgeau.adb: Likewise.
8517         * libgnat/a-wtgeau.ads: Likewise.
8518         * libgnat/a-wtinau.adb: Likewise.
8519         * libgnat/a-wtinau.ads: Likewise.
8520         * libgnat/a-wtinio.adb: Likewise.
8521         * libgnat/a-wtinio__128.adb: Likewise.
8522         * libgnat/a-wtmoio.adb: Likewise.
8523         * libgnat/a-wtmoio.ads: Likewise.
8524         * libgnat/a-wtmoio__128.adb: Likewise.
8525         * libgnat/a-wttest.adb: Likewise.
8526         * libgnat/a-wwboio.adb: Likewise.
8527         * libgnat/a-zchhan.adb: Likewise.
8528         * libgnat/a-zchuni.adb: Likewise.
8529         * libgnat/a-zchuni.ads: Likewise.
8530         * libgnat/a-zrstfi.adb: Likewise.
8531         * libgnat/a-zrstfi.ads: Likewise.
8532         * libgnat/a-ztcoau.adb: Likewise.
8533         * libgnat/a-ztcoio.adb: Likewise.
8534         * libgnat/a-ztcstr.adb: Likewise.
8535         * libgnat/a-ztcstr.ads: Likewise.
8536         * libgnat/a-ztdeau.adb: Likewise.
8537         * libgnat/a-ztdeau.ads: Likewise.
8538         * libgnat/a-ztdeio.adb: Likewise.
8539         * libgnat/a-ztdeio__128.adb: Likewise.
8540         * libgnat/a-ztedit.adb: Likewise.
8541         * libgnat/a-ztedit.ads: Likewise.
8542         * libgnat/a-ztenau.adb: Likewise.
8543         * libgnat/a-ztenau.ads: Likewise.
8544         * libgnat/a-ztenio.adb: Likewise.
8545         * libgnat/a-ztexio.adb: Likewise.
8546         * libgnat/a-ztexio.ads: Likewise.
8547         * libgnat/a-ztfiau.adb: Likewise.
8548         * libgnat/a-ztfiau.ads: Likewise.
8549         * libgnat/a-ztfiio.adb: Likewise.
8550         * libgnat/a-ztfiio__128.adb: Likewise.
8551         * libgnat/a-ztflau.adb: Likewise.
8552         * libgnat/a-ztflau.ads: Likewise.
8553         * libgnat/a-ztflio.adb: Likewise.
8554         * libgnat/a-ztgeau.adb: Likewise.
8555         * libgnat/a-ztgeau.ads: Likewise.
8556         * libgnat/a-ztinau.adb: Likewise.
8557         * libgnat/a-ztinau.ads: Likewise.
8558         * libgnat/a-ztinio.adb: Likewise.
8559         * libgnat/a-ztinio__128.adb: Likewise.
8560         * libgnat/a-ztmoio.adb: Likewise.
8561         * libgnat/a-ztmoio__128.adb: Likewise.
8562         * libgnat/a-zttest.adb: Likewise.
8563         * libgnat/a-zzboio.adb: Likewise.
8564         * libgnat/g-allein.ads: Likewise.
8565         * libgnat/g-alleve.adb: Likewise.
8566         * libgnat/g-alleve.ads: Likewise.
8567         * libgnat/g-alleve__hard.adb: Likewise.
8568         * libgnat/g-alleve__hard.ads: Likewise.
8569         * libgnat/g-altcon.adb: Likewise.
8570         * libgnat/g-altcon.ads: Likewise.
8571         * libgnat/g-altive.ads: Likewise.
8572         * libgnat/g-alveop.adb: Likewise.
8573         * libgnat/g-alveop.ads: Likewise.
8574         * libgnat/g-alvety.ads: Likewise.
8575         * libgnat/g-alvevi.ads: Likewise.
8576         * libgnat/g-arrspl.adb: Likewise.
8577         * libgnat/g-arrspl.ads: Likewise.
8578         * libgnat/g-awk.adb: Likewise.
8579         * libgnat/g-awk.ads: Likewise.
8580         * libgnat/g-binenv.adb: Likewise.
8581         * libgnat/g-binenv.ads: Likewise.
8582         * libgnat/g-brapre.ads: Likewise.
8583         * libgnat/g-bubsor.adb: Likewise.
8584         * libgnat/g-bubsor.ads: Likewise.
8585         * libgnat/g-busora.adb: Likewise.
8586         * libgnat/g-busora.ads: Likewise.
8587         * libgnat/g-busorg.adb: Likewise.
8588         * libgnat/g-busorg.ads: Likewise.
8589         * libgnat/g-byorma.adb: Likewise.
8590         * libgnat/g-byorma.ads: Likewise.
8591         * libgnat/g-bytswa.adb: Likewise.
8592         * libgnat/g-bytswa.ads: Likewise.
8593         * libgnat/g-calend.adb: Likewise.
8594         * libgnat/g-calend.ads: Likewise.
8595         * libgnat/g-casuti.adb: Likewise.
8596         * libgnat/g-casuti.ads: Likewise.
8597         * libgnat/g-catiio.adb: Likewise.
8598         * libgnat/g-catiio.ads: Likewise.
8599         * libgnat/g-cgi.adb: Likewise.
8600         * libgnat/g-cgi.ads: Likewise.
8601         * libgnat/g-cgicoo.adb: Likewise.
8602         * libgnat/g-cgicoo.ads: Likewise.
8603         * libgnat/g-cgideb.adb: Likewise.
8604         * libgnat/g-cgideb.ads: Likewise.
8605         * libgnat/g-comlin.adb: Likewise.
8606         * libgnat/g-comlin.ads: Likewise.
8607         * libgnat/g-comver.adb: Likewise.
8608         * libgnat/g-comver.ads: Likewise.
8609         * libgnat/g-cppexc.adb: Likewise.
8610         * libgnat/g-cppexc.ads: Likewise.
8611         * libgnat/g-crc32.adb: Likewise.
8612         * libgnat/g-crc32.ads: Likewise.
8613         * libgnat/g-ctrl_c.adb: Likewise.
8614         * libgnat/g-ctrl_c.ads: Likewise.
8615         * libgnat/g-curexc.ads: Likewise.
8616         * libgnat/g-debpoo.adb: Likewise.
8617         * libgnat/g-debpoo.ads: Likewise.
8618         * libgnat/g-debuti.adb: Likewise.
8619         * libgnat/g-debuti.ads: Likewise.
8620         * libgnat/g-decstr.adb: Likewise.
8621         * libgnat/g-decstr.ads: Likewise.
8622         * libgnat/g-deutst.ads: Likewise.
8623         * libgnat/g-diopit.adb: Likewise.
8624         * libgnat/g-diopit.ads: Likewise.
8625         * libgnat/g-dirope.adb: Likewise.
8626         * libgnat/g-dirope.ads: Likewise.
8627         * libgnat/g-dynhta.adb: Likewise.
8628         * libgnat/g-dynhta.ads: Likewise.
8629         * libgnat/g-dyntab.adb: Likewise.
8630         * libgnat/g-dyntab.ads: Likewise.
8631         * libgnat/g-eacodu.adb: Likewise.
8632         * libgnat/g-encstr.adb: Likewise.
8633         * libgnat/g-encstr.ads: Likewise.
8634         * libgnat/g-enutst.ads: Likewise.
8635         * libgnat/g-excact.adb: Likewise.
8636         * libgnat/g-excact.ads: Likewise.
8637         * libgnat/g-except.ads: Likewise.
8638         * libgnat/g-exctra.adb: Likewise.
8639         * libgnat/g-exctra.ads: Likewise.
8640         * libgnat/g-expect.adb: Likewise.
8641         * libgnat/g-expect.ads: Likewise.
8642         * libgnat/g-exptty.adb: Likewise.
8643         * libgnat/g-exptty.ads: Likewise.
8644         * libgnat/g-flocon.ads: Likewise.
8645         * libgnat/g-forstr.adb: Likewise.
8646         * libgnat/g-forstr.ads: Likewise.
8647         * libgnat/g-graphs.adb: Likewise.
8648         * libgnat/g-graphs.ads: Likewise.
8649         * libgnat/g-heasor.adb: Likewise.
8650         * libgnat/g-heasor.ads: Likewise.
8651         * libgnat/g-hesora.adb: Likewise.
8652         * libgnat/g-hesora.ads: Likewise.
8653         * libgnat/g-hesorg.adb: Likewise.
8654         * libgnat/g-hesorg.ads: Likewise.
8655         * libgnat/g-htable.adb: Likewise.
8656         * libgnat/g-htable.ads: Likewise.
8657         * libgnat/g-io-put__vxworks.adb: Likewise.
8658         * libgnat/g-io.adb: Likewise.
8659         * libgnat/g-io.ads: Likewise.
8660         * libgnat/g-io_aux.adb: Likewise.
8661         * libgnat/g-io_aux.ads: Likewise.
8662         * libgnat/g-lists.adb: Likewise.
8663         * libgnat/g-lists.ads: Likewise.
8664         * libgnat/g-locfil.adb: Likewise.
8665         * libgnat/g-locfil.ads: Likewise.
8666         * libgnat/g-mbdira.adb: Likewise.
8667         * libgnat/g-mbdira.ads: Likewise.
8668         * libgnat/g-mbflra.adb: Likewise.
8669         * libgnat/g-mbflra.ads: Likewise.
8670         * libgnat/g-md5.adb: Likewise.
8671         * libgnat/g-md5.ads: Likewise.
8672         * libgnat/g-memdum.adb: Likewise.
8673         * libgnat/g-memdum.ads: Likewise.
8674         * libgnat/g-moreex.adb: Likewise.
8675         * libgnat/g-moreex.ads: Likewise.
8676         * libgnat/g-os_lib.adb: Likewise.
8677         * libgnat/g-os_lib.ads: Likewise.
8678         * libgnat/g-pehage.adb: Likewise.
8679         * libgnat/g-pehage.ads: Likewise.
8680         * libgnat/g-rannum.adb: Likewise.
8681         * libgnat/g-rannum.ads: Likewise.
8682         * libgnat/g-regexp.adb: Likewise.
8683         * libgnat/g-regexp.ads: Likewise.
8684         * libgnat/g-regist.adb: Likewise.
8685         * libgnat/g-regist.ads: Likewise.
8686         * libgnat/g-regpat.adb: Likewise.
8687         * libgnat/g-regpat.ads: Likewise.
8688         * libgnat/g-rewdat.adb: Likewise.
8689         * libgnat/g-rewdat.ads: Likewise.
8690         * libgnat/g-sechas.adb: Likewise.
8691         * libgnat/g-sechas.ads: Likewise.
8692         * libgnat/g-sehamd.adb: Likewise.
8693         * libgnat/g-sehamd.ads: Likewise.
8694         * libgnat/g-sehash.adb: Likewise.
8695         * libgnat/g-sehash.ads: Likewise.
8696         * libgnat/g-sercom.adb: Likewise.
8697         * libgnat/g-sercom.ads: Likewise.
8698         * libgnat/g-sercom__linux.adb: Likewise.
8699         * libgnat/g-sercom__mingw.adb: Likewise.
8700         * libgnat/g-sestin.ads: Likewise.
8701         * libgnat/g-sets.adb: Likewise.
8702         * libgnat/g-sets.ads: Likewise.
8703         * libgnat/g-sha1.adb: Likewise.
8704         * libgnat/g-sha1.ads: Likewise.
8705         * libgnat/g-sha224.ads: Likewise.
8706         * libgnat/g-sha256.ads: Likewise.
8707         * libgnat/g-sha384.ads: Likewise.
8708         * libgnat/g-sha512.ads: Likewise.
8709         * libgnat/g-shsh32.adb: Likewise.
8710         * libgnat/g-shsh32.ads: Likewise.
8711         * libgnat/g-shsh64.adb: Likewise.
8712         * libgnat/g-shsh64.ads: Likewise.
8713         * libgnat/g-shshco.adb: Likewise.
8714         * libgnat/g-shshco.ads: Likewise.
8715         * libgnat/g-soccon.ads: Likewise.
8716         * libgnat/g-socket.adb: Likewise.
8717         * libgnat/g-socket.ads: Likewise.
8718         * libgnat/g-socket__dummy.adb: Likewise.
8719         * libgnat/g-socket__dummy.ads: Likewise.
8720         * libgnat/g-socpol.adb: Likewise.
8721         * libgnat/g-socpol.ads: Likewise.
8722         * libgnat/g-socpol__dummy.adb: Likewise.
8723         * libgnat/g-socpol__dummy.ads: Likewise.
8724         * libgnat/g-socthi.adb: Likewise.
8725         * libgnat/g-socthi.ads: Likewise.
8726         * libgnat/g-socthi__dummy.adb: Likewise.
8727         * libgnat/g-socthi__dummy.ads: Likewise.
8728         * libgnat/g-socthi__mingw.adb: Likewise.
8729         * libgnat/g-socthi__mingw.ads: Likewise.
8730         * libgnat/g-socthi__vxworks.adb: Likewise.
8731         * libgnat/g-socthi__vxworks.ads: Likewise.
8732         * libgnat/g-soliop.ads: Likewise.
8733         * libgnat/g-soliop__lynxos.ads: Likewise.
8734         * libgnat/g-soliop__mingw.ads: Likewise.
8735         * libgnat/g-soliop__qnx.ads: Likewise.
8736         * libgnat/g-soliop__solaris.ads: Likewise.
8737         * libgnat/g-sopowa.adb: Likewise.
8738         * libgnat/g-sopowa__mingw.adb: Likewise.
8739         * libgnat/g-sopowa__posix.adb: Likewise.
8740         * libgnat/g-sothco.adb: Likewise.
8741         * libgnat/g-sothco.ads: Likewise.
8742         * libgnat/g-sothco__dummy.adb: Likewise.
8743         * libgnat/g-sothco__dummy.ads: Likewise.
8744         * libgnat/g-souinf.ads: Likewise.
8745         * libgnat/g-spchge.adb: Likewise.
8746         * libgnat/g-spchge.ads: Likewise.
8747         * libgnat/g-speche.adb: Likewise.
8748         * libgnat/g-speche.ads: Likewise.
8749         * libgnat/g-spipat.adb: Likewise.
8750         * libgnat/g-spipat.ads: Likewise.
8751         * libgnat/g-spitbo.adb: Likewise.
8752         * libgnat/g-spitbo.ads: Likewise.
8753         * libgnat/g-spogwa.adb: Likewise.
8754         * libgnat/g-spogwa.ads: Likewise.
8755         * libgnat/g-sptabo.ads: Likewise.
8756         * libgnat/g-sptain.ads: Likewise.
8757         * libgnat/g-sptavs.ads: Likewise.
8758         * libgnat/g-sse.ads: Likewise.
8759         * libgnat/g-ssvety.ads: Likewise.
8760         * libgnat/g-sthcso.adb: Likewise.
8761         * libgnat/g-stheme.adb: Likewise.
8762         * libgnat/g-strhas.ads: Likewise.
8763         * libgnat/g-string.adb: Likewise.
8764         * libgnat/g-string.ads: Likewise.
8765         * libgnat/g-strspl.ads: Likewise.
8766         * libgnat/g-stseme.adb: Likewise.
8767         * libgnat/g-stsifd__sockets.adb: Likewise.
8768         * libgnat/g-table.adb: Likewise.
8769         * libgnat/g-table.ads: Likewise.
8770         * libgnat/g-tasloc.adb: Likewise.
8771         * libgnat/g-tasloc.ads: Likewise.
8772         * libgnat/g-timsta.adb: Likewise.
8773         * libgnat/g-timsta.ads: Likewise.
8774         * libgnat/g-traceb.adb: Likewise.
8775         * libgnat/g-traceb.ads: Likewise.
8776         * libgnat/g-trasym.adb: Likewise.
8777         * libgnat/g-trasym.ads: Likewise.
8778         * libgnat/g-tty.adb: Likewise.
8779         * libgnat/g-tty.ads: Likewise.
8780         * libgnat/g-u3spch.adb: Likewise.
8781         * libgnat/g-u3spch.ads: Likewise.
8782         * libgnat/g-utf_32.adb: Likewise.
8783         * libgnat/g-utf_32.ads: Likewise.
8784         * libgnat/g-wispch.adb: Likewise.
8785         * libgnat/g-wispch.ads: Likewise.
8786         * libgnat/g-wistsp.ads: Likewise.
8787         * libgnat/g-zspche.adb: Likewise.
8788         * libgnat/g-zspche.ads: Likewise.
8789         * libgnat/g-zstspl.ads: Likewise.
8790         * libgnat/gnat.ads: Likewise.
8791         * libgnat/i-c.adb: Likewise.
8792         * libgnat/i-cexten.ads: Likewise.
8793         * libgnat/i-cexten__128.ads: Likewise.
8794         * libgnat/i-cobol.adb: Likewise.
8795         * libgnat/i-cobol.ads: Likewise.
8796         * libgnat/i-cpoint.adb: Likewise.
8797         * libgnat/i-cpoint.ads: Likewise.
8798         * libgnat/i-cstrea.adb: Likewise.
8799         * libgnat/i-cstrea.ads: Likewise.
8800         * libgnat/i-cstrin.adb: Likewise.
8801         * libgnat/i-cstrin.ads: Likewise.
8802         * libgnat/i-fortra.adb: Likewise.
8803         * libgnat/i-pacdec.adb: Likewise.
8804         * libgnat/i-pacdec.ads: Likewise.
8805         * libgnat/i-vxwoio.adb: Likewise.
8806         * libgnat/i-vxwoio.ads: Likewise.
8807         * libgnat/i-vxwork.ads: Likewise.
8808         * libgnat/i-vxwork__x86.ads: Likewise.
8809         * libgnat/interfac.ads: Likewise.
8810         * libgnat/interfac__2020.ads: Likewise.
8811         * libgnat/memtrack.adb: Likewise.
8812         * libgnat/s-addima.adb: Likewise.
8813         * libgnat/s-addima.ads: Likewise.
8814         * libgnat/s-addope.adb: Likewise.
8815         * libgnat/s-addope.ads: Likewise.
8816         * libgnat/s-aoinar.adb: Likewise.
8817         * libgnat/s-aoinar.ads: Likewise.
8818         * libgnat/s-aomoar.adb: Likewise.
8819         * libgnat/s-aomoar.ads: Likewise.
8820         * libgnat/s-aotase.adb: Likewise.
8821         * libgnat/s-aotase.ads: Likewise.
8822         * libgnat/s-aridou.adb: Likewise.
8823         * libgnat/s-aridou.ads: Likewise.
8824         * libgnat/s-arit128.adb: Likewise.
8825         * libgnat/s-arit128.ads: Likewise.
8826         * libgnat/s-arit32.adb: Likewise.
8827         * libgnat/s-arit32.ads: Likewise.
8828         * libgnat/s-arit64.adb: Likewise.
8829         * libgnat/s-arit64.ads: Likewise.
8830         * libgnat/s-assert.adb: Likewise.
8831         * libgnat/s-assert.ads: Likewise.
8832         * libgnat/s-atacco.adb: Likewise.
8833         * libgnat/s-atacco.ads: Likewise.
8834         * libgnat/s-atocou.adb: Likewise.
8835         * libgnat/s-atocou.ads: Likewise.
8836         * libgnat/s-atocou__builtin.adb: Likewise.
8837         * libgnat/s-atocou__x86.adb: Likewise.
8838         * libgnat/s-atoope.ads: Likewise.
8839         * libgnat/s-atopex.adb: Likewise.
8840         * libgnat/s-atopex.ads: Likewise.
8841         * libgnat/s-atopri.adb: Likewise.
8842         * libgnat/s-atopri.ads: Likewise.
8843         * libgnat/s-auxdec.adb: Likewise.
8844         * libgnat/s-auxdec.ads: Likewise.
8845         * libgnat/s-bignum.adb: Likewise.
8846         * libgnat/s-bignum.ads: Likewise.
8847         * libgnat/s-bitfie.ads: Likewise.
8848         * libgnat/s-bitops.adb: Likewise.
8849         * libgnat/s-bitops.ads: Likewise.
8850         * libgnat/s-bituti.adb: Likewise.
8851         * libgnat/s-bituti.ads: Likewise.
8852         * libgnat/s-boarop.ads: Likewise.
8853         * libgnat/s-boustr.adb: Likewise.
8854         * libgnat/s-boustr.ads: Likewise.
8855         * libgnat/s-bytswa.ads: Likewise.
8856         * libgnat/s-carsi8.adb: Likewise.
8857         * libgnat/s-carsi8.ads: Likewise.
8858         * libgnat/s-carun8.adb: Likewise.
8859         * libgnat/s-carun8.ads: Likewise.
8860         * libgnat/s-casi128.adb: Likewise.
8861         * libgnat/s-casi128.ads: Likewise.
8862         * libgnat/s-casi16.adb: Likewise.
8863         * libgnat/s-casi16.ads: Likewise.
8864         * libgnat/s-casi32.adb: Likewise.
8865         * libgnat/s-casi32.ads: Likewise.
8866         * libgnat/s-casi64.adb: Likewise.
8867         * libgnat/s-casi64.ads: Likewise.
8868         * libgnat/s-casuti.adb: Likewise.
8869         * libgnat/s-casuti.ads: Likewise.
8870         * libgnat/s-caun128.adb: Likewise.
8871         * libgnat/s-caun128.ads: Likewise.
8872         * libgnat/s-caun16.adb: Likewise.
8873         * libgnat/s-caun16.ads: Likewise.
8874         * libgnat/s-caun32.adb: Likewise.
8875         * libgnat/s-caun32.ads: Likewise.
8876         * libgnat/s-caun64.adb: Likewise.
8877         * libgnat/s-caun64.ads: Likewise.
8878         * libgnat/s-chepoo.ads: Likewise.
8879         * libgnat/s-commun.adb: Likewise.
8880         * libgnat/s-commun.ads: Likewise.
8881         * libgnat/s-conca2.adb: Likewise.
8882         * libgnat/s-conca2.ads: Likewise.
8883         * libgnat/s-conca3.adb: Likewise.
8884         * libgnat/s-conca3.ads: Likewise.
8885         * libgnat/s-conca4.adb: Likewise.
8886         * libgnat/s-conca4.ads: Likewise.
8887         * libgnat/s-conca5.adb: Likewise.
8888         * libgnat/s-conca5.ads: Likewise.
8889         * libgnat/s-conca6.adb: Likewise.
8890         * libgnat/s-conca6.ads: Likewise.
8891         * libgnat/s-conca7.adb: Likewise.
8892         * libgnat/s-conca7.ads: Likewise.
8893         * libgnat/s-conca8.adb: Likewise.
8894         * libgnat/s-conca8.ads: Likewise.
8895         * libgnat/s-conca9.adb: Likewise.
8896         * libgnat/s-conca9.ads: Likewise.
8897         * libgnat/s-crc32.adb: Likewise.
8898         * libgnat/s-crc32.ads: Likewise.
8899         * libgnat/s-crtl.ads: Likewise.
8900         * libgnat/s-dfmkio.ads: Likewise.
8901         * libgnat/s-dfmopr.ads: Likewise.
8902         * libgnat/s-dgmgop.ads: Likewise.
8903         * libgnat/s-diflio.adb: Likewise.
8904         * libgnat/s-diflio.ads: Likewise.
8905         * libgnat/s-diflmk.ads: Likewise.
8906         * libgnat/s-digemk.ads: Likewise.
8907         * libgnat/s-diinio.adb: Likewise.
8908         * libgnat/s-diinio.ads: Likewise.
8909         * libgnat/s-dilomk.ads: Likewise.
8910         * libgnat/s-dim.ads: Likewise.
8911         * libgnat/s-dimkio.ads: Likewise.
8912         * libgnat/s-dimmks.ads: Likewise.
8913         * libgnat/s-direio.adb: Likewise.
8914         * libgnat/s-direio.ads: Likewise.
8915         * libgnat/s-dlmkio.ads: Likewise.
8916         * libgnat/s-dlmopr.ads: Likewise.
8917         * libgnat/s-dmotpr.ads: Likewise.
8918         * libgnat/s-dsaser.ads: Likewise.
8919         * libgnat/s-dwalin.adb: Likewise.
8920         * libgnat/s-dwalin.ads: Likewise.
8921         * libgnat/s-elaall.adb: Likewise.
8922         * libgnat/s-elaall.ads: Likewise.
8923         * libgnat/s-excdeb.adb: Likewise.
8924         * libgnat/s-excdeb.ads: Likewise.
8925         * libgnat/s-except.adb: Likewise.
8926         * libgnat/s-except.ads: Likewise.
8927         * libgnat/s-excmac__arm.adb: Likewise.
8928         * libgnat/s-excmac__arm.ads: Likewise.
8929         * libgnat/s-excmac__gcc.adb: Likewise.
8930         * libgnat/s-excmac__gcc.ads: Likewise.
8931         * libgnat/s-exctab.adb: Likewise.
8932         * libgnat/s-exctab.ads: Likewise.
8933         * libgnat/s-exctra.adb: Likewise.
8934         * libgnat/s-exctra.ads: Likewise.
8935         * libgnat/s-exnint.adb: Likewise.
8936         * libgnat/s-exnint.ads: Likewise.
8937         * libgnat/s-exnllf.adb: Likewise.
8938         * libgnat/s-exnllf.ads: Likewise.
8939         * libgnat/s-exnlli.adb: Likewise.
8940         * libgnat/s-exnlli.ads: Likewise.
8941         * libgnat/s-exnllli.ads: Likewise.
8942         * libgnat/s-expint.adb: Likewise.
8943         * libgnat/s-expint.ads: Likewise.
8944         * libgnat/s-explli.adb: Likewise.
8945         * libgnat/s-explli.ads: Likewise.
8946         * libgnat/s-expllli.ads: Likewise.
8947         * libgnat/s-explllu.ads: Likewise.
8948         * libgnat/s-expllu.adb: Likewise.
8949         * libgnat/s-expllu.ads: Likewise.
8950         * libgnat/s-expmod.adb: Likewise.
8951         * libgnat/s-expmod.ads: Likewise.
8952         * libgnat/s-exponn.adb: Likewise.
8953         * libgnat/s-exponn.ads: Likewise.
8954         * libgnat/s-expont.adb: Likewise.
8955         * libgnat/s-expont.ads: Likewise.
8956         * libgnat/s-exponu.adb: Likewise.
8957         * libgnat/s-exponu.ads: Likewise.
8958         * libgnat/s-expuns.adb: Likewise.
8959         * libgnat/s-expuns.ads: Likewise.
8960         * libgnat/s-fatflt.ads: Likewise.
8961         * libgnat/s-fatgen.adb: Likewise.
8962         * libgnat/s-fatgen.ads: Likewise.
8963         * libgnat/s-fatlfl.ads: Likewise.
8964         * libgnat/s-fatllf.ads: Likewise.
8965         * libgnat/s-ficobl.ads: Likewise.
8966         * libgnat/s-filatt.ads: Likewise.
8967         * libgnat/s-fileio.adb: Likewise.
8968         * libgnat/s-fileio.ads: Likewise.
8969         * libgnat/s-finmas.adb: Likewise.
8970         * libgnat/s-finmas.ads: Likewise.
8971         * libgnat/s-finroo.adb: Likewise.
8972         * libgnat/s-finroo.ads: Likewise.
8973         * libgnat/s-flocon.adb: Likewise.
8974         * libgnat/s-flocon.ads: Likewise.
8975         * libgnat/s-flocon__none.adb: Likewise.
8976         * libgnat/s-fode128.ads: Likewise.
8977         * libgnat/s-fode32.ads: Likewise.
8978         * libgnat/s-fode64.ads: Likewise.
8979         * libgnat/s-fofi128.ads: Likewise.
8980         * libgnat/s-fofi32.ads: Likewise.
8981         * libgnat/s-fofi64.ads: Likewise.
8982         * libgnat/s-fore_d.adb: Likewise.
8983         * libgnat/s-fore_d.ads: Likewise.
8984         * libgnat/s-fore_f.adb: Likewise.
8985         * libgnat/s-fore_f.ads: Likewise.
8986         * libgnat/s-forrea.adb: Likewise.
8987         * libgnat/s-forrea.ads: Likewise.
8988         * libgnat/s-gearop.adb: Likewise.
8989         * libgnat/s-gearop.ads: Likewise.
8990         * libgnat/s-genbig.adb: Likewise.
8991         * libgnat/s-genbig.ads: Likewise.
8992         * libgnat/s-geveop.adb: Likewise.
8993         * libgnat/s-geveop.ads: Likewise.
8994         * libgnat/s-gloloc.adb: Likewise.
8995         * libgnat/s-gloloc.ads: Likewise.
8996         * libgnat/s-gloloc__mingw.adb: Likewise.
8997         * libgnat/s-htable.adb: Likewise.
8998         * libgnat/s-htable.ads: Likewise.
8999         * libgnat/s-imageb.adb: Likewise.
9000         * libgnat/s-imageb.ads: Likewise.
9001         * libgnat/s-imaged.adb: Likewise.
9002         * libgnat/s-imaged.ads: Likewise.
9003         * libgnat/s-imagef.adb: Likewise.
9004         * libgnat/s-imagef.ads: Likewise.
9005         * libgnat/s-imagei.adb: Likewise.
9006         * libgnat/s-imagei.ads: Likewise.
9007         * libgnat/s-imageu.adb: Likewise.
9008         * libgnat/s-imageu.ads: Likewise.
9009         * libgnat/s-imagew.adb: Likewise.
9010         * libgnat/s-imagew.ads: Likewise.
9011         * libgnat/s-imde128.ads: Likewise.
9012         * libgnat/s-imde32.ads: Likewise.
9013         * libgnat/s-imde64.ads: Likewise.
9014         * libgnat/s-imenne.adb: Likewise.
9015         * libgnat/s-imenne.ads: Likewise.
9016         * libgnat/s-imfi128.ads: Likewise.
9017         * libgnat/s-imfi32.ads: Likewise.
9018         * libgnat/s-imfi64.ads: Likewise.
9019         * libgnat/s-imgbiu.adb: Likewise.
9020         * libgnat/s-imgbiu.ads: Likewise.
9021         * libgnat/s-imgboo.adb: Likewise.
9022         * libgnat/s-imgboo.ads: Likewise.
9023         * libgnat/s-imgcha.adb: Likewise.
9024         * libgnat/s-imgcha.ads: Likewise.
9025         * libgnat/s-imgenu.adb: Likewise.
9026         * libgnat/s-imgenu.ads: Likewise.
9027         * libgnat/s-imgint.adb: Likewise.
9028         * libgnat/s-imgint.ads: Likewise.
9029         * libgnat/s-imgllb.adb: Likewise.
9030         * libgnat/s-imgllb.ads: Likewise.
9031         * libgnat/s-imglli.adb: Likewise.
9032         * libgnat/s-imglli.ads: Likewise.
9033         * libgnat/s-imglllb.ads: Likewise.
9034         * libgnat/s-imgllli.ads: Likewise.
9035         * libgnat/s-imglllu.ads: Likewise.
9036         * libgnat/s-imglllw.ads: Likewise.
9037         * libgnat/s-imgllu.adb: Likewise.
9038         * libgnat/s-imgllu.ads: Likewise.
9039         * libgnat/s-imgllw.adb: Likewise.
9040         * libgnat/s-imgllw.ads: Likewise.
9041         * libgnat/s-imgrea.adb: Likewise.
9042         * libgnat/s-imgrea.ads: Likewise.
9043         * libgnat/s-imguns.adb: Likewise.
9044         * libgnat/s-imguns.ads: Likewise.
9045         * libgnat/s-imguti.adb: Likewise.
9046         * libgnat/s-imguti.ads: Likewise.
9047         * libgnat/s-imgwch.adb: Likewise.
9048         * libgnat/s-imgwch.ads: Likewise.
9049         * libgnat/s-imgwiu.adb: Likewise.
9050         * libgnat/s-imgwiu.ads: Likewise.
9051         * libgnat/s-io.adb: Likewise.
9052         * libgnat/s-io.ads: Likewise.
9053         * libgnat/s-llflex.ads: Likewise.
9054         * libgnat/s-maccod.ads: Likewise.
9055         * libgnat/s-mantis.adb: Likewise.
9056         * libgnat/s-mantis.ads: Likewise.
9057         * libgnat/s-mastop.adb: Likewise.
9058         * libgnat/s-mastop.ads: Likewise.
9059         * libgnat/s-memcop.ads: Likewise.
9060         * libgnat/s-memory.adb: Likewise.
9061         * libgnat/s-memory.ads: Likewise.
9062         * libgnat/s-mmap.adb: Likewise.
9063         * libgnat/s-mmap.ads: Likewise.
9064         * libgnat/s-mmauni__long.ads: Likewise.
9065         * libgnat/s-mmosin__mingw.adb: Likewise.
9066         * libgnat/s-mmosin__mingw.ads: Likewise.
9067         * libgnat/s-mmosin__unix.adb: Likewise.
9068         * libgnat/s-mmosin__unix.ads: Likewise.
9069         * libgnat/s-multip.adb: Likewise.
9070         * libgnat/s-objrea.adb: Likewise.
9071         * libgnat/s-objrea.ads: Likewise.
9072         * libgnat/s-optide.adb: Likewise.
9073         * libgnat/s-os_lib.adb: Likewise.
9074         * libgnat/s-os_lib.ads: Likewise.
9075         * libgnat/s-osprim.ads: Likewise.
9076         * libgnat/s-osprim__darwin.adb: Likewise.
9077         * libgnat/s-osprim__lynxos.ads: Likewise.
9078         * libgnat/s-osprim__mingw.adb: Likewise.
9079         * libgnat/s-osprim__posix.adb: Likewise.
9080         * libgnat/s-osprim__posix2008.adb: Likewise.
9081         * libgnat/s-osprim__rtems.adb: Likewise.
9082         * libgnat/s-osprim__solaris.adb: Likewise.
9083         * libgnat/s-osprim__unix.adb: Likewise.
9084         * libgnat/s-osprim__vxworks.adb: Likewise.
9085         * libgnat/s-osprim__x32.adb: Likewise.
9086         * libgnat/s-osvers__vxworks-653.ads: Likewise.
9087         * libgnat/s-pack03.adb: Likewise.
9088         * libgnat/s-pack03.ads: Likewise.
9089         * libgnat/s-pack05.adb: Likewise.
9090         * libgnat/s-pack05.ads: Likewise.
9091         * libgnat/s-pack06.adb: Likewise.
9092         * libgnat/s-pack06.ads: Likewise.
9093         * libgnat/s-pack07.adb: Likewise.
9094         * libgnat/s-pack07.ads: Likewise.
9095         * libgnat/s-pack09.adb: Likewise.
9096         * libgnat/s-pack09.ads: Likewise.
9097         * libgnat/s-pack10.adb: Likewise.
9098         * libgnat/s-pack10.ads: Likewise.
9099         * libgnat/s-pack100.adb: Likewise.
9100         * libgnat/s-pack100.ads: Likewise.
9101         * libgnat/s-pack101.adb: Likewise.
9102         * libgnat/s-pack101.ads: Likewise.
9103         * libgnat/s-pack102.adb: Likewise.
9104         * libgnat/s-pack102.ads: Likewise.
9105         * libgnat/s-pack103.adb: Likewise.
9106         * libgnat/s-pack103.ads: Likewise.
9107         * libgnat/s-pack104.adb: Likewise.
9108         * libgnat/s-pack104.ads: Likewise.
9109         * libgnat/s-pack105.adb: Likewise.
9110         * libgnat/s-pack105.ads: Likewise.
9111         * libgnat/s-pack106.adb: Likewise.
9112         * libgnat/s-pack106.ads: Likewise.
9113         * libgnat/s-pack107.adb: Likewise.
9114         * libgnat/s-pack107.ads: Likewise.
9115         * libgnat/s-pack108.adb: Likewise.
9116         * libgnat/s-pack108.ads: Likewise.
9117         * libgnat/s-pack109.adb: Likewise.
9118         * libgnat/s-pack109.ads: Likewise.
9119         * libgnat/s-pack11.adb: Likewise.
9120         * libgnat/s-pack11.ads: Likewise.
9121         * libgnat/s-pack110.adb: Likewise.
9122         * libgnat/s-pack110.ads: Likewise.
9123         * libgnat/s-pack111.adb: Likewise.
9124         * libgnat/s-pack111.ads: Likewise.
9125         * libgnat/s-pack112.adb: Likewise.
9126         * libgnat/s-pack112.ads: Likewise.
9127         * libgnat/s-pack113.adb: Likewise.
9128         * libgnat/s-pack113.ads: Likewise.
9129         * libgnat/s-pack114.adb: Likewise.
9130         * libgnat/s-pack114.ads: Likewise.
9131         * libgnat/s-pack115.adb: Likewise.
9132         * libgnat/s-pack115.ads: Likewise.
9133         * libgnat/s-pack116.adb: Likewise.
9134         * libgnat/s-pack116.ads: Likewise.
9135         * libgnat/s-pack117.adb: Likewise.
9136         * libgnat/s-pack117.ads: Likewise.
9137         * libgnat/s-pack118.adb: Likewise.
9138         * libgnat/s-pack118.ads: Likewise.
9139         * libgnat/s-pack119.adb: Likewise.
9140         * libgnat/s-pack119.ads: Likewise.
9141         * libgnat/s-pack12.adb: Likewise.
9142         * libgnat/s-pack12.ads: Likewise.
9143         * libgnat/s-pack120.adb: Likewise.
9144         * libgnat/s-pack120.ads: Likewise.
9145         * libgnat/s-pack121.adb: Likewise.
9146         * libgnat/s-pack121.ads: Likewise.
9147         * libgnat/s-pack122.adb: Likewise.
9148         * libgnat/s-pack122.ads: Likewise.
9149         * libgnat/s-pack123.adb: Likewise.
9150         * libgnat/s-pack123.ads: Likewise.
9151         * libgnat/s-pack124.adb: Likewise.
9152         * libgnat/s-pack124.ads: Likewise.
9153         * libgnat/s-pack125.adb: Likewise.
9154         * libgnat/s-pack125.ads: Likewise.
9155         * libgnat/s-pack126.adb: Likewise.
9156         * libgnat/s-pack126.ads: Likewise.
9157         * libgnat/s-pack127.adb: Likewise.
9158         * libgnat/s-pack127.ads: Likewise.
9159         * libgnat/s-pack13.adb: Likewise.
9160         * libgnat/s-pack13.ads: Likewise.
9161         * libgnat/s-pack14.adb: Likewise.
9162         * libgnat/s-pack14.ads: Likewise.
9163         * libgnat/s-pack15.adb: Likewise.
9164         * libgnat/s-pack15.ads: Likewise.
9165         * libgnat/s-pack17.adb: Likewise.
9166         * libgnat/s-pack17.ads: Likewise.
9167         * libgnat/s-pack18.adb: Likewise.
9168         * libgnat/s-pack18.ads: Likewise.
9169         * libgnat/s-pack19.adb: Likewise.
9170         * libgnat/s-pack19.ads: Likewise.
9171         * libgnat/s-pack20.adb: Likewise.
9172         * libgnat/s-pack20.ads: Likewise.
9173         * libgnat/s-pack21.adb: Likewise.
9174         * libgnat/s-pack21.ads: Likewise.
9175         * libgnat/s-pack22.adb: Likewise.
9176         * libgnat/s-pack22.ads: Likewise.
9177         * libgnat/s-pack23.adb: Likewise.
9178         * libgnat/s-pack23.ads: Likewise.
9179         * libgnat/s-pack24.adb: Likewise.
9180         * libgnat/s-pack24.ads: Likewise.
9181         * libgnat/s-pack25.adb: Likewise.
9182         * libgnat/s-pack25.ads: Likewise.
9183         * libgnat/s-pack26.adb: Likewise.
9184         * libgnat/s-pack26.ads: Likewise.
9185         * libgnat/s-pack27.adb: Likewise.
9186         * libgnat/s-pack27.ads: Likewise.
9187         * libgnat/s-pack28.adb: Likewise.
9188         * libgnat/s-pack28.ads: Likewise.
9189         * libgnat/s-pack29.adb: Likewise.
9190         * libgnat/s-pack29.ads: Likewise.
9191         * libgnat/s-pack30.adb: Likewise.
9192         * libgnat/s-pack30.ads: Likewise.
9193         * libgnat/s-pack31.adb: Likewise.
9194         * libgnat/s-pack31.ads: Likewise.
9195         * libgnat/s-pack33.adb: Likewise.
9196         * libgnat/s-pack33.ads: Likewise.
9197         * libgnat/s-pack34.adb: Likewise.
9198         * libgnat/s-pack34.ads: Likewise.
9199         * libgnat/s-pack35.adb: Likewise.
9200         * libgnat/s-pack35.ads: Likewise.
9201         * libgnat/s-pack36.adb: Likewise.
9202         * libgnat/s-pack36.ads: Likewise.
9203         * libgnat/s-pack37.adb: Likewise.
9204         * libgnat/s-pack37.ads: Likewise.
9205         * libgnat/s-pack38.adb: Likewise.
9206         * libgnat/s-pack38.ads: Likewise.
9207         * libgnat/s-pack39.adb: Likewise.
9208         * libgnat/s-pack39.ads: Likewise.
9209         * libgnat/s-pack40.adb: Likewise.
9210         * libgnat/s-pack40.ads: Likewise.
9211         * libgnat/s-pack41.adb: Likewise.
9212         * libgnat/s-pack41.ads: Likewise.
9213         * libgnat/s-pack42.adb: Likewise.
9214         * libgnat/s-pack42.ads: Likewise.
9215         * libgnat/s-pack43.adb: Likewise.
9216         * libgnat/s-pack43.ads: Likewise.
9217         * libgnat/s-pack44.adb: Likewise.
9218         * libgnat/s-pack44.ads: Likewise.
9219         * libgnat/s-pack45.adb: Likewise.
9220         * libgnat/s-pack45.ads: Likewise.
9221         * libgnat/s-pack46.adb: Likewise.
9222         * libgnat/s-pack46.ads: Likewise.
9223         * libgnat/s-pack47.adb: Likewise.
9224         * libgnat/s-pack47.ads: Likewise.
9225         * libgnat/s-pack48.adb: Likewise.
9226         * libgnat/s-pack48.ads: Likewise.
9227         * libgnat/s-pack49.adb: Likewise.
9228         * libgnat/s-pack49.ads: Likewise.
9229         * libgnat/s-pack50.adb: Likewise.
9230         * libgnat/s-pack50.ads: Likewise.
9231         * libgnat/s-pack51.adb: Likewise.
9232         * libgnat/s-pack51.ads: Likewise.
9233         * libgnat/s-pack52.adb: Likewise.
9234         * libgnat/s-pack52.ads: Likewise.
9235         * libgnat/s-pack53.adb: Likewise.
9236         * libgnat/s-pack53.ads: Likewise.
9237         * libgnat/s-pack54.adb: Likewise.
9238         * libgnat/s-pack54.ads: Likewise.
9239         * libgnat/s-pack55.adb: Likewise.
9240         * libgnat/s-pack55.ads: Likewise.
9241         * libgnat/s-pack56.adb: Likewise.
9242         * libgnat/s-pack56.ads: Likewise.
9243         * libgnat/s-pack57.adb: Likewise.
9244         * libgnat/s-pack57.ads: Likewise.
9245         * libgnat/s-pack58.adb: Likewise.
9246         * libgnat/s-pack58.ads: Likewise.
9247         * libgnat/s-pack59.adb: Likewise.
9248         * libgnat/s-pack59.ads: Likewise.
9249         * libgnat/s-pack60.adb: Likewise.
9250         * libgnat/s-pack60.ads: Likewise.
9251         * libgnat/s-pack61.adb: Likewise.
9252         * libgnat/s-pack61.ads: Likewise.
9253         * libgnat/s-pack62.adb: Likewise.
9254         * libgnat/s-pack62.ads: Likewise.
9255         * libgnat/s-pack63.adb: Likewise.
9256         * libgnat/s-pack63.ads: Likewise.
9257         * libgnat/s-pack65.adb: Likewise.
9258         * libgnat/s-pack65.ads: Likewise.
9259         * libgnat/s-pack66.adb: Likewise.
9260         * libgnat/s-pack66.ads: Likewise.
9261         * libgnat/s-pack67.adb: Likewise.
9262         * libgnat/s-pack67.ads: Likewise.
9263         * libgnat/s-pack68.adb: Likewise.
9264         * libgnat/s-pack68.ads: Likewise.
9265         * libgnat/s-pack69.adb: Likewise.
9266         * libgnat/s-pack69.ads: Likewise.
9267         * libgnat/s-pack70.adb: Likewise.
9268         * libgnat/s-pack70.ads: Likewise.
9269         * libgnat/s-pack71.adb: Likewise.
9270         * libgnat/s-pack71.ads: Likewise.
9271         * libgnat/s-pack72.adb: Likewise.
9272         * libgnat/s-pack72.ads: Likewise.
9273         * libgnat/s-pack73.adb: Likewise.
9274         * libgnat/s-pack73.ads: Likewise.
9275         * libgnat/s-pack74.adb: Likewise.
9276         * libgnat/s-pack74.ads: Likewise.
9277         * libgnat/s-pack75.adb: Likewise.
9278         * libgnat/s-pack75.ads: Likewise.
9279         * libgnat/s-pack76.adb: Likewise.
9280         * libgnat/s-pack76.ads: Likewise.
9281         * libgnat/s-pack77.adb: Likewise.
9282         * libgnat/s-pack77.ads: Likewise.
9283         * libgnat/s-pack78.adb: Likewise.
9284         * libgnat/s-pack78.ads: Likewise.
9285         * libgnat/s-pack79.adb: Likewise.
9286         * libgnat/s-pack79.ads: Likewise.
9287         * libgnat/s-pack80.adb: Likewise.
9288         * libgnat/s-pack80.ads: Likewise.
9289         * libgnat/s-pack81.adb: Likewise.
9290         * libgnat/s-pack81.ads: Likewise.
9291         * libgnat/s-pack82.adb: Likewise.
9292         * libgnat/s-pack82.ads: Likewise.
9293         * libgnat/s-pack83.adb: Likewise.
9294         * libgnat/s-pack83.ads: Likewise.
9295         * libgnat/s-pack84.adb: Likewise.
9296         * libgnat/s-pack84.ads: Likewise.
9297         * libgnat/s-pack85.adb: Likewise.
9298         * libgnat/s-pack85.ads: Likewise.
9299         * libgnat/s-pack86.adb: Likewise.
9300         * libgnat/s-pack86.ads: Likewise.
9301         * libgnat/s-pack87.adb: Likewise.
9302         * libgnat/s-pack87.ads: Likewise.
9303         * libgnat/s-pack88.adb: Likewise.
9304         * libgnat/s-pack88.ads: Likewise.
9305         * libgnat/s-pack89.adb: Likewise.
9306         * libgnat/s-pack89.ads: Likewise.
9307         * libgnat/s-pack90.adb: Likewise.
9308         * libgnat/s-pack90.ads: Likewise.
9309         * libgnat/s-pack91.adb: Likewise.
9310         * libgnat/s-pack91.ads: Likewise.
9311         * libgnat/s-pack92.adb: Likewise.
9312         * libgnat/s-pack92.ads: Likewise.
9313         * libgnat/s-pack93.adb: Likewise.
9314         * libgnat/s-pack93.ads: Likewise.
9315         * libgnat/s-pack94.adb: Likewise.
9316         * libgnat/s-pack94.ads: Likewise.
9317         * libgnat/s-pack95.adb: Likewise.
9318         * libgnat/s-pack95.ads: Likewise.
9319         * libgnat/s-pack96.adb: Likewise.
9320         * libgnat/s-pack96.ads: Likewise.
9321         * libgnat/s-pack97.adb: Likewise.
9322         * libgnat/s-pack97.ads: Likewise.
9323         * libgnat/s-pack98.adb: Likewise.
9324         * libgnat/s-pack98.ads: Likewise.
9325         * libgnat/s-pack99.adb: Likewise.
9326         * libgnat/s-pack99.ads: Likewise.
9327         * libgnat/s-parame.adb: Likewise.
9328         * libgnat/s-parame.ads: Likewise.
9329         * libgnat/s-parame__ae653.ads: Likewise.
9330         * libgnat/s-parame__hpux.ads: Likewise.
9331         * libgnat/s-parame__rtems.adb: Likewise.
9332         * libgnat/s-parame__vxworks.adb: Likewise.
9333         * libgnat/s-parame__vxworks.ads: Likewise.
9334         * libgnat/s-parint.adb: Likewise.
9335         * libgnat/s-parint.ads: Likewise.
9336         * libgnat/s-pooglo.adb: Likewise.
9337         * libgnat/s-pooglo.ads: Likewise.
9338         * libgnat/s-pooloc.adb: Likewise.
9339         * libgnat/s-pooloc.ads: Likewise.
9340         * libgnat/s-poosiz.adb: Likewise.
9341         * libgnat/s-poosiz.ads: Likewise.
9342         * libgnat/s-powflt.ads: Likewise.
9343         * libgnat/s-powlfl.ads: Likewise.
9344         * libgnat/s-powllf.ads: Likewise.
9345         * libgnat/s-purexc.ads: Likewise.
9346         * libgnat/s-putaim.adb: Likewise.
9347         * libgnat/s-putaim.ads: Likewise.
9348         * libgnat/s-putima.adb: Likewise.
9349         * libgnat/s-putima.ads: Likewise.
9350         * libgnat/s-rannum.adb: Likewise.
9351         * libgnat/s-rannum.ads: Likewise.
9352         * libgnat/s-ransee.adb: Likewise.
9353         * libgnat/s-ransee.ads: Likewise.
9354         * libgnat/s-regexp.adb: Likewise.
9355         * libgnat/s-regexp.ads: Likewise.
9356         * libgnat/s-regpat.adb: Likewise.
9357         * libgnat/s-regpat.ads: Likewise.
9358         * libgnat/s-resfil.adb: Likewise.
9359         * libgnat/s-resfil.ads: Likewise.
9360         * libgnat/s-restri.adb: Likewise.
9361         * libgnat/s-restri.ads: Likewise.
9362         * libgnat/s-rident.ads: Likewise.
9363         * libgnat/s-rpc.adb: Likewise.
9364         * libgnat/s-rpc.ads: Likewise.
9365         * libgnat/s-scaval.adb: Likewise.
9366         * libgnat/s-scaval.ads: Likewise.
9367         * libgnat/s-scaval__128.adb: Likewise.
9368         * libgnat/s-scaval__128.ads: Likewise.
9369         * libgnat/s-secsta.adb: Likewise.
9370         * libgnat/s-secsta.ads: Likewise.
9371         * libgnat/s-sequio.adb: Likewise.
9372         * libgnat/s-sequio.ads: Likewise.
9373         * libgnat/s-shabig.ads: Likewise.
9374         * libgnat/s-shasto.adb: Likewise.
9375         * libgnat/s-shasto.ads: Likewise.
9376         * libgnat/s-soflin.adb: Likewise.
9377         * libgnat/s-soflin.ads: Likewise.
9378         * libgnat/s-soliin.adb: Likewise.
9379         * libgnat/s-soliin.ads: Likewise.
9380         * libgnat/s-sopco3.adb: Likewise.
9381         * libgnat/s-sopco3.ads: Likewise.
9382         * libgnat/s-sopco4.adb: Likewise.
9383         * libgnat/s-sopco4.ads: Likewise.
9384         * libgnat/s-sopco5.adb: Likewise.
9385         * libgnat/s-sopco5.ads: Likewise.
9386         * libgnat/s-spsufi.adb: Likewise.
9387         * libgnat/s-spsufi.ads: Likewise.
9388         * libgnat/s-stache.adb: Likewise.
9389         * libgnat/s-stache.ads: Likewise.
9390         * libgnat/s-stalib.adb: Likewise.
9391         * libgnat/s-stalib.ads: Likewise.
9392         * libgnat/s-statxd.adb: Likewise.
9393         * libgnat/s-statxd.ads: Likewise.
9394         * libgnat/s-stausa.adb: Likewise.
9395         * libgnat/s-stausa.ads: Likewise.
9396         * libgnat/s-stchop.adb: Likewise.
9397         * libgnat/s-stchop.ads: Likewise.
9398         * libgnat/s-stchop__limit.ads: Likewise.
9399         * libgnat/s-stchop__rtems.adb: Likewise.
9400         * libgnat/s-stchop__vxworks.adb: Likewise.
9401         * libgnat/s-stoele.adb: Likewise.
9402         * libgnat/s-stoele.ads: Likewise.
9403         * libgnat/s-stopoo.adb: Likewise.
9404         * libgnat/s-stopoo.ads: Likewise.
9405         * libgnat/s-stposu.adb: Likewise.
9406         * libgnat/s-stposu.ads: Likewise.
9407         * libgnat/s-stratt.adb: Likewise.
9408         * libgnat/s-stratt.ads: Likewise.
9409         * libgnat/s-strcom.adb: Likewise.
9410         * libgnat/s-strcom.ads: Likewise.
9411         * libgnat/s-strhas.adb: Likewise.
9412         * libgnat/s-strhas.ads: Likewise.
9413         * libgnat/s-string.adb: Likewise.
9414         * libgnat/s-string.ads: Likewise.
9415         * libgnat/s-strops.adb: Likewise.
9416         * libgnat/s-strops.ads: Likewise.
9417         * libgnat/s-ststop.adb: Likewise.
9418         * libgnat/s-ststop.ads: Likewise.
9419         * libgnat/s-tasloc.adb: Likewise.
9420         * libgnat/s-tasloc.ads: Likewise.
9421         * libgnat/s-thread.ads: Likewise.
9422         * libgnat/s-thread__ae653.adb: Likewise.
9423         * libgnat/s-traceb.adb: Likewise.
9424         * libgnat/s-traceb.ads: Likewise.
9425         * libgnat/s-traceb__hpux.adb: Likewise.
9426         * libgnat/s-traceb__mastop.adb: Likewise.
9427         * libgnat/s-traent.adb: Likewise.
9428         * libgnat/s-traent.ads: Likewise.
9429         * libgnat/s-trasym.adb: Likewise.
9430         * libgnat/s-trasym.ads: Likewise.
9431         * libgnat/s-trasym__dwarf.adb: Likewise.
9432         * libgnat/s-tsmona.adb: Likewise.
9433         * libgnat/s-tsmona__linux.adb: Likewise.
9434         * libgnat/s-tsmona__mingw.adb: Likewise.
9435         * libgnat/s-unstyp.ads: Likewise.
9436         * libgnat/s-utf_32.adb: Likewise.
9437         * libgnat/s-utf_32.ads: Likewise.
9438         * libgnat/s-vade128.ads: Likewise.
9439         * libgnat/s-vade32.ads: Likewise.
9440         * libgnat/s-vade64.ads: Likewise.
9441         * libgnat/s-vafi128.ads: Likewise.
9442         * libgnat/s-vafi32.ads: Likewise.
9443         * libgnat/s-vafi64.ads: Likewise.
9444         * libgnat/s-valboo.adb: Likewise.
9445         * libgnat/s-valboo.ads: Likewise.
9446         * libgnat/s-valcha.adb: Likewise.
9447         * libgnat/s-valcha.ads: Likewise.
9448         * libgnat/s-valenu.adb: Likewise.
9449         * libgnat/s-valenu.ads: Likewise.
9450         * libgnat/s-valflt.ads: Likewise.
9451         * libgnat/s-valint.adb: Likewise.
9452         * libgnat/s-valint.ads: Likewise.
9453         * libgnat/s-vallfl.ads: Likewise.
9454         * libgnat/s-valllf.ads: Likewise.
9455         * libgnat/s-vallli.adb: Likewise.
9456         * libgnat/s-vallli.ads: Likewise.
9457         * libgnat/s-valllli.ads: Likewise.
9458         * libgnat/s-vallllu.ads: Likewise.
9459         * libgnat/s-valllu.adb: Likewise.
9460         * libgnat/s-valllu.ads: Likewise.
9461         * libgnat/s-valrea.adb: Likewise.
9462         * libgnat/s-valrea.ads: Likewise.
9463         * libgnat/s-valued.adb: Likewise.
9464         * libgnat/s-valued.ads: Likewise.
9465         * libgnat/s-valuef.adb: Likewise.
9466         * libgnat/s-valuef.ads: Likewise.
9467         * libgnat/s-valuei.adb: Likewise.
9468         * libgnat/s-valuei.ads: Likewise.
9469         * libgnat/s-valuer.adb: Likewise.
9470         * libgnat/s-valuer.ads: Likewise.
9471         * libgnat/s-valueu.adb: Likewise.
9472         * libgnat/s-valueu.ads: Likewise.
9473         * libgnat/s-valuns.adb: Likewise.
9474         * libgnat/s-valuns.ads: Likewise.
9475         * libgnat/s-valuti.adb: Likewise.
9476         * libgnat/s-valuti.ads: Likewise.
9477         * libgnat/s-valwch.adb: Likewise.
9478         * libgnat/s-valwch.ads: Likewise.
9479         * libgnat/s-veboop.adb: Likewise.
9480         * libgnat/s-veboop.ads: Likewise.
9481         * libgnat/s-vector.ads: Likewise.
9482         * libgnat/s-vercon.adb: Likewise.
9483         * libgnat/s-vercon.ads: Likewise.
9484         * libgnat/s-wchcnv.adb: Likewise.
9485         * libgnat/s-wchcnv.ads: Likewise.
9486         * libgnat/s-wchcon.adb: Likewise.
9487         * libgnat/s-wchcon.ads: Likewise.
9488         * libgnat/s-wchjis.adb: Likewise.
9489         * libgnat/s-wchjis.ads: Likewise.
9490         * libgnat/s-wchstw.adb: Likewise.
9491         * libgnat/s-wchstw.ads: Likewise.
9492         * libgnat/s-wchwts.adb: Likewise.
9493         * libgnat/s-wchwts.ads: Likewise.
9494         * libgnat/s-widboo.adb: Likewise.
9495         * libgnat/s-widboo.ads: Likewise.
9496         * libgnat/s-widcha.adb: Likewise.
9497         * libgnat/s-widcha.ads: Likewise.
9498         * libgnat/s-widenu.adb: Likewise.
9499         * libgnat/s-widenu.ads: Likewise.
9500         * libgnat/s-widint.ads: Likewise.
9501         * libgnat/s-widlli.adb: Likewise.
9502         * libgnat/s-widlli.ads: Likewise.
9503         * libgnat/s-widllli.ads: Likewise.
9504         * libgnat/s-widlllu.ads: Likewise.
9505         * libgnat/s-widllu.adb: Likewise.
9506         * libgnat/s-widllu.ads: Likewise.
9507         * libgnat/s-widthi.adb: Likewise.
9508         * libgnat/s-widthi.ads: Likewise.
9509         * libgnat/s-widthu.adb: Likewise.
9510         * libgnat/s-widthu.ads: Likewise.
9511         * libgnat/s-widuns.ads: Likewise.
9512         * libgnat/s-widwch.adb: Likewise.
9513         * libgnat/s-widwch.ads: Likewise.
9514         * libgnat/s-win32.ads: Likewise.
9515         * libgnat/s-winext.ads: Likewise.
9516         * libgnat/s-wwdcha.adb: Likewise.
9517         * libgnat/s-wwdcha.ads: Likewise.
9518         * libgnat/s-wwdenu.adb: Likewise.
9519         * libgnat/s-wwdenu.ads: Likewise.
9520         * libgnat/s-wwdwch.adb: Likewise.
9521         * libgnat/s-wwdwch.ads: Likewise.
9522         * libgnat/system-aix.ads: Likewise.
9523         * libgnat/system-darwin-arm.ads: Likewise.
9524         * libgnat/system-darwin-ppc.ads: Likewise.
9525         * libgnat/system-darwin-x86.ads: Likewise.
9526         * libgnat/system-djgpp.ads: Likewise.
9527         * libgnat/system-dragonfly-x86_64.ads: Likewise.
9528         * libgnat/system-freebsd.ads: Likewise.
9529         * libgnat/system-hpux-ia64.ads: Likewise.
9530         * libgnat/system-hpux.ads: Likewise.
9531         * libgnat/system-linux-alpha.ads: Likewise.
9532         * libgnat/system-linux-arm.ads: Likewise.
9533         * libgnat/system-linux-hppa.ads: Likewise.
9534         * libgnat/system-linux-ia64.ads: Likewise.
9535         * libgnat/system-linux-m68k.ads: Likewise.
9536         * libgnat/system-linux-mips.ads: Likewise.
9537         * libgnat/system-linux-ppc.ads: Likewise.
9538         * libgnat/system-linux-riscv.ads: Likewise.
9539         * libgnat/system-linux-s390.ads: Likewise.
9540         * libgnat/system-linux-sh4.ads: Likewise.
9541         * libgnat/system-linux-sparc.ads: Likewise.
9542         * libgnat/system-linux-x86.ads: Likewise.
9543         * libgnat/system-lynxos178-ppc.ads: Likewise.
9544         * libgnat/system-lynxos178-x86.ads: Likewise.
9545         * libgnat/system-mingw.ads: Likewise.
9546         * libgnat/system-qnx-aarch64.ads: Likewise.
9547         * libgnat/system-rtems.ads: Likewise.
9548         * libgnat/system-solaris-sparc.ads: Likewise.
9549         * libgnat/system-solaris-x86.ads: Likewise.
9550         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
9551         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
9552         * libgnat/system-vxworks-arm.ads: Likewise.
9553         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
9554         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
9555         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
9556         * libgnat/system-vxworks-e500-vthread.ads: Likewise.
9557         * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
9558         * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
9559         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
9560         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
9561         * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
9562         * libgnat/system-vxworks-ppc.ads: Likewise.
9563         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
9564         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
9565         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
9566         * libgnat/system-vxworks-x86-vthread.ads: Likewise.
9567         * libgnat/system-vxworks-x86.ads: Likewise.
9568         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
9569         * libgnat/system-vxworks7-aarch64.ads: Likewise.
9570         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
9571         * libgnat/system-vxworks7-arm.ads: Likewise.
9572         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
9573         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
9574         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
9575         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
9576         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
9577         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
9578         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
9579         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
9580         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
9581         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
9582         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
9583         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
9584         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
9585         * link.c: Likewise.
9586         * live.adb: Likewise.
9587         * live.ads: Likewise.
9588         * locales.c: Likewise.
9589         * make.adb: Likewise.
9590         * make.ads: Likewise.
9591         * make_util.adb: Likewise.
9592         * make_util.ads: Likewise.
9593         * makeusg.adb: Likewise.
9594         * makeusg.ads: Likewise.
9595         * mdll-fil.adb: Likewise.
9596         * mdll-fil.ads: Likewise.
9597         * mdll-utl.adb: Likewise.
9598         * mdll-utl.ads: Likewise.
9599         * mdll.adb: Likewise.
9600         * mdll.ads: Likewise.
9601         * mingw32.h: Likewise.
9602         * mkdir.c: Likewise.
9603         * namet-sp.adb: Likewise.
9604         * namet-sp.ads: Likewise.
9605         * namet.adb: Likewise.
9606         * namet.ads: Likewise.
9607         * namet.h: Likewise.
9608         * nlists.adb: Likewise.
9609         * nlists.ads: Likewise.
9610         * nlists.h: Likewise.
9611         * opt.adb: Likewise.
9612         * opt.ads: Likewise.
9613         * osint-b.adb: Likewise.
9614         * osint-b.ads: Likewise.
9615         * osint-c.adb: Likewise.
9616         * osint-c.ads: Likewise.
9617         * osint-l.adb: Likewise.
9618         * osint-l.ads: Likewise.
9619         * osint-m.adb: Likewise.
9620         * osint-m.ads: Likewise.
9621         * osint.adb: Likewise.
9622         * osint.ads: Likewise.
9623         * output.adb: Likewise.
9624         * output.ads: Likewise.
9625         * par-ch10.adb: Likewise.
9626         * par-ch11.adb: Likewise.
9627         * par-ch12.adb: Likewise.
9628         * par-ch13.adb: Likewise.
9629         * par-ch2.adb: Likewise.
9630         * par-ch3.adb: Likewise.
9631         * par-ch4.adb: Likewise.
9632         * par-ch5.adb: Likewise.
9633         * par-ch6.adb: Likewise.
9634         * par-ch7.adb: Likewise.
9635         * par-ch8.adb: Likewise.
9636         * par-ch9.adb: Likewise.
9637         * par-endh.adb: Likewise.
9638         * par-labl.adb: Likewise.
9639         * par-load.adb: Likewise.
9640         * par-prag.adb: Likewise.
9641         * par-sync.adb: Likewise.
9642         * par-tchk.adb: Likewise.
9643         * par-util.adb: Likewise.
9644         * par.adb: Likewise.
9645         * par.ads: Likewise.
9646         * par_sco.adb: Likewise.
9647         * par_sco.ads: Likewise.
9648         * pprint.adb: Likewise.
9649         * pprint.ads: Likewise.
9650         * prep.adb: Likewise.
9651         * prep.ads: Likewise.
9652         * prepcomp.adb: Likewise.
9653         * prepcomp.ads: Likewise.
9654         * put_scos.adb: Likewise.
9655         * put_scos.ads: Likewise.
9656         * raise-gcc.c: Likewise.
9657         * raise.c: Likewise.
9658         * raise.h: Likewise.
9659         * repinfo-input.adb: Likewise.
9660         * repinfo-input.ads: Likewise.
9661         * repinfo.adb: Likewise.
9662         * repinfo.ads: Likewise.
9663         * repinfo.h: Likewise.
9664         * restrict.adb: Likewise.
9665         * restrict.ads: Likewise.
9666         * rident.ads: Likewise.
9667         * rtfinal.c: Likewise.
9668         * rtinit.c: Likewise.
9669         * rtsfind.adb: Likewise.
9670         * rtsfind.ads: Likewise.
9671         * runtime.h: Likewise.
9672         * s-oscons-tmplt.c: Likewise.
9673         * sa_messages.adb: Likewise.
9674         * sa_messages.ads: Likewise.
9675         * scans.adb: Likewise.
9676         * scans.ads: Likewise.
9677         * scil_ll.adb: Likewise.
9678         * scil_ll.ads: Likewise.
9679         * scn.adb: Likewise.
9680         * scn.ads: Likewise.
9681         * scng.adb: Likewise.
9682         * scng.ads: Likewise.
9683         * scos.adb: Likewise.
9684         * scos.ads: Likewise.
9685         * scos.h: Likewise.
9686         * sdefault.ads: Likewise.
9687         * seh_init.c: Likewise.
9688         * sem.adb: Likewise.
9689         * sem.ads: Likewise.
9690         * sem_aggr.adb: Likewise.
9691         * sem_aggr.ads: Likewise.
9692         * sem_attr.adb: Likewise.
9693         * sem_attr.ads: Likewise.
9694         * sem_aux.adb: Likewise.
9695         * sem_aux.ads: Likewise.
9696         * sem_case.adb: Likewise.
9697         * sem_case.ads: Likewise.
9698         * sem_cat.adb: Likewise.
9699         * sem_cat.ads: Likewise.
9700         * sem_ch10.adb: Likewise.
9701         * sem_ch10.ads: Likewise.
9702         * sem_ch11.adb: Likewise.
9703         * sem_ch11.ads: Likewise.
9704         * sem_ch12.adb: Likewise.
9705         * sem_ch12.ads: Likewise.
9706         * sem_ch13.adb: Likewise.
9707         * sem_ch13.ads: Likewise.
9708         * sem_ch2.adb: Likewise.
9709         * sem_ch2.ads: Likewise.
9710         * sem_ch3.adb: Likewise.
9711         * sem_ch3.ads: Likewise.
9712         * sem_ch4.adb: Likewise.
9713         * sem_ch4.ads: Likewise.
9714         * sem_ch5.adb: Likewise.
9715         * sem_ch5.ads: Likewise.
9716         * sem_ch6.adb: Likewise.
9717         * sem_ch6.ads: Likewise.
9718         * sem_ch7.adb: Likewise.
9719         * sem_ch7.ads: Likewise.
9720         * sem_ch8.adb: Likewise.
9721         * sem_ch8.ads: Likewise.
9722         * sem_ch9.adb: Likewise.
9723         * sem_ch9.ads: Likewise.
9724         * sem_dim.adb: Likewise.
9725         * sem_dim.ads: Likewise.
9726         * sem_disp.adb: Likewise.
9727         * sem_disp.ads: Likewise.
9728         * sem_dist.adb: Likewise.
9729         * sem_dist.ads: Likewise.
9730         * sem_elab.adb: Likewise.
9731         * sem_elab.ads: Likewise.
9732         * sem_elim.adb: Likewise.
9733         * sem_elim.ads: Likewise.
9734         * sem_eval.adb: Likewise.
9735         * sem_eval.ads: Likewise.
9736         * sem_intr.adb: Likewise.
9737         * sem_intr.ads: Likewise.
9738         * sem_mech.adb: Likewise.
9739         * sem_mech.ads: Likewise.
9740         * sem_prag.adb: Likewise.
9741         * sem_prag.ads: Likewise.
9742         * sem_res.adb: Likewise.
9743         * sem_res.ads: Likewise.
9744         * sem_scil.adb: Likewise.
9745         * sem_scil.ads: Likewise.
9746         * sem_smem.adb: Likewise.
9747         * sem_smem.ads: Likewise.
9748         * sem_type.adb: Likewise.
9749         * sem_type.ads: Likewise.
9750         * sem_util.adb: Likewise.
9751         * sem_util.ads: Likewise.
9752         * sem_warn.adb: Likewise.
9753         * sem_warn.ads: Likewise.
9754         * set_targ.adb: Likewise.
9755         * set_targ.ads: Likewise.
9756         * sfn_scan.adb: Likewise.
9757         * sfn_scan.ads: Likewise.
9758         * sigtramp-armdroid.c: Likewise.
9759         * sigtramp-ios.c: Likewise.
9760         * sigtramp-qnx.c: Likewise.
9761         * sigtramp-vxworks.c: Likewise.
9762         * sigtramp.h: Likewise.
9763         * sinfo-cn.adb: Likewise.
9764         * sinfo-cn.ads: Likewise.
9765         * sinfo.adb: Likewise.
9766         * sinfo.ads: Likewise.
9767         * sinput-c.adb: Likewise.
9768         * sinput-c.ads: Likewise.
9769         * sinput-d.adb: Likewise.
9770         * sinput-d.ads: Likewise.
9771         * sinput-l.adb: Likewise.
9772         * sinput-l.ads: Likewise.
9773         * sinput.adb: Likewise.
9774         * sinput.ads: Likewise.
9775         * snames.adb-tmpl: Likewise.
9776         * snames.ads-tmpl: Likewise.
9777         * socket.c: Likewise.
9778         * spark_xrefs.adb: Likewise.
9779         * spark_xrefs.ads: Likewise.
9780         * sprint.adb: Likewise.
9781         * sprint.ads: Likewise.
9782         * stand.ads: Likewise.
9783         * stringt.adb: Likewise.
9784         * stringt.ads: Likewise.
9785         * stringt.h: Likewise.
9786         * style.adb: Likewise.
9787         * style.ads: Likewise.
9788         * styleg.adb: Likewise.
9789         * styleg.ads: Likewise.
9790         * stylesw.adb: Likewise.
9791         * stylesw.ads: Likewise.
9792         * switch-b.adb: Likewise.
9793         * switch-b.ads: Likewise.
9794         * switch-c.adb: Likewise.
9795         * switch-c.ads: Likewise.
9796         * switch-m.adb: Likewise.
9797         * switch-m.ads: Likewise.
9798         * switch.adb: Likewise.
9799         * switch.ads: Likewise.
9800         * sysdep.c: Likewise.
9801         * table.adb: Likewise.
9802         * table.ads: Likewise.
9803         * targext.c: Likewise.
9804         * targparm.adb: Likewise.
9805         * targparm.ads: Likewise.
9806         * tbuild.adb: Likewise.
9807         * tbuild.ads: Likewise.
9808         * tempdir.adb: Likewise.
9809         * tempdir.ads: Likewise.
9810         * terminals.c: Likewise.
9811         * tracebak.c: Likewise.
9812         * treepr.adb: Likewise.
9813         * treepr.ads: Likewise.
9814         * ttypes.ads: Likewise.
9815         * types.adb: Likewise.
9816         * types.ads: Likewise.
9817         * types.h: Likewise.
9818         * uintp.adb: Likewise.
9819         * uintp.ads: Likewise.
9820         * uintp.h: Likewise.
9821         * uname.adb: Likewise.
9822         * uname.ads: Likewise.
9823         * urealp.adb: Likewise.
9824         * urealp.ads: Likewise.
9825         * urealp.h: Likewise.
9826         * usage.adb: Likewise.
9827         * usage.ads: Likewise.
9828         * validsw.adb: Likewise.
9829         * validsw.ads: Likewise.
9830         * vast.adb: Likewise.
9831         * vast.ads: Likewise.
9832         * warnsw.adb: Likewise.
9833         * warnsw.ads: Likewise.
9834         * widechar.adb: Likewise.
9835         * widechar.ads: Likewise.
9836         * xeinfo.adb: Likewise.
9837         * xnmake.adb: Likewise.
9838         * xoscons.adb: Likewise.
9839         * xr_tabls.adb: Likewise.
9840         * xr_tabls.ads: Likewise.
9841         * xref_lib.adb: Likewise.
9842         * xref_lib.ads: Likewise.
9843         * xsinfo.adb: Likewise.
9844         * xsnamest.adb: Likewise.
9845         * xtreeprs.adb: Likewise.
9846         * xutil.adb: Likewise.
9847         * xutil.ads: Likewise.
9849 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9851         * exp_dist.adb (Build_From_Any_Call): Remove initial value for
9852         Fnam; fix style.
9853         (Build_To_Any_Call): Remove initial value for Fnam.
9854         (Build_TypeCode_Call): Likewise.
9856 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9858         * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
9859         exp_disp.adb, exp_imgv.adb, exp_util.adb, sem_attr.adb,
9860         sem_ch13.adb, sem_ch8.adb, sem_eval.adb, sem_scil.adb,
9861         sem_util.adb: Replace calls to RTE with Is_RTE.
9863 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9865         * sem_ch4.adb (Try_Object_Operation): Reuse local constant.
9867 2021-05-03  Ed Schonberg  <schonberg@adacore.com>
9869         * sem_ch4.adb (Try_Object_Operation): When a prefixed call is
9870         overloaded and illegal, and the All_Errors flag is off, generate
9871         an error message if the re-analysis of some candidate
9872         interpretation fails to produce one.
9874 2021-05-03  Dmitriy Anisimkov  <anisimko@adacore.com>
9876         * libgnat/g-casuti.adb: Replace with "pragma No_Body".
9877         * libgnat/g-casuti.ads: Replace with a package renaming.
9879 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9881         * sem_attr.adb (Check_Program_Unit): Fix references to
9882         Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to
9883         Entity.
9885 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9887         * sem_attr.adb (Check_Program_Unit): Replace tests for Task_Kind
9888         and Protected_Kind with a collective test for Concurrent_Kind;
9889         likewise, replace calls to Is_Task_Type and Is_Protected_Type
9890         with a collective call to Is_Concurrent_Type; simplify into a
9891         single membership test; add missing Entry_Kind alternative.
9893 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9895         * sem_aggr.adb (Resolve_Record_Aggregate): Fix casing in error
9896         message.
9897         * sem_ch3.adb (Add_Internal_Interface_Entities): Fix unbalanced
9898         parens.
9899         * sem_elim.adb (Eliminate_Error_Msg): Add insertion character.
9901 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9903         * freeze.adb (Freeze_Profile): Replace Error_Msg_NE with
9904         Error_Msg_N; change to continuation message.
9905         * sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch5.adb: Replace
9906         calls to Error_Msg_NE with calls to Error_Msg_N.
9908 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9910         * exp_disp.adb, sem_aggr.adb, sem_cat.adb, sem_ch10.adb,
9911         sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
9912         sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb,
9913         sem_res.adb: Remove extra leading and trailing space in error
9914         messages.
9916 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
9918         * sem_prag.adb (Set_Exported): Do not warn on exporting a type.
9920 2021-05-03  Ed Schonberg  <schonberg@adacore.com>
9922         * sem_warn.adb (Check_References): Do not emit warning on a
9923         selected component when enclosing type has no discriminant and
9924         type of component has partial initialization.
9926 2021-05-03  Justin Squirek  <squirek@adacore.com>
9928         * contracts.adb (Build_Postconditions_Procedure): Remove
9929         internally generated if statement used to control finalization
9930         actions.
9931         * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
9932         Expand_Simple_Function_Return): Add if statement around
9933         _postconditions to control finalization.
9934         * exp_ch7.adb (Build_Finalizer): Likewise.
9935         * sem_prag.adb (Find_Related_Declaration_Or_Body): Add case to
9936         handle Context itself being a handled sequence of statements.
9938 2021-05-03  Justin Squirek  <squirek@adacore.com>
9940         * sem_util.adb (In_Return_Value): Modified to detect when
9941         implicit dereference is specified on the return type of a
9942         function call within the expression being checked.
9944 2021-05-03  Ed Schonberg  <schonberg@adacore.com>
9946         * exp_aggr.adb (Expand_Array_Aggregate): If the parent node of
9947         the aggregate is a subprogram call there is no target in which
9948         to build the aggregate, and it has to be expanded into component
9949         assignments.
9951 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9953         * exp_prag.adb (Expand_Pragma_CUDA_Execute): Refill comments;
9954         remove periods after single-line comments; use procedural
9955         variant of Next_Entity.
9956         * gnat_cuda.adb: Refill comments; remove periods after
9957         single-line comments; replace calls to UI_From_Int with
9958         constants; change iteration bounds so they match the comments.
9959         * sem_prag.adb (Analyze_Pragma): Add checks for malformed pragma
9960         CUDA_Kernel aggregate; simplify processing of pragma CUDA_Global
9961         with Check_Arg_Count; sync comment with code for CUDA_Global.
9963 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
9965         * tbuild.adb (Make_Implicit_Loop_Statement): Disable restriction
9966         checking on dead paths.
9968 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
9970         * sem_util.adb (Check_Result_And_Post_State): Replace custom
9971         Has_In_Out_Parameter with existing Has_Out_Or_In_Out_Parameter
9972         flag which corresponds exactly to what we need.
9974 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
9976         * libgnat/a-ztcoio.adb: Remove unused with clause.
9978 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9980         * sem_ch13.adb (Build_Predicate_Functions): Fix typo in comment.
9981         (Resolve_Aspect_Expressions): Fix typo in comment; remove
9982         redundant check for no aspects; simplify with Discard_Node.
9984 2021-05-03  Ed Schonberg  <schonberg@adacore.com>
9986         * sem_util.adb (Build_Constrained_Itype): Remove prior patch,
9987         issue is better handled in Sem_Ch13.Build_Predicate_Functions.
9988         * sem_ch13.adb (Build_Predicate_Functions): Do not build
9989         predicate function for an Itype with a defined
9990         Predicated_Parent, even if that designated parent does not yet
9991         have a Predicate_Function. This can happen in instance bodies
9992         nested within a generic unit.
9994 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9996         * exp_attr.adb (Expand_N_Attribute_Reference)
9997         <Attribute_Max_Size_In_Storage_Elements>: Apply the checks for
9998         universal integer contexts only in the default case.
9999         * exp_ch4.adb (Get_Size_For_Range): Move to library level.
10000         (Expand_N_Type_Conversion): If the operand has Universal_Integer
10001         type and the conversion requires an overflow check, try to do an
10002         intermediate conversion to a narrower type.
10004 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
10006         * sem_ch3.adb (Check_Anonymous_Access_Component): Factor out
10007         core processing of Check_Anonymous_Access_Components.
10008         (Check_Anonymous_Access_Components): Call
10009         Check_Anonymous_Access_Component.
10010         (Process_Discriminants): Call Check_Anonymous_Access_Component.
10011         * freeze.adb (Freeze_Record_Type): Code cleanups and add more tree
10012         checking to handle changes in sem_ch3.adb.
10013         * sem_ch8.adb (Find_Type): Remove special case for access
10014         discriminant in task types, these are now supported.
10016 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10018         * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): Remove
10019         entry condition.
10020         (Expand_N_In): Call Minimized_Eliminated_Overflow_Check on the left
10021         operand before doing the special overflow expansion.
10022         (Expand_N_Op_Eq): Likewise.
10023         (Expand_N_Op_Ge): Likewise.
10024         (Expand_N_Op_Gt): Likewise.
10025         (Expand_N_Op_Le): Likewise.
10026         (Expand_N_Op_Lt): Likewise.
10027         (Expand_N_Op_Ne): Likewise.
10028         (Minimized_Eliminated_Overflow_Check): Return False for Minimized
10029         if the size of the type is greater than that of Long_Long_Integer.
10031 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
10033         * exp_ch5.adb (Expand_N_If_Statement): Only perform the
10034         simplification on return True/False for internal nodes when
10035         -fpreserve-control-flow is not set.
10037 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10039         * sem_attr.adb (Eval_Attribute) <Attribute_Machine>: Use
10040         Round_Even instead of Round in the call to the Machine routine.
10042 2021-04-29  Bob Duff  <duff@adacore.com>
10044         * sem_attr.adb (Analyze_Attribute): Change "$" to "&".
10045         Otherwise, Errout will trip over an uninitialized (invalid)
10046         variable (Error_Msg_Unit_1).
10048 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10050         * libgnat/s-valuer.adb (Scan_Decimal_Digits): Set Extra to zero
10051         when the precision limit is reached by means of trailing zeros
10052         and prevent it from being overwritten later.
10054 2021-04-29  Yannick Moy  <moy@adacore.com>
10056         * errout.adb (Output_Messages): Insert SGR strings where needed.
10057         * erroutc.adb (Output_Message_Txt): Insert SGR strings where
10058         needed in the text of the message itself.
10059         (Output_Msg_Text): Allow for style message not to start
10060         with (style).
10061         * erroutc.ads: Add new constants and functions to control colors
10062         in messages output to the terminal. Add variable Use_SGR_Control
10063         that should be set to True for using SGR color control strings.
10065 2021-04-29  Yannick Moy  <moy@adacore.com>
10067         * sem_eval.adb (Check_Non_Static_Context_For_Overflow): Apply
10068         compile-time checking for overflows in non-static contexts
10069         including inlined code.
10070         (Eval_Arithmetic_Op): Use the new procedure.
10071         (Eval_Unary_Op, Eval_Op_Expon): Add call to the new procedure.
10073 2021-04-29  Justin Squirek  <squirek@adacore.com>
10075         * checks.adb (Apply_Type_Conversion_Checks): Move out constraint
10076         check generation, and add case for general access types with
10077         constraints.
10078         (Make_Discriminant_Constraint_Check): Created to centralize
10079         generation of constraint checks for stored discriminants.
10081 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10083         * gnat1drv.adb (Adjust_Global_Switches): Force a 32-bit Duration
10084         type if the maximum integer size is lower than 64 bits.
10086 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
10088         * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove unused files.
10089         (ADA_INCLUDE_SRCS): Remove libgnat/system.ads
10091 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
10093         * exp_aggr.adb (Collect_Initialization_Statements): Removed.
10094         (Convert_Aggr_In_Object_Decl, Expand_Array_Aggregate): Fix
10095         creation and insertion of Initialization_Statements.  Do not set
10096         Initialization_Statements when a transient scope is involved.
10097         Move processing of Array_Slice here.  Ensure that an object with
10098         an Array_Slice call gets its array component initialized.  Add
10099         comments.
10100         * exp_ch7.adb: Update comments.
10101         (Store_Actions_In_Scope): Deal properly with an empty list which
10102         might now be generated by Convert_Aggr_In_Object_Decl.
10103         * exp_ch3.adb: Update comments.
10104         (Expand_N_Object_Declaration): Remove processing of Array_Slice.
10106 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
10108         * sem_ch8.adb (Analyze_Object_Renaming): Update check for
10109         AI12-0401.
10111 2021-04-29  Patrick Bernardi  <bernardi@adacore.com>
10113         * libgnat/s-stoele.ads (Storage_Offset): Cleanup comment.
10115 2021-04-29  Gary Dismukes  <dismukes@adacore.com>
10117         * exp_util.adb (Add_Own_DIC): Relax the suppression of adding a
10118         DIC Check pragma that's done for abstract types by still doing
10119         it in the case where GNATprove_Mode is set.
10121 2021-04-29  Joel Brobecker  <brobecker@adacore.com>
10123         * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove s-gcc.adb, s-gcc.ads,
10124         s-gccdiv.adb, s-gccdiv.ads, s-gccshi.adb and s-gccshi.ads.
10126 2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
10128         * layout.adb (Layout_Type): Refine type of a local variable with
10129         the required size of object from Int to Pos (it is initialized
10130         with 8 and only multiplied by 2); fix unbalanced parens in
10131         comment.
10133 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10135         * eval_fat.adb (Succ): Use Ureal_Half in a couple of places.
10137 2021-04-29  Ed Schonberg  <schonberg@adacore.com>
10139         * sem_util.adb (Build_Constrained_Itype): Inhibit the generation
10140         of predicate functions for this Itype, which is created for an
10141         aggregate of a discriminated type. The object to which the
10142         aggregate is assigned, e.g a writable actual parameter, will
10143         apply the predicates if any are inherited from the base type.
10145 2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
10147         * sem_cat.adb (Set_Categorization_From_Pragmas): Remove special
10148         case for generic child units; remove optimization for empty list
10149         of pragmas; properly restore visibility.
10151 2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
10153         * sem_elab.adb (Process_SPARK_Instantiation): Fix typo in
10154         comment.
10155         * sem_prag.adb (Find_Related_Context): Add missing reference to
10156         No_Caching in the comment; handle pragmas on compilation units.
10158 2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
10160         * doc/gnat_rm/implementation_defined_attributes.rst: Change all
10161         occurrences of "permissible prefix" to "allowed prefix", for
10162         consistency.
10163         * gnat_rm.texi: Regenerate.
10165 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10167         * eval_fat.adb (Succ): Add a special case for zero if the type does
10168         not support denormalized numbers.  Always use the canonical formula
10169         in other cases and add commentary throughout the function.
10171 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10173         * libgnat/s-fatgen.adb: Remove with clause for Interfaces and
10174         use type clauses for Interfaces.Unsigned_{16,32,64}.
10175         (Small16): Remove.
10176         (Small32): Likewise
10177         (Small64): Likewise.
10178         (Small80): Likewise.
10179         (Tiny16): Likewise.
10180         (Tiny32): Likewise.
10181         (Tiny64): Likewise.
10182         (Tiny80): Likewise.
10183         (Siz): Always use 16.
10184         (NR): New constant.
10185         (Rep_Last): Use it in the computation.
10186         (Exp_Factor): Remove special case for 80-bit.
10187         (Sign_Mask): Likewise.
10188         (Finite_Succ): New function implementing the Succ attribute for
10189         finite numbers.
10190         (Pred): Rewrite in terms of Finite_Succ.
10191         (Succ): Likewise.
10193 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
10195         * debug_a.adb (Debug_Output_Astring): Remove obsolete comment.
10197 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
10199         * sem_attr.adb (Check_Image_Type): Protect against empty
10200         Image_Type.
10202 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
10204         * libgnat/a-nbnbin.ads (From_Universal_Image): New.
10205         (Big_Integer): Update definition.
10206         * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb
10207         (From_Universal_Image): New.
10208         (From_String): Remove alternate body, replaced by
10209         From_Universal_Image.
10210         (Big_Real): Update definition.
10212 2021-04-29  Gary Dismukes  <dismukes@adacore.com>
10214         * sem_ch8.adb (Find_Type): Check the No_Obsolescent_Features
10215         restriction for 'Class applied to an untagged incomplete
10216         type (when Ada_Version >= Ada_2005).  Remove disabling of the
10217         warning message for such usage, along with the ??? comment,
10218         which no longer applies (because the -gnatg switch no longer
10219         sets Warn_On_Obsolescent_Feature).
10221 2021-04-29  Yannick Moy  <moy@adacore.com>
10223         * errout.adb (Error_Msg_NEL): Extract span from node.
10224         (First_And_Last_Nodes): Use spans for subtype indications and
10225         attribute definition clauses.
10226         (Write_Source_Code_Lines): Fix for tabulation characters. Change
10227         output for large spans to skip intermediate lines.
10228         * sem_case.adb (Check_Choice_Set): Report duplicate choice on
10229         the Original_Node for the case.
10230         (Generic_Check_Choices): Set the Original_Node for the rewritten
10231         case, so that the subtree used in spans has the correct
10232         locations.
10234 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10236         * sem_ch13.adb, sem_util.adb: Fix style.
10238 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10240         * nlists.ads (List_Length): Adapt comment to match the
10241         behaviour.
10243 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10245         * sem_eval.adb (Eval_Selected_Component): Only consider compile
10246         time known aggregates.
10248 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10250         * libgnat/s-fatgen.adb: Add use clause for Interfaces.Unsigned_16
10251         and Interfaces.Unsigned_32.
10252         (Small16): New constant.
10253         (Small32): Likewise.
10254         (Small64): Likewise.
10255         (Small80): Likewise.
10256         (Pred): Declare a local overlay for Small and return it negated
10257         for zero if the type does not support denormalized numbers.
10258         (Succ): Likewise, but return it directly.
10260 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10262         * inline.adb (Formal_Is_Used_Once): Refine type of the counter
10263         variable; remove redundant assignment.
10265 2021-04-28  Patrick Bernardi  <bernardi@adacore.com>
10267         * libgnarl/s-interr.adb (Install_Restricted_Handlers): Change
10268         Prio parameter to type Interrupt_Priority.
10269         * libgnarl/s-interr.ads (Install_Restricted_Handlers): Likewise.
10270         * libgnarl/s-interr__dummy.adb (Install_Restricted_Handlers):
10271         Likewise.
10272         * libgnarl/s-interr__hwint.adb (Install_Restricted_Handlers):
10273         Likewise.
10274         * libgnarl/s-interr__sigaction.adb (Install_Restricted_Handlers):
10275         Likewise.
10276         * libgnarl/s-interr__vxworks.adb (Install_Restricted_Handlers):
10277         Likewise.
10279 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10281         * sem_type.ads (Write_Interp_Ref): Removed; no longer needed.
10282         * sem_type.adb (Headers): Removed; now the hash table is
10283         directly in the Interp_Map alone.
10284         (Interp_Map): Now an instance of the GNAT.HTable.Simple_HTable.
10285         (Last_Overloaded): New variable to emulate Interp_Map.Last.
10286         (Add_One_Interp): Adapt to new data structure.
10287         (Get_First_Interp): Likewise.
10288         (Hash): Likewise.
10289         (Init_Interp_Tables): Likewise.
10290         (New_Interps): Likewise.
10291         (Save_Interps): Likewise; handle O_N variable like in
10292         Get_First_Interp.
10293         (Write_Interp_Ref): Removed; no longer needed.
10295 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10297         * inline.adb (Do_Reset_Calls): Now an instance of Traverse_Proc.
10299 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10301         * sem_ch13.adb (Analyze_Aspect_Static): Reuse
10302         Error_Msg_Ada_2020_Feature for aspect Static.
10303         (Analyze_One_Aspect): Likewise for aspect Full_Access.
10305 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10307         * sem_ch13.adb (Analyze_Aspect_Static): Refactor to have a
10308         single check for the expression being present; adapt comments.
10310 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10312         * sem_ch13.adb (Analyze_Aspect_Static): Use aspect name in the
10313         error message.
10315 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10317         * sem_eval.adb (Eval_Selected_Component): Simplify with
10318         Unqualify.
10320 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10322         * libgnat/s-valrea.adb (Fast2Sum): New function.
10323         (Integer_to_Real): Use it in an iterated addition with exact
10324         error handling for the case where an extra digit is needed.
10325         Move local variable now only used in the exponentiation case.
10327 2021-04-28  Yannick Moy  <moy@adacore.com>
10329         * errout.adb: (Error_Msg_Internal): Use span instead of
10330         location.
10331         (Error_Msg, Error_Msg_NEL): Add versions with span parameter.
10332         (Error_Msg_F, Error_Msg_FE, Error_Msg_N, Error_Msg_NE,
10333         Error_Msg_NW): Retrieve span from node.
10334         (First_Node): Use the new First_And_Last_Nodes.
10335         (First_And_Last_Nodes): Expand on previous First_Node. Apply to
10336         other nodes than expressions.
10337         (First_Sloc): Protect against inconsistent locations.
10338         (Last_Node): New function based on First_And_Last_Nodes.
10339         (Last_Sloc): New function similar to First_Sloc.
10340         (Output_Messages): Update output when -gnatdF is used. Use
10341         character ~ for making the span visible, similar to what is done
10342         in GCC and Clang.
10343         * errout.ads (Error_Msg, Error_Msg_NEL): Add versions with span
10344         parameter.
10345         (First_And_Last_Nodes, Last_Node, Last_Sloc): New subprograms.
10346         * erroutc.adb: Adapt to Sptr field being a span.
10347         * erroutc.ads (Error_Msg_Object): Change field Sptr from
10348         location to span.
10349         * errutil.adb: Adapt to Sptr field being a span.
10350         * freeze.adb: Use Errout reporting procedures for nodes to get
10351         spans.
10352         * par-ch3.adb: Likewise.
10353         * par-prag.adb: Likewise.
10354         * par-util.adb: Likewise.
10355         * sem_case.adb: Likewise.
10356         * sem_ch13.adb: Likewise.
10357         * sem_ch3.adb: Likewise.
10358         * sem_prag.adb: Likewise.
10359         * types.ads: (Source_Span): New type for spans.
10360         (To_Span): Basic constructors for spans.
10362 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10364         * einfo.adb (Discriminant_Constraint): Refine assertion.
10366 2021-04-28  Gary Dismukes  <dismukes@adacore.com>
10368         * exp_util.adb (Add_Own_DIC): Suppress expansion of a DIC pragma
10369         when the pragma occurs for an abstract type, since that could
10370         lead to a call to an abstract function, and such DIC checks can
10371         never be performed for abstract types in any case.
10372         * sem_disp.adb (Check_Dispatching_Context): Suppress the check
10373         for illegal calls to abstract subprograms when the call occurs
10374         within a Default_Initial_Condition aspect and the call is passed
10375         the current instance as an actual.
10376         (Has_Controlling_Current_Instance_Actual): New function to test
10377         a call to see if it has any actuals given by direct references
10378         to a current instance of a type
10379         * sem_res.adb (Resolve_Actuals): Issue an error for a call
10380         within a DIC aspect to a nonprimitive subprogram with an actual
10381         given by the name of the DIC type's current instance (which will
10382         show up as a reference to the formal parameter of a DIC
10383         procedure).
10385 2021-04-28  Ed Schonberg  <schonberg@adacore.com>
10387         * exp_ch3.adb (Expand_Record_Extension): Set Parent_Subtype on
10388         the type extension when within a generic unit, even though
10389         expansion is disabled, to allow for proper resolution of
10390         selected components inherited from an ancestor.
10392 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10394         * sem_aux.adb (Is_Limited_Type): Fix logic to check Is_Type
10395         before assuming Ent is a typo.
10396         * sem_ch4.adb (Analyze_Expression_With_Actions): Update
10397         comments, minor reformatting.
10398         * sem_res.adb (Resolve_Declare_Expression): Add protection
10399         against no type.
10401 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10403         * exp_ch6.adb: Fix typo in comment.
10404         * sem_ch3.adb (Access_Subprogram_Declaration): Add missing call
10405         to Create_Extra_Formals. Remove obsolete bootstrap check.
10406         * sem_eval.adb (Eval_Selected_Component): Simplify a
10407         selected_component on an aggregate.
10409 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10411         * fmap.ads (Reset_Tables): Remove outdated references to
10412         GNSA/ASIS.
10413         * sem_eval.ads (Initialize): Likewise.
10414         * sem_type.adb (Headers): Remove initialization at elaboration.
10415         * sem_type.ads (Init_Interp_Tables): Remove outdated reference
10416         to gnatf.
10417         * stringt.ads (Initialize): Fix style in comment.
10419 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10421         * sem_res.ads: Update reference in comment.
10422         * sem_type.ads: Fix casing in a name of a unit.
10424 2021-04-28  Yannick Moy  <moy@adacore.com>
10426         * ghost.adb (Check_Ghost_Context): Add continuation message when
10427         in predicate.
10429 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10431         * libgnat/s-valrea.adb (Integer_to_Real): Use a subtype of Num
10432         for the component type of the table of powers of ten.
10433         * libgnat/s-valuer.adb (Round_Extra): Add assertion on Base.
10435 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10437         * sem_ch5.adb (Analyze_Case_Statement): Extend optimization to
10438         all objects; fix typo in comment.
10440 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10442         * exp_ch9.adb (Build_Barrier_Function): Refine type of a
10443         protected type entity.
10444         (Is_Pure_Barrier): Fix style.
10446 2021-04-28  Bob Duff  <duff@adacore.com>
10448         * exp_ch3.adb (Simple_Init_Defaulted_Type): Simplify the code,
10449         and always use OK_Convert_To, rather than Unchecked_Convert_To
10450         and Convert_To.
10452 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10454         * sem_ch3.adb (Analyze_Object_Declaration): Remove dead code.
10455         * ali.ads, ali.adb (Scan_ALI): Remove unused parameters.
10456         Remove unused code related to Xref lines.
10457         (Get_Typeref): Removed, no longer used.
10459 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10461         * exp_attr.adb (Build_Array_VS_Func, Build_Record_VS_Func,
10462         Expand_N_Attribute_Reference): Use Get_Fullest_View instead of
10463         Validated_View.
10464         (Build_Record_VS_Func): Adjust to keep using Validated_View.
10465         (Expand_N_Attribute_Reference) [Valid]: Use
10466         Small_Integer_Type_For to allow for more compile time
10467         evaluations.
10468         * sem_util.adb (Cannot_Raise_Constraint_Error): Add more precise
10469         support for N_Indexed_Component and fix support for
10470         N_Selected_Component which wasn't completely safe.
10471         (List_Cannot_Raise_CE): New.
10472         * libgnat/i-cobol.adb (Valid_Packed): Simplify test to address
10473         new GNAT warning.
10475 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10477         * .gitignore: New.
10478         * doc/share/conf.py: Add Python 3 compatibility.
10479         * doc/share/gnat.sty: Add missing file.
10481 2021-04-28  Richard Wai  <richard@annexi-strayline.com>
10483         * libgnat/a-cohase.ads (Cursor): Synchronize comments for the Cursor
10484         type definition to be consistent with identical definitions in other
10485         container packages. Add additional comments regarding the importance of
10486         maintaining the "Position" component for predefined equality.
10487         * libgnat/a-cohama.ads (Cursor): Likewise.
10488         * libgnat/a-cihama.ads (Cursor): Likewise.
10489         * libgnat/a-cohase.adb (Find, Insert): Ensure that Cursor objects
10490         always have their "Position" component set to ensure predefined
10491         equality works as required.
10492         * libgnat/a-cohama.adb (Find, Insert): Likewise.
10493         * libgnat/a-cihama.adb (Find, Insert): Likewise.
10495 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10497         * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Do not demote a
10498         const or pure function because of a parameter whose type is pointer
10499         to function.
10500         * gcc-interface/trans.c (Call_to_gnu): Do not put back a conversion
10501         between an actual and a formal that are unconstrained array types.
10502         (gnat_gimplify_expr) <CALL_EXPR>: New case.
10503         * gcc-interface/utils2.c (build_binary_op): Do not use |= operator.
10504         (gnat_stabilize_reference_1): Likewise.
10505         (gnat_rewrite_reference): Likewise.
10506         (build_unary_op): Do not clear existing TREE_CONSTANT on the result.
10507         (gnat_build_constructor): Also accept the address of a constant
10508         CONSTRUCTOR as constant element.
10510 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10512         * gcc-interface/trans.c (is_array_of_scalar_type): New predicate.
10513         (find_decls_r): New function.
10514         (return_slot_opt_for_pure_call_p): New predicate.
10515         (Call_to_gnu): Do not create a temporary for the return value if the
10516         parent node is an aggregate.  If there is a target, try to apply the
10517         return slot optimization to regular calls to pure functions returning
10518         an array of scalar type.
10520 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10522         * gcc-interface/trans.c (language_function): Add comment.
10523         (loop_info_d): Add fndecl and invariants fields.
10524         (find_loop_for): Test fndecl instead of the context of var.
10525         (find_loop): New function.
10526         (Regular_Loop_to_gnu): Fold back into...
10527         (Loop_Statement_to_gnu): ...this.  Emit invariants on entry, if any.
10528         (gnat_to_gnu) <N_Selected_Component>: Record nonconstant invariant
10529         offset computations in loops when optimization is enabled.
10530         * gcc-interface/utils2.c (gnat_invariant_expr): Handle BIT_AND_EXPR.
10532 2021-04-20  Martin Liska  <mliska@suse.cz>
10534         * gnatvsn.ads: Bump Library_Version to 12.
10536 2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>
10538         * gcc-interface/misc.c (gnat_init): Set default range bits to 0.
10539         * gcc-interface/trans.c (extract_encoding): Delete.
10540         (decode_name): Likewise.
10541         (File_Name_to_gnu): New function.
10542         (gigi): Call it to translate file names.  Replace assertion on
10543         1-1 mapping between files and line maps with conditional error.
10545 2021-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
10547         * gnat_ugn.texi (Top): Avoid invalid "up" link.
10549 2021-03-29  Eric Botcazou  <ebotcazou@adacore.com>
10551         PR ada/99802
10552         * freeze.adb (Is_Full_Access_Aggregate): Call Is_Full_Access_Object
10553         on the name of an N_Assignment_Statement to spot full access.
10555 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
10557         * gcc-interface/decl.c (gnat_to_gnu_entity): Build a TYPE_STUB_DECL
10558         for the main variant of an enumeration type declared as volatile.
10560 2021-03-09  Mikael Pettersson  <mikpelinux@gmail.com>
10562         * raise-gcc.c: On Cygwin include mingw32.h to prevent
10563         windows.h from including x86intrin.h or emmintrin.h.
10565 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
10567         PR ada/99264
10568         * init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on
10569         MINSIGSTKSZ and bump size to 32KB.
10570         * libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB.
10572 2021-03-02  Mikael Pettersson  <mikpelinux@gmail.com>
10574         PR bootstrap/98590
10575         * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.
10577 2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>
10579         PR ada/99095
10580         * sem_ch8.adb (Check_Constrained_Object): Restrict again the special
10581         optimization for limited types to non-array types except in the case
10582         of an extended return statement.
10584 2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>
10586         PR ada/99020
10587         * sem_ch3.adb (Build_Discriminated_Subtype): Set the Cloned_Subtype
10588         only if the type is not private.
10590 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
10592         PR ada/98996
10593         * Makefile.rtl: <mips*-*-linux*>
10594         add 128Bit operation file for MIPS N64 and N32 to
10595         LIBGNAT_TARGET_PAIRS and EXTRA_GNATRTL_NONTASKING_OBJS
10597 2021-02-12  Arnaud Charlet  <charlet@adacore.com>
10599         * repinfo.ads, repinfo.adb (*SO_Ref*): Restore.
10601 2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>
10603         * gcc-interface/decl.c (components_to_record): If the first component
10604         with rep clause is the _Parent field with variable size, temporarily
10605         set it aside when computing the internal layout of the REP part again.
10606         * gcc-interface/utils.c (finish_record_type): Revert to taking the
10607         maximum when merging sizes for all record types with rep clause.
10608         (merge_sizes): Put SPECIAL parameter last and adjust recursive calls.
10610 2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>
10612         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Make the
10613         two fields of the fat pointer type addressable, and do not make the
10614         template type read-only.
10615         <E_Record_Type>: If the type has discriminants mark it as may_alias.
10616         * gcc-interface/utils.c (make_dummy_type): Likewise.
10617         (build_dummy_unc_pointer_types): Likewise.
10619 2021-01-26  Marius Hillenbrand  <mhillen@linux.ibm.com>
10621         PR ada/98228
10622         * gcc-interface/utils.c (maybe_pad_type): Test the size of the new
10623         packable type instead of its alignment for addressability's sake.
10625 2021-01-25  Eric Botcazou  <ebotcazou@adacore.com>
10627         * gcc-interface/trans.c (make_covariant_thunk): Set the DECL_CONTEXT
10628         of the parameters and do not set TREE_PUBLIC on the thunk.
10629         (maybe_make_gnu_thunk): Pass the alias to the covariant thunk.
10630         * gcc-interface/utils.c (finish_subprog_decl): Set the DECL_CONTEXT
10631         of the parameters here...
10632         (begin_subprog_body): ...instead of here.
10634 2021-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10636         PR ada/98740
10637         * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.
10639 2021-01-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10641         PR ada/98595
10642         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <riscv*-*-rtems*>: Use
10643         wraplf version of Aux_Long_Long_Float.
10645 2021-01-03  Eric Botcazou  <ebotcazou@adacore.com>
10647         * gnatvsn.ads: Bump copyright year.
10649 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
10651         * gnat_ugn.texi: Bump @copying's copyright year.
10652         * gnat_rm.texi: Likewise.
10654 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
10656         * ChangeLog-2020: Rotate ChangeLog.  New file.
10659 Copyright (C) 2021 Free Software Foundation, Inc.
10661 Copying and distribution of this file, with or without modification,
10662 are permitted in any medium without royalty provided the copyright
10663 notice and this notice are preserved.