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