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