Daily bump.
[official-gcc.git] / gcc / ada / ChangeLog
blob421b9b4d9d6a7734aecc3e6a591e06d41e60cc74
1 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
3         * gcc-interface/gigi.h (resolve_atomic_size): Declare.
4         (list_third): New inline function.
5         * gcc-interface/decl.c (type_for_atomic_builtin_p): New function.
6         (resolve_atomic_builtin): Likewise.
7         (gnat_to_gnu_subprog_type): Perform type resolution for most of
8         type-generic GCC atomic builtins and give an error for the rest.
9         * gcc-interface/utils2.c (resolve_atomic_size): Make public.
11 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
13         * gcc-interface/trans.c (gnat_to_gnu) <N_Pop_Constraint_Error_Label>:
14         Given the warning only if No_Exception_Propagation is active.
15         <N_Pop_Storage_Error_Label>: Likewise.
16         <N_Pop_Program_Error_Label>: Likewise.
18 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
20         * gcc-interface/decl.c (promote_object_alignment): Add GNU_SIZE
21         parameter and use it for the size of the object if not null.
22         (gnat_to_gnu_entity) <E_Variable>: Perform the automatic alignment
23         promotion for objects whose nominal subtype is of variable size.
24         (gnat_to_gnu_field): Adjust call to promote_object_alignment.
26 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
28         * gcc-interface/decl.c (gnat_to_gnu_param): Strip padding types
29         only if the size does not change in the process.  Rename local
30         variable and add bypass for initialization procedures.
32 2021-10-11  Doug Rupp  <rupp@adacore.com>
34         * libgnat/s-thread.ads: Fix comments.  Remove unused package
35         imports.
36         (Thread_Body_Exception_Exit): Remove Exception_Occurrence
37         parameter.
38         (ATSD): Declare type locally.
39         * libgnat/s-thread__ae653.adb: Fix comments.  Remove unused
40         package imports.  Remove package references to Stack_Limit
41         checking.
42         (Install_Handler): Remove.
43         (Set_Sec_Stack): Likewise.
44         (Thread_Body_Enter): Remove calls to Install_Handler and
45         Stack_Limit checking.
46         (Thread_Body_Exception_Exit): Remove Exception_Occurrence
47         parameter.
48         (Init_RTS): Call local Get_Sec_Stack.  Remove call to
49         Install_Handler.  Remove references to accessors for
50         Get_Sec_Stack and Set_Sec_Stack.  Remove OS check.
51         (Set_Sec_Stack): Remove.
53 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
55         * exp_ch3.adb (Make_Predefined_Primitive_Specs,
56         Predefined_Primitive_Bodies): Remove guard with restriction
57         No_Dispatching_Calls.
59 2021-10-11  Steve Baird  <baird@adacore.com>
61         * sem_attr.adb (Analyze_Attribute_Old_Result): Permit an
62         attribute reference inside a compiler-generated _Postconditions
63         procedure. In this case, Subp_Decl is assigned the declaration
64         of the enclosing subprogram.
65         * exp_util.adb (Insert_Actions): When climbing up the tree
66         looking for an insertion point, do not climb past an
67         N_Iterated_Component/Element_Association, since this could
68         result in inserting a reference to a loop parameter at a
69         location outside of the scope of that loop parameter. On the
70         other hand, be careful to preserve existing behavior in the case
71         of an N_Component_Association node.
73 2021-10-11  Steve Baird  <baird@adacore.com>
75         * exp_ch6.adb (Can_Fold_Predicate_Call): Do not attempt folding
76         if there is more than one predicate involved. Recall that
77         predicate aspect specification are additive, not overriding, and
78         that there are three different predicate
79         aspects (Dynamic_Predicate, Static_Predicate, and the
80         GNAT-defined Predicate aspect). These various ways of
81         introducing multiple predicates are all checked for.  A new
82         nested function, Augments_Other_Dynamic_Predicate, is
83         introduced.
84         * sem_ch4.adb
85         (Analyze_Indexed_Component_Form.Process_Function_Call): When
86         determining whether a name like "X (Some_Discrete_Type)" might
87         be interpreted as a slice, the answer should be "no" if the
88         type/subtype name denotes the current instance of type/subtype.
90 2021-10-11  Patrick Bernardi  <bernardi@adacore.com>
92         * libgnarl/s-osinte__rtems.ads: Change sigset_t to an unsigned
93         long.
95 2021-10-11  Patrick Bernardi  <bernardi@adacore.com>
97         * libgnat/s-parame__rtems.adb: use
98         _POSIX_Threads_Minimum_stack_size instead of
99         ada_pthread_minimum_stack_size.
101 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
103         * fe.h (No_Exception_Propagation_Active): Declare.
104         * restrict.ads (No_Exception_Propagation_Active): Add WARNING line.
106 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
108         * sem_ch13.adb (Validate_Unchecked_Conversion): Simplify code
109         for detecting conversions with Ada.Calendar.Time type and extend
110         it to similar types in the Ada.Real_Time package.
112 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
114         * sem_ch10.adb, sem_prag.adb, sem_util.adb: Use
115         N_Generic_Declaration in membership tests.
117 2021-10-11  Etienne Servais  <servais@adacore.com>
119         * ali.adb (Get_Name): Ignore_Spaces is always False.
120         * bindo-graphs.adb (Set_Is_Existing_Source_Target_Relation): Val
121         is always True.
122         * cstand.adb (New_Standard_Entity): New_Node_Kind is always
123         N_Defininig_Identifier.
124         * exp_ch3.adb (Predef_Stream_Attr_Spec): For_Body is always
125         False.
126         * exp_dist.adb (Add_Parameter_To_NVList): RACW_Ctrl is always
127         False.
128         * gnatls.adb (Add_Directories): Prepend is always False.
129         * sem_ch10.adb, sem_ch10.ads (Load_Needed_Body): Do_Analyze is
130         always True.
131         * sem_ch3.adb, sem_ch3.ads (Process_Range_Expr_In_Decl):
132         R_Check_Off is always False.
133         * sem_elab.adb: (Info_Variable_Reference): Info_Msg is always
134         False, In_SPARK is always True.
135         (Set_Is_Traversed_Body, Set_Is_Saved_Construct,
136         Set_Is_Saved_Relation): Val is always True.
137         * treepr.adb (Visit_Descendant): No_Indent is always False.
138         (Print_Node): Fmt does not need such a big scope.
140 2021-10-11  Etienne Servais  <servais@adacore.com>
142         * sem_ch4.adb (Analyze_Membership_Op): Finds interpretation for
143         the case of a membership test with a singleton value in case of
144         overloading.
146 2021-10-11  Patrick Bernardi  <bernardi@adacore.com>
148         * Makefile.rtl (VxWorks): Rename s-inmaop__vxworks.adb to
149         s-inmaop__hwint.adb.
150         (RTEMS): Use s-inmaop__hwint.adb, s-intman__rtems.adb/s,
151         s-taprop__rtems.adb.
152         * libgnarl/a-intnam__rtems.ads: Remove signals definitions and
153         replace with Hardware_Interrupts.
154         * libgnarl/s-inmaop__vxworks.adb: Rename as...
155         * libgnarl/s-inmaop__hwint.adb: ... this.
156         * libgnarl/s-interr__hwint.adb: Remove unnecessary comments.
157         * libgnarl/s-intman__rtems.ads, libgnarl/s-intman__rtems.adb:
158         New files.
159         * libgnarl/s-osinte__rtems.adb: Add RTEMS API bindings.
160         (Binary_Semaphore_Create, Binary_Semaphore_Delete,
161         Binary_Semaphore_Obtain, Binary_Semaphore_Release,
162         Binary_Semaphore_Flush, Interrupt_Connect,
163         Interrupt_Number_To_Vector): New functions.
164         * libgnarl/s-osinte__rtems.ads (Num_HW_Interrupts, Signal):
165         Removed.
166         (NSIG, Interrupt_Range): New.
167         (Binary_Semaphore_Create, Binary_Semaphore_Delete,
168         Binary_Semaphore_Obtain, Binary_Semaphore_Release,
169         Binary_Semaphore_Flush, Interrupt_Connect,
170         Interrupt_Number_To_Vector): Remove Import pragma.
171         * libgnarl/s-taprop__rtems.adb: New file.
173 2021-10-11  Eric Botcazou  <ebotcazou@adacore.com>
175         * exp_fixd.adb (Get_Size_For_Value): New function returning a size
176         suitable for a non-negative integer value.
177         (Get_Type_For_Size): New function returning a standard type suitable
178         for a size.
179         (Build_Divide): Call both functions to compute the result type, but
180         make sure to pass a non-negative value to the first.
181         (Build_Multiply): Likewise.
182         (Do_Multiply_Fixed_Universal): Minor consistency tweak.
183         (Integer_Literal): Call both functions to compute the type.
185 2021-10-11  Etienne Servais  <servais@adacore.com>
187         * sem_ch4.adb (Analyze_Membership_Op): Reorder subprogram spec
188         and bodies in alphabetical order.
190 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
192         * exp_util.adb (Build_Class_Wide_Expression): Replace entities
193         of both simple and extended names.
195 2021-10-11  Ghjuvan Lacambre  <lacambre@adacore.com>
197         * libgnarl/s-intman__android.adb, libgnarl/s-intman__lynxos.adb,
198         libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb,
199         libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb,
200         libgnarl/s-taprob.adb, libgnarl/s-taprop__hpux-dce.adb,
201         libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
202         libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
203         libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
204         libgnarl/s-taskin.adb, libgnarl/s-tasque.adb,
205         libgnarl/s-tpoben.adb, libgnat/a-calend.adb,
206         libgnat/a-excach.adb, libgnat/a-except.adb, libgnat/a-tags.adb,
207         libgnat/a-textio.adb, libgnat/a-witeio.adb,
208         libgnat/a-ztexio.adb, libgnat/g-binenv.adb,
209         libgnat/s-parame.adb, libgnat/s-parame__vxworks.adb,
210         libgnat/s-stratt.adb, libgnat/s-trasym__dwarf.adb: Mark imported
211         binder globals as constant.
213 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
215         * exp_aggr.adb (Initialize_Record_Component): Add assertion
216         about one of the parameters, so that illegal attempts to
217         initialize record components with Empty node are detected early
218         on.
219         (Build_Record_Aggr_Code): Handle boxes in aggregate component
220         associations just the components with no initialization in
221         Build_Record_Init_Proc.
222         * sem_aggr.adb (Resolve_Record_Aggregate): For components that
223         require simple initialization carry boxes from resolution to
224         expansion.
225         * sem_util.adb (Needs_Simple_Initialization): Remove redundant
226         paren.
228 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
230         * exp_ch3.adb (Build_Init_Statements): Simplify detection of
231         concurrent record types.
233 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
235         * exp_aggr.adb (Is_Delayed_Aggregate): Simplify.
237 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
239         * exp_aggr.adb (Has_Default_Init_Comps): Simplify.
241 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
243         * exp_aggr.adb (Component_OK_For_Backend): Remove redundant
244         guard.
246 2021-10-11  Patrick Bernardi  <bernardi@adacore.com>
248         * Makefile.rtl (RTEMS): Add s-stchop.o to
249         EXTRA_GNATRTL_NONTASKING_OBJS, remove s-stchop__rtems.adb.
250         * libgnat/s-stchop__rtems.adb: Removed.
252 2021-10-11  Marc Poulhiès  <poulhies@adacore.com>
254         * expander.adb (Expand): Skip clearing of Analyzed flag if
255         already set for N_Real_Literal.
257 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
259         * sem_util.adb (Compile_Time_Constraint_Error): Simplify getting
260         the type of the first formal parameter.
262 2021-10-11  Piotr Trojanek  <trojanek@adacore.com>
264         * exp_util.adb (Inside_Init_Proc): Simplify.
265         * sem_aggr.adb (Resolve_Record_Aggregate): Fix style.
266         * sem_util.adb (Compile_Time_Constraint_Error): Guard against
267         calling Corresponding_Concurrent_Type with an array type entity.
269 2021-10-11  Doug Rupp  <rupp@adacore.com>
271         * libgnat/s-parame__ae653.ads (time_t_bits): Change to
272         Long_Long_Integer'Size.  Add some comments to explain.
274 2021-10-08  Martin Liska  <mliska@suse.cz>
276         * gcc-interface/misc.c (gnat_post_options): Use new macro
277         OPTION_SET_P.
278         (gnat_init_gcc_eh): Likewise.
279         (gnat_init_gcc_fp): Likewise.
281 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
283         * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values
284         referenced in pragmas.
286 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
288         * gcc-interface/trans.c (Subprogram_Body_to_gnu): Do not set the
289         DECL_DISREGARD_INLINE_LIMITS flag if -gnatd.8 is specified.
291 2021-10-05  Bob Duff  <duff@adacore.com>
293         * gcc-interface/trans.c (set_end_locus_from_node): Check that
294         Handled_Statement_Sequence is not Empty before calling
295         End_Label, because the Empty node has no End_Label, and
296         depending on the exact node layout chosen by gen_il, calling
297         End_Label might crash, or might work OK by accident.
299 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
301         * gcc-interface/cuintp.c: Adjust placement of include directive.
302         * gcc-interface/targtyps.c: Likewise.
304 2021-10-05  Alexandre Oliva  <oliva@adacore.com>
306         * doc/gnat_rm.rst: Add...
307         * doc/gnat_rm/security_hardening_features.rst: New.
308         * doc/gnat_rm/about_this_guide.rst: Link to new chapter.
309         * gnat_rm.texi: Regenerate.
310         * gcc-interface/utils.c (handle_strub_attribute): New.
311         (gnat_internal_attribute_table): Add strub.
312         * libgnat/a-except.adb: Make Rcheck_CE_* strub-callable.
313         * libgnat/a-except.ads (Raise_Exception): Likewise.
314         (Raise_Exception_Always): Likewise.
315         * libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128):
316         Likewise.
317         * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64):
318         Likewise.
319         * libgnat/s-secsta.ads (SS_Allocate, SS_Mark, SS_Release):
320         Likewise.
322 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
324         * exp_ch9.adb (Install_Private_Data_Declarations): Copy the Sloc of
325         components for the local renamings as well as the Comes_From_Source
326         flag, and also set Warnings_Off on them.  Use Nam local variable.
328 2021-10-05  Arnaud Charlet  <charlet@adacore.com>
330         * libgnarl/a-tasini.ads (Set_Initialization_Handler): Update
331         comments.
333 2021-10-05  Corentin Gay  <gay@adacore.com>
335         * init.c (QNX): Add #include errno.h.
337 2021-10-05  Eric Botcazou  <ebotcazou@adacore.com>
339         * exp_attr.adb (Expand_Fpt_Attribute): Likewise.
340         * snames.ads-tmpl (Name_Unaligned_Valid): Delete.
342 2021-10-05  Etienne Servais  <servais@adacore.com>
344         * sem_prag.adb (Analyze_Pragma): Forbid use of
345         Compile_Time_(Error|Warning) as configuration pragma.
346         * doc/gnat_ugn/the_gnat_compilation_model.rst:
347         Compile_Time_(Error|Warning) and Compiler_Unit(_Warning) are not
348         configuration pragmas and shall not be listed as such.  The
349         following pragmas are either obsolete or undocumented:
350         No_Run_Time, Propagate_Exceptions, Rational, Ravenscar,
351         Restricted_Run_Time, Short_Descriptors, Universal_Data.  Fix
352         some typos (notably on Restriction_Warnings).
353         * doc/gnat_rm/implementation_defined_pragmas.rst: Move
354         Rename_Pragma documentation to alphabetical order.
355         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
357 2021-10-05  Corentin Gay  <gay@adacore.com>
359         * adaint.c (QNX): Add #include for sys/time.h.
361 2021-10-05  Pascal Obry  <obry@adacore.com>
363         * libgnat/g-forstr.adb (Next_Format): When there is no more
364         format specifier found issue a proper error message instead of
365         raising a contraint error.
367 2021-10-05  Pascal Obry  <obry@adacore.com>
369         * libgnat/g-forstr.adb (Get_Formatted): Fix computation of the
370         number of zero to use in the formatted string. This was a wrong
371         copy/paste.
373 2021-10-05  Pascal Obry  <obry@adacore.com>
375         * libgnat/g-forstr.adb (Get_Formatted): Minor code clean-up.
377 2021-10-05  Etienne Servais  <servais@adacore.com>
379         * libgnat/a-zchhan.ads, libgnat/a-zchhan.adb
380         (Character_Set_Version, Is_Basic, To_Basic): New.
381         * libgnat/a-zchuni.ads, libgnat/a-zchuni.adb (Is_Basic,
382         To_Basic): New.
384 2021-10-05  Yannick Moy  <moy@adacore.com>
386         * sem_aggr.adb (Resolve_Array_Aggregate): Improve error message.
388 2021-10-05  Gary Dismukes  <dismukes@adacore.com>
390         * aspects.ads (type Aspect_Id): Add
391         Aspect_Designated_Storage_Model and Aspect_Storage_Model_Type.
392         (Aspect_Argument): Add associations for the above new aspects.
393         (Is_Representation_Aspect): Likewise.
394         (Aspect_Names, Aspect_Delay): Likewise.
395         * exp_ch4.adb (Expand_N_Allocator): Call Find_Storage_Op rather
396         than Find_Prim_Op.
397         * exp_intr.adb (Expand_Unc_Deallocation): Likewise.
398         * exp_util.ads (Find_Storage_Op): New function that locates
399         either a primitive operation of a storage pool or an operation
400         of a storage-model type specified in its Storage_Model_Type
401         aspect.
402         * exp_util.adb (Find_Storage_Op): New function that calls either
403         Find_Prim_Op or Get_Storage_Model_Type_Entity to locate a
404         storage-related operation that is associated with a type.
405         * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Analyzes,
406         resolves, and validates the arguments of aspect
407         Designated_Storage_Model_Type.
408         (Analyze_Aspect_Specifications): Sets delay-related flags on
409         storage-model aspects when Delay_Required. Checks that aspect
410         Designated_Storage_Model is only specified for an access type
411         and that aspect Storage_Model_Type is only specified on an
412         immutably limited type. Also records such aspects for their
413         associated types.
414         (Check_Aspect_At_Freeze_Point): Resolve each of the argument
415         associations given for a Storage_Model_Type aspect.
416         (Resolve_Storage_Model_Type_Argument): New procedure that
417         resolves an argument given in the association for a given entity
418         name associated with a type with aspect Storage_Model_Type,
419         ensuring that it has the proper kind or profile.
420         (Validate_Storage_Model_Type_Aspect): New procedure that checks
421         the legality and completeness of the entity associations given
422         in a Storage_Model_Type aspect.
423         * sem_util.ads (package Storage_Model_Support): New nested
424         package that encapsulates a set of convenient utility functions
425         for retrieving entities, etc. associated with
426         storage-model-related types and objects.
427         (Get_Storage_Model_Type_Entity): New function to return a
428         specified entity associated with a type that has aspect
429         Storage_Model_Type.
430         (Has_Designated_Storage_Model_Aspect): New function that returns
431         whether a type has aspect Designated_Storage_Model.
432         (Has_Storage_Model_Type_Aspect): New function that returns
433         whether a type has aspect Storage_Model_Type.
434         (Storage_Model_Object): New function that returns the object
435         Entity_Id associated with a type's Designated_Storage_Model
436         aspect.
437         (Storage_Model_Type): New function that returns the type
438         associated with a storage-model object (when the object's type
439         specifies Storage_Model_Type).
440         (Storage_Model_Address_Type): New function that returns the
441         Address_Type associated with a type that has aspect
442         Storage_Model_Type.
443         (Storage_Model_Null_Address): New function that returns the
444         Null_Address constant associated with a type that has aspect
445         Storage_Model_Type.
446         (Storage_Model_Allocate): New function that returns the Allocate
447         procedure associated with a type that has aspect
448         Storage_Model_Type.
449         (Storage_Model_Deallocate): New function that returns the
450         Deallocate procedure associated with a type that has aspect
451         Storage_Model_Type.
452         (Storage_Model_Copy_From): New function that returns the
453         Copy_From procedure associated with a type that has aspect
454         Storage_Model_Type.
455         (Storage_Model_Copy_To): New function that returns the Copy_To
456         procedure associated with a type that has aspect
457         Storage_Model_Type.
458         (Storage_Model_Storage_Size): New function that returns the
459         Storage_Size function associated with a type that has aspect
460         Storage_Model_Type.
461         * sem_util.adb (package Storage_Model_Support): Body of new
462         nested package that contains the implementations the utility
463         functions declared in the spec of this package.
464         * snames.ads-tmpl: Add new names Name_Designated_Storage_Pool,
465         Name_Storage_Model, Name_Storage_Model_Type, Name_Address_Type,
466         Name_Copy_From, Name_Copy_To, and Name_Null_Address for the new
467         aspects and associated aspect arguments.
469 2021-10-05  Richard Kenner  <kenner@adacore.com>
471         * debug.adb: Add documentation for -gnatd_t.
473 2021-10-05  Corentin Gay  <gay@adacore.com>
475         * sysdep.c (__gnat_is_file_not_found_error): Add else if case.
477 2021-10-05  Piotr Trojanek  <trojanek@adacore.com>
479         * exp_util.adb (Build_Class_Wide_Expression): Replace entities
480         of both identifiers and operator symbols.
482 2021-10-05  Piotr Trojanek  <trojanek@adacore.com>
484         * sem_ch3.adb (Derive_Subprogram): Copy ghost status from parent
485         to derived subprogram.
487 2021-10-05  Joffrey Huguet  <huguet@adacore.com>
489         * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add
490         Default_Initial_Condition to Unbounded_String.
492 2021-10-05  Claire Dross  <dross@adacore.com>
494         * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable
495         contract cases at execution.
496         * libgnat/a-cfinve.ads: Idem.
497         * libgnat/a-cofove.ads: Idem.
498         * libgnat/a-cfhase.ads: Idem.
499         * libgnat/a-cfhama.ads: Idem.
500         * libgnat/a-cforse.ads: Idem.
501         * libgnat/a-cforma.ads: Idem.
503 2021-10-05  Bob Duff  <duff@adacore.com>
505         * par-ch4.adb (P_Iterated_Component_Association): Parse these
506         features the same way in all language versions.  Move the call
507         to Error_Msg_Ada_2022_Feature into semantic analysis.
508         * sem_aggr.adb (Resolve_Iterated_Component_Association,
509         Resolve_Iterated_Association): Move the call to
510         Error_Msg_Ada_2022_Feature here from par-ch4.adb.
512 2021-10-05  Yannick Moy  <moy@adacore.com>
514         * sem_res.adb (Resolve): Recognize specially that case.
516 2021-10-05  Yannick Moy  <moy@adacore.com>
518         * libgnat/a-strmap.adb: Add ghost code for proof.
519         (To_Range): This is the most involved proof, as it requires
520         creating the result of the call to To_Domain as a ghost
521         variable, and show the unicity of this result in order to prove
522         the postcondition.
523         * libgnat/a-strmap.ads: (SPARK_Proof_Sorted_Character_Sequence):
524         New ghost function.
525         (To_Domain): Add postcondition regarding sorting of result.
526         (To_Range): Fix postcondition that should compare Length instead
527         of Last for the results of To_Domain and To_Range, as the value
528         of Last for an empty result is not specified in the Ada RM.
530 2021-10-05  Yannick Moy  <moy@adacore.com>
532         * libgnat/a-chahan.adb: Add loop invariants as needed to prove
533         subprograms.  Also use extended return statements where
534         appropriate and not done already.  Mark data with
535         Relaxed_Initialization where needed for initialization by parts.
536         Convert regular functions to expression functions where needed
537         for proof.
538         * libgnat/a-chahan.ads: Add postconditions.
539         * libgnat/a-strmap.ads (Model): New ghost function to create a
540         publicly visible model of the private data Character_Mapping,
541         needed in order to prove subprograms in Ada.Characters.Handling.
543 2021-10-04  Justin Squirek  <squirek@adacore.com>
545         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
546         Add new entry for No_Dynamic_Accessibility_Checks documenting
547         behavior.
548         * gnat_rm.texi: Regenerate.
549         * exp_ch4.adb (Expand_N_In): Perform special expansion for
550         membership tests when No_Dynamic_Accessibility_Checks is active.
551         * sem_attr.adb (Resolve_Attribute): Skip static accessibility
552         check on actuals for anonymous access type formal parameters,
553         and add constants for readability.
554         * sem_util.adb (Function_Call_Or_Allocator_Level): Use the
555         innermost master for determining the level for function calls
556         within the alternative accessibility model.
557         (Type_Access_Level): Properly get the level for anonymous access
558         function result types.
560 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
562         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
563         (gnateA): This switch no longer looks at the formal parameter
564         type being composite (as originally mandated by SPARK), but in
565         the parameter passing mechanism being not specified (as
566         currently mandated by Ada).
567         * gnat_ugn.texi: Regenerate.
569 2021-10-04  Ed Schonberg  <schonberg@adacore.com>
571         * sem_ch6.adb (Analyze_Operator_Symbol): Recognize strings as
572         operator names when they are the value of one of the Ada2022
573         aspects for User_Defined_Literals.
574         * sem_ch13.adb (Analyze_One_Aspect): Handle an aspect value
575         given by an Operator_Name.
576         (Validate_Literal_Aspect): Call Analyze_Operator_Symbol when
577         needed.
579 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
581         * gen_il-gen.adb (Put_Make_Spec): Don't emit the LF character in
582         the middle of a string, because the Put routine won't indent it
583         properly.
585 2021-10-04  Ghjuvan Lacambre  <lacambre@adacore.com>
587         * gnat_cuda.adb (Remove_CUDA_Device_Entities): New function.
588         (Expand_CUDA_Package): Call Remove_CUDA_Device_Entities.
589         * gnat_cuda.ads (Expand_CUDA_Package): Expand documentation.
590         * sem_prag.adb (Analyze_Pragma): Remove warning about
591         CUDA_Device not being implemented.
593 2021-10-04  Gary Dismukes  <dismukes@adacore.com>
595         * sem_ch7.adb (Analyze_Package_Specification): For types marked
596         as Must_Have_Preelab_Init, we now check for the presence of a
597         Preelaborable_Initialization aspect on the type, and pass the
598         aspect's expression (if any) on the call to
599         Has_Preelaborable_Initialization (or pass Empty if the type has
600         no such aspect or the aspect has no associated expression).
601         * sem_util.ads (Has_Preelaborable_Initialization): Change
602         Boolean formal parameter Formal_Types_Have_Preelab_Init to
603         instead be a formal of type Node_Id (named Preelab_Init_Expr),
604         to allow passing an expression that may be a conjunction of
605         Preelaborable_Initialization aspects. Revise spec comment
606         accordingly (and remove ??? comment).
607         * sem_util.adb (Type_Named_In_Preelab_Init_Expression): New
608         nested function with a result indicating whether a given type is
609         named as the prefix of a Preelaborable_Initialization attribute
610         in the expression of a corresponding P_I aspect.
611         (Has_Preelaborable_Initialization): For generic formal derived
612         and private types, test whether the type is named in the
613         expression Preelab_Init_Expr (by calling
614         Type_Named_In_Preelab_Init_Expression), and if so, treat the
615         formal type as having preelaborable initialization (returning
616         True).
617         * libgnat/a-cobove.ads (Vector): Replace pragma
618         Preelaborable_Initialization with the aspect, specifying its
619         value as Element_Type'Preelaborable_Initialization.
620         (Cursor): Replace pragma P_I with the aspect (defaulting to
621         True).
622         * libgnat/a-cbdlli.ads (List): Replace pragma
623         Preelaborable_Initialization with the aspect, specifying its
624         value as Element_Type'Preelaborable_Initialization.
625         (Cursor): Replace pragma P_I with the aspect (defaulting to
626         True).
627         * libgnat/a-cbhama.ads (Map): Replace pragma
628         Preelaborable_Initialization with the aspect, specifying its
629         value as (Element_Type'Preelaborable_Initialization and
630         Key_Type'Preelaborable_Initialization).
631         (Cursor): Replace pragma P_I with the aspect (defaulting to
632         True).
633         * libgnat/a-cborma.ads (Map): Replace pragma
634         Preelaborable_Initialization with the aspect, specifying its
635         value as (Element_Type'Preelaborable_Initialization and
636         Key_Type'Preelaborable_Initialization).
637         (Cursor): Replace pragma P_I with the aspect (defaulting to
638         True).
639         * libgnat/a-cbhase.ads (Set): Replace pragma
640         Preelaborable_Initialization with the aspect, specifying its
641         value as Element_Type'Preelaborable_Initialization.
642         (Cursor): Replace pragma P_I with the aspect (defaulting to
643         True).
644         * libgnat/a-cborse.ads (Set): Replace pragma
645         Preelaborable_Initialization with the aspect, specifying its
646         value as Element_Type'Preelaborable_Initialization.
647         (Cursor): Replace pragma P_I with the aspect (defaulting to
648         True).
649         * libgnat/a-cbmutr.ads (Tree): Replace pragma
650         Preelaborable_Initialization with the aspect, specifying its
651         value as Element_Type'Preelaborable_Initialization.
652         (Cursor): Replace pragma P_I with the aspect (defaulting to
653         True).
654         * libgnat/a-coboho.ads (Holder): Replace pragma
655         Preelaborable_Initialization with the aspect, specifying its
656         value as Element_Type'Preelaborable_Initialization.
657         (Cursor): Replace pragma P_I with the aspect (defaulting to
658         True).
660 2021-10-04  Yannick Moy  <moy@adacore.com>
662         * libgnat/a-textio.adb: Mark body out of SPARK.
663         * libgnat/a-textio.ads: Mark spec in SPARK and private part out
664         of SPARK.
665         * sem.adb (Semantics.Do_Analyze): Similar to ghost code
666         attributes, save and restore value of
667         Ignore_SPARK_Mode_Pragmas_In_Instance.
669 2021-10-04  Bob Duff  <duff@adacore.com>
671         * libgnat/s-regpat.ads: Change Data_First to Data'First. Change
672         "still" to "always".  Similar changes for Data_Last.
674 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
676         * sprint.adb (Sprint_Node_Actual): Refactor code for generic
677         package and subprogram declarations.
679 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
681         * sem_res.adb (Resolve_Indexed_Component, Resolve_Slice): Rename
682         the local constant Name to Pref; remove repeated calls to
683         Prefix.
685 2021-10-04  Matthieu Eyraud  <eyraud@adacore.com>
687         * scos.ads: Extend the documentation.
688         * par_sco.adb (Process_Decisions): Emit specific SCOs for
689         quantified expressions.
691 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
693         * checks.adb (Selected_Range_Checks): Fix style.
694         * exp_ch4.adb (Expand_N_Slice): Fix style and comment.
695         * sem_res.adb (Resolve_Indexed_Component): Fix style.
697 2021-10-04  Yannick Moy  <moy@adacore.com>
699         * libgnat/a-strbou.ads: Add comments.
701 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
703         * sem_attr.adb (Eval_Attribute): Evaluation of attribute
704         Leading_Part with illegal second parameter is now similar to
705         evaluation of Remainder with its second parameter being zero.
707 2021-10-04  Ed Schonberg  <schonberg@adacore.com>
709         * sem_res.adb (Resolve_Declare_Expression): Use tree traversals
710         to perform name capture of local entities in the expression of
711         the construct.
712         * exp_util.adb (Possible_Side_Effects_In_SPARK): Do not apply to
713         the prefix of an attribute reference Reduce when that prefix is
714         an aggregate, because it will be expanded into a loop, and has
715         no identifiable type.
717 2021-10-04  Javier Miranda  <miranda@adacore.com>
719         * sem_ch8.adb (Build_Class_Wide_Wrapper): Fix handling of
720         class-wide subtypes; required to handle chains of
721         instantiations. Adding also code to identify these wrappers and
722         properly resolve instantiations where the wrapper and a tagged
723         type primitive are visible.
724         * einfo.ads (Is_Class_Wide_Wrapper): Adding documentation.
725         * gen_il-fields.ads (Opt_Field_Enum): Adding
726         Is_Class_Wide_Wrapper.
727         * gen_il-gen-gen_entities.adb (Root_Entity_Type): Adding
728         semantic flag Is_Class_Wide_Wrapper.
730 2021-10-04  Bob Duff  <duff@adacore.com>
732         * einfo.ads (Declaration_Node): Document that Declaration_Node
733         for Itypes.
734         * einfo-utils.adb (Declaration_Node): Make it return Empty for
735         Itypes, or a proper type or subtype declaration.
736         * gen_il-gen.adb: Minor comment improvement.
738 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
740         * sem_res.adb (Resolve_Slice): Fix application of range checks
741         to slice range given as a subtype name.
743 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
745         * sem_res.adb (Resolve_Slice): Handle range given as a subtype
746         indication.
748 2021-10-04  Piotr Trojanek  <trojanek@adacore.com>
750         * sem_res.adb (Resolve_Slice): Add custom handling of attribute
751         Image and similar in CodePeer mode. This complements the
752         existing custom handling of these attributes in
753         Expand_N_Attribute_Reference.
755 2021-10-04  Justin Squirek  <squirek@adacore.com>
757         * sem_util.adb (Is_Variable): Add check for implicitly
758         dereferenced access types
759         (Is_Dependent_Component_Of_Mutable_Object): Set Prefix_Type when
760         not specified.
762 2021-10-04  Eric Botcazou  <ebotcazou@adacore.com>
764         * doc/gnat_ugn/the_gnat_compilation_model.rst (Binding generation):
765         Document specific behavior for /include/-ending paths and update.
766         * gnat_ugn.texi: Regenerate.
768 2021-10-04  Arnaud Charlet  <charlet@adacore.com>
770         PR ada/102073
771         * socket.c (__gnat_gethostbyaddr, __gnat_inet_pton): Add missing
772         return statements.
774 2021-10-04  Justin Squirek  <squirek@adacore.com>
776         * sem_util.adb (Function_Or_Allocator_Level): Properly handle
777         direct function calls in the default alternative accessibility
778         checking mode.
780 2021-10-04  Javier Miranda  <miranda@adacore.com>
782         * sem_util.adb (Is_Library_Level_Entity): Return False for
783         entities defined in E_Loop scopes. This change is not required
784         by the frontend; it is required by tools that depend on the
785         frontend sources.
786         * einfo-utils.adb (Is_Dynamic_Scope): Code cleanup.
788 2021-10-04  Justin Squirek  <squirek@adacore.com>
790         * sem_util.adb (Accessibility_Level): Add a case to handle
791         renamed subprograms in addition to renamed objects.
793 2021-10-04  Doug Rupp  <rupp@adacore.com>
795         * libgnarl/s-osinte__vxworks.ads (tlsKeyCreate): Return int.
796         * libgnarl/s-tpopsp__vxworks-rtp.adb (ERROR): Declare from
797         System.VxWorks.Ext.ERROR.
798         (Initialize): Declare IERR. Assert it.
799         * libgnarl/s-tpopsp__vxworks.adb (ERROR): Declare from
800         System.VxWorks.Ext.ERROR.
801         (Is_Valid_Task): Declare IERR. Test return.
802         * libgnarl/s-vxwext__kernel.adb (semDelete): Return STATUS.
804 2021-10-04  Eric Botcazou  <ebotcazou@adacore.com>
806         * exp_disp.adb (Make_DT): Copy the Needs_Debug_Info flag from the
807         type onto the TSD object.
809 2021-10-04  Steve Baird  <baird@adacore.com>
811         * sem_util.adb (Is_Repeatedly_Evaluated): Handle the case of an
812         Old attribute reference that occurs within what was originally a
813         quantified expression but which expansion has transformed into
814         an Expression_With_Actions.
816 2021-10-04  Steve Baird  <baird@adacore.com>
818         * exp_ch4.adb (Expand_N_Indexed_Component): The two improvements
819         described above.
821 2021-10-01  Bob Duff  <duff@adacore.com>
823         * exp_ch6.adb (Expand_Call_Helper): Do not call
824         Check_Subprogram_Variant if the subprogram is an ignored ghost
825         entity. Otherwise the compiler crashes (in debug builds) or
826         gives strange error messages (in production builds).
828 2021-10-01  Ghjuvan Lacambre  <lacambre@adacore.com>
830         * gnat_cuda.adb (Empty_CUDA_Global_Subprograms): New procedure.
831         (Expand_CUDA_Package): Call Empty_CUDA_Global_Subprograms.
833 2021-10-01  Steve Baird  <baird@adacore.com>
835         * checks.ads: Define a type Dimension_Set. Add an out-mode
836         parameter of this new type to Generate_Index_Checks so that
837         callers can know for which dimensions a check was generated. Add
838         an in-mode parameter of this new type to
839         Apply_Subscript_Validity_Checks so that callers can indicate
840         that no check is needed for certain dimensions.
841         * checks.adb (Generate_Index_Checks): Implement new
842         Checks_Generated parameter.
843         (Apply_Subscript_Validity_Checks): Implement new No_Check_Needed
844         parameter.
845         * exp_ch4.adb (Expand_N_Indexed_Component): Call
846         Apply_Subscript_Validity_Checks in more cases than before. This
847         includes declaring two new local functions,
848         (Is_Renamed_Variable_Name,
849         Type_Requires_Subscript_Validity_Checks_For_Reads): To help in
850         deciding whether to call Apply_Subscript_Validity_Checks.
851         Adjust to parameter profile changes in Generate_Index_Checks and
852         Apply_Subscript_Validity_Checks.
854 2021-10-01  Eric Botcazou  <ebotcazou@adacore.com>
856         * doc/gnat_rm/implementation_defined_characteristics.rst: Document
857         the rounding mode assumed for dynamic computations as per 3.5.7(16).
858         * gnat_rm.texi: Regenerate.
860 2021-10-01  Bob Duff  <duff@adacore.com>
862         * table.ads (Table_Type): Remove "aliased"; no longer needed by
863         Atree.  Besides it contradicted the comment a few lines above,
864         "--  Note: We do not make the table components aliased...".
865         * types.ads: Move type Slot to Atree.
866         * atree.ads: Move type Slot fromt Types to here.  Move type
867         Node_Header from Seinfo to here.
868         * atree.adb: Avoid the need for aliased components of the Slots
869         table.  Instead of 'Access, use a getter and setter.  Misc
870         cleanups.
871         (Print_Statistics): Print statistics about node and entity kind
872         frequencies. Give 3 digit fractions instead of percentages.
873         * (Get_Original_Node_Count, Set_Original_Node_Count): Statistics
874         for calls to Original_Node and Set_Original_Node.
875         (Original_Node, Set_Original_Node): Gather statistics by calling
876         the above.
877         (Print_Field_Statistics): Print Original_Node statistics.
878         (Update_Kind_Statistics): Remove, and put all statistics
879         gathering under "if Atree_Statistics_Enabled", which is a flag
880         generated in Seinfo by Gen_IL.
881         * gen_il-gen.adb (Compute_Field_Offsets): Choose offsets of
882         Nkind, Ekind, and Homonym first. This causes a slight efficiency
883         improvement.  Misc cleanups.  Do not generate Node_Header; it is
884         now hand-written in Atree.  When choosing the order in which to
885         assign offsets, weight by the frequency of the node type, so the
886         more common nodes get their field offsets assigned earlier.  Add
887         more special cases.
888         (Compute_Type_Sizes): Remove this and related things.
889         There was a comment: "At some point we can instrument Atree to
890         print out accurate size statistics, and remove this code." We
891         have Atree statistics, so we now remove this code.
892         (Put_Seinfo): Generate Atree_Statistics_Enabled, which is equal
893         to Statistics_Enabled. This allows Atree to say "if
894         Atree_Statistics_Enabled then <gather statistics>" for
895         efficiency. When Atree_Statistics_Enabled is False, the "if ..."
896         will be optimized away.
897         * gen_il-internals.ads (Type_Frequency): New table of kind
898         frequencies.
899         * gen_il-internals.adb: Minor comment improvement.
900         * gen_il-fields.ads: Remove unused subtypes.  Suppress style
901         checks in the Type_Frequency table.  If we regenerate this
902         table (see -gnatd.A) we don't want to have to fiddle with
903         casing.
904         * impunit.adb: Minor.
905         * sinfo-utils.adb: Minor.
906         * debug.adb: Minor comment improvement.
908 2021-10-01  Eric Botcazou  <ebotcazou@adacore.com>
910         * sem_type.adb (Specific_Type): Check that the type is tagged
911         before calling Interface_Present_In_Ancestor on it.
913 2021-10-01  Eric Botcazou  <ebotcazou@adacore.com>
915         * debug.adb (d.8): Document usage.
916         * fe.h (Debug_Flag_Dot_8): Declare.
918 2021-10-01  Gary Dismukes  <dismukes@adacore.com>
920         * sem_util.adb (Enter_Name): Suppress hiding warning when in an
921         instance.
923 2021-10-01  Ed Schonberg  <schonberg@adacore.com>
925         * sem_attr.adb (Analyze_Attribute, case Type_Key): Attribute can
926         be applied to a formal type.
927         * sem_ch5.adb (Analyze_Case_Statement): If Extensions_Allowed is
928         not enabled, verify that the type of the expression is discrete.
930 2021-10-01  Justin Squirek  <squirek@adacore.com>
932         * exp_dbug.adb (Debug_Renaming_Declaration): Add check for
933         Entity present for Ren to prevent looking at unanalyzed nodes
935 2021-10-01  Ghjuvan Lacambre  <lacambre@adacore.com>
937         * atree.adb (Print_Statistics): Help CodePeer see Total as
938         greater than zero.
939         * gen_il-gen.adb (One_Comp): Annotate Field_Table as Modified.
941 2021-10-01  Richard Kenner  <kenner@adacore.com>
943         * gen_il-gen-gen_entities.adb (Evaluable_Kind,
944         Global_Name_Kind): Add.
945         * gen_il-types.ads (Evaluable_Kind, Global_Name_Kind): Likewise.
947 2021-10-01  Ghjuvan Lacambre  <lacambre@adacore.com>
949         * aspects.ads: Add CUDA_Device aspect.
950         * gnat_cuda.ads (Add_CUDA_Device_Entity): New subprogram.
951         * gnat_cuda.adb:
952         (Add_CUDA_Device_Entity): New subprogram.
953         (CUDA_Device_Entities_Table): New hashmap for CUDA_Device
954         entities.
955         (Get_CUDA_Device_Entities): New internal subprogram.
956         (Set_CUDA_Device_Entities): New internal subprogram.
957         * par-prag.adb (Prag): Handle pragma id Pragma_CUDA_Device.
958         * sem_prag.ads (Aspect_Specifying_Pragma): Mark CUDA_Device as
959         being both aspect and pragma.
960         * sem_prag.adb (Analyze_Pragma): Add CUDA_Device entities to
961         list of CUDA_Entities belonging to package N.
962         (Sig_Flags): Signal CUDA_Device entities as referenced.
963         * snames.ads-tmpl: Create CUDA_Device names and pragmas.
965 2021-10-01  Gary Dismukes  <dismukes@adacore.com>
967         * exp_util.adb (Build_DIC_Procedure_Body): Remove inappropriate
968         Assert pragma.  Remove unneeded and dead code related to derived
969         private types.
971 2021-10-01  Richard Kenner  <kenner@adacore.com>
973         * gen_il-gen-gen_nodes.adb (N_Alternative, N_Is_Case_Choice):
974         Add.
975         (N_Is_Exception_Choice, N_Is_Range): Likewise.
976         * gen_il-types.ads: Add above names.
977         * gen_il-gen.adb (Put_Union_Membership): Write both declarations
978         and definitions of union functions.
980 2021-10-01  Ed Schonberg  <schonberg@adacore.com>
982         * exp_aggr.adb (Expand_Array_Aggregate,
983         Two_Pass_Aggregate_Expansion): Increment index for element
984         insertion within the loop, only if upper bound has not been
985         reached.
987 2021-10-01  Javier Miranda  <miranda@adacore.com>
989         * contracts.ads (Make_Class_Precondition_Subps): New subprogram.
990         (Merge_Class_Conditions): New subprogram.
991         (Process_Class_Conditions_At_Freeze_Point): New subprogram.
992         * contracts.adb (Check_Class_Condition): New subprogram.
993         (Set_Class_Condition): New subprogram.
994         (Analyze_Contracts): Remove code analyzing class-wide-clone
995         subprogram since it is no longer built.
996         (Process_Spec_Postconditions): Avoid processing twice seen
997         subprograms.
998         (Process_Preconditions): Simplify its functionality to
999         non-class-wide preconditions.
1000         (Process_Preconditions_For): No action needed for wrappers and
1001         helpers.
1002         (Make_Class_Precondition_Subps): New subprogram.
1003         (Process_Class_Conditions_At_Freeze_Point): New subprogram.
1004         (Merge_Class_Conditions): New subprogram.
1005         * exp_ch6.ads (Install_Class_Preconditions_Check): New
1006         subprogram.
1007         * exp_ch6.adb (Expand_Call_Helper): Install class-wide
1008         preconditions check on dispatching primitives that have or
1009         inherit class-wide preconditions.
1010         (Freeze_Subprogram): Remove code for null procedures with
1011         preconditions.
1012         (Install_Class_Preconditions_Check): New subprogram.
1013         * exp_util.ads (Build_Class_Wide_Expression): Lower the
1014         complexity of this subprogram; out-mode formal Needs_Wrapper
1015         since this functionality is now provided by a new subprogram.
1016         (Get_Mapped_Entity): New subprogram.
1017         (Map_Formals): New subprogram.
1018         * exp_util.adb (Build_Class_Wide_Expression): Lower the
1019         complexity of this subprogram. Its previous functionality is now
1020         provided by subprograms Needs_Wrapper and Check_Class_Condition.
1021         (Add_Parent_DICs): Map the overridden primitive to the
1022         overriding one.
1023         (Get_Mapped_Entity): New subprogram.
1024         (Map_Formals): New subprogram.
1025         (Update_Primitives_Mapping): Adding assertion.
1026         * freeze.ads (Check_Inherited_Conditions): Subprogram made
1027         public with added formal to support late overriding.
1028         * freeze.adb (Check_Inherited_Conditions): New implementation;
1029         builds the dispatch table wrapper required for class-wide
1030         pre/postconditions; added support for late overriding.
1031         (Needs_Wrapper): New subprogram.
1032         * sem.ads (Inside_Class_Condition_Preanalysis): New global
1033         variable.
1034         * sem_disp.ads (Covered_Interface_Primitives): New subprogram.
1035         * sem_disp.adb (Covered_Interface_Primitives): New subprogram.
1036         (Check_Dispatching_Context): Skip checking context of
1037         dispatching calls during preanalysis of class-wide conditions
1038         since at that stage the expression is not installed yet on its
1039         definite context.
1040         (Check_Dispatching_Call): Skip checking 6.1.1(18.2/5) by
1041         AI12-0412 on helpers and wrappers internally built for
1042         supporting class-wide conditions; for late-overriding
1043         subprograms call Check_Inherited_Conditions to build the
1044         dispatch-table wrapper (if required).
1045         (Propagate_Tag): Adding call to
1046         Install_Class_Preconditions_Check.
1047         * sem_util.ads (Build_Class_Wide_Clone_Body): Removed.
1048         (Build_Class_Wide_Clone_Call): Removed.
1049         (Build_Class_Wide_Clone_Decl): Removed.
1050         (Class_Condition): New subprogram.
1051         (Nearest_Class_Condition_Subprogram): New subprogram.
1052         * sem_util.adb (Build_Class_Wide_Clone_Body): Removed.
1053         (Build_Class_Wide_Clone_Call): Removed.
1054         (Build_Class_Wide_Clone_Decl): Removed.
1055         (Class_Condition): New subprogram.
1056         (Nearest_Class_Condition_Subprogram): New subprogram.
1057         (Eligible_For_Conditional_Evaluation): No need to evaluate
1058         class-wide conditions during preanalysis since the expression is
1059         not installed on its definite context.
1060         * einfo.ads (Class_Wide_Clone): Removed.
1061         (Class_Postconditions): New attribute.
1062         (Class_Preconditions): New attribute.
1063         (Class_Preconditions_Subprogram): New attribute.
1064         (Dynamic_Call_Helper): New attribute.
1065         (Ignored_Class_Postconditions): New attribute.
1066         (Ignored_Class_Preconditions): New attribute.
1067         (Indirect_Call_Wrapper): New attribute.
1068         (Is_Dispatch_Table_Wrapper): New attribute.
1069         (Static_Call_Helper): New attribute.
1070         * exp_attr.adb (Expand_N_Attribute_Reference): When the prefix
1071         is of an access-to-subprogram type that has class-wide
1072         preconditions and an indirect-call wrapper of such subprogram is
1073         available, replace the prefix by the wrapper.
1074         * exp_ch3.adb (Build_Class_Condition_Subprograms): New
1075         subprogram.
1076         (Register_Dispatch_Table_Wrappers): New subprogram.
1077         * exp_disp.adb (Build_Class_Wide_Check): Removed; class-wide
1078         precondition checks now rely on internally built helpers.
1079         * sem_ch13.adb (Analyze_Aspect_Specifications): Set initial
1080         value of attributes Class_Preconditions, Class_Postconditions,
1081         Ignored_Class_Preconditions and Ignored_Class_Postconditions.
1082         These values are later updated with the full pre/postcondition
1083         by Merge_Class_Conditions.
1084         (Freeze_Entity_Checks): Call
1085         Process_Class_Conditions_At_Freeze_Point.
1086         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove code
1087         building the body of the class-wide clone subprogram since it is
1088         no longer required.
1089         (Install_Entity): Adding assertion.
1090         * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
1091         code building and analyzing the class-wide clone subprogram; no
1092         longer required.
1093         (Build_Pragma_Check_Equivalent): Adjust call to
1094         Build_Class_Wide_Expression since the formal named Needs_Wrapper
1095         has been removed.
1096         * sem_attr.adb (Analyze_Attribute_Old_Result): Skip processing
1097         these attributes during preanalysis of class-wide conditions
1098         since at that stage the expression is not installed yet on its
1099         definite context.
1100         * sem_res.adb (Resolve_Actuals): Skip applying RM 3.9.2(9/1) and
1101         SPARK RM 6.1.7(3) on actuals of internal helpers and wrappers
1102         built to support class-wide preconditions.
1103         * sem_ch5.adb (Process_Bounds): Do not generate a constant
1104         declaration for the bounds when we are preanalyzing a class-wide
1105         condition.
1106         (Analyze_Loop_Parameter_Specification): Handle preanalysis of
1107         quantified expression placed in the outermost expression of a
1108         class-wide condition.
1109         * ghost.adb (Check_Ghost_Context): No check required during
1110         preanalysis of class-wide conditions.
1111         * gen_il-fields.ads (Opt_Field_Enum): Adding
1112         Class_Postconditions, Class_Preconditions,
1113         Class_Preconditions_Subprogram, Dynamic_Call_Helper,
1114         Ignored_Class_Postconditions, Ignored_Class_Preconditions,
1115         Indirect_Call_Wrapper, Is_Dispatch_Table_Wrapper,
1116         Static_Call_Helper.
1117         * gen_il-gen-gen_entities.adb (Is_Dispatch_Table_Wrapper):
1118         Adding semantic flag Is_Dispatch_Table_Wrapper; removing
1119         semantic field Class_Wide_Clone; adding semantic fields for
1120         Class_Postconditions, Class_Preconditions,
1121         Class_Preconditions_Subprogram, Dynamic_Call_Helper,
1122         Ignored_Class_Postconditions, Indirect_Call_Wrapper,
1123         Ignored_Class_Preconditions, and Static_Call_Helper.
1125 2021-10-01  Piotr Trojanek  <trojanek@adacore.com>
1127         * comperr.adb (Delete_SCIL_Files): Handle generic subprogram
1128         declarations and renaming just like generic package declarations
1129         and renamings, respectively; handle
1130         N_Subprogram_Renaming_Declaration.
1132 2021-10-01  Steve Baird  <baird@adacore.com>
1134         * bcheck.adb (Check_Versions): Add support for the case where
1135         the .ali file contains both a primary and a secondary version
1136         number, as in "GNAT Lib v22.20210809".
1138 2021-10-01  Steve Baird  <baird@adacore.com>
1140         * sem_res.adb (Resolve): Two separate fixes. In the case where
1141         Find_Aspect for a literal aspect returns the aspect for a
1142         different (ancestor) type, call Corresponding_Primitive_Op to
1143         get the right callee. In the case where a downward tagged type
1144         conversion appears to be needed, generate a null extension
1145         aggregate instead, as per Ada RM 3.4(27).
1146         * sem_util.ads, sem_util.adb: Add new Corresponding_Primitive_Op
1147         function. It maps a primitive op of a tagged type and a
1148         descendant type of that tagged type to the corresponding
1149         primitive op of the descendant type. The body of this function
1150         was written by Javier Miranda.
1152 2021-10-01  Bob Duff  <duff@adacore.com>
1154         * atree.adb: Gather and print statistics about frequency of
1155         getter and setter calls.
1156         * atree.ads (Print_Statistics): New procedure for printing
1157         statistics.
1158         * debug.adb: Document -gnatd.A switch.
1159         * gen_il-gen.adb: Generate code for statistics gathering.
1160         Choose the offset of Homonym early.  Misc cleanup.  Put more
1161         comments in the generated code.
1162         * gen_il-internals.ads (Unknown_Offset): New value to indicate
1163         that the offset has not yet been chosen.
1164         * gnat1drv.adb: Call Print_Statistics.
1165         * libgnat/s-imglli.ads: Minor comment fix.
1166         * output.ads (Write_Int_64): New procedure to write a 64-bit
1167         value.  Needed for new statistics, and could come in handy
1168         elsewhere.
1169         * output.adb (Write_Int_64): Likewise.
1170         * sinfo.ads: Remove obsolete comment. The xtreeprs program no
1171         longer exists.
1172         * types.ads: New 64-bit types needed for new statistics.
1174 2021-10-01  Dmitriy Anisimkov  <anisimko@adacore.com>
1176         * libgnat/memtrack.adb (Putc): New routine wrapped around fputc
1177         with error check.
1178         (Write): New routine wrapped around fwrite with error check.
1179         Remove bound functions fopen, fwrite, fputs, fclose, OS_Exit.
1180         Use the similar routines from System.CRTL and System.OS_Lib.
1182 2021-10-01  Ed Schonberg  <schonberg@adacore.com>
1184         * exp_aggr.adb (Must_Slide): If the aggregate only contains an
1185         others_clause no sliding id involved. Otherwise sliding is
1186         required if any bound of the aggregate or the context subtype is
1187         non-static.
1189 2021-10-01  Richard Kenner  <kenner@adacore.com>
1191         * gen_il-gen-gen_nodes.adb (N_Is_Decl): Add.
1192         * gen_il-types.ads (N_Is_Decl): Likewise.
1194 2021-10-01  Richard Kenner  <kenner@adacore.com>
1196         * gen_il-gen-gen_nodes.adb (N_Entity_Name): Add.
1197         * gen_il-types.ads (N_Entity_Name): Likewise.
1199 2021-10-01  Steve Baird  <baird@adacore.com>
1201         * bcheck.adb (Check_Versions): In the case of an ali file
1202         version mismatch, if distinct integer values can be extracted
1203         from the two version strings then include those values in the
1204         generated error message.
1206 2021-10-01  Steve Baird  <baird@adacore.com>
1208         * sem_elab.adb (Is_Safe_Call): Return True in the case of a
1209         (possibly rewritten) call to an expression function.
1211 2021-10-01  Ghjuvan Lacambre  <lacambre@adacore.com>
1213         * sem_aggr.adb (Resolve_Iterated_Component_Association):
1214         Initialize Id_Typ to Any_Type by default.
1216 2021-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1218         * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Document
1219         that it works only with fixed-position executables.
1221 2021-10-01  Doug Rupp  <rupp@adacore.com>
1223         * libgnat/s-parame__vxworks.ads (time_t_bits): Change to
1224         Long_Long_Integer'Size.
1226 2021-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1228         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix comment.
1230 2021-09-23  Richard Kenner  <kenner@adacore.com>
1232         * gen_il-gen-gen_entities.adb (Subprogram_Body_Or_Type): Add.
1233         * gen_il-types.ads (Subprogram_Body_Or_Type): Likewise.
1235 2021-09-23  Richard Kenner  <kenner@adacore.com>
1237         * einfo-utils.adb (Next_Index): Verify input and output are
1238         N_Is_Index.
1239         * gen_il-gen-gen_nodes.adb (N_Has_Bounds, N_Is_Index): Add.
1240         * gen_il-types.ads (N_Has_Bounds, N_Is_Index): Likewise.
1241         * sem_ch3.adb (Array_Type_Declaration): Use Next, not
1242         Next_Index.
1243         * sem_ch12.adb (Formal_Dimensions): Likewise.
1244         * sem_util.adb (Is_Valid_Renaming): Likewise.
1246 2021-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1248         * doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize):
1249         Document new --load option and -g1 as minimal compilation
1250         requirement.
1252 2021-09-23  Piotr Trojanek  <trojanek@adacore.com>
1254         * sem_aggr.adb (Resolve_Array_Aggregate): Only keep the bounds
1255         for internally generated attributes; otherwise, compute them
1256                 anew.
1258 2021-09-23  Javier Miranda  <miranda@adacore.com>
1260         * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Decorate the
1261         wrapper with attribute Is_Wrapper, and move its declaration to
1262         the freezing actions of its type declaration; done to facilitate
1263         identifying it at later stages to avoid handling it as a
1264         primitive operation of a tagged type; otherwise it may be
1265         handled as a dispatching operation and erroneously registered in
1266         a dispatch table.
1267         (Make_Index): Add missing decoration of field Parent.
1268         * sem_disp.adb (Check_Dispatching_Operation): Complete
1269         decoration of late-overriding dispatching primitives.
1270         (Is_Access_To_Subprogram_Wrapper): New subprogram.
1271         (Inherited_Subprograms): Prevent cascaded errors; adding missing
1272         support for private types.
1273         * sem_type.adb (Add_One_Interp): Add missing support for the
1274         first interpretation of a primitive of an inmediate ancestor
1275         interface.
1276         * sem_util.adb (Check_Result_And_Post_State_In_Pragma): Do not
1277         report missing reference in postcondition placed in internally
1278         built wrappers.
1279         * exp_disp.adb (Expand_Dispatching_Call): Adding assertion.
1281 2021-09-23  Ed Schonberg  <schonberg@adacore.com>
1283         * sem_aggr.adb (Resolve_Array_Aggregate): Check the validity of
1284         an array aggregate all of whose components are iterated
1285         component associations.
1286         * exp_aggr.adb (Expand_Array_Aggregate,
1287         Two_Pass_Aggregate_Expansion): implement two-pass algorithm and
1288         replace original aggregate with resulting temporary, to ensure
1289         that a proper length check is performed if context is
1290         constrained. Use attributes Pos and Val to handle index types of
1291         any discrete type.
1293 2021-09-23  Bob Duff  <duff@adacore.com>
1295         * gen_il-gen.adb: Set the number of concrete nodes that have the
1296         Homonym field to a higher number than any other field. This
1297         isn't true, but it forces Homonym's offset to be chosen first,
1298         so it will be at offset zero and hence slot zero.
1300 2021-09-23  Richard Kenner  <kenner@adacore.com>
1302         * atree.adb (Relocate_Node): If relocating a subprgram call and
1303         we're doing unnesting, make a new Parameter_Associations, if
1304         any.
1306 2021-09-23  Piotr Trojanek  <trojanek@adacore.com>
1308         * libgnat/a-strbou.ads (Generic_Bounded_Length): Remove explicit
1309         Initializes contract.
1311 2021-09-23  Bob Duff  <duff@adacore.com>
1313         * gen_il-gen.adb: Generate getters and setters with much of the
1314         code inlined. Generate code for storing a few fields in the node
1315         header, to avoid the extra level of indirection for those
1316         fields. We generate the header type, so we don't have to
1317         duplicate hand-written Ada and C code to depend on the number of
1318         header fields.  Declare constants for slot size. Use short names
1319         because these are used all over.  Remove
1320         Put_Low_Level_Accessor_Instantiations, Put_Low_Level_C_Getter,
1321         which are no longer needed.  Rename
1322         Put_High_Level_C_Getter-->Put_C_Getter.
1323         * atree.ads, atree.adb: Take into account the header slots.
1324         Take into account the single Node_Or_Entity_Field type.  Remove
1325         "pragma Assertion_Policy (Ignore);", because the routines in
1326         this package are no longer efficiency critical.
1327         * atree.h: Remove low-level getters, which are no longer used by
1328         sinfo.h and einfo.h.
1329         * einfo-utils.adb: Avoid crash in Known_Alignment.
1330         * live.adb, sem_eval.adb: Remove code that prevents Node_Id from
1331         having a predicate.  We don't actually add a predicate to
1332         Node_Id, but we want to be able to for temporary debugging.
1333         * sinfo-utils.adb: Remove code that prevents Node_Id from having
1334         a predicate.  Take into account the single Node_Or_Entity_Field
1335         type.
1336         * sinfo-utils.ads: Minor.
1337         * table.ads (Table_Type): Make the components aliased, because
1338         low-level setters in Atree need to take 'Access.
1339         * treepr.adb: Take into account the single Node_Or_Entity_Field
1340         type.  Make some code more robust, so we can print out
1341         half-baked nodes.
1342         * types.ads: Move types here for visibility purposes.
1343         * gcc-interface/gigi.h, gcc-interface/trans.c: Take into account
1344         the Node_Header change in the GNAT front end.
1345         * gcc-interface/cuintp.c, gcc-interface/targtyps.c: Add because
1346         gigi.h now refers to type Node_Header, which is in sinfo.h.
1348 2021-09-23  Yannick Moy  <moy@adacore.com>
1350         * libgnat/a-strfix.adb (Delete, Insert, Overwrite,
1351         Replace_Slice): Remove SPARK_Mode Off.
1352         * libgnat/a-strfix.ads (Insert, Overwrite, Replace_Slice):
1353         Strengthen precondition.
1355 2021-09-23  Piotr Trojanek  <trojanek@adacore.com>
1357         * libgnat/a-strbou.ads (Generic_Bounded_Length): Remove non-null
1358         Global contracts.
1360 2021-09-23  Steve Baird  <baird@adacore.com>
1362         * doc/gnat_rm/implementation_defined_characteristics.rst: Update
1363         this section to reflect the current version of Ada RM M.2.
1364         * gnat_rm.texi: Regenerate.
1366 2021-09-22  Yannick Moy  <moy@adacore.com>
1368         * libgnat/a-strfix.ads (Trim): Simplify contracts.
1369         * libgnat/a-strfix.adb (Trim): Remove white space.
1371 2021-09-22  Piotr Trojanek  <trojanek@adacore.com>
1373         * exp_ch4.adb (Expand_N_Op_Eq): Reuse Is_Attribute_Result.
1374         * exp_prag.adb (Expand_Attributes): Reuse Is_Attribute_Old.
1376 2021-09-22  Yannick Moy  <moy@adacore.com>
1378         * sem_ch3.adb (Analyze_Object_Declaration): Do not insert a
1379         predicate check after a deferred constant declaration.
1381 2021-09-22  Bob Duff  <duff@adacore.com>
1383         * contracts.adb, einfo-utils.adb, einfo-utils.ads, exp_ch7.adb,
1384         exp_ch9.adb, exp_disp.adb, exp_prag.adb, exp_smem.adb,
1385         exp_util.adb, freeze.adb, sem_aggr.adb, sem_attr.adb,
1386         sem_ch8.adb, sem_prag.ads, sem_util.adb, sem_util.ads: Fix
1387         conformance errors.
1388         * errout.adb, erroutc.adb: Remove pragmas Suppress.
1389         * err_vars.ads: Initialize variables that were previously being
1390         read uninitialized.
1392 2021-09-22  Yannick Moy  <moy@adacore.com>
1394         * libgnat/a-strunb.ads: Mark package in SPARK with private part
1395         not in SPARK.
1396         (Free): Mark not in SPARK.
1398 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1400         * snames.ads-tmpl: Update status of some attributes.
1402 2021-09-22  Doug Rupp  <rupp@adacore.com>
1404         * libgnarl/s-interr__vxworks.adb (Interfaces.C): Remove as
1405         unused.
1406         (System.VxWorks.Ext): Import.
1407         (System.VxWorks.Ext.STATUS): use type.
1408         (STATUS): New subtype.
1409         (OK): New constant.
1410         (Interrupt_Connector): Return STATUS type vice int.
1411         (Interrupt_Connect, Notify_Interrupt, Unbind_Handler,
1412         Interrupt_Server_Task): Rename Status to Result. Assert Result =
1413         OK.
1414         * libgnarl/s-osinte__vxworks.adb (To_Clock_Ticks): Define constant
1415         IERR, and return it vice ERROR.
1416         (Binary_Semaphore_Delete): Return STATUS type vice int.
1417         (Binary_Semaphore_Obtain): Likewise.
1418         (Binary_Semaphore_Release): Likewise.
1419         (Binary_Semaphore_Flush): Likewise.
1420         * libgnarl/s-osinte__vxworks.ads (SVE): Renaming of
1421         System.VxWorks.Ext.
1422         (STATUS): Use SVE in declaration of subtype.
1423         (BOOL): Likewise.
1424         (vx_freq_t): Likewise.
1425         (t_id): Likewise.
1426         (gitpid): Use SVE in renaming of subprogram
1427         (Task_Stop): Likewise.
1428         (Task_Cont): Likewise.
1429         (Int_Lock): Likewise.
1430         (Int_Unlock): Likewise.
1431         (Set_Time_Slice): Likewise.
1432         (semDelete): Likewise.
1433         (taskCpuAffinitySet): Likewise.
1434         (taskMaskAffinitySet): Likewise.
1435         (sigset_t): Use SVE in declaration of type.
1436         (OK): Remove as unused.
1437         (ERROR): Likewise.
1438         (taskOptionsGet): return STATUS vice int.
1439         (taskSuspend): Likewise.
1440         (taskResume): Likewise.
1441         (taskDelay): Likewise.
1442         (taskVarAdd): Likewise.
1443         (taskVarDelete): Likewise.
1444         (taskVarSet): Likewise.
1445         (tlkKeyCreate): Likewise.
1446         (taskPrioritySet): Likewise.
1447         (semGive): Likewise.
1448         (semTake): Likewise.
1449         (Binary_Semaphore_Delete): Likewise.
1450         (Binary_Semaphore_Obtain): Likewise.
1451         (Binary_Semaphore_Release): Likewise.
1452         (Binary_Semaphore_Flush): Likewise.
1453         (Interrupt_Connect): Likewise.
1454         * libgnarl/s-taprop__vxworks.adb
1455         (System.VxWorks.Ext.STATUS): use type.
1456         (int): Syntactically align subtype.
1457         (STATUS): New subtype.
1458         (OK): New constant.
1459         (Finalize_Lock): Check STATUS vice int. Assert OK.
1460         (Finalize_Lock): Likewise.
1461         (Write_Lock): Likewise.
1462         (Write_Lock): Likewise.
1463         (Write_Lock): Likewise.
1464         (Unlock): Likewise.
1465         (Unlock): Likewise.
1466         (Unlock): Likewise.
1467         (Unlock): Likewise.
1468         (Sleep): Likewise.
1469         (Sleep): Likewise.
1470         (Sleep): Likewise.
1471         (Timed_Sleep): Likewise and test Result.
1472         (Timed_Delay): Likewise and test Result.
1473         (Wakeup): Likewise.
1474         (Yield): Likewise.
1475         (Finalize_TCB): Likewise.
1476         (Suspend_Until_True): Check OK.
1477         (Stop_All_Tasks): Declare Dummy STATUS vice in.  Check OK.
1478         (Is_Task_Context): Use OSI renaming.
1479         (Initialize): Use STATUS vice int.
1480         * libgnarl/s-vxwext.adb
1481         (IERR): Renamed from ERROR.
1482         (taskCpuAffinitySet): Return IERR (int).
1483         (taskMaskAffinitySet): Likewise.
1484         * libgnarl/s-vxwext.ads
1485         (STATUS): New subtype.
1486         (OK): New STATUS constant.
1487         (ERROR): Likewise.
1488         * libgnarl/s-vxwext__kernel-smp.adb
1489         (IERR): Renamed from ERROR.
1490         (Int_Lock): Return IERR.
1491         (semDelete): Return STATUS.
1492         (Task_Cont): Likewise.
1493         (Task_Stop): Likewise.
1494         * libgnarl/s-vxwext__kernel.adb
1495         (IERR): Renamed from ERROR.
1496         (semDelete): Return STATUS.
1497         (Task_Cont): Likewise.
1498         (Task_Stop): Likewise.
1499         (taskCpuAffinitySet): Return IERR (int)
1500         (taskMaskAffinitySet): Likewise.
1501         * libgnarl/s-vxwext__kernel.ads
1502         (STATUS): New subtype.
1503         (OK): New STATUS constant.
1504         (ERROR): Likewise.
1505         (Interrupt_Connect): Return STATUS
1506         (semDelete): Likewise.
1507         (Task_Cont): Likewise.
1508         (Task_Stop): Likewise.
1509         (Set_Time_Slice): Likewise.
1510         * libgnarl/s-vxwext__rtp-smp.adb
1511         (IERR): Renamed from ERROR.
1512         (Int_Lock): return IERR constant vice ERROR.
1513         (Interrupt_Connect): Return STATUS.
1514         (semDelete): Likewise.
1515         (Set_Time_Slice): Likewise.
1516         * libgnarl/s-vxwext__rtp.adb
1517         (IERR): Renamed from ERROR.
1518         (Int_Lock): return IERR constant vice ERROR.
1519         (Int_Unlock): Return STATUS.
1520         (semDelete): Likewise.
1521         (Set_Time_Slice): Likewise.
1522         (taskCpuAffinitySet): Return IERR (int)
1523         (taskMaskAffinitySet): Likewise.
1524         * libgnarl/s-vxwext__rtp.ads
1525         (STATUS): New subtype.
1526         (OK): New STATUS constant.
1527         (ERROR): Likewise.
1528         (Interrupt_Connect): Return STATUS
1529         (semDelete): Likewise.
1530         (Task_Cont): Likewise.
1531         (Task_Stop): Likewise.
1532         (Set_Time_Slice): Likewise.
1534 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1536         * prep.adb (Preprocess): Allow for more flexibility when
1537         Relaxed_RM_Semantics is set.
1539 2021-09-22  Pierre-Alexandre Bazin  <bazin@adacore.com>
1541         * libgnat/a-strbou.adb: Turn SPARK_Mode on.
1542         * libgnat/a-strbou.ads: Write contracts.
1543         * libgnat/a-strfix.ads (Index): Fix grammar error in a comment.
1544         * libgnat/a-strsea.ads (Index): Likewise.
1545         * libgnat/a-strsup.adb: Rewrite the body to take into account
1546         the new definition of Super_String using Relaxed_Initialization
1547         and a predicate.
1548         (Super_Replicate, Super_Translate, Times): Added loop
1549         invariants, and ghost lemmas for Super_Replicate and Times.
1550         (Super_Trim): Rewrite the body using search functions to
1551         determine the cutting points.
1552         (Super_Element, Super_Length, Super_Slice, Super_To_String):
1553         Remove (now written as expression functions in a-strsup.ads).
1554         * libgnat/a-strsup.ads: Added contracts.
1555         (Super_Element, Super_Length, Super_Slice, Super_To_String):
1556         Rewrite as expression functions.
1558 2021-09-22  Yannick Moy  <moy@adacore.com>
1560         * sem_ch13.adb (Build_Predicate_Functions): Add guard.
1562 2021-09-22  Doug Rupp  <rupp@adacore.com>
1564         * libgnarl/s-vxwext.ads (BOOL): New int type.
1565         (Interrupt_Context): Change return type to BOOL.
1566         * libgnarl/s-vxwext__kernel.ads: Likewise.
1567         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
1568         * libgnarl/s-vxwext__rtp.adb: Likewise.
1569         * libgnarl/s-vxwext__rtp.ads: Likewise.
1570         * libgnarl/s-osinte__vxworks.adb (Interrupt_Context): Change
1571         return type to BOOL.
1572         * libgnarl/s-osinte__vxworks.ads (BOOL) New subtype.
1573         (taskIsSuspended): Change return type to BOOL.
1574         (Interrupt_Context): Change return type to BOOL. Adjust comments
1575         accordingly.
1576         * libgnarl/s-taprop__vxworks.adb (System.VxWorks.Ext.BOOL):
1577         use type.
1578         (Is_Task_Context): Test Interrupt_Context against 0.
1579         * libgnat/i-vxwork.ads (BOOL): New int.
1580         (intContext): Change return type to BOOL. Adjust comments.
1581         * libgnat/i-vxwork__x86.ads: Likewise.
1583 2021-09-22  Piotr Trojanek  <trojanek@adacore.com>
1585         * sem_aux.adb, sem_aux.ads (Package_Body): Moved from GNATprove.
1586         * sem_elab.adb (Spec_And_Body_From_Entity): Refine type of parameter.
1588 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1590         * doc/gnat_ugn/platform_specific_information.rst: Improve doc
1591         on permission and containers.
1592         * gnat_ugn.texi: Regenerate.
1594 2021-09-22  Yannick Moy  <moy@adacore.com>
1596         * atree.adb (Rewrite): Fix parent node of shared aspects.
1597         * atree.ads (Rewrite): Add ??? comment on incorrect
1598         documentation.
1599         * einfo-utils.adb (Known_Esize): Fix logic.
1600         * sem_ch13.adb (Alignment_Check_For_Size_Change,
1601         Analyze_Attribute_Definition_Clause): Protect against unset
1602         Size.
1604 2021-09-22  Yannick Moy  <moy@adacore.com>
1606         * freeze.adb (Build_Renamed_Body): Special case for GNATprove.
1607         * sem_ch6.adb (Analyze_Expression_Function): Remove useless test
1608         for a node to come from source, which becomes harmful otherwise.
1610 2021-09-22  Justin Squirek  <squirek@adacore.com>
1612         * ali.adb, ali.ads (Scan_ALI): Remove use of deprecated
1613         parameter Ignore_ED, and all specification for Lower in call to
1614         Get_File_Name.
1615         * ali-util.adb (Read_Withed_ALIs): Modify call to Scan_ALI.
1616         * clean.adb (Clean_Executables): Likewise.
1617         * gnatbind.adb (Add_Artificial_ALI_File, Executable section):
1618         Likewise.
1619         * gnatlink.adb (Executable section): Likewise.
1620         * gnatls.adb (Executable section): Likewise.
1621         * make.adb (Check, Wait_For_Available_Slot): Likewise.
1622         * aspects.ads: Add Aspect_No_Controlled_Parts to
1623         Nonoverridable_Aspect_Id
1624         * opt.ads: Remove function pointers used as a workaround for
1625         ASIS.
1626         * osint-c.adb (Executable section): Remove setting of function
1627         pointer workarounds needed for ASIS.
1628         * osint.adb (Read_Default_Search_Dirs): Correct behavior to
1629         detect EOL characters.
1630         * par_sco.adb (Output_Header): Remove comment regarding use of
1631         First_Sloc.
1632         (Traverse_Sync_Definition): Renamed to
1633         Traverse_Protected_Or_Task_Definition.
1634         * pprint.adb (Interal_List_Name): Add description about purpose,
1635         and refactor conditional statement.
1636         (Prepend): Removed.
1637         * repinfo.adb (List_Rep_Info, Write_Info_Line): Remove use of
1638         subprogram pointer.
1639         * scng.adb (Scan): Remove CODEFIX question, and minor comment
1640         change.
1641         * sem_attr.adb (Analyze_Image_Attribute): Remove special
1642         processing for 'Img.
1643         * sem_ch6.adb (Check_Untagged_Equality): Add RM reference.
1644         (FCE): Add comment describing behavior.
1645         (Is_Non_Overriding_Operation): Minor comment formatting change.
1646         * sem_type.adb (Is_Actual_Subprogram): Add comment about
1647         Comes_From_Source test.
1648         (Matching_Types): Describe non-matching cases.
1649         * sem_util.adb (Is_Confirming): Add stub case for
1650         No_Controlled_Parts.
1652 2021-09-22  Yannick Moy  <moy@adacore.com>
1654         * sem_ch13.adb (Build_Predicate_Functions): Access
1655         Predicated_Parent only on subtypes.
1657 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1659         * sem_prag.adb (Process_Import_Or_Interface): Relax error when
1660         Relaxed_RM_Semantics.
1662 2021-09-22  Steve Baird  <baird@adacore.com>
1664         * libgnat/s-regpat.adb (Match): Handle the case where Self.First
1665         is not NUL (so we know the first character we are looking for),
1666         but case-insensitive matching has
1667         been specified.
1668         (Optimize): In the case of an EXACTF Op, set Self.First as is
1669         done in the EXACT case, except with the addition of a call to
1670         Lower_Case.
1672 2021-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1674         * libgnat/s-imenne.ads, libgnat/s-imenne.adb: Delete.
1675         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove s-imenne.o.
1676         (GNATBIND_OBJS): Likewise.
1678 2021-09-22  Yannick Moy  <moy@adacore.com>
1680         * einfo.ads: Fix comments.
1681         * exp_aggr.adb: Fix variable name.
1682         * exp_util.adb: Fix comments.
1683         * sem_ch13.adb: Fix comments.
1684         * sem_ch3.adb: Fix comments and variable name.
1686 2021-09-22  Doug Rupp  <rupp@adacore.com>
1688         * libgnarl/s-osinte__vxworks.ads: Make procedure vice function.
1689         * libgnarl/s-vxwext.ads: Likewise.
1690         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
1691         * libgnarl/s-vxwext__kernel.adb: Likewise.
1692         * libgnarl/s-vxwext__kernel.ads: Likewise.
1693         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
1694         * libgnarl/s-vxwext__rtp.adb: Likewise.
1695         * libgnarl/s-vxwext__rtp.ads: Likewise.
1696         * libgnarl/s-taprop__vxworks.adb (Stop_All_Tasks): Call
1697         Int_Unlock as a procedure.
1699 2021-09-22  Doug Rupp  <rupp@adacore.com>
1701         * libgnarl/s-osinte__vxworks.ads (SVE): New package renaming
1702         (vx_freq_t): New subtype.
1703         (sysClkRateGet): Return vx_freq_t.
1704         * libgnarl/s-vxwext.ads (vx_freq_t): New type.
1705         * libgnarl/s-vxwext__kernel.ads: Likewise.
1706         * libgnarl/s-vxwext__rtp.ads: Likewise.
1708 2021-09-22  Ghjuvan Lacambre  <lacambre@adacore.com>
1710         * sem_case.adb (Composite_Case_Ops): Replace 'Image with
1711         Error_Msg_Uint.
1713 2021-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1715         * exp_ch4.adb (Expand_N_If_Expression): Generate an intermediate
1716         temporary when the expression is a condition in an outer decision
1717         and control-flow optimizations are suppressed.
1719 2021-09-22  Steve Baird  <baird@adacore.com>
1721         * exp_ch5.adb (Expand_General_Case_Statement.Pattern_Match): Add
1722         new function Indexed_Element to handle array element
1723         comparisons. Handle case choices that are array aggregates,
1724         string literals, or names denoting constants.
1725         * sem_case.adb (Composite_Case_Ops.Array_Case_Ops): New package
1726         providing utilities needed for casing on arrays.
1727         (Composite_Case_Ops.Choice_Analysis): If necessary, include
1728         array length as a "component" (like a discriminant) when
1729         traversing components. We do not (yet) partition choice analysis
1730         to deal with unequal length choices separately. Instead, we
1731         embed everything in the minimum-dimensionality Cartesian product
1732         space needed to handle all choices properly; this is determined
1733         by the length of the longest choice pattern.
1734         (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts):
1735         Include length as a "component" in the traversal if necessary.
1736         (Composite_Case_Ops.Choice_Analysis.Parse_Choice.Traverse_Choice):
1737         Add support for case choices that are string literals or names
1738         denoting constants.
1739         (Composite_Case_Ops.Choice_Analysis): Include length as a
1740         "component" in the analysis if necessary.
1741         (Check_Choices.Check_Case_Pattern_Choices.Ops.Value_Sets.Value_Index_Count):
1742         Improve error message when capacity exceeded.
1743         * doc/gnat_rm/implementation_defined_pragmas.rst: Update
1744         documentation to reflect current implementation status.
1745         * gnat_rm.texi: Regenerate.
1747 2021-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1749         * freeze.adb (Check_Component_Storage_Order): Give a specific error
1750         message for non-byte-aligned component in the packed case.  Replace
1751         "composite" with "record" in both cases.
1753 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1755         * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: Make compatible
1756         with No_Elaboration_Code_All.
1757         * libgnarl/s-taskin.ads, libgnarl/s-tassta.adb: Adjust
1758         accordingly.
1760 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1762         * sem_ch6.adb (Check_Returns): Change message on missing return.
1764 2021-09-22  Arnaud Charlet  <charlet@adacore.com>
1766         * gnatfind.adb, gnatxref.adb: Mark these tools as obsolete
1767         before removing them completely.
1769 2021-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1771         * gcc-interface/decl.c (range_cannot_be_superflat): Tweak comments.
1773 2021-09-21  Doug Rupp  <rupp@adacore.com>
1775         * init.c (__gnat_error_handler) [LynxOS]: Add a comment about
1776         missing optional args.
1778 2021-09-21  Yannick Moy  <moy@adacore.com>
1780         * gen_il-gen.adb (Put_Opt_Subtype): Add suffix.
1782 2021-09-21  Justin Squirek  <squirek@adacore.com>
1784         * sem_util.adb (Accessibility_Level): Remove spurious special
1785         case for protected type components.
1786         * exp_ch4.adb (Generate_Accessibility_Check): Use general
1787         Accessibility_Level instead of the low-level function
1788         Type_Access_Level.
1790 2021-09-21  Eric Botcazou  <ebotcazou@adacore.com>
1792         * gnat_ugn.texi: Regenerate.
1794 2021-09-21  Matthieu Eyraud  <eyraud@adacore.com>
1796         * par_sco.adb (Traverse_One): Add support for pragma Invariant /
1797         Type_Invariant.
1799 2021-09-21  Bob Duff  <duff@adacore.com>
1801         * gen_il-gen.adb (Put_Opt_Subtype): Print out subtypes of the
1802         form:
1803         subtype Opt_N_Declaration is
1804         Node_Id with Predicate =>
1805         Opt_N_Declaration = Empty or else
1806         Opt_N_Declaration in N_Declaration_Id;
1807         One for each node or entity type, with the predicate allowing
1808         Empty.
1809         * atree.adb (Parent, Set_Parent): Remove unnecessary "Atree.".
1811 2021-09-21  Patrick Bernardi  <bernardi@adacore.com>
1813         * bindgen.adb (Gen_Adainit): For targets that suppress the
1814         standard library: set the default stack size global variable if
1815         a value is provided via the -d switch, and generate a call to
1816         __gnat_initialize_stack_limit if stack checking using stack
1817         limits is enabled.
1819 2021-09-21  Bob Duff  <duff@adacore.com>
1821         * sem_ch13.adb (Stream_Size): Print message about allowed stream
1822         sizes even if other error were already found. This avoids
1823         falling into the 'else', which prints "Stream_Size cannot be
1824         given for...", which is misleading -- the Size COULD be given if
1825         it were correct.
1827 2021-09-21  Daniel Mercier  <mercier@adacore.com>
1829         * exp_util.adb (Build_Temporary): In case of an external DISCR
1830         symbol, set the related expression for CodePeer so that a more
1831         comprehensible message can be emitted to the user.
1833 2021-09-21  Eric Botcazou  <ebotcazou@adacore.com>
1835         * libgnat/s-dwalin.adb (Parse_Header): Tweak comments.
1836         (Read_Entry_Format_Array): Tweak exception message.
1837         (Symbolic_Address.Set_Result): Likewise.
1839 2021-09-21  Ed Schonberg  <schonberg@adacore.com>
1841         * exp_ch7.adb (Make_Init_Call): Add guard to protect against a
1842         missing initialization procedure for a type.
1844 2021-09-21  Doug Rupp  <rupp@adacore.com>
1846         * Makefile.rtl: Remove unused VxWorks sections.
1847         * libgnarl/s-vxwext__noints.adb: Remove.
1848         * libgnarl/s-vxwext__vthreads.ads: Remove.
1849         * libgnat/a-elchha__vxworks-ppc-full.adb: Remove.
1850         * libgnat/s-osprim__vxworks.adb: Remove.
1851         * libgnat/s-osvers__vxworks-653.ads: Remove.
1852         * libgnat/system-vxworks-e500-vthread.ads: Remove.
1853         * libgnat/system-vxworks-ppc-vthread.ads: Remove.
1854         * libgnat/system-vxworks-x86-vthread.ads: Remove.
1856 2021-09-21  Bob Duff  <duff@adacore.com>
1858         * uintp.ads, uintp.adb (UI_Is_In_Int_Range): Change the type of
1859         the formal parameter to Valid_Uint. Remove code that preserved
1860         the previous behavior, and replace it with an assertion. The
1861         previous behavior is no longer needed given the recent change to
1862         gigi.
1863         (No, Present): Add comment.
1865 2021-09-21  Bob Duff  <duff@adacore.com>
1867         * sem_eval.adb (Fold_Shift): Replace an if_expression with an
1868         if_statement.
1870 2021-09-21  Bob Duff  <duff@adacore.com>
1872         * uintp.ads, uintp.adb: Add assertions.
1873         (Ubool, Opt_Ubool): New "boolean" subtypes.
1874         (UI_Is_In_Int_Range): The parameter should probably be
1875         Valid_Uint, but we don't change that for now, because it causes
1876         failures in gigi.
1877         * sem_util.ads, sem_util.adb (Is_True, Is_False,
1878         Static_Boolean): Use Opt_Ubool subtype.  Document the fact that
1879         Is_True (No_Uint) = True.  Implement Is_False in terms of
1880         Is_True.  We considered changing Static_Boolean to return Uint_1
1881         in case of error, but that doesn't fit in well with
1882         Static_Integer.
1883         (Has_Compatible_Alignment_Internal): Deal with cases where Offs
1884         is No_Uint. Change one "and" to "and then" to ensure we don't
1885         pass No_Uint to ">", which would violate the new assertions.
1886         * exp_util.adb, freeze.adb, sem_ch13.adb: Avoid violating new
1887         assertions in Uintp.
1889 2021-09-21  Eric Botcazou  <ebotcazou@adacore.com>
1891         * libgnat/s-dwalin.adb (To_File_Name): Fetch only the last string
1892         from the .debug_line_str section.
1893         (Symbolic_Address.Set_Result): Likewise.
1895 2021-09-21  Eric Botcazou  <ebotcazou@adacore.com>
1897         * libgnat/s-dwalin.adb (Skip_Form): Fix cases of DW_FORM_addrx
1898         and DW_FORM_implicit_const.  Replace Constraint_Error with
1899         Dwarf_Error.
1901 2021-09-21  Ghjuvan Lacambre  <lacambre@adacore.com>
1903         * exp_pakd.adb (Expand_Packed_Not): Replace expression with
1904         statement.
1906 2021-09-21  Ghjuvan Lacambre  <lacambre@adacore.com>
1908         * sem_eval.adb (Is_Static_Subtype): Take predicates created
1909         through "predicate" pragma into account.
1911 2021-09-21  Frederic Konrad  <konrad@adacore.com>
1913         * Makefile.rtl (aarch64-rtems*): Add GNATRTL_128BIT_PAIRS to
1914         the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
1915         the EXTRA_GNATRTL_NONTASKING_OBJS list.
1917 2021-09-21  Gary Dismukes  <dismukes@adacore.com>
1919         * sem_ch4.adb (Remove_Abstract_Operations): Add condition to
1920         test for an E_Operator as part of criteria for setting
1921         Abstract_Op on interpretations involving predefined operators.
1923 2021-09-21  Javier Miranda  <miranda@adacore.com>
1925         * exp_ch6.adb (Expand_Simple_Function_Return): For explicit
1926         dereference of type conversion, enable code that ensures that
1927         the tag of the result is that of the result type.
1929 2021-09-21  Bob Duff  <duff@adacore.com>
1931         * einfo-utils.adb: Add support (currently disabled) for using
1932         "initial zero" instead of "Uint_0" to represent "unknown".  Call
1933         Known_ functions, instead of evilly duplicating their code
1934         inline.
1935         * fe.h (No_Uint_To_0): New function to convert No_Uint to
1936         Uint_0, in order to preserve existing behavior.
1937         (Copy_Esize, Copy_RM_Size): New imports from Einfo.Utils.
1938         * cstand.adb: Set size fields of Standard_Debug_Renaming_Type
1939         and Standard_Exception_Type.
1940         * checks.adb, exp_attr.adb, exp_ch3.adb, exp_ch5.adb,
1941         exp_ch6.adb, exp_pakd.adb, exp_util.adb, freeze.adb, itypes.adb,
1942         layout.adb, repinfo.adb, sem_attr.adb, sem_ch12.adb,
1943         sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch7.adb,
1944         sem_util.adb: Protect calls with Known_..., use Copy_...  Remove
1945         assumption that Uint_0 represents "unknown".
1946         * types.ads (Nonzero_Int): New subtype.
1947         * gcc-interface/decl.c, gcc-interface/trans.c: Protect calls
1948         with Known_... and use Copy_...  as appropriate, to avoid
1949         blowing up in unknown cases. Similarly, call No_Uint_To_0 to
1950         preserve existing behavior.
1952 2021-09-21  Steve Baird  <baird@adacore.com>
1954         * sem_ch13.adb (Analyze_Aspect_Specifications): Add a new nested
1955         function, Directly_Specified, and then use it in the
1956         implementation of the required check.
1958 2021-09-21  Steve Baird  <baird@adacore.com>
1960         * libgnat/a-costso.ads, libgnat/a-costso.adb: A new library
1961         unit, Ada.Containers.Stable_Sorting, which exports a pair of
1962         generics (one within the other) which are instantiated by each
1963         of the 5 doubly-linked list container generics to implement
1964         their respective Sort procedures. We use a pair of generics,
1965         rather than a single generic, in order to further reduce code
1966         duplication. The outer generic takes a formal private Node_Ref
1967         type representing a reference to a linked list element. For some
1968         instances, the corresponding actual parameter will be an access
1969         type; for others, it will be the index type for an array.
1970         * Makefile.rtl: Include new Ada.Containers.Stable_Sorting unit.
1971         * libgnat/a-cbdlli.adb, libgnat/a-cdlili.adb,
1972         libgnat/a-cfdlli.adb, libgnat/a-cidlli.adb, libgnat/a-crdlli.adb
1973         (Sort): Replace existing Sort implementation with a call to an
1974         instance of
1975         Ada.Containers.Stable_Sorting.Doubly_Linked_List_Sort. Declare
1976         the (trivial) actual parameters needed to declare that instance.
1977         * libgnat/a-cfdlli.ads: Fix a bug encountered during testing in
1978         the postcondition for M_Elements_Sorted. With a partial
1979         ordering, it is possible for all three of (X < Y), (Y < X),
1980         and (X = Y) to be simultaneously false, so that case needs to
1981         handled correctly.
1983 2021-09-21  Piotr Trojanek  <trojanek@adacore.com>
1985         * errout.adb (Error_Msg_Internal): Fix references to Sptr and
1986         Optr in comment; fix grammar of "low-level" where it is used as
1987         an adjective.
1989 2021-09-21  Piotr Trojanek  <trojanek@adacore.com>
1991         * errout.adb (Write_Source_Code_Lines): Use Cur_Loc before
1992         incrementing it, so that we don't need to decrement it.
1994 2021-09-21  Yannick Moy  <moy@adacore.com>
1996         * errout.adb (Get_Line_End): Do not allow the result to go past
1997         the end of the buffer.
1999 2021-09-21  Ed Schonberg  <schonberg@adacore.com>
2001         * sem_ch3.adb (Process_Discriminant_Expressions): If the
2002         constraint is for a Component_Definition that appears in a
2003         Component_Declaration, the entity to be used to create the
2004         potentially global symbol is the Defining_Identifier of the
2005         Component_Declaration.
2007 2021-09-21  Bob Duff  <duff@adacore.com>
2009         * libgnat/a-stbufi.ads, libgnat/a-stbufi.adb: Change all
2010         occurrences of GNAT.OS_Lib to System.OS_Lib.
2012 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2014         * inline.adb (Has_Excluded_Declaration): Remove redundant guard;
2015         the guarded code will call First on a No_List, which is
2016         well-defined and gives Empty.
2018 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2020         * inline.adb (Has_Excluded_Declaration): Rename and reduce scope
2021         of a local variable.
2023 2021-09-20  Bob Duff  <duff@adacore.com>
2025         * uintp.ads, uintp.adb (Present, No): New functions for
2026         comparing with No_Uint.
2027         * checks.adb, einfo-utils.adb, exp_aggr.adb, exp_attr.adb,
2028         exp_ch3.adb, exp_ch4.adb, exp_dbug.adb, exp_disp.adb,
2029         exp_util.adb, repinfo.adb, repinfo-input.adb, scn.adb,
2030         sem_attr.adb, sem_ch13.adb, sem_eval.adb, sem_util.adb,
2031         sinfo-utils.adb, treepr.adb: Use Present (...) instead of "...
2032         /= No_Uint", and No (...) instead of "... = No_Uint".
2034 2021-09-20  Claire Dross  <dross@adacore.com>
2036         * libgnat/s-ficobl.ads: The entire package has a SPARK_Mode =>
2037         Off aspect.
2039 2021-09-20  Doug Rupp  <rupp@adacore.com>
2041         * libgnat/a-calend.adb: Remove time_t, replace with OS_Time.
2042         * libgnat/s-os_lib.ads: Fix comments regarding time_t conversion
2043         functions to reflect the use of To_Ada in in Ada.Calendar
2044         package body.
2045         * sysdep.c (__gnat_localtime_tzoff): Use OS_Time instead of
2046         time_t.
2048 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2050         * sem_res.adb (Resolve_Actual): Remove
2052 2021-09-20  Bob Duff  <duff@adacore.com>
2054         * einfo-utils.ads, einfo-utils.adb, fe.h, einfo.ads,
2055         gen_il-fields.ads: Remove unused and no-longer-used routines.
2056         Move related routines together.  Rewrite incorrect
2057         documentation, and documentation that will be incorrect when
2058         e.g. Esize-related routines are fixed.  Remove unused field
2059         Normalized_Position_Max.
2060         * cstand.adb, exp_pakd.adb, freeze.adb,
2061         gen_il-gen-gen_entities.adb, itypes.adb, layout.adb,
2062         sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
2063         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb,
2064         sem_util.adb, ttypes.ads: Update calls to routines removed from
2065         or renamed in Einfo.Utils.
2066         * uintp.ads (Upos): Fix this subtype, which was unintentionally
2067         declared to include Uint_0.
2069 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2071         * exp_ch7.adb (Expand_N_Package_Declaration): Fix wording in
2072         comment.
2073         * exp_disp.adb (Mark_DT): Remove unnecessary initialization of
2074         I_Depth.
2076 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2078         * contracts.adb (Add_Contract_Item): Accept volatile-related
2079         properties on constants.
2080         (Analyze_Object_Contract): Check external properties on
2081         constants; accept volatile constants.
2082         (Check_Type_Or_Object_External_Properties): Replace "variable"
2083         with "object" in error messages; replace Decl_Kind with a local
2084         constant.
2085         * sem_prag.adb (Analyze_Pragma): Accept volatile-related
2086         properties on constants.
2088 2021-09-20  Pierre-Alexandre Bazin  <bazin@adacore.com>
2090         * libgnat/a-strfix.adb ("*"): Added loop invariants and lemmas
2091         for proof.
2092         (Delete): Added assertions for proof, and conditions to avoid
2093         overflow.
2094         (Head): Added loop invariant.
2095         (Insert): Same as Delete.
2096         (Move): Declared with SPARK_Mode Off.
2097         (Overwrite): Added assertions for proof, and conditions to avoid
2098         overflow.
2099         (Replace_Slice): Added assertions for proof, and conditions to
2100         avoid overflow.
2101         (Tail): Added loop invariant and avoided overflows.
2102         (Translate): Added loop invariants.
2103         (Trim): Ensured empty strings returned start at 1.
2104         * libgnat/a-strfix.ads (Index): Rewrote contract cases for
2105         easier proof.
2106         (Index_Non_Blank): Separated the null string case.
2107         (Count): Specified Mapping shouldn't be null.
2108         (Find_Token): Specified Source'First should be Positive when no
2109         From is given.
2110         (Translate): Specified Mapping shouldn't be null.
2111         ("*"): Rewrote postcondition for easier proof.
2112         * libgnat/a-strsea.adb (Belongs): Added postcondition.
2113         (Count): Rewrote loops and added loop invariants to avoid
2114         overflows.
2115         (Find_Token): Added loop invariants.
2116         (Index): Rewrote loops to avoid overflows and added loop
2117         invariants for proof.
2118         (Index_Non_Blank): Added loop invariants.
2119         (Is_Identity): New function isolated without SPARK_Mode.
2120         * libgnat/a-strsea.ads: Fix starting comment as package is no
2121         longer private.
2122         (Match): Declared ghost expression function Match.
2123         (Is_Identity): Described identity in the postcondition.
2124         (Index, Index_Non_Blank, Count, Find_Token): Added contract from
2125         a-strfix.ads.
2127 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2129         * sem_ch13.adb (Resolve_Aspect_Aggregate): Move comments after
2130         specs; fix typo in header box; cleanup whitespace.
2132 2021-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2134         * libgnat/s-objrea.adb (Get_Load_Address): Return 0 for ELF.
2136 2021-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2138         * adaint.c (__gnat_get_executable_load_address): Add Win32 support.
2139         * libgnat/s-objrea.ads (Get_Xcode_Bounds): Fix typo in comment.
2140         (Object_File): Minor reformatting.
2141         (ELF_Object_File): Uncomment predicate.
2142         (PECOFF_Object_File): Likewise.
2143         (XCOFF32_Object_File): Likewise.
2144         * libgnat/s-objrea.adb: Minor reformatting throughout.
2145         (Get_Load_Address): Implement for PE-COFF.
2146         * libgnat/s-dwalin.ads: Remove clause for System.Storage_Elements
2147         and use consistent wording in comments.
2148         (Dwarf_Context): Set type of Low, High and Load_Address to Address.
2149         * libgnat/s-dwalin.adb (Get_Load_Displacement): New function.
2150         (Is_Inside): Call Get_Load_Displacement.
2151         (Low_Address): Likewise.
2152         (Open): Adjust to type change.
2153         (Aranges_Lookup): Change type of Addr to Address.
2154         (Read_Aranges_Entry): Likewise for Start and adjust.
2155         (Enable_Cach): Adjust to type change.
2156         (Symbolic_Address): Change type of Addr to Address.
2157         (Symbolic_Traceback): Call Get_Load_Displacement.
2159 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2161         * exp_disp.adb (Make_DT): Move call to Set_Has_Dispatch_Table,
2162         so it is executed regardless of the Generate_SCIL mode.
2164 2021-09-20  Ed Schonberg  <schonberg@adacore.com>
2166         * exp_util.ads (Force_Evaluation): Add formal parameter
2167         Discr_Number, to indicate discriminant expression for which an
2168         external name must be created.
2169         (Remove_Side_Effects): Ditto.
2170         * exp_util.adb (Force_Evaluation): Call Remove_Side_Effects with
2171         added parameter.
2172         (Remove_Side_Effects, Build_Temporary): If Discr_Number is
2173         positive, create an external name with suffix DISCR and the
2174         given discriminant number, analogous to what is done for
2175         temporaries for array type bounds.
2176         * sem_ch3.adb (Process_Discriminant_Expressions): If the
2177         constraint is for an object or component declaration and the
2178         corresponding entity may be visible in another unit, invoke
2179         Force_Evaluation with the new parameter.
2181 2021-09-20  Arnaud Charlet  <charlet@adacore.com>
2183         * gen_il-internals.ads (Invalid_Val): Remove, unused and
2184         generates warnings.
2186 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2188         * exp_aggr.adb, exp_ch4.adb, exp_ch5.adb, sprint.adb: Refine
2189         types of local constants.
2191 2021-09-20  Gary Dismukes  <dismukes@adacore.com>
2193         * exp_attr.adb (Expand_N_Attribute_Reference): Fold
2194         Preelaborable_Initialization attribute in cases where it hasn't
2195         been folded by the analyzer.
2196         * exp_disp.adb (Original_View_In_Visible_Part): This function is
2197         removed and moved to sem_util.adb.
2198         * sem_attr.adb (Attribute_22): Add
2199         Attribute_Preelaborable_Initialization as an Ada 2022 attribute.
2200         (Analyze_Attribute, Attribute_Preelaborable_Initialization):
2201         Check that the prefix of the attribute is either a formal
2202         private or derived type, or a composite type declared within the
2203         visible part of a package or generic package.
2204         (Eval_Attribute): Perform folding of
2205         Preelaborable_Initialization attribute based on
2206         Has_Preelaborable_Initialization applied to the prefix type.
2207         * sem_ch3.adb (Resolve_Aspects): Add specialized code for
2208         Preelaborable_Initialization used at the end of a package
2209         visible part for setting Known_To_Have_Preelab_Init on types
2210         that are specified with True or that have a conjunction of one
2211         or more P_I attributes applied to formal types.
2212         * sem_ch7.adb (Analyze_Package_Specification): On call to
2213         Has_Preelaborable_Initialization, pass True for new formal
2214         Formal_Types_Have_Preelab_Init, so that error checking treats
2215         subcomponents that are declared within types in generics as
2216         having preelaborable initialization when the subcomponents are
2217         of formal types.
2218         * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add test for
2219         P_I to prevent calling Make_Pragma_From_Boolean_Aspect, since
2220         this aspect is handled specially and the
2221         Known_To_Have_Preelab_Init flag will get set on types that have
2222         the aspect by other means.
2223         (Analyze_Aspect_Specifications.Analyze_One_Aspect): Add test for
2224         Aspect_Preelaborable_Initialization for allowing the aspect to
2225         be specified on formal type declarations.
2226         (Is_Operational_Item): Treat Attribute_Put_Image as an
2227         operational attribute.  The need for this was encountered while
2228         working on these changes.
2229         * sem_util.ads (Has_Preelaborable_Initialization): Add
2230         Formal_Types_Have_Preelab_Init as a new formal parameter that
2231         defaults to False.
2232         (Is_Conjunction_Of_Formal_Preelab_Init_Attributes): New
2233         function.
2234         (Original_View_In_Visible_Part): Moved here from exp_disp.adb,
2235         so it can be called by Analyze_Attribute.
2236         * sem_util.adb (Has_Preelaborable_Initialization): Return True
2237         for formal private and derived types when new formal
2238         Formal_Types_Have_Preelab_Init is True, and pass along the
2239         Formal_Types_Have_Preelab_Init flag in the array component case.
2240         (Check_Components): Pass along Formal_Types_Have_Preelab_Init
2241         flag on call to Has_Preelaborable_Initialization.
2242         (Is_Conjunction_Of_Formal_Preelab_Init_Attributes): New function
2243         that returns True when passed an expression that includes one or
2244         more attributes for Preelaborable_Initialization applied to
2245         prefixes that denote formal types.
2246         (Is_Formal_Preelab_Init_Attribute): New utility function nested
2247         within Is_Conjunction_Of_Formal_Preelab_Init_Attributes that
2248         determines whether a node is a P_I attribute applied to a
2249         generic formal type.
2250         (Original_View_In_Visible_Part): Moved here from exp_util.adb,
2251         so it can be called by Analyze_Attribute.
2252         * snames.ads-tmpl: Add note near the start of spec giving
2253         details about what needs to be done when adding a name that
2254         corresponds to both an attribute and a pragma.  Delete existing
2255         occurrence of Name_Preelaborable_Initialization, and add a note
2256         comment in the list of Name_* constants at that place,
2257         indicating that it's included in type Pragma_Id, etc., echoing
2258         other such comments for names that are both an attribute and a
2259         pragma.  Insert Name_Preelaborable_Initialization in the
2260         alphabetized set of Name_* constants corresponding to
2261         attributes (between First_Attribute_Name and
2262         Last_Attribute_Name).
2263         (type Attribute_Id): Add new literal
2264         Attribute_Preelaborable_Initialization.
2265         (type Pragma_Id): Move Pragma_Preelaborable_Initialization from
2266         its current position to the end of the type, in the special set
2267         of pragma literals that have corresponding atttributes. Add to
2268         accompanying comment, indicating that functions Get_Pragma_Id
2269         and Is_Pragma_Name need to be updated when adding a pragma
2270         literal to the special set.
2271         * snames.adb-tmpl (Get_Pragma_Id): Add case alternative for
2272         Pragma_Preelaborable_Initialization.
2273         (Is_Pragma_Name): Add test for
2274         Name_Preelaborable_Initialization.
2276 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2278         * sem_ch4.adb (Finc_Non_Universal_Interpretations): Fix check.
2280 2021-09-20  Piotr Trojanek  <trojanek@adacore.com>
2282         * sem_ch3.adb (Build_Discriminant_Constraints): Exit once a
2283         first discriminant is found and the Discrim_Present flag is set.
2285 2021-09-20  Bob Duff  <duff@adacore.com>
2287         * gnat1drv.adb (Gnat1drv): Avoid calling List_Rep_Info in
2288         Generate_SCIL and GNATprove_Mode.
2289         * repinfo.adb (List_Common_Type_Info): Fix comment.
2291 2021-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2293         * libgnat/s-dwalin.ads: Remove clause for Ada.Exceptions.Traceback,
2294         add clause for System.Traceback_Entries and alphabetize.
2295         (AET): Delete.
2296         (STE): New package renaming.
2297         (Symbolic_Traceback): Adjust.
2298         * libgnat/s-dwalin.adb: Remove clauses for Ada.Exceptions.Traceback
2299         and System.Traceback_Entries.
2300         (Symbolic_Traceback): Adjust.
2302 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2304         * sem_ch4.adb (Find_Non_Universal_Interpretations): Check if
2305         types are compatible before adding interpretation.
2307 2021-09-20  Justin Squirek  <squirek@adacore.com>
2309         * exp_ch4.adb (Expand_N_Type_Conversion): Add guard to protect
2310         against calculating accessibility levels against internal
2311         compiler-generated types.
2313 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2315         * sem_dim.adb (Dimensions_Msg_Of): Capitalize comment.
2317 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2319         * adabkend.adb (Scan_Back_End_Switches): Replace switch-scanning
2320         logic with call to Backend_Utils.Scan_Common_Back_End_Switches.
2321         * back_end.adb (Scan_Back_End_Switches): Replace switch-scanning
2322         logic with call to Backend_Utils.Scan_Common_Back_End_Switches.
2323         * backend_utils.adb: New file.
2324         * backend_utils.ads: New file.
2325         * gcc-interface/Make-lang.in: Add ada/backend_utils.o.
2327 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2329         * atree.adb (Get_32_Bit_Field): Declare result before returning.
2331 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2333         * exp_ch7.adb (Expand_N_Package_Body): Replace
2334         Build_And_Insert_Cuda_Initialization with Expand_CUDA_Package.
2335         * gnat_cuda.adb (Expand_CUDA_Package): New procedure.
2336         (Build_And_Insert_Cuda_Initialization): Make internal.
2337         * gnat_cuda.ads (Expand_CUDA_Package): New procedure.
2338         (Build_And_Insert_Cuda_Initialization): Remove from spec.
2340 2021-09-20  Ghjuvan Lacambre  <lacambre@adacore.com>
2342         * usage.adb (Usage): Update -gnatw.c messages.
2344 2021-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2346         * sem_aux.adb (Is_By_Reference_Type): Do not test Error_Posted.
2348 2021-09-15  Alexandre Oliva  <oliva@adacore.com>
2350         * gcc-interface/utils.c: Include opts.h.
2351         (handle_zero_call_used_regs_attribute): New.
2352         (gnat_internal_attribute_table): Add zero_call_used_regs.
2354 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2356         PR ada/101970
2357         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Enum_Rep>:
2358         Use an unchecked conversion instead of a regular conversion in the
2359         enumeration case and remove Conversion_OK flag in the integer case.
2360         <Attribute_Pos>: Remove superfluous test.
2362 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2364         * gcc-interface/decl.c (validate_size): Do not issue an error if the
2365         old size has overflowed.
2367 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2369         * gcc-interface/decl.c (gnat_to_gnu_entity): For vector types, make
2370         the representative array the debug type.
2372 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2374         * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Turn variable
2375         into constant.  Capitalize GCC in warning message.
2376         (intrin_arglists_compatible_p): Change parameter to pointer-to-const
2377         Adjust warning messages.  Turn warning into error for vector types.
2378         (intrin_return_compatible_p): Likewise.
2379         (intrin_profiles_compatible_p): Change parameter to pointer-to-const
2381 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2383         * libgnat/s-atopri.ads (bool): Delete.
2384         (Atomic_Test_And_Set): Replace bool with Boolean.
2385         (Atomic_Always_Lock_Free): Likewise.
2386         * libgnat/s-aoinar.adb (Is_Lock_Free): Adjust.
2387         * libgnat/s-aomoar.adb (Is_Lock_Free): Likewise.
2388         * libgnat/s-aotase.adb (Atomic_Test_And_Set): Likewise.
2389         * libgnat/s-atopex.adb (Atomic_Compare_And_Exchange): Likewise.
2390         * gcc-interface/decl.c: Include gimple-expr.h.
2391         (intrin_types_incompatible_p): Delete.
2392         (intrin_arglists_compatible_p): Call types_compatible_p.
2393         (intrin_return_compatible_p): Likewise.
2395 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2397         * gcc-interface/utils.c (update_pointer_to): Set TYPE_CANONICAL on
2398         pointer and reference types.
2400 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2402         PR ada/101385
2403         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
2404         (-Wall): Minor fixes.
2405         (-w): Likewise.
2406         (-Werror): Document that it also sets -gnatwe by default.
2407         * gcc-interface/lang-specs.h (ada): Expand -gnatwe if -Werror is
2408         passed and move expansion of -gnatw switches to before -gnatez.
2410 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2412         * gcc-interface/utils.c (can_materialize_object_renaming_p): Do not
2413         call UI_Is_In_Int_Range on the result of Normalized_First_Bit.
2415 2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2417         * gcc-interface/decl.c (gnat_to_gnu_entity) <is_type>: Declare new
2418         constant.  Adjust error message issued by validate_size in the case
2419         of by-reference types.
2420         (validate_size): Always use the error strings passed by the caller.
2422 2021-09-08  liuhongt  <hongtao.liu@intel.com>
2424         * gcc-interface/misc.c (gnat_post_options): Issue an error for
2425         -fexcess-precision=16.
2427 2021-08-19  Arnaud Charlet  <charlet@adacore.com>
2429         PR ada/101924
2430         * gcc-interface/Make-lang.in (STAGE1_LIBS): Define on hpux.
2432 2021-08-18  Eric Botcazou  <ebotcazou@gcc.gnu.org>
2434         * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Fix
2435         thinko in latest change.
2437 2021-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2439         PR debug/101598
2440         * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the
2441         DECL_SOURCE_LOCATION of DECL_IGNORED_P gnu_subprog_decl to
2442         UNKNOWN_LOCATION.
2444 2021-07-25  Arnaud Charlet  <charlet@adacore.com>
2446         * libgnat/s-osprim__x32.adb: Add missing with clause.
2448 2021-07-12  Pierre-Marie de Rodat  <derodat@adacore.com>
2450         * adaint.c (__gnat_number_of_cpus): Replace "#ifdef" by "#if
2451         defined".
2453 2021-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2455         * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Add a
2456         parallel type only when -fgnat-encodings=all is specified.
2457         <E_Array_Type>: Use the PAT name and special suffixes only when
2458         -fgnat-encodings=all is specified.
2459         <E_Array_Subtype>: Build a special type for debugging purposes only
2460         when -fgnat-encodings=all is specified.  Add a parallel type or use
2461         the PAT name only when -fgnat-encodings=all is specified.
2462         <E_Record_Type>: Generate debug info for the inner record types only
2463         when -fgnat-encodings=all is specified.
2464         <E_Record_Subtype>: Use a debug type for an artificial subtype only
2465         except when -fgnat-encodings=all is specified.
2466         (elaborate_expression_1): Reset need_for_debug when possible only
2467         except when -fgnat-encodings=all is specified.
2468         (components_to_record): Use XV encodings for variable size only
2469         when -fgnat-encodings=all is specified.
2470         (associate_original_type_to_packed_array): Add a parallel type only
2471         when -fgnat-encodings=all is specified.
2472         * gcc-interface/misc.c (gnat_get_array_descr_info): Do not return
2473         full information only when -fgnat-encodings=all is specified.
2474         * gcc-interface/utils.c (make_packable_type): Add a parallel type
2475         only when -fgnat-encodings=all is specified.
2476         (maybe_pad_type): Make the inner type a debug type only except when
2477         -fgnat-encodings=all is specified.  Create an XVS type for variable
2478         size only when -fgnat-encodings=all is specified.
2479         (rest_of_record_type_compilation): Add a parallel type only when
2480         -fgnat-encodings=all is specified.
2482 2021-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2484         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Use a
2485         fixed lower bound if the index subtype is marked so, as well as a
2486         more efficient formula for the upper bound if the array cannot be
2487         superflat.
2488         (flb_cannot_be_superflat): New predicate.
2489         (cannot_be_superflat): Rename into...
2490         (range_cannot_be_superfla): ...this.  Minor tweak.
2492 2021-07-12  Bob Duff  <duff@adacore.com>
2494         * uintp.ads, types.h: New subtypes of Uint: Valid_Uint, Unat,
2495         Upos, Nonzero_Uint with predicates. These correspond to new
2496         field types in Gen_IL.
2497         * gen_il-types.ads (Valid_Uint, Unat, Upos, Nonzero_Uint): New
2498         field types.
2499         * einfo-utils.ads, einfo-utils.adb, fe.h (Known_Alignment,
2500         Init_Alignment): Use the initial zero value to represent
2501         "unknown". This will ensure that if Alignment is called before
2502         Set_Alignment, the compiler will blow up (if assertions are
2503         enabled).
2504         * atree.ads, atree.adb, atree.h, gen_il-gen.adb
2505         (Get_Valid_32_Bit_Field): New generic low-level getter for
2506         subtypes of Uint.
2507         (Copy_Alignment): New procedure to copy Alignment field even
2508         when Unknown.
2509         (Init_Object_Size_Align, Init_Size_Align): Do not bypass the
2510         Init_ procedures.
2511         * exp_pakd.adb, freeze.adb, layout.adb, repinfo.adb,
2512         sem_util.adb: Protect calls to Alignment with Known_Alignment.
2513         Use Copy_Alignment when it might be unknown.
2514         * gen_il-gen-gen_entities.adb (Alignment,
2515         String_Literal_Length): Use type Unat instead of Uint, to ensure
2516         that the field is always Set_ before we get it, and that it is
2517         set to a nonnegative value.
2518         (Enumeration_Pos): Unat.
2519         (Enumeration_Rep): Valid_Uint. Can be negative, but must be
2520         valid before fetching.
2521         (Discriminant_Number): Upos.
2522         (Renaming_Map): Remove.
2523         * gen_il-gen-gen_nodes.adb (Char_Literal_Value, Reason): Unat.
2524         (Intval, Corresponding_Integer_Value): Valid_Uint.
2525         * gen_il-internals.ads: New functions for dealing with special
2526         defaults and new subtypes of Uint.
2527         * scans.ads: Correct comments.
2528         * scn.adb (Post_Scan): Do not set Intval to No_Uint; that is no
2529         longer allowed.
2530         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Do
2531         not set Enumeration_Rep to No_Uint; that is no longer allowed.
2532         (Offset_Value): Protect calls to Alignment with Known_Alignment.
2533         * sem_prag.adb (Set_Atomic_VFA): Do not use Uint_0 to mean
2534         "unknown"; call Init_Alignment instead.
2535         * sinfo.ads: Minor comment fix.
2536         * treepr.adb: Deal with printing of new field types.
2537         * einfo.ads, gen_il-fields.ads (Renaming_Map): Remove.
2538         * gcc-interface/decl.c (gnat_to_gnu_entity): Use Known_Alignment
2539         before calling Alignment. This preserve some probably buggy
2540         behavior: if the alignment is not set, it previously defaulted
2541         to Uint_0; we now make that explicit.  Use Copy_Alignment,
2542         because "Set_Alignment (Y, Alignment (X));" no longer works when
2543         the Alignment of X has not yet been set.
2544         * gcc-interface/trans.c (process_freeze_entity): Use
2545         Copy_Alignment.
2547 2021-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2549         * libgnat/s-dwalin.ads: Adjust a few comments left and right.
2550         (Line_Info_Register): Comment out unused components.
2551         (Line_Info_Header): Add DWARF 5 support.
2552         (Dwarf_Context): Likewise.  Rename "prologue" into "header".
2553         * libgnat/s-dwalin.adb: Alphabetize "with" clauses.
2554         (DWARF constants): Add DWARF 5 support and reorder.
2555         (For_Each_Row): Adjust.
2556         (Initialize_Pass): Likewise.
2557         (Initialize_State_Machine): Likewise and fix typo.
2558         (Open): Add DWARF 5 support.
2559         (Parse_Prologue): Rename into...
2560         (Parse_Header): ...this and add DWARF 5 support.
2561         (Read_And_Execute_Isn): Rename into...
2562         (Read_And_Execute_Insn): ...this and adjust.
2563         (To_File_Name): Change parameter name and add DWARF 5 support.
2564         (Read_Entry_Format_Array): New procedure.
2565         (Skip_Form): Add DWARF 5 support and reorder.
2566         (Seek_Abbrev): Do not count entries and add DWARF 5 support.
2567         (Debug_Info_Lookup): Add DWARF 5 support.
2568         (Symbolic_Address.Set_Result): Likewise.
2569         (Symbolic_Address): Adjust.
2571 2021-07-12  Bob Duff  <duff@adacore.com>
2573         * sem_ch13.adb (Duplicate_Clause): Add a helper routine
2574         Check_One_Attr, with a parameter for the attribute_designator we
2575         are looking for, and one for the attribute_designator of the
2576         current node (which are usually the same). For Size and
2577         Value_Size, call it twice, once for each.
2578         * errout.ads: Fix a typo.
2580 2021-07-12  Piotr Trojanek  <trojanek@adacore.com>
2582         * exp_imgv.adb (Expand_Image_Attribute): Move rewriting to
2583         attribute Put_Image to the beginning of expansion of attribute
2584         Image.
2586 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2588         * gcc-interface/utils.c (finish_subprog_decl): Remove obsolete line.
2590 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2592         * exp_put_image.adb (Make_Put_Image_Name): Fix style.
2593         (Image_Should_Call_Put_Image): Likewise.
2594         (Build_Image_Call): Likewise.
2596 2021-07-09  Ghjuvan Lacambre  <lacambre@adacore.com>
2598         * par-ch6.adb (Contains_Import_Aspect): New function.
2599         (P_Subprogram): Acknowledge `Import` aspects.
2601 2021-07-09  Bob Duff  <duff@adacore.com>
2603         * exp_put_image.adb (Make_Component_Attributes): Use
2604         Implementation_Base_Type to get the parent type. Otherwise,
2605         Parent_Type_Decl is actually an internally generated subtype
2606         declaration, so we blow up on
2607         Type_Definition (Parent_Type_Decl).
2609 2021-07-09  Dmitriy Anisimkov  <anisimko@adacore.com>
2611         * gsocket.h: Include net/if.h to get IF_NAMESIZE constant.
2612         * s-oscons-tmplt.c: Define IPV6_FLOWINFO for Linux.
2614 2021-07-09  Steve Baird  <baird@adacore.com>
2616         * libgnat/a-cdlili.adb: Reimplement
2617         Ada.Containers.Doubly_Linked_Lists.Generic_Sorting.Sort using
2618         Mergesort instead of the previous Quicksort variant.
2620 2021-07-09  Justin Squirek  <squirek@adacore.com>
2622         * exp_ch6.adb (Is_Build_In_Place_Function_Call): Add check to
2623         verify the Selector_Name of Exp_Node has been analyzed before
2624         obtaining its entity.
2626 2021-07-09  Gary Dismukes  <dismukes@adacore.com>
2628         * libgnarl/s-osinte__vxworks.ads: Fix typo ("release" =>
2629         "releases") plus comment reformatting.
2630         * libgnat/s-os_lib.ads: In a comment, fix typo ("indended" =>
2631         "intended"), add a hyphen and semicolon, plus reformatting. In
2632         comment for subtype time_t, fix typo ("effect" => "affect"), add
2633         hyphens, plus reformatting.
2634         * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
2635         libgnat/s-parame__hpux.ads: Remove period from one-line comment.
2637 2021-07-09  Steve Baird  <baird@adacore.com>
2639         * exp_ch5.adb (Expand_General_Case_Statement): Add new function
2640         Else_Statements to handle the case of invalid data analogously
2641         to how it is handled when casing on a discrete value.
2642         * sem_case.adb (Has_Static_Discriminant_Constraint): A new
2643         Boolean-valued function.
2644         (Composite_Case_Ops.Scalar_Part_Count): Include discriminants
2645         when traversing components.
2646         (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts):
2647         Include discriminants when traversing components; the component
2648         range for a constrained discriminant is a single value.
2649         (Composite_Case_Ops.Choice_Analysis.Parse_Choice): Eliminate
2650         Done variable and modify how Next_Part is computed so that it is
2651         always correct (as opposed to being incorrect when Done is
2652         True).  This includes changes in Update_Result (a local
2653         procedure).  Add new local procedure
2654         Update_Result_For_Box_Component and call it not just for box
2655         components but also for "missing" components (components
2656         associated with an inactive variant).
2657         (Check_Choices.Check_Composite_Case_Selector.Check_Component_Subtype):
2658         Instead of disallowing all discriminated component types, allow
2659         those that are unconstrained or statically constrained. Check
2660         discriminant subtypes along with other component subtypes.
2661         * doc/gnat_rm/implementation_defined_pragmas.rst: Update
2662         documentation to reflect current implementation status.
2663         * gnat_rm.texi: Regenerate.
2665 2021-07-09  Justin Squirek  <squirek@adacore.com>
2667         * sem_ch6.adb (Check_Pragma_Inline): Correctly use
2668         Corresponding_Spec_Of_Stub when dealing subprogram body stubs.
2670 2021-07-09  Doug Rupp  <rupp@adacore.com>
2672         * Makefile.rtl: Add translations for s-parame__posix2008.ads
2673         * libgnarl/s-linux.ads: Import System.Parameters.
2674         (time_t): Declare using System.Parameters.time_t_bits.
2675         * libgnarl/s-linux__alpha.ads: Likewise.
2676         * libgnarl/s-linux__android.ads: Likewise.
2677         * libgnarl/s-linux__hppa.ads: Likewise.
2678         * libgnarl/s-linux__mips.ads: Likewise.
2679         * libgnarl/s-linux__riscv.ads: Likewise.
2680         * libgnarl/s-linux__sparc.ads: Likewise.
2681         * libgnarl/s-linux__x32.ads: Likewise.
2682         * libgnarl/s-qnx.ads: Likewise.
2683         * libgnarl/s-osinte__aix.ads: Likewise.
2684         * libgnarl/s-osinte__android.ads: Likewise.
2685         * libgnarl/s-osinte__darwin.ads: Likewise.
2686         * libgnarl/s-osinte__dragonfly.ads: Likewise.
2687         * libgnarl/s-osinte__freebsd.ads: Likewise.
2688         * libgnarl/s-osinte__gnu.ads: Likewise.
2689         * libgnarl/s-osinte__hpux-dce.ads: Likewise.
2690         * libgnarl/s-osinte__hpux.ads: Likewise.
2691         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
2692         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
2693         * libgnarl/s-osinte__qnx.ads: Likewise.
2694         * libgnarl/s-osinte__rtems.ads: Likewise.
2695         * libgnarl/s-osinte__solaris.ads: Likewise.
2696         * libgnarl/s-osinte__vxworks.ads: Likewise.
2697         * libgnat/g-sothco.ads: Likewise.
2698         * libgnat/s-osprim__darwin.adb: Likewise.
2699         * libgnat/s-osprim__posix.adb: Likewise.
2700         * libgnat/s-osprim__posix2008.adb: Likewise.
2701         * libgnat/s-osprim__rtems.adb: Likewise.
2702         * libgnat/s-osprim__x32.adb: Likewise.
2703         * libgnarl/s-osinte__linux.ads: use type System.Linux.time_t.
2704         * libgnat/s-os_lib.ads (time_t): Declare as subtype of
2705         Long_Long_Integer.
2706         * libgnat/s-parame.ads (time_t_bits): New constant.
2707         * libgnat/s-parame__ae653.ads (time_t_bits): Likewise.
2708         * libgnat/s-parame__hpux.ads (time_t_bits): Likewise.
2709         * libgnat/s-parame__vxworks.ads (time_t_bits): Likewise.
2710         * libgnat/s-parame__posix2008.ads: New file for 64 bit time_t.
2712 2021-07-09  Bob Duff  <duff@adacore.com>
2714         * comperr.adb (Compiler_Abort): Print source file name.
2716 2021-07-09  Joffrey Huguet  <huguet@adacore.com>
2718         * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Fix layout
2719         in contracts.
2721 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2723         * repinfo.ads (JSON output format): Document adjusted key name.
2724         * repinfo.adb (List_Record_Layout): Use Original_Record_Component
2725         if the normalized position of the component is not known.
2726         (List_Structural_Record_Layout): Rename Outer_Ent parameter into
2727         Ext_End and add Ext_Level parameter. In an extension, if the parent
2728         subtype has static discriminants, call List_Record_Layout on it.
2729         Output "parent_" prefixes before "variant" according to Ext_Level.
2730         Adjust recursive calls throughout the procedure.
2732 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2734         * exp_util.ads (Map_Types): Fix typo.
2736 2021-07-09  Fedor Rybin  <frybin@adacore.com>
2738         * krunch.adb: Add safeguards against index range violations.
2740 2021-07-09  Arnaud Charlet  <charlet@adacore.com>
2742         * libgnat/a-strfix.adb: Take advantage of extended returns.
2744 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2746         * doc/gnat_rm/implementation_defined_attributes.rst
2747         (Scalar_Storage_Order): Add paragraph about representation
2748         changes.
2749         * gnat_rm.texi: Regenerate.
2751 2021-07-09  Frederic Konrad  <konrad@adacore.com>
2753         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <aarch64*-*-rtems*>: Use
2754         the wraplf variant of Aux_Long_Long_Float.
2756 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2758         * sem_ch6.adb (Analyze_Expression_Function): Initialize Orig_N
2759         and Typ variables.
2761 2021-07-09  Arnaud Charlet  <charlet@adacore.com>
2763         * sem_ch13.adb (Resolve_Aspect_Expressions): Use the same
2764         processing for Predicate, Static_Predicate and
2765         Dynamic_Predicate. Do not build the predicate function spec.
2766         Update comments.
2767         (Resolve_Name): Only reset Entity when necessary to avoid
2768         spurious visibility errors.
2769         (Check_Aspect_At_End_Of_Declarations): Handle consistently all
2770         Predicate aspects.
2771         * sem_ch3.adb (Analyze_Subtype_Declaration): Fix handling of
2772         private types with predicates.
2774 2021-07-09  Justin Squirek  <squirek@adacore.com>
2776         * sem_util.ads (Type_Access_Level): Add new optional parameter
2777         Assoc_Ent.
2778         * sem_util.adb (Accessibility_Level): Treat access discriminants
2779         the same as components when the restriction
2780         No_Dynamic_Accessibility_Checks is enabled.
2781         (Deepest_Type_Access_Level): Remove exception for
2782         Debug_Flag_Underscore_B when returning the result of
2783         Type_Access_Level in the case where
2784         No_Dynamic_Accessibility_Checks is active.
2785         (Function_Call_Or_Allocator_Level): Correctly calculate the
2786         level of Expr based on its containing subprogram instead of
2787         using Current_Subprogram.
2788         * sem_res.adb (Valid_Conversion): Add actual for new parameter
2789         Assoc_Ent in call to Type_Access_Level, and add test of
2790         No_Dynamic_Accessibility_Checks_Enabled to ensure that static
2791         accessibility checks are performed for all anonymous access type
2792         conversions.
2794 2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>
2796         * exp_dbug.ads: Update documentation of various items.
2798 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2800         * sem_ch6.adb (Analyze_Expression_Function): Reorder code.
2802 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2804         * sem_ch6.adb (Analyze_Expression_Function): Reorder code.
2806 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2808         * sem_ch6.adb (Analyze_Expression_Function): Add variable to
2809         avoid repeated calls to Etype.
2811 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2813         * sem_ch6.adb (Analyze_Expression_Function): Fix comment.
2815 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2817         * sem_ch6.adb (Analyze_Expression_Function): Use Orig_N variable
2818         instead of repeated calls to Original_Node.
2820 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2822         * sem_ch6.adb (Analyze_Expression_Function): Change types local
2823         variables from Entity_Id to Node_Id.
2825 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2827         * sem_ch6.adb (Analyze_Expression_Function): A local Expr
2828         constant was shadowing a global constant with the same name and
2829         the same value.
2831 2021-07-09  Piotr Trojanek  <trojanek@adacore.com>
2833         * sem_res.adb (Preanalyze_And_Resolve): Only call
2834         Set_Must_Not_Freeze when it is necessary to restore the previous
2835         value.
2837 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
2839         * sem_ch5.adb (Analyze_Assignment): Clear Current_Assignment at
2840         exit.
2841         (Analyze_Target_Name): Prevent AST climbing from going too far.
2843 2021-07-08  Ed Schonberg  <schonberg@adacore.com>
2845         * sem_ch5.adb (Analyze_Target_Name): Properly reject a
2846         Target_Name when it appears outside of an assignment statement,
2847         or within the left-hand side of one.
2849 2021-07-08  Bob Duff  <duff@adacore.com>
2851         * einfo-utils.ads, einfo-utils.adb (Unknown_Alignment,
2852         Unknown_Component_Bit_Offset, Unknown_Component_Size,
2853         Unknown_Esize, Unknown_Normalized_First_Bit,
2854         Unknown_Normalized_Position, Unknown_Normalized_Position_Max,
2855         Unknown_RM_Size): Remove these functions.
2856         * exp_pakd.adb, exp_util.adb, fe.h, freeze.adb, layout.adb,
2857         repinfo.adb, sem_ch13.adb, sem_ch3.adb, sem_util.adb: Remove
2858         calls to these functions; do "not Known_..." instead.
2859         * gcc-interface/decl.c, gcc-interface/trans.c
2860         (Unknown_Alignment, Unknown_Component_Size, Unknown_Esize,
2861         Unknown_RM_Size): Remove calls to these functions; do
2862         "!Known_..." instead.
2864 2021-07-08  Eric Botcazou  <ebotcazou@adacore.com>
2866         * exp_dbug.adb (Get_Encoded_Name): Do not encode names of discrete
2867         types with custom bounds, except with -fgnat-encodings=all.
2868         * exp_pakd.adb (Create_Packed_Array_Impl_Type): Adjust comment.
2870 2021-07-08  Bob Duff  <duff@adacore.com>
2872         * comperr.adb (Compiler_Abort): Call Sinput.Unlock, because if
2873         this is called late, then Source_Dump would crash otherwise.
2874         * debug.adb: Correct documentation of the -gnatd.9 switch.
2875         * exp_ch4.adb (Expand_Allocator_Expression): Add a comment.
2876         * exp_ch6.adb: Minor comment fixes.  Add assertion.
2877         * exp_ch6.ads (Is_Build_In_Place_Result_Type): Correct comment.
2878         * exp_ch7.adb, checks.ads: Minor comment fixes.
2880 2021-07-08  Doug Rupp  <rupp@adacore.com>
2882         * sigtramp-vxworks-target.inc: Rename to...
2883         * sigtramp-vxworks-target.h: ... this.
2884         * sigtramp-vxworks.c, Makefile.rtl: Likewise.
2886 2021-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>
2888         * lib-writ.ads: Mention SCOs dependency as reason for duplicates.
2889         * lib.ads (Units): Update documentation to mention duplicated
2890         units.
2892 2021-07-08  Ed Schonberg  <schonberg@adacore.com>
2894         * style.adb (Missing_Overriding): Do not emit message when
2895         parent of subprogram is a full type declaration.
2897 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
2899         * par-ch5.adb (P_Iterator_Specification): Add support for access
2900         definition in loop parameter.
2901         * sem_ch5.adb (Check_Subtype_Indication): Renamed...
2902         (Check_Subtype_Definition): ... into this and check for conformance
2903         on access definitions, and improve error messages.
2904         (Analyze_Iterator_Specification): Add support for access definition
2905         in loop parameter.
2907 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
2909         * sem_util.ads, sem_util.adb
2910         (Apply_Compile_Time_Constraint_Error): New parameter
2911         Emit_Message.
2912         * sem_ch4.adb (Analyze_Selected_Component): Disable warning
2913         within an instance.
2915 2021-07-08  Eric Botcazou  <ebotcazou@adacore.com>
2917         * exp_imgv.adb: Add with and use clause for Restrict and Rident.
2918         (Build_Enumeration_Image_Tables): Do not generate the hash function
2919         if the No_Implicit_Loops restriction is active.
2921 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
2923         * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb, sprint.adb: Simplify
2924         checks for non-empty lists.
2926 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
2928         * par-ch10.adb (Unit_Display): Remove redundant condition; fix
2929         whitespace.
2931 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
2933         * lib-load.adb (Load): Replace early return with goto to properly
2934         restore context on failure.
2936 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
2938         * lib-writ.adb (Ensure_System_Dependency): Simplify condition.
2940 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
2942         * lib-load.adb (Load_Unit): Fix style in comment.
2943         * par-load.adb (Load): Likewise.
2944         * scng.adb (Initialize_Scanner): Fix whitespace.
2946 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
2948         * par-load.adb (Load): Don't remove unit, but flag it as
2949         erroneous and return.
2951 2021-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>
2953         * exp_prag.adb (Expand_Pragma_Inspection_Point): Fix error
2954         message.
2956 2021-07-08  Yannick Moy  <moy@adacore.com>
2958         * layout.adb (Layout_Type): Do not call Number_Dimensions if the
2959         type does not have First_Index set.
2961 2021-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>
2963         * exp_prag.adb (Expand_Pragma_Inspection_Point): After expansion
2964         of the Inspection_Point pragma, check if referenced entities
2965         that have a freeze node are already frozen. If they aren't, emit
2966         a warning and turn the pragma into a no-op.
2968 2021-07-08  Yannick Moy  <moy@adacore.com>
2970         * layout.adb (Layout_Type): Add guard before calling Expr_Value.
2972 2021-07-08  Yannick Moy  <moy@adacore.com>
2974         * layout.adb (Layout_Type): Special case when RM_Size and Esize
2975         can be computed for packed arrays.
2977 2021-07-08  Steve Baird  <baird@adacore.com>
2979         * rtsfind.ads, rtsfind.adb: Add support for finding the packages
2980         System.Atomic_Operations and
2981         System.Atomic_Operations.Test_And_Set and the declarations
2982         within that latter package of the type Test_And_Set_Flag and the
2983         function Atomic_Test_And_Set.
2984         * exp_ch11.adb (Expand_N_Exception_Declaration): If an exception
2985         is declared other than at library level, then we need to call
2986         Register_Exception the first time (and only the first time) the
2987         declaration is elaborated.  In order to decide whether to
2988         perform this call for a given elaboration of the declaration, we
2989         used to unconditionally use a (library-level) Boolean variable.
2990         Now we instead use a variable of type
2991         System.Atomic_Operations.Test_And_Set.Test_And_Set_Flag unless
2992         either that type is unavailable or a No_Tasking restriction is
2993         in effect (in which case we use a Boolean variable as before).
2995 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
2997         * gcc-interface/system.ads: Add No_Tasking restriction.
2999 2021-07-08  Ed Schonberg  <schonberg@adacore.com>
3001         * libgnat/a-cohama.ads: Introduce an equality operator over
3002         cursors.
3003         * libgnat/a-cohase.ads: Ditto.
3004         * libgnat/a-cohama.adb: Add body for "=" over cursors.
3005         (Insert): Do not set the Position component of the cursor that
3006         denotes the inserted element.
3007         * libgnat/a-cohase.adb: Ditto.
3009 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3011         * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
3012         libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
3013         libgnat/a-cborma.adb, libgnat/a-cborse.adb,
3014         libgnat/a-cobove.adb, libgnat/a-textio.adb,
3015         libgnat/a-witeio.adb, libgnat/a-ztexio.adb: Make code compatible
3016         with No_Dynamic_Accessibility_Checks restriction.
3018 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3020         * debug.adb, sem_util.adb: Revert meaning of -gnatd_b.
3021         * sem_res.adb: Minor reformatting.
3023 2021-07-08  Arnaud Charlet  <charlet@adacore.com>
3025         * make.adb, osint.adb: Make code compatible with
3026         No_Dynamic_Accessibility_Checks restriction.
3028 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3030         * lib-writ.adb (Ensure_System_Dependency): Replace search in
3031         Lib.Units with a search in Lib.Unit_Names.
3033 2021-07-08  Piotr Trojanek  <trojanek@adacore.com>
3035         * sinput-l.adb (Load_File): Simplify foreword manipulation with
3036         concatenation; similar for filename with preprocessed output.
3038 2021-07-07  Dmitriy Anisimkov  <anisimko@adacore.com>
3040         * s-oscons-tmplt.c (MSG_WAITALL): Remove wrong #ifdef
3041         __MINWGW32__.
3043 2021-07-07  Gary Dismukes  <dismukes@adacore.com>
3045         * einfo-utils.adb (Primitive_Operations): Default to returning
3046         Direct_Primitive_Operations in the case of concurrent types
3047         (when Corresponding_Record_Type not present).
3048         * sem_ch9.adb (Analyze_Protected_Type_Declaration): Initialize
3049         Direct_Primitive_Operations to an empty element list.
3050         (Analyze_Task_Type_Declaration): Initialize
3051         Direct_Primitive_Operations to an empty element list.
3053 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3055         * sem_eval.adb (Set_Checking_Potentially_Static_Expression):
3056         Stronger assertion.
3058 2021-07-07  Arnaud Charlet  <charlet@adacore.com>
3060         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Mark Anon_Id
3061         intrinsic before calling Analyze_Instance_And_Renamings because
3062         this flag may be propagated to other nodes.
3064 2021-07-07  Dmitriy Anisimkov  <anisimko@adacore.com>
3066         * s-oscons-tmplt.c (TCP_KEEPCNT TCP_KEEPIDLE, TCP_KEEPINTVL):
3067         Hardcode on Windows if undefined.
3069 2021-07-07  Bob Duff  <duff@adacore.com>
3071         * checks.adb (Install_Primitive_Elaboration_Check): Do not
3072         generate elaboration checks for primitives if pragma Pure or
3073         Preelaborate is present.  Misc comment fixes, including
3074         referring to the correct kind of check (elaboration, not
3075         accessibility).
3076         * checks.ads, restrict.adb, sem_cat.ads, sinfo.ads: Minor
3077         reformatting and comment fixes.
3079 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3081         * sem_prag.adb (Analyze_Pragma): Simplify processing of pragma
3082         CPP_Constructor.
3084 2021-07-07  Arnaud Charlet  <charlet@adacore.com>
3086         * libgnat/g-debpoo.adb (Code_Address_For_Allocate_End): Default
3087         Initialize.
3089 2021-07-07  Arnaud Charlet  <charlet@adacore.com>
3091         * libgnat/s-atocou.ads, libgnat/s-atocou__builtin.adb: Code
3092         cleanups.
3094 2021-07-07  Gary Dismukes  <dismukes@adacore.com>
3096         * freeze.adb (Check_Inherited_Conditions): Setting of Ekind,
3097         LSP_Subprogram, and Is_Wrapper needs to happen for null
3098         procedures as well as other wrapper cases, so the code is moved
3099         from the else part in front of the if statement.  (Fixes a
3100         latent bug encountered while working on this set of changes.)
3101         * sem_attr.adb (Resolve_Attribute): Report an error for the case
3102         of an Access attribute applied to a primitive of an abstract
3103         type when the primitive has any nonstatic Pre'Class or
3104         Post'Class expressions.
3105         * sem_ch8.adb (Analyze_Subprogram_Renaming): Report an error for
3106         the case of a actual subprogram associated with a nonabstract
3107         formal subprogram when the actual is a primitive of an abstract
3108         type and the primitive has any nonstatic Pre'Class or Post'Class
3109         expressions.
3110         * sem_disp.adb (Check_Dispatching_Context): Remove special
3111         testing for null procedures, and replace it with a relaxed test
3112         that avoids getting an error about illegal calls to abstract
3113         subprograms in cases where RM 6.1.1(7/5) applies in
3114         Pre/Post'Class aspects. Also, remove special test for
3115         Postcondition, which seems to be unnecessary, update associated
3116         comments, and fix a typo in one comment.
3117         (Check_Dispatching_Call): Remove an unneeded return statement,
3118         and report an error for the case of a nondispatching call to a
3119         nonabstract subprogram of an abstract type where the subprogram
3120         has nonstatic Pre/Post'Class aspects.
3121         * sem_util.ads
3122         (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): New function.
3123         (In_Pre_Post_Condition): Add a flag formal Class_Wide_Only,
3124         defaulted to False, for indicating whether the function should
3125         only test for the node being within class-wide pre- and
3126         postconditions.
3127         * sem_util.adb
3128         (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): New function
3129         to determine whether a subprogram is a primitive of an abstract
3130         type where the primitive has class-wide Pre/Post'Class aspects
3131         specified with nonstatic expressions.
3132         (In_Pre_Post_Condition): Extend testing to account for the new
3133         formal Class_Wide_Only.
3135 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3137         * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Errors
3138         emitted via Check_Volatility_Compatibility are now emitted at
3139         Actual, just like other errors emitted by
3140         Check_Shared_Variable_Control_Aspects.
3142 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3144         * uname.adb (Get_Unit_Name): Simplify with a bounded string
3145         buffer; also, this addresses a ??? comment about the max length
3146         being exceeded.
3148 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3150         * uname.adb (Get_Body_Name, Get_Parent_Body_Name,
3151         Get_Parent_Spec_Name, Get_Spec_Name, Is_Child_Name,
3152         Is_Body_Name, Is_Spec_Name, Name_To_Unit_Name): Use a local
3153         instead of the global buffer.
3155 2021-07-07  Bob Duff  <duff@adacore.com>
3157         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Combine
3158         processing of Size and Value_Size clauses. Ensure that
3159         Value_Size is treated the same as Size, in the cases where both
3160         are allowed (i.e. the prefix denotes a first subtype).  Misc
3161         cleanup.
3162         * einfo-utils.adb (Init_Size): Add assertions.
3163         (Size_Clause): Return a Value_Size clause if present, instead of
3164         just looking for a Size clause.
3165         * einfo.ads (Has_Size_Clause, Size_Clause): Change documentation
3166         to include Value_Size.
3167         * sem_ch13.ads, layout.ads, layout.adb: Comment modifications.
3169 2021-07-07  Steve Baird  <baird@adacore.com>
3171         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Add
3172         TSS_Put_Image to list of predefined primitives that need special
3173         treatment.
3174         (Build_General_Calling_Stubs, Build_Subprogram_Receiving_Stubs):
3175         Remove previous hack for dealing with TSS_Put_Image procedures.
3177 2021-07-07  Dmitriy Anisimkov  <anisimko@adacore.com>
3179         * libgnat/g-socket.adb (Get_Socket_Option): Add 500ms only when
3180         Minus_500ms_Windows_Timeout is True.
3181         (Set_Socket_Option): Use "* 1000" instead of "/ 0.001" to
3182         convert to milliseconds.
3184 2021-07-07  Bob Duff  <duff@adacore.com>
3186         * tbuild.adb (Unchecked_Convert_To): Set the Parent of the new
3187         node to the Parent of the old node.
3188         * tbuild.ads (Unchecked_Convert_To): Document differences
3189         between Convert_To and Unchecked_Convert_To. The previous
3190         documentation claimed they are identical except for the
3191         uncheckedness of the conversion.
3193 2021-07-07  Yannick Moy  <moy@adacore.com>
3195         * checks.adb (Apply_Scalar_Range_Check): Remove special case for
3196         GNATprove mode.
3197         * sem_res.adb (Resolve_Arithmetic_Op): Same.
3198         * sem_util.adb (Apply_Compile_Time_Constraint_Error): Same.
3200 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3202         * sem_ch6.adb (Check_For_Primitive_Subprogram): Move
3203         declarations of local variables after nested subprogram bodies.
3205 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3207         * exp_disp.adb (CPP_Num_Prims): Reuse List_Length.
3209 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3211         * exp_ch3.adb, exp_ch6.adb, sem_ch6.adb: Replace Ekind
3212         membership test in Private_Kind with a call to Is_Private_Type.
3214 2021-07-07  Bob Duff  <duff@adacore.com>
3216         * gen_il-gen-gen_entities.adb: Remove Linker_Section_Pragma
3217         field from Record_Field_Kind.  Minor comment improvement.
3219 2021-07-07  Yannick Moy  <moy@adacore.com>
3221         * libgnat/a-ngelfu.ads (Cot): Fix precondition.
3223 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3225         * par.adb (Par): A local Name variable is now a renaming of a
3226         constant slice.
3228 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3230         * gnat1drv.adb (Gnat1drv): Remove flagging of main unit and its
3231         corresponding spec as requiring code generation; now the flags
3232         are set much earlier.
3233         * lib-load.adb (Load_Main_Source): Set Generate_Code flag on the
3234         main unit source.
3235         (Make_Instance_Unit): Copy Generate_Code flag from the main unit
3236         to instance units.
3237         * lib-writ.adb (Write_ALI): Remove redundant condition;
3238         Generate_Code flag is always set for the main unit.
3239         * par-load.adb (Load): Set Generate_Code flag on the main unit's
3240         corresponding spec, if any.
3242 2021-07-07  Dmitriy Anisimkov  <anisimko@adacore.com>
3244         * libgnat/g-socket.ads (Option_Name): Add Keep_Alive_Count,
3245         Keep_Alive_Idle, and Keep_Alive_Interval items to enumeration.
3246         (Option_Type): Add Keep_Alive_Count, Keep_Alive_Idle, and
3247         Keep_Alive_Interval alternatives to the case of discriminated
3248         record.
3249         * libgnat/g-socket.adb (Options): Add Keep_Alive_Count,
3250         Keep_Alive_Idle, and Keep_Alive_Interval to items enumerator to
3251         OS constant converter.
3252         (Set_Socket_Option): Process Keep_Alive_Count, Keep_Alive_Idle,
3253         and Keep_Alive_Interval socket options.
3254         (Get_Socket_Option): Idem.
3256 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3258         * lib-writ.adb (Write_ALI): Exit from loop after seeing first
3259         unit that violates No_Elaboration_Code restriction.
3261 2021-07-07  Piotr Trojanek  <trojanek@adacore.com>
3263         * inline.adb (Instantiate_Bodies): Fix white in declaration.
3264         (Remove_Dead_Instance): Change iteration from WHILE to FOR.
3266 2021-07-07  Bob Duff  <duff@adacore.com>
3268         * checks.adb, exp_attr.adb, exp_ch4.adb, exp_ch6.adb,
3269         exp_ch9.adb, exp_disp.adb, exp_util.adb, inline.adb,
3270         sem_res.adb: Change all calls to Make_Unchecked_Type_Conversion
3271         to call Unchecked_Convert_To instead. This involves removing
3272         New_Occurrence_Of on the first parameter, because
3273         Unchecked_Convert_To expects a type entity, rather than the name
3274         of one. Also, removed calls to Relocate_Node, because
3275         Unchecked_Convert_To takes care of that.
3276         * sinfo.ads: Change comment to be worded more firmly.
3278 2021-07-07  Steve Baird  <baird@adacore.com>
3280         * libgnarl/s-tassta.adb (Free_Task): Acquire the Task_Lock
3281         before, rather than after, querying the task's Terminated flag.
3282         Add a corresponding Task_Unlock call.
3284 2021-07-06  Bob Duff  <duff@adacore.com>
3286         * atree.ads (Current_Error_Node): Initialize to Empty.
3288 2021-07-06  Steve Baird  <baird@adacore.com>
3290         * exp_put_image.adb: Eliminate references to
3291         Debug_Flag_Underscore_Z.  Change the meaning of the function
3292         Enable_Put_Image. Previously, a result of False for a tagged
3293         type would mean that the type does not get a Put_Image (PI)
3294         routine at all. Now, it means that the type gets a PI routine
3295         with very abbreviated functionality (just a call to
3296         Unknown_Put_Image). This resolves problems in mixing code
3297         compiled with and without the -gnat2022 switch.
3298         * exp_ch3.adb: Enable_Put_Image no longer participates in
3299         determining whether a tagged type gets a Put_Image procedure.  A
3300         tagged type does not get a Put_Image procedure if the type
3301         Root_Buffer_Type is unavailable. This is needed to support cross
3302         targets where tagged types are supported but the type
3303         Root_Buffer_Type is not available.
3304         * exp_dist.adb: Add workarounds for some problems that arise
3305         when using the (obsolete?) Garlic implementation of the
3306         distributed systems annex with Ada 2022 constructs.
3307         * libgnat/a-sttebu.ads: Workaround a bootstrapping problem.
3308         Older compilers do not support raise expressions, so revise the
3309         the Pre'Class condition to meet this requirement without
3310         changing the condition's behavior at run time.
3312 2021-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3314         * repinfo-input.adb (JSON_Entity_Kind, Read_Variant_Part): Fix
3315         typo in comment.
3317 2021-07-06  Steve Baird  <baird@adacore.com>
3319         * sem_ch5.adb (Analyze_Assignment): Add new nested function,
3320         Omit_Range_Check_For_Streaming, and make call to
3321         Apply_Scalar_Range_Check conditional on the result of this new
3322         function.
3323         * exp_attr.adb (Compile_Stream_Body_In_Scope): Eliminate Check
3324         parameter, update callers.  The new
3325         Omit_Range_Check_For_Streaming parameter takes the place of the
3326         old use of calling Insert_Action with Suppress => All_Checks,
3327         which was insufficiently precise (it did not allow suppressing
3328         checks for one component but not for another).
3329         (Expand_N_Attribute_Reference): Eliminate another "Suppress =>
3330         All_Checks" from an Insert_Action call, this one in generating
3331         the expansion of a T'Read attribute reference for a composite
3332         type T.
3334 2021-07-06  Ghjuvan Lacambre  <lacambre@adacore.com>
3336         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check for
3337         empty loops caused by constraints.
3339 2021-07-06  Nicolas Roche  <roche@adacore.com>
3341         * rtinit.c (skip_quoted_string): Handle malformed command line
3342         with no closing double quote.
3343         (skip_argument): Handle case in which a null character is
3344         encountered by skip_quote_string.
3346 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3348         * uname.adb (Add_Node_Name): Replace local constant whose
3349         initial expression was evaluated even when unnecessary with just
3350         that expression that is evaluated at most once and only when
3351         needed.
3353 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3355         * lib.adb (Remove_Unit): Replace defensive code with an
3356         assertion.
3357         * par-load.adb (Load): Address a question mark in the comment.
3359 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3361         * sem_util.adb (Enclosing_Comp_Unit_Node): When the loop exits
3362         the Current_Node is either an N_Compilation_Unit node or Empty,
3363         so simply return it without redundant checks.
3365 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3367         * lib-load.adb (Load_Unit): Remove excessive whitespace.
3368         * lib.adb (Is_Internal_Unit, Is_Predefined_Unit): Likewise.
3369         * par-ch10.adb (P_Compilation_Unit): Simplify with membership
3370         test.
3371         * par-load.adb (Load): Likewise.
3372         * uname.adb (Get_Unit_Name): Likewise.
3374 2021-07-06  Piotr Trojanek  <trojanek@adacore.com>
3376         * lib-writ.adb (Ensure_System_Dependency): Simplify by reusing a
3377         constant name.
3379 2021-07-06  Steve Baird  <baird@adacore.com>
3381         * exp_ch5.adb
3382         (Expand_N_Case_Statement.Expand_General_Case_Statement.Pattern_Match):
3383         When generating an equality test for a statically known discrete
3384         value, only generate the numeric value if the discrete type is
3385         not an enumeration type.  If it is an enumeration type, then
3386         call Get_Enum_Lit_From_Pos instead.
3388 2021-07-06  Justin Squirek  <squirek@adacore.com>
3390         * par-ch6.adb (Get_Return_Kind): Removed.
3391         (Is_Extended): Created to identify simple and "when" return
3392         statements from extended return statements.
3393         (P_Return_Statement): Merged simple and "when" return statement
3394         processing.
3396 2021-07-06  Gary Dismukes  <dismukes@adacore.com>
3398         * sem_ch4.adb (Try_One_Prefix_Interpretation): Augment test of
3399         "not Extensions_Allowed" with test for absence of Obj_Type's
3400         primitive operations Elist, as an additional condition for early
3401         return from this procedure.
3403 2021-07-06  Gary Dismukes  <dismukes@adacore.com>
3405         * exp_ch4.adb (Process_Transient_In_Expression): In one comment,
3406         fix two typos and reorder wording of one sentence, plus minor
3407         reformatting.
3409 2021-07-06  Justin Squirek  <squirek@adacore.com>
3411         * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove
3412         legacy expansion of element iterators, and use expansion form
3413         used by unconstrained element types in the general case.
3415 2021-07-06  Ed Schonberg  <schonberg@adacore.com>
3417         * exp_ch4.adb (Process_Transient_In_Expression): Ensure that
3418         Fin_Context, used to insert finalization code for the
3419         expression, is a list member: the value returned by
3420         Find_Hook_Context may be an expression node when the transient
3421         is part of a larger expression and it has a non-boolean type.
3423 2021-07-06  Yannick Moy  <moy@adacore.com>
3425         * sem_case.adb: Fix error message.
3427 2021-07-06  Bob Duff  <duff@adacore.com>
3429         * tbuild.adb (Convert_To): Add assert, along with a comment.
3430         (Make_DT_Access): Remove this function, which is not used.  It
3431         was incorrect anyway (the call to New_Occurrence_Of should not
3432         be there).
3433         (Unchecked_Convert_To): Add assert.  The previous version's test
3434         for unchecked conversion to the same type was redundant and
3435         could never be true, because the previous 'if' already checked
3436         for ANY expression of the same type. Remove that, and replace
3437         with a test for unchecked conversion to a related type.
3438         Otherwise, we somethings get things like
3439         "finalize(some_type!(some_type!(x)))" in the generated code,
3440         where x is already of type some_type, but we're converting it to
3441         the private type and then to the full type or vice versa (so the
3442         types aren't equal, so the previous 'if' doesn't catch it).
3443         Avoid updating the Parent. This is not necessary; the Parent
3444         will be updated if/when the node is attached to the tree.
3445         * tbuild.ads: Fix comments. No need to say "this is safe" when
3446         we just explained that a few lines earlier.  Remove
3447         Make_DT_Access.
3448         * sinfo.ads: Add comments.
3449         * exp_ch7.adb (Make_Finalize_Address_Stmts): Minor comment fix.
3450         * gen_il-gen.adb, gen_il-gen.ads, gen_il-gen-gen_nodes.adb,
3451         gen_il-internals.ads: Implement a feature where you can put:
3452         Nmake_Assert => "expr" where expr is a boolean expression in a
3453         call to Create_Concrete_Node_Type. It is added in a pragma
3454         Assert in the Nmake.Make_... function for that type.
3456 2021-07-06  Gary Dismukes  <dismukes@adacore.com>
3458         * checks.adb: Remove calls of Set_Do_Tag_Check (N, False).
3459         * einfo.ads: Remove hanging unneeded ??? comment ("this real description
3460         was clobbered").
3461         * exp_util.ads (Insert_Actions_After): Remove ??? from spec comment.
3462         * gen_il-fields.ads (Opt_Field_Enum): Remove literals
3463         Do_Accessibility_Check and Do_Tag_Check.
3464         * gen_il-gen-gen_nodes.adb: Remove all calls to Sm for
3465         Do_Accessibility_Check and Do_Tag_Check.
3466         * sem_type.ads (Is_Subtype_Of): Remove obsolete ???
3467         comment (function is not limited to scalar subtypes).
3468         * sem_util.ads (Is_Local_Variable_Reference): Revise comment to
3469         mention out-mode parameters as well, and remove ???.
3470         (Propagate_Concurrent_Flags): Minor reformatting.
3471         (Propagate_Invariant_Attributes): Typo fix.
3472         (Propagate_Predicate_Attributes): Indicate what is propagated
3473         and remove ??? comment.
3474         * sem_util.adb (Cannot_Raise_Constraint_Error): Remove unneeded
3475         test of Do_Tag_Check.
3476         (Is_Local_Variable_Reference): Extend function to testing for
3477         formals of mode out as well.
3478         * sinfo.ads: Remove ??? comment about flag
3479         Convert_To_Return_False indicating that the flag is obsolete (in
3480         fact it's used). Remove references to Do_Accessibility_Check and
3481         Do_Tag_Check (and the two associated ??? comments), as these
3482         flags are unneeded.
3483         * sinfo-cn.adb (Change_Conversion_To_Unchecked): Remove call of
3484         Set_Do_Tag_Check (N, False).
3485         * targparm.ads (Support_Atomic_Primitives_On_Target): Remove ???
3486         comment, plus minor reformatting.
3488 2021-07-06  Justin Squirek  <squirek@adacore.com>
3490         * par-ch6.adb (Get_Return_Kind): Properly handle the case of a
3491         "return when" statement in the procedure case.
3493 2021-07-06  Bob Duff  <duff@adacore.com>
3495         * sem.ads (Node_To_Be_Wrapped): Minor comment fix.
3496         * exp_ch7.adb (Establish_Transient_Scope): Misc cleanups and
3497         comment improvements.
3498         (Set_Node_To_Be_Wrapped): Remove -- not worth putting this code
3499         in a separate procedure, called only once.
3500         * sem_util.adb (Requires_Transient_Scope): Assert that our
3501         parameter has the right Kind. It probably shouldn't be E_Void,
3502         but that is passed in in some cases.
3503         (Ensure_Minimum_Decoration): Move the call later, so we know Typ
3504         is Present, and remove "if Present (Typ)" from this procedure.
3505         * exp_aggr.adb (Convert_To_Assignments): Use membership test,
3506         and avoid the "if False" idiom.
3507         (Expand_Array_Aggregate): Remove a ??? comment.
3508         * sem_ch8.adb (Push_Scope): Take advantage of the full coverage
3509         rules for aggregates.
3510         * sem_res.adb (Resolve_Declare_Expression): Remove test for
3511         Is_Type -- that's all it can be.  Use named notation in call to
3512         Establish_Transient_Scope.
3513         * libgnat/a-cdlili.adb (Adjust): Remove redundant code.
3514         (Clear): Remove "pragma Warnings (Off);", which wasn't actually
3515         suppressing any warnings.
3517 2021-07-06  Bob Duff  <duff@adacore.com>
3519         * gen_il-gen-gen_nodes.adb: Change the parent of
3520         N_Exception_Declaration to be N_Declaration.  Minor comment fix.
3522 2021-07-06  Ed Schonberg  <schonberg@adacore.com>
3524         * exp_ch4.adb (Expand_N_Type_Conversion): If the conversion is
3525         the name of an assignment operation do not apply predicate check
3526         to it prior to the assignment.
3528 2021-07-06  Bob Duff  <duff@adacore.com>
3530         * libgnat/a-conhel.adb: Assert that tampering counts remain
3531         between 0 and 2**31-1.  This makes debugging of
3532         finalization-related bugs easier.
3534 2021-07-06  Doug Rupp  <rupp@adacore.com>
3536         * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use s-osprim__posix.adb
3537         vice s-osprim__vxworks.adb for all vxworks7r2 targets.
3539 2021-07-06  Richard Kenner  <kenner@adacore.com>
3541         * gen_il-types.ads (Void_Or_Type_Kind,
3542         Exception_Or_Object_Kind): Declare.
3543         * gen_il-gen-gen_entities.adb: Likewise.
3545 2021-07-06  Gary Dismukes  <dismukes@adacore.com>
3547         * doc/gnat_rm/implementation_defined_pragmas.rst: Add a
3548         description of the feature of prefixed-view calls for untagged
3549         types to the section on pragma Extensions_Allowed.
3550         * gnat_rm.texi: Regenerate.
3551         * einfo.ads: Update specification for
3552         Direct_Primitive_Operations to reflect its use for untagged
3553         types when Extensions_Allowed is True.
3554         * gen_il-gen-gen_entities.adb: Allow Direct_Primitive_Operations
3555         as a field of untagged classes of types by removing the "Pre"
3556         test of "Is_Tagged_Type (N)", and making that field generally
3557         available for all types and subtypes by defining it for
3558         Type_Kind and removing its specification for individual classes
3559         of types.
3560         * sem_ch3.adb (Analyze_Full_Type_Declaration): Initialize the
3561         Direct_Primitive_Operations list when not already set for the
3562         new (sub)type and its base type (except when Ekind of the type
3563         is E_Void, which can happen due to errors in cases where
3564         Derived_Type_Declaration is called and perhaps in other
3565         situations).
3566         (Analyze_Subtype_Declaration): Inherit
3567         Direct_Primitive_Operations list from the base type, for record
3568         and private cases.
3569         (Build_Derived_Record_Type): Initialize the
3570         Direct_Primitive_Operations list for derived record and private
3571         types.
3572         (Build_Derived_Type): Initialize the Direct_Primitive_Operations
3573         list for derived types (and also for their associated base types
3574         when needed).
3575         (Process_Full_View): For full types that are untagged record and
3576         private types, copy the primitive operations of the partial view
3577         to the primitives list of the full view.
3578         * sem_ch4.adb (Analyze_Selected_Component): Allow prefixed
3579         notation for subprogram calls in the case of untagged
3580         types (when Extensions_Allowed is True). In the case where
3581         Is_Private_Type (Prefix_Type) is True, call Try_Object_Operation
3582         when a discriminant selector wasn't found. Also call
3583         Try_Object_Operation in other type kind cases (when
3584         Extensions_Allowed is True).
3585         (Try_Object_Operation.Try_One_Prefixed_Interpretation): Prevent
3586         early return in the untagged case (when Extensions_Allowed is
3587         True). Condition main call to Try_Primitive_Operation on the
3588         type having primitives, and after that, if Prim_Result is False,
3589         test for case where the prefix type is a named access type with
3590         primitive operations and in that case call
3591         Try_Primitive_Operation after temporarily resetting Obj_Type to
3592         denote the access type (and restore it to the designated type
3593         after the call)
3594         (Try_Object_Operation.Valid_First_Argument_Of): Do matching type
3595         comparison by testing Base_Type (Obj_Type) against
3596         Base_Type (Typ), rather than against just Typ, to properly
3597         handle cases where the object prefix has a constrained
3598         subtype.  (Fixes a bug discovered while working on this
3599         feature.)
3600         * sem_ch6.adb
3601         (New_Overloaded_Entity.Check_For_Primitive_Subprogram): Add a
3602         primitive of an untagged type to the type's list of primitive
3603         operations, for both explicit and implicit (derived, so
3604         Comes_From_Source is False) subprogram declarations. In the case
3605         where the new primitive overrides an inherited subprogram,
3606         locate the primitives Elist that references the overridden
3607         subprogram, and replace that element of the list with the new
3608         subprogram (done by calling the new procedure
3609         Add_Or_Replace_Untagged_Primitive on the result type and each
3610         formal atype).
3611         (Check_For_Primitive_Subprogram.Add_Or_Replace_Untagged_Primitive):
3612         New nested procedure to either add or replace an untagged
3613         primitive subprogram in a given type's list of primitive
3614         operations (replacement happens in case where the new subprogram
3615         overrides a primitive of the type).
3616         * sem_ch7.adb (New_Private_Type): When Extensions_Allowed is
3617         True, initialize the Direct_Primitive_Operations list of a
3618         private type to New_Elmt_List in the case of untagged types.
3619         * sem_ch8.adb (Find_Selected_Component): In the case where the
3620         prefix is an entity name, relax condition that tests
3621         Has_Components so that Analyze_Selected_Component will also be
3622         called when Extensions_Allowed is True and the prefix type is
3623         any type.
3625 2021-07-06  Ed Schonberg  <schonberg@adacore.com>
3627         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
3628         conformance check when the subprogram body has been created for
3629         an expression function that is not a completion of a previous
3630         specification, because the profile of the constructed body is
3631         copied from the expression function itself.
3633 2021-07-06  Steve Baird  <baird@adacore.com>
3635         * doc/gnat_rm/implementation_of_specific_ada_features.rst: Add a
3636         warning indicating that the details of the default (i.e.,
3637         selected by the compiler) implementation of T'Put_Image for a
3638         nonscalar type T are subject to change.
3639         * gnat_rm.texi: Regenerate.
3641 2021-07-05  Pierre-Marie de Rodat  <derodat@adacore.com>
3643         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
3645 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
3647         * sem_prag.adb (Analyze_Depends_In_Decl_Part): Reject overlays
3648         in Depends and Refined_Depends contracts.
3649         (Analyze_Global_In_Decl_Part): Likewise for Global and
3650         Refined_Global.
3651         (Analyze_Initializes_In_Decl_Part): Likewise for Initializes
3652         (when appearing both as a single item and as a initialization
3653         clause).
3654         * sem_util.ads (Ultimate_Overlaid_Entity): New routine.
3655         * sem_util.adb (Report_Unused_Body_States): Ignore overlays.
3656         (Ultimate_Overlaid_Entity): New routine.
3658 2021-07-05  Claire Dross  <dross@adacore.com>
3660         * libgnat/a-cfdlli.ads, libgnat/a-cfdlli.adb
3661         libgnat/a-cfinve.ads, libgnat/a-cfinve.adb,
3662         libgnat/a-cofove.ads, libgnat/a-cofove.adb,
3663         libgnat/a-coboho.ads, libgnat/a-coboho.adb (Constant_Reference):
3664         Get a read-only access to an element of the container.
3665         (At_End): Ghost functions used to express pledges in the
3666         postcondition of Reference.
3667         (Reference): Get a read-write access to an element of the
3668         container.
3669         * libgnat/a-cfhama.ads, libgnat/a-cfhama.adb,
3670         libgnat/a-cforma.ads, libgnat/a-cforma.adb: The full view of the
3671         Map type is no longer a tagged type, but a wrapper over this
3672         tagged type. This is to avoid issues with dispatching result in
3673         At_End functions.
3674         (Constant_Reference): Get a read-only access to an element of
3675         the container.
3676         (At_End): Ghost functions used to express pledges in the
3677         postcondition of Reference.
3678         (Reference): Get a read-write access to an element of the
3679         container.
3680         * libgnat/a-cfhase.ads, libgnat/a-cfhase.adb,
3681         libgnat/a-cforse.ads, libgnat/a-cforse.adb: The full view of the
3682         Map type is no longer a tagged type, but a wrapper over this
3683         tagged type.
3684         (Constant_Reference): Get a read-only access to an element of
3685         the container.
3686         * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads (Copy_Element):
3687         Expression function used to cause SPARK to make sure
3688         Element_Type is copiable.
3689         * libgnat/a-cofuma.ads (Copy_Key): Expression function used to
3690         cause SPARK to make sure Key_Type is copiable.
3691         (Copy_Element): Expression function used to cause SPARK to make
3692         sure Element_Type is copiable.
3694 2021-07-05  Yannick Moy  <moy@adacore.com>
3696         * sem_prag.adb (Analyze_Global_Item): Adapt to update SPARK RM
3697         rule.
3699 2021-07-05  Arnaud Charlet  <charlet@adacore.com>
3701         * Make-generated.in: Add -f switch to ensure cp will never fail.
3703 2021-07-05  Steve Baird  <baird@adacore.com>
3705         * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): When
3706         building the assignment statement corresponding to the default
3707         expression for a component, we make a copy of the expression.
3708         When making that copy (and if we have seen a component that
3709         requires late initialization), pass a Map parameter into the
3710         call to New_Copy_Tree to redirect references to the type to
3711         instead refer to the _Init formal parameter of the init proc.
3712         This includes hoisting the declaration of Has_Late_Init_Comp out
3713         one level so that it becomes available to Build_Assignment.
3714         (Find_Current_Instance): Return True for other kinds of current
3715         instance references, instead of just access-valued attribute
3716         references such as T'Access.
3717         * sem_util.adb (Is_Aliased_View): Return True for the _Init
3718         formal parameter of an init procedure. The changes in
3719         exp_ch3.adb can have the effect of replacing a "T'Access"
3720         attribute reference in an init procedure with an "_Init'Access"
3721         attribute reference. We want such an attribute reference to be
3722         legal. However, we do not simply mark the formal parameter as
3723         being aliased because that might impact callers.
3724         (Is_Object_Image): Return True if Is_Current_Instance returns
3725         True for the prefix of an Image (or related attribute) attribute
3726         reference.
3728 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
3730         * exp_ch3.adb (Stream_Operation_OK): Reuse
3731         Is_Concurrent_Interface.
3732         * sem_ch3.adb (Analyze_Interface_Declaration,
3733         Build_Derived_Record_Type): Likewise.
3734         * sem_ch6.adb (Check_Limited_Return): Likewise.
3735         * sem_util.adb (Is_Concurrent_Interface): Don't call
3736         Is_Interface because each of the Is_Protected_Interface,
3737         Is_Synchronized_Interface and Is_Task_Interface calls it anyway.
3739 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
3741         * sem_ch6.adb (Check_Limited_Return): Replace Comes_From_Source
3742         with Comes_From_Extended_Return_Statement.
3744 2021-07-05  Steve Baird  <baird@adacore.com>
3746         * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads,
3747         libgnat/a-stobfi.adb, libgnat/a-stobfi.ads,
3748         libgnat/a-stoubu.adb, libgnat/a-stoubu.ads,
3749         libgnat/a-stoufi.adb, libgnat/a-stoufi.ads,
3750         libgnat/a-stoufo.adb, libgnat/a-stoufo.ads,
3751         libgnat/a-stouut.adb, libgnat/a-stouut.ads,
3752         libgnat/a-stteou.ads: Delete files.
3753         * Makefile.rtl, impunit.adb: Remove references to deleted files.
3755 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
3757         * sem_util.adb (Has_Compatible_Alignment_Internal): If the
3758         prefix of the Address expression is an entire object with a
3759         known alignment, then skip checks related to its size.
3761 2021-07-05  Doug Rupp  <rupp@adacore.com>
3763         * libgnat/s-os_lib.ads: Import OS_Time comparison ops as
3764         intrinsic.
3765         * libgnat/s-os_lib.adb: Remove OS_TIme comparison ops
3766         implementation.
3768 2021-07-05  Doug Rupp  <rupp@adacore.com>
3770         * libgnat/s-os_lib.ads: Add some comments about time_t.
3771         * libgnat/s-os_lib.adb (GM_Split/To_GM_Time): Rename formal to
3772         P_OS_Time.
3773         (GM_Time_Of/To_OS_Time): Likewise.
3775 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
3777         * sem_res.adb (Resolve): Insert minus sign if needed.
3779 2021-07-05  Steve Baird  <baird@adacore.com>
3781         * exp_put_image.adb:
3782         (Enable_Put_Image, Preload_Root_Buffer_Type): Revert to querying
3783         the -gnatd_z switch, as opposed to testing whether Ada_Version >= Ada_2022.
3785 2021-07-05  Justin Squirek  <squirek@adacore.com>
3787         * checks.adb (Accessibility_Checks_Suppressed): Add check
3788         against restriction No_Dynamic_Accessibility_Checks.
3789         (Apply_Accessibility_Check): Add assertion to check restriction
3790         No_Dynamic_Accessibility_Checks is not active.
3791         * debug.adb: Add documentation for new debugging switch to
3792         control which accessibility model gets employed under
3793         restriction No_Dynamic_Accessibility_Checks.
3794         * exp_attr.adb (Expand_N_Attribute_Reference): Disable dynamic
3795         accessibility check generation when
3796         No_Dynamic_Accessibility_Checks is active.
3797         * exp_ch4.adb (Apply_Accessibility_Check): Skip check generation
3798         when restriction No_Dynamic_Accessibility_Checks is active.
3799         (Expand_N_Allocator): Disable dynamic accessibility checks when
3800         No_Dynamic_Accessibility_Checks is active.
3801         (Expand_N_In): Disable dynamic accessibility checks when
3802         No_Dynamic_Accessibility_Checks is active.
3803         (Expand_N_Type_Conversion): Disable dynamic accessibility checks
3804         when No_Dynamic_Accessibility_Checks is active.
3805         * exp_ch5.adb (Expand_N_Assignment_Statement): Disable
3806         alternative accessibility model calculations when computing a
3807         dynamic level for a SAOAAT.
3808         * exp_ch6.adb (Add_Call_By_Copy_Code): Disable dynamic
3809         accessibility check generation when
3810         No_Dynamic_Accessibility_Checks is active.
3811         (Expand_Branch): Disable alternative accessibility model
3812         calculations.
3813         (Expand_Call_Helper): Disable alternative accessibility model
3814         calculations.
3815         * restrict.adb, restrict.ads: Add new restriction
3816         No_Dynamic_Accessibility_Checks.
3817         (No_Dynamic_Accessibility_Checks_Enabled): Created to test when
3818         experimental features (which are generally incompatible with
3819         standard Ada) can be enabled.
3820         * sem_attr.adb (Safe_Value_Conversions): Add handling of new
3821         accessibility model under the restriction
3822         No_Dynamic_Accessibility_Checks.
3823         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
3824         Disallow new restriction No_Dynamic_Accessibility_Checks from
3825         being exclusively specified within a body or subunit without
3826         being present in a specification.
3827         * sem_res.adb (Check_Fully_Declared_Prefix): Minor comment
3828         fixup.
3829         (Valid_Conversion): Omit implicit conversion checks on anonymous
3830         access types and perform static checking instead when
3831         No_Dynamic_Accessibility_Checks is active.
3832         * sem_util.adb, sem_util.ads (Accessibility_Level): Add special
3833         handling of anonymous access objects, formal parameters,
3834         anonymous access components, and function return objects.
3835         (Deepest_Type_Access_Level): When
3836         No_Dynamic_Accessibility_Checks is active employ an alternative
3837         model. Add paramter Allow_Alt_Model to override the new behavior
3838         in certain cases.
3839         (Type_Access_Level): When No_Dynamic_Accessibility_Checks is
3840         active employ an alternative model. Add parameter
3841         Allow_Alt_Model to override the new behavior in certain cases.
3842         (Typ_Access_Level): Created within Accessibility_Level for
3843         convenience.
3844         * libgnat/s-rident.ads, snames.ads-tmpl: Add handing for
3845         No_Dynamic_Accessibility_Checks.
3847 2021-07-05  Doug Rupp  <rupp@adacore.com>
3849         * adaint.h (__gnat_set_file_time_name): Use OS_Time.
3850         * adaint.c (__gnat_set_file_time_name): Likewise.
3852 2021-07-05  Doug Rupp  <rupp@adacore.com>
3854         * adaint.h (OS_Time): typedef as long long.
3855         * osint.adb (Underlying_OS_Time): Declare as 64-bit signed type.
3856         * libgnat/s-os_lib.adb ("<"): Compare OS_Time as
3857         Long_Long_Integer.
3858         ("<="): Likewise.
3859         (">"): Likewise.
3860         (">="): Likewise.
3861         * libgnat/s-os_lib.ads (OS_Time): Declare as 64-bit signed type.
3863 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
3865         * sem_ch3.adb (Check_Abstract_Overriding): Post error message on
3866         renaming node.
3868 2021-07-05  Yannick Moy  <moy@adacore.com>
3870         * libgnat/a-uncdea.ads: Add Depends/Post to
3871         Ada.Unchecked_Deallocation.
3872         * sem_ch4.adb (Analyze_Allocator): Remove checking of allocator
3873         placement.
3874         * sem_res.adb (Flag_Object): Same.
3876 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
3878         * aspects.ads: Add GNAT_Annotate aspect.
3879         * gnat1drv.adb (Adjust_Global_Switches): Stop defining
3880         Name_Gnat_Annotate as an alias of Name_Annotate.
3881         * snames.ads-tmpl: Define Gnat_Annotate.
3882         * par-prag.adb, sem_prag.ads: Add Pragma_Gnat_Annotate to list
3883         of pragmas.
3884         * lib-writ.adb, sem_ch13.adb, sem_prag.adb: Handle Gnat_Annotate
3885         like Aspect_Annotate.
3887 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
3889         * ttypes.ads (Target_Strict_Alignment): Fix comment.
3891 2021-07-05  Piotr Trojanek  <trojanek@adacore.com>
3893         * sem_util.adb (Has_Compatible_Alignment_Internal): Fix
3894         indentation of ELSIF comments; remove explicit calls to
3895         UI_To_Int; remove extra parens around the MOD operand.
3897 2021-07-05  Ed Schonberg  <schonberg@adacore.com>
3899         * sem_aggr.adb (Resolve_Record_Aggregate, Step_5): Do not check
3900         for the need to use an extension aggregate for a given component
3901         when within an instance and the type of the component hss a
3902         private ancestor: the instantiation is legal if the generic
3903         compiles, and spurious errors may be generated otherwise.
3905 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
3907         * errout.adb (Output_JSON_Message): Recursively call
3908         Output_JSON_Message for continuation messages instead of
3909         appending their content to the initial message.
3911 2021-07-05  Steve Baird  <baird@adacore.com>
3913         * debug.adb: Remove comments about -gnatd_z switch.
3914         * exp_ch3.adb (Make_Predefined_Primitive_Specs): A one-line fix
3915         for a subtle bug that took some effort to debug. Append a new
3916         Put_Image procedure for a type extension even if it seems to
3917         already have one, just as is done for (for example) the
3918         streaming-related Read procedure.
3919         * exp_put_image.adb:
3920         (Build_Record_Put_Image_Procedure.Make_Component_Attributes): Do
3921         not treat _Parent component like just another component, for two
3922         reasons.  1. If the _parent component's type has a
3923         user-specified Put_Image procedure, then we want to generate a
3924         call to that procedure and then generate extension aggregate
3925         syntax.  2. Otherwise, we still don't want to see any mention of
3926         "_parent" in the generated image text.
3927         (Build_Record_Put_Image_Procedure.Make_Component_Name): Add
3928         assertion that we are not generating a reference to an "_parent"
3929         component.
3930         (Build_Record_Put_Image_Procedure): Add special treatment for
3931         null records.  Add call to Duplicate_Subexpr for image attribute
3932         prefix in order to help with expansion needed in the class-wide
3933         case (where the prefix is also referenced in the call to
3934         Wide_Wide_Expanded_Name) if evaluation of the prefix has side
3935         effects. Add new local helper function, Put_String_Exp.  Add
3936         support for case where prefix type is class-wide.
3937         (Enable_Put_Image, Preload_Root_Buffer_Type): Query Ada_Version
3938         > Ada_2022 instead of (indirectly) querying -gnatd_z switch.
3939         * freeze.adb (In_Expanded_Body): A one-line change to add
3940         TSS_Put_Image to the list of subprograms that have
3941         expander-created bodies.
3942         * rtsfind.ads: Add support for accessing
3943         Ada.Tags.Wide_Wide_Expanded_Name.
3944         * sem_ch3.ads, sem_ch3.adb: Delete Is_Null_Extension function,
3945         as part of moving it to Sem_Util.
3946         * sem_ch13.adb
3947         (Analyze_Put_Image_TSS_Definition.Has_Good_Profile): Improve
3948         diagnostic messages in cases where the result is going to be
3949         False and the Report parameter is True. Relax overly-restrictive
3950         checks in order to implement mode conformance.
3951         (Analyze_Stream_TSS_Definition.Has_Good_Profile): Add similar
3952         relaxation of parameter subtype checking for the Stream
3953         parameter of user-defined streaming subprograms.
3954         * sem_disp.adb (Check_Dispatching_Operation): A one-line
3955         change (and an accompanying comment change) to add TSS_Put_Image
3956         to the list of compiler-generated dispatching primitive
3957         operations.
3958         * sem_util.ads, sem_util.adb: Add Ignore_Privacy Boolean
3959         parameter to Is_Null_Record_Type function (typically the
3960         parameter will be False when the function is being used in the
3961         implementation of static semantics and True for dynamic
3962         semantics; the parameter might make a difference in the case of,
3963         for example, a private type that is implemented as a null record
3964         type).  Add related new routines Is_Null_Extension (formerly
3965         declared in Sem_Ch3), Is_Null_Extension_Of, and
3966         Is_Null_Record_Definition.
3968 2021-07-05  Justin Squirek  <squirek@adacore.com>
3970         * freeze.adb (Freeze_Profile): Use N's Sloc, F_type's chars.
3972 2021-07-05  Bob Duff  <duff@adacore.com>
3974         * checks.adb, exp_aggr.adb, exp_ch5.adb, freeze.adb,
3975         sem_util.adb, sem_util.ads: Change L and H to be First and Last,
3976         to match the attributes in the RM. Change calls from procedure
3977         to function where appropriate.
3979 2021-07-05  Bob Duff  <duff@adacore.com>
3981         * sem_util.ads, sem_util.adb (Compute_Returns_By_Ref): New
3982         procedure to compute Returns_By_Ref, to avoid some code
3983         duplication. This will likely change soon, so it's good to have
3984         the code in one place.
3985         (CW_Or_Has_Controlled_Part): Move here from Exp_Ch7, because
3986         it's called by Compute_Returns_By_Ref, and this is a better
3987         place for it anyway.
3988         (Needs_Finalization): Fix comment to be vague instead of wrong.
3989         * exp_ch6.adb (Expand_N_Subprogram_Body, Freeze_Subprogram):
3990         Call Compute_Returns_By_Ref.
3991         * sem_ch6.adb (Check_Delayed_Subprogram): Call
3992         Compute_Returns_By_Ref.
3993         * exp_ch7.ads, exp_ch7.adb (CW_Or_Has_Controlled_Part): Move to
3994         Sem_Util.
3995         (Has_New_Controlled_Component): Remove unused function.
3997 2021-07-05  Ghjuvan Lacambre  <lacambre@adacore.com>
3999         * sem_ch3.adb (Check_Abstract_Overriding): Check for renamings.
4001 2021-07-05  Boris Yakobowski  <yakobowski@adacore.com>
4003         * exp_ch4.adb (Expand_N_Op_Rem): Remove special case for rem -1
4004         in CodePeer_Mode.
4006 2021-07-01  Eric Botcazou  <ebotcazou@adacore.com>
4008         PR ada/101094
4009         * exp_attr.adb (Get_Integer_Type): Return an integer type with the
4010         same signedness as the input type.
4012 2021-06-29  Richard Kenner  <kenner@adacore.com>
4014         * sem_util.adb (Visit_Node): Add handling for N_Block_Statement
4015         with declarations.
4017 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4019         * einfo-utils.adb
4020         (Unknown_Alignment): Simply negate the Known_ counterpart.
4021         (Unknown_Component_Bit_Offset): Likewise.
4022         (Unknown_Esize): Likewise.
4023         (Unknown_Normalized_First_Bit): Likewise.
4024         (Unknown_Normalized_Position): Likewise.
4025         (Unknown_Normalized_Position_Max): Likewise.
4026         (Unknown_RM_Size): Likewise.
4028 2021-06-29  Boris Yakobowski  <yakobowski@adacore.com>
4030         * exp_ch4.adb (Expand_N_Op_Mod): Remove special case for mod -1
4031         in CodePeer_Mode.
4033 2021-06-29  Aleksandra Pasek  <pasek@adacore.com>
4035         * libgnat/s-objrea.adb (EM_AARCH64): New Constant.
4036         (Initialize): Handle EM_AARCH64 case.
4037         (Read_Address): Handle AARCH64 case.
4038         * libgnat/s-objrea.ads (Object_Arch): Add AARCH64 record
4039         component.
4041 2021-06-29  Bob Duff  <duff@adacore.com>
4043         * sem_ch13.adb (Analyze_Record_Representation_Clause): Call
4044         Set_Entity_With_Checks instead of Set_Entity, so we perform the
4045         check for correct casing.
4046         * style.adb (Check_Identifier): Minor comment improvement.
4047         Cleanup overly complicated code.
4049 2021-06-29  Ed Schonberg  <schonberg@adacore.com>
4051         * exp_aggr.adb (Convert_Aggr_In_Object_Decl): After expansion of
4052         the aggregate, the expression can be removed from the
4053         declaration, except if the object is class-wide, in which case
4054         the aggregate provides the actual type. In other cases the
4055         presence of the expression may lead to spurious freezing issue.
4056         * exp_ch3.adb (Expand_N_Object_Declaration): If the expression
4057         in the declaration is an aggregate with delayed expansion (as is
4058         the case for objects of a limited type, or a subsequent address
4059         specification) the aggregate must be resolved at this point.
4060         This resolution must not include expansion, because the
4061         expansion of the enclosing declaration will construct the
4062         necessary aggregate expansion.
4064 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4066         * errout.ads (Adjust_Name_Case): Remove obsolete and now unused
4067         variant.
4068         * errout.adb (Adjust_Name_Case): Likewise; fix variant that uses
4069         a custom buffer to also use it for names in Standard_Location.
4071 2021-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4073         * sem_ch12.adb (Freeze_Subprogram_Body): Add missing "freeze".
4074         (Install_Body): Likewise.
4076 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4078         * adaint.c (__gnat_portable_spawn): Revert change that
4079         introduced setting of __gnat_in_child_after_fork.
4081 2021-06-29  Patrick Bernardi  <bernardi@adacore.com>
4083         * libgnarl/s-tasdeb.ads (Known_Tasks): Add Atomic_Components
4084         aspect.
4086 2021-06-29  Doug Rupp  <rupp@adacore.com>
4088         * Makefile.rtl (x86_64-vx7r2) [EXTRA_GNATRTL_TASKING_OBJS]: Move
4089         i-vxinco.o out of RTP runtime.
4091 2021-06-29  Claire Dross  <dross@adacore.com>
4093         * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable
4094         pre and postconditions.
4095         * libgnat/a-cfhama.ads: Likewise.
4096         * libgnat/a-cfhase.ads: Likewise.
4097         * libgnat/a-cfinve.ads: Likewise.
4098         * libgnat/a-cforma.ads: Likewise.
4099         * libgnat/a-cforse.ads: Likewise.
4100         * libgnat/a-cofove.ads: Likewise.
4102 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4104         * sem_util.ads (Get_Fullest_View): Refill comment; remove extra
4105         extra after period.
4106         * sem_util.adb (Get_Fullest_View): Fix style.
4108 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4110         * sem_ch3.adb (Analyze_Declarations): Remove explicit check for
4111         missing, because a subsequent call to Is_Empty_List will detect
4112         them anyway.
4114 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4116         * freeze.adb (Freeze_All): Simplify by reusing
4117         Is_Subprogram_Or_Entry.
4118         * sem_ch11.adb (Analyze_Handled_Statement): Likewise.
4120 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4122         * sem_warn.adb (Warn_On_Overlapping_Actuals): Prevent cascaded
4123         errors once for the subprogram call, not for every pair of
4124         actual parameters.
4126 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4128         * sem_ch3.adb (Is_Local_Type): Simplify by reusing Scope_Within.
4130 2021-06-29  Gary Dismukes  <dismukes@adacore.com>
4132         * sem_ch6.ads (Can_Override_Operator): Function declaration
4133         moved from package body to package spec.
4134         * sem_ch6.adb (Check_Overriding_Indicator): Now use test of
4135         whether the subprogram's Chars is an operator name, to handle
4136         cases of function instances whose entity is
4137         N_Defining_Identifier rather than N_Defining_Operator_Symbol.
4138         (Can_Override_Operator): Function declaration moved to package
4139         spec.  Now use test of whether the subprogram's Chars is an
4140         operator name, to handle cases of function instances whose
4141         entity is N_Defining_Identifier rather than
4142         N_Defining_Operator_Symbol.
4143         * sem_ch8.adb (Analyze_Renamed_Subprogram): Check for
4144         possibility of an overridden predefined operator, and suppress
4145         the "not overriding" message in that case.
4147 2021-06-29  Doug Rupp  <rupp@adacore.com>
4149         * Makefile.rtl: Add a new ifeq for vx7r2 shared gnatlib.
4151 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4153         * exp_attr.adb (Build_Array_VS_Func): Restore uses of
4154         Validated_View.
4155         (Build_Record_VS_Func): Likewise.
4156         (Expand_N_Attribute_Reference): Likewise.
4157         * sem_util.adb (Validated_View): Behave as an identity function
4158         for arrays and scalars.
4160 2021-06-29  Bob Duff  <duff@adacore.com>
4162         * atree.adb, atree.ads (Parent, Set_Parent): Assert node is
4163         Present.
4164         (Copy_Parent, Parent_Kind): New helper routines.
4165         * gen_il-gen.adb: Add with clause.
4166         * nlists.adb (Parent): Assert Parent of list is Present.
4167         * aspects.adb, checks.adb, exp_aggr.adb, exp_ch6.adb,
4168         exp_util.adb, lib-xref-spark_specific.adb, osint.ads,
4169         sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch6.adb,
4170         sem_dim.adb, sem_prag.adb, sem_res.adb, sem_util.adb,
4171         treepr.adb: Do not call Parent and Set_Parent on the Empty node.
4172         * libgnat/a-stwiun__shared.adb, libgnat/a-stzunb__shared.adb:
4173         Minor: Fix typos in comments.
4174         * einfo.ads: Minor comment update.
4175         * sinfo-utils.ads, sinfo-utils.adb (Parent_Kind, Copy_Parent):
4176         New functions.
4178 2021-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4180         * repinfo-input.adb (Read_JSON_Stream): Fix typo.
4182 2021-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4184         * rtsfind.ads (RE_Id): Change RE_Valid_Enumeration_Value_NN into
4185         RE_Valid_Value_Enumeration_NN.
4186         (RE_Unit_Table): Adjust to above renaming.
4187         * exp_imgv.adb (Expand_Valid_Value_Attribute): Likewise.
4188         * libgnat/s-valuen.ads (Invalid): Remove.
4189         (Value_Enumeration_Pos): Move to...
4190         * libgnat/s-valuen.adb (Value_Enumeration_Pos): ...here.
4191         Return -1 instead of Invalid.
4192         (Value_Enumeration): Compare against 0 instead of Invalid.
4193         (Valid_Enumeration_Value): Likewise.  Rename to...
4194         (Valid_Value_Enumeration): ...this.
4195         * libgnat/s-vaenu8.ads (Valid_Enumeration_Value_8): Rename into...
4196         (Valid_Value_Enumeration_8): ...this.
4197         * libgnat/s-vaen16.ads (Valid_Enumeration_Value_16): Rename into...
4198         (Valid_Value_Enumeration_16): ...this.
4199         * libgnat/s-vaen32.ads (Valid_Enumeration_Value_32): Rename into...
4200         (Valid_Value_Enumeration_32): ...this.
4202 2021-06-29  Bob Duff  <duff@adacore.com>
4204         * einfo.ads (Component_Bit_Offset, Component_Size): Update
4205         documentation: Repinfo is the package where these negative
4206         values are documented.
4207         * einfo-utils.adb (Known_Component_Size,
4208         Known_Static_Component_Size, Unknown_Component_Size): Remove
4209         calls to Implementation_Base_Type, because Component_Size is an
4210         Impl_Base_Type_Only field (see Gen_Entities).
4211         * sem_ch13.ads, sem_ch13.adb (Check_Size): Do not set Esize and
4212         RM_Size. This is unnecessary in the case of Size. For
4213         Component_Size, it is wrong, because we would be setting the
4214         Esize and RM_Size of the component type.
4216 2021-06-29  Pascal Obry  <obry@adacore.com>
4218         * s-oscons-tmplt.c: Add some OS constants.
4220 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4222         * sem_util.ads (Validated_View): Fix style in comment.
4223         * sem_util.adb (Validated_View): Rewrite in recursive style.
4225 2021-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4227         * Make-generated.in (ada/stamp-gen_il): Ignore errors from
4228         running gen_il-main.
4230 2021-06-29  Richard Kenner  <kenner@adacore.com>
4232         * gen_il-gen-gen_entities.adb (Record_Field_Kind,
4233         Allocatable_Kind): Add new abstract kinds.
4234         (Constant_Or_Variable_Kind): Likewise.
4235         (E_Constant, E_Variable, E_Loop_Parameter): Use them.
4236         (E_Discriminant, E_Component): Likewise.
4237         * gen_il-types.ads (type Opt_Type_Enum): Add them.
4239 2021-06-29  Bob Duff  <duff@adacore.com>
4241         * gen_il-gen.adb (Put_C_Type_And_Subtypes): Put the correct
4242         numbers.
4243         * gen_il-internals.ads, gen_il-internals.adb: (Pos): Remove this
4244         function. It was assuming that the order of the enumeration
4245         literals in Type_Enum is the same as the order of the generated
4246         types Node_Kind and Entity_Kind, which is not true.
4248 2021-06-29  Piotr Trojanek  <trojanek@adacore.com>
4250         * exp_attr.adb (Expand_N_Attribute_Reference): Explicitly use
4251         Validated_View for record objects.
4253 2021-06-28  Martin Sebor  <msebor@redhat.com>
4255         * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
4256         Replace TREE_NO_WARNING with suppress_warning.
4257         (gnat_gimplify_expr): Same.
4258         * gcc-interface/utils.c (gnat_pushdecl): Same.
4260 2021-06-21  Gary Dismukes  <dismukes@adacore.com>
4262         * checks.adb (Selected_Range_Checks): In the case of a
4263         qualified_expression where the qualifying subtype is an
4264         unconstrained array subtype with fixed lower bounds for some of
4265         its indexes, generate tests to check that those bounds are equal
4266         to the corresponding lower bounds of the qualified array object.
4268 2021-06-21  Bob Duff  <duff@adacore.com>
4270         * libgnat/s-valuen.ads (Value_Enumeration,
4271         Valid_Enumeration_Value): Inline.
4272         (Value_Enumeration_Pos): Add Pure_Function.
4274 2021-06-21  Justin Squirek  <squirek@adacore.com>
4276         * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
4277         feature under pragma Extensions_Allowed.
4278         * gnat_rm.texi: Regenerate.
4279         * errout.adb, errout.ads (Error_Msg_GNAT_Extension): Created to
4280         issue errors when parsing extension only constructs.
4281         * exp_ch11.adb, exp_ch11.ads (Expand_N_Raise_When_Statement):
4282         Created to expand raise ... when constucts.
4283         * exp_ch5.adb, exp_ch5.ads (Expand_N_Goto_When_Statement):
4284         Created to expand goto ... when constructs.
4285         * exp_ch6.adb, exp_ch6.ads (Expand_N_Return_When_Statement):
4286         Created to expand return ... when constructs.
4287         * expander.adb (Expand): Add case entries for "when" constructs.
4288         * gen_il-gen-gen_nodes.adb, gen_il-types.ads: Add entries for
4289         "when" constructs.
4290         * par-ch11.adb (P_Raise_Statement): Add processing for raise ...
4291         when.
4292         * par-ch5.adb (Missing_Semicolon_On_Exit): Renamed to
4293         Missing_Semicolon_On_When and moved to par-util.adb.
4294         * par-ch6.adb (Get_Return_Kind): Renamed from Is_Simple and
4295         processing added for "return ... when" return kind.
4296         (Is_Simple): Renamed to Get_Return_Kind.
4297         (P_Return_Statement): Add case for return ... when variant of
4298         return statement.
4299         * par-util.adb, par.adb (Missing_Semicolon_On_When): Added to
4300         centeralize parsing of "when" keywords in the context of "when"
4301         constructs.
4302         * sem.adb (Analyze): Add case for "when" constructs.
4303         * sem_ch11.adb, sem_ch11.ads (Analyze_Raise_When_Statement):
4304         Created to analyze raise ... when constructs.
4305         * sem_ch5.adb, sem_ch5.ads (Analyzed_Goto_When_Statement):
4306         Created to analyze goto ... when constructs.
4307         * sem_ch6.adb, sem_ch6.ads (Analyze_Return_When_Statement):
4308         Created to analyze return ... when constructs.
4309         * sprint.adb (Sprint_Node_Actual): Add entries for new "when"
4310         nodes.
4312 2021-06-21  Steve Baird  <baird@adacore.com>
4314         * Make-generated.in (GEN_IL_FLAGS): Keep only GNAT flags.
4315         (ada/stamp-gen_il): Remove dependencies on libgnat/ sources.  Do not
4316         copy libgnat/ sources locally and tidy up.
4317         * Makefile.rtl: Include object files for new Text_Buffer units
4318         in the GNATRTL_NONTASKING_OBJS list.
4319         * exp_put_image.ads, exp_put_image.adb: Update Rtsfind calls to
4320         match new specs. For example, calls to RE_Sink are replaced with
4321         calls to RE_Root_Buffer_Type. Update comments and change
4322         subprogram names accordingly (e.g., Preload_Sink is changed to
4323         Preload_Root_Buffer_Type).
4324         * impunit.adb: Add 6 new predefined units (Text_Buffers and 5
4325         child units thereof).
4326         * rtsfind.ads, rtsfind.adb: Add interfaces for accessing the
4327         Ada.Strings.Text_Buffers package and declarations
4328         therein (including the Unbounded child unit). Do not (yet)
4329         delete interfaces for accessing the old Text_Output package.
4330         * sem_attr.adb (Check_Put_Image_Attribute): Replace RE_Sink uses
4331         with RE_Root_Buffer_Type and update comments accordingly.
4332         * sem_ch10.adb (Analyze_Compilation_Unit): Update call to
4333         reflect name change of callee (that is, the former Preload_Sink
4334         is now Preload_Root_Buffer_Type).
4335         * sem_ch13.adb (Has_Good_Profile): Replace RE_Sink use with
4336         RE_Root_Buffer_Type.
4337         (Build_Spec): Update comment describing a parameter type.
4338         * gen_il.ads: Remove clauses for the old Text_Output package and
4339         add them for Ada.Streams.Stream_IO.
4340         (Sink): Declare.
4341         (Create_File): Likewise.
4342         (Increase_Indent): Likewise.
4343         (Decrease_Indent): Likewise.
4344         (Put): Likewise.
4345         (LF): Likewise.
4346         * gen_il.adb: Add clauses for Ada.Streams.Stream_IO.
4347         (Create_File): New procedure.
4348         (Increase_Indent): Likewise.
4349         (Decrease_Indent): Likewise.
4350         (Put): New procedures.
4351         * gen_il-gen.adb: Add clauses for Ada.Text_IO.  Replace
4352         Sink'Class with Sink throughout.  Use string concatenation and
4353         LF marker instead of formatted strings and "\n" marker.  Update
4354         Indent/Outdent calls to use new Increase_Indent/Decrease_Indent
4355         names.
4356         (Put_Membership_Query_Decl): Remove.
4357         * gen_il-internals.ads: Replace Sink'Class with Sink throughout.
4358         (Ptypes): Remove.
4359         (Pfields): Likewise.
4360         * gen_il-internals.adb: Remove clauses for GNAT.OS_Lib and
4361         Ada.Strings.Text_Buffers.Files.  Replace Sink'Class with Sink
4362         throughout.  Use string concatenation and LF marker instead of
4363         formatted strings and "\n" marker.
4364         (Stdout): Remove.
4365         (Ptypes): Likewise.
4366         (Pfields): Likewise.
4367         * libgnarl/s-putaim.ads: Modify context clause, update
4368         declaration of subtype Sink to refer to
4369         Text_Buffers.Root_Buffer_Type instead of the old
4370         Text_Output.Sink type.
4371         * libgnarl/s-putaim.adb: Modify context clause and add use
4372         clause to refer to Text_Buffers package.
4373         * libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
4374         libgnat/a-cbhama.ads, libgnat/a-cbhama.adb,
4375         libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
4376         libgnat/a-cbmutr.ads, libgnat/a-cbmutr.adb,
4377         libgnat/a-cborma.ads, libgnat/a-cborma.adb,
4378         libgnat/a-cborse.ads, libgnat/a-cborse.adb,
4379         libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
4380         libgnat/a-cidlli.ads, libgnat/a-cidlli.adb,
4381         libgnat/a-cihama.ads, libgnat/a-cihama.adb,
4382         libgnat/a-cihase.ads, libgnat/a-cihase.adb,
4383         libgnat/a-cimutr.ads, libgnat/a-cimutr.adb,
4384         libgnat/a-ciorma.ads, libgnat/a-ciorma.adb,
4385         libgnat/a-ciormu.ads, libgnat/a-ciormu.adb,
4386         libgnat/a-ciorse.ads, libgnat/a-ciorse.adb,
4387         libgnat/a-coboho.ads, libgnat/a-coboho.adb,
4388         libgnat/a-cobove.ads, libgnat/a-cobove.adb,
4389         libgnat/a-cohama.ads, libgnat/a-cohama.adb,
4390         libgnat/a-cohase.ads, libgnat/a-cohase.adb,
4391         libgnat/a-coinho.ads, libgnat/a-coinho.adb,
4392         libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb,
4393         libgnat/a-coinve.ads, libgnat/a-coinve.adb,
4394         libgnat/a-comutr.ads, libgnat/a-comutr.adb,
4395         libgnat/a-convec.ads, libgnat/a-convec.adb,
4396         libgnat/a-coorma.ads, libgnat/a-coorma.adb,
4397         libgnat/a-coormu.ads, libgnat/a-coormu.adb,
4398         libgnat/a-coorse.ads, libgnat/a-coorse.adb,
4399         libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
4400         libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.ads,
4401         libgnat/a-nbnbre.adb, libgnat/a-strunb.ads,
4402         libgnat/a-strunb.adb, libgnat/a-strunb__shared.ads,
4403         libgnat/a-strunb__shared.adb, libgnat/s-rannum.ads,
4404         libgnat/s-rannum.adb: Modify Put_Image procedure used in
4405         Put_Image aspect specification to conform to Ada profile
4406         rules (in particular, the first parameter shall be of type
4407         Ada.Strings.Text_Buffers.Root_Buffer_Type'Class).
4408         * libgnat/a-sttebu.ads, libgnat/a-sttebu.adb,
4409         libgnat/a-stbubo.ads, libgnat/a-stbubo.adb,
4410         libgnat/a-stbufi.ads, libgnat/a-stbufi.adb,
4411         libgnat/a-stbufo.ads, libgnat/a-stbufo.adb,
4412         libgnat/a-stbuun.ads, libgnat/a-stbuun.adb,
4413         libgnat/a-stbuut.ads, libgnat/a-stbuut.adb: A new predefined
4414         unit, Ada.Strings.Text_Buffers, and five child units.  Two of
4415         the five are RM-defined: Bounded and Unbounded. The remaining
4416         three are GNAT-defined: Files, Utils, and Formatting. The buffer
4417         type corresponding to an output file, type Files.File_Buffer, is
4418         simpler (and perhaps therefore slower) than its predecessor.
4419         Caching similar to what was being done before could be added
4420         later if that seems appropriate.
4421         * libgnat/s-putima.ads: Modify context clause, update
4422         declaration of subtype Sink to refer to
4423         Text_Buffers.Root_Buffer_Type instead of the old
4424         Text_Output.Sink type.
4425         * libgnat/s-putima.adb: Modify context clause.  Update
4426         Indent/Outdent calls to use new Increase_Indent/Decrease_Indent
4427         names; ditto for "Put_String => Put" name change.
4428         * libgnat/a-stteou__bootstrap.ads: Delete.
4430 2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4432         * exp_ch5.adb (Expand_Assign_Array_Bitfield_Fast): If big-endian
4433         ordering is in effect for the operands and they are small,
4434         adjust the unchecked conversions done around them.
4436 2021-06-21  Richard Kenner  <kenner@adacore.com>
4438         * einfo.ads (Return_Statement): Add documentation.
4439         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set it.
4440         * gen_il-fields.ads: Add it.
4441         * gen_il-gen-gen_entities.adb: Add it.
4443 2021-06-21  Bob Duff  <duff@adacore.com>
4445         * rtsfind.ads, libgnat/s-bitfie.ads, libgnat/s-bituti.adb,
4446         libgnat/s-bituti.ads (Fast_Copy_Bitfield): New run-time library
4447         function to copy bit fields faster than Copy_Bitfield. Cannot be
4448         called with zero-size bit fields.  Remove obsolete ??? comments
4449         from s-bituti.adb; we already do "avoid calling this if
4450         Forwards_OK is False".
4451         * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield,
4452         Expand_Assign_Array_Bitfield_Fast): Generate calls to
4453         Fast_Copy_Bitfield when appropriate.
4454         * sem_util.adb, sem_util.ads (Get_Index_Bounds): Two new
4455         functions for getting the index bounds. These are more
4456         convenient than the procedure of the same name, because they can
4457         be used to initialize constants.
4459 2021-06-21  Ed Schonberg  <schonberg@adacore.com>
4461         * gen_il-fields.ads: Add Default_Subtype_Mark to enumeration
4462         type for fields.
4463         * gen_il-gen-gen_nodes.adb: Add call to create new field for
4464         Formal_Type_Declaration node.
4465         * par-ch12.adb (P_Formal_Type_Declaration): in Ada_2022 mode,
4466         recognize new syntax for default: "or use subtype_mark".
4467         (P_Formal_Type_Definition): Ditto for the case of a formal
4468         incomplete type.
4469         * sinfo.ads: Add field Default_Subtype_Mark to
4470         N_Formal_Type_Declaration.
4471         * sem_ch12.adb (Validate_Formal_Type_Default): New procedure, to
4472         apply legality rules to default subtypes in formal type
4473         declarations. Some legality rules apply to all defaults, such as
4474         the requirement that the default for a formal type that depends
4475         on previous formal entities must itself be a previously declared
4476         formal of the same unit. Other checks are kind- specific.
4477         (Analyze_Associations): Use specified default if there is no
4478         actual provided for a formal type in an instance.
4479         (Analyze_Formal_Type_Declaration): Call
4480         Validate_Formal_Type_Default when default subtype is present.
4482 2021-06-21  Bob Duff  <duff@adacore.com>
4484         * libgnat/s-valuen.ads, libgnat/s-valuen.adb
4485         (Value_Enumeration_Pos): New function to compute the 'Pos of the
4486         enumeration literal for a given String.  Return a special value
4487         instead of raising an exception on invalid input. Called by both
4488         Valid_Enumeration_Image and Value_Enumeration.
4489         (Valid_Enumeration_Image): Return a Boolean indicating whether
4490         the String is a valid Image for the given enumeration type.
4491         (Value_Enumeration): Implement in terms of
4492         Value_Enumeration_Pos.
4493         * libgnat/s-vaenu8.ads, libgnat/s-vaen16.ads,
4494         libgnat/s-vaen32.ads: Rename Valid_Enumeration_Image from the
4495         instances.
4496         * libgnat/s-valuti.ads: Correct documentation (it was not true
4497         for the null string).
4498         * libgnat/s-valuti.adb (Normalize_String): Do not raise
4499         Constraint_Error for the null string, nor strings containing
4500         nothing but blanks, so that Valid_Enumeration_Image can return
4501         False in these cases, rather than raising an exception.
4502         * rtsfind.ads (RE_Value_Enumeration_8, RE_Value_Enumeration_16,
4503         RE_Value_Enumeration_32): New functions.
4504         (RTE_Available): Improve comment (E doesn't have to be a
4505         subprogram, although that's the usual case).
4506         * sem_attr.adb (nalid_Value): Semantic analysis for new
4507         attribute.
4508         * exp_attr.adb: Call Expand_Valid_Value_Attribute for new
4509         attribute.
4510         * exp_imgv.ads, exp_imgv.adb (Expand_Valid_Value_Attribute): New
4511         procedure to expand Valid_Value into a call to
4512         Valid_Enumeration_Image_NN.
4513         (Expand_Value_Attribute): Misc code cleanups.  Remove two ???
4514         mark comments. RTE_Available won't work here.  For one thing,
4515         RTE_Available (X) shouldn't be called until the compiler has
4516         decided to make use of X (see comments on RTE_Available), and in
4517         this case we're trying to AVOID calling something.
4518         * snames.ads-tmpl: New attribute name.
4519         * doc/gnat_rm/implementation_defined_attributes.rst: Document
4520         new attribute.
4521         * gnat_rm.texi: Regenerate.
4523 2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4525         * fe.h (Assume_No_Invalid_Values): Declare.
4526         * opt.ads (Assume_No_Invalid_Values): Add warning comment.
4528 2021-06-21  Bob Duff  <duff@adacore.com>
4530         * libgnat/s-bituti.ads (Small_Size): Do not include 0 in this
4531         type.
4532         * libgnat/s-bituti.adb (Copy_Bitfield): Do nothing for 0-bit
4533         bitfields.
4535 2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
4537         * exp_ch9.adb (Build_Simple_Entry_Call): Add comment.
4538         * libgnat/s-rannum.adb (Random): Update comment.
4539         * libgnat/s-rannum.ads (Generator): Update comment.
4541 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4543         * doc/gnat_rm/representation_clauses_and_pragmas.rst (Address
4544         Clauses): Fix unbalanced parens.
4545         * gnat_rm.texi: Regenerate.
4547 2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
4549         * errout.adb (Handle_Serious_Error): Capitalize comment.
4550         * exp_dbug.adb (Set_Entity_Name): Capitalize sentence.
4551         * exp_dist.adb (Expand_All_Calls_Remote_Subprogram_Call): Fix
4552         typo.
4553         * sem_ch3.adb (Modular_Type_Declaration): Add space after comma.
4555 2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
4557         * debug.adb: Document -gnatd_U as taken.
4558         * err_vars.ads (Warning_Doc_Switch): Set to True.
4559         * errout.ads (Errout): Update documentation.
4560         * gnat1drv.adb (Adjust_Global_Switches): React to -gnatd_U.
4561         * hostparm.ads (Tag_Errors): Set to True.
4562         * opt.ads (Unique_Error_Tag): Document -gnatd_U.
4564 2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4566         * urealp.ads (UR_Write_To_JSON): Declare.
4567         * urealp.adb (Decimal_Exponent_Hi): Treat numbers in base 10
4568         specially and rewrite handling of numbers in other bases.
4569         (Decimal_Exponent_Lo): Likewise.
4570         (Normalize): Minor tweak.
4571         (UR_Write_To_JSON): New wrapper procedure around UR_Write.
4572         * repinfo.adb (List_Type_Info): When the output is to JSON, call
4573         UR_Write_To_JSON instead of UR_Write.
4575 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4577         * sem_util.adb (Indexed_Component_Bit_Offset): Return an unknown
4578         offset for components within multidimensional arrays; remove
4579         redundant parens.
4581 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4583         * sem_util.adb (Find_Overlaid_Entity): Ignore references to
4584         components and discriminants.
4586 2021-06-21  Doug Rupp  <rupp@adacore.com>
4588         * Makefile.rtl (aarch64-linux) [LIBGNAT_TARGET_PAIRS]: Add
4589         $(TRASYM_DWARF_UNIX_PAIRS).
4590         [EXTRA_GNAT_RTL_NONTASKING_OBJS]: Add $(TRASYM_DWARF_UNIX_OBJS)
4592 2021-06-21  Gary Dismukes  <dismukes@adacore.com>
4594         * exp_util.adb (Expand_Sliding_Conversion): Only perform
4595         expansion when Expander_Active is True. Add a comment about this
4596         and refine existing comment regarding string literals.
4598 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4600         * sem_util.adb (Denotes_Same_Object): Simplify handling of
4601         slices.
4603 2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
4605         * sem_util.adb (Is_Object_Renaming): Rename from Is_Renaming;
4606         simplify; adapt callers.
4608 2021-06-21  Frederic Konrad  <konrad@adacore.com>
4610         * Makefile.rtl: Compiles both static and dynamic libgnat for
4611         powerpc64-wrs-vxworks7r2.
4613 2021-06-18  Gary Dismukes  <dismukes@adacore.com>
4615         * sem_ch3.adb (Constrain_Array): Add error checking for
4616         fixed-lower-bound and constrained index ranges applied
4617         inappropriately on subtypes of unconstrained and
4618         fixed-lower-bound array types.
4619         (Constrain_Index): Correct and refine comment related to
4620         fixed-lower-bound index ranges.
4622 2021-06-18  Bob Duff  <duff@adacore.com>
4624         * gen_il-gen.adb: Improve comments.
4625         * snames.ads-tmpl (Convention_Id): Remove "--  Plenty of space
4626         for expansion", because that's irrelevant now that we are no
4627         longer laying out node fields by hand.
4629 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4631         * sem_util.adb (Denotes_Same_Object): Handle character literals
4632         just like integer literals.
4634 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4636         * sem_util.adb (Denotes_Same_Object): Explicitly test for node
4637         kinds being the same; deal with renamings one-by-one; adjust
4638         numbers in references to the Ada RM.
4640 2021-06-18  Bob Duff  <duff@adacore.com>
4642         * sprint.adb (Write_Source_Line): Check for EOF in
4643         Line_Terminator loop.  Note that when a source file is read in,
4644         an EOF character is added to the end.
4646 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4648         * sem_aux.adb (Package_Specification): Add assertions to confirm
4649         the kind of the of parameter and returned node.
4650         * sem_ch12.adb (Remove_Parent): Reorder conditions; this change
4651         appears to be semantically neutral, but is enough to avoid the
4652         problematic call to Package_Specification.
4653         * sem_util.adb (Is_Incomplete_Or_Private_Type): Replace loop
4654         with a call to Package_Specification.
4656 2021-06-18  Bob Duff  <duff@adacore.com>
4658         * sem_attr.adb (Eval_Attribute): For Enum_Lit'Size, use
4659         Enum_Type'Object_Size.
4661 2021-06-18  Olivier Hainque  <hainque@adacore.com>
4663         * sigtramp-vxworks-target.inc (__aarch64__): Sync
4664         REGNO_PC_OFFSET with the back-end DWARF_ALT_FRAME_RETURN_COLUMN.
4665         In CFI_COMMON_REGS, leave r18 alone, VxWorks private.
4667 2021-06-18  Javier Miranda  <miranda@adacore.com>
4669         * contracts.adb (Process_Spec_Postconditions): Add missing
4670         support for aliased subprograms and handle wrappers of
4671         class-wide pre/post conditions.
4672         (Process_Inherited_Preconditions): Add missing support for
4673         aliased subprograms and handle wrappers of class-wide pre/post
4674         conditions.
4675         * einfo.ads (Class_Wide_Clone): Fix typo.
4676         (Is_Class_Wide_Clone): Removed since it is not referenced.
4677         (Is_Wrapper): Documenting new flag.
4678         (LSP_Subprogram): Documenting new attribute.
4679         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Decorate
4680         wrapper as Is_Wrapper and adjust call to
4681         Override_Dispatching_Operation.
4682         * freeze.adb (Build_Inherited_Condition_Pragmas): Fix typo in
4683         documentation.
4684         (Check_Inherited_Conditions): Handle LSP wrappers; ensure
4685         correct decoration of LSP wrappers.
4686         * gen_il-fields.ads (Is_Class_Wide_Clone): Removed.
4687         (Is_Wrapper): Added.
4688         (LSP_Subprogram): Added.
4689         * gen_il-gen-gen_entities.adb (Is_Class_Wide_Clone): Removed.
4690         (Is_Wrapper): Added.
4691         (LSP_Subprogram): Added.
4692         * gen_il-internals.adb (Image): Adding uppercase image of
4693         LSP_Subprogram.
4694         * sem_ch6.adb (New_Overloaded_Entity): Fix decoration of LSP
4695         wrappers.
4696         * sem_disp.ads (Override_Dispatching_Operation): Remove
4697         parameter Is_Wrapper; no longer needed.
4698         * sem_disp.adb (Check_Dispatching_Operation): Adjust assertion.
4699         (Override_Dispatching_Operation): Remove parameter Is_Wrapper;
4700         no longer needed.
4701         * treepr.adb (Image): Adding uppercase image of LSP_Subprogram.
4703 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
4705         * exp_ch4.adb (Expand_N_Quantified_Expression): Ensure the type
4706         of the name of a "for of" loop is frozen.
4707         * exp_disp.adb (Check_Premature_Freezing): Complete condition to
4708         take into account a private type completed by another private
4709         type now that the freezing rule are better implemented.
4710         * freeze.adb (Freeze_Entity.Freeze_Profile): Do not perform an
4711         early freeze on types if not in the proper scope. Special case
4712         expression functions that requires access to the dispatch table.
4713         (Should_Freeze_Type): New.
4714         * sem_ch13.adb (Resolve_Aspect_Expressions): Prevent assert
4715         failure in case of an invalid tree (previous errors detected).
4716         * sem_res.adb (Resolve): Remove kludge related to entities
4717         causing incorrect premature freezing.
4718         * sem_util.adb (Ensure_Minimum_Decoration): Add protection
4719         against non base types.
4721 2021-06-18  Gary Dismukes  <dismukes@adacore.com>
4723         * sem_ch3.adb (Constrain_Index): Set the High_Bound of a
4724         fixed-lower-bound subtype's range to T (the subtype of the FLB
4725         index being constrained) rather than Base_Type (T).
4727 2021-06-18  Bob Duff  <duff@adacore.com>
4729         * ada_get_targ.adb, aspects.ads, checks.adb, cstand.adb,
4730         einfo.ads, exp_attr.adb, freeze.adb, get_targ.adb,
4731         libgnat/a-textio.ads, libgnat/g-memdum.ads,
4732         libgnat/s-scaval__128.adb, libgnat/s-scaval.adb, make.adb,
4733         osint.ads, par-prag.adb, sem_ch13.adb, sem_prag.adb,
4734         sem_prag.ads, set_targ.adb, set_targ.ads, snames.ads-tmpl,
4735         targparm.ads, types.ads: Remove AAMP-specific code.
4736         * switch.ads: Minor reformatting.
4737         * gen_il-fields.ads, gen_il-gen.adb,
4738         gen_il-gen-gen_entities.adb, gen_il-types.ads, einfo-utils.adb,
4739         einfo-utils.ads: Package Types now contains "type Float_Rep_Kind
4740         is (IEEE_Binary);", which used to also have an enumeral AAMP.
4741         Gen_IL can't handle fields of this type, which would be zero
4742         sized. Therefore, we move the Float_Rep field into Einfo.Utils
4743         as a synthesized attribute. (We do not delete the field
4744         altogether, in case we want new floating-point representations
4745         in the future.)
4746         * doc/gnat_rm/implementation_defined_pragmas.rst,
4747         doc/gnat_rm/implementation_defined_aspects.rst,
4748         doc/gnat_ugn/building_executable_programs_with_gnat.rst,
4749         doc/gnat_ugn/the_gnat_compilation_model.rst: Remove
4750         AAMP-specific documentation.
4751         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
4753 2021-06-18  Gary Dismukes  <dismukes@adacore.com>
4755         * exp_util.adb (Expand_Sliding_Conversion): Move test of
4756         Is_Fixed_Lower_Bound_Subtype to an assertion. Exclude string
4757         literals from sliding expansion.
4759 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4761         * sem_warn.adb (Warn_On_Overlapping_Actuals): Cleanup conditions
4762         related to Ada_Version.
4764 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4766         * sem_util.adb (Address_Value): Simplify.
4768 2021-06-18  Bob Duff  <duff@adacore.com>
4770         * sem_attr.adb (Check_Array_Or_Scalar_Type): Use Expr_Value
4771         instead of Intval, because the latter only exists in literals.
4772         Remove Set_Etype on E1; setting the type is done elsewhere.
4774 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4776         * sem_warn.adb (Warn_On_Overlapping_Actuals): Examine types of
4777         both formal parameters; refactor a complex detection of
4778         by-reference types.
4780 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
4782         * gnatcmd.adb: Fix handling of check and test commands.
4784 2021-06-18  Gary Dismukes  <dismukes@adacore.com>
4786         * doc/gnat_rm/implementation_defined_pragmas.rst: Add
4787         documentation for the array fixed-lower-bound feature.
4788         * gnat_rm.texi: Regenerate.
4790 2021-06-18  Bob Duff  <duff@adacore.com>
4792         * debug.adb: Document switch.
4793         * exp_aggr.adb: If -gnatd_g was given, then do not bump the
4794         limit to 500_000.
4796 2021-06-18  Bob Duff  <duff@adacore.com>
4798         * sem_util.ads, sem_util.adb (Has_Access_Values): Remove
4799         Include_Internal parameter that was added in previous change.
4800         * sem_warn.adb (Warnings_Off_E1): Back out E_Out_Parameter ==>
4801         Formal_Kind change made previously. Check Is_Private_Type to
4802         avoid warnings on private types. Misc cleanup.
4803         * sem_attr.adb (Attribute_Has_Access_Values): Remove
4804         Include_Internal parameter.
4806 2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
4808         * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead branch
4809         for overlapping actuals in prefix notation.
4811 2021-06-18  Eric Botcazou  <ebotcazou@adacore.com>
4813         * sem_prag.adb (Process_Import_Or_Interface): Do not
4814         artificially record a possible modification for a constant.
4816 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
4818         * exp_ch6.adb (Expand_Call_Helper): Code cleanups.
4820 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
4822         * exp_aggr.adb, exp_dist.adb, exp_unst.adb, sa_messages.ads,
4823         sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_eval.adb,
4824         sem_util.adb, sem_util.ads, sinfo.ads: Update comments.
4826 2021-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>
4828         * back_end.adb (Scan_Back_End_Switches): Set Opt.JSON_Output to
4829         True if -fdiagnostics-format=json option is found.
4830         * back_end.ads (Scan_Compiler_Arguments): Mention
4831         Opt.JSON_Output.
4832         * errout.adb (Output_JSON_Message): New procedure.
4833         (Output_Messages): If Opt.JSON_Output is True, print messages
4834         with new Output_JSON_Message procedure.
4835         * opt.ads: Declare JSON_Output variable.
4836         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4837         Mention new -fdiagnostics-format option.
4838         * gnat_ugn.texi: Regenerate.
4840 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
4842         * sem_ch6.adb (Null_Exclusions_Match): Relax null exclusion
4843         mismatch check when Relaxed_RM_Semantics is set.
4845 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
4847         * fe.h, opt.adb, opt.ads, par-prag.adb, sem_prag.adb,
4848         switch-c.adb (Extensions_Allowed): Replace by a function.
4849         (Ada_Version_Type): Add new value Ada_With_Extensions, to
4850         replace setting of Extensions_Allowed.  Update setting of
4851         Extensions_Allowed.
4853 2021-06-18  Arnaud Charlet  <charlet@adacore.com>
4855         * bindgen.adb (Gen_Output_File_Ada): Generate a new constant
4856         GNAT_Version_Address.
4857         * libgnat/g-comver.adb (GNAT_Version_Address): New;
4858         (GNAT_Version): Use GNAT_Version_Address to disable LTO warning.
4860 2021-06-18  Javier Miranda  <miranda@adacore.com>
4862         * einfo.ads (Is_Ada_2022_Only): Adding documentation.
4863         * gen_il-fields.ads (Is_Ada_2022_Only): New flag.
4864         * gen_il-gen-gen_entities.adb (Is_Ada_2022_Only): New flag.
4865         * itypes.adb (Create_Null_Excluding_Itype): Inherit
4866         Is_Ada_2022_Only.
4867         * sem_ch3.adb (Check_Abstract_Overriding): Skip reporting error
4868         on Ada 2022 only subprograms that require overriding if we are
4869         not in Ada 2022 mode.
4870         (Derive_Subprogram): Inherit Is_Ada_2022_Only.
4871         * sem_ch6.adb (Check_Overriding_Indicator): Inherit
4872         Is_Ada_2022_Only.
4873         (New_Overloaded_Entity): Inherit Is_Ada_2022_Only.
4874         * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Inherit
4875         Is_Ada_2022_Only.
4876         (Preserve_Full_Attributes): Inherit Is_Ada_2022_Only.
4877         * sem_disp.adb (Find_Hidden_Overridden_Primitive): Inherit
4878         Is_Ada_2022_Only.
4879         (Override_Dispatching_Operation): Inherit Is_Ada_2022_Only.
4880         * sem_prag.adb (Analyze_Pragma): Allow form with argument for
4881         Ada 2022.
4882         * sem_type.adb: (Disambiguate): Deal with Is_Ada_2022_Only
4883         * lib-xref.adb (Generate_Reference): Error on static and
4884         dispatching calls to Ada 2022 subprograms that require
4885         overriding if we are not in Ada 2022 mode; warn on other
4886         references to Ada 2022 entities when not in Ada 2022 mode.
4887         * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Inherit
4888         Ada_2020_Only.
4889         * libgnat/a-cdlili.ads (Empty): Adding pragma Ada_2022.
4890         * libgnat/a-cidlli.ads (Empty): Adding pragma Ada_2022.
4891         * libgnat/a-ciorma.ads (Empty): Adding pragma Ada_2022.
4892         * libgnat/a-cobove.ads (Empty): Adding pragma Ada_2022.
4893         * libgnat/a-coorma.ads (Empty): Adding pragma Ada_2022.
4894         (New_Vector): Adding pragma Ada_2022.
4895         (Insert_Vector): Adding pragma Ada_2022.
4896         (Prepend_Vector): Adding pragma Ada_2022.
4897         (Append_Vector): Adding pragma Ada_2022.
4899 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
4901         * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Protect against
4902         no Primitive_Operations.
4904 2021-06-17  Vadim Godunko  <godunko@adacore.com>
4906         * libgnat/a-strunb__shared.ads (Allocate): Additional parameter
4907         to provide additional amount of space to be allocated.
4908         * libgnat/a-strunb__shared.adb (Aligned_Max_Length): Limit
4909         length to Natural'Last when requested length is larger than it.
4910         (Allocate): Merge two slightly different implementations into
4911         one.
4913 2021-06-17  Gary Dismukes  <dismukes@adacore.com>
4915         * checks.adb (Discrete_Range_Cond): For an index subtype that
4916         has a fixed lower bound, require that the range's lower bound
4917         match that of the subtype.
4918         (Selected_Range_Checks): Warn about the case where a static
4919         lower bound does not equal an index subtype's fixed lower bound.
4920         * einfo.ads (Is_Fixed_Lower_Bound_Array_Subtype,
4921         Is_Fixed_Lower_Bound_Index_Subtype): Document new entity flag.
4922         * exp_ch4.adb (Expand_N_Type_Conversion): If the operand is of
4923         an unconstrained array subtype with fixed lower bound, then
4924         Expand_Sliding_Conversion is applied to the operand.
4925         * exp_ch6.adb (Expand_Simple_Function_Return): If the result
4926         subtype is an unconstrained array subtype with fixed lower
4927         bound, then Expand_Sliding_Conversion is applied to the return
4928         object.
4929         * exp_util.ads (Expand_Sliding_Conversion): New procedure for
4930         applying a sliding subtype conversion to an array object of a
4931         fixed-lower-bound subtype when needed.
4932         * exp_util.adb: Add with_clause for Freeze.
4933         (Expand_Sliding_Conversion): New procedure for applying a
4934         sliding subtype conversion to an array object of a
4935         fixed-lower-bound subtype when needed.  It traverses the indexes
4936         of the unconstrained array type/subtype to create a target
4937         constrained subtype and rewrites the array object to be a
4938         conversion to that subtype, when there's at least one index
4939         whose lower bound does not statically match the fixed-lower
4940         bound of the target subtype.
4941         * gen_il-fields.ads (type Opt_Field_Enum): Add literals
4942         Is_Fixed_Lower_Bound_Array_Subtype and
4943         Is_Fixed_Lower_Bound_Index_Subtype for new flags on type
4944         entities.
4945         * gen_il-gen-gen_entities.adb: Add calls to
4946         Create_Semantic_Field for the new fixed-lower-bound flags on
4947         type entities.
4948         * par-ch3.adb (P_Array_Type_Definition): Add handling for
4949         parsing of fixed-lower-bound index ranges in unconstrained array
4950         types. Report an error if such an index is encountered and GNAT
4951         language extensions are not enabled.
4952         (P_Index_Subtype_Def_With_Fixed_Lower_Bound): Support procedure
4953         for parsing unconstrained index ranges.
4954         (P_Index_Or_Discriminant_Constraint): Add handling for parsing
4955         of index constraints that specify ranges with fixed lower
4956         bounds. Report an error if such an index is encountered and GNAT
4957         language extensions are not enabled.
4958         * sem_ch3.adb (Analyze_Object_Declaration): If the object's
4959         nominal subtype is an array subtype with fixed lower bound, then
4960         Expand_Sliding_Conversion is applied to the object.
4961         (Array_Type_Declaration): Mark the array type and the subtypes
4962         of any indexes that specify a fixed lower bound as being
4963         fixed-lower-bound subtypes, and set the High_bound of the range
4964         of such an index to the upper bound of the named subtype.
4965         (Constrain_Array): For an array subtype with one or more index
4966         ranges specifying a fixed lower bound, set Is_Constrained to
4967         False and set the array subtype's
4968         Is_Fixed_Lower_Bound_Array_Subtype flag to True.
4969         (Constrain_Index): Mark the subtypes of an index that specifies
4970         a fixed lower bound as being a fixed-lower-bound index subtype,
4971         and set the High_bound of the range of such an index to the
4972         upper bound of the base type of the array type's corresponding
4973         index.
4974         * sem_res.adb (Resolve_Actuals): If a formal is of an
4975         unconstrained array subtype with fixed lower bound, then
4976         Expand_Sliding_Conversion is applied to the actual.
4977         * sem_util.adb (Build_Actual_Subtype): If the actual subtype
4978         corresponds to an unconstrained array subtype having any indexes
4979         with fixed lower bounds, then set the lower bounds of any such
4980         indexes of the actual subtype to the appropriate fixed lower
4981         bound of the formal subtype (rather than taking it from the
4982         formal itself).
4983         * sprint.adb (Sprint_Node_Actual, case N_Range): If a range's
4984         Etype has a fixed lower bound, then print "<>" rather than the
4985         High_Bound of the range.
4987 2021-06-17  Bob Duff  <duff@adacore.com>
4989         * sem_util.adb, sem_util.ads (Has_Access_Values): New formal
4990         Include_Internal to indicate whether internal types should be
4991         included.
4992         * sem_warn.adb (Check_References): Change E_Out_Parameter to
4993         Formal_Kind, to match the comment about Spec_Entity.  Pass
4994         Include_Internal => False to Has_Access_Values, so that we warn
4995         on types with access values that happen to be in internal types,
4996         such as Unbounded_String.
4997         * sem_attr.adb (Attribute_Has_Access_Values): Pass
4998         Include_Internal => True to Has_Access_Values, to preserve
4999         existing behavior.
5000         * libgnat/g-rewdat.adb (Do_Output): Change B from 'in out' to
5001         'in', to avoid warning enabled by the change to sem_warn.adb.
5002         * libgnat/s-objrea.adb (Check_Read_Offset): Change S from 'in
5003         out' to 'in', to avoid warning enabled by the change to
5004         sem_warn.adb.
5006 2021-06-17  Steve Baird  <baird@adacore.com>
5008         * exp_ch5.adb
5009         (Expand_N_Case_Statement.Expand_General_Case_Statement): New
5010         subprogram.
5011         (Expand_N_Case_Statement): If extensions are allowed and the
5012         case selector is not of a discrete type, then call
5013         Expand_General_Case_Statement to generate expansion instead of
5014         flagging the non-discrete selector as an error.
5015         * sem_case.ads (Is_Case_Choice_Pattern): New Boolean-valued
5016         function for testing whether a given expression occurs as part
5017         of a case choice pattern.
5018         * sem_case.adb (Composite_Case_Ops): New package providing
5019         support routines for the new form of case statements. This
5020         includes a nested package, Composite_Case_Ops.Value_Sets, which
5021         encapsulates the "representative values" implementation of
5022         composite value sets.
5023         (Check_Choices.Check_Case_Pattern_Choices): New procedure for
5024         semantic checking of non-discrete case choices. This includes
5025         the checks pertaining to coverage and overlapping.
5026         (Check_Choices.Check_Composite_Case_Selector): New procedure for
5027         semantic checking of non-discrete case selectors.
5028         (Check_Choices): If extensions are allowed then a non-discrete
5029         selector type no longer implies that an error must have been
5030         flagged earlier.  Instead of simply returning, call
5031         Check_Composite_Case_Selector and Check_Case_Pattern_Choices.
5032         (Is_Case_Choice_Pattern): Body of new function declared in
5033         sem_case.ads .
5034         * sem_ch5.adb (Analyze_Case_Statement): If extensions are
5035         allowed, then we can't use RM 5.4's "The selecting_expression is
5036         expected to be of any discrete type" name resolution rule.
5037         Handle the case where the type of the selecting expression is
5038         not discrete, as well as the new ambiguous-name-resolution error
5039         cases made possible by this change.
5040         * sem_res.adb (Resolve_Entity_Name): It is ok to treat the name
5041         of a type or subtype as an expression if it is part of a case
5042         choice pattern, as in "(Field1 => Positive, Field2 => <>)".
5043         * exp_aggr.adb (Expand_Record_Aggregate): Do not expand case
5044         choice aggregates.
5045         * gen_il-fields.ads: Define two new node attributes,
5046         Binding_Chars and Multidefined_Bindings.
5047         * gen_il-gen-gen_nodes.adb: The new Multidefined_Bindings
5048         attribute is Boolean-valued and may be set on
5049         N_Case_Statement_Alternative nodes. The new Binding_Chars
5050         attribute is Name_Id-valued and may be set on
5051         N_Component_Association nodes.
5052         * par-ch4.adb (P_Record_Or_Array_Component_Association): When
5053         parsing a component association, check for both new syntax forms
5054         used to specify a bound value in a case-choice aggregate.  In
5055         the case of a box value, an identifier may occur within the box,
5056         as in "Foo => <Abc>" instead of "Foo => <>". In the more general
5057         case, an expression (or a box) may be followed by "is
5058         <identifier>", as in
5059         "Foo => Bar is Abc" instead of just "Foo => Bar".
5060         * sem_aggr.adb (Resolve_Record_Aggregate): Do not transform box
5061         component values in a case-choice aggregate.
5062         * sinfo.ads: Provide comments for the new attributes added in
5063         gen_il-fields.ads.
5064         * doc/gnat_rm/implementation_defined_pragmas.rst: Describe this
5065         new feature in documentation for pragma Extensions_Allowed.
5066         * gnat_rm.texi: Regenerate.
5068 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5070         * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action):
5071         Do not abandon processing on a nested N_Expression_With_Actions
5072         or N_Loop_Statement, otherwise we may miss some transient
5073         declarations.
5075 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5077         * exp_util.adb (Find_Hook_Context): Do not stop on an aggregate
5078         node.
5080 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5082         * sem_util.adb (Is_Valid_Renaming): Check not only indexed
5083         components, but slices too.
5085 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5087         * sem_ch3.adb (Analyze_Private_Extension_Declaration): Check
5088         No_Wide_Characters restriction after rejecting illegal parent
5089         types.
5090         (Derived_Type_Declaration): Likewise.
5091         (Find_Type_Of_Subtype_Indic): Remove check for
5092         No_Wide_Characters restriction, which was done too early.
5094 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5096         * sem_util.adb (Is_Valid_Renaming): Body moved from its nested
5097         routine.
5099 2021-06-17  Gary Dismukes  <dismukes@adacore.com>
5101         * sem_ch12.adb (Instantiate_Type): If the actual type for an
5102         incomplete formal type is also incomplete, but has a Full_View,
5103         use the Full_View of the actual type rather than the incomplete
5104         view.
5106 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5108         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
5109         (-gnatw.I): Remove double period at the end of sentence.
5110         * gnat_ugn.texi: Regenerate.
5112 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5114         * sem_util.adb (Denotes_Same_Object): Call Get_Index_Bounds with
5115         the range of a slice object, not its type.
5117 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5119         * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix style;
5120         refactor repeated calls to Nkind; remove early RETURN.
5122 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5124         * sem_warn.adb (Warn_On_Overlapping_Actuals): Ignore formal of
5125         generic types, but keep examining other parameters.
5127 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5129         * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead code.
5131 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5133         * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove repeated
5134         code.
5136 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5138         * checks.adb (Overlap_Check): Replace Set_Casing with
5139         Adjust_Name_Case and adapt surrounding code as needed.
5141 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5143         * libgnat/s-putaim.ads, libgnat/s-putaim.adb: Move...
5144         * libgnarl/s-putaim.ads, libgnarl/s-putaim.adb: ... here.
5146 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5148         * uintp.ads, uintp.adb (UI_To_Unsigned_64): New.
5150 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5152         * sem_prag.adb (Get_Overflow_Mode): Reword error message.
5153         * switch-c.adb (Get_Overflow_Mode): Likewise.
5155 2021-06-17  Richard Kenner  <kenner@adacore.com>
5157         * exp_util.adb (Expand_Static_Predicates_In_Choices): Handle
5158         Others_Discrete_Choices in N_Others_Choice.
5160 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5162         * atree.adb: Remove redundant comment with spec.
5163         * sem_warn.adb: Fix typo in comment.
5165 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5167         * atree.adb: Do not suppress checks.
5169 2021-06-17  Justin Squirek  <squirek@adacore.com>
5171         * exp_ch3.adb (Check_Missing_Others): Add comment.
5172         (Build_Initialization_Call): Remove inaccurate accessibility
5173         comment.
5174         * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Remove
5175         test for Ada2012.
5176         (Analyze_Package_Instantiation): Remove speculative comment.
5177         (Inline_Instance_Body): Add comments for loops.
5178         (Build_Subprogram_Renaming): Remove comment about fix being
5179         partial and "ugly."
5180         (Instantiate_Subprogram_Body): Remove comment referencing DEC
5181         related internal issue.
5182         (Subtypes_Match): Add comment and simplify anonymous access
5183         test.
5184         (Is_Global): Add test for when E is an expanded name, and
5185         calculate the scope accordingly.
5186         * sem_ch6.adb (Analyze_Function_Return): Update comment
5187         regarding accessibility, and add check for
5188         Warn_On_Ada_2012_Compatibility.
5189         (Mask_Type_Refs): Add comments.
5190         (Analyze_Subprogram_Declaration): Remove mysterious suppression
5191         of elaboration checks.
5192         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Is_Atomic
5193         value.
5194         * sem_ch8.adb (Most_Descendant_Use_Clause): Remove comment.
5195         (Note_Redundant_Use): Fix calls to Find_First_Use to be
5196         Find_Most_Prev.
5197         (Get_Object_Name): Modify error message to be more descriptive.
5198         (Known_But_Visible): Remove mysterious special case for
5199         GNAT_Mode.
5200         (Find_First_Use): Removed.
5201         (Find_Most_Prev): Renamed from Find_First_Use.
5202         * sem_prag.adb (Check_Static_Constraint): Add comments to
5203         routine.
5205 2021-06-17  Bob Duff  <duff@adacore.com>
5207         * treepr.adb (Print_Node): Display the Entity or Associated_Node
5208         fields if appropriate.
5209         * sinfo-utils.ads (F_Associated_Node, F_Entity): Remove. These
5210         are no longer needed.
5212 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5214         * checks.adb (Apply_Parameter_Aliasing_Checks): Replace calls to
5215         Is_Object_Reference with calls to Is_Name_Reference; remove
5216         asymmetric condition that only detected an aggregate as the
5217         first actual (aggregate objects were just a special case of an
5218         object reference that was not a name).
5220 2021-06-17  Bob Duff  <duff@adacore.com>
5222         * gen_il-gen.adb, gen_il-internals.ads: Generate field
5223         enumeration literals with "F_" prefix.  Update all generated
5224         references accordingly.
5225         * atree.adb, einfo-utils.adb, sem_ch3.adb, sem_ch5.adb,
5226         sem_ch6.adb, sem_ch8.adb, sinfo-cn.adb, sinfo-utils.adb,
5227         sinfo-utils.ads, treepr.adb: Add "F_" prefix to all uses of the
5228         field enumeration literals.
5230 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5232         * libgnat/i-c.ads, libgnat/i-cexten.ads,
5233         libgnat/i-cexten__128.ads: bool renamed C_bool.
5235 2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
5237         * sem_ch4.adb (Analyze_Allocator): Reject allocators in
5238         restricted contexts.
5240 2021-06-17  Arnaud Charlet  <charlet@adacore.com>
5242         * gcc-interface/Make-lang.in: Use libgnat.so if libgnat.a cannot
5243         be found.
5245 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5247         * sem_util.adb (Is_Volatile_Function): Follow the exact wording
5248         of SPARK (regarding volatile functions) and Ada (regarding
5249         protected functions).
5251 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5253         * sem_util.adb (Is_OK_Volatile_Context): All references to
5254         volatile objects are legal in preanalysis.
5255         (Within_Volatile_Function): Previously it was wrongly called on
5256         Empty entities; now it is only called on E_Return_Statement,
5257         which allow the body to be greatly simplified.
5259 2021-06-16  Yannick Moy  <moy@adacore.com>
5261         * sem_res.adb (Set_Slice_Subtype): Revert special-case
5262         introduced previously, which is not needed as Itypes created for
5263         slices are precisely always used.
5265 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5267         * urealp.adb (Scale): Change first paramter to Uint and adjust.
5268         (Equivalent_Decimal_Exponent): Pass U.Den directly to Scale.
5269         * libgnat/s-exponr.adb (Negative): Rename to...
5270         (Safe_Negative): ...this and change its lower bound.
5271         (Exponr): Adjust to above renaming and deal with Integer'First.
5273 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5275         * sem_res.adb (Flag_Effectively_Volatile_Objects): Detect also
5276         allocators within restricted contexts and not just entity names.
5277         (Resolve_Actuals): Remove duplicated code for detecting
5278         restricted contexts; it is now exclusively done in
5279         Is_OK_Volatile_Context.
5280         (Resolve_Entity_Name): Adapt to new parameter of
5281         Is_OK_Volatile_Context.
5282         * sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): Adapt to
5283         handle contexts both inside and outside of subprogram call
5284         actual parameters.
5285         (Within_Subprogram_Call): Remove; now handled by
5286         Is_OK_Volatile_Context itself and its parameter.
5288 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5290         * sinput.adb (Sloc_Range): Refactor several repeated calls to
5291         Sloc and two comparisons with No_Location.
5293 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5295         * checks.adb (Apply_Scalar_Range_Check): Fix handling of check depending
5296         on the parameter passing mechanism.  Grammar adjustment ("has"
5297         => "have").
5298         (Parameter_Passing_Mechanism_Specified): Add a hyphen in a comment.
5300 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5302         * exp_ch3.adb (Build_Slice_Assignment): Remove unused
5303         initialization.
5305 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5307         * restrict.adb, sem_attr.adb, types.ads: Fix typos in
5308         "occuring"; refill comment as necessary.
5310 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5312         * sem_util.ads (Is_Actual_Parameter): Update comment.
5313         * sem_util.adb (Is_Actual_Parameter): Also detect entry parameters.
5315 2021-06-16  Arnaud Charlet  <charlet@adacore.com>
5317         * rtsfind.ads, libgnarl/s-taskin.ads, exp_ch3.adb, exp_ch4.adb,
5318         exp_ch6.adb, exp_ch9.adb, sem_ch6.adb: Move master related
5319         entities to the expander directly.
5321 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5323         * sem_res.adb (Is_Assignment_Or_Object_Expression): Whitespace
5324         cleanup.
5325         (Is_Attribute_Expression): Prevent AST climbing from going to
5326         the root of the compilation unit.
5328 2021-06-16  Steve Baird  <baird@adacore.com>
5330         * doc/gnat_rm/implementation_advice.rst: Add a section for RM
5331         A.18 .
5332         * gnat_rm.texi: Regenerate.
5334 2021-06-16  Justin Squirek  <squirek@adacore.com>
5336         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Add
5337         check for the mixing of entries.
5339 2021-06-16  Justin Squirek  <squirek@adacore.com>
5341         * sem_ch13.adb (Make_Aitem_Pragma): Check for static expressions
5342         in Priority aspect arguments for restriction Static_Priorities.
5344 2021-06-16  Justin Squirek  <squirek@adacore.com>
5346         * sem_util.adb (Accessibility_Level): Take into account
5347         renamings of loop parameters.
5349 2021-06-16  Matthieu Eyraud  <eyraud@adacore.com>
5351         * par_sco.adb (Set_Statement_Entry): Change sloc for dominance
5352         marker.
5353         (Traverse_One): Fix typo.
5354         (Output_Header): Fix comment.
5356 2021-06-16  Richard Kenner  <kenner@adacore.com>
5358         * exp_unst.adb (Register_Subprogram): Don't look for aliases for
5359         subprograms that are generic.  Reorder tests for efficiency.
5361 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5363         * sem_util.adb (Incomplete_Or_Partial_View): Retrieve the scope of
5364         the parameter and use it to find its incomplete view, if any.
5366 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5368         * freeze.adb (Check_No_Parts_Violations): Return earlier if the
5369         type is elementary or does not come from source.
5371 2021-06-16  Bob Duff  <duff@adacore.com>
5373         * ghost.adb: Add another special case where full analysis is
5374         needed. This bug is due to quirks in the way
5375         Mark_And_Set_Ghost_Assignment works (it happens very early,
5376         before name resolution is done).
5378 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5380         * sem_util.adb (Current_Entity_In_Scope): Reimplement.
5382 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5384         * sem_ch8.adb (End_Scope): Remove extra parens.
5386 2021-06-16  Javier Miranda  <miranda@adacore.com>
5388         * exp_disp.adb (Build_Class_Wide_Check): Ensure that evaluation
5389         of actuals is side effects free (since the check duplicates
5390         actuals).
5392 2021-06-16  Ed Schonberg  <schonberg@adacore.com>
5394         * sem_res.adb (Resolve_Raise_Expression): Apply Ada_2020 rules
5395         concerning the need for parentheses around Raise_Expressions in
5396         various contexts.
5398 2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
5400         * sem_ch13.adb (Validate_Unchecked_Conversion): Move detection
5401         of generic types before switching to their private views; fix
5402         style in using AND THEN.
5404 2021-06-16  Arnaud Charlet  <charlet@adacore.com>
5406         * sem_ch3.adb (Analyze_Component_Declaration): Do not special
5407         case raise expressions.
5409 2021-06-16  Sergey Rybin  <rybin@adacore.com>
5411         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
5412         Instead of referring to the formatting of the Ada examples in
5413         Ada RM add use the list of checks that are actually performed.
5414         * gnat_ugn.texi: Regenerate.
5416 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5418         * initialize.c: Do not include vxWorks.h and fcntl.h from here.
5419         (__gnat_initialize) [__MINGW32__]: Remove #ifdef and attribute
5420         (__gnat_initialize) [init_float]: Delete.
5421         (__gnat_initialize) [VxWorks]: Likewise.
5422         (__gnat_initialize) [PA-RISC HP-UX 10]: Likewise.
5423         * runtime.h: Add comment about vxWorks.h include.
5425 2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
5427         * libgnat/s-except.ads (ZCX_By_Default): Delete.
5428         (Require_Body): Likewise.
5429         * libgnat/s-except.adb: Replace body with pragma No_Body.
5431 2021-06-15  Steve Baird  <baird@adacore.com>
5433         * exp_util.adb (Kill_Dead_Code): Generalize the existing
5434         handling of if statements to handle case statements similarly.
5436 2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5438         * raise.h (_gnat_builtin_longjmp): Delete.
5439         (set_gnat_exit_status): Likewise.
5441 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5443         * exp_util.adb (Possible_Side_Effect_In_SPARK): Handle component
5444         declaration just like full type and subtype declarations.
5446 2021-06-15  Yannick Moy  <moy@adacore.com>
5448         * errout.adb (First_And_Last_Node): Also apply to arbitrary late
5449         declarations, not only subprogram specs.
5451 2021-06-15  Bob Duff  <duff@adacore.com>
5453         * sem_ch3.adb (Make_Class_Wide_Type): Make sure all the calls to
5454         Reinit_Field_To_Zero are for the correct Ekinds.
5456 2021-06-15  Bob Duff  <duff@adacore.com>
5458         * aspects.ads (No_Task_Parts): New aspect.
5459         * snames.ads-tmpl: Add the aspect name.
5460         * exp_ch6.adb (Might_Have_Tasks): Return False if this is a
5461         class-wide type whose specific type has No_Task_Parts.
5462         * freeze.adb (Check_No_Parts_Violations): This is an adaptation
5463         of the procedure formerly known as
5464         Check_No_Controlled_Parts_Violations, which now supports both
5465         No_Controlled_Parts and No_Task_Parts.  It takes a parameter
5466         indicating which aspect is being checked.
5467         (Freeze_Entity): Call Check_No_Parts_Violations for both
5468         aspects.
5469         * sem_ch13.adb (Analyze_Aspect_Specifications): The code for
5470         Aspect_No_Controlled_Parts already works as is with
5471         Aspect_No_Task_Parts.
5472         * libgnat/a-iteint.ads: Add No_Task_Parts aspect to the two
5473         iterator iterfaces.
5474         * doc/gnat_rm/implementation_defined_aspects.rst: Add
5475         documentation for the No_Task_Parts aspect.
5476         * gnat_rm.texi: Regenerate.
5478 2021-06-15  Arnaud Charlet  <charlet@adacore.com>
5480         * exp_unst.adb (Unnest_Subprogram.Build_Table.Visit_Node): Fix
5481         handling of scopes for subprogram calls.
5483 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5485         * sem_prag.adb: Fix typos in comments related to access types.
5486         * sem_util.adb (Is_Access_Variable): Stronger condition.
5488 2021-06-15  Arnaud Charlet  <charlet@adacore.com>
5490         * Make-generated.in: Add rule to copy runtime files needed
5491         during stage1.
5492         * raise.c: Remove obsolete symbols used during bootstrap.
5493         * gcc-interface/Make-lang.in: Do not use libgnat sources during
5494         stage1.
5495         (GNAT_ADA_OBJS, GNATBIND_OBJS): Split in two parts, the common
5496         part and the part only used outside of stage1.
5497         (ADA_GENERATED_FILES): Add runtime files needed during bootstrap
5498         when recent APIs are needed.
5499         (ada/b_gnatb.adb): Remove prerequisite.
5500         * gcc-interface/system.ads: Remove obsolete entries.
5502 2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5504         * raise-gcc.c (__gnat_personality_seh0): Use PERSONALITY_FUNCTION.
5506 2021-06-15  Ed Schonberg  <schonberg@adacore.com>
5508         * sem_util.adb (Is_Confirming): Separate the handling of
5509         Implicit_Dereference, for which no pragma is generated but which
5510         is already checked for legality in Sem_Ch13, including renamed
5511         discriminants in a derived type.
5512         (Is_Confirming, Same_Name): For expanded names, only check
5513         matching of selector, because prefix may correspond to original
5514         and derived types with different names and/or scopes. Semantic
5515         checks on aspect expression have already verified its legality.
5516         Add comments regarding possible gaps in RM description of the
5517         feature.
5519 2021-06-15  Gary Dismukes  <dismukes@adacore.com>
5521         * freeze.adb (Freeze_Subprogram): Don't propagate conventions
5522         Intrinsic or Entry to anonymous access-to-subprogram types
5523         associated with subprograms having those conventions. Update
5524         related comment.
5525         * sem_attr.adb (Resolve_Attribute, Attribute_*Access): Remove
5526         special-case warning code for cases where a called subprogram
5527         has convention Intrinsic as well as its formal's type (the
5528         expected type for the Access attribute), since this case can no
5529         longer occur.
5531 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5533         * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Fix
5534         typos.
5536 2021-06-15  Bob Duff  <duff@adacore.com>
5538         * einfo-utils.adb (Known_Component_Size,
5539         Known_Static_Component_Size, Unknown_Component_Size): Use
5540         Implementation_Base_Type instead of Base_Type.
5542 2021-06-15  Bob Duff  <duff@adacore.com>
5544         * gen_il-gen-gen_entities.adb (E_Loop_Parameter): Add
5545         Interface_Name field.
5547 2021-06-15  Bob Duff  <duff@adacore.com>
5549         * sem_cat.adb (Check_Non_Static_Default_Expr): Allow nonstatic
5550         expression in predefined unit with pragma Preelaborate.
5552 2021-06-15  Yannick Moy  <moy@adacore.com>
5554         * doc/gnat_rm/intrinsic_subprograms.rst: More details on shift
5555         operations for signed types. Also add the missing Import and
5556         Convention on the example.
5557         * gnat_rm.texi: Regenerate.
5559 2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5561         * raise-gcc.c: Include <cstdarg> instead of <stdarg.h> in C++.
5562         Include <stdbool.h> and unconditionally <stdlib.h> in C.
5564 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5566         * sem_util.ads (Find_Overlaid_Entity): Simplify comment for
5567         spec.
5568         * sem_util.adb (Find_Overlaid_Entity): Remove defensive code
5569         from body.
5571 2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
5573         * argv.c: Add include of <stdlib.h> for the runtime.
5574         (gnat_argv): Change type to char ** and initialize to NULL.
5575         (gnat_envp): Likewise.
5576         * argv-lynxos178-raven-cert.c: Add include of <stdlib.h>.
5577         (gnat_argv): Change type to char ** and initialize to NULL.
5578         (gnat_envp): Likewise.
5580 2021-06-15  Bob Duff  <duff@adacore.com>
5582         * gen_il-gen.adb (Setter_Needs_Parent): Add missing
5583         Then_Actions.  Fix self-contradictory comment.
5584         * exp_util.adb (Insert_Actions): Minor comment improvments.
5586 2021-06-15  Arnaud Charlet  <charlet@adacore.com>
5588         * sem_eval.adb (Eval_Logical_Op, Test_Expression_Is_Foldable):
5589         Add support for folding more "and"/"or" expressions.
5590         * exp_util.adb (Side_Effect_Free): Fix handling of membership
5591         tests.
5593 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5595         * sem_res.adb (Resolve_Actual): Replace repeated calls to
5596         "Etype (F)" with references to "F_Typ", which keeps the results
5597         of exactly that call.
5599 2021-06-15  Bob Duff  <duff@adacore.com>
5601         * gen_il-gen.adb (To_Bit_Offset): Use 'Base to avoid overflow in
5602         computations in Last_Bit when Offset = 'Last.
5603         (Choose_Offset): Give a better error message when we run out of
5604         fields.  In particular, point out that
5605         Gen_IL.Internals.Bit_Offset'Last needs to be increased.
5607 2021-06-15  Bob Duff  <duff@adacore.com>
5609         * atree.ads, einfo-utils.ads, einfo-utils.adb, fe.h, gen_il.adb,
5610         gen_il.ads, gen_il-gen-gen_entities.adb,
5611         gen_il-gen-gen_nodes.adb, sem_ch12.adb, sem_ch3.adb,
5612         sem_util.adb, sinfo-utils.ads, treepr.adb, types.ads: Clean up
5613         ??? comments and other comments.
5614         * atree.adb: Clean up ??? comments and other comments.
5615         (Validate_Node): Fix bug: "Off_0 (N) < Off_L (N)"
5616         should be "Off_0 (N) <= Off_L (N)".
5617         * gen_il-gen.adb, gen_il-gen.ads: Clean up ???
5618         comments and other comments.  Add support for getter-specific
5619         and setter-specific preconditions.  Detect the error of putting
5620         a field in the wrong subrange.  Misc cleanup.
5621         (Node_Field vs. Entity_Field): Clean up Nmake.  Improve
5622         comments.
5623         * gen_il-utils.ads: Misc cleanup. Move...
5624         * gen_il-internals.ads: ... here.
5625         * gen_il-utils.adb: Misc cleanup. Move...
5626         * gen_il-internals.adb: ... here.
5627         * gen_il-fields.ads: Move Was_Default_Init_Box_Association,
5628         which was in the wrong subrange.  Add comments.  Misc cleanup.
5629         * gen_il-types.ads: Add Named_Access_Kind.
5630         * sinfo-cn.adb: Clean up ??? comments and other comments.
5631         Remove redundant assertions.
5632         * einfo.ads, sinfo.ads: Clean up ??? comments and other
5633         comments.  Remove all the comments indicating field offsets.
5634         These are obsolete now that Gen_IL computes the offsets
5635         automatically.
5637 2021-06-15  Arnaud Charlet  <charlet@adacore.com>
5639         * einfo.ads, errout.adb, errout.ads, exp_aggr.adb, exp_ch5.adb,
5640         exp_ch6.adb, exp_ch8.adb, exp_ch9.adb, exp_imgv.adb,
5641         exp_put_image.adb, fe.h, impunit.adb, impunit.ads,
5642         libgnat/a-cobove.ads, libgnat/a-convec.ads, opt.ads,
5643         par-ch12.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
5644         par-ch6.adb, par-prag.adb, par-util.adb, scans.ads, scng.adb,
5645         sem_aggr.adb, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
5646         sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
5647         sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb,
5648         sem_res.adb, sem_type.adb, sem_util.adb, sem_util.ads,
5649         sinfo.ads, snames.ads-tmpl, sprint.adb, switch-c.adb, usage.adb,
5650         doc/gnat_ugn/building_executable_programs_with_gnat.rst,
5651         doc/gnat_rm/implementation_defined_aspects.rst,
5652         gcc-interface/trans.c: Update all references to Ada 2020 to Ada
5653         2022. Rename pragma Ada_2020 to Ada_2022.  Update documentation
5654         accordingly.
5655         * gnat_ugn.texi, gnat_rm.texi: Regenerate.
5657 2021-06-15  Steve Baird  <baird@adacore.com>
5659         * sem_util.adb (Gather_Components): Factor the test that was
5660         already being used to govern emitting a pre-Ada_2020 error
5661         message into an expression function,
5662         OK_Scope_For_Discrim_Value_Error_Messages. Call that new
5663         function in two places: the point where the same test was being
5664         performed previously, and in governing emission of a newer
5665         Ada_2020 error message. In both cases, the out-mode parameter
5666         Gather_Components.Report_Errors is set to True even if no error
5667         messages are generated within Gather_Components.
5668         * sem_util.ads: Correct a comment.
5670 2021-06-15  Richard Kenner  <kenner@adacore.com>
5672         * sem_ch3.adb (Array_Type_Declaration, Build_Derived_Type):
5673         Reinitialize Stored_Constraint when needed.
5674         (Set_Modular_Size): Likewise.
5675         * atree.adb: (Check_Vanishing_Fields): Add node id to debugging
5676         information.
5678 2021-06-15  Bob Duff  <duff@adacore.com>
5680         * sem_util.adb (Propagate_Invariant_Attributes): Call
5681         Set_Has_Own_Invariants on the base type, because these are
5682         Base_Type_Only. The problem is that the base type of a type is
5683         indeed a base type when Set_Base_Type is called, but then the
5684         type is mutated into a subtype in rare cases.
5685         * atree.ads, atree.adb (Is_Entity): Export. Correct subtype of
5686         parameter in body.
5687         * gen_il-gen.adb: Improve getters so that "Pre => ..." can refer
5688         to the value of the field. Put Warnings (Off) on some with
5689         clauses that are not currently used, but might be used by such
5690         Pre's.
5692 2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
5694         * sem_ch3.adb (Access_Type_Declaration): Add comments to explain
5695         the ordering of Mutate_Kind and Set_Directly_Designated_Type;
5696         remove temporary setting of Ekind to E_Access_Type for building
5697         _master objects, since now the Ekind is already set to its final
5698         value. Move repeated code into Setup_Access_Type routine and use
5699         it so that Process_Subtype is executed before mutating the kind
5700         of the type entity.
5701         * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
5702         Directly_Designated_Type from E_Void, E_Private_Record,
5703         E_Limited_Private_Type and Incomplete_Kind; now it only belongs
5704         to Access_Kind entities.
5705         * sem_util.adb: Minor reformatting.
5707 2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
5709         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add PAT
5710         local constant and use it throughout.  If it is set, use a ref-all
5711         pointer type for the pointer-to-array field of the fat pointer type.
5712         <E_Array_Subtype>: Add PAT local constant and use it throughout.
5714 2021-05-26  Jakub Jelinek  <jakub@redhat.com>
5716         * init.c (__gnat_error_handler): Remove register keyword.
5718 2021-05-25  Martin Liska  <mliska@suse.cz>
5720         * doc/share/conf.py: Fix Sphinx 4.0.x error.
5722 2021-05-21  Piotr Trojanek  <trojanek@adacore.com>
5724         * gcc-interface/trans.c (Raise_Error_to_gnu): Add an assertion.
5726 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5728         * gcc-interface/utils.c (gnat_pushdecl): Fix typo in comment.
5729         * gcc-interface/utils2.c (build_simple_component_ref): Build NULL_EXPR
5730         if the offset of the field has overflowed.
5731         (build_component_ref): Add gigi checking assertion that the reference
5732         has been built and replace the discriminant check by a Program_Error.
5734 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5736         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_Integer>: Do
5737         not pass default value in call to create_var_decl.
5738         <E_Variable>: Likewise.
5739         <E_Record_Subtype>: Both pass true for const_flag and false for
5740         const_decl_allowed_p in call to create_var_decl.
5741         Small tweaks in the generic record type case.
5742         (elaborate_expression): Rename need_debug into need_for_debug and
5743         adjust throughout.
5744         (elaborate_expression_1): Likewise.  Pass Needs_Debug_Info instead
5745         of need_for_debug in call to create_var_decl.
5746         (elaborate_expression_2): Likewise.
5747         * gcc-interface/utils.c (maybe_pad_type): Pass false for
5748         const_decl_allowed_p in call to create_var_decl.
5750 2021-05-21  Ghjuvan Lacambre  <lacambre@adacore.com>
5752         * gcc-interface/decl.c (gnat_to_gnu_entity): Replace ? with ??.
5753         (gnat_to_gnu_param): Likewise.
5754         (gnat_to_gnu_subprog_type): Likewise.
5755         (warn_on_field_placement): Likewise.
5756         (intrin_arglists_compatible_p): Likewise.
5757         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
5758         (gnat_to_gnu): Likewise.
5759         (validate_unchecked_conversion): Likewise.
5760         * gcc-interface/utils.c (maybe_pad_type): Likewise.
5762 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5764         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Process
5765         the implementation type of a packed type implemented specially.
5767 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5769         * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate
5770         the Is_Pure flag into the "pure" attribute of GNU C.
5772 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5774         * gcc-interface/trans.c (Call_to_gnu): Restrict previous change
5775         to bitfields whose size is not equal to the type size.
5776         (gnat_to_gnu): Likewise.
5778 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5780         * gcc-interface/trans.c (Call_to_gnu): Minor tweaks.
5781         (gnat_to_gnu_external): Likewise.
5782         (Raise_Error_to_gnu): Return an empty statement list if there is a
5783         condition and it is always false.
5784         (gnat_to_gnu): Do not check for elaboration code a priori during the
5785         translation but a posteriori instead.
5787 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5789         * gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>:
5790         Put a SLOC on the assignment from the return value to the return
5791         object in the copy-in/copy-out case.
5793 2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5795         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Replace
5796         CEIL_DIV_EXPR with EXACT_DIV_EXPR.
5797         * gcc-interface/misc.c (gnat_type_max_size): Likewise.
5798         * gcc-interface/utils.c (maybe_pad_type): Likewise.
5799         (finish_record_type): Likewise.  And always compute the unit size.
5801 2021-05-14  Martin Liska  <mliska@suse.cz>
5803         * doc/Makefile: Add gnat-style target.
5804         * doc/share/conf.py: Likewise.
5805         * doc/gnat-style.rst: New file.
5807 2021-05-12  Bob Duff  <duff@adacore.com>
5809         PR ada/100564
5810         * atree.adb (Change_Node): Do not call Zero_Slots on a Node_Id
5811         when the Nkind has not yet been set; call the other Zero_Slots
5812         that takes a range of slot offsets.  Call the new Mutate_Kind
5813         that takes an Old_Size, for the same reason -- the size cannot
5814         be computed without the Nkind.
5815         (Mutate_Nkind): New function that allows specifying the Old_Size.
5816         (Size_In_Slots): Assert that the Nkind has proper (nonzero) value.
5817         * atree.ads: Minor reformatting.
5819 2021-05-12  Martin Liska  <mliska@suse.cz>
5821         * doc/share/conf.py: Do not use binary mode.
5822         Do not use u' literals as Python3 uses unicode by default.
5824 2021-05-11  Martin Liska  <mliska@suse.cz>
5826         * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): Use builtins
5827         from COROUTINES.
5828         (BUILT_IN_UNLIKELY): Likewise.
5830 2021-05-11  Eric Botcazou  <ebotcazou@adacore.com>
5832         * gnatvsn.adb (Version_String): Rename to...
5833         (C_Version_String): ...this.
5834         (Gnat_Version_String): Adjust to above renaming.
5835         * version.c : Fix formatting glitches.
5837 2021-05-10  Martin Liska  <mliska@suse.cz>
5839         PR bootstrap/100506
5840         * Make-generated.in: Replace version.c with ada/version.c.
5841         * gcc-interface/Make-lang.in: Add version.o to GNAT1_C_OBJS and
5842         GNATBIND_OBJS.
5843         * gcc-interface/Makefile.in: Replace version.c with ada/version.c.
5844         Add version.o to TOOLS_LIBS.
5845         * gnatvsn.adb: Replace version_string with gnat_version_string.
5846         * version.c: New file.
5848 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
5850         * einfo-utils.ads (Classification Attributes): Add pragma Inline.
5851         (Synthesized Attribute Functions): Move pragma Inline around.
5852         (Type Representation Attribute Predicates): Likewise.
5853         (Field Initialization Routines): Likewise.
5854         (Miscellaneous Subprogram): Likewise.
5856 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
5858         * atree.ads (Slot): Remove pragma Provide_Shift_Operators.
5859         (Shift_Left): New intrinsic function.
5860         (Shift_Right): Likewise.
5861         * atree.adb (Get_1_Bit_Val): Use Natural instead of Integer.
5862         (Get_2_Bit_Val): Likewise.
5863         (Get_4_Bit_Val): Likewise.
5864         (Get_8_Bit_Val): Likewise.
5865         (Set_1_Bit_Val): Likewise.
5866         (Set_2_Bit_Val): Likewise.
5867         (Set_4_Bit_Val): Likewise.
5868         (Set_8_Bit_Val): Likewise.
5870 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
5872         * atree.adb (Zero_Slots): Remove obsolete comment and add header.
5874 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
5876         * atree.h (Get_32_Bit_Field): Tidy up.
5877         (Get_32_Bit_Field_With_Default): Likewise.
5879 2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
5881         * Make-generated.in (do_gen_il): Replace with...
5882         (ada/stamp-gen_il): ...this.  Do not copy files into generated/.
5884 2021-05-10  Martin Liska  <mliska@suse.cz>
5886         * gcc-interface/utils.c (def_builtin_1): Use startswith
5887         function instead of strncmp.
5889 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
5891         * einfo-utils.adb (Is_Access_Object_Type): Use
5892         Directly_Designated_Type.
5893         (Is_Access_Subprogram_Type): Use Directly_Designated_Type.
5894         (Set_Convention): Use plain Ekind.
5895         * gen_il-gen-gen_entities.adb (Type_Kind): Use plain Ekind.
5896         * sem_ch3.adb (Access_Type_Declaration): When seeing an illegal
5897         completion with an access type don't attempt to decorate the
5898         completion entity; previously the entity had its Ekind set to
5899         E_General_Access_Type or E_Access_Type, but its Designated_Type
5900         was empty, which caused a crash in freezing. (Actually, the
5901         error recovery in the surrounding context is still incomplete,
5902         e.g. we will crash when the illegal completion is an access to
5903         an unknown identifier).
5905 2021-05-07  Bob Duff  <duff@adacore.com>
5907         * par_sco.adb: Align with/use clauses.
5908         (Traverse_Declarations_Or_Statements): Minor comment fix.
5909         * aspects.adb, atree.adb, atree.ads, checks.adb, comperr.adb,
5910         contracts.adb, cstand.adb, debug_a.adb, einfo-utils.adb,
5911         errout.adb, eval_fat.adb, exp_aggr.adb, expander.adb,
5912         exp_atag.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb,
5913         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb,
5914         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb,
5915         exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_disp.adb,
5916         exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb,
5917         exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb,
5918         exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb,
5919         exp_unst.adb, exp_util.adb, exp_util.ads, freeze.adb,
5920         frontend.adb, ghost.adb, gnat1drv.adb, gnat_cuda.adb,
5921         impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb,
5922         lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb,
5923         lib-xref-spark_specific.adb, live.adb, nlists.adb, par.adb,
5924         par-ch11.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, pprint.adb,
5925         repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb,
5926         sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb,
5927         sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb,
5928         sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
5929         sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
5930         sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb,
5931         sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb,
5932         sem_prag.adb, sem_res.adb, sem_scil.adb, sem_smem.adb,
5933         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
5934         sinfo-cn.adb, sinfo-utils.ads, sinput.adb, sinput-l.adb,
5935         sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads,
5936         treepr.adb, uname.adb: Align with/use clauses.
5938 2021-05-07  Bob Duff  <duff@adacore.com>
5940         * atree.ads, atree.adb, gen_il-gen.ads: Fix comments and clean
5941         up ???  marks.  Rename Set_Ekind to be Mutate_Ekind.
5942         * einfo.ads, sinfo.ads: Likewise.  Change "definitive
5943         definition" to "official definition", because the former sounds
5944         redundant.  Rename Set_Ekind to be Mutate_Ekind.
5945         * checks.adb, contracts.adb, cstand.adb, exp_aggr.adb,
5946         exp_attr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch5.adb,
5947         exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_disp.adb,
5948         exp_dist.adb, exp_imgv.adb, exp_intr.adb, exp_prag.adb,
5949         exp_unst.adb, exp_util.adb, gen_il-gen.adb, inline.adb,
5950         lib-writ.adb, lib-xref-spark_specific.adb, sem_aggr.adb,
5951         sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
5952         sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
5953         sem_ch9.adb, sem_dist.adb, sem_elab.adb, sem_prag.adb,
5954         sem_util.adb: Rename Set_Ekind to be Mutate_Ekind.
5956 2021-05-07  Bob Duff  <duff@adacore.com>
5958         * atree.adb: Move nnd-related code from here, and leave a
5959         comment pointing to sinfo-utils.adb.
5960         * sinfo-utils.ads, sinfo-utils.adb: Move nnd-related code to
5961         here.
5963 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
5965         * einfo.ads: Move Corresponding_Protected_Entry...
5966         * sinfo.ads: ... here.
5967         * exp_ch9.adb (Build_Entry_Body): Link procedure and entry
5968         bodies.
5969         * gen_il-fields.ads (Opt_Field_Enum): Add
5970         Corresponding_Entry_Body field to nodes; remove
5971         Corresponding_Protected_Entry field from entities.
5972         * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
5973         Corresponding_Protected_Entry field from E_Void and
5974         E_Subprogram_Body.
5975         * gen_il-gen-gen_nodes.adb (Gen_Nodes): Add
5976         Corresponding_Entry_Body field to N_Subprogram_Body.
5977         * sem_ch6.adb (Analyze_Subprogram_Specification): Remove
5978         manipulation of Ekind and Corresponding_Protected_Entry added as
5979         part of the support for varsize-nodes.
5981 2021-05-07  Bob Duff  <duff@adacore.com>
5983         * sem_ch3.adb (Process_Incomplete_Dependents): Reset
5984         Private_Dependents field to zero before calling Set_Ekind.  Also
5985         move Set_Etype to after Set_Ekind, because it's always best to
5986         set the Ekind as early as possible.
5987         * atree.adb: Improve debugging facilities for vanishing fields.
5989 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
5991         * atree.ads (Slot): Change to modular type.
5992         (Slot_1_Bit): Delete.
5993         (Slot_2_Bit): Likewise.
5994         (Slot_4_Bit): Likewise.
5995         (Slot_8_Bit): Likewise.
5996         (Slot_32_Bit): Likewise.
5997         * atree.adb (Get_1_Bit_Val): Adjust to above change.
5998         (Get_2_Bit_Val): Likewise.
5999         (Get_4_Bit_Val): Likewise.
6000         (Get_8_Bit_Val): Likewise.
6001         (Get_32_Bit_Val): Likewise.
6002         (Set_1_Bit_Val): Likewise.
6003         (Set_2_Bit_Val): Likewise.
6004         (Set_4_Bit_Val): Likewise.
6005         (Set_8_Bit_Val): Likewise.
6006         (Set_32_Bit_Val): Likewise.
6007         (Print_Atree_Info): Likewise.
6008         (Zero): Likewise.
6009         * atree.h (Get_1_Bit_Field): Likewise.
6010         (Get_2_Bit_Field): Likewise.
6011         (Get_4_Bit_Field): Likewise.
6012         (Get_8_Bit_Field): Likewise.
6013         (Get_32_Bit_Field): Likewise.
6014         (Get_32_Bit_Field_With_Default): Likewise.
6015         * types.h (slot_1_bit): Delete.
6016         (slot_2_bit): Likewise.
6017         (slot_4_bit): Likewise.
6018         (slot_8_bit): Likewise.
6019         (slot_32_bit): Likewise.
6020         (any_slot): Change to unsigned int.
6021         (Slot_Size): New macro.
6023 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6025         * gcc-interface/gigi.h (enum standard_datatype): Remove
6026         ADT_exception_data_name_id and add ADT_not_handled_by_others_name_id.
6027         (exception_data_name_id): Delete.
6028         (not_handled_by_others_name_id): New macro.
6029         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Exception>: Remove old
6030         kludge for exceptions.
6031         <E_Record_Type>: Likewise.
6032         (gnat_to_gnu_field): Force character type on Not_Handled_By_Others.
6033         * gcc-interface/misc.c (gnat_argv): Change type to char **.
6034         (gnat_init_options): Adjust accordingly.
6035         * gcc-interface/trans.c (gigi): Set not_handled_by_others_name_id
6036         and use it to set not_handled_by_others_decl.
6037         (Exception_Handler_to_gnu_fe_sjlj): Fix indentation.
6039 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6041         * raise-gcc.c (__gnat_others_value): Remove const qualifier.
6042         (__gnat_all_others_value): Likewise.
6043         (__gnat_unhandled_others_value): Likewise.
6044         (GNAT_OTHERS): Cast to Exception_Id instead of _Unwind_Ptr.
6045         (GNAT_ALL_OTHERS): Likewise.
6046         (GNAT_UNHANDLED_OTHERS): Likewise.
6047         (Is_Handled_By_Others): Change parameter type to Exception_Id.
6048         (Language_For): Likewise.
6049         (Foreign_Data_For): Likewise.
6050         (is_handled_by): Likewise.  Adjust throughout, remove redundant
6051         line and fix indentation.
6052         * libgnat/a-exexpr.adb (Is_Handled_By_Others): Remove pragma and
6053         useless qualification from parameter type.
6054         (Foreign_Data_For): Likewise.
6055         (Language_For): Likewise.
6057 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6059         * libgnat/s-stalib.ads (Exception_Data): Mark components as aliased.
6060         * stand.ads (Standard_Entity_Type): Enhance comments.
6061         * cstand.adb (Make_Component): Rename into...
6062         (Make_Aliased_Component): ...this; set Is_Aliased and Is_Independent
6063         flags on the component.
6064         (Create_Standard): Adjust the types of the component of the record
6065         Standard_Exception_Type and mark them as aliased.
6066         * exp_ch11.adb (Expand_N_Exception_Declaration): Use OK
6067         conversion to Standard_Address for Full_Name component, except
6068         in CodePeer_Mode (set it to 0).
6069         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Likewise.
6070         * raise.h (struct Exception_Data): Change the type of Full_Name,
6071         HTable_Ptr and Foreign_Data.
6073 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6075         * atree.h (Slots_Ptr): Change pointed-to type to any_slot.
6076         * fe.h (Get_RT_Exception_Name): Change type of parameter.
6077         * namet.ads (Name_Entry): Mark non-boolean components as aliased,
6078         reorder the boolean components and add an explicit Spare component.
6079         * namet.adb (Name_Enter): Adjust aggregate accordingly.
6080         (Name_Find): Likewise.
6081         (Reinitialize): Likewise.
6082         * namet.h (struct Name_Entry): Adjust accordingly.
6083         (Names_Ptr): Use correct type.
6084         (Name_Chars_Ptr): Likewise.
6085         (Get_Name_String): Fix declaration and adjust to above changes.
6086         * types.ads (RT_Exception_Code): Add pragma Convention C.
6087         * types.h (Column_Number_Type): Fix original type.
6088         (slot): Rename union type to...
6089         (any_slot): ...this and adjust assertion accordingly.
6090         (RT_Exception_Code): New enumeration type.
6091         * uintp.ads (Uint_Entry): Mark components as aliased.
6092         * uintp.h (Uints_Ptr):  Use correct type.
6093         (Udigits_Ptr): Likewise.
6094         * gcc-interface/gigi.h (gigi): Adjust name and type of parameter.
6095         * gcc-interface/cuintp.c (UI_To_gnu): Adjust references to Uints_Ptr
6096         and Udigits_Ptr.
6097         * gcc-interface/trans.c (Slots_Ptr): Adjust pointed-to type.
6098         (gigi): Adjust type of parameter.
6099         (build_raise_check): Add cast in call to Get_RT_Exception_Name.
6101 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6103         * init.c (__gnat_raise_program_error): Fix parameter type.
6104         (Raise_From_Signal_Handler): Likewise and mark as no-return.
6105         * raise-gcc.c (__gnat_others_value): Fix type.
6106         (__gnat_all_others_value): Likewise.
6107         (__gnat_unhandled_others_value): Likewise.
6108         * seh_init.c (Raise_From_Signal_Handler): Fix parameter type.
6109         * libgnat/a-except.ads (Raise_From_Signal_Handler): Use convention C
6110         and new symbol name, move declaration to...
6111         (Raise_From_Controlled_Operation): Minor tweak.
6112         * libgnat/a-except.adb (Raise_From_Signal_Handler): ...here.
6113         * libgnat/a-exexpr.adb (bool): New C compatible boolean type.
6114         (Is_Handled_By_Others): Use it as return type for the function.
6116 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6118         * errout.ads (Set_Identifier_Casing): Add pragma Convention C.
6119         * eval_fat.ads (Rounding_Mode): Likewise.
6120         (Machine): Add WARNING comment line.
6121         * exp_code.ads (Clobber_Get_Next): Add pragma Convention C.
6122         * fe.h (Compiler_Abort): Fix return type.
6123         (Set_Identifier_Casing): Change type of parameters.
6124         (Clobber_Get_Next): Change return type.
6125         * gcc-interface/trans.c (gnat_to_gnu) <N_Code_Statement>: Add cast.
6127 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6129         * atree.h (Parent): Remove duplicate declaration.
6130         (Get_1_Bit_Field): Also use INLINE specifier in the declaration,
6131         fix formatting and use gcc_unreachable for the default case.
6132         (Get_2_Bit_Field): Likewise.
6133         (Get_4_Bit_Field): Likewise.
6134         (Get_8_Bit_Field): Likewise.
6135         (Get_32_Bit_Field): Likewise.
6136         (Get_32_Bit_Field_With_Default): Likewise.
6138 2021-05-07  Bob Duff  <duff@adacore.com>
6140         * atree.ads, atree.adb: Major rewrite to support variable-sized
6141         node types. Add pragmas Suppress and Assertion_Policy.  We now
6142         have an extra level of indirection: Node_Offsets is a table
6143         mapping Node_Ids to the offset of the start of each node in
6144         Slots. Slots is a table containing one or more contiguous slots
6145         for each node. Each slot is a 32-bit unchecked union that can
6146         contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits.
6147         The old low-level getters and setters (e.g.  Flag123) are
6148         removed.
6149         * gen_il-fields.ads, gen_il-gen-gen_entities.adb,
6150         gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads,
6151         gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb,
6152         gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program
6153         that generates various Ada and C++ files. In particular, the
6154         following files are generated by gen_il: einfo-entities.adb
6155         einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads,
6156         seinfo.ads, seinfo_tables.adb, seinfo_tables.ads,
6157         sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h.
6158         * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb,
6159         einfo-utils.ads: New files containing code that needs to refer
6160         to Sinfo.Nodes and Einfo.Entities. This code is mostly moved
6161         here from Sinfo and Einfo to break cycles.
6162         * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi,
6163         instead of nodes_ptr and flags_ptr. The Nodes and Flags tables
6164         no longer exist. (Note that gigi never used the Flags table.)
6165         * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier,
6166         Change_Character_Literal_To_Defining_Character_Literal,
6167         Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into
6168         an IN formal.
6169         * sinfo-cn.adb: Update.  Add assertions, which can be removed at
6170         some point.  Rewrite to use higher-level facilities.  Make sure
6171         vanishing fields are zeroed out.  Add with/use for new packages.
6172         * sem_util.adb: Remove "Assert(False)" immediately followed by
6173         "raise Program_Error".  Use higher-level facilities such as
6174         Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
6175         routines that no longer exist. Use Get_Comes_From_Source_Default
6176         instead of Default_Node.Comes_From_Source (Default_Node no
6177         longer exists).  Use Set_Basic_Convention instead of
6178         Basic_Set_Convention.  Add with/use for new packages.
6179         * sem_util.ads: The Convention field had getter Convention and
6180         setter Basic_Set_Convention. Make that more uniform: there is
6181         now a field called Basic_Convention, with Basic_Convention and
6182         Set_Basic_Convention as getter/setter, and write Convention and
6183         Set_Convention here.
6184         * nlists.adb: Rewrite to use abstractions, rather then depending
6185         on low-level implementation details of Atree. Necessary because
6186         those details have changed. Add with/use for new packages.
6187         * sem_ch12.adb: Use higher-level facilities such as
6188         Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
6189         routines that no longer exist. Add with/use for new packages.
6190         * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb,
6191         sem_prag.adb, sem_warn.adb: Change expanded names to refer to
6192         the new packages for things that moved. Add with/use for new
6193         packages.
6194         * sem_ch3.adb: Likewise. Reinitialize vanishing fields.
6195         * exp_disp.adb: Likewise. Remove failing assertion.
6196         * sinfo.ads, einfo.ads: Remove code that is now generated into
6197         Sinfo.Nodes and Einfo.Entities.
6198         * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;".
6199         We should delete these at some point, but No_Body makes make
6200         files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities,
6201         Sinfo.Utils, and Einfo.Utils. Some is no longer necessary.
6202         * treepr.adb: Rewrite to use new tables. We no longer need
6203         treeprs.ads.
6204         * treepr.ads: Add comment.
6205         * types.ads: Move types Component_Alignment_Kind and
6206         Float_Rep_Kind here.
6207         * atree.h: Major update to match atree.ads changes.  Add slot
6208         types, for use by getters/setters.
6209         * types.h: Move types Component_Alignment_Kind and
6210         Float_Rep_Kind here.
6211         * fe.h: Rewrite to deal with code that has changed or moved from
6212         Atree, Sinfo, Einfo.
6213         * nlists.h: Move some code to fe.h.
6214         * alloc.ads: Split Nodes_* constants into Node_Offsets and
6215         Slots, because Atree has two separate tables.  Increase values.
6216         Remove Nodes_Release_Threshold. Improve comment.
6217         * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N
6218         switches.  Add with/use for new packages.
6219         * opt.ads: Minor comment fix.
6220         * aspects.adb, checks.adb, comperr.adb, contracts.adb,
6221         cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb,
6222         exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb,
6223         exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
6224         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
6225         exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb,
6226         exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb,
6227         exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb,
6228         exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb,
6229         exp_util.ads, expander.adb, freeze.adb, frontend.adb,
6230         get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb,
6231         itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb,
6232         lib-writ.adb, lib-xref.adb, lib-xref.ads,
6233         lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb,
6234         pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb,
6235         scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb,
6236         sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb,
6237         sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb,
6238         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb,
6239         sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb,
6240         sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb,
6241         sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb,
6242         sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb,
6243         tbuild.ads, uname.adb: Add with/use for new packages.
6244         * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease
6245         bootstrap.
6246         * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File,
6247         Create_New_File): Create file in binary format, to avoid
6248         introducing unwanted text conversions on Windows. Simplify to
6249         ease bootstrap.
6250         * libgnat/a-stteou__bootstrap.ads: New.
6251         * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb,
6252         xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete.
6253         * Make-generated.in: Build and run the gen_il program to
6254         generate files. The files are generated in the ada/gen_il
6255         subdirectory, and then moved up to ada.  We rely on gnatmake (as
6256         opposed to make) to build the gen_il program efficiently (i.e.
6257         don't do anything if the sources didn't change).
6258         * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU.
6259         (GNATMAKE_OBJS): Add new object files.
6260         (GENERATED_FILES_FOR_TOOLS): New variable.
6261         (../stamp-tools): Create a link for all
6262         GENERATED_FILES_FOR_TOOLS.
6263         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object
6264         files.  Remove ada/treeprs.o.
6265         (GNATBIND_OBJS): Add new object files.
6266         (ada.mostlyclean): Remove ada/sdefault.adb and add
6267         ada/stamp-gen_il.
6268         (ada.maintainer-clean): Remove ada/treeprs.ads.
6269         (update-sources): Remove obsolete target.
6270         (ada_generated_files): Rename to...
6271         (ADA_GENERATED_FILES): ... this.  Add new source files.  Add
6272         comment.
6273         * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and
6274         Flags_ptr.  Add Node_Offsets_Ptr and Slots_Ptr, which point to
6275         the corresponding tables in Atree.
6276         * gcc-interface/gigi.h (gigi): New parameters for initializing
6277         Node_Offsets_Ptr and Slots_Ptr.
6278         * gcc-interface/decl.c: Numeric_Kind,
6279         Discrete_Or_Fixed_Point_Kind, and Record_Kind were
6280         nonhierarchical, and were therefore removed for simplicity.
6281         Replace uses with calls to Is_In_... functions.
6283 2021-05-07  Ed Schonberg  <schonberg@adacore.com>
6285         * exp_ch4.adb (Unconstrained_UU_In_Component_Declaration): A
6286         component declaration whose subtype indication is an entity name
6287         without an explicit constraint is an Unchecked_Union type only
6288         if the entity has an unconstrained nominal subtype (record type
6289         or private type) whose parent type is an Unchecked_Union.
6291 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
6293         * sem_res.adb (Flag_Object): Ignore prefixes of attribute
6294         Address.
6296 2021-05-07  Yannick Moy  <moy@adacore.com>
6298         * opt.ads: Update comment for Warn_On_Suspicious_Modulus_Value.
6299         * sem_res.adb (Resolve_Unary_Op): Generate warning.
6300         * usage.adb: Refine doc for -gnatw.m/M switch.
6301         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
6302         Update doc on -gnatw.m switch.
6303         * gnat_ugn.texi: Regenerate.
6305 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
6307         * sem_res.adb (Flag_Object): Replace chained IF with a CASE;
6308         remove repeated calls to Entity; do not traverse into
6309         N_Identifier and N_Expanded_Name, because only need to examine
6310         their Entity field anyway.
6312 2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
6314         * sem_ch4.adb (Analyze_Call): Remove call to End_Interp_List.
6315         (Process_Overloaded_Indexed_Component): Remove call to
6316         End_Interp_List.
6317         * sem_util.adb (Insert_Explicit_Dereference): Remove call to
6318         End_Interp_List.
6319         * sem_type.ads (End_Interp_List): Remove.
6320         * sem_type.adb (Add_Entry): The guard against duplicate entries
6321         is now checked before other conditions, so that EXIT statements
6322         do not bypass this guard.
6323         (End_Interp_List): Remove.
6325 2021-05-07  Ed Schonberg  <schonberg@adacore.com>
6327         * exp_util.adb (Remove_Init_Call): If a simple initialization
6328         call is present, and the next statement is an initialization
6329         block (that contains a call to a Deep_ Initialize routine),
6330         remove the block as well, and insert the first initialization
6331         call in it, in case it is needed for later relocation.
6333 2021-05-07  Gary Dismukes  <dismukes@adacore.com>
6335         * errout.ads (Size_Too_Small_Message): Remove low-value ???
6336         comment.
6337         * exp_util.ads: Remove ??? in part of overall package comments
6338         and restructure comment to clarify.
6339         (Duplicate_Subexpr): Remove ??? comment that seems unnecessary.
6340         * sem_ch3.ads (Analyze_Declarations): Remove two parenthesized
6341         ??? comments and add more description of the procedure's
6342         actions.
6343         (Get_Discriminant_Value): Remove ??? comment requesting more
6344         documentation, expanding description of the function's actions.
6345         * sem_disp.ads (Check_Operation_From_Incomplete_Type): Add more
6346         semantic description of the procedure and remove ??? comment
6347         requesting such.
6348         (Propagate_Tag): Refine comment to indicate meaning of formal
6349         parameters and generally improve the spec comment (and remove
6350         ??? comment asking about the parameters).
6352 2021-05-07  Arnaud Charlet  <charlet@adacore.com>
6354         * sem_eval.adb (Fold_Shift): Fix computation of Shift_Left
6355         resulting in negative signed values.
6357 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6359         * sem_util.ads (Defining_Entity): Remove Empty_On_Errors parameter.
6360         (Defining_Entity_Or_Empty): New function.
6361         * sem_util.adb (Defining_Entity): Move bulk of implementation to...
6362         (Defining_Entity_Or_Empty): ...here.  Do not raise Program_Error.
6363         (Innermost_Master_Scope_Depth): Call Defining_Entity_Or_Empty.
6365 2021-05-07  Justin Squirek  <squirek@adacore.com>
6367         * aspects.ads: Add entries to register
6368         Aspect_No_Controlled_Parts.
6369         * freeze.adb (Check_No_Controlled_Parts_Violations): Added to
6370         check requirements of aspect No_Controlled_Parts after a type
6371         has been frozen.
6372         (Freeze_Entity): Add call to
6373         Check_No_Controlled_Parts_Violations.
6374         (Find_Aspect_No_Controlled_Parts): Created to obtain the aspect
6375         specification for No_Controlled_Parts on a given type when
6376         present.
6377         (Find_Aspect_No_Controlled_Parts_Value): Protect against invalid
6378         value.
6379         (Has_Aspect_No_Controlled_Parts): Created as a prediate function
6380         to check if No_Controlled_Parts has been specified on a type for
6381         Get_Anacestor_Types_With_Specification.
6382         (Get_Aspect_No_Controlled_Parts_Value): Created to obtain the
6383         value of the aspect No_Controlled_Parts when specified on a
6384         given type.
6385         (Get_Generic_Formal_Types_In_Hierarchy): Created to collect
6386         formal types in a given type's hierarchy.
6387         (Get_Types_With_Aspect_In_Hierarchy): Created to collect types
6388         in a given type's hierarchy with No_Controlled_Parts specified.
6389         * sem_ch13.adb (Analyze_One_Aspect): Add processing for
6390         No_Controlled_Parts, and fix error in check for allowed pragmas
6391         for formal types.
6392         (Check_Expr_Is_OK_Static_Expression): Created to enforce
6393         checking of static expressions in the same vein as
6394         Analyze_Pragma.Check_Expr_OK_Static_Expression.
6395         * sem_util.adb (Collect_Types_In_Hierarchy): Created to collect
6396         types in a given type's hierarchy that match a given predicate
6397         function.
6398         * sem_util.ads: Fix typo.
6399         * snames.ads-tmpl: Add entry for No_Controlled_Parts.
6401 2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
6403         * libgnat/s-fatgen.adb (Scaling): Raise Constraint_Error in the
6404         overflow case when T'Machine_Overflows is True.
6406 2021-05-07  Bob Duff  <duff@adacore.com>
6408         * libgnat/a-conhel.adb (TC_Check): Move the Assert into the
6409         'if'.
6411 2021-05-07  Frederic Konrad  <konrad@adacore.com>
6413         * sigtramp-vxworks-target.inc: Use a local label for the TOC.
6415 2021-05-07  Claire Dross  <dross@adacore.com>
6417         * exp_ch4.adb (Has_Inferable_Discriminants): Moved to Sem_Util.
6418         * sem_util.ads, sem_util.adb (Has_Inferable_Discriminants):
6419         Moved from Exp_Ch4.
6421 2021-05-07  Ed Schonberg  <schonberg@adacore.com>
6423         * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
6424         Add guard to verify that the enclosing pragma is a precondition.
6426 2021-05-06  Javier Miranda  <miranda@adacore.com>
6428         * exp_disp.adb (Build_Class_Wide_Check): Extending the
6429         functionality of this routine to climb to the ancestors
6430         searching for the enclosing overridden dispatching primitive
6431         that has a class-wide precondition to generate the check.
6433 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6435         * sem_ch3.adb (Constraint_Index): Remove redundant problematic
6436         analysis.
6438 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6440         * exp_unst.adb (Note_Uplevel_Bound): Exclude
6441         E_Enumeration_Literal.
6443 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6445         * exp_ch4.adb (Expand_N_If_Expression):
6446         Apply_Arithmetic_Overflow_Check will not deal with
6447         Then/Else_Actions so skip minimizing overflow checks if any
6448         actions are present.
6450 2021-05-06  Boris Yakobowski  <yakobowski@adacore.com>
6452         * gnat1drv.adb (Adjust_Global_Switches): Simplify logic.
6454 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6456         * libgnat/i-c.ads (bool): New type.
6457         * libgnat/i-cexten.ads, libgnat/i-cexten__128.ads (bool): Now
6458         a subtype of Interfaces.C.bool.
6459         * libgnarl/s-interr__vxworks.adb (Interrupt_Manager): Qualify
6460         False.
6461         * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb,
6462         libgnarl/s-tasini.adb, libgnarl/s-tasren.adb,
6463         libgnarl/s-tassta.adb, libgnarl/s-tpobmu.adb,
6464         libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb: Replace
6465         Assert (False) by Assert (Standard.False).
6467 2021-05-06  Ghjuvan Lacambre  <lacambre@adacore.com>
6469         * make.adb (Compute_Executable): Document parameter.
6471 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6473         * libgnat/s-fatgen.adb (Scaling): Use single handling of
6474         underflow.  Add pragma Annotate.
6476 2021-05-06  Ghjuvan Lacambre  <lacambre@adacore.com>
6478         * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype,
6479         remove redundant checks.
6481 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6483         * sem_res.adb (First_Last_Ref): Simplify "if [condition] then
6484         return True" in "return [condition]".
6485         (Resolve_Range): Remove calls appearing in IF condition from the
6486         THEN statements.
6488 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6490         * sem_case.adb (Missing_Choice): Fix typo in comment.
6491         (Lit_Of): Simplify with Make_Character_Literal.
6492         (Check_Choices): Remove extra spaces in parameter
6493         specifications.
6494         * sem_case.ads: Same reformatting.
6496 2021-05-06  Ed Schonberg  <schonberg@adacore.com>
6498         * exp_aggr.adb (Expand_Array_Aggregate): If the expression in an
6499         Others_Clause has not been analyzed because previous analysis of
6500         the enclosing aggregate showed the clause to be ineffective i.e.
6501         cover a null range, analyze it now to detect a possible type
6502         illegality.
6504 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6506         * libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow.
6508 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6510         * sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a
6511         list member in both branches.
6513 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6515         * libgnat/a-cofove.adb (Insert_Space): Remove hardcoded pragma
6516         Warnings.
6518 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6520         * sem_ch4.adb (Analyze_Selected_Component): Remove explicit call
6521         to Set_Raises_Constraint_Error on statically missing component.
6522         * sem_eval.adb (Eval_Arithmetic_Op): Likewise for static
6523         divisions by integer and real zeros.
6524         * sem_util.adb (Apply_Compile_Time_Constraint_Error): Call
6525         Set_Raises_Constraint_Error before exiting early in GNATprove
6526         mode.
6528 2021-05-06  Justin Squirek  <squirek@adacore.com>
6530         * checks.adb (Make_Discriminant_Constraint_Check): Add check for
6531         null when the type being converted is an access type.
6533 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6535         * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs.
6537 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6539         * osint.adb (Read_Library_Info_From_Full): Cleanup unused
6540         initial value.
6542 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6544         * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.7):
6545         Mention the IEEE standard explicitly.  Use current format names.
6546         Document assumed rounding mode and new features of I/O support.
6547         * gnat_rm.texi: Regenerate.
6549 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6551         * init.c (__gnat_init_float): Use full version on Linux too.
6553 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6555         * libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0
6556         when denormalized numbers are not supported.
6558 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6560         * sem_attr.adb (Check_Enum_Image): Reword comment; add
6561         Check_Enumeration_Maps parameter.  Now this routine combines
6562         both referencing enumeration literals and checking restriction
6563         No_Enumeration_Maps, if required.
6564         (Analyze_Attribute): Remove duplicated code and instead call
6565         Check_Enum_Image.
6567 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6569         * sem_attr.adb (Analyze_Image_Attribute): Remove redundant
6570         condition; add a missing header box.
6572 2021-05-06  Gary Dismukes  <dismukes@adacore.com>
6574         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
6575         mention of underscore and fix grammar error in doc for -gnatd.
6576         * gnat_ugn.texi: Regenerate.
6578 2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6580         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-exponr, s-exnflt
6581         and s-exnlfl.
6582         * exp_ch4.adb (Expand_N_Op_Expon): Use RE_Exn_Float for Short_Float.
6583         * rtsfind.ads (RTU_Id): Add System_Exn_Flt and System_Exn_LFlt.
6584         (RE_Id): Adjust entries for RE_Exn_Float and RE_Exn_Long_Float.
6585         (RE_Unit_Table): Likewise.
6586         * libgnat/s-exnflt.ads: New file.
6587         * libgnat/s-exnlfl.ads: Likewise.
6588         * libgnat/s-exnllf.ads: Change to mere instantiation.
6589         * libgnat/s-exnllf.adb: Move implementation to...
6590         * libgnat/s-exponr.ads: New generic unit.
6591         * libgnat/s-exponr.adb: ...here and also make it generic.
6592         (Expon): Do the computation in double precision internally.
6594 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6596         * lib-writ.adb, osint.adb, osint.ads: Cleanup.
6598 2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
6600         * exp_ch3.adb (Expand_Freeze_Array_Type): Remove excessive
6601         condition.
6602         (Expand_N_Object_Declaration): Likewise.
6603         (Build_Equivalent_Aggregate): Likewise.
6604         (Initialization_Warning): Likewise; change another excessive
6605         condition into assertion.
6606         * freeze.adb (Freeze_Entity): Remove excessive condition.
6608 2021-05-06  Ed Schonberg  <schonberg@adacore.com>
6610         * sem_res.adb (Resolve_If_Expression): If the context of the
6611         expression is an indexed_component, resolve the expression and
6612         its dependent_expressions with the base type of the index, to
6613         ensure that an index check is generated when resolving the
6614         enclosing indexxed_component, and avoid an improper use of
6615         discriminants out of scope, when the index type is
6616         discriminant-dependent.
6618 2021-05-06  Arnaud Charlet  <charlet@adacore.com>
6620         * einfo.ads, exp_prag.adb, exp_util.adb: Fix typos.
6622 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6624         * exp_attr.adb (Expand_N_Attribute_Reference): Fix expansion of
6625         attributes Input and Output for unchecked unions.
6626         * sem_case.ads: Fix typo "disriminant" and refill comment.
6628 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6630         * exp_attr.adb, exp_ch9.adb, sem_ch3.adb: Reuse
6631         Has_Defaulted_Discriminants.
6632         * sem_ch4.adb (Analyze_Allocator): Reuse
6633         Has_Defaulted_Discriminants (after reordering conjuncts); remove
6634         redundant IF statement, whose condition is implied by
6635         Has_Defaulted_Discriminants.
6636         * sem_util.adb (Has_Defaulted_Discriminants): Has_Discriminants
6637         implies that the First_Discriminant is present.
6638         (Is_Fully_Initialized_Type): Reuse Has_Defaulted_Discriminants.
6640 2021-05-05  Justin Squirek  <squirek@adacore.com>
6642         * exp_ch6.adb (Expand_Call_Helper): Add condition to check for
6643         expanded actuals and remove dead code.
6645 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6647         * exp_ch4.adb (Has_Unconstrained_UU_Component): Rewrite to
6648         follow the Ada RM grammar.
6650 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6652         * exp_ch4.adb (User_Defined_Primitive_Equality_Op): Refine type
6653         of a local variable.
6654         * exp_dbug.adb (Scope_Contains): Refine all types from Node_Id
6655         to Entity_Id; rename parameters to match those of the
6656         Scope_Within routine (which is similar but not the same); also,
6657         simplify an OR ELSE into a membership test.
6659 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6661         * exp_ch4.adb (Component_Is_Unconstrained_UU): Detect both
6662         qualified and unqualified names of unchecked union components.
6664 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6666         * exp_ch4.adb (Variant_Is_Unconstrained_UU): Remove redundant
6667         check for empty list.
6668         * exp_disp.adb (Find_Entry_Index): Simplify by removing
6669         redundant check and counting from zero; fix type of a local
6670         variable.
6671         * sem_ch12.adb (Save_Global_Descendant): Remove an unnecessary
6672         special-case for empty lists.
6674 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6676         * exp_ch4.adb (Apply_Accessibility_Check): Skip a statically
6677         true condition in expanded raise statement.
6679 2021-05-05  Bob Duff  <duff@adacore.com>
6681         * libgnat/s-os_lib.adb (Missed_Drive_Letter): Simplify the code.
6683 2021-05-05  Ed Schonberg  <schonberg@adacore.com>
6685         * sem_ch5.adb (Analyze_Assignment): Do not emit the warning that
6686         a previous value of the target object is useless if the
6687         right-hand side of the assignment includes target names.
6689 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6691         * exp_imgv.adb: Add with/use clauses for Targparm.
6692         (Build_Enumeration_Image_Tables): Set type of Threshold to Nat and
6693         initialize it to Nat'Last if the type is local and the target does
6694         not support descriptors.  Adjust Threshold_For_Size similarly.
6695         (Expand_Value_Attribute): Minor tweaks.
6697 2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
6699         * exp_ch7.adb (Expand_N_Package_Body): Add CUDA init call.
6700         * sem_ch7.adb (Analyze_Package_Body_Helper): Remove CUDA init
6701         call.
6703 2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
6705         * par-ch5.adb (P_Condition): Check if expression is declare
6706         expression.
6708 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6710         * make.adb (Make): Use GNAT.Ctrl_C.Install_Handler instead of a
6711         custom imported procedure.
6713 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6715         * exp_imgv.adb (Is_User_Defined_Enumeration_Type): Delete.
6716         (Expand_Image_Attribute): Move inline expansion into normal flow of
6717         control, move down declarations and remove superfluous processing.
6719 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6721         * libgnat/g-alleve.adb (Bit_Operation): Now a not-null type.
6722         * libgnat/g-sechas.adb (Fill_Buffer_Access): Likewise.
6723         * libgnat/s-dwalin.adb (Callback): Likewise.
6725 2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
6727         * exp_util.adb (Is_Possibly_Unaligned_Object): Remove commented
6728         code.
6730 2021-05-05  Ed Schonberg  <schonberg@adacore.com>
6732         * sem_ch3.adb (Find_Type_Of_Object):  When In_Spec_Expression is
6733         set and the object declaration generates a subtype indication,
6734         build the corresponding subtype declaration and place it in tree
6735         without the use of Insert_Actions, which is disabled in this
6736         context.
6738 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6740         * debug.adb (d_x): Document extended usage.
6741         * exp_imgv.adb (Expand_Standard_Boolean_Image): New procedure.
6742         (Expand_Image_Attribute): Call it to expand in line the attribute
6743         for standard boolean by default.
6745 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6747         * debug.adb (d_x): Document new usage.
6748         * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Add Typ
6749         parameter and use it throughout the processing.
6750         (Expand_Image_Attribute): Retrieve the underlying type of the
6751         prefix and use the inline expansion for user-defined enumeration
6752         types with a literal string by default.
6754 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6756         * libgnat/s-dorepr.adb (Split): Declare a per-size temporary.
6757         Add pragma Annotate.
6759 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6761         * exp_ch4.adb, sem_ch13.adb, sem_eval.adb, sem_res.adb: Remove
6762         redundant calls to UI_From_Int.
6764 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6766         * exp_imgv.ads (Build_Enumeration_Image_Tables): Adjust comment.
6767         * exp_imgv.adb (Build_Enumeration_Image_Tables): Add the
6768         declaration nodes of the 4 tables to the declaration list of the
6769         function body.
6771 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6773         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imagen, s-imen16,
6774         s-imen32, s-imenu8, s-pehage, s-valuen, s-vaen16, s-vaen32 and
6775         s-vaenu8.  Remove s-imenne, s-imgenu and s-valenu.
6776         * debug.adb (d_h): Document new usage.
6777         * einfo.ads (Lit_Hash): New attribute for enumeration types.
6778         (Set_Lit_Hash): Declare.
6779         * einfo.adb (Lit_Hash): New function.
6780         (Set_Lit_Hash): New procedure.
6781         (Write_Field21_Name): Print Lit_Hash for Enumeration_Kind.
6782         * exp_imgv.ads (Build_Enumeration_Image_Tables): Fix description
6783         and document the hash function and its tables.
6784         * exp_imgv.adb: Add with/use clauses for Debug.  Add with clause
6785         for System.Perfect_Hash_Generators.
6786         (Append_Table_To): New helper routine.
6787         (Build_Enumeration_Image_Tables): Call it to build the tables.
6788         In the main unit, register the literals with the hash generator.
6789         If they are sufficiently many and -gnatd_h is not passed, generate
6790         a perfect hash function and its tables; otherwise, generate a dummy
6791         hash function.  For the other units, generate only the declaration.
6792         In all cases, set Lit_Hash to the entity of the function, if any.
6793         (Expand_Value_Attribute): Pass the 'Unrestricted_Access of Lit_Hash,
6794         if any, as third argument to the Value_Enumeration_NN function.
6795         * gnat1drv.adb (Adjust_Global_Switches): force simpler implementation
6796         of 'Value in CodePeer_Mode.
6797         * lib.ads (Synchronize_Serial_Number): Add SN parameter.
6798         * lib.adb (Synchronize_Serial_Number): Assert that it is larger than
6799         the serial number of the current unit and set the latter to it only
6800         in this case.
6801         * rtsfind.ads (RTU_Id): Add System_Img_Enum_8, System_Img_Enum_16,
6802         System_Img_Enum_32, System_Val_Enum_8, System_Val_Enum_16 and
6803         System_Val_Enum_32.  Remove System_Img_Enum, System_Img_Enum_New
6804         and System_Val_Enum.
6805         * sem_attr.adb (Analyze_Access_Attribute): Do not flag a compiler
6806         generated Unrestricted_Access attribute as illegal in a declare
6807         expression.
6808         (RE_Unit_Table): Adjust to above changes.
6809         * libgnat/g-heasor.ads: Add pragma Compiler_Unit_Warning.
6810         * libgnat/g-table.ads: Likewise.
6811         * libgnat/g-pehage.ads: Add with clause and local renaming for
6812         System.Perfect_Hash_Generators.
6813         (Optimization): Turn into derived type.
6814         (Verbose): Turn into renaming.
6815         (Too_Many_Tries): Likewise.
6816         (Table_Name): Move to System.Perfect_Hash_Generators.
6817         (Define): Likewise.
6818         (Value): Likewise.
6819         * libgnat/g-pehage.adb: Remove with clause for Ada.Directories,
6820         GNAT.Heap_Sort_G and GNAT.Table.  Move bulk of implementation
6821         to System.Perfect_Hash_Generators, only keep the output part.
6822         * libgnat/s-imagen.ads: New generic unit.
6823         * libgnat/s-imagen.adb: New body.
6824         * libgnat/s-imen16.ads: New unit.
6825         * libgnat/s-imen32.ads: Likewise.
6826         * libgnat/s-imenu8.ads: Likewise.
6827         * libgnat/s-imenne.ads: Adjust description.
6828         * libgnat/s-imgenu.ads: Delete.
6829         * libgnat/s-imgenu.adb: Likewise.
6830         * libgnat/s-pehage.ads: New unit from GNAT.Perfect_Hash_Generators.
6831         * libgnat/s-pehage.adb: New body from GNAT.Perfect_Hash_Generators.
6832         * libgnat/s-valuen.ads: New generic unit.
6833         * libgnat/s-valuen.adb: New body.
6834         * libgnat/s-vaen16.ads: New unit.
6835         * libgnat/s-vaen32.ads: Likewise.
6836         * libgnat/s-vaenu8.ads: Likewise.
6837         * libgnat/s-valenu.ads: Delete.
6838         * libgnat/s-valenu.adb: Likewise.
6839         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-pehage.o.
6840         (GNATBIND_OBJS): Remove s-imgenu.o.
6842 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
6844         * sem_util.ads (Apply_Compile_Time_Constraint_Error): Remove
6845         parameter Rep from the function spec and "and if the flag Rep is
6846         set" from the comment.
6847         * sem_util.adb (Apply_Compile_Time_Constraint_Error): Remove
6848         parameter Rep.
6850 2021-05-05  Ed Schonberg  <schonberg@adacore.com>
6852         * sem_aggr.adb (Resolve_Indexed_Aggregate): For indexed
6853         aggregates with component associations verify that if there is
6854         more than one component association then all the choices are
6855         static, that the set of choices define a continuous sequence of
6856         values, and that if loop specfications appear, they do not
6857         include iterator filters or key expressions.
6859 2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6861         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-dourea, s-imager,
6862         s-imgflt, s-imglfl and s-imgllf.
6863         (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorks]: Use s-dorepr__fma.adb.
6864         (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorksAE]: Likewise.
6865         (LIBGNAT_TARGET_PAIRS) [Aarch64/VxWorks]: Likewise.
6866         (LIBGNAT_TARGET_PAIRS) [Aarch64/QNX]: Likewise.
6867         (LIBGNAT_TARGET_PAIRS) [Aarch64/FreeBSD]: Likewise.
6868         (LIBGNAT_TARGET_PAIRS) [PowerPC/Linux]: Likewise.
6869         (LIBGNAT_TARGET_PAIRS) [Aarch64/Linux]: Likewise.
6870         (LIBGNAT_TARGET_PAIRS) [IA-64/Linux]: Likewise.
6871         (LIBGNAT_TARGET_PAIRS) [IA-64/HP-UX]: Likewise.
6872         (LIBGNAT_TARGET_PAIRS) [RISC-V/Linux]: Likewise.
6873         (LIBGNAT_TARGET_PAIRS) [PowerPC/Darwin]: Likewise.
6874         * exp_attr.adb (Expand_N_Attribute_Reference) [Attribute_Fore]: Use
6875         Fixed suffix and Long_Float type.
6876         * exp_imgv.adb (Expand_Image_Attribute): For floating-point types,
6877         use the routine of the corresponding root type.  For ordinary fixed
6878         point types, use Fixed suffix and Long_Float type.
6879         (Expand_Value_Attribute): Revert latest change for Long_Long_Float.
6880         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove libgnat units
6881         g-hesora.o and s-imgenu.o, add g-heasor.o, g-table.o and s-pehage.o.
6882         (GNATBIND_OBJS): Remove libgnat unit s-imgenu.o.
6883         * rtsfind.ads (RTU_Id): Add System_Img_Flt, System_Img_LFlt and
6884         System_Img_LLF.  Remove System_Img_Real.
6885         (RE_Id): Rename RE_Fore_Real to RE_Fore_Fixed.  Add RE_Image_Float,
6886         RE_Image_Long_Float and RE_Image_Long_Long_Float.  Rename
6887         RE_Image_Ordinary_Fixed_Point to RE_Image_Fixed.
6888         (RE_Unit_Table): Adjust to above changes.
6889         * libgnat/a-nbnbre.adb (Fixed_Conversions): Use Long_Float instead
6890         of Long_Long_Float.
6891         * libgnat/a-textio.ads (Field): Remove obsolete comment.
6892         * libgnat/a-ticoau.ads (Aux): Adjust ancestor package.
6893         * libgnat/a-ticoau.adb: Remove with/use clause for System.Img_Real.
6894         (Puts): Call Aux.Set_Image instead of Set_Image_Real.
6895         * libgnat/a-ticoio.adb: Add with/use clauses for System.Img_Flt,
6896         System.Img_LFlt and System.Img_LLF.
6897         (Scalar_Float): Add third actual parameter.
6898         (Scalar_Long_Float): Likewise.
6899         (Scalar_Long_Long_Float): Likewise.
6900         * libgnat/a-tifiio.adb: Add with/use clauses for System.Img_LFlt
6901         and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
6902         Long_Long_Float with Long_Float throughout.
6903         * libgnat/a-tifiio__128.adb: Likewise.
6904         * libgnat/a-tiflau.ads: Add Set_Image formal parameter.
6905         * libgnat/a-tiflau.adb: Add with/use clause for System.Img_Util,
6906         remove the one for System.Img_Real.
6907         (Put): Call Set_Image instead of Set_Image_Real.
6908         (Puts): Likewise.
6909         * libgnat/a-tiflio.adb: Add with/use clause for System.Img_Flt,
6910         System.Img_LFlt and System.Img_LLF.
6911         (Aux_Float): Add third actual parameter.
6912         (Aux_Long_Float): Likewise.
6913         (Aux_Long_Long_Float): Likewise.
6914         * libgnat/a-witeio.ads (Field): Remove obsolete comment.
6915         * libgnat/a-wtcoau.ads (Aux): Adjust ancestor package.
6916         * libgnat/a-wtcoau.adb: Remove with/use clause for System.Img_Real.
6917         (Puts): Call Aux.Set_Image instead of Set_Image_Real.
6918         * libgnat/a-wtcoio.adb: Add with/use clauses for System.Img_Flt,
6919         System.Img_LFlt and System.Img_LLF.
6920         (Scalar_Float): Add third actual parameter.
6921         (Scalar_Long_Float): Likewise.
6922         (Scalar_Long_Long_Float): Likewise.
6923         * libgnat/a-wtfiio.adb: Add with/use clauses for System.Img_LFlt
6924         and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
6925         Long_Long_Float with Long_Float throughout.
6926         * libgnat/a-wtfiio__128.adb: Likewise.
6927         * libgnat/a-wtflau.ads: Add Set_Image formal parameter.
6928         * libgnat/a-wtflau.adb: Add with/use clause for System.Img_Util,
6929         remove the one for System.Img_Real.
6930         (Put): Call Set_Image instead of Set_Image_Real.
6931         (Puts): Likewise.
6932         * libgnat/a-wtflio.adb: Add with/use clause for System.Img_Flt,
6933         System.Img_LFlt and System.Img_LLF.
6934         (Aux_Float): Add third actual parameter.
6935         (Aux_Long_Float): Likewise.
6936         (Aux_Long_Long_Float): Likewise.
6937         * libgnat/a-ztexio.ads (Field): Remove obsolete comment.
6938         * libgnat/a-ztcoau.ads (Aux): Adjust ancestor package.
6939         * libgnat/a-ztcoau.adb: Remove with/use clause for System.Img_Real.
6940         (Puts): Call Aux.Set_Image instead of Set_Image_Real.
6941         * libgnat/a-ztcoio.adb: Add with/use clauses for System.Img_Flt,
6942         System.Img_LFlt and System.Img_LLF.
6943         (Scalar_Float): Add third actual parameter.
6944         (Scalar_Long_Float): Likewise.
6945         (Scalar_Long_Long_Float): Likewise.
6946         * libgnat/a-ztfiio.adb: Add with/use clauses for System.Img_LFlt
6947         and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
6948         Long_Long_Float with Long_Float throughout.
6949         * libgnat/a-ztfiio__128.adb: Likewise.
6950         * libgnat/a-ztflau.ads: Add Set_Image formal parameter.
6951         * libgnat/a-ztflau.adb: Add with/use clause for System.Img_Util,
6952         remove the one for System.Img_Real.
6953         (Put): Call Set_Image instead of Set_Image_Real.
6954         (Puts): Likewise.
6955         * libgnat/a-ztflio.adb: Add with/use clause for System.Img_Flt,
6956         System.Img_LFlt and System.Img_LLF.
6957         (Aux_Float): Add third actual parameter.
6958         (Aux_Long_Float): Likewise.
6959         (Aux_Long_Long_Float): Likewise.
6960         * libgnat/s-dorepr.adb: New file.
6961         * libgnat/s-dorepr__fma.adb: Likewise.
6962         * libgnat/s-dourea.ads: Likewise.
6963         * libgnat/s-dourea.adb: Likewise.
6964         * libgnat/s-forrea.ads (Fore_Real): Rename into...
6965         (Fore_Fixed): ...this and take Long_Float parameters.
6966         * libgnat/s-forrea.adb (Fore_Real): Likewise.
6967         (Fore_Fixed): Likewise.
6968         * libgnat/s-imgrea.ads: Move to...
6969         (Set_Image_Real): Turn into mere renaming.
6970         * libgnat/s-imager.ads: ...here.
6971         (Image_Ordinary_Fixed_Point): Turn into...
6972         (Image_Fixed_Point): ...this.
6973         * libgnat/s-imgrea.adb: Add pragma No_Body.  Move to...
6974         * libgnat/s-imager.adb: ...here.
6975         (Image_Ordinary_Fixed_Point): Turn into...
6976         (Image_Fixed_Point): ...this.
6977         (Is_Negative): Replace Long_Long_Float with Num.
6978         (Set_Image_Real): Likewise.  Use Double_T instead of single Num
6979         throughout the algorithm.
6980         * libgnat/s-imgflt.ads: New file.
6981         * libgnat/s-imglfl.ads: Likewise.
6982         * libgnat/s-imgllf.ads: Likewise.
6983         * libgnat/s-imagef.ads: Adjust comment.
6984         * libgnat/s-imguti.ads (Max_Real_Image_Length): New named number.
6985         * libgnat/s-powflt.ads (Maxpow): Adjust.
6986         (Powten): Turn into an exact table of double Float.
6987         * libgnat/s-powlfl.ads (Maxpow): Adjust.
6988         (Powten): Turn into an exact table of double Long_Float.
6989         * libgnat/s-powllf.ads (Maxpow): Adjust.
6990         (Powten): Turn into an exact table of double Long_Long_Float.
6991         * libgnat/s-valrea.ads: Change order of formal parameters.
6992         * libgnat/s-valrea.adb: Add with clause for System.Double_Real.
6993         (Double_Real): New instantiation.
6994         (Fast2Sum): Delete.
6995         (Large_Powten): New function.
6996         (Integer_to_Real): Use Quick_Two_Sum instead of Fast2Sum.  Convert
6997         the value to Double_T.  Do the scaling in Double_T for base 10.
6998         * libgnat/s-valflt.ads: Remove with/use clasue for Interfaces,
6999         add it for System.Unsigned_Types.  Use Unsigned.
7000         * libgnat/s-vallfl.ads: Remove with/use clasue for Interfaces,
7001         add it for System.Unsigned_Types.  Use Long_Unsigned.
7002         * libgnat/s-valllf.ads: Remove with/use clasue for Interfaces,
7003         add it for System.Unsigned_Types.  Use Long_Long_Unsigned.
7005 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7007         * sem_eval.adb (Eval_Arithmetic_Op): Call
7008         Set_Raises_Constraint_Error on real division by zero just like
7009         it is called for integer division by zero earlier in this
7010         routine.
7012 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7014         * freeze.adb (Build_Renamed_Body): Simplify IF and WHILE
7015         statements with the same condition.
7017 2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
7019         * pprint.adb (Expr_Name): Introduce local constants to make the
7020         code more readable and avoid repeated calls to Next to reach the
7021         ELSE part of an if-expression.
7023 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7025         * pprint.adb: Remove qualification of arbitrary calls to
7026         Sinfo.Expressions and Sinfo.Parameter_Associations.
7028 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7030         * pprint.adb (Expr_Name): Simplify with functional variant of
7031         UI_Image.
7033 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7035         * pprint.adb (To_Mixed): Removed.
7037 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7039         * pprint.adb (List_Name_Count): Change type from Integer to
7040         Natural.
7042 2021-05-04  Yannick Moy  <moy@adacore.com>
7044         * pprint.adb (Expression_Image): Special case for
7045         expression-with-actions.
7047 2021-05-04  Bob Duff  <duff@adacore.com>
7049         * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.
7051 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7053         * lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated
7054         branch for generic subprograms (they are now handled together
7055         with non-generic subprograms in the ELSE branch); replace a
7056         low-level Ekind membership test with a high-level call to
7057         Is_Access_Subprogram_Type.
7059 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7061         * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal
7062         with Next_Formal.
7063         * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise.
7065 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7067         * sem_prag.adb (Collect_Global_Item): Iterate directly over
7068         formals.
7070 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7072         * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
7073         comment; this routine is no longer used by GNATprove.
7074         * sem_prag.adb (Find_Role): The IN parameter is on output only
7075         when it belongs to non-function; also, the otherwise constant
7076         object can only be written by a non-function.
7077         (Collect_Global_Item): The IN parameter can only be written when
7078         it belongs to non-function; also, unnest this check to make it
7079         easier to read.
7081 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7083         * libgnat/s-assert.ads (Assert_Failure): Now a renaming of
7084         Assertion_Error.
7085         * libgnat/a-assert.ads (Assertion_Error): Now a first class
7086         citizen.  Remove dependency on System.Assertions.
7087         * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New.
7088         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
7089         a-assert.o from gcc-interface.
7091 2021-05-04  Yannick Moy  <moy@adacore.com>
7093         * erroutc.adb (Matches): Move spec...
7094         * erroutc.ads (Matches): ...here.
7096 2021-05-04  Yannick Moy  <moy@adacore.com>
7098         * gnat1drv.adb (Adjust_Global_Switches): Force error marker in
7099         GNATprove mode.
7101 2021-05-04  Bob Duff  <duff@adacore.com>
7103         * binde.adb: No need for ??? marks in Binde, because it is
7104         superseded by Bindo.
7105         * bindo-writers.adb (Write_Unit_Closure): Verified that -Ra
7106         works.
7107         * exp_ch4.adb, sinfo.ads (Expand_N_Type_Conversion): Rules for
7108         conversions passed to gigi are documented in sinfo.ads.
7109         (Expand_N_Unchecked_Type_Conversion): Comment is a duplicate of
7110         one in sinfo.ads.
7111         (Expand_N_In): Robert already added sufficient comments years
7112         after the ??? comment was inserted.
7113         (Expand_Membership_Minimize_Eliminate_Overflow): I don't see any
7114         reason why Stand should export Long_Long_Integer'Base -- it
7115         doesn't export any other base types.
7116         (Size_In_Storage_Elements): We are doing an allocator, so we
7117         don't care about sizes in bits.
7118         (Expand_N_Allocator): PolyORB isn't going to be significantly
7119         improved, so we're not going to mess with remote access to
7120         class-wide types.
7121         (Optimize_Return_Stmt): It's not important to optimize return
7122         statements in predicate functions -- there are many
7123         more-important optimizations we could do. Keep part of the
7124         comment without "???", to clarify why the "and then ...".
7125         (User_Defined_Primitive_Equality_Op): The optimization doesn't
7126         seem important enough.
7127         (Expand_N_Unchecked_Type_Conversion): Refactor to use
7128         Expand_N_Unchecked_Expression.
7129         (Make_Array_Comparison_Op): This seems like a case of "it it's
7130         not broken, don't fix it". Too much risk of causing bugs.
7131         * debug_a.adb: Remove ??? comments asking why Current_Error_Node
7132         is maintained unconditionally, and add a comment explaining why.
7133         * errout.adb: These kinds of minor bugs do indeed exist, but
7134         we're never going to get around to fixing them "properly", so we
7135         need this code for robustness.
7136         * gnatchop.adb (Read_File): Document when read can fail.
7137         * gnatdll.adb (Parse_Command_Line): Nobody is complaining about
7138         these arbitrary limits, so no need to use Table. Increase the
7139         limits just in case.  It is clear from the names what they are
7140         limits on.
7141         * gnatlink.adb: Add needed comments.
7142         (Delete): An existing comment makes clear it's intentional, and
7143         it's been like that since 1996.
7144         (Process_Args): Improve comments.
7145         (Search_Library_Path): Refactoring to avoid deep nesting.
7146         * inline.adb (Build_Body_To_Inline): Probably won't get around
7147         to doing that optimization.
7148         (Is_Unit_Subprogram): No, this should not be moved to Sem_Aux,
7149         because it is too specialized to this context.
7150         (Do_Reset): No comment is needed here; it's clear from the
7151         comment on Reset_Dispatching_Calls. Do_Reset is an artificial
7152         subprogram; if we had proper iterators, it would just be an if
7153         statement in the loop.
7154         (Rewrite_Function_Call): Probably won't get around to doing that
7155         optimization.
7156         * layout.adb (Layout_Type): The gigi comment doesn't need to be
7157         a ??? comment, and it's been that way since 2000.  The
7158         limitation to scalars will likely never be investigated, and
7159         it's been that way since 2009.
7160         * lib.adb (Check_Same_Extended_Unit): This doesn't look like
7161         something that needs fixing; it looks like a permanent
7162         workaround.
7163         * lib-load.adb (Change_Main_Unit_To_Spec): It is good enough in
7164         practice.
7165         (Load_Unit): Nobody will ever get around to investigating the
7166         obscure PMES oddity, and the optimization is not worth the
7167         trouble.
7168         * live.adb: It's not worth documenting this. It is used only
7169         with a debug switch. Nobody who has done significant work on it
7170         is still around, so it would require substantial investigation.
7171         * mdll.ads: I see no reason for USE.
7172         * namet.ads: Routines are obsolete, but they're not going
7173         anywhere anytime soon (too much work, and surprisingly delicate
7174         because of dependences on global variables).
7175         * osint.ads: Minor.
7176         * osint.adb: Improve comments.
7177         (Full_Lib_File_Name): Use Smart_Find_File.
7179 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7181         * exp_prag.adb, sem_prag.adb: Replace low-level Ekind membership
7182         tests with a high-level call to Is_Formal_Object.
7184 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7186         * cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads,
7187         xr_tabls.adb, xref_lib.adb: Address ??? comments.
7189 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7191         * sem_prag.adb (Analyze_Global_Item): Take subprogram kind into
7192         account when accepting or rejecting a constant of an
7193         access-to-variable type as a global Output/In_Out; do this check
7194         inside an ELSIF branch to avoid unnecessary evaluation of the
7195         subsequent condition.
7197 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7199         * sem_prag.adb (Role_Error, Usage_Error): Replace calls to
7200         Name_Find and Get_Name_String with a call to To_String.
7202 2021-05-04  Ed Schonberg  <schonberg@adacore.com>
7204         * exp_aggr.adb (Build_Siz_Exp): new function, subsidiary of
7205         Expand_Container_Aggregate, to create an expression to be used
7206         in the dynamic allocation of a container with a single container
7207         element association.
7208         (Add_Range): Handle static bounds of ranges over enumerations.
7209         (Expand_Container_Aggregate): Add declaration for size
7210         expression when needed, and use it in container object
7211         declaration for container.
7213 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7215         * exp_ch7.adb (Build_Finalizer_Helper.New_Finalizer_Name):
7216         Unnest so that it can be reused.
7217         (Build_Finalizer_Helper.Process_Declarations): Call the
7218         xxx__finalize_body procedure of a package instantiation in case
7219         it contains finalization statements.  Code clean ups.
7220         (Build_Finalizer_Helper.Create_Finalizer): Export and set an
7221         Interface_Name for library level finalizers since these may be
7222         imported now.
7223         (Build_Finalizer_Helper): Need to process library level package
7224         body instantiations which may contain objects requiring
7225         finalization.
7226         * libgnat/s-finmas.ads: Fix typo.
7228 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7230         * checks.adb (Append_Range_Checks, Apply_Selected_Length_Checks,
7231         Determine_Range, Insert_Range_Checks,
7232         Install_Null_Excluding_Check, Selected_Length_Checks,
7233         Selected_Range_Checks): Address ??? comments and code cleanups.
7235 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7237         * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
7238         Apply the rule even with no explicit Global contract (and remove
7239         a dead condition for Refined_Global).
7241 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7243         * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
7244         Extend check to protected entries.
7246 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7248         * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
7249         Fix reference to SPARK RM rule number.
7251 2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7253         * exp_intr.adb: Remove with/use clauses for Urealp.
7254         (Expand_Is_Negative): Delete.
7255         (Expand_Intrinsic_Call): Do not call it.
7256         * rtsfind.ads (RE_Id): Remove RE_Float_Unsigned.
7257         (RE_Unit_Table): Remove entry for RE_Float_Unsigned.
7258         * snames.ads-tmpl (Name_Is_Negative): Delete.
7259         * libgnat/s-imgrea.ads (Set_Image_Real): Fix mode of S parameter.
7260         * libgnat/s-imgrea.adb: Add with/use clauses for System.Img_Util.
7261         (LLU): New subtype.
7262         (Maxdigs): Use it.
7263         (Is_Negative): Reimplement.
7264         (Image_Floating_Point): Simplify.
7265         (Set_Image_Real): Fix mode of S parameter.  Remove the low-level
7266         processing on characters.  Flip the sign of the Scale variable.
7267         Compute the maximum number of digits for the straight notation.
7268         Call Set_Decimal_Digits at the end to do the final formatting.
7269         * libgnat/s-imguti.ads (Floating_Invalid_Value): New type.
7270         (Set_Floating_Invalid_Value): New procedure.
7271         * libgnat/s-imguti.adb (Set_Floating_Invalid_Value): Implement it
7272         based on existing code from Set_Image_Real.
7273         * libgnat/s-unstyp.ads (Float_Unsigned): Delete.
7275 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7277         * csets.adb (Initialize): Refactor into CASE statement; raise
7278         exception on unsupported code of character set (it will be
7279         gently rejected earlier when scanning command line switches).
7280         * switch-b.adb (Scan_Binder_Switches): Refactor into a
7281         membership expression; add missing '9' choice; reorder as
7282         described by GNAT UG, section 4.3.11.
7283         * switch-c.adb (Scan_Front_End_Switches): Refactor into a
7284         membership expression and reorder as above.
7285         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
7286         (gnatic): Mention '5' as an allowed value for "c".
7287         * gnat_ugn.texi: Regenerate.
7289 2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
7291         * errout.adb (Error_Msg_Internal): Add assertion to prevent
7292         style mistakes reappearing in the future.
7294 2021-05-04  Javier Miranda  <miranda@adacore.com>
7296         * exp_ch4.adb (Tagged_Membership): Remove wrong condition that
7297         is not consistent with the documentation of this subprogram.
7299 2021-05-04  Yannick Moy  <moy@adacore.com>
7301         * sem_res.adb (Valid_Conversion): Make message a continuation.
7303 2021-05-04  Arnaud Charlet  <charlet@adacore.com>
7305         * styleg.adb: Address ??? comments.
7307 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
7309         * libgnat/a-stunau.ads, libgnat/a-stunau.adb,
7310         libgnat/a-stunau__shared.adb (Set_String): Remove old version,
7311         replace by a new version taking a callback to set the string.
7313 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
7315         * libgnat/a-coorma.ads (Map): Add missing
7316         Preelaborate_Initialization.
7318 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7320         * exp_ch4.adb (Analyze_Number_Declaration, Expand_N_Op_Expon):
7321         Simplify with Is_Universal_Numeric_Type.
7322         * sem_attr.adb (Resolve_Attribute): Likewise.
7323         * sem_ch3.adb: Likewise.
7324         * sem_ch4.adb (Check_Common_Type, Check_Arithmetic_Pair):
7325         Likewise.
7326         * sem_eval.adb (Eval_Unary_Op, Test_In_Range): Likewise.
7327         * sem_res.adb (Resolve_Arithmetic_Op, Resolve_Membership_Op,
7328         Resolve_Op_Expon, Resolve_Unary_Op, Set_Mixed_Mode_Operand,
7329         Set_Operand_Type): Likewise.
7330         * sem_type.adb (Disambiguate, Find_Unique_Type): Likewise.
7331         * sem_util.adb (Universal_Interpretation): Likewise.
7333 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7335         * exp_aggr.adb (Max_Aggregate_Size): Add header boxes for nested
7336         routines; move a local constant after nested subprogram bodies;
7337         refill comment.
7339 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7341         * sem_attr.adb (Analyze_Attribute): Reuse Resolve with implicit
7342         type when analysing attribute Priority.
7343         * sem_ch5.adb (Analyze_Case_Statement): Likewise for a rare case
7344         in analysis of case statements.
7345         (Analyze_Iterator_Specification): Likewise for non-overloaded
7346         domain of iteration.
7348 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7350         * einfo.adb (Write_Entity_Info): Simplify an Ekind membership
7351         test.
7352         * exp_aggr.adb (Is_CCG_Supported_Aggregate): Likewise.
7354 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7356         * exp_ch7.adb (Build_Finalize_Statements): Refine type of a
7357         local counter variable.
7358         * exp_dist.adb (Append_Record_Traversal): Refine type of Counter
7359         parameter.
7360         (Add_Process_Element): Likewise.
7361         (Build_From_Any_Call): Refine type of a local counter variable.
7362         (Build_From_Any_Function): Likewise.
7363         (Build_To_Any_Function): Likewise.
7364         (FA_Rec_Add_Process_Element): Likewise.
7365         (TA_Append_Record_Traversal): Likewise.
7366         (TA_Rec_Add_Process_Element): Likewise.
7368 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
7370         * rtsfind.adb (SPARK_Implicit_Load): Simplify with Discard_Node.
7372 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
7374         * Makefile.rtl: Update copyright notice.
7375         * ada_get_targ.adb: Likewise.
7376         * adabkend.adb: Likewise.
7377         * adabkend.ads: Likewise.
7378         * adadecode.c: Likewise.
7379         * adadecode.h: Likewise.
7380         * adaint.c: Likewise.
7381         * adaint.h: Likewise.
7382         * affinity.c: Likewise.
7383         * ali-util.adb: Likewise.
7384         * ali-util.ads: Likewise.
7385         * ali.adb: Likewise.
7386         * ali.ads: Likewise.
7387         * alloc.ads: Likewise.
7388         * argv-lynxos178-raven-cert.c: Likewise.
7389         * argv.c: Likewise.
7390         * aspects.adb: Likewise.
7391         * aspects.ads: Likewise.
7392         * atree.adb: Likewise.
7393         * atree.ads: Likewise.
7394         * atree.h: Likewise.
7395         * aux-io.c: Likewise.
7396         * back_end.adb: Likewise.
7397         * back_end.ads: Likewise.
7398         * bcheck.adb: Likewise.
7399         * bcheck.ads: Likewise.
7400         * binde.adb: Likewise.
7401         * binde.ads: Likewise.
7402         * binderr.adb: Likewise.
7403         * binderr.ads: Likewise.
7404         * bindgen.adb: Likewise.
7405         * bindgen.ads: Likewise.
7406         * bindo-augmentors.adb: Likewise.
7407         * bindo-augmentors.ads: Likewise.
7408         * bindo-builders.adb: Likewise.
7409         * bindo-builders.ads: Likewise.
7410         * bindo-diagnostics.adb: Likewise.
7411         * bindo-diagnostics.ads: Likewise.
7412         * bindo-elaborators.adb: Likewise.
7413         * bindo-elaborators.ads: Likewise.
7414         * bindo-graphs.adb: Likewise.
7415         * bindo-graphs.ads: Likewise.
7416         * bindo-units.adb: Likewise.
7417         * bindo-units.ads: Likewise.
7418         * bindo-validators.adb: Likewise.
7419         * bindo-validators.ads: Likewise.
7420         * bindo-writers.adb: Likewise.
7421         * bindo-writers.ads: Likewise.
7422         * bindo.adb: Likewise.
7423         * bindo.ads: Likewise.
7424         * bindusg.adb: Likewise.
7425         * bindusg.ads: Likewise.
7426         * butil.adb: Likewise.
7427         * butil.ads: Likewise.
7428         * cal.c: Likewise.
7429         * casing.adb: Likewise.
7430         * casing.ads: Likewise.
7431         * ceinfo.adb: Likewise.
7432         * checks.adb: Likewise.
7433         * checks.ads: Likewise.
7434         * cio.c: Likewise.
7435         * clean.adb: Likewise.
7436         * clean.ads: Likewise.
7437         * comperr.adb: Likewise.
7438         * comperr.ads: Likewise.
7439         * contracts.adb: Likewise.
7440         * contracts.ads: Likewise.
7441         * csets.adb: Likewise.
7442         * csets.ads: Likewise.
7443         * csinfo.adb: Likewise.
7444         * cstand.adb: Likewise.
7445         * cstand.ads: Likewise.
7446         * cstreams.c: Likewise.
7447         * ctrl_c.c: Likewise.
7448         * debug.adb: Likewise.
7449         * debug.ads: Likewise.
7450         * debug_a.adb: Likewise.
7451         * debug_a.ads: Likewise.
7452         * einfo.adb: Likewise.
7453         * einfo.ads: Likewise.
7454         * elists.adb: Likewise.
7455         * elists.ads: Likewise.
7456         * elists.h: Likewise.
7457         * env.c: Likewise.
7458         * env.h: Likewise.
7459         * err_vars.ads: Likewise.
7460         * errno.c: Likewise.
7461         * errout.adb: Likewise.
7462         * errout.ads: Likewise.
7463         * erroutc.adb: Likewise.
7464         * erroutc.ads: Likewise.
7465         * errutil.adb: Likewise.
7466         * errutil.ads: Likewise.
7467         * eval_fat.adb: Likewise.
7468         * eval_fat.ads: Likewise.
7469         * exit.c: Likewise.
7470         * exp_aggr.adb: Likewise.
7471         * exp_aggr.ads: Likewise.
7472         * exp_atag.adb: Likewise.
7473         * exp_atag.ads: Likewise.
7474         * exp_attr.adb: Likewise.
7475         * exp_attr.ads: Likewise.
7476         * exp_cg.adb: Likewise.
7477         * exp_cg.ads: Likewise.
7478         * exp_ch10.ads: Likewise.
7479         * exp_ch11.adb: Likewise.
7480         * exp_ch11.ads: Likewise.
7481         * exp_ch12.adb: Likewise.
7482         * exp_ch12.ads: Likewise.
7483         * exp_ch13.adb: Likewise.
7484         * exp_ch13.ads: Likewise.
7485         * exp_ch2.adb: Likewise.
7486         * exp_ch2.ads: Likewise.
7487         * exp_ch3.adb: Likewise.
7488         * exp_ch3.ads: Likewise.
7489         * exp_ch4.adb: Likewise.
7490         * exp_ch4.ads: Likewise.
7491         * exp_ch5.adb: Likewise.
7492         * exp_ch5.ads: Likewise.
7493         * exp_ch6.adb: Likewise.
7494         * exp_ch6.ads: Likewise.
7495         * exp_ch7.adb: Likewise.
7496         * exp_ch7.ads: Likewise.
7497         * exp_ch8.adb: Likewise.
7498         * exp_ch8.ads: Likewise.
7499         * exp_ch9.adb: Likewise.
7500         * exp_ch9.ads: Likewise.
7501         * exp_code.adb: Likewise.
7502         * exp_code.ads: Likewise.
7503         * exp_dbug.adb: Likewise.
7504         * exp_dbug.ads: Likewise.
7505         * exp_disp.adb: Likewise.
7506         * exp_disp.ads: Likewise.
7507         * exp_dist.adb: Likewise.
7508         * exp_dist.ads: Likewise.
7509         * exp_fixd.adb: Likewise.
7510         * exp_fixd.ads: Likewise.
7511         * exp_imgv.adb: Likewise.
7512         * exp_imgv.ads: Likewise.
7513         * exp_intr.adb: Likewise.
7514         * exp_intr.ads: Likewise.
7515         * exp_pakd.adb: Likewise.
7516         * exp_pakd.ads: Likewise.
7517         * exp_prag.adb: Likewise.
7518         * exp_prag.ads: Likewise.
7519         * exp_put_image.adb: Likewise.
7520         * exp_put_image.ads: Likewise.
7521         * exp_sel.adb: Likewise.
7522         * exp_sel.ads: Likewise.
7523         * exp_smem.adb: Likewise.
7524         * exp_smem.ads: Likewise.
7525         * exp_spark.adb: Likewise.
7526         * exp_spark.ads: Likewise.
7527         * exp_strm.adb: Likewise.
7528         * exp_strm.ads: Likewise.
7529         * exp_tss.adb: Likewise.
7530         * exp_tss.ads: Likewise.
7531         * exp_unst.adb: Likewise.
7532         * exp_unst.ads: Likewise.
7533         * exp_util.adb: Likewise.
7534         * exp_util.ads: Likewise.
7535         * expander.adb: Likewise.
7536         * expander.ads: Likewise.
7537         * expect.c: Likewise.
7538         * fe.h: Likewise.
7539         * final.c: Likewise.
7540         * fmap.adb: Likewise.
7541         * fmap.ads: Likewise.
7542         * fname-sf.adb: Likewise.
7543         * fname-sf.ads: Likewise.
7544         * fname-uf.adb: Likewise.
7545         * fname-uf.ads: Likewise.
7546         * fname.adb: Likewise.
7547         * fname.ads: Likewise.
7548         * freeze.adb: Likewise.
7549         * freeze.ads: Likewise.
7550         * frontend.adb: Likewise.
7551         * frontend.ads: Likewise.
7552         * gcc-interface/ada-tree.h: Likewise.
7553         * gcc-interface/ada.h: Likewise.
7554         * gcc-interface/cuintp.c: Likewise.
7555         * gcc-interface/decl.c: Likewise.
7556         * gcc-interface/gadaint.h: Likewise.
7557         * gcc-interface/gigi.h: Likewise.
7558         * gcc-interface/lang-specs.h: Likewise.
7559         * gcc-interface/misc.c: Likewise.
7560         * gcc-interface/system.ads: Likewise.
7561         * gcc-interface/targtyps.c: Likewise.
7562         * gcc-interface/trans.c: Likewise.
7563         * gcc-interface/utils.c: Likewise.
7564         * gcc-interface/utils2.c: Likewise.
7565         * get_scos.adb: Likewise.
7566         * get_scos.ads: Likewise.
7567         * get_targ.adb: Likewise.
7568         * get_targ.ads: Likewise.
7569         * ghost.adb: Likewise.
7570         * ghost.ads: Likewise.
7571         * gnat1drv.adb: Likewise.
7572         * gnat1drv.ads: Likewise.
7573         * gnat_cuda.adb: Likewise.
7574         * gnat_cuda.ads: Likewise.
7575         * gnatbind.adb: Likewise.
7576         * gnatbind.ads: Likewise.
7577         * gnatchop.adb: Likewise.
7578         * gnatclean.adb: Likewise.
7579         * gnatcmd.adb: Likewise.
7580         * gnatcmd.ads: Likewise.
7581         * gnatdll.adb: Likewise.
7582         * gnatfind.adb: Likewise.
7583         * gnatkr.adb: Likewise.
7584         * gnatkr.ads: Likewise.
7585         * gnatlink.adb: Likewise.
7586         * gnatlink.ads: Likewise.
7587         * gnatls.adb: Likewise.
7588         * gnatls.ads: Likewise.
7589         * gnatmake.adb: Likewise.
7590         * gnatmake.ads: Likewise.
7591         * gnatname.adb: Likewise.
7592         * gnatname.ads: Likewise.
7593         * gnatprep.adb: Likewise.
7594         * gnatprep.ads: Likewise.
7595         * gnatvsn.adb: Likewise.
7596         * gnatvsn.ads: Likewise.
7597         * gnatxref.adb: Likewise.
7598         * gprep.adb: Likewise.
7599         * gprep.ads: Likewise.
7600         * gsocket.h: Likewise.
7601         * hostparm.ads: Likewise.
7602         * impunit.adb: Likewise.
7603         * impunit.ads: Likewise.
7604         * indepsw-aix.adb: Likewise.
7605         * indepsw-darwin.adb: Likewise.
7606         * indepsw-gnu.adb: Likewise.
7607         * indepsw.adb: Likewise.
7608         * indepsw.ads: Likewise.
7609         * init.c: Likewise.
7610         * initialize.c: Likewise.
7611         * inline.adb: Likewise.
7612         * inline.ads: Likewise.
7613         * itypes.adb: Likewise.
7614         * itypes.ads: Likewise.
7615         * krunch.adb: Likewise.
7616         * krunch.ads: Likewise.
7617         * layout.adb: Likewise.
7618         * layout.ads: Likewise.
7619         * lib-list.adb: Likewise.
7620         * lib-load.adb: Likewise.
7621         * lib-load.ads: Likewise.
7622         * lib-sort.adb: Likewise.
7623         * lib-util.adb: Likewise.
7624         * lib-util.ads: Likewise.
7625         * lib-writ.adb: Likewise.
7626         * lib-writ.ads: Likewise.
7627         * lib-xref-spark_specific.adb: Likewise.
7628         * lib-xref.adb: Likewise.
7629         * lib-xref.ads: Likewise.
7630         * lib.adb: Likewise.
7631         * lib.ads: Likewise.
7632         * libgnarl/a-astaco.adb: Likewise.
7633         * libgnarl/a-dispat.adb: Likewise.
7634         * libgnarl/a-dynpri.adb: Likewise.
7635         * libgnarl/a-etgrbu.ads: Likewise.
7636         * libgnarl/a-exetim__darwin.adb: Likewise.
7637         * libgnarl/a-exetim__default.ads: Likewise.
7638         * libgnarl/a-exetim__mingw.adb: Likewise.
7639         * libgnarl/a-exetim__mingw.ads: Likewise.
7640         * libgnarl/a-exetim__posix.adb: Likewise.
7641         * libgnarl/a-interr.adb: Likewise.
7642         * libgnarl/a-interr.ads: Likewise.
7643         * libgnarl/a-intnam.ads: Likewise.
7644         * libgnarl/a-intnam__aix.ads: Likewise.
7645         * libgnarl/a-intnam__darwin.ads: Likewise.
7646         * libgnarl/a-intnam__dragonfly.ads: Likewise.
7647         * libgnarl/a-intnam__dummy.ads: Likewise.
7648         * libgnarl/a-intnam__freebsd.ads: Likewise.
7649         * libgnarl/a-intnam__hpux.ads: Likewise.
7650         * libgnarl/a-intnam__linux.ads: Likewise.
7651         * libgnarl/a-intnam__lynxos.ads: Likewise.
7652         * libgnarl/a-intnam__mingw.ads: Likewise.
7653         * libgnarl/a-intnam__qnx.ads: Likewise.
7654         * libgnarl/a-intnam__rtems.ads: Likewise.
7655         * libgnarl/a-intnam__solaris.ads: Likewise.
7656         * libgnarl/a-intnam__vxworks.ads: Likewise.
7657         * libgnarl/a-reatim.adb: Likewise.
7658         * libgnarl/a-reatim.ads: Likewise.
7659         * libgnarl/a-retide.adb: Likewise.
7660         * libgnarl/a-retide.ads: Likewise.
7661         * libgnarl/a-rttiev.adb: Likewise.
7662         * libgnarl/a-rttiev.ads: Likewise.
7663         * libgnarl/a-synbar.adb: Likewise.
7664         * libgnarl/a-synbar.ads: Likewise.
7665         * libgnarl/a-synbar__posix.adb: Likewise.
7666         * libgnarl/a-synbar__posix.ads: Likewise.
7667         * libgnarl/a-sytaco.adb: Likewise.
7668         * libgnarl/a-sytaco.ads: Likewise.
7669         * libgnarl/a-tasatt.adb: Likewise.
7670         * libgnarl/a-tasatt.ads: Likewise.
7671         * libgnarl/a-taside.adb: Likewise.
7672         * libgnarl/a-taside.ads: Likewise.
7673         * libgnarl/a-tasini.adb: Likewise.
7674         * libgnarl/a-tasini.ads: Likewise.
7675         * libgnarl/a-taster.adb: Likewise.
7676         * libgnarl/g-boubuf.adb: Likewise.
7677         * libgnarl/g-boubuf.ads: Likewise.
7678         * libgnarl/g-boumai.ads: Likewise.
7679         * libgnarl/g-semaph.adb: Likewise.
7680         * libgnarl/g-semaph.ads: Likewise.
7681         * libgnarl/g-signal.adb: Likewise.
7682         * libgnarl/g-signal.ads: Likewise.
7683         * libgnarl/g-tastus.ads: Likewise.
7684         * libgnarl/g-thread.adb: Likewise.
7685         * libgnarl/g-thread.ads: Likewise.
7686         * libgnarl/i-vxinco.adb: Likewise.
7687         * libgnarl/i-vxinco.ads: Likewise.
7688         * libgnarl/s-inmaop.ads: Likewise.
7689         * libgnarl/s-inmaop__dummy.adb: Likewise.
7690         * libgnarl/s-inmaop__posix.adb: Likewise.
7691         * libgnarl/s-inmaop__vxworks.adb: Likewise.
7692         * libgnarl/s-interr.adb: Likewise.
7693         * libgnarl/s-interr.ads: Likewise.
7694         * libgnarl/s-interr__dummy.adb: Likewise.
7695         * libgnarl/s-interr__hwint.adb: Likewise.
7696         * libgnarl/s-interr__sigaction.adb: Likewise.
7697         * libgnarl/s-interr__vxworks.adb: Likewise.
7698         * libgnarl/s-intman.ads: Likewise.
7699         * libgnarl/s-intman__android.adb: Likewise.
7700         * libgnarl/s-intman__dummy.adb: Likewise.
7701         * libgnarl/s-intman__lynxos.adb: Likewise.
7702         * libgnarl/s-intman__mingw.adb: Likewise.
7703         * libgnarl/s-intman__posix.adb: Likewise.
7704         * libgnarl/s-intman__qnx.adb: Likewise.
7705         * libgnarl/s-intman__solaris.adb: Likewise.
7706         * libgnarl/s-intman__susv3.adb: Likewise.
7707         * libgnarl/s-intman__vxworks.adb: Likewise.
7708         * libgnarl/s-intman__vxworks.ads: Likewise.
7709         * libgnarl/s-linux.ads: Likewise.
7710         * libgnarl/s-linux__alpha.ads: Likewise.
7711         * libgnarl/s-linux__android.ads: Likewise.
7712         * libgnarl/s-linux__hppa.ads: Likewise.
7713         * libgnarl/s-linux__mips.ads: Likewise.
7714         * libgnarl/s-linux__riscv.ads: Likewise.
7715         * libgnarl/s-linux__sparc.ads: Likewise.
7716         * libgnarl/s-linux__x32.ads: Likewise.
7717         * libgnarl/s-mudido.adb: Likewise.
7718         * libgnarl/s-mudido__affinity.adb: Likewise.
7719         * libgnarl/s-osinte__aix.adb: Likewise.
7720         * libgnarl/s-osinte__aix.ads: Likewise.
7721         * libgnarl/s-osinte__android.adb: Likewise.
7722         * libgnarl/s-osinte__android.ads: Likewise.
7723         * libgnarl/s-osinte__darwin.adb: Likewise.
7724         * libgnarl/s-osinte__darwin.ads: Likewise.
7725         * libgnarl/s-osinte__dragonfly.adb: Likewise.
7726         * libgnarl/s-osinte__dragonfly.ads: Likewise.
7727         * libgnarl/s-osinte__dummy.ads: Likewise.
7728         * libgnarl/s-osinte__freebsd.adb: Likewise.
7729         * libgnarl/s-osinte__freebsd.ads: Likewise.
7730         * libgnarl/s-osinte__gnu.adb: Likewise.
7731         * libgnarl/s-osinte__gnu.ads: Likewise.
7732         * libgnarl/s-osinte__hpux-dce.adb: Likewise.
7733         * libgnarl/s-osinte__hpux-dce.ads: Likewise.
7734         * libgnarl/s-osinte__hpux.ads: Likewise.
7735         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
7736         * libgnarl/s-osinte__linux.ads: Likewise.
7737         * libgnarl/s-osinte__lynxos178.adb: Likewise.
7738         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
7739         * libgnarl/s-osinte__mingw.ads: Likewise.
7740         * libgnarl/s-osinte__posix.adb: Likewise.
7741         * libgnarl/s-osinte__qnx.adb: Likewise.
7742         * libgnarl/s-osinte__qnx.ads: Likewise.
7743         * libgnarl/s-osinte__rtems.adb: Likewise.
7744         * libgnarl/s-osinte__rtems.ads: Likewise.
7745         * libgnarl/s-osinte__solaris.adb: Likewise.
7746         * libgnarl/s-osinte__solaris.ads: Likewise.
7747         * libgnarl/s-osinte__vxworks.adb: Likewise.
7748         * libgnarl/s-osinte__vxworks.ads: Likewise.
7749         * libgnarl/s-osinte__x32.adb: Likewise.
7750         * libgnarl/s-proinf.adb: Likewise.
7751         * libgnarl/s-proinf.ads: Likewise.
7752         * libgnarl/s-qnx.ads: Likewise.
7753         * libgnarl/s-solita.adb: Likewise.
7754         * libgnarl/s-solita.ads: Likewise.
7755         * libgnarl/s-stusta.adb: Likewise.
7756         * libgnarl/s-stusta.ads: Likewise.
7757         * libgnarl/s-taasde.adb: Likewise.
7758         * libgnarl/s-taasde.ads: Likewise.
7759         * libgnarl/s-tadeca.adb: Likewise.
7760         * libgnarl/s-tadeca.ads: Likewise.
7761         * libgnarl/s-tadert.adb: Likewise.
7762         * libgnarl/s-tadert.ads: Likewise.
7763         * libgnarl/s-taenca.adb: Likewise.
7764         * libgnarl/s-taenca.ads: Likewise.
7765         * libgnarl/s-taprob.adb: Likewise.
7766         * libgnarl/s-taprob.ads: Likewise.
7767         * libgnarl/s-taprop.ads: Likewise.
7768         * libgnarl/s-taprop__dummy.adb: Likewise.
7769         * libgnarl/s-taprop__hpux-dce.adb: Likewise.
7770         * libgnarl/s-taprop__linux.adb: Likewise.
7771         * libgnarl/s-taprop__mingw.adb: Likewise.
7772         * libgnarl/s-taprop__posix.adb: Likewise.
7773         * libgnarl/s-taprop__qnx.adb: Likewise.
7774         * libgnarl/s-taprop__solaris.adb: Likewise.
7775         * libgnarl/s-taprop__vxworks.adb: Likewise.
7776         * libgnarl/s-tarest.adb: Likewise.
7777         * libgnarl/s-tarest.ads: Likewise.
7778         * libgnarl/s-tasdeb.adb: Likewise.
7779         * libgnarl/s-tasdeb.ads: Likewise.
7780         * libgnarl/s-tasinf.adb: Likewise.
7781         * libgnarl/s-tasinf.ads: Likewise.
7782         * libgnarl/s-tasinf__linux.adb: Likewise.
7783         * libgnarl/s-tasinf__linux.ads: Likewise.
7784         * libgnarl/s-tasinf__mingw.adb: Likewise.
7785         * libgnarl/s-tasinf__mingw.ads: Likewise.
7786         * libgnarl/s-tasinf__solaris.adb: Likewise.
7787         * libgnarl/s-tasinf__solaris.ads: Likewise.
7788         * libgnarl/s-tasinf__vxworks.ads: Likewise.
7789         * libgnarl/s-tasini.adb: Likewise.
7790         * libgnarl/s-tasini.ads: Likewise.
7791         * libgnarl/s-taskin.adb: Likewise.
7792         * libgnarl/s-taskin.ads: Likewise.
7793         * libgnarl/s-taspri__dummy.ads: Likewise.
7794         * libgnarl/s-taspri__hpux-dce.ads: Likewise.
7795         * libgnarl/s-taspri__lynxos.ads: Likewise.
7796         * libgnarl/s-taspri__mingw.ads: Likewise.
7797         * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
7798         * libgnarl/s-taspri__posix.ads: Likewise.
7799         * libgnarl/s-taspri__solaris.ads: Likewise.
7800         * libgnarl/s-taspri__vxworks.ads: Likewise.
7801         * libgnarl/s-tasque.adb: Likewise.
7802         * libgnarl/s-tasque.ads: Likewise.
7803         * libgnarl/s-tasren.adb: Likewise.
7804         * libgnarl/s-tasren.ads: Likewise.
7805         * libgnarl/s-tasres.ads: Likewise.
7806         * libgnarl/s-tassta.adb: Likewise.
7807         * libgnarl/s-tassta.ads: Likewise.
7808         * libgnarl/s-tasuti.adb: Likewise.
7809         * libgnarl/s-tasuti.ads: Likewise.
7810         * libgnarl/s-tataat.adb: Likewise.
7811         * libgnarl/s-tataat.ads: Likewise.
7812         * libgnarl/s-tpinop.adb: Likewise.
7813         * libgnarl/s-tpinop.ads: Likewise.
7814         * libgnarl/s-tpoaal.adb: Likewise.
7815         * libgnarl/s-tpoben.adb: Likewise.
7816         * libgnarl/s-tpoben.ads: Likewise.
7817         * libgnarl/s-tpobmu.adb: Likewise.
7818         * libgnarl/s-tpobmu.ads: Likewise.
7819         * libgnarl/s-tpobop.adb: Likewise.
7820         * libgnarl/s-tpobop.ads: Likewise.
7821         * libgnarl/s-tpopmo.adb: Likewise.
7822         * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
7823         * libgnarl/s-tpopsp__posix.adb: Likewise.
7824         * libgnarl/s-tpopsp__solaris.adb: Likewise.
7825         * libgnarl/s-tpopsp__tls.adb: Likewise.
7826         * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
7827         * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
7828         * libgnarl/s-tpopsp__vxworks.adb: Likewise.
7829         * libgnarl/s-tporft.adb: Likewise.
7830         * libgnarl/s-tposen.adb: Likewise.
7831         * libgnarl/s-tposen.ads: Likewise.
7832         * libgnarl/s-vxwext.adb: Likewise.
7833         * libgnarl/s-vxwext.ads: Likewise.
7834         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
7835         * libgnarl/s-vxwext__kernel.adb: Likewise.
7836         * libgnarl/s-vxwext__kernel.ads: Likewise.
7837         * libgnarl/s-vxwext__noints.adb: Likewise.
7838         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
7839         * libgnarl/s-vxwext__rtp.adb: Likewise.
7840         * libgnarl/s-vxwext__rtp.ads: Likewise.
7841         * libgnarl/s-vxwext__vthreads.ads: Likewise.
7842         * libgnarl/s-vxwork__aarch64.ads: Likewise.
7843         * libgnarl/s-vxwork__arm.ads: Likewise.
7844         * libgnarl/s-vxwork__ppc.ads: Likewise.
7845         * libgnarl/s-vxwork__x86.ads: Likewise.
7846         * libgnarl/thread.c: Likewise.
7847         * libgnat/a-assert.adb: Likewise.
7848         * libgnat/a-assert.ads: Likewise.
7849         * libgnat/a-btgbso.adb: Likewise.
7850         * libgnat/a-btgbso.ads: Likewise.
7851         * libgnat/a-calari.adb: Likewise.
7852         * libgnat/a-calari.ads: Likewise.
7853         * libgnat/a-calcon.adb: Likewise.
7854         * libgnat/a-calcon.ads: Likewise.
7855         * libgnat/a-caldel.adb: Likewise.
7856         * libgnat/a-caldel.ads: Likewise.
7857         * libgnat/a-calend.adb: Likewise.
7858         * libgnat/a-calend.ads: Likewise.
7859         * libgnat/a-calfor.adb: Likewise.
7860         * libgnat/a-calfor.ads: Likewise.
7861         * libgnat/a-catizo.adb: Likewise.
7862         * libgnat/a-cbdlli.adb: Likewise.
7863         * libgnat/a-cbdlli.ads: Likewise.
7864         * libgnat/a-cbhama.adb: Likewise.
7865         * libgnat/a-cbhama.ads: Likewise.
7866         * libgnat/a-cbhase.adb: Likewise.
7867         * libgnat/a-cbhase.ads: Likewise.
7868         * libgnat/a-cbmutr.adb: Likewise.
7869         * libgnat/a-cbmutr.ads: Likewise.
7870         * libgnat/a-cborma.adb: Likewise.
7871         * libgnat/a-cborma.ads: Likewise.
7872         * libgnat/a-cborse.adb: Likewise.
7873         * libgnat/a-cborse.ads: Likewise.
7874         * libgnat/a-cbprqu.adb: Likewise.
7875         * libgnat/a-cbprqu.ads: Likewise.
7876         * libgnat/a-cbsyqu.adb: Likewise.
7877         * libgnat/a-cbsyqu.ads: Likewise.
7878         * libgnat/a-cdlili.adb: Likewise.
7879         * libgnat/a-cdlili.ads: Likewise.
7880         * libgnat/a-cfdlli.adb: Likewise.
7881         * libgnat/a-cfdlli.ads: Likewise.
7882         * libgnat/a-cfhama.adb: Likewise.
7883         * libgnat/a-cfhama.ads: Likewise.
7884         * libgnat/a-cfhase.adb: Likewise.
7885         * libgnat/a-cfhase.ads: Likewise.
7886         * libgnat/a-cfinve.adb: Likewise.
7887         * libgnat/a-cfinve.ads: Likewise.
7888         * libgnat/a-cforma.adb: Likewise.
7889         * libgnat/a-cforma.ads: Likewise.
7890         * libgnat/a-cforse.adb: Likewise.
7891         * libgnat/a-cforse.ads: Likewise.
7892         * libgnat/a-cgaaso.adb: Likewise.
7893         * libgnat/a-cgaaso.ads: Likewise.
7894         * libgnat/a-cgarso.adb: Likewise.
7895         * libgnat/a-cgcaso.adb: Likewise.
7896         * libgnat/a-chacon.adb: Likewise.
7897         * libgnat/a-chacon.ads: Likewise.
7898         * libgnat/a-chahan.adb: Likewise.
7899         * libgnat/a-chahan.ads: Likewise.
7900         * libgnat/a-chlat9.ads: Likewise.
7901         * libgnat/a-chtgbk.adb: Likewise.
7902         * libgnat/a-chtgbk.ads: Likewise.
7903         * libgnat/a-chtgbo.adb: Likewise.
7904         * libgnat/a-chtgbo.ads: Likewise.
7905         * libgnat/a-chtgke.adb: Likewise.
7906         * libgnat/a-chtgke.ads: Likewise.
7907         * libgnat/a-chtgop.adb: Likewise.
7908         * libgnat/a-chtgop.ads: Likewise.
7909         * libgnat/a-chzla1.ads: Likewise.
7910         * libgnat/a-chzla9.ads: Likewise.
7911         * libgnat/a-cidlli.adb: Likewise.
7912         * libgnat/a-cidlli.ads: Likewise.
7913         * libgnat/a-cihama.adb: Likewise.
7914         * libgnat/a-cihama.ads: Likewise.
7915         * libgnat/a-cihase.adb: Likewise.
7916         * libgnat/a-cihase.ads: Likewise.
7917         * libgnat/a-cimutr.adb: Likewise.
7918         * libgnat/a-cimutr.ads: Likewise.
7919         * libgnat/a-ciorma.adb: Likewise.
7920         * libgnat/a-ciorma.ads: Likewise.
7921         * libgnat/a-ciormu.adb: Likewise.
7922         * libgnat/a-ciormu.ads: Likewise.
7923         * libgnat/a-ciorse.adb: Likewise.
7924         * libgnat/a-ciorse.ads: Likewise.
7925         * libgnat/a-clrefi.adb: Likewise.
7926         * libgnat/a-clrefi.ads: Likewise.
7927         * libgnat/a-coboho.adb: Likewise.
7928         * libgnat/a-coboho.ads: Likewise.
7929         * libgnat/a-cobove.adb: Likewise.
7930         * libgnat/a-cobove.ads: Likewise.
7931         * libgnat/a-cofove.adb: Likewise.
7932         * libgnat/a-cofove.ads: Likewise.
7933         * libgnat/a-cofuba.adb: Likewise.
7934         * libgnat/a-cofuba.ads: Likewise.
7935         * libgnat/a-cofuma.adb: Likewise.
7936         * libgnat/a-cofuma.ads: Likewise.
7937         * libgnat/a-cofuse.adb: Likewise.
7938         * libgnat/a-cofuse.ads: Likewise.
7939         * libgnat/a-cofuve.adb: Likewise.
7940         * libgnat/a-cofuve.ads: Likewise.
7941         * libgnat/a-cogeso.adb: Likewise.
7942         * libgnat/a-cogeso.ads: Likewise.
7943         * libgnat/a-cohama.adb: Likewise.
7944         * libgnat/a-cohama.ads: Likewise.
7945         * libgnat/a-cohase.adb: Likewise.
7946         * libgnat/a-cohase.ads: Likewise.
7947         * libgnat/a-cohata.ads: Likewise.
7948         * libgnat/a-coinho.adb: Likewise.
7949         * libgnat/a-coinho.ads: Likewise.
7950         * libgnat/a-coinho__shared.adb: Likewise.
7951         * libgnat/a-coinho__shared.ads: Likewise.
7952         * libgnat/a-coinve.adb: Likewise.
7953         * libgnat/a-coinve.ads: Likewise.
7954         * libgnat/a-colien.adb: Likewise.
7955         * libgnat/a-colien.ads: Likewise.
7956         * libgnat/a-colire.adb: Likewise.
7957         * libgnat/a-colire.ads: Likewise.
7958         * libgnat/a-comlin.adb: Likewise.
7959         * libgnat/a-comlin.ads: Likewise.
7960         * libgnat/a-comutr.adb: Likewise.
7961         * libgnat/a-comutr.ads: Likewise.
7962         * libgnat/a-conhel.adb: Likewise.
7963         * libgnat/a-conhel.ads: Likewise.
7964         * libgnat/a-convec.adb: Likewise.
7965         * libgnat/a-convec.ads: Likewise.
7966         * libgnat/a-coorma.adb: Likewise.
7967         * libgnat/a-coorma.ads: Likewise.
7968         * libgnat/a-coormu.adb: Likewise.
7969         * libgnat/a-coormu.ads: Likewise.
7970         * libgnat/a-coorse.adb: Likewise.
7971         * libgnat/a-coorse.ads: Likewise.
7972         * libgnat/a-coprnu.adb: Likewise.
7973         * libgnat/a-coprnu.ads: Likewise.
7974         * libgnat/a-crbltr.ads: Likewise.
7975         * libgnat/a-crbtgk.adb: Likewise.
7976         * libgnat/a-crbtgk.ads: Likewise.
7977         * libgnat/a-crbtgo.adb: Likewise.
7978         * libgnat/a-crbtgo.ads: Likewise.
7979         * libgnat/a-crdlli.adb: Likewise.
7980         * libgnat/a-crdlli.ads: Likewise.
7981         * libgnat/a-csquin.ads: Likewise.
7982         * libgnat/a-cuprqu.adb: Likewise.
7983         * libgnat/a-cuprqu.ads: Likewise.
7984         * libgnat/a-cusyqu.adb: Likewise.
7985         * libgnat/a-cusyqu.ads: Likewise.
7986         * libgnat/a-cwila1.ads: Likewise.
7987         * libgnat/a-cwila9.ads: Likewise.
7988         * libgnat/a-decima.adb: Likewise.
7989         * libgnat/a-decima.ads: Likewise.
7990         * libgnat/a-decima__128.ads: Likewise.
7991         * libgnat/a-dhfina.adb: Likewise.
7992         * libgnat/a-dhfina.ads: Likewise.
7993         * libgnat/a-diocst.adb: Likewise.
7994         * libgnat/a-diocst.ads: Likewise.
7995         * libgnat/a-direct.adb: Likewise.
7996         * libgnat/a-direct.ads: Likewise.
7997         * libgnat/a-direio.adb: Likewise.
7998         * libgnat/a-direio.ads: Likewise.
7999         * libgnat/a-dirval.adb: Likewise.
8000         * libgnat/a-dirval.ads: Likewise.
8001         * libgnat/a-dirval__mingw.adb: Likewise.
8002         * libgnat/a-einuoc.adb: Likewise.
8003         * libgnat/a-einuoc.ads: Likewise.
8004         * libgnat/a-elchha.adb: Likewise.
8005         * libgnat/a-elchha.ads: Likewise.
8006         * libgnat/a-elchha__vxworks-ppc-full.adb: Likewise.
8007         * libgnat/a-envvar.adb: Likewise.
8008         * libgnat/a-excach.adb: Likewise.
8009         * libgnat/a-except.adb: Likewise.
8010         * libgnat/a-except.ads: Likewise.
8011         * libgnat/a-exctra.adb: Likewise.
8012         * libgnat/a-exctra.ads: Likewise.
8013         * libgnat/a-exexda.adb: Likewise.
8014         * libgnat/a-exexpr.adb: Likewise.
8015         * libgnat/a-exextr.adb: Likewise.
8016         * libgnat/a-exstat.adb: Likewise.
8017         * libgnat/a-finali.adb: Likewise.
8018         * libgnat/a-finali.ads: Likewise.
8019         * libgnat/a-locale.adb: Likewise.
8020         * libgnat/a-locale.ads: Likewise.
8021         * libgnat/a-nagefl.ads: Likewise.
8022         * libgnat/a-naliop.ads: Likewise.
8023         * libgnat/a-naliop__nolibm.ads: Likewise.
8024         * libgnat/a-nallfl.ads: Likewise.
8025         * libgnat/a-nallfl__wraplf.ads: Likewise.
8026         * libgnat/a-nalofl.ads: Likewise.
8027         * libgnat/a-nashfl.ads: Likewise.
8028         * libgnat/a-nashfl__wraplf.ads: Likewise.
8029         * libgnat/a-nbnbin.adb: Likewise.
8030         * libgnat/a-nbnbin__gmp.adb: Likewise.
8031         * libgnat/a-nbnbre.adb: Likewise.
8032         * libgnat/a-ngcefu.adb: Likewise.
8033         * libgnat/a-ngcoar.adb: Likewise.
8034         * libgnat/a-ngcoty.adb: Likewise.
8035         * libgnat/a-ngcoty.ads: Likewise.
8036         * libgnat/a-ngelfu.adb: Likewise.
8037         * libgnat/a-ngelfu.ads: Likewise.
8038         * libgnat/a-ngrear.adb: Likewise.
8039         * libgnat/a-ngrear.ads: Likewise.
8040         * libgnat/a-nuauco.ads: Likewise.
8041         * libgnat/a-nuauco__x86.ads: Likewise.
8042         * libgnat/a-nuaufl.ads: Likewise.
8043         * libgnat/a-nuaufl__wraplf.ads: Likewise.
8044         * libgnat/a-nudira.adb: Likewise.
8045         * libgnat/a-nudira.ads: Likewise.
8046         * libgnat/a-nuflra.adb: Likewise.
8047         * libgnat/a-nuflra.ads: Likewise.
8048         * libgnat/a-numaux.ads: Likewise.
8049         * libgnat/a-rbtgbk.adb: Likewise.
8050         * libgnat/a-rbtgbk.ads: Likewise.
8051         * libgnat/a-rbtgbo.adb: Likewise.
8052         * libgnat/a-rbtgbo.ads: Likewise.
8053         * libgnat/a-rbtgso.adb: Likewise.
8054         * libgnat/a-rbtgso.ads: Likewise.
8055         * libgnat/a-sbecin.adb: Likewise.
8056         * libgnat/a-sbecin.ads: Likewise.
8057         * libgnat/a-sbhcin.adb: Likewise.
8058         * libgnat/a-sbhcin.ads: Likewise.
8059         * libgnat/a-sblcin.adb: Likewise.
8060         * libgnat/a-sblcin.ads: Likewise.
8061         * libgnat/a-secain.adb: Likewise.
8062         * libgnat/a-secain.ads: Likewise.
8063         * libgnat/a-sequio.adb: Likewise.
8064         * libgnat/a-sequio.ads: Likewise.
8065         * libgnat/a-sfecin.ads: Likewise.
8066         * libgnat/a-sfhcin.ads: Likewise.
8067         * libgnat/a-sflcin.ads: Likewise.
8068         * libgnat/a-shcain.adb: Likewise.
8069         * libgnat/a-shcain.ads: Likewise.
8070         * libgnat/a-siocst.adb: Likewise.
8071         * libgnat/a-siocst.ads: Likewise.
8072         * libgnat/a-slcain.adb: Likewise.
8073         * libgnat/a-slcain.ads: Likewise.
8074         * libgnat/a-ssicst.adb: Likewise.
8075         * libgnat/a-ssicst.ads: Likewise.
8076         * libgnat/a-stboha.adb: Likewise.
8077         * libgnat/a-stmaco.ads: Likewise.
8078         * libgnat/a-stobbu.adb: Likewise.
8079         * libgnat/a-stobbu.ads: Likewise.
8080         * libgnat/a-stobfi.adb: Likewise.
8081         * libgnat/a-stobfi.ads: Likewise.
8082         * libgnat/a-storio.adb: Likewise.
8083         * libgnat/a-stoubu.adb: Likewise.
8084         * libgnat/a-stoubu.ads: Likewise.
8085         * libgnat/a-stoufi.adb: Likewise.
8086         * libgnat/a-stoufi.ads: Likewise.
8087         * libgnat/a-stoufo.adb: Likewise.
8088         * libgnat/a-stoufo.ads: Likewise.
8089         * libgnat/a-stouut.adb: Likewise.
8090         * libgnat/a-stouut.ads: Likewise.
8091         * libgnat/a-strbou.adb: Likewise.
8092         * libgnat/a-strbou.ads: Likewise.
8093         * libgnat/a-stream.adb: Likewise.
8094         * libgnat/a-stream.ads: Likewise.
8095         * libgnat/a-strfix.adb: Likewise.
8096         * libgnat/a-strhas.adb: Likewise.
8097         * libgnat/a-strmap.adb: Likewise.
8098         * libgnat/a-strmap.ads: Likewise.
8099         * libgnat/a-strsea.adb: Likewise.
8100         * libgnat/a-strsea.ads: Likewise.
8101         * libgnat/a-strsto.ads: Likewise.
8102         * libgnat/a-strsup.adb: Likewise.
8103         * libgnat/a-strsup.ads: Likewise.
8104         * libgnat/a-strunb.adb: Likewise.
8105         * libgnat/a-strunb.ads: Likewise.
8106         * libgnat/a-strunb__shared.adb: Likewise.
8107         * libgnat/a-strunb__shared.ads: Likewise.
8108         * libgnat/a-ststbo.adb: Likewise.
8109         * libgnat/a-ststbo.ads: Likewise.
8110         * libgnat/a-ststio.adb: Likewise.
8111         * libgnat/a-ststio.ads: Likewise.
8112         * libgnat/a-ststun.adb: Likewise.
8113         * libgnat/a-ststun.ads: Likewise.
8114         * libgnat/a-stteou.ads: Likewise.
8115         * libgnat/a-stunau.adb: Likewise.
8116         * libgnat/a-stunau.ads: Likewise.
8117         * libgnat/a-stunau__shared.adb: Likewise.
8118         * libgnat/a-stunha.adb: Likewise.
8119         * libgnat/a-stuten.adb: Likewise.
8120         * libgnat/a-stwibo.adb: Likewise.
8121         * libgnat/a-stwibo.ads: Likewise.
8122         * libgnat/a-stwifi.adb: Likewise.
8123         * libgnat/a-stwiha.adb: Likewise.
8124         * libgnat/a-stwima.adb: Likewise.
8125         * libgnat/a-stwima.ads: Likewise.
8126         * libgnat/a-stwise.adb: Likewise.
8127         * libgnat/a-stwise.ads: Likewise.
8128         * libgnat/a-stwisu.adb: Likewise.
8129         * libgnat/a-stwisu.ads: Likewise.
8130         * libgnat/a-stwiun.adb: Likewise.
8131         * libgnat/a-stwiun.ads: Likewise.
8132         * libgnat/a-stwiun__shared.adb: Likewise.
8133         * libgnat/a-stwiun__shared.ads: Likewise.
8134         * libgnat/a-stzbou.adb: Likewise.
8135         * libgnat/a-stzbou.ads: Likewise.
8136         * libgnat/a-stzfix.adb: Likewise.
8137         * libgnat/a-stzhas.adb: Likewise.
8138         * libgnat/a-stzmap.adb: Likewise.
8139         * libgnat/a-stzmap.ads: Likewise.
8140         * libgnat/a-stzsea.adb: Likewise.
8141         * libgnat/a-stzsea.ads: Likewise.
8142         * libgnat/a-stzsup.adb: Likewise.
8143         * libgnat/a-stzsup.ads: Likewise.
8144         * libgnat/a-stzunb.adb: Likewise.
8145         * libgnat/a-stzunb.ads: Likewise.
8146         * libgnat/a-stzunb__shared.adb: Likewise.
8147         * libgnat/a-stzunb__shared.ads: Likewise.
8148         * libgnat/a-suecin.adb: Likewise.
8149         * libgnat/a-suecin.ads: Likewise.
8150         * libgnat/a-suenco.adb: Likewise.
8151         * libgnat/a-suenst.adb: Likewise.
8152         * libgnat/a-suewst.adb: Likewise.
8153         * libgnat/a-suezst.adb: Likewise.
8154         * libgnat/a-suhcin.adb: Likewise.
8155         * libgnat/a-suhcin.ads: Likewise.
8156         * libgnat/a-sulcin.adb: Likewise.
8157         * libgnat/a-sulcin.ads: Likewise.
8158         * libgnat/a-suteio.adb: Likewise.
8159         * libgnat/a-suteio.ads: Likewise.
8160         * libgnat/a-suteio__shared.adb: Likewise.
8161         * libgnat/a-swbwha.adb: Likewise.
8162         * libgnat/a-swmwco.ads: Likewise.
8163         * libgnat/a-swunau.adb: Likewise.
8164         * libgnat/a-swunau.ads: Likewise.
8165         * libgnat/a-swunau__shared.adb: Likewise.
8166         * libgnat/a-swuwha.adb: Likewise.
8167         * libgnat/a-swuwti.adb: Likewise.
8168         * libgnat/a-swuwti.ads: Likewise.
8169         * libgnat/a-swuwti__shared.adb: Likewise.
8170         * libgnat/a-szbzha.adb: Likewise.
8171         * libgnat/a-szmzco.ads: Likewise.
8172         * libgnat/a-szunau.adb: Likewise.
8173         * libgnat/a-szunau.ads: Likewise.
8174         * libgnat/a-szunau__shared.adb: Likewise.
8175         * libgnat/a-szuzha.adb: Likewise.
8176         * libgnat/a-szuzti.adb: Likewise.
8177         * libgnat/a-szuzti.ads: Likewise.
8178         * libgnat/a-szuzti__shared.adb: Likewise.
8179         * libgnat/a-tags.adb: Likewise.
8180         * libgnat/a-tags.ads: Likewise.
8181         * libgnat/a-teioed.adb: Likewise.
8182         * libgnat/a-teioed.ads: Likewise.
8183         * libgnat/a-textio.adb: Likewise.
8184         * libgnat/a-textio.ads: Likewise.
8185         * libgnat/a-tiboio.adb: Likewise.
8186         * libgnat/a-ticoau.adb: Likewise.
8187         * libgnat/a-ticoau.ads: Likewise.
8188         * libgnat/a-ticoio.adb: Likewise.
8189         * libgnat/a-ticoio.ads: Likewise.
8190         * libgnat/a-tideau.adb: Likewise.
8191         * libgnat/a-tideau.ads: Likewise.
8192         * libgnat/a-tideio.adb: Likewise.
8193         * libgnat/a-tideio.ads: Likewise.
8194         * libgnat/a-tideio__128.adb: Likewise.
8195         * libgnat/a-tienau.adb: Likewise.
8196         * libgnat/a-tienau.ads: Likewise.
8197         * libgnat/a-tienio.adb: Likewise.
8198         * libgnat/a-tifiau.adb: Likewise.
8199         * libgnat/a-tifiau.ads: Likewise.
8200         * libgnat/a-tifiio.adb: Likewise.
8201         * libgnat/a-tifiio__128.adb: Likewise.
8202         * libgnat/a-tiflau.adb: Likewise.
8203         * libgnat/a-tiflau.ads: Likewise.
8204         * libgnat/a-tiflio.adb: Likewise.
8205         * libgnat/a-tiflio.ads: Likewise.
8206         * libgnat/a-tigeau.adb: Likewise.
8207         * libgnat/a-tigeau.ads: Likewise.
8208         * libgnat/a-tigeli.adb: Likewise.
8209         * libgnat/a-tiinau.adb: Likewise.
8210         * libgnat/a-tiinau.ads: Likewise.
8211         * libgnat/a-tiinio.adb: Likewise.
8212         * libgnat/a-tiinio.ads: Likewise.
8213         * libgnat/a-tiinio__128.adb: Likewise.
8214         * libgnat/a-timoio.adb: Likewise.
8215         * libgnat/a-timoio.ads: Likewise.
8216         * libgnat/a-timoio__128.adb: Likewise.
8217         * libgnat/a-tiocst.adb: Likewise.
8218         * libgnat/a-tiocst.ads: Likewise.
8219         * libgnat/a-tirsfi.adb: Likewise.
8220         * libgnat/a-tirsfi.ads: Likewise.
8221         * libgnat/a-titest.adb: Likewise.
8222         * libgnat/a-undesu.adb: Likewise.
8223         * libgnat/a-wichha.adb: Likewise.
8224         * libgnat/a-wichun.adb: Likewise.
8225         * libgnat/a-wichun.ads: Likewise.
8226         * libgnat/a-witeio.adb: Likewise.
8227         * libgnat/a-witeio.ads: Likewise.
8228         * libgnat/a-wrstfi.adb: Likewise.
8229         * libgnat/a-wrstfi.ads: Likewise.
8230         * libgnat/a-wtcoau.adb: Likewise.
8231         * libgnat/a-wtcoau.ads: Likewise.
8232         * libgnat/a-wtcoio.adb: Likewise.
8233         * libgnat/a-wtcstr.adb: Likewise.
8234         * libgnat/a-wtcstr.ads: Likewise.
8235         * libgnat/a-wtdeau.adb: Likewise.
8236         * libgnat/a-wtdeau.ads: Likewise.
8237         * libgnat/a-wtdeio.adb: Likewise.
8238         * libgnat/a-wtdeio__128.adb: Likewise.
8239         * libgnat/a-wtedit.adb: Likewise.
8240         * libgnat/a-wtedit.ads: Likewise.
8241         * libgnat/a-wtenau.adb: Likewise.
8242         * libgnat/a-wtenau.ads: Likewise.
8243         * libgnat/a-wtenio.adb: Likewise.
8244         * libgnat/a-wtfiau.adb: Likewise.
8245         * libgnat/a-wtfiau.ads: Likewise.
8246         * libgnat/a-wtfiio.adb: Likewise.
8247         * libgnat/a-wtfiio__128.adb: Likewise.
8248         * libgnat/a-wtflau.adb: Likewise.
8249         * libgnat/a-wtflau.ads: Likewise.
8250         * libgnat/a-wtflio.adb: Likewise.
8251         * libgnat/a-wtgeau.adb: Likewise.
8252         * libgnat/a-wtgeau.ads: Likewise.
8253         * libgnat/a-wtinau.adb: Likewise.
8254         * libgnat/a-wtinau.ads: Likewise.
8255         * libgnat/a-wtinio.adb: Likewise.
8256         * libgnat/a-wtinio__128.adb: Likewise.
8257         * libgnat/a-wtmoio.adb: Likewise.
8258         * libgnat/a-wtmoio.ads: Likewise.
8259         * libgnat/a-wtmoio__128.adb: Likewise.
8260         * libgnat/a-wttest.adb: Likewise.
8261         * libgnat/a-wwboio.adb: Likewise.
8262         * libgnat/a-zchhan.adb: Likewise.
8263         * libgnat/a-zchuni.adb: Likewise.
8264         * libgnat/a-zchuni.ads: Likewise.
8265         * libgnat/a-zrstfi.adb: Likewise.
8266         * libgnat/a-zrstfi.ads: Likewise.
8267         * libgnat/a-ztcoau.adb: Likewise.
8268         * libgnat/a-ztcoio.adb: Likewise.
8269         * libgnat/a-ztcstr.adb: Likewise.
8270         * libgnat/a-ztcstr.ads: Likewise.
8271         * libgnat/a-ztdeau.adb: Likewise.
8272         * libgnat/a-ztdeau.ads: Likewise.
8273         * libgnat/a-ztdeio.adb: Likewise.
8274         * libgnat/a-ztdeio__128.adb: Likewise.
8275         * libgnat/a-ztedit.adb: Likewise.
8276         * libgnat/a-ztedit.ads: Likewise.
8277         * libgnat/a-ztenau.adb: Likewise.
8278         * libgnat/a-ztenau.ads: Likewise.
8279         * libgnat/a-ztenio.adb: Likewise.
8280         * libgnat/a-ztexio.adb: Likewise.
8281         * libgnat/a-ztexio.ads: Likewise.
8282         * libgnat/a-ztfiau.adb: Likewise.
8283         * libgnat/a-ztfiau.ads: Likewise.
8284         * libgnat/a-ztfiio.adb: Likewise.
8285         * libgnat/a-ztfiio__128.adb: Likewise.
8286         * libgnat/a-ztflau.adb: Likewise.
8287         * libgnat/a-ztflau.ads: Likewise.
8288         * libgnat/a-ztflio.adb: Likewise.
8289         * libgnat/a-ztgeau.adb: Likewise.
8290         * libgnat/a-ztgeau.ads: Likewise.
8291         * libgnat/a-ztinau.adb: Likewise.
8292         * libgnat/a-ztinau.ads: Likewise.
8293         * libgnat/a-ztinio.adb: Likewise.
8294         * libgnat/a-ztinio__128.adb: Likewise.
8295         * libgnat/a-ztmoio.adb: Likewise.
8296         * libgnat/a-ztmoio__128.adb: Likewise.
8297         * libgnat/a-zttest.adb: Likewise.
8298         * libgnat/a-zzboio.adb: Likewise.
8299         * libgnat/g-allein.ads: Likewise.
8300         * libgnat/g-alleve.adb: Likewise.
8301         * libgnat/g-alleve.ads: Likewise.
8302         * libgnat/g-alleve__hard.adb: Likewise.
8303         * libgnat/g-alleve__hard.ads: Likewise.
8304         * libgnat/g-altcon.adb: Likewise.
8305         * libgnat/g-altcon.ads: Likewise.
8306         * libgnat/g-altive.ads: Likewise.
8307         * libgnat/g-alveop.adb: Likewise.
8308         * libgnat/g-alveop.ads: Likewise.
8309         * libgnat/g-alvety.ads: Likewise.
8310         * libgnat/g-alvevi.ads: Likewise.
8311         * libgnat/g-arrspl.adb: Likewise.
8312         * libgnat/g-arrspl.ads: Likewise.
8313         * libgnat/g-awk.adb: Likewise.
8314         * libgnat/g-awk.ads: Likewise.
8315         * libgnat/g-binenv.adb: Likewise.
8316         * libgnat/g-binenv.ads: Likewise.
8317         * libgnat/g-brapre.ads: Likewise.
8318         * libgnat/g-bubsor.adb: Likewise.
8319         * libgnat/g-bubsor.ads: Likewise.
8320         * libgnat/g-busora.adb: Likewise.
8321         * libgnat/g-busora.ads: Likewise.
8322         * libgnat/g-busorg.adb: Likewise.
8323         * libgnat/g-busorg.ads: Likewise.
8324         * libgnat/g-byorma.adb: Likewise.
8325         * libgnat/g-byorma.ads: Likewise.
8326         * libgnat/g-bytswa.adb: Likewise.
8327         * libgnat/g-bytswa.ads: Likewise.
8328         * libgnat/g-calend.adb: Likewise.
8329         * libgnat/g-calend.ads: Likewise.
8330         * libgnat/g-casuti.adb: Likewise.
8331         * libgnat/g-casuti.ads: Likewise.
8332         * libgnat/g-catiio.adb: Likewise.
8333         * libgnat/g-catiio.ads: Likewise.
8334         * libgnat/g-cgi.adb: Likewise.
8335         * libgnat/g-cgi.ads: Likewise.
8336         * libgnat/g-cgicoo.adb: Likewise.
8337         * libgnat/g-cgicoo.ads: Likewise.
8338         * libgnat/g-cgideb.adb: Likewise.
8339         * libgnat/g-cgideb.ads: Likewise.
8340         * libgnat/g-comlin.adb: Likewise.
8341         * libgnat/g-comlin.ads: Likewise.
8342         * libgnat/g-comver.adb: Likewise.
8343         * libgnat/g-comver.ads: Likewise.
8344         * libgnat/g-cppexc.adb: Likewise.
8345         * libgnat/g-cppexc.ads: Likewise.
8346         * libgnat/g-crc32.adb: Likewise.
8347         * libgnat/g-crc32.ads: Likewise.
8348         * libgnat/g-ctrl_c.adb: Likewise.
8349         * libgnat/g-ctrl_c.ads: Likewise.
8350         * libgnat/g-curexc.ads: Likewise.
8351         * libgnat/g-debpoo.adb: Likewise.
8352         * libgnat/g-debpoo.ads: Likewise.
8353         * libgnat/g-debuti.adb: Likewise.
8354         * libgnat/g-debuti.ads: Likewise.
8355         * libgnat/g-decstr.adb: Likewise.
8356         * libgnat/g-decstr.ads: Likewise.
8357         * libgnat/g-deutst.ads: Likewise.
8358         * libgnat/g-diopit.adb: Likewise.
8359         * libgnat/g-diopit.ads: Likewise.
8360         * libgnat/g-dirope.adb: Likewise.
8361         * libgnat/g-dirope.ads: Likewise.
8362         * libgnat/g-dynhta.adb: Likewise.
8363         * libgnat/g-dynhta.ads: Likewise.
8364         * libgnat/g-dyntab.adb: Likewise.
8365         * libgnat/g-dyntab.ads: Likewise.
8366         * libgnat/g-eacodu.adb: Likewise.
8367         * libgnat/g-encstr.adb: Likewise.
8368         * libgnat/g-encstr.ads: Likewise.
8369         * libgnat/g-enutst.ads: Likewise.
8370         * libgnat/g-excact.adb: Likewise.
8371         * libgnat/g-excact.ads: Likewise.
8372         * libgnat/g-except.ads: Likewise.
8373         * libgnat/g-exctra.adb: Likewise.
8374         * libgnat/g-exctra.ads: Likewise.
8375         * libgnat/g-expect.adb: Likewise.
8376         * libgnat/g-expect.ads: Likewise.
8377         * libgnat/g-exptty.adb: Likewise.
8378         * libgnat/g-exptty.ads: Likewise.
8379         * libgnat/g-flocon.ads: Likewise.
8380         * libgnat/g-forstr.adb: Likewise.
8381         * libgnat/g-forstr.ads: Likewise.
8382         * libgnat/g-graphs.adb: Likewise.
8383         * libgnat/g-graphs.ads: Likewise.
8384         * libgnat/g-heasor.adb: Likewise.
8385         * libgnat/g-heasor.ads: Likewise.
8386         * libgnat/g-hesora.adb: Likewise.
8387         * libgnat/g-hesora.ads: Likewise.
8388         * libgnat/g-hesorg.adb: Likewise.
8389         * libgnat/g-hesorg.ads: Likewise.
8390         * libgnat/g-htable.adb: Likewise.
8391         * libgnat/g-htable.ads: Likewise.
8392         * libgnat/g-io-put__vxworks.adb: Likewise.
8393         * libgnat/g-io.adb: Likewise.
8394         * libgnat/g-io.ads: Likewise.
8395         * libgnat/g-io_aux.adb: Likewise.
8396         * libgnat/g-io_aux.ads: Likewise.
8397         * libgnat/g-lists.adb: Likewise.
8398         * libgnat/g-lists.ads: Likewise.
8399         * libgnat/g-locfil.adb: Likewise.
8400         * libgnat/g-locfil.ads: Likewise.
8401         * libgnat/g-mbdira.adb: Likewise.
8402         * libgnat/g-mbdira.ads: Likewise.
8403         * libgnat/g-mbflra.adb: Likewise.
8404         * libgnat/g-mbflra.ads: Likewise.
8405         * libgnat/g-md5.adb: Likewise.
8406         * libgnat/g-md5.ads: Likewise.
8407         * libgnat/g-memdum.adb: Likewise.
8408         * libgnat/g-memdum.ads: Likewise.
8409         * libgnat/g-moreex.adb: Likewise.
8410         * libgnat/g-moreex.ads: Likewise.
8411         * libgnat/g-os_lib.adb: Likewise.
8412         * libgnat/g-os_lib.ads: Likewise.
8413         * libgnat/g-pehage.adb: Likewise.
8414         * libgnat/g-pehage.ads: Likewise.
8415         * libgnat/g-rannum.adb: Likewise.
8416         * libgnat/g-rannum.ads: Likewise.
8417         * libgnat/g-regexp.adb: Likewise.
8418         * libgnat/g-regexp.ads: Likewise.
8419         * libgnat/g-regist.adb: Likewise.
8420         * libgnat/g-regist.ads: Likewise.
8421         * libgnat/g-regpat.adb: Likewise.
8422         * libgnat/g-regpat.ads: Likewise.
8423         * libgnat/g-rewdat.adb: Likewise.
8424         * libgnat/g-rewdat.ads: Likewise.
8425         * libgnat/g-sechas.adb: Likewise.
8426         * libgnat/g-sechas.ads: Likewise.
8427         * libgnat/g-sehamd.adb: Likewise.
8428         * libgnat/g-sehamd.ads: Likewise.
8429         * libgnat/g-sehash.adb: Likewise.
8430         * libgnat/g-sehash.ads: Likewise.
8431         * libgnat/g-sercom.adb: Likewise.
8432         * libgnat/g-sercom.ads: Likewise.
8433         * libgnat/g-sercom__linux.adb: Likewise.
8434         * libgnat/g-sercom__mingw.adb: Likewise.
8435         * libgnat/g-sestin.ads: Likewise.
8436         * libgnat/g-sets.adb: Likewise.
8437         * libgnat/g-sets.ads: Likewise.
8438         * libgnat/g-sha1.adb: Likewise.
8439         * libgnat/g-sha1.ads: Likewise.
8440         * libgnat/g-sha224.ads: Likewise.
8441         * libgnat/g-sha256.ads: Likewise.
8442         * libgnat/g-sha384.ads: Likewise.
8443         * libgnat/g-sha512.ads: Likewise.
8444         * libgnat/g-shsh32.adb: Likewise.
8445         * libgnat/g-shsh32.ads: Likewise.
8446         * libgnat/g-shsh64.adb: Likewise.
8447         * libgnat/g-shsh64.ads: Likewise.
8448         * libgnat/g-shshco.adb: Likewise.
8449         * libgnat/g-shshco.ads: Likewise.
8450         * libgnat/g-soccon.ads: Likewise.
8451         * libgnat/g-socket.adb: Likewise.
8452         * libgnat/g-socket.ads: Likewise.
8453         * libgnat/g-socket__dummy.adb: Likewise.
8454         * libgnat/g-socket__dummy.ads: Likewise.
8455         * libgnat/g-socpol.adb: Likewise.
8456         * libgnat/g-socpol.ads: Likewise.
8457         * libgnat/g-socpol__dummy.adb: Likewise.
8458         * libgnat/g-socpol__dummy.ads: Likewise.
8459         * libgnat/g-socthi.adb: Likewise.
8460         * libgnat/g-socthi.ads: Likewise.
8461         * libgnat/g-socthi__dummy.adb: Likewise.
8462         * libgnat/g-socthi__dummy.ads: Likewise.
8463         * libgnat/g-socthi__mingw.adb: Likewise.
8464         * libgnat/g-socthi__mingw.ads: Likewise.
8465         * libgnat/g-socthi__vxworks.adb: Likewise.
8466         * libgnat/g-socthi__vxworks.ads: Likewise.
8467         * libgnat/g-soliop.ads: Likewise.
8468         * libgnat/g-soliop__lynxos.ads: Likewise.
8469         * libgnat/g-soliop__mingw.ads: Likewise.
8470         * libgnat/g-soliop__qnx.ads: Likewise.
8471         * libgnat/g-soliop__solaris.ads: Likewise.
8472         * libgnat/g-sopowa.adb: Likewise.
8473         * libgnat/g-sopowa__mingw.adb: Likewise.
8474         * libgnat/g-sopowa__posix.adb: Likewise.
8475         * libgnat/g-sothco.adb: Likewise.
8476         * libgnat/g-sothco.ads: Likewise.
8477         * libgnat/g-sothco__dummy.adb: Likewise.
8478         * libgnat/g-sothco__dummy.ads: Likewise.
8479         * libgnat/g-souinf.ads: Likewise.
8480         * libgnat/g-spchge.adb: Likewise.
8481         * libgnat/g-spchge.ads: Likewise.
8482         * libgnat/g-speche.adb: Likewise.
8483         * libgnat/g-speche.ads: Likewise.
8484         * libgnat/g-spipat.adb: Likewise.
8485         * libgnat/g-spipat.ads: Likewise.
8486         * libgnat/g-spitbo.adb: Likewise.
8487         * libgnat/g-spitbo.ads: Likewise.
8488         * libgnat/g-spogwa.adb: Likewise.
8489         * libgnat/g-spogwa.ads: Likewise.
8490         * libgnat/g-sptabo.ads: Likewise.
8491         * libgnat/g-sptain.ads: Likewise.
8492         * libgnat/g-sptavs.ads: Likewise.
8493         * libgnat/g-sse.ads: Likewise.
8494         * libgnat/g-ssvety.ads: Likewise.
8495         * libgnat/g-sthcso.adb: Likewise.
8496         * libgnat/g-stheme.adb: Likewise.
8497         * libgnat/g-strhas.ads: Likewise.
8498         * libgnat/g-string.adb: Likewise.
8499         * libgnat/g-string.ads: Likewise.
8500         * libgnat/g-strspl.ads: Likewise.
8501         * libgnat/g-stseme.adb: Likewise.
8502         * libgnat/g-stsifd__sockets.adb: Likewise.
8503         * libgnat/g-table.adb: Likewise.
8504         * libgnat/g-table.ads: Likewise.
8505         * libgnat/g-tasloc.adb: Likewise.
8506         * libgnat/g-tasloc.ads: Likewise.
8507         * libgnat/g-timsta.adb: Likewise.
8508         * libgnat/g-timsta.ads: Likewise.
8509         * libgnat/g-traceb.adb: Likewise.
8510         * libgnat/g-traceb.ads: Likewise.
8511         * libgnat/g-trasym.adb: Likewise.
8512         * libgnat/g-trasym.ads: Likewise.
8513         * libgnat/g-tty.adb: Likewise.
8514         * libgnat/g-tty.ads: Likewise.
8515         * libgnat/g-u3spch.adb: Likewise.
8516         * libgnat/g-u3spch.ads: Likewise.
8517         * libgnat/g-utf_32.adb: Likewise.
8518         * libgnat/g-utf_32.ads: Likewise.
8519         * libgnat/g-wispch.adb: Likewise.
8520         * libgnat/g-wispch.ads: Likewise.
8521         * libgnat/g-wistsp.ads: Likewise.
8522         * libgnat/g-zspche.adb: Likewise.
8523         * libgnat/g-zspche.ads: Likewise.
8524         * libgnat/g-zstspl.ads: Likewise.
8525         * libgnat/gnat.ads: Likewise.
8526         * libgnat/i-c.adb: Likewise.
8527         * libgnat/i-cexten.ads: Likewise.
8528         * libgnat/i-cexten__128.ads: Likewise.
8529         * libgnat/i-cobol.adb: Likewise.
8530         * libgnat/i-cobol.ads: Likewise.
8531         * libgnat/i-cpoint.adb: Likewise.
8532         * libgnat/i-cpoint.ads: Likewise.
8533         * libgnat/i-cstrea.adb: Likewise.
8534         * libgnat/i-cstrea.ads: Likewise.
8535         * libgnat/i-cstrin.adb: Likewise.
8536         * libgnat/i-cstrin.ads: Likewise.
8537         * libgnat/i-fortra.adb: Likewise.
8538         * libgnat/i-pacdec.adb: Likewise.
8539         * libgnat/i-pacdec.ads: Likewise.
8540         * libgnat/i-vxwoio.adb: Likewise.
8541         * libgnat/i-vxwoio.ads: Likewise.
8542         * libgnat/i-vxwork.ads: Likewise.
8543         * libgnat/i-vxwork__x86.ads: Likewise.
8544         * libgnat/interfac.ads: Likewise.
8545         * libgnat/interfac__2020.ads: Likewise.
8546         * libgnat/memtrack.adb: Likewise.
8547         * libgnat/s-addima.adb: Likewise.
8548         * libgnat/s-addima.ads: Likewise.
8549         * libgnat/s-addope.adb: Likewise.
8550         * libgnat/s-addope.ads: Likewise.
8551         * libgnat/s-aoinar.adb: Likewise.
8552         * libgnat/s-aoinar.ads: Likewise.
8553         * libgnat/s-aomoar.adb: Likewise.
8554         * libgnat/s-aomoar.ads: Likewise.
8555         * libgnat/s-aotase.adb: Likewise.
8556         * libgnat/s-aotase.ads: Likewise.
8557         * libgnat/s-aridou.adb: Likewise.
8558         * libgnat/s-aridou.ads: Likewise.
8559         * libgnat/s-arit128.adb: Likewise.
8560         * libgnat/s-arit128.ads: Likewise.
8561         * libgnat/s-arit32.adb: Likewise.
8562         * libgnat/s-arit32.ads: Likewise.
8563         * libgnat/s-arit64.adb: Likewise.
8564         * libgnat/s-arit64.ads: Likewise.
8565         * libgnat/s-assert.adb: Likewise.
8566         * libgnat/s-assert.ads: Likewise.
8567         * libgnat/s-atacco.adb: Likewise.
8568         * libgnat/s-atacco.ads: Likewise.
8569         * libgnat/s-atocou.adb: Likewise.
8570         * libgnat/s-atocou.ads: Likewise.
8571         * libgnat/s-atocou__builtin.adb: Likewise.
8572         * libgnat/s-atocou__x86.adb: Likewise.
8573         * libgnat/s-atoope.ads: Likewise.
8574         * libgnat/s-atopex.adb: Likewise.
8575         * libgnat/s-atopex.ads: Likewise.
8576         * libgnat/s-atopri.adb: Likewise.
8577         * libgnat/s-atopri.ads: Likewise.
8578         * libgnat/s-auxdec.adb: Likewise.
8579         * libgnat/s-auxdec.ads: Likewise.
8580         * libgnat/s-bignum.adb: Likewise.
8581         * libgnat/s-bignum.ads: Likewise.
8582         * libgnat/s-bitfie.ads: Likewise.
8583         * libgnat/s-bitops.adb: Likewise.
8584         * libgnat/s-bitops.ads: Likewise.
8585         * libgnat/s-bituti.adb: Likewise.
8586         * libgnat/s-bituti.ads: Likewise.
8587         * libgnat/s-boarop.ads: Likewise.
8588         * libgnat/s-boustr.adb: Likewise.
8589         * libgnat/s-boustr.ads: Likewise.
8590         * libgnat/s-bytswa.ads: Likewise.
8591         * libgnat/s-carsi8.adb: Likewise.
8592         * libgnat/s-carsi8.ads: Likewise.
8593         * libgnat/s-carun8.adb: Likewise.
8594         * libgnat/s-carun8.ads: Likewise.
8595         * libgnat/s-casi128.adb: Likewise.
8596         * libgnat/s-casi128.ads: Likewise.
8597         * libgnat/s-casi16.adb: Likewise.
8598         * libgnat/s-casi16.ads: Likewise.
8599         * libgnat/s-casi32.adb: Likewise.
8600         * libgnat/s-casi32.ads: Likewise.
8601         * libgnat/s-casi64.adb: Likewise.
8602         * libgnat/s-casi64.ads: Likewise.
8603         * libgnat/s-casuti.adb: Likewise.
8604         * libgnat/s-casuti.ads: Likewise.
8605         * libgnat/s-caun128.adb: Likewise.
8606         * libgnat/s-caun128.ads: Likewise.
8607         * libgnat/s-caun16.adb: Likewise.
8608         * libgnat/s-caun16.ads: Likewise.
8609         * libgnat/s-caun32.adb: Likewise.
8610         * libgnat/s-caun32.ads: Likewise.
8611         * libgnat/s-caun64.adb: Likewise.
8612         * libgnat/s-caun64.ads: Likewise.
8613         * libgnat/s-chepoo.ads: Likewise.
8614         * libgnat/s-commun.adb: Likewise.
8615         * libgnat/s-commun.ads: Likewise.
8616         * libgnat/s-conca2.adb: Likewise.
8617         * libgnat/s-conca2.ads: Likewise.
8618         * libgnat/s-conca3.adb: Likewise.
8619         * libgnat/s-conca3.ads: Likewise.
8620         * libgnat/s-conca4.adb: Likewise.
8621         * libgnat/s-conca4.ads: Likewise.
8622         * libgnat/s-conca5.adb: Likewise.
8623         * libgnat/s-conca5.ads: Likewise.
8624         * libgnat/s-conca6.adb: Likewise.
8625         * libgnat/s-conca6.ads: Likewise.
8626         * libgnat/s-conca7.adb: Likewise.
8627         * libgnat/s-conca7.ads: Likewise.
8628         * libgnat/s-conca8.adb: Likewise.
8629         * libgnat/s-conca8.ads: Likewise.
8630         * libgnat/s-conca9.adb: Likewise.
8631         * libgnat/s-conca9.ads: Likewise.
8632         * libgnat/s-crc32.adb: Likewise.
8633         * libgnat/s-crc32.ads: Likewise.
8634         * libgnat/s-crtl.ads: Likewise.
8635         * libgnat/s-dfmkio.ads: Likewise.
8636         * libgnat/s-dfmopr.ads: Likewise.
8637         * libgnat/s-dgmgop.ads: Likewise.
8638         * libgnat/s-diflio.adb: Likewise.
8639         * libgnat/s-diflio.ads: Likewise.
8640         * libgnat/s-diflmk.ads: Likewise.
8641         * libgnat/s-digemk.ads: Likewise.
8642         * libgnat/s-diinio.adb: Likewise.
8643         * libgnat/s-diinio.ads: Likewise.
8644         * libgnat/s-dilomk.ads: Likewise.
8645         * libgnat/s-dim.ads: Likewise.
8646         * libgnat/s-dimkio.ads: Likewise.
8647         * libgnat/s-dimmks.ads: Likewise.
8648         * libgnat/s-direio.adb: Likewise.
8649         * libgnat/s-direio.ads: Likewise.
8650         * libgnat/s-dlmkio.ads: Likewise.
8651         * libgnat/s-dlmopr.ads: Likewise.
8652         * libgnat/s-dmotpr.ads: Likewise.
8653         * libgnat/s-dsaser.ads: Likewise.
8654         * libgnat/s-dwalin.adb: Likewise.
8655         * libgnat/s-dwalin.ads: Likewise.
8656         * libgnat/s-elaall.adb: Likewise.
8657         * libgnat/s-elaall.ads: Likewise.
8658         * libgnat/s-excdeb.adb: Likewise.
8659         * libgnat/s-excdeb.ads: Likewise.
8660         * libgnat/s-except.adb: Likewise.
8661         * libgnat/s-except.ads: Likewise.
8662         * libgnat/s-excmac__arm.adb: Likewise.
8663         * libgnat/s-excmac__arm.ads: Likewise.
8664         * libgnat/s-excmac__gcc.adb: Likewise.
8665         * libgnat/s-excmac__gcc.ads: Likewise.
8666         * libgnat/s-exctab.adb: Likewise.
8667         * libgnat/s-exctab.ads: Likewise.
8668         * libgnat/s-exctra.adb: Likewise.
8669         * libgnat/s-exctra.ads: Likewise.
8670         * libgnat/s-exnint.adb: Likewise.
8671         * libgnat/s-exnint.ads: Likewise.
8672         * libgnat/s-exnllf.adb: Likewise.
8673         * libgnat/s-exnllf.ads: Likewise.
8674         * libgnat/s-exnlli.adb: Likewise.
8675         * libgnat/s-exnlli.ads: Likewise.
8676         * libgnat/s-exnllli.ads: Likewise.
8677         * libgnat/s-expint.adb: Likewise.
8678         * libgnat/s-expint.ads: Likewise.
8679         * libgnat/s-explli.adb: Likewise.
8680         * libgnat/s-explli.ads: Likewise.
8681         * libgnat/s-expllli.ads: Likewise.
8682         * libgnat/s-explllu.ads: Likewise.
8683         * libgnat/s-expllu.adb: Likewise.
8684         * libgnat/s-expllu.ads: Likewise.
8685         * libgnat/s-expmod.adb: Likewise.
8686         * libgnat/s-expmod.ads: Likewise.
8687         * libgnat/s-exponn.adb: Likewise.
8688         * libgnat/s-exponn.ads: Likewise.
8689         * libgnat/s-expont.adb: Likewise.
8690         * libgnat/s-expont.ads: Likewise.
8691         * libgnat/s-exponu.adb: Likewise.
8692         * libgnat/s-exponu.ads: Likewise.
8693         * libgnat/s-expuns.adb: Likewise.
8694         * libgnat/s-expuns.ads: Likewise.
8695         * libgnat/s-fatflt.ads: Likewise.
8696         * libgnat/s-fatgen.adb: Likewise.
8697         * libgnat/s-fatgen.ads: Likewise.
8698         * libgnat/s-fatlfl.ads: Likewise.
8699         * libgnat/s-fatllf.ads: Likewise.
8700         * libgnat/s-ficobl.ads: Likewise.
8701         * libgnat/s-filatt.ads: Likewise.
8702         * libgnat/s-fileio.adb: Likewise.
8703         * libgnat/s-fileio.ads: Likewise.
8704         * libgnat/s-finmas.adb: Likewise.
8705         * libgnat/s-finmas.ads: Likewise.
8706         * libgnat/s-finroo.adb: Likewise.
8707         * libgnat/s-finroo.ads: Likewise.
8708         * libgnat/s-flocon.adb: Likewise.
8709         * libgnat/s-flocon.ads: Likewise.
8710         * libgnat/s-flocon__none.adb: Likewise.
8711         * libgnat/s-fode128.ads: Likewise.
8712         * libgnat/s-fode32.ads: Likewise.
8713         * libgnat/s-fode64.ads: Likewise.
8714         * libgnat/s-fofi128.ads: Likewise.
8715         * libgnat/s-fofi32.ads: Likewise.
8716         * libgnat/s-fofi64.ads: Likewise.
8717         * libgnat/s-fore_d.adb: Likewise.
8718         * libgnat/s-fore_d.ads: Likewise.
8719         * libgnat/s-fore_f.adb: Likewise.
8720         * libgnat/s-fore_f.ads: Likewise.
8721         * libgnat/s-forrea.adb: Likewise.
8722         * libgnat/s-forrea.ads: Likewise.
8723         * libgnat/s-gearop.adb: Likewise.
8724         * libgnat/s-gearop.ads: Likewise.
8725         * libgnat/s-genbig.adb: Likewise.
8726         * libgnat/s-genbig.ads: Likewise.
8727         * libgnat/s-geveop.adb: Likewise.
8728         * libgnat/s-geveop.ads: Likewise.
8729         * libgnat/s-gloloc.adb: Likewise.
8730         * libgnat/s-gloloc.ads: Likewise.
8731         * libgnat/s-gloloc__mingw.adb: Likewise.
8732         * libgnat/s-htable.adb: Likewise.
8733         * libgnat/s-htable.ads: Likewise.
8734         * libgnat/s-imageb.adb: Likewise.
8735         * libgnat/s-imageb.ads: Likewise.
8736         * libgnat/s-imaged.adb: Likewise.
8737         * libgnat/s-imaged.ads: Likewise.
8738         * libgnat/s-imagef.adb: Likewise.
8739         * libgnat/s-imagef.ads: Likewise.
8740         * libgnat/s-imagei.adb: Likewise.
8741         * libgnat/s-imagei.ads: Likewise.
8742         * libgnat/s-imageu.adb: Likewise.
8743         * libgnat/s-imageu.ads: Likewise.
8744         * libgnat/s-imagew.adb: Likewise.
8745         * libgnat/s-imagew.ads: Likewise.
8746         * libgnat/s-imde128.ads: Likewise.
8747         * libgnat/s-imde32.ads: Likewise.
8748         * libgnat/s-imde64.ads: Likewise.
8749         * libgnat/s-imenne.adb: Likewise.
8750         * libgnat/s-imenne.ads: Likewise.
8751         * libgnat/s-imfi128.ads: Likewise.
8752         * libgnat/s-imfi32.ads: Likewise.
8753         * libgnat/s-imfi64.ads: Likewise.
8754         * libgnat/s-imgbiu.adb: Likewise.
8755         * libgnat/s-imgbiu.ads: Likewise.
8756         * libgnat/s-imgboo.adb: Likewise.
8757         * libgnat/s-imgboo.ads: Likewise.
8758         * libgnat/s-imgcha.adb: Likewise.
8759         * libgnat/s-imgcha.ads: Likewise.
8760         * libgnat/s-imgenu.adb: Likewise.
8761         * libgnat/s-imgenu.ads: Likewise.
8762         * libgnat/s-imgint.adb: Likewise.
8763         * libgnat/s-imgint.ads: Likewise.
8764         * libgnat/s-imgllb.adb: Likewise.
8765         * libgnat/s-imgllb.ads: Likewise.
8766         * libgnat/s-imglli.adb: Likewise.
8767         * libgnat/s-imglli.ads: Likewise.
8768         * libgnat/s-imglllb.ads: Likewise.
8769         * libgnat/s-imgllli.ads: Likewise.
8770         * libgnat/s-imglllu.ads: Likewise.
8771         * libgnat/s-imglllw.ads: Likewise.
8772         * libgnat/s-imgllu.adb: Likewise.
8773         * libgnat/s-imgllu.ads: Likewise.
8774         * libgnat/s-imgllw.adb: Likewise.
8775         * libgnat/s-imgllw.ads: Likewise.
8776         * libgnat/s-imgrea.adb: Likewise.
8777         * libgnat/s-imgrea.ads: Likewise.
8778         * libgnat/s-imguns.adb: Likewise.
8779         * libgnat/s-imguns.ads: Likewise.
8780         * libgnat/s-imguti.adb: Likewise.
8781         * libgnat/s-imguti.ads: Likewise.
8782         * libgnat/s-imgwch.adb: Likewise.
8783         * libgnat/s-imgwch.ads: Likewise.
8784         * libgnat/s-imgwiu.adb: Likewise.
8785         * libgnat/s-imgwiu.ads: Likewise.
8786         * libgnat/s-io.adb: Likewise.
8787         * libgnat/s-io.ads: Likewise.
8788         * libgnat/s-llflex.ads: Likewise.
8789         * libgnat/s-maccod.ads: Likewise.
8790         * libgnat/s-mantis.adb: Likewise.
8791         * libgnat/s-mantis.ads: Likewise.
8792         * libgnat/s-mastop.adb: Likewise.
8793         * libgnat/s-mastop.ads: Likewise.
8794         * libgnat/s-memcop.ads: Likewise.
8795         * libgnat/s-memory.adb: Likewise.
8796         * libgnat/s-memory.ads: Likewise.
8797         * libgnat/s-mmap.adb: Likewise.
8798         * libgnat/s-mmap.ads: Likewise.
8799         * libgnat/s-mmauni__long.ads: Likewise.
8800         * libgnat/s-mmosin__mingw.adb: Likewise.
8801         * libgnat/s-mmosin__mingw.ads: Likewise.
8802         * libgnat/s-mmosin__unix.adb: Likewise.
8803         * libgnat/s-mmosin__unix.ads: Likewise.
8804         * libgnat/s-multip.adb: Likewise.
8805         * libgnat/s-objrea.adb: Likewise.
8806         * libgnat/s-objrea.ads: Likewise.
8807         * libgnat/s-optide.adb: Likewise.
8808         * libgnat/s-os_lib.adb: Likewise.
8809         * libgnat/s-os_lib.ads: Likewise.
8810         * libgnat/s-osprim.ads: Likewise.
8811         * libgnat/s-osprim__darwin.adb: Likewise.
8812         * libgnat/s-osprim__lynxos.ads: Likewise.
8813         * libgnat/s-osprim__mingw.adb: Likewise.
8814         * libgnat/s-osprim__posix.adb: Likewise.
8815         * libgnat/s-osprim__posix2008.adb: Likewise.
8816         * libgnat/s-osprim__rtems.adb: Likewise.
8817         * libgnat/s-osprim__solaris.adb: Likewise.
8818         * libgnat/s-osprim__unix.adb: Likewise.
8819         * libgnat/s-osprim__vxworks.adb: Likewise.
8820         * libgnat/s-osprim__x32.adb: Likewise.
8821         * libgnat/s-osvers__vxworks-653.ads: Likewise.
8822         * libgnat/s-pack03.adb: Likewise.
8823         * libgnat/s-pack03.ads: Likewise.
8824         * libgnat/s-pack05.adb: Likewise.
8825         * libgnat/s-pack05.ads: Likewise.
8826         * libgnat/s-pack06.adb: Likewise.
8827         * libgnat/s-pack06.ads: Likewise.
8828         * libgnat/s-pack07.adb: Likewise.
8829         * libgnat/s-pack07.ads: Likewise.
8830         * libgnat/s-pack09.adb: Likewise.
8831         * libgnat/s-pack09.ads: Likewise.
8832         * libgnat/s-pack10.adb: Likewise.
8833         * libgnat/s-pack10.ads: Likewise.
8834         * libgnat/s-pack100.adb: Likewise.
8835         * libgnat/s-pack100.ads: Likewise.
8836         * libgnat/s-pack101.adb: Likewise.
8837         * libgnat/s-pack101.ads: Likewise.
8838         * libgnat/s-pack102.adb: Likewise.
8839         * libgnat/s-pack102.ads: Likewise.
8840         * libgnat/s-pack103.adb: Likewise.
8841         * libgnat/s-pack103.ads: Likewise.
8842         * libgnat/s-pack104.adb: Likewise.
8843         * libgnat/s-pack104.ads: Likewise.
8844         * libgnat/s-pack105.adb: Likewise.
8845         * libgnat/s-pack105.ads: Likewise.
8846         * libgnat/s-pack106.adb: Likewise.
8847         * libgnat/s-pack106.ads: Likewise.
8848         * libgnat/s-pack107.adb: Likewise.
8849         * libgnat/s-pack107.ads: Likewise.
8850         * libgnat/s-pack108.adb: Likewise.
8851         * libgnat/s-pack108.ads: Likewise.
8852         * libgnat/s-pack109.adb: Likewise.
8853         * libgnat/s-pack109.ads: Likewise.
8854         * libgnat/s-pack11.adb: Likewise.
8855         * libgnat/s-pack11.ads: Likewise.
8856         * libgnat/s-pack110.adb: Likewise.
8857         * libgnat/s-pack110.ads: Likewise.
8858         * libgnat/s-pack111.adb: Likewise.
8859         * libgnat/s-pack111.ads: Likewise.
8860         * libgnat/s-pack112.adb: Likewise.
8861         * libgnat/s-pack112.ads: Likewise.
8862         * libgnat/s-pack113.adb: Likewise.
8863         * libgnat/s-pack113.ads: Likewise.
8864         * libgnat/s-pack114.adb: Likewise.
8865         * libgnat/s-pack114.ads: Likewise.
8866         * libgnat/s-pack115.adb: Likewise.
8867         * libgnat/s-pack115.ads: Likewise.
8868         * libgnat/s-pack116.adb: Likewise.
8869         * libgnat/s-pack116.ads: Likewise.
8870         * libgnat/s-pack117.adb: Likewise.
8871         * libgnat/s-pack117.ads: Likewise.
8872         * libgnat/s-pack118.adb: Likewise.
8873         * libgnat/s-pack118.ads: Likewise.
8874         * libgnat/s-pack119.adb: Likewise.
8875         * libgnat/s-pack119.ads: Likewise.
8876         * libgnat/s-pack12.adb: Likewise.
8877         * libgnat/s-pack12.ads: Likewise.
8878         * libgnat/s-pack120.adb: Likewise.
8879         * libgnat/s-pack120.ads: Likewise.
8880         * libgnat/s-pack121.adb: Likewise.
8881         * libgnat/s-pack121.ads: Likewise.
8882         * libgnat/s-pack122.adb: Likewise.
8883         * libgnat/s-pack122.ads: Likewise.
8884         * libgnat/s-pack123.adb: Likewise.
8885         * libgnat/s-pack123.ads: Likewise.
8886         * libgnat/s-pack124.adb: Likewise.
8887         * libgnat/s-pack124.ads: Likewise.
8888         * libgnat/s-pack125.adb: Likewise.
8889         * libgnat/s-pack125.ads: Likewise.
8890         * libgnat/s-pack126.adb: Likewise.
8891         * libgnat/s-pack126.ads: Likewise.
8892         * libgnat/s-pack127.adb: Likewise.
8893         * libgnat/s-pack127.ads: Likewise.
8894         * libgnat/s-pack13.adb: Likewise.
8895         * libgnat/s-pack13.ads: Likewise.
8896         * libgnat/s-pack14.adb: Likewise.
8897         * libgnat/s-pack14.ads: Likewise.
8898         * libgnat/s-pack15.adb: Likewise.
8899         * libgnat/s-pack15.ads: Likewise.
8900         * libgnat/s-pack17.adb: Likewise.
8901         * libgnat/s-pack17.ads: Likewise.
8902         * libgnat/s-pack18.adb: Likewise.
8903         * libgnat/s-pack18.ads: Likewise.
8904         * libgnat/s-pack19.adb: Likewise.
8905         * libgnat/s-pack19.ads: Likewise.
8906         * libgnat/s-pack20.adb: Likewise.
8907         * libgnat/s-pack20.ads: Likewise.
8908         * libgnat/s-pack21.adb: Likewise.
8909         * libgnat/s-pack21.ads: Likewise.
8910         * libgnat/s-pack22.adb: Likewise.
8911         * libgnat/s-pack22.ads: Likewise.
8912         * libgnat/s-pack23.adb: Likewise.
8913         * libgnat/s-pack23.ads: Likewise.
8914         * libgnat/s-pack24.adb: Likewise.
8915         * libgnat/s-pack24.ads: Likewise.
8916         * libgnat/s-pack25.adb: Likewise.
8917         * libgnat/s-pack25.ads: Likewise.
8918         * libgnat/s-pack26.adb: Likewise.
8919         * libgnat/s-pack26.ads: Likewise.
8920         * libgnat/s-pack27.adb: Likewise.
8921         * libgnat/s-pack27.ads: Likewise.
8922         * libgnat/s-pack28.adb: Likewise.
8923         * libgnat/s-pack28.ads: Likewise.
8924         * libgnat/s-pack29.adb: Likewise.
8925         * libgnat/s-pack29.ads: Likewise.
8926         * libgnat/s-pack30.adb: Likewise.
8927         * libgnat/s-pack30.ads: Likewise.
8928         * libgnat/s-pack31.adb: Likewise.
8929         * libgnat/s-pack31.ads: Likewise.
8930         * libgnat/s-pack33.adb: Likewise.
8931         * libgnat/s-pack33.ads: Likewise.
8932         * libgnat/s-pack34.adb: Likewise.
8933         * libgnat/s-pack34.ads: Likewise.
8934         * libgnat/s-pack35.adb: Likewise.
8935         * libgnat/s-pack35.ads: Likewise.
8936         * libgnat/s-pack36.adb: Likewise.
8937         * libgnat/s-pack36.ads: Likewise.
8938         * libgnat/s-pack37.adb: Likewise.
8939         * libgnat/s-pack37.ads: Likewise.
8940         * libgnat/s-pack38.adb: Likewise.
8941         * libgnat/s-pack38.ads: Likewise.
8942         * libgnat/s-pack39.adb: Likewise.
8943         * libgnat/s-pack39.ads: Likewise.
8944         * libgnat/s-pack40.adb: Likewise.
8945         * libgnat/s-pack40.ads: Likewise.
8946         * libgnat/s-pack41.adb: Likewise.
8947         * libgnat/s-pack41.ads: Likewise.
8948         * libgnat/s-pack42.adb: Likewise.
8949         * libgnat/s-pack42.ads: Likewise.
8950         * libgnat/s-pack43.adb: Likewise.
8951         * libgnat/s-pack43.ads: Likewise.
8952         * libgnat/s-pack44.adb: Likewise.
8953         * libgnat/s-pack44.ads: Likewise.
8954         * libgnat/s-pack45.adb: Likewise.
8955         * libgnat/s-pack45.ads: Likewise.
8956         * libgnat/s-pack46.adb: Likewise.
8957         * libgnat/s-pack46.ads: Likewise.
8958         * libgnat/s-pack47.adb: Likewise.
8959         * libgnat/s-pack47.ads: Likewise.
8960         * libgnat/s-pack48.adb: Likewise.
8961         * libgnat/s-pack48.ads: Likewise.
8962         * libgnat/s-pack49.adb: Likewise.
8963         * libgnat/s-pack49.ads: Likewise.
8964         * libgnat/s-pack50.adb: Likewise.
8965         * libgnat/s-pack50.ads: Likewise.
8966         * libgnat/s-pack51.adb: Likewise.
8967         * libgnat/s-pack51.ads: Likewise.
8968         * libgnat/s-pack52.adb: Likewise.
8969         * libgnat/s-pack52.ads: Likewise.
8970         * libgnat/s-pack53.adb: Likewise.
8971         * libgnat/s-pack53.ads: Likewise.
8972         * libgnat/s-pack54.adb: Likewise.
8973         * libgnat/s-pack54.ads: Likewise.
8974         * libgnat/s-pack55.adb: Likewise.
8975         * libgnat/s-pack55.ads: Likewise.
8976         * libgnat/s-pack56.adb: Likewise.
8977         * libgnat/s-pack56.ads: Likewise.
8978         * libgnat/s-pack57.adb: Likewise.
8979         * libgnat/s-pack57.ads: Likewise.
8980         * libgnat/s-pack58.adb: Likewise.
8981         * libgnat/s-pack58.ads: Likewise.
8982         * libgnat/s-pack59.adb: Likewise.
8983         * libgnat/s-pack59.ads: Likewise.
8984         * libgnat/s-pack60.adb: Likewise.
8985         * libgnat/s-pack60.ads: Likewise.
8986         * libgnat/s-pack61.adb: Likewise.
8987         * libgnat/s-pack61.ads: Likewise.
8988         * libgnat/s-pack62.adb: Likewise.
8989         * libgnat/s-pack62.ads: Likewise.
8990         * libgnat/s-pack63.adb: Likewise.
8991         * libgnat/s-pack63.ads: Likewise.
8992         * libgnat/s-pack65.adb: Likewise.
8993         * libgnat/s-pack65.ads: Likewise.
8994         * libgnat/s-pack66.adb: Likewise.
8995         * libgnat/s-pack66.ads: Likewise.
8996         * libgnat/s-pack67.adb: Likewise.
8997         * libgnat/s-pack67.ads: Likewise.
8998         * libgnat/s-pack68.adb: Likewise.
8999         * libgnat/s-pack68.ads: Likewise.
9000         * libgnat/s-pack69.adb: Likewise.
9001         * libgnat/s-pack69.ads: Likewise.
9002         * libgnat/s-pack70.adb: Likewise.
9003         * libgnat/s-pack70.ads: Likewise.
9004         * libgnat/s-pack71.adb: Likewise.
9005         * libgnat/s-pack71.ads: Likewise.
9006         * libgnat/s-pack72.adb: Likewise.
9007         * libgnat/s-pack72.ads: Likewise.
9008         * libgnat/s-pack73.adb: Likewise.
9009         * libgnat/s-pack73.ads: Likewise.
9010         * libgnat/s-pack74.adb: Likewise.
9011         * libgnat/s-pack74.ads: Likewise.
9012         * libgnat/s-pack75.adb: Likewise.
9013         * libgnat/s-pack75.ads: Likewise.
9014         * libgnat/s-pack76.adb: Likewise.
9015         * libgnat/s-pack76.ads: Likewise.
9016         * libgnat/s-pack77.adb: Likewise.
9017         * libgnat/s-pack77.ads: Likewise.
9018         * libgnat/s-pack78.adb: Likewise.
9019         * libgnat/s-pack78.ads: Likewise.
9020         * libgnat/s-pack79.adb: Likewise.
9021         * libgnat/s-pack79.ads: Likewise.
9022         * libgnat/s-pack80.adb: Likewise.
9023         * libgnat/s-pack80.ads: Likewise.
9024         * libgnat/s-pack81.adb: Likewise.
9025         * libgnat/s-pack81.ads: Likewise.
9026         * libgnat/s-pack82.adb: Likewise.
9027         * libgnat/s-pack82.ads: Likewise.
9028         * libgnat/s-pack83.adb: Likewise.
9029         * libgnat/s-pack83.ads: Likewise.
9030         * libgnat/s-pack84.adb: Likewise.
9031         * libgnat/s-pack84.ads: Likewise.
9032         * libgnat/s-pack85.adb: Likewise.
9033         * libgnat/s-pack85.ads: Likewise.
9034         * libgnat/s-pack86.adb: Likewise.
9035         * libgnat/s-pack86.ads: Likewise.
9036         * libgnat/s-pack87.adb: Likewise.
9037         * libgnat/s-pack87.ads: Likewise.
9038         * libgnat/s-pack88.adb: Likewise.
9039         * libgnat/s-pack88.ads: Likewise.
9040         * libgnat/s-pack89.adb: Likewise.
9041         * libgnat/s-pack89.ads: Likewise.
9042         * libgnat/s-pack90.adb: Likewise.
9043         * libgnat/s-pack90.ads: Likewise.
9044         * libgnat/s-pack91.adb: Likewise.
9045         * libgnat/s-pack91.ads: Likewise.
9046         * libgnat/s-pack92.adb: Likewise.
9047         * libgnat/s-pack92.ads: Likewise.
9048         * libgnat/s-pack93.adb: Likewise.
9049         * libgnat/s-pack93.ads: Likewise.
9050         * libgnat/s-pack94.adb: Likewise.
9051         * libgnat/s-pack94.ads: Likewise.
9052         * libgnat/s-pack95.adb: Likewise.
9053         * libgnat/s-pack95.ads: Likewise.
9054         * libgnat/s-pack96.adb: Likewise.
9055         * libgnat/s-pack96.ads: Likewise.
9056         * libgnat/s-pack97.adb: Likewise.
9057         * libgnat/s-pack97.ads: Likewise.
9058         * libgnat/s-pack98.adb: Likewise.
9059         * libgnat/s-pack98.ads: Likewise.
9060         * libgnat/s-pack99.adb: Likewise.
9061         * libgnat/s-pack99.ads: Likewise.
9062         * libgnat/s-parame.adb: Likewise.
9063         * libgnat/s-parame.ads: Likewise.
9064         * libgnat/s-parame__ae653.ads: Likewise.
9065         * libgnat/s-parame__hpux.ads: Likewise.
9066         * libgnat/s-parame__rtems.adb: Likewise.
9067         * libgnat/s-parame__vxworks.adb: Likewise.
9068         * libgnat/s-parame__vxworks.ads: Likewise.
9069         * libgnat/s-parint.adb: Likewise.
9070         * libgnat/s-parint.ads: Likewise.
9071         * libgnat/s-pooglo.adb: Likewise.
9072         * libgnat/s-pooglo.ads: Likewise.
9073         * libgnat/s-pooloc.adb: Likewise.
9074         * libgnat/s-pooloc.ads: Likewise.
9075         * libgnat/s-poosiz.adb: Likewise.
9076         * libgnat/s-poosiz.ads: Likewise.
9077         * libgnat/s-powflt.ads: Likewise.
9078         * libgnat/s-powlfl.ads: Likewise.
9079         * libgnat/s-powllf.ads: Likewise.
9080         * libgnat/s-purexc.ads: Likewise.
9081         * libgnat/s-putaim.adb: Likewise.
9082         * libgnat/s-putaim.ads: Likewise.
9083         * libgnat/s-putima.adb: Likewise.
9084         * libgnat/s-putima.ads: Likewise.
9085         * libgnat/s-rannum.adb: Likewise.
9086         * libgnat/s-rannum.ads: Likewise.
9087         * libgnat/s-ransee.adb: Likewise.
9088         * libgnat/s-ransee.ads: Likewise.
9089         * libgnat/s-regexp.adb: Likewise.
9090         * libgnat/s-regexp.ads: Likewise.
9091         * libgnat/s-regpat.adb: Likewise.
9092         * libgnat/s-regpat.ads: Likewise.
9093         * libgnat/s-resfil.adb: Likewise.
9094         * libgnat/s-resfil.ads: Likewise.
9095         * libgnat/s-restri.adb: Likewise.
9096         * libgnat/s-restri.ads: Likewise.
9097         * libgnat/s-rident.ads: Likewise.
9098         * libgnat/s-rpc.adb: Likewise.
9099         * libgnat/s-rpc.ads: Likewise.
9100         * libgnat/s-scaval.adb: Likewise.
9101         * libgnat/s-scaval.ads: Likewise.
9102         * libgnat/s-scaval__128.adb: Likewise.
9103         * libgnat/s-scaval__128.ads: Likewise.
9104         * libgnat/s-secsta.adb: Likewise.
9105         * libgnat/s-secsta.ads: Likewise.
9106         * libgnat/s-sequio.adb: Likewise.
9107         * libgnat/s-sequio.ads: Likewise.
9108         * libgnat/s-shabig.ads: Likewise.
9109         * libgnat/s-shasto.adb: Likewise.
9110         * libgnat/s-shasto.ads: Likewise.
9111         * libgnat/s-soflin.adb: Likewise.
9112         * libgnat/s-soflin.ads: Likewise.
9113         * libgnat/s-soliin.adb: Likewise.
9114         * libgnat/s-soliin.ads: Likewise.
9115         * libgnat/s-sopco3.adb: Likewise.
9116         * libgnat/s-sopco3.ads: Likewise.
9117         * libgnat/s-sopco4.adb: Likewise.
9118         * libgnat/s-sopco4.ads: Likewise.
9119         * libgnat/s-sopco5.adb: Likewise.
9120         * libgnat/s-sopco5.ads: Likewise.
9121         * libgnat/s-spsufi.adb: Likewise.
9122         * libgnat/s-spsufi.ads: Likewise.
9123         * libgnat/s-stache.adb: Likewise.
9124         * libgnat/s-stache.ads: Likewise.
9125         * libgnat/s-stalib.adb: Likewise.
9126         * libgnat/s-stalib.ads: Likewise.
9127         * libgnat/s-statxd.adb: Likewise.
9128         * libgnat/s-statxd.ads: Likewise.
9129         * libgnat/s-stausa.adb: Likewise.
9130         * libgnat/s-stausa.ads: Likewise.
9131         * libgnat/s-stchop.adb: Likewise.
9132         * libgnat/s-stchop.ads: Likewise.
9133         * libgnat/s-stchop__limit.ads: Likewise.
9134         * libgnat/s-stchop__rtems.adb: Likewise.
9135         * libgnat/s-stchop__vxworks.adb: Likewise.
9136         * libgnat/s-stoele.adb: Likewise.
9137         * libgnat/s-stoele.ads: Likewise.
9138         * libgnat/s-stopoo.adb: Likewise.
9139         * libgnat/s-stopoo.ads: Likewise.
9140         * libgnat/s-stposu.adb: Likewise.
9141         * libgnat/s-stposu.ads: Likewise.
9142         * libgnat/s-stratt.adb: Likewise.
9143         * libgnat/s-stratt.ads: Likewise.
9144         * libgnat/s-strcom.adb: Likewise.
9145         * libgnat/s-strcom.ads: Likewise.
9146         * libgnat/s-strhas.adb: Likewise.
9147         * libgnat/s-strhas.ads: Likewise.
9148         * libgnat/s-string.adb: Likewise.
9149         * libgnat/s-string.ads: Likewise.
9150         * libgnat/s-strops.adb: Likewise.
9151         * libgnat/s-strops.ads: Likewise.
9152         * libgnat/s-ststop.adb: Likewise.
9153         * libgnat/s-ststop.ads: Likewise.
9154         * libgnat/s-tasloc.adb: Likewise.
9155         * libgnat/s-tasloc.ads: Likewise.
9156         * libgnat/s-thread.ads: Likewise.
9157         * libgnat/s-thread__ae653.adb: Likewise.
9158         * libgnat/s-traceb.adb: Likewise.
9159         * libgnat/s-traceb.ads: Likewise.
9160         * libgnat/s-traceb__hpux.adb: Likewise.
9161         * libgnat/s-traceb__mastop.adb: Likewise.
9162         * libgnat/s-traent.adb: Likewise.
9163         * libgnat/s-traent.ads: Likewise.
9164         * libgnat/s-trasym.adb: Likewise.
9165         * libgnat/s-trasym.ads: Likewise.
9166         * libgnat/s-trasym__dwarf.adb: Likewise.
9167         * libgnat/s-tsmona.adb: Likewise.
9168         * libgnat/s-tsmona__linux.adb: Likewise.
9169         * libgnat/s-tsmona__mingw.adb: Likewise.
9170         * libgnat/s-unstyp.ads: Likewise.
9171         * libgnat/s-utf_32.adb: Likewise.
9172         * libgnat/s-utf_32.ads: Likewise.
9173         * libgnat/s-vade128.ads: Likewise.
9174         * libgnat/s-vade32.ads: Likewise.
9175         * libgnat/s-vade64.ads: Likewise.
9176         * libgnat/s-vafi128.ads: Likewise.
9177         * libgnat/s-vafi32.ads: Likewise.
9178         * libgnat/s-vafi64.ads: Likewise.
9179         * libgnat/s-valboo.adb: Likewise.
9180         * libgnat/s-valboo.ads: Likewise.
9181         * libgnat/s-valcha.adb: Likewise.
9182         * libgnat/s-valcha.ads: Likewise.
9183         * libgnat/s-valenu.adb: Likewise.
9184         * libgnat/s-valenu.ads: Likewise.
9185         * libgnat/s-valflt.ads: Likewise.
9186         * libgnat/s-valint.adb: Likewise.
9187         * libgnat/s-valint.ads: Likewise.
9188         * libgnat/s-vallfl.ads: Likewise.
9189         * libgnat/s-valllf.ads: Likewise.
9190         * libgnat/s-vallli.adb: Likewise.
9191         * libgnat/s-vallli.ads: Likewise.
9192         * libgnat/s-valllli.ads: Likewise.
9193         * libgnat/s-vallllu.ads: Likewise.
9194         * libgnat/s-valllu.adb: Likewise.
9195         * libgnat/s-valllu.ads: Likewise.
9196         * libgnat/s-valrea.adb: Likewise.
9197         * libgnat/s-valrea.ads: Likewise.
9198         * libgnat/s-valued.adb: Likewise.
9199         * libgnat/s-valued.ads: Likewise.
9200         * libgnat/s-valuef.adb: Likewise.
9201         * libgnat/s-valuef.ads: Likewise.
9202         * libgnat/s-valuei.adb: Likewise.
9203         * libgnat/s-valuei.ads: Likewise.
9204         * libgnat/s-valuer.adb: Likewise.
9205         * libgnat/s-valuer.ads: Likewise.
9206         * libgnat/s-valueu.adb: Likewise.
9207         * libgnat/s-valueu.ads: Likewise.
9208         * libgnat/s-valuns.adb: Likewise.
9209         * libgnat/s-valuns.ads: Likewise.
9210         * libgnat/s-valuti.adb: Likewise.
9211         * libgnat/s-valuti.ads: Likewise.
9212         * libgnat/s-valwch.adb: Likewise.
9213         * libgnat/s-valwch.ads: Likewise.
9214         * libgnat/s-veboop.adb: Likewise.
9215         * libgnat/s-veboop.ads: Likewise.
9216         * libgnat/s-vector.ads: Likewise.
9217         * libgnat/s-vercon.adb: Likewise.
9218         * libgnat/s-vercon.ads: Likewise.
9219         * libgnat/s-wchcnv.adb: Likewise.
9220         * libgnat/s-wchcnv.ads: Likewise.
9221         * libgnat/s-wchcon.adb: Likewise.
9222         * libgnat/s-wchcon.ads: Likewise.
9223         * libgnat/s-wchjis.adb: Likewise.
9224         * libgnat/s-wchjis.ads: Likewise.
9225         * libgnat/s-wchstw.adb: Likewise.
9226         * libgnat/s-wchstw.ads: Likewise.
9227         * libgnat/s-wchwts.adb: Likewise.
9228         * libgnat/s-wchwts.ads: Likewise.
9229         * libgnat/s-widboo.adb: Likewise.
9230         * libgnat/s-widboo.ads: Likewise.
9231         * libgnat/s-widcha.adb: Likewise.
9232         * libgnat/s-widcha.ads: Likewise.
9233         * libgnat/s-widenu.adb: Likewise.
9234         * libgnat/s-widenu.ads: Likewise.
9235         * libgnat/s-widint.ads: Likewise.
9236         * libgnat/s-widlli.adb: Likewise.
9237         * libgnat/s-widlli.ads: Likewise.
9238         * libgnat/s-widllli.ads: Likewise.
9239         * libgnat/s-widlllu.ads: Likewise.
9240         * libgnat/s-widllu.adb: Likewise.
9241         * libgnat/s-widllu.ads: Likewise.
9242         * libgnat/s-widthi.adb: Likewise.
9243         * libgnat/s-widthi.ads: Likewise.
9244         * libgnat/s-widthu.adb: Likewise.
9245         * libgnat/s-widthu.ads: Likewise.
9246         * libgnat/s-widuns.ads: Likewise.
9247         * libgnat/s-widwch.adb: Likewise.
9248         * libgnat/s-widwch.ads: Likewise.
9249         * libgnat/s-win32.ads: Likewise.
9250         * libgnat/s-winext.ads: Likewise.
9251         * libgnat/s-wwdcha.adb: Likewise.
9252         * libgnat/s-wwdcha.ads: Likewise.
9253         * libgnat/s-wwdenu.adb: Likewise.
9254         * libgnat/s-wwdenu.ads: Likewise.
9255         * libgnat/s-wwdwch.adb: Likewise.
9256         * libgnat/s-wwdwch.ads: Likewise.
9257         * libgnat/system-aix.ads: Likewise.
9258         * libgnat/system-darwin-arm.ads: Likewise.
9259         * libgnat/system-darwin-ppc.ads: Likewise.
9260         * libgnat/system-darwin-x86.ads: Likewise.
9261         * libgnat/system-djgpp.ads: Likewise.
9262         * libgnat/system-dragonfly-x86_64.ads: Likewise.
9263         * libgnat/system-freebsd.ads: Likewise.
9264         * libgnat/system-hpux-ia64.ads: Likewise.
9265         * libgnat/system-hpux.ads: Likewise.
9266         * libgnat/system-linux-alpha.ads: Likewise.
9267         * libgnat/system-linux-arm.ads: Likewise.
9268         * libgnat/system-linux-hppa.ads: Likewise.
9269         * libgnat/system-linux-ia64.ads: Likewise.
9270         * libgnat/system-linux-m68k.ads: Likewise.
9271         * libgnat/system-linux-mips.ads: Likewise.
9272         * libgnat/system-linux-ppc.ads: Likewise.
9273         * libgnat/system-linux-riscv.ads: Likewise.
9274         * libgnat/system-linux-s390.ads: Likewise.
9275         * libgnat/system-linux-sh4.ads: Likewise.
9276         * libgnat/system-linux-sparc.ads: Likewise.
9277         * libgnat/system-linux-x86.ads: Likewise.
9278         * libgnat/system-lynxos178-ppc.ads: Likewise.
9279         * libgnat/system-lynxos178-x86.ads: Likewise.
9280         * libgnat/system-mingw.ads: Likewise.
9281         * libgnat/system-qnx-aarch64.ads: Likewise.
9282         * libgnat/system-rtems.ads: Likewise.
9283         * libgnat/system-solaris-sparc.ads: Likewise.
9284         * libgnat/system-solaris-x86.ads: Likewise.
9285         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
9286         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
9287         * libgnat/system-vxworks-arm.ads: Likewise.
9288         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
9289         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
9290         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
9291         * libgnat/system-vxworks-e500-vthread.ads: Likewise.
9292         * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
9293         * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
9294         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
9295         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
9296         * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
9297         * libgnat/system-vxworks-ppc.ads: Likewise.
9298         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
9299         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
9300         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
9301         * libgnat/system-vxworks-x86-vthread.ads: Likewise.
9302         * libgnat/system-vxworks-x86.ads: Likewise.
9303         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
9304         * libgnat/system-vxworks7-aarch64.ads: Likewise.
9305         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
9306         * libgnat/system-vxworks7-arm.ads: Likewise.
9307         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
9308         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
9309         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
9310         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
9311         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
9312         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
9313         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
9314         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
9315         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
9316         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
9317         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
9318         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
9319         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
9320         * link.c: Likewise.
9321         * live.adb: Likewise.
9322         * live.ads: Likewise.
9323         * locales.c: Likewise.
9324         * make.adb: Likewise.
9325         * make.ads: Likewise.
9326         * make_util.adb: Likewise.
9327         * make_util.ads: Likewise.
9328         * makeusg.adb: Likewise.
9329         * makeusg.ads: Likewise.
9330         * mdll-fil.adb: Likewise.
9331         * mdll-fil.ads: Likewise.
9332         * mdll-utl.adb: Likewise.
9333         * mdll-utl.ads: Likewise.
9334         * mdll.adb: Likewise.
9335         * mdll.ads: Likewise.
9336         * mingw32.h: Likewise.
9337         * mkdir.c: Likewise.
9338         * namet-sp.adb: Likewise.
9339         * namet-sp.ads: Likewise.
9340         * namet.adb: Likewise.
9341         * namet.ads: Likewise.
9342         * namet.h: Likewise.
9343         * nlists.adb: Likewise.
9344         * nlists.ads: Likewise.
9345         * nlists.h: Likewise.
9346         * opt.adb: Likewise.
9347         * opt.ads: Likewise.
9348         * osint-b.adb: Likewise.
9349         * osint-b.ads: Likewise.
9350         * osint-c.adb: Likewise.
9351         * osint-c.ads: Likewise.
9352         * osint-l.adb: Likewise.
9353         * osint-l.ads: Likewise.
9354         * osint-m.adb: Likewise.
9355         * osint-m.ads: Likewise.
9356         * osint.adb: Likewise.
9357         * osint.ads: Likewise.
9358         * output.adb: Likewise.
9359         * output.ads: Likewise.
9360         * par-ch10.adb: Likewise.
9361         * par-ch11.adb: Likewise.
9362         * par-ch12.adb: Likewise.
9363         * par-ch13.adb: Likewise.
9364         * par-ch2.adb: Likewise.
9365         * par-ch3.adb: Likewise.
9366         * par-ch4.adb: Likewise.
9367         * par-ch5.adb: Likewise.
9368         * par-ch6.adb: Likewise.
9369         * par-ch7.adb: Likewise.
9370         * par-ch8.adb: Likewise.
9371         * par-ch9.adb: Likewise.
9372         * par-endh.adb: Likewise.
9373         * par-labl.adb: Likewise.
9374         * par-load.adb: Likewise.
9375         * par-prag.adb: Likewise.
9376         * par-sync.adb: Likewise.
9377         * par-tchk.adb: Likewise.
9378         * par-util.adb: Likewise.
9379         * par.adb: Likewise.
9380         * par.ads: Likewise.
9381         * par_sco.adb: Likewise.
9382         * par_sco.ads: Likewise.
9383         * pprint.adb: Likewise.
9384         * pprint.ads: Likewise.
9385         * prep.adb: Likewise.
9386         * prep.ads: Likewise.
9387         * prepcomp.adb: Likewise.
9388         * prepcomp.ads: Likewise.
9389         * put_scos.adb: Likewise.
9390         * put_scos.ads: Likewise.
9391         * raise-gcc.c: Likewise.
9392         * raise.c: Likewise.
9393         * raise.h: Likewise.
9394         * repinfo-input.adb: Likewise.
9395         * repinfo-input.ads: Likewise.
9396         * repinfo.adb: Likewise.
9397         * repinfo.ads: Likewise.
9398         * repinfo.h: Likewise.
9399         * restrict.adb: Likewise.
9400         * restrict.ads: Likewise.
9401         * rident.ads: Likewise.
9402         * rtfinal.c: Likewise.
9403         * rtinit.c: Likewise.
9404         * rtsfind.adb: Likewise.
9405         * rtsfind.ads: Likewise.
9406         * runtime.h: Likewise.
9407         * s-oscons-tmplt.c: Likewise.
9408         * sa_messages.adb: Likewise.
9409         * sa_messages.ads: Likewise.
9410         * scans.adb: Likewise.
9411         * scans.ads: Likewise.
9412         * scil_ll.adb: Likewise.
9413         * scil_ll.ads: Likewise.
9414         * scn.adb: Likewise.
9415         * scn.ads: Likewise.
9416         * scng.adb: Likewise.
9417         * scng.ads: Likewise.
9418         * scos.adb: Likewise.
9419         * scos.ads: Likewise.
9420         * scos.h: Likewise.
9421         * sdefault.ads: Likewise.
9422         * seh_init.c: Likewise.
9423         * sem.adb: Likewise.
9424         * sem.ads: Likewise.
9425         * sem_aggr.adb: Likewise.
9426         * sem_aggr.ads: Likewise.
9427         * sem_attr.adb: Likewise.
9428         * sem_attr.ads: Likewise.
9429         * sem_aux.adb: Likewise.
9430         * sem_aux.ads: Likewise.
9431         * sem_case.adb: Likewise.
9432         * sem_case.ads: Likewise.
9433         * sem_cat.adb: Likewise.
9434         * sem_cat.ads: Likewise.
9435         * sem_ch10.adb: Likewise.
9436         * sem_ch10.ads: Likewise.
9437         * sem_ch11.adb: Likewise.
9438         * sem_ch11.ads: Likewise.
9439         * sem_ch12.adb: Likewise.
9440         * sem_ch12.ads: Likewise.
9441         * sem_ch13.adb: Likewise.
9442         * sem_ch13.ads: Likewise.
9443         * sem_ch2.adb: Likewise.
9444         * sem_ch2.ads: Likewise.
9445         * sem_ch3.adb: Likewise.
9446         * sem_ch3.ads: Likewise.
9447         * sem_ch4.adb: Likewise.
9448         * sem_ch4.ads: Likewise.
9449         * sem_ch5.adb: Likewise.
9450         * sem_ch5.ads: Likewise.
9451         * sem_ch6.adb: Likewise.
9452         * sem_ch6.ads: Likewise.
9453         * sem_ch7.adb: Likewise.
9454         * sem_ch7.ads: Likewise.
9455         * sem_ch8.adb: Likewise.
9456         * sem_ch8.ads: Likewise.
9457         * sem_ch9.adb: Likewise.
9458         * sem_ch9.ads: Likewise.
9459         * sem_dim.adb: Likewise.
9460         * sem_dim.ads: Likewise.
9461         * sem_disp.adb: Likewise.
9462         * sem_disp.ads: Likewise.
9463         * sem_dist.adb: Likewise.
9464         * sem_dist.ads: Likewise.
9465         * sem_elab.adb: Likewise.
9466         * sem_elab.ads: Likewise.
9467         * sem_elim.adb: Likewise.
9468         * sem_elim.ads: Likewise.
9469         * sem_eval.adb: Likewise.
9470         * sem_eval.ads: Likewise.
9471         * sem_intr.adb: Likewise.
9472         * sem_intr.ads: Likewise.
9473         * sem_mech.adb: Likewise.
9474         * sem_mech.ads: Likewise.
9475         * sem_prag.adb: Likewise.
9476         * sem_prag.ads: Likewise.
9477         * sem_res.adb: Likewise.
9478         * sem_res.ads: Likewise.
9479         * sem_scil.adb: Likewise.
9480         * sem_scil.ads: Likewise.
9481         * sem_smem.adb: Likewise.
9482         * sem_smem.ads: Likewise.
9483         * sem_type.adb: Likewise.
9484         * sem_type.ads: Likewise.
9485         * sem_util.adb: Likewise.
9486         * sem_util.ads: Likewise.
9487         * sem_warn.adb: Likewise.
9488         * sem_warn.ads: Likewise.
9489         * set_targ.adb: Likewise.
9490         * set_targ.ads: Likewise.
9491         * sfn_scan.adb: Likewise.
9492         * sfn_scan.ads: Likewise.
9493         * sigtramp-armdroid.c: Likewise.
9494         * sigtramp-ios.c: Likewise.
9495         * sigtramp-qnx.c: Likewise.
9496         * sigtramp-vxworks.c: Likewise.
9497         * sigtramp.h: Likewise.
9498         * sinfo-cn.adb: Likewise.
9499         * sinfo-cn.ads: Likewise.
9500         * sinfo.adb: Likewise.
9501         * sinfo.ads: Likewise.
9502         * sinput-c.adb: Likewise.
9503         * sinput-c.ads: Likewise.
9504         * sinput-d.adb: Likewise.
9505         * sinput-d.ads: Likewise.
9506         * sinput-l.adb: Likewise.
9507         * sinput-l.ads: Likewise.
9508         * sinput.adb: Likewise.
9509         * sinput.ads: Likewise.
9510         * snames.adb-tmpl: Likewise.
9511         * snames.ads-tmpl: Likewise.
9512         * socket.c: Likewise.
9513         * spark_xrefs.adb: Likewise.
9514         * spark_xrefs.ads: Likewise.
9515         * sprint.adb: Likewise.
9516         * sprint.ads: Likewise.
9517         * stand.ads: Likewise.
9518         * stringt.adb: Likewise.
9519         * stringt.ads: Likewise.
9520         * stringt.h: Likewise.
9521         * style.adb: Likewise.
9522         * style.ads: Likewise.
9523         * styleg.adb: Likewise.
9524         * styleg.ads: Likewise.
9525         * stylesw.adb: Likewise.
9526         * stylesw.ads: Likewise.
9527         * switch-b.adb: Likewise.
9528         * switch-b.ads: Likewise.
9529         * switch-c.adb: Likewise.
9530         * switch-c.ads: Likewise.
9531         * switch-m.adb: Likewise.
9532         * switch-m.ads: Likewise.
9533         * switch.adb: Likewise.
9534         * switch.ads: Likewise.
9535         * sysdep.c: Likewise.
9536         * table.adb: Likewise.
9537         * table.ads: Likewise.
9538         * targext.c: Likewise.
9539         * targparm.adb: Likewise.
9540         * targparm.ads: Likewise.
9541         * tbuild.adb: Likewise.
9542         * tbuild.ads: Likewise.
9543         * tempdir.adb: Likewise.
9544         * tempdir.ads: Likewise.
9545         * terminals.c: Likewise.
9546         * tracebak.c: Likewise.
9547         * treepr.adb: Likewise.
9548         * treepr.ads: Likewise.
9549         * ttypes.ads: Likewise.
9550         * types.adb: Likewise.
9551         * types.ads: Likewise.
9552         * types.h: Likewise.
9553         * uintp.adb: Likewise.
9554         * uintp.ads: Likewise.
9555         * uintp.h: Likewise.
9556         * uname.adb: Likewise.
9557         * uname.ads: Likewise.
9558         * urealp.adb: Likewise.
9559         * urealp.ads: Likewise.
9560         * urealp.h: Likewise.
9561         * usage.adb: Likewise.
9562         * usage.ads: Likewise.
9563         * validsw.adb: Likewise.
9564         * validsw.ads: Likewise.
9565         * vast.adb: Likewise.
9566         * vast.ads: Likewise.
9567         * warnsw.adb: Likewise.
9568         * warnsw.ads: Likewise.
9569         * widechar.adb: Likewise.
9570         * widechar.ads: Likewise.
9571         * xeinfo.adb: Likewise.
9572         * xnmake.adb: Likewise.
9573         * xoscons.adb: Likewise.
9574         * xr_tabls.adb: Likewise.
9575         * xr_tabls.ads: Likewise.
9576         * xref_lib.adb: Likewise.
9577         * xref_lib.ads: Likewise.
9578         * xsinfo.adb: Likewise.
9579         * xsnamest.adb: Likewise.
9580         * xtreeprs.adb: Likewise.
9581         * xutil.adb: Likewise.
9582         * xutil.ads: Likewise.
9584 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9586         * exp_dist.adb (Build_From_Any_Call): Remove initial value for
9587         Fnam; fix style.
9588         (Build_To_Any_Call): Remove initial value for Fnam.
9589         (Build_TypeCode_Call): Likewise.
9591 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9593         * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
9594         exp_disp.adb, exp_imgv.adb, exp_util.adb, sem_attr.adb,
9595         sem_ch13.adb, sem_ch8.adb, sem_eval.adb, sem_scil.adb,
9596         sem_util.adb: Replace calls to RTE with Is_RTE.
9598 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9600         * sem_ch4.adb (Try_Object_Operation): Reuse local constant.
9602 2021-05-03  Ed Schonberg  <schonberg@adacore.com>
9604         * sem_ch4.adb (Try_Object_Operation): When a prefixed call is
9605         overloaded and illegal, and the All_Errors flag is off, generate
9606         an error message if the re-analysis of some candidate
9607         interpretation fails to produce one.
9609 2021-05-03  Dmitriy Anisimkov  <anisimko@adacore.com>
9611         * libgnat/g-casuti.adb: Replace with "pragma No_Body".
9612         * libgnat/g-casuti.ads: Replace with a package renaming.
9614 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9616         * sem_attr.adb (Check_Program_Unit): Fix references to
9617         Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to
9618         Entity.
9620 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9622         * sem_attr.adb (Check_Program_Unit): Replace tests for Task_Kind
9623         and Protected_Kind with a collective test for Concurrent_Kind;
9624         likewise, replace calls to Is_Task_Type and Is_Protected_Type
9625         with a collective call to Is_Concurrent_Type; simplify into a
9626         single membership test; add missing Entry_Kind alternative.
9628 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9630         * sem_aggr.adb (Resolve_Record_Aggregate): Fix casing in error
9631         message.
9632         * sem_ch3.adb (Add_Internal_Interface_Entities): Fix unbalanced
9633         parens.
9634         * sem_elim.adb (Eliminate_Error_Msg): Add insertion character.
9636 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9638         * freeze.adb (Freeze_Profile): Replace Error_Msg_NE with
9639         Error_Msg_N; change to continuation message.
9640         * sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch5.adb: Replace
9641         calls to Error_Msg_NE with calls to Error_Msg_N.
9643 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9645         * exp_disp.adb, sem_aggr.adb, sem_cat.adb, sem_ch10.adb,
9646         sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
9647         sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb,
9648         sem_res.adb: Remove extra leading and trailing space in error
9649         messages.
9651 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
9653         * sem_prag.adb (Set_Exported): Do not warn on exporting a type.
9655 2021-05-03  Ed Schonberg  <schonberg@adacore.com>
9657         * sem_warn.adb (Check_References): Do not emit warning on a
9658         selected component when enclosing type has no discriminant and
9659         type of component has partial initialization.
9661 2021-05-03  Justin Squirek  <squirek@adacore.com>
9663         * contracts.adb (Build_Postconditions_Procedure): Remove
9664         internally generated if statement used to control finalization
9665         actions.
9666         * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
9667         Expand_Simple_Function_Return): Add if statement around
9668         _postconditions to control finalization.
9669         * exp_ch7.adb (Build_Finalizer): Likewise.
9670         * sem_prag.adb (Find_Related_Declaration_Or_Body): Add case to
9671         handle Context itself being a handled sequence of statements.
9673 2021-05-03  Justin Squirek  <squirek@adacore.com>
9675         * sem_util.adb (In_Return_Value): Modified to detect when
9676         implicit dereference is specified on the return type of a
9677         function call within the expression being checked.
9679 2021-05-03  Ed Schonberg  <schonberg@adacore.com>
9681         * exp_aggr.adb (Expand_Array_Aggregate): If the parent node of
9682         the aggregate is a subprogram call there is no target in which
9683         to build the aggregate, and it has to be expanded into component
9684         assignments.
9686 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9688         * exp_prag.adb (Expand_Pragma_CUDA_Execute): Refill comments;
9689         remove periods after single-line comments; use procedural
9690         variant of Next_Entity.
9691         * gnat_cuda.adb: Refill comments; remove periods after
9692         single-line comments; replace calls to UI_From_Int with
9693         constants; change iteration bounds so they match the comments.
9694         * sem_prag.adb (Analyze_Pragma): Add checks for malformed pragma
9695         CUDA_Kernel aggregate; simplify processing of pragma CUDA_Global
9696         with Check_Arg_Count; sync comment with code for CUDA_Global.
9698 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
9700         * tbuild.adb (Make_Implicit_Loop_Statement): Disable restriction
9701         checking on dead paths.
9703 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
9705         * sem_util.adb (Check_Result_And_Post_State): Replace custom
9706         Has_In_Out_Parameter with existing Has_Out_Or_In_Out_Parameter
9707         flag which corresponds exactly to what we need.
9709 2021-05-03  Arnaud Charlet  <charlet@adacore.com>
9711         * libgnat/a-ztcoio.adb: Remove unused with clause.
9713 2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
9715         * sem_ch13.adb (Build_Predicate_Functions): Fix typo in comment.
9716         (Resolve_Aspect_Expressions): Fix typo in comment; remove
9717         redundant check for no aspects; simplify with Discard_Node.
9719 2021-05-03  Ed Schonberg  <schonberg@adacore.com>
9721         * sem_util.adb (Build_Constrained_Itype): Remove prior patch,
9722         issue is better handled in Sem_Ch13.Build_Predicate_Functions.
9723         * sem_ch13.adb (Build_Predicate_Functions): Do not build
9724         predicate function for an Itype with a defined
9725         Predicated_Parent, even if that designated parent does not yet
9726         have a Predicate_Function. This can happen in instance bodies
9727         nested within a generic unit.
9729 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9731         * exp_attr.adb (Expand_N_Attribute_Reference)
9732         <Attribute_Max_Size_In_Storage_Elements>: Apply the checks for
9733         universal integer contexts only in the default case.
9734         * exp_ch4.adb (Get_Size_For_Range): Move to library level.
9735         (Expand_N_Type_Conversion): If the operand has Universal_Integer
9736         type and the conversion requires an overflow check, try to do an
9737         intermediate conversion to a narrower type.
9739 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
9741         * sem_ch3.adb (Check_Anonymous_Access_Component): Factor out
9742         core processing of Check_Anonymous_Access_Components.
9743         (Check_Anonymous_Access_Components): Call
9744         Check_Anonymous_Access_Component.
9745         (Process_Discriminants): Call Check_Anonymous_Access_Component.
9746         * freeze.adb (Freeze_Record_Type): Code cleanups and add more tree
9747         checking to handle changes in sem_ch3.adb.
9748         * sem_ch8.adb (Find_Type): Remove special case for access
9749         discriminant in task types, these are now supported.
9751 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9753         * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): Remove
9754         entry condition.
9755         (Expand_N_In): Call Minimized_Eliminated_Overflow_Check on the left
9756         operand before doing the special overflow expansion.
9757         (Expand_N_Op_Eq): Likewise.
9758         (Expand_N_Op_Ge): Likewise.
9759         (Expand_N_Op_Gt): Likewise.
9760         (Expand_N_Op_Le): Likewise.
9761         (Expand_N_Op_Lt): Likewise.
9762         (Expand_N_Op_Ne): Likewise.
9763         (Minimized_Eliminated_Overflow_Check): Return False for Minimized
9764         if the size of the type is greater than that of Long_Long_Integer.
9766 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
9768         * exp_ch5.adb (Expand_N_If_Statement): Only perform the
9769         simplification on return True/False for internal nodes when
9770         -fpreserve-control-flow is not set.
9772 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9774         * sem_attr.adb (Eval_Attribute) <Attribute_Machine>: Use
9775         Round_Even instead of Round in the call to the Machine routine.
9777 2021-04-29  Bob Duff  <duff@adacore.com>
9779         * sem_attr.adb (Analyze_Attribute): Change "$" to "&".
9780         Otherwise, Errout will trip over an uninitialized (invalid)
9781         variable (Error_Msg_Unit_1).
9783 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9785         * libgnat/s-valuer.adb (Scan_Decimal_Digits): Set Extra to zero
9786         when the precision limit is reached by means of trailing zeros
9787         and prevent it from being overwritten later.
9789 2021-04-29  Yannick Moy  <moy@adacore.com>
9791         * errout.adb (Output_Messages): Insert SGR strings where needed.
9792         * erroutc.adb (Output_Message_Txt): Insert SGR strings where
9793         needed in the text of the message itself.
9794         (Output_Msg_Text): Allow for style message not to start
9795         with (style).
9796         * erroutc.ads: Add new constants and functions to control colors
9797         in messages output to the terminal. Add variable Use_SGR_Control
9798         that should be set to True for using SGR color control strings.
9800 2021-04-29  Yannick Moy  <moy@adacore.com>
9802         * sem_eval.adb (Check_Non_Static_Context_For_Overflow): Apply
9803         compile-time checking for overflows in non-static contexts
9804         including inlined code.
9805         (Eval_Arithmetic_Op): Use the new procedure.
9806         (Eval_Unary_Op, Eval_Op_Expon): Add call to the new procedure.
9808 2021-04-29  Justin Squirek  <squirek@adacore.com>
9810         * checks.adb (Apply_Type_Conversion_Checks): Move out constraint
9811         check generation, and add case for general access types with
9812         constraints.
9813         (Make_Discriminant_Constraint_Check): Created to centralize
9814         generation of constraint checks for stored discriminants.
9816 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9818         * gnat1drv.adb (Adjust_Global_Switches): Force a 32-bit Duration
9819         type if the maximum integer size is lower than 64 bits.
9821 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
9823         * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove unused files.
9824         (ADA_INCLUDE_SRCS): Remove libgnat/system.ads
9826 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
9828         * exp_aggr.adb (Collect_Initialization_Statements): Removed.
9829         (Convert_Aggr_In_Object_Decl, Expand_Array_Aggregate): Fix
9830         creation and insertion of Initialization_Statements.  Do not set
9831         Initialization_Statements when a transient scope is involved.
9832         Move processing of Array_Slice here.  Ensure that an object with
9833         an Array_Slice call gets its array component initialized.  Add
9834         comments.
9835         * exp_ch7.adb: Update comments.
9836         (Store_Actions_In_Scope): Deal properly with an empty list which
9837         might now be generated by Convert_Aggr_In_Object_Decl.
9838         * exp_ch3.adb: Update comments.
9839         (Expand_N_Object_Declaration): Remove processing of Array_Slice.
9841 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
9843         * sem_ch8.adb (Analyze_Object_Renaming): Update check for
9844         AI12-0401.
9846 2021-04-29  Patrick Bernardi  <bernardi@adacore.com>
9848         * libgnat/s-stoele.ads (Storage_Offset): Cleanup comment.
9850 2021-04-29  Gary Dismukes  <dismukes@adacore.com>
9852         * exp_util.adb (Add_Own_DIC): Relax the suppression of adding a
9853         DIC Check pragma that's done for abstract types by still doing
9854         it in the case where GNATprove_Mode is set.
9856 2021-04-29  Joel Brobecker  <brobecker@adacore.com>
9858         * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove s-gcc.adb, s-gcc.ads,
9859         s-gccdiv.adb, s-gccdiv.ads, s-gccshi.adb and s-gccshi.ads.
9861 2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
9863         * layout.adb (Layout_Type): Refine type of a local variable with
9864         the required size of object from Int to Pos (it is initialized
9865         with 8 and only multiplied by 2); fix unbalanced parens in
9866         comment.
9868 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9870         * eval_fat.adb (Succ): Use Ureal_Half in a couple of places.
9872 2021-04-29  Ed Schonberg  <schonberg@adacore.com>
9874         * sem_util.adb (Build_Constrained_Itype): Inhibit the generation
9875         of predicate functions for this Itype, which is created for an
9876         aggregate of a discriminated type. The object to which the
9877         aggregate is assigned, e.g a writable actual parameter, will
9878         apply the predicates if any are inherited from the base type.
9880 2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
9882         * sem_cat.adb (Set_Categorization_From_Pragmas): Remove special
9883         case for generic child units; remove optimization for empty list
9884         of pragmas; properly restore visibility.
9886 2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
9888         * sem_elab.adb (Process_SPARK_Instantiation): Fix typo in
9889         comment.
9890         * sem_prag.adb (Find_Related_Context): Add missing reference to
9891         No_Caching in the comment; handle pragmas on compilation units.
9893 2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
9895         * doc/gnat_rm/implementation_defined_attributes.rst: Change all
9896         occurrences of "permissible prefix" to "allowed prefix", for
9897         consistency.
9898         * gnat_rm.texi: Regenerate.
9900 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9902         * eval_fat.adb (Succ): Add a special case for zero if the type does
9903         not support denormalized numbers.  Always use the canonical formula
9904         in other cases and add commentary throughout the function.
9906 2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9908         * libgnat/s-fatgen.adb: Remove with clause for Interfaces and
9909         use type clauses for Interfaces.Unsigned_{16,32,64}.
9910         (Small16): Remove.
9911         (Small32): Likewise
9912         (Small64): Likewise.
9913         (Small80): Likewise.
9914         (Tiny16): Likewise.
9915         (Tiny32): Likewise.
9916         (Tiny64): Likewise.
9917         (Tiny80): Likewise.
9918         (Siz): Always use 16.
9919         (NR): New constant.
9920         (Rep_Last): Use it in the computation.
9921         (Exp_Factor): Remove special case for 80-bit.
9922         (Sign_Mask): Likewise.
9923         (Finite_Succ): New function implementing the Succ attribute for
9924         finite numbers.
9925         (Pred): Rewrite in terms of Finite_Succ.
9926         (Succ): Likewise.
9928 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
9930         * debug_a.adb (Debug_Output_Astring): Remove obsolete comment.
9932 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
9934         * sem_attr.adb (Check_Image_Type): Protect against empty
9935         Image_Type.
9937 2021-04-29  Arnaud Charlet  <charlet@adacore.com>
9939         * libgnat/a-nbnbin.ads (From_Universal_Image): New.
9940         (Big_Integer): Update definition.
9941         * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb
9942         (From_Universal_Image): New.
9943         (From_String): Remove alternate body, replaced by
9944         From_Universal_Image.
9945         (Big_Real): Update definition.
9947 2021-04-29  Gary Dismukes  <dismukes@adacore.com>
9949         * sem_ch8.adb (Find_Type): Check the No_Obsolescent_Features
9950         restriction for 'Class applied to an untagged incomplete
9951         type (when Ada_Version >= Ada_2005).  Remove disabling of the
9952         warning message for such usage, along with the ??? comment,
9953         which no longer applies (because the -gnatg switch no longer
9954         sets Warn_On_Obsolescent_Feature).
9956 2021-04-29  Yannick Moy  <moy@adacore.com>
9958         * errout.adb (Error_Msg_NEL): Extract span from node.
9959         (First_And_Last_Nodes): Use spans for subtype indications and
9960         attribute definition clauses.
9961         (Write_Source_Code_Lines): Fix for tabulation characters. Change
9962         output for large spans to skip intermediate lines.
9963         * sem_case.adb (Check_Choice_Set): Report duplicate choice on
9964         the Original_Node for the case.
9965         (Generic_Check_Choices): Set the Original_Node for the rewritten
9966         case, so that the subtree used in spans has the correct
9967         locations.
9969 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
9971         * sem_ch13.adb, sem_util.adb: Fix style.
9973 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
9975         * nlists.ads (List_Length): Adapt comment to match the
9976         behaviour.
9978 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
9980         * sem_eval.adb (Eval_Selected_Component): Only consider compile
9981         time known aggregates.
9983 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9985         * libgnat/s-fatgen.adb: Add use clause for Interfaces.Unsigned_16
9986         and Interfaces.Unsigned_32.
9987         (Small16): New constant.
9988         (Small32): Likewise.
9989         (Small64): Likewise.
9990         (Small80): Likewise.
9991         (Pred): Declare a local overlay for Small and return it negated
9992         for zero if the type does not support denormalized numbers.
9993         (Succ): Likewise, but return it directly.
9995 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
9997         * inline.adb (Formal_Is_Used_Once): Refine type of the counter
9998         variable; remove redundant assignment.
10000 2021-04-28  Patrick Bernardi  <bernardi@adacore.com>
10002         * libgnarl/s-interr.adb (Install_Restricted_Handlers): Change
10003         Prio parameter to type Interrupt_Priority.
10004         * libgnarl/s-interr.ads (Install_Restricted_Handlers): Likewise.
10005         * libgnarl/s-interr__dummy.adb (Install_Restricted_Handlers):
10006         Likewise.
10007         * libgnarl/s-interr__hwint.adb (Install_Restricted_Handlers):
10008         Likewise.
10009         * libgnarl/s-interr__sigaction.adb (Install_Restricted_Handlers):
10010         Likewise.
10011         * libgnarl/s-interr__vxworks.adb (Install_Restricted_Handlers):
10012         Likewise.
10014 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10016         * sem_type.ads (Write_Interp_Ref): Removed; no longer needed.
10017         * sem_type.adb (Headers): Removed; now the hash table is
10018         directly in the Interp_Map alone.
10019         (Interp_Map): Now an instance of the GNAT.HTable.Simple_HTable.
10020         (Last_Overloaded): New variable to emulate Interp_Map.Last.
10021         (Add_One_Interp): Adapt to new data structure.
10022         (Get_First_Interp): Likewise.
10023         (Hash): Likewise.
10024         (Init_Interp_Tables): Likewise.
10025         (New_Interps): Likewise.
10026         (Save_Interps): Likewise; handle O_N variable like in
10027         Get_First_Interp.
10028         (Write_Interp_Ref): Removed; no longer needed.
10030 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10032         * inline.adb (Do_Reset_Calls): Now an instance of Traverse_Proc.
10034 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10036         * sem_ch13.adb (Analyze_Aspect_Static): Reuse
10037         Error_Msg_Ada_2020_Feature for aspect Static.
10038         (Analyze_One_Aspect): Likewise for aspect Full_Access.
10040 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10042         * sem_ch13.adb (Analyze_Aspect_Static): Refactor to have a
10043         single check for the expression being present; adapt comments.
10045 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10047         * sem_ch13.adb (Analyze_Aspect_Static): Use aspect name in the
10048         error message.
10050 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10052         * sem_eval.adb (Eval_Selected_Component): Simplify with
10053         Unqualify.
10055 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10057         * libgnat/s-valrea.adb (Fast2Sum): New function.
10058         (Integer_to_Real): Use it in an iterated addition with exact
10059         error handling for the case where an extra digit is needed.
10060         Move local variable now only used in the exponentiation case.
10062 2021-04-28  Yannick Moy  <moy@adacore.com>
10064         * errout.adb: (Error_Msg_Internal): Use span instead of
10065         location.
10066         (Error_Msg, Error_Msg_NEL): Add versions with span parameter.
10067         (Error_Msg_F, Error_Msg_FE, Error_Msg_N, Error_Msg_NE,
10068         Error_Msg_NW): Retrieve span from node.
10069         (First_Node): Use the new First_And_Last_Nodes.
10070         (First_And_Last_Nodes): Expand on previous First_Node. Apply to
10071         other nodes than expressions.
10072         (First_Sloc): Protect against inconsistent locations.
10073         (Last_Node): New function based on First_And_Last_Nodes.
10074         (Last_Sloc): New function similar to First_Sloc.
10075         (Output_Messages): Update output when -gnatdF is used. Use
10076         character ~ for making the span visible, similar to what is done
10077         in GCC and Clang.
10078         * errout.ads (Error_Msg, Error_Msg_NEL): Add versions with span
10079         parameter.
10080         (First_And_Last_Nodes, Last_Node, Last_Sloc): New subprograms.
10081         * erroutc.adb: Adapt to Sptr field being a span.
10082         * erroutc.ads (Error_Msg_Object): Change field Sptr from
10083         location to span.
10084         * errutil.adb: Adapt to Sptr field being a span.
10085         * freeze.adb: Use Errout reporting procedures for nodes to get
10086         spans.
10087         * par-ch3.adb: Likewise.
10088         * par-prag.adb: Likewise.
10089         * par-util.adb: Likewise.
10090         * sem_case.adb: Likewise.
10091         * sem_ch13.adb: Likewise.
10092         * sem_ch3.adb: Likewise.
10093         * sem_prag.adb: Likewise.
10094         * types.ads: (Source_Span): New type for spans.
10095         (To_Span): Basic constructors for spans.
10097 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10099         * einfo.adb (Discriminant_Constraint): Refine assertion.
10101 2021-04-28  Gary Dismukes  <dismukes@adacore.com>
10103         * exp_util.adb (Add_Own_DIC): Suppress expansion of a DIC pragma
10104         when the pragma occurs for an abstract type, since that could
10105         lead to a call to an abstract function, and such DIC checks can
10106         never be performed for abstract types in any case.
10107         * sem_disp.adb (Check_Dispatching_Context): Suppress the check
10108         for illegal calls to abstract subprograms when the call occurs
10109         within a Default_Initial_Condition aspect and the call is passed
10110         the current instance as an actual.
10111         (Has_Controlling_Current_Instance_Actual): New function to test
10112         a call to see if it has any actuals given by direct references
10113         to a current instance of a type
10114         * sem_res.adb (Resolve_Actuals): Issue an error for a call
10115         within a DIC aspect to a nonprimitive subprogram with an actual
10116         given by the name of the DIC type's current instance (which will
10117         show up as a reference to the formal parameter of a DIC
10118         procedure).
10120 2021-04-28  Ed Schonberg  <schonberg@adacore.com>
10122         * exp_ch3.adb (Expand_Record_Extension): Set Parent_Subtype on
10123         the type extension when within a generic unit, even though
10124         expansion is disabled, to allow for proper resolution of
10125         selected components inherited from an ancestor.
10127 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10129         * sem_aux.adb (Is_Limited_Type): Fix logic to check Is_Type
10130         before assuming Ent is a typo.
10131         * sem_ch4.adb (Analyze_Expression_With_Actions): Update
10132         comments, minor reformatting.
10133         * sem_res.adb (Resolve_Declare_Expression): Add protection
10134         against no type.
10136 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10138         * exp_ch6.adb: Fix typo in comment.
10139         * sem_ch3.adb (Access_Subprogram_Declaration): Add missing call
10140         to Create_Extra_Formals. Remove obsolete bootstrap check.
10141         * sem_eval.adb (Eval_Selected_Component): Simplify a
10142         selected_component on an aggregate.
10144 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10146         * fmap.ads (Reset_Tables): Remove outdated references to
10147         GNSA/ASIS.
10148         * sem_eval.ads (Initialize): Likewise.
10149         * sem_type.adb (Headers): Remove initialization at elaboration.
10150         * sem_type.ads (Init_Interp_Tables): Remove outdated reference
10151         to gnatf.
10152         * stringt.ads (Initialize): Fix style in comment.
10154 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10156         * sem_res.ads: Update reference in comment.
10157         * sem_type.ads: Fix casing in a name of a unit.
10159 2021-04-28  Yannick Moy  <moy@adacore.com>
10161         * ghost.adb (Check_Ghost_Context): Add continuation message when
10162         in predicate.
10164 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10166         * libgnat/s-valrea.adb (Integer_to_Real): Use a subtype of Num
10167         for the component type of the table of powers of ten.
10168         * libgnat/s-valuer.adb (Round_Extra): Add assertion on Base.
10170 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10172         * sem_ch5.adb (Analyze_Case_Statement): Extend optimization to
10173         all objects; fix typo in comment.
10175 2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
10177         * exp_ch9.adb (Build_Barrier_Function): Refine type of a
10178         protected type entity.
10179         (Is_Pure_Barrier): Fix style.
10181 2021-04-28  Bob Duff  <duff@adacore.com>
10183         * exp_ch3.adb (Simple_Init_Defaulted_Type): Simplify the code,
10184         and always use OK_Convert_To, rather than Unchecked_Convert_To
10185         and Convert_To.
10187 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10189         * sem_ch3.adb (Analyze_Object_Declaration): Remove dead code.
10190         * ali.ads, ali.adb (Scan_ALI): Remove unused parameters.
10191         Remove unused code related to Xref lines.
10192         (Get_Typeref): Removed, no longer used.
10194 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10196         * exp_attr.adb (Build_Array_VS_Func, Build_Record_VS_Func,
10197         Expand_N_Attribute_Reference): Use Get_Fullest_View instead of
10198         Validated_View.
10199         (Build_Record_VS_Func): Adjust to keep using Validated_View.
10200         (Expand_N_Attribute_Reference) [Valid]: Use
10201         Small_Integer_Type_For to allow for more compile time
10202         evaluations.
10203         * sem_util.adb (Cannot_Raise_Constraint_Error): Add more precise
10204         support for N_Indexed_Component and fix support for
10205         N_Selected_Component which wasn't completely safe.
10206         (List_Cannot_Raise_CE): New.
10207         * libgnat/i-cobol.adb (Valid_Packed): Simplify test to address
10208         new GNAT warning.
10210 2021-04-28  Arnaud Charlet  <charlet@adacore.com>
10212         * .gitignore: New.
10213         * doc/share/conf.py: Add Python 3 compatibility.
10214         * doc/share/gnat.sty: Add missing file.
10216 2021-04-28  Richard Wai  <richard@annexi-strayline.com>
10218         * libgnat/a-cohase.ads (Cursor): Synchronize comments for the Cursor
10219         type definition to be consistent with identical definitions in other
10220         container packages. Add additional comments regarding the importance of
10221         maintaining the "Position" component for predefined equality.
10222         * libgnat/a-cohama.ads (Cursor): Likewise.
10223         * libgnat/a-cihama.ads (Cursor): Likewise.
10224         * libgnat/a-cohase.adb (Find, Insert): Ensure that Cursor objects
10225         always have their "Position" component set to ensure predefined
10226         equality works as required.
10227         * libgnat/a-cohama.adb (Find, Insert): Likewise.
10228         * libgnat/a-cihama.adb (Find, Insert): Likewise.
10230 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10232         * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Do not demote a
10233         const or pure function because of a parameter whose type is pointer
10234         to function.
10235         * gcc-interface/trans.c (Call_to_gnu): Do not put back a conversion
10236         between an actual and a formal that are unconstrained array types.
10237         (gnat_gimplify_expr) <CALL_EXPR>: New case.
10238         * gcc-interface/utils2.c (build_binary_op): Do not use |= operator.
10239         (gnat_stabilize_reference_1): Likewise.
10240         (gnat_rewrite_reference): Likewise.
10241         (build_unary_op): Do not clear existing TREE_CONSTANT on the result.
10242         (gnat_build_constructor): Also accept the address of a constant
10243         CONSTRUCTOR as constant element.
10245 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10247         * gcc-interface/trans.c (is_array_of_scalar_type): New predicate.
10248         (find_decls_r): New function.
10249         (return_slot_opt_for_pure_call_p): New predicate.
10250         (Call_to_gnu): Do not create a temporary for the return value if the
10251         parent node is an aggregate.  If there is a target, try to apply the
10252         return slot optimization to regular calls to pure functions returning
10253         an array of scalar type.
10255 2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10257         * gcc-interface/trans.c (language_function): Add comment.
10258         (loop_info_d): Add fndecl and invariants fields.
10259         (find_loop_for): Test fndecl instead of the context of var.
10260         (find_loop): New function.
10261         (Regular_Loop_to_gnu): Fold back into...
10262         (Loop_Statement_to_gnu): ...this.  Emit invariants on entry, if any.
10263         (gnat_to_gnu) <N_Selected_Component>: Record nonconstant invariant
10264         offset computations in loops when optimization is enabled.
10265         * gcc-interface/utils2.c (gnat_invariant_expr): Handle BIT_AND_EXPR.
10267 2021-04-20  Martin Liska  <mliska@suse.cz>
10269         * gnatvsn.ads: Bump Library_Version to 12.
10271 2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>
10273         * gcc-interface/misc.c (gnat_init): Set default range bits to 0.
10274         * gcc-interface/trans.c (extract_encoding): Delete.
10275         (decode_name): Likewise.
10276         (File_Name_to_gnu): New function.
10277         (gigi): Call it to translate file names.  Replace assertion on
10278         1-1 mapping between files and line maps with conditional error.
10280 2021-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
10282         * gnat_ugn.texi (Top): Avoid invalid "up" link.
10284 2021-03-29  Eric Botcazou  <ebotcazou@adacore.com>
10286         PR ada/99802
10287         * freeze.adb (Is_Full_Access_Aggregate): Call Is_Full_Access_Object
10288         on the name of an N_Assignment_Statement to spot full access.
10290 2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
10292         * gcc-interface/decl.c (gnat_to_gnu_entity): Build a TYPE_STUB_DECL
10293         for the main variant of an enumeration type declared as volatile.
10295 2021-03-09  Mikael Pettersson  <mikpelinux@gmail.com>
10297         * raise-gcc.c: On Cygwin include mingw32.h to prevent
10298         windows.h from including x86intrin.h or emmintrin.h.
10300 2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
10302         PR ada/99264
10303         * init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on
10304         MINSIGSTKSZ and bump size to 32KB.
10305         * libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB.
10307 2021-03-02  Mikael Pettersson  <mikpelinux@gmail.com>
10309         PR bootstrap/98590
10310         * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.
10312 2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>
10314         PR ada/99095
10315         * sem_ch8.adb (Check_Constrained_Object): Restrict again the special
10316         optimization for limited types to non-array types except in the case
10317         of an extended return statement.
10319 2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>
10321         PR ada/99020
10322         * sem_ch3.adb (Build_Discriminated_Subtype): Set the Cloned_Subtype
10323         only if the type is not private.
10325 2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
10327         PR ada/98996
10328         * Makefile.rtl: <mips*-*-linux*>
10329         add 128Bit operation file for MIPS N64 and N32 to
10330         LIBGNAT_TARGET_PAIRS and EXTRA_GNATRTL_NONTASKING_OBJS
10332 2021-02-12  Arnaud Charlet  <charlet@adacore.com>
10334         * repinfo.ads, repinfo.adb (*SO_Ref*): Restore.
10336 2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>
10338         * gcc-interface/decl.c (components_to_record): If the first component
10339         with rep clause is the _Parent field with variable size, temporarily
10340         set it aside when computing the internal layout of the REP part again.
10341         * gcc-interface/utils.c (finish_record_type): Revert to taking the
10342         maximum when merging sizes for all record types with rep clause.
10343         (merge_sizes): Put SPECIAL parameter last and adjust recursive calls.
10345 2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>
10347         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Make the
10348         two fields of the fat pointer type addressable, and do not make the
10349         template type read-only.
10350         <E_Record_Type>: If the type has discriminants mark it as may_alias.
10351         * gcc-interface/utils.c (make_dummy_type): Likewise.
10352         (build_dummy_unc_pointer_types): Likewise.
10354 2021-01-26  Marius Hillenbrand  <mhillen@linux.ibm.com>
10356         PR ada/98228
10357         * gcc-interface/utils.c (maybe_pad_type): Test the size of the new
10358         packable type instead of its alignment for addressability's sake.
10360 2021-01-25  Eric Botcazou  <ebotcazou@adacore.com>
10362         * gcc-interface/trans.c (make_covariant_thunk): Set the DECL_CONTEXT
10363         of the parameters and do not set TREE_PUBLIC on the thunk.
10364         (maybe_make_gnu_thunk): Pass the alias to the covariant thunk.
10365         * gcc-interface/utils.c (finish_subprog_decl): Set the DECL_CONTEXT
10366         of the parameters here...
10367         (begin_subprog_body): ...instead of here.
10369 2021-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10371         PR ada/98740
10372         * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.
10374 2021-01-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10376         PR ada/98595
10377         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <riscv*-*-rtems*>: Use
10378         wraplf version of Aux_Long_Long_Float.
10380 2021-01-03  Eric Botcazou  <ebotcazou@adacore.com>
10382         * gnatvsn.ads: Bump copyright year.
10384 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
10386         * gnat_ugn.texi: Bump @copying's copyright year.
10387         * gnat_rm.texi: Likewise.
10389 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
10391         * ChangeLog-2020: Rotate ChangeLog.  New file.
10394 Copyright (C) 2021 Free Software Foundation, Inc.
10396 Copying and distribution of this file, with or without modification,
10397 are permitted in any medium without royalty provided the copyright
10398 notice and this notice are preserved.