21c9ce3a1989782d92f6ab83dad5d337ada5a913
[platform/upstream/gcc.git] / gcc / ada / ChangeLog
1 2022-11-09  Martin Liska  <mliska@suse.cz>
2
3         * gcc-interface/Make-lang.in:
4         Support installation if sphinx-build is missing.
5
6 2022-11-09  Martin Liska  <mliska@suse.cz>
7
8         * doc/gnat_rm/index.rst: Fix cross manual refs.
9
10 2022-11-09  Martin Liska  <mliska@suse.cz>
11
12         * gcc-interface/Make-lang.in: Support --with-sphinx-build.
13
14 2022-11-09  Martin Liska  <mliska@suse.cz>
15
16         * doc/gnat-style.rst: Moved to...
17         * doc/gnat-style/index.rst: ...here.
18         * doc/gnat_rm.rst: Moved to...
19         * doc/gnat_rm/index.rst: ...here.
20         * doc/gnat_ugn.rst: Moved to...
21         * doc/gnat_ugn/index.rst: ...here.
22         * doc/share/latex_elements.py: Moved to...
23         * doc/share/ada_latex_elements.py: ...here.
24         * gcc-interface/Make-lang.in:
25         * doc/Makefile: Removed.
26         * doc/share/conf.py: Removed.
27         * doc/share/gnu_free_documentation_license.rst: Removed.
28         * gnat-style.texi: Removed.
29         * gnat_rm.texi: Removed.
30         * gnat_ugn.texi: Removed.
31         * doc/gnat-style/conf.py: New file.
32         * doc/gnat-style/gnu_free_documentation_license.rst: New file.
33         * doc/gnat_rm/conf.py: New file.
34         * doc/gnat_rm/gnu_free_documentation_license.rst: New file.
35         * doc/gnat_ugn/conf.py: New file.
36         * doc/gnat_ugn/gnu_free_documentation_license.rst: New file.
37         * doc/share/adabaseconf.py: New file.
38         * doc/gnat_rm/security_hardening_features.rst: Add role.
39         * doc/gnat_ugn/platform_specific_information.rst: Remove
40           duplicate definition of |nbsp|.
41
42 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
43
44         * gcc-interface/utils2.cc (build_allocator): For unconstrained
45         array types with a storage model and an initializing expression,
46         copy the initialization expression separately from the bounds. In
47         all cases with a storage model, pass the locally computed size for
48         the store.
49
50 2022-11-08  Steve Baird  <baird@adacore.com>
51
52         * sem_attr.adb
53         (Eval_Attribute): Don't simplify 'Image call if Put_Image has been
54         specified.
55
56 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
57
58         * exp_ch6.adb, exp_put_image.adb, sem_aggr.adb, sem_attr.adb,
59         sem_ch5.adb, sem_type.adb, sem_util.adb: Replace
60         "Present (Find_Aspect (...))" with "Has_Aspect".
61
62 2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
63
64         * contracts.adb
65         (Preanalyze_Class_Conditions): New procedure.
66         (Preanalyze_Condition): Moved out from Merge_Class_Conditions in
67         order to be spec-visible.
68         * contracts.ads
69         (Preanalyze_Class_Conditions): New procedure.
70         * sem_prag.adb
71         (Analyze_Pre_Post_Condition_In_Decl_Part): Call
72         Preanalyze_Class_Conditions when necessary.
73
74 2022-11-08  Johannes Kliemann  <kliemann@adacore.com>
75
76         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Set
77         Support_Atomic_Primitives to True.
78         * libgnat/system-vxworks7-aarch64.ads: Set
79         Support_Atomic_Primitives to True.
80         * libgnat/system-vxworks7-arm-rtp-smp.ads: Set
81         Support_Atomic_Primitives to True.
82         * libgnat/system-vxworks7-arm.ads: Set Support_Atomic_Primitives
83         to True.
84         * libgnat/system-vxworks7-ppc-kernel.ads: Set
85         Support_Atomic_Primitives to False.
86         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Set
87         Support_Atomic_Primitives to False.
88         * libgnat/system-vxworks7-ppc64-kernel.ads: Set
89         Support_Atomic_Primitives to True.
90         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Set
91         Support_Atomic_Primitives to True.
92         * libgnat/system-vxworks7-x86-kernel.ads: Set
93         Support_Atomic_Primitives to True.
94         * libgnat/system-vxworks7-x86-rtp-smp.ads: Set
95         Support_Atomic_Primitives to True.
96         * libgnat/system-vxworks7-x86_64-kernel.ads: Set
97         Support_Atomic_Primitives to True.
98         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Set
99         Support_Atomic_Primitives to True.
100
101 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
102
103         * fe.h (Get_Warn_On_Questionable_Layout): Add void parameter.
104
105 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
106
107         * sem_ch12.adb (Instantiate_Formal_Subprogram): Copy aspect Ghost
108         from formal subprogram declaration to the internally generated
109         procedure.
110
111 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
112
113         * sem_ch4.adb (Analyze_Case_Expression): Compute the
114         interpretations of the expression only at the end of the analysis,
115         but skip doing it if it is the operand of a type conversion.
116         (Analyze_If_Expression): Likewise.
117         * sem_res.adb (Resolve): Deal specially with conditional
118         expression that is the operand of a type conversion.
119         (Resolve_Dependent_Expression): New procedure.
120         (Resolve_Case_Expression): Call Resolve_Dependent_Expression.
121         (Resolve_If_Expression): Likewise.
122         (Resolve_If_Expression.Apply_Check): Take result type as
123         parameter.
124         (Resolve_Type_Conversion): Do not warn about a redundant
125         conversion when the operand is a conditional expression.
126
127 2022-11-08  Javier Miranda  <miranda@adacore.com>
128
129         * debug.adb
130         (Debug_Flag_Underscore_XX): Switch -gnatd_X used temporarily to allow
131         disabling extra formal checks.
132         * exp_attr.adb
133         (Expand_N_Attribute_Reference [access types]): Add extra formals
134         to the subprogram referenced in the prefix of 'Unchecked_Access,
135         'Unrestricted_Access or 'Access; required to check that its extra
136         formals match the extra formals of the corresponding subprogram type.
137         * exp_ch3.adb
138         (Stream_Operation_OK): Declaration moved to the public part of the
139         package.
140         (Validate_Tagged_Type_Extra_Formals): New subprogram.
141         (Expand_Freeze_Record_Type): Improve the code that takes care of
142         adding the extra formals of dispatching primitives; extended to
143         add also the extra formals to renamings of dispatching primitives.
144         * exp_ch3.ads
145         (Stream_Operation_OK): Declaration moved from the package body.
146         * exp_ch6.adb
147         (Check_BIP_Actuals): Complete documentation.
148         (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
149         part of the package. In addition, a parameter has been added to
150         disable an assertion that requires its use with frozen entities.
151         (Duplicate_Params_Without_Extra_Actuals): New subprogram.
152         (Check_Subprogram_Variant): Emit the call without duplicating the
153         extra formals since they will be added when the call is analyzed.
154         (Expand_Call_Helper): Ensure that the called subprogram has all its
155         extra formals, enforce assertion checking extra formals on thunks,
156         and mark calls from thunks as processed-BIP-calls to avoid adding
157         their extra formals twice.
158         (Is_Build_In_Place_Function): Return False for entities with foreign
159         convention.
160         (Is_Build_In_Place_Function_Call): Return True also for not BIP functions
161         that have BIP formals since the extra actuals are required.
162         (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
163         Is_Return_Object replaced by the local variable Is_OK_Return_Object
164         that evaluates to False for scopes with foreign convention.
165         (Might_Have_Tasks): Fix check of class-wide limited record types.
166         (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
167         function in more contexts; in addition it returns False for functions
168         returning objects with foreign convention.
169         (Needs_BIP_Finalization_Master): Likewise.
170         (Needs_BIP_Alloc_Form): Likewise.
171         (Validate_Subprogram_Calls): Check that the number of actuals (including
172         extra actuals) of calls in the subtree N match their corresponding
173         formals.
174         * exp_ch6.ads
175         (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
176         part of the package. In addition, a parameter has been added to
177         disable an assertion that requires its use with frozen entities.
178         (Is_Build_In_Place_Function_Call): Complete documentation.
179         (Validate_Subprogram_Calls): Check that the number of actuals (including
180         extra actuals) of calls in the subtree N match their corresponding
181         formals.
182         * freeze.adb
183         (Check_Itype): Add extra formals to anonymous access subprogram itypes.
184         (Freeze_Expression): Improve code that disables the addition of extra
185         formals to functions with foreign convention.
186         (Check_Extra_Formals): Moved to package Sem_Ch6 as Extra_Formals_OK.
187         (Freeze_Subprogram): Add extra formals to non-dispatching subprograms.
188         * frontend.adb
189         (Frontend): Validate all the subprogram calls; it can be disabled using
190         switch -gnatd_X
191         * sem_ch3.adb
192         (Access_Subprogram_Declaration): Defer the addition of extra formals to
193         the freezing point so that we know the convention.
194         (Check_Anonymous_Access_Component): Likewise.
195         (Derive_Subprogram): Fix documentation.
196         * sem_ch6.adb
197         (Has_Reliable_Extra_Formals): New subprogram.
198         (Check_Anonymous_Return): Fix check of access to class-wide limited
199         record types.
200         (Check_Untagged_Equality): Placed in alphabetical order.
201         (Extra_Formals_OK): Subprogram moved from freeze.adb.
202         (Extra_Formals_Match_OK): New subprogram.
203         (Has_BIP_Formals): New subprogram.
204         (Has_Extra_Formals): New subprograms.
205         (Needs_Accessibility_Check_Extra): New subprogram.
206         (Parent_Subprogram): New subprogram.
207         (Add_Extra_Formal): Minor code cleanup.
208         (Create_Extra_Formals): Enforce matching extra formals on overridden
209         and aliased entities.
210         * sem_ch6.ads
211         (Extra_Formals_Match_OK): New subprogram.
212         (Extra_Formals_OK): Subprogram moved from freeze.adb.
213         * sem_eval.adb
214         (Compile_Time_Known_Value): Improve predicate to avoid assertion
215         failure; found working on this ticket; this change does not
216         affect the behavior of the compiler because this subprogram
217         has an exception handler that returns False when the assertion
218         fails.
219         * sem_util.adb
220         (Needs_Result_Accessibility_Level): Do not return False for dispatching
221         operations compiled with Ada_Version < 2012 since they they may be
222         overridden by primitives compiled with Ada_Version >= Ada_2012.
223
224 2022-11-08  Bob Duff  <duff@adacore.com>
225
226         * warnsw.ads, warnsw.adb, fe.h, err_vars.ads, errout.ads: Move
227         Warning_Doc_Switch from Err_Vars to Warnsw. Access
228         Warn_On_Questionable_Layout on the C side via a function rather
229         than a variable, because we plan to turn the variables into
230         renamings, and you can't Export renamings.
231         * erroutc.adb, switch-c.adb, errout.adb: Likewise.
232         * gcc-interface/decl.cc: Use Get_Warn_On_Questionable_Layout
233         instead of Warn_On_Questionable_Layout.
234         * gcc-interface/Makefile.in (GNATMAKE_OBJS): Add warnsw.o, because
235         it is indirectly imported via Errout.
236         * gcc-interface/Make-lang.in (GNATBIND_OBJS): Likewise and remove
237         restrict.o (not needed).
238
239 2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
240
241         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
242         (-gnatwc): Fix flag documentation.
243         * gnat_ugn.texi: Regenerate.
244
245 2022-11-08  Steve Baird  <baird@adacore.com>
246
247         * sem_ch3.adb
248         (Analyze_Object_Declaration): Do not perform expansion actions if
249         In_Spec_Expression is true.
250
251 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
252
253         * sem_ch4.adb (Analyze_Qualified_Expression): Analyze the
254         expression only after setting the type.
255         (Analyze_Unchecked_Type_Conversion): Likewise.
256         (Analyze_Short_Circuit): Likewise for the operands.
257         (Analyze_Type_Conversion): Minor tweaks.
258         (Analyze_Unchecked_Expression): Likewise.
259
260 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
261
262         * sem_ch4.adb (Analyze_Qualified_Expression): Remove redundant
263         line.
264
265 2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
266
267         * contracts.adb (Preanalyze_Condition): Use
268         Preanalyze_Spec_Expression.
269
270 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
271
272         * exp_imgv.adb
273         (Expand_Wide_Image_Attribute): Handle just like attribute Image.
274         (Expand_Wide_Wide_Image_Attribute): Likewise.
275         * exp_put_image.adb
276         (Build_Image_Call): Adapt to also work for Wide and Wide_Wide
277         attributes.
278         * exp_put_image.ads
279         (Build_Image_Call): Update comment.
280         * rtsfind.ads
281         (RE_Id): Support wide variants of Get.
282         (RE_Unit_Table): Likewise.
283
284 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
285
286         * libgnat/a-ngcoar.ads, libgnat/a-ngcoar.adb: Remove extra spaces.
287
288 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
289
290         * sem_ch12.adb (Validate_Formal_Type_Default): Remove call to
291         Collect_Interfaces, which had no effect apart from populating a
292         list that was not used; fix style.
293
294 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
295
296         * exp_spark.adb (SPARK_Freeze_Type): Refine type of a local
297         object.
298         * sem_ch3.adb (Derive_Subprograms): Remove initial value for
299         New_Subp, which is in only written as an out parameter and never
300         read.
301
302 2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
303
304         * sem_res.adb (Resolve_If_Expression): Remove obsolete special
305         case.
306
307 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
308
309         * sem_aggr.adb (Resolve_Delta_Aggregate): Implement rules related
310         to limited objects appearing as the base expression.
311
312 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
313
314         * sem_ch3.adb (OK_For_Limited_Init_In_05): Handle delta aggregates
315         just like other aggregates.
316
317 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
318
319         * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject
320         expressions of a limited types.
321
322 2022-11-08  Javier Miranda  <miranda@adacore.com>
323
324         * exp_ch9.adb
325         (Build_Master_Entity): Handle missing case: when the context of
326         the master is a BIP function whose result type has tasks.
327
328 2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
329
330         * libgnat/a-tags.adb
331         (Interface_Ancestor_Tags): Raise Tag_Error on No_Tag.
332         (Is_Descendant_At_Same_Level): Likewise.
333
334 2022-11-08  Bob Duff  <duff@adacore.com>
335
336         * usage.adb: Add -gnatw_q and -gnatw_Q.
337
338 2022-11-07  Cedric Landet  <landet@adacore.com>
339
340         * doc/gnat_ugn/gnat_and_program_execution.rst: Mention the needed
341         -no-pie for windows to use gprof.
342         * gnat_ugn.texi: Regenerate.
343
344 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
345
346         * lib-xref.adb (Hash): Tune hash function.
347
348 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
349
350         * sem_prag.adb (Non_Significant_Pragma_Reference): Detect
351         references with aggregates; only assign local variables Id and C
352         when necessary.
353
354 2022-11-07  Bob Duff  <duff@adacore.com>
355
356         * exp_ch4.adb
357         (Component_Equality, Expand_Array_Equality)
358         (Expand_Record_Equality): Use named notation.
359
360 2022-11-07  Bob Duff  <duff@adacore.com>
361
362         * exp_ch4.adb
363         (Expand_Array_Equality): Do not test Ltyp = Rtyp here, because
364         that is necessarily true. Move assertion thereof to more general
365         place.
366         (Expand_Composite_Equality): Pass in Outer_Type, for use in
367         warnings. Rename Typ to be Comp_Type, to more clearly distinguish
368         it from Outer_Type. Print warning when appropriate.
369         * exp_ch4.ads: Minor comment fix.
370         * errout.ads: There is no such pragma as Warning_As_Pragma --
371         Warning_As_Error must have been intended. Improve comment for ?x?.
372         * exp_ch3.adb
373         (Build_Untagged_Equality): Update comment to be accurate for more
374         recent versions of Ada.
375         * sem_case.adb
376         (Choice_Analysis): Declare user-defined "=" functions as abstract.
377         * sem_util.ads
378         (Is_Bounded_String): Give RM reference in comment.
379         * warnsw.ads, warnsw.adb
380         (Warn_On_Ignored_Equality): Implement new warning switch -gnatw_q.
381         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
382         Document new warning switch.
383         * gnat_ugn.texi: Regenerate.
384
385 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
386
387         * sem_aux.ads (Is_Body): Annotate with Inline.
388         * sem_util.ads (Is_Body_Or_Package_Declaration): Likewise.
389
390 2022-11-07  Bob Duff  <duff@adacore.com>
391
392         * freeze.adb
393         (Build_Inherited_Condition_Pragmas): Do nothing if A_Post is
394         empty.
395
396 2022-11-07  Quentin Ochem  <ochem@adacore.com>
397             Steve Baird  <baird@adacore.com>
398
399         * bindgen.adb: fixed the way the device init and final symbols are
400         computed, re-using the normal way these symbols would be computed
401         with a __device_ prefix. Also fixed the "is null;" procedure on
402         the host side which are not Ada 95, replaced with a procedure
403         raising an exception as it should never be called. Remove the
404         unused function Device_Ada_Final_Link_Name.
405
406 2022-11-07  Steve Baird  <baird@adacore.com>
407
408         * opt.ads: Declare new string pointer variable, CUDA_Device_Library_Name.
409         Modify comments for existing Boolean variable Enable_CUDA_Device_Expansion.
410         * switch-b.adb: When "-d_c" switch is encountered, check that the next
411         character is an "'='; use the remaining characters to initialize
412         Opt.CUDA_Device_Library_Name.
413         * bindgen.adb: Remove (for now) most support for host-side invocation of
414         device-side finalization. Make use of the new CUDA_Device_Library_Name
415         in determining the string used to refer (on the host side) to the
416         device-side initialization procedure. Declare the placeholder routine
417         that is named in the CUDA_Execute pragma (and the CUDA_Register_Function
418         call) as an exported null procedure, rather than as an imported procedure.
419         It is not clear whether it is really necessary to specify the link-name
420         for this should-never-be-called subprogram on the host side, but for now it
421         shouldn't hurt to do so.
422
423 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
424
425         * exp_ch6.adb (Expand_Protected_Subprogram_Call): Examine scope
426         tree and not the scope stack.
427
428 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
429
430         * mdll.ads (Build_Import_Library): Fix grammar in comment.
431         * mdll.adb (Build_Import_Library): Directly execute code of a
432         nested routine; rename No_Lib_Prefix to Strip_Lib_Prefix.
433
434 2022-11-07  Bob Duff  <duff@adacore.com>
435
436         * sem_warn.adb
437         (Check_For_Warnings): Remove unnecessary exception handler.
438         (Warn_On_Known_Condition): Suppress warning when we detect a True
439         or False that has been turned into a more complex expression
440         because True is represented as "nonzero". (Note that the complex
441         expression will subsequently be constant-folded to a Boolean True
442         or False). Also simplify to always print "condition is always ..."
443         instead of special-casing object names. The special case was
444         unhelpful, and indeed wrong when the expression is a literal.
445
446 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
447
448         * checks.adb (Safe_To_Capture_In_Parameter_Value): Remove.
449         * sem_util.adb (Safe_To_Capture_Value): Stop search at the current
450         body.
451
452 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
453
454         * sem_warn.adb (Warn_On_In_Out): Remove No_ prefix; flip return
455         values between True and False; adapt caller.
456
457 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
458
459         * sem_ch13.adb (Add_Call): Just look at Instantiation_Depth.
460         * sem_ch3.adb (Derive_Subprograms): Likewise.
461         * sem_warn.adb (Check_References): Remove redundant filtering with
462         Instantiation_Depth that follows filtering with
463         Instantiation_Location.
464         * sinput.adb (Instantiation_Depth): Reuse Instantiation_Location.
465
466 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
467
468         * sem_warn.adb
469         (No_Warn_On_In_Out): For subprograms we can simply call
470         Warnings_Off.
471         (Output_Non_Modified_In_Out_Warnings): Remove repeated
472         suppression.
473
474 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
475
476         * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Reject boxes in
477         delta array aggregates.
478
479 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
480
481         * sem_res.adb (Enclosing_Declaration_Or_Statement): Moved to
482         Sem_Util.
483         * sem_util.ads (Enclosing_Declaration_Or_Statement): Moved from
484         Sem_Res.
485         * sem_util.adb (Enclosing_Declaration_Or_Statement): Likewise.
486
487 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
488
489         * sem_res.adb (Resolve): Only call Comes_From_Predefined_Lib_Unit
490         when its result might be needed.
491
492 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
493
494         * sem_ch12.adb (Check_Generic_Actuals): Remove redundant parens;
495         refactor an excessive if-statement; remove repeated call to Node.
496
497 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
498
499         * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Move
500         comment next to a condition that it describes.
501
502 2022-11-07  Steve Baird  <baird@adacore.com>
503
504         * exp_put_image.adb
505         (Image_Should_Call_Put_Image): Correctly handle the case of an
506         inherited Put_Image aspect specification for a scalar type.
507
508 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
509
510         * libgnarl/s-interr.adb: Tune whitespace.
511
512 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
513
514         * libgnarl/s-interr.adb: Reorder context items and pragmas.
515
516 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
517
518         * exp_ch4.adb
519         (Expand_Modular_Addition): Rewrite using Make_XXX calls.
520         (Expand_Modular_Op): Likewise.
521         (Expand_Modular_Subtraction): Likewise.
522         * exp_imgv.adb
523         (Expand_User_Defined_Enumeration_Image): Likewise.
524
525 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
526
527         * checks.adb (Apply_Arithmetic_Overflow_Strict): Rewrite using a
528         newly created operator node.
529         * exp_ch4.adb (Expand_Array_Comparison): Likewise.
530         * exp_ch6.adb (Add_Call_By_Copy_Code): Rewriting actual parameter
531         using its own location and not the location of the subprogram
532         call.
533         * sem_warn.adb (Check_References): Looping with Original_Node is
534         no longer needed.
535
536 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
537
538         * sem_prag.adb (Is_In_Context_Clause): Rewrite without negations
539         and inequalities.
540
541 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
542
543         * sem_prag.adb (Analyze_Pragma [Pragma_Obsolescent]): Reject
544         misplaced pragma.
545
546 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
547
548         * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warnings
549         about obsolescent functions just like we tag similar warnings for
550         packages and procedures.
551
552 2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
553
554         * exp_attr.adb (Expand_N_Attribute_Reference): Remove useless
555         skipping for attribute Input.
556
557 2022-11-04  Justin Squirek  <squirek@adacore.com>
558
559         * exp_attr.adb (Expand_N_Attribute_Reference): Skip operand
560         validity checks for attributes Has_Same_Storage and
561         Overlaps_Storage.
562
563 2022-11-04  Eric Botcazou  <ebotcazou@adacore.com>
564
565         * errout.adb (Remove_Warning_Messages.Check_For_Warning): Do not
566         reinstate the Original_Node in the tree.
567         * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Loop): Copy the bounds
568         on all paths.
569
570 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
571
572         * libgnat/g-excact.ads
573         (Register_Global_Action): Refill comment.
574         (Name_To_Id): Change pragma Restriction from singular to plural.
575
576 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
577
578         * sem_warn.adb (Check_References): Remove redundant guard, as it
579         is implied by a preceding call to Referenced_Check_Spec.
580
581 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
582
583         * sem_warn.adb (Check_References): Remove useless query for "spec"
584         of a variable; refactor nested if-statements into a single
585         condition.
586
587 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
588
589         * sem_util.adb
590         (In_Pragma_Expression): Add standard guard against searching too
591         far.
592         (In_Quantified_Expression): Likewise.
593         * sem_warn.adb
594         (May_Need_Initialized_Actual): Remove redundant parens.
595         (Check_References): Remove guard that duplicates a condition from
596         the enclosing if-statement; only assign E1T variable when
597         necessary.
598         (Within_Postcondition): Fix layout.
599         (No_Warn_On_In_Out): Balance parens in comment.
600
601 2022-11-04  Steve Baird  <baird@adacore.com>
602
603         * doc/gnat_rm/implementation_defined_pragmas.rst: Add the standard
604         '... "On" enables this extension.' sentence to the description of
605         static intrinsic functions.
606         * sem_ch13.adb
607         (Analyze_Aspect_Spec): In the call to Error_Msg_GNAT_Extension for
608         a Static aspect specification for an intrinsic function, specify
609         Is_Core_Extension => True.
610         * sem_eval.adb
611         (Eval_Intrinsic_Call): Test Core_Extensions_Allowed instead of
612         testing All_Extensions_Allowed.
613         * gnat_rm.texi: Regenerate.
614
615 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
616
617         * aspects.adb (Relocate_Aspect): Remove call to Set_Has_Aspects.
618         * sem_ch12.adb (Analyze_Formal_Package_Declaration): Likewise.
619         * sem_util.adb (Copy_Ghost_Aspect, Copy_SPARK_Mode_Aspect):
620         Likewise.
621
622 2022-11-04  Javier Miranda  <miranda@adacore.com>
623
624         * exp_intr.adb
625         (Expand_Dispatching_Constructor_Call): Report an error on
626         unsupported dispatching constructor calls and report a warning on
627         calls that may fail at run time.
628
629 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
630
631         * sem_util.adb
632         (Check_Components): Iterate using
633         First/Next_Component_Or_Discriminant.
634         (Has_Preelaborable_Initialization): Avoid repeated iteration with
635         calls to Check_Components with First_Entity and
636         First_Private_Entity.
637         (Is_Independent_Object_Entity): Tune indentation.
638
639 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
640
641         * sem_ch7.adb (Clear_Constants): Only iterate from First_Entity
642         through Next_Entity; only examine variables because packages have
643         no assignable formal parameters.
644
645 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
646
647         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
648         typos.
649         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Fix typos
650         and refill as necessary; remove trailing whitespace.
651         * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typos.
652         * gnat_ugn.texi: Regenerate.
653
654 2022-11-04  Marc Poulhiès  <poulhies@adacore.com>
655
656         * sem_util.ads (Add_Block_Identifier): Add new extra Scope
657         argument.
658         * sem_util.adb (Add_Block_Identifier): Likewise and use this scope
659         variable instead of Current_Scope.
660         * exp_util.adb (Wrap_Statements_In_Block): Add new scope argument
661         to Add_Block_Identifier call.
662
663 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
664
665         * sem_util.adb (Kill_Current_Values): Only iterate from
666         First_Entity through Next_Entity.
667
668 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
669
670         * sem_ch6.adb (Controlling_Formal): Iterate with First/Next_Formal
671         and not with First/Next_Entity.
672
673 2022-11-04  Javier Miranda  <miranda@adacore.com>
674
675         * exp_disp.adb
676         (Expand_Interface_Conversion): Fix typo in comment.
677
678 2022-11-04  Javier Miranda  <miranda@adacore.com>
679
680         * exp_disp.adb
681         (Expand_Interface_Conversion): Under configurable runtime, when
682         the target type is an interface that is an ancestor of the operand
683         type, skip generating code to displace the pointer to reference
684         the target dispatch table.
685         * sem_disp.adb
686         (Propagate_Tag): Handle class-wide types when checking for the
687         addition of an implicit interface conversion.
688
689 2022-11-04  Ronan Desplanques  <desplanques@adacore.com>
690
691         * doc/gnat_rm/standard_library_routines.rst: Fix typo.
692         * gnat_rm.texi: Regenerate.
693
694 2022-11-04  Ghjuvan Lacambre  <lacambre@adacore.com>
695
696         * sa_messages.ads, sa_messages.adb: Remove files.
697
698 2022-11-04  Ghjuvan Lacambre  <lacambre@adacore.com>
699
700         * checks.adb, exp_atag.adb, exp_attr.adb, exp_ch4.adb, exp_ch6.adb,
701         exp_ch7.adb, exp_dbug.adb, exp_disp.adb, exp_unst.adb, exp_util.adb,
702         freeze.adb, layout.adb, pprint.adb, rtsfind.adb, sem_aggr.adb,
703         sem_attr.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
704         sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb,
705         sem_util.adb, sem_warn.adb:
706         Replace uses of `not Present (X)` with `No (X)`.
707
708 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
709
710         * einfo.ads: Fix typos in comments; refill as necessary.
711         * sinfo.ads: Likewise.
712
713 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
714
715         * doc/gnat_rm/implementation_defined_aspects.rst: Fix typos.
716         * doc/gnat_rm/implementation_defined_attributes.rst: Likewise
717         * doc/gnat_rm/implementation_defined_characteristics.rst: Likewise
718         * doc/gnat_rm/implementation_defined_pragmas.rst: Likewise
719         * doc/gnat_rm/standard_library_routines.rst: Likewise.
720         * gnat_rm.texi: Regenerate.
721
722 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
723
724         * sem_ch8.adb (Restore_Scope_Stack): Remove elements from the head
725         and not the tail of an element list.
726
727 2022-11-04  Ronan Desplanques  <desplanques@adacore.com>
728
729         * sinfo.ads: Small editorial changes.
730
731 2022-11-04  Steve Baird  <baird@adacore.com>
732
733         * opt.ads: Replace Ada_Version_Type enumeration literal
734         Ada_With_Extensions with two literals, Ada_With_Core_Extensions
735         and Ada_With_All_Extensions. Update uses of the deleted literal.
736         Replace Extensions_Allowed function with two functions:
737         All_Extensions_Allowed and Core_Extensions_Allowed.
738         * errout.ads, errout.adb: Add Boolean parameter to
739         Error_Msg_GNAT_Extension to indicate whether the construct in
740         question belongs to the curated subset.
741         * exp_ch5.adb, par-ch4.adb, sem_case.adb, sem_ch3.adb:
742         * sem_ch4.adb, sem_ch5.adb, sem_ch8.adb: Replace calls to
743         Extensions_Allowed with calls to Core_Extensions_Allowed for
744         constructs that are in the curated subset.
745         * sem_attr.adb, sem_ch13.adb, sem_eval.adb, sem_util.adb: Replace
746         calls to Extensions_Allowed with calls to All_Extensions_Allowed
747         for constructs that are not in the curated subset.
748         * par-ch3.adb: Override default for new parameter in calls to
749         Error_Msg_GNAT_Extension for constructs in the curated subset.
750         * par-prag.adb: Add Boolean parameter to Check_Arg_Is_On_Or_Off to
751         also allow ALL. Set Opt.Ada_Version appropriately for ALL or ON
752         arguments.
753         * sem_prag.adb: Allowed ALL argument for an Extensions_Allowed
754         pragma. Set Opt.Ada_Version appropriately for ALL or ON arguments.
755         * switch-c.adb: The -gnatX switch now enables only the curated
756         subset of language extensions (formerly it enabled all of them);
757         the new -gnatX0 switch enables all of them.
758         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
759         Document new "-gnatX0" switch and update documentation for
760         "-gnatX" switch.
761         * doc/gnat_rm/implementation_defined_pragmas.rst: Document new ALL
762         argument for pragma Extensions_Allowed and update documentation
763         for the ON argument. Delete mention of Ada 2022 Reduce attribute
764         as an extension.
765         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
766
767 2022-11-04  Steve Baird  <baird@adacore.com>
768
769         * bindgen.adb: Introduce two new string constants for the names of
770         the C-String variables that are assigned the names for adainit and
771         adafinal. Replace string literals in Gen_CUDA_Init with references
772         to these constants. In Gen_CUDA_Defs, generate C-String variable
773         declarations where these constants are the names of the variables.
774
775 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
776
777         * sem_ch9.adb (Satisfies_Lock_Free_Requirements): Ignore
778         references to global variables inserted due to pragma
779         Initialize_Scalars.
780
781 2022-11-04  Cedric Landet  <landet@adacore.com>
782
783         * doc/gnat_rm/implementation_defined_pragmas.rst: Remove VxWorks
784         version 6.
785         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
786
787 2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
788
789         * sem_ch9.adb (Satisfies_Lock_Free_Requirements): Detect
790         references via expanded names.
791
792 2022-11-04  Steve Baird  <baird@adacore.com>
793
794         * bindgen.adb
795         (Gen_CUDA_Init): Move existing loop body into a new local
796         procedure, Gen_CUDA_Register_Function_Call, and replace that loop
797         body with a call to this procedure. This first part is just
798         semantics-preserving refactoring. The second part is to add
799         Gen_CUDA_Register_Function_Call calls after the loop for the
800         device-side adainit and adafinal procedures.
801
802 2022-10-11  Eric Botcazou  <ebotcazou@adacore.com>
803
804         * libgnat/system-linux-sparc.ads (Support_Atomic_Primitives): New
805         constant set to True.
806
807 2022-10-06  Eric Botcazou  <ebotcazou@adacore.com>
808
809         * gcc-interface/ada-tree.def (LOAD_EXPR): New expression code.
810         * gcc-interface/gigi.h (build_storage_model_load): Declare.
811         (build_storage_model_store): Likewise.
812         (instantiate_load_in_expr): Likewise.
813         (INSTANTIATE_LOAD_IN_EXPR): New macro.
814         (instantiate_load_in_array_ref): Declare.
815         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Type>: Set a
816         fake discriminant number on the fields of the template type.
817         (gnat_to_gnu_field): Use integer for DECL_DISCRIMINANT_NUMBER.
818         * gcc-interface/misc.cc (gnat_init_ts): Mark LOAD_EXPR as typed.
819         * gcc-interface/trans.cc (fold_constant_decl_in_expr) <ARRAY_REF>:
820         Also preserve the 4th operand.
821         (Attribute_to_gnu): Deal with LOAD_EXPR of unconstrained array type.
822         <Attr_Size>: Call INSTANTIATE_LOAD_IN_EXPR for a storage model.
823         <Attr_Length>: Likewise.
824         <Attr_Bit_Position>: Likewise.
825         (get_storage_model): New function.
826         (get_storage_model_access): Likewise.
827         (storage_model_access_required_p): Likewise.
828         (Call_to_gnu): Add GNAT_STORAGE_MODEL parameter and deal with it.
829         Also deal with actual parameters that have a storage model.
830         (gnat_to_gnu) <N_Object_Declaratio>: Adjust call to Call_to_gnu.
831         <N_Explicit_Dereference>: Deal with a storage model access.
832         <N_Indexed_Component>: Likewise.
833         <N_Slice>: Likewise.
834         <N_Selected_Component>: Likewise.
835         <N_Assignment_Statement>: Adjust call to Call_to_gnu.  Deal with a
836         storage model access either on the LHS, on the RHS or on both.
837         <N_Function_Cal>: Adjust call to Call_to_gnu.
838         <N_Free_Statement>: Deal with a pool that is a storage model.
839         Replace test for UNCONSTRAINED_ARRAY_REF with test on the type.
840         (gnat_gimplify_expr) <CALL_EXPR>: Tidy up.
841         <LOAD_EXPR>: New case.
842         <UNCONSTRAINED_ARRAY_REF>: Move down.
843         * gcc-interface/utils.cc (maybe_unconstrained_array): Deal with a
844         LOAD_EXPR by recursing on its first operand.
845         * gcc-interface/utils2.cc (build_allocator): Deal with a pool that
846         is a storage model.
847         (build_storage_model_copy): New function.
848         (build_storage_model_load): Likewise.
849         (build_storage_model_store): Likewise.
850         (instantiate_load_in_expr): Likewise.
851         (instantiate_load_in_array_ref): Likewise.
852         (gnat_rewrite_reference) <ARRAY_REF>: Also preserve the 4th operand.
853         (get_inner_constant_reference) <ARRAY_REF>: Remove useless test.
854         (gnat_invariant_expr) <ARRAY_REF>: Rewrite test.
855
856 2022-10-06  Steve Baird  <baird@adacore.com>
857
858         * sem_ch6.adb
859         (Analyze_Procedure_Call): Replace "return;" with "goto Leave;", as
860         per comment preceding body of Analyze_Procedure_Call.
861
862 2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
863
864         * sem_ch9.adb (Allows_Lock_Free_Implementation): Reject
865         conditional goto statements.
866
867 2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
868
869         * doc/gnat_rm/implementation_defined_pragmas.rst
870         (Lock_Free): Remove inconsistent periods that end item
871         descriptions.
872         * sem_ch9.adb
873         (Allows_Lock_Free_Implementation): Remove unnecessary guard
874         against an empty list of parameters; replace low-level entity kind
875         membership test with a high-level query; refill error message.
876         * gnat_rm.texi: Regenerate.
877
878 2022-10-06  Alexandre Oliva  <oliva@adacore.com>
879
880         * doc/gnat_rm/security_hardening_features.rst: Add examples of
881         codegen changes in hardened conditionals.
882         * gnat_rm.texi: Regenerate.
883
884 2022-10-06  Alexandre Oliva  <oliva@adacore.com>
885
886         * doc/gnat_rm/security_hardening_features.rst: Add examples of
887         codegen changes in hardened booleans. Mention that C traps where
888         Ada raises exceptions.
889         * gnat_rm.texi: Regenerate.
890
891 2022-10-06  Alexandre Oliva  <oliva@adacore.com>
892
893         * doc/gnat_rm/security_hardening_features.rst: Add examples of
894         codegen changes in stack scrubbing.
895         * gnat_rm.texi: Regenerate.
896
897 2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
898
899         * exp_ch9.adb (Build_Lock_Free_Protected_Subprogram_Body): Replace
900         shallow copy of protected statements with a deep copy.
901
902 2022-10-06  Marc Poulhiès  <poulhies@adacore.com>
903
904         * fe.h (Has_Storage_Model_Type_Aspect)
905         (Has_Designated_Storage_Model_Aspect, Storage_Model_Object)
906         (Storage_Model_Copy_From, Storage_Model_Copy_To): Add
907         declarations.
908         * sem_util.ads: Add WARNING markers for functions for which a new
909         C declaration has been added in fe.h
910
911 2022-10-06  Steve Baird  <baird@adacore.com>
912
913         * exp_util.adb
914         (Get_Current_Value_Condition): Treat references occurring within
915         the condition of an if statement, an elsif, or a while loop in the
916         same way as references that occur before the start of that
917         enclosing construct.
918
919 2022-10-06  Gary Dismukes  <dismukes@adacore.com>
920
921         * sem_ch4.adb (Analyze_Call): Add test of Comes_From_Source on the
922         enclosing subprogram's Entity_Id for determining whether to
923         perform the compile-time accessibility check on actuals passed to
924         aliased formals in a function call occurring within a return
925         statement. That test excludes cases where the call occurs within
926         the return statement of a Pre'Class wrapper function.
927
928 2022-10-06  Bob Duff  <duff@adacore.com>
929
930         * exp_ch5.adb
931         (Expand_Assign_Array_Loop_Or_Bitfield): Minor cleanups.
932
933 2022-10-06  Yannick Moy  <moy@adacore.com>
934
935         * sem_prag.adb (Analyze_Pragma): Ignore one variant of pragma
936         Warnings in GNATprove mode.
937
938 2022-10-06  Bob Duff  <duff@adacore.com>
939
940         * exp_ch5.adb
941         (Expand_Assign_Array_Loop_Or_Bitfield): Disable the
942         Fast_Copy_Bitfield optimization in certain cases.
943
944 2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
945
946         * sem_prag.adb
947         (Sig_Pragma): Change flag for pragma Refined_State to mean "not
948         significant"; this is primarily for documentation, because the
949         exact value of the flag is not really taken into account for
950         Refined_State.
951         (Is_Non_Significant_Pragma_Reference): Add special handling for
952         pragma Refined_State.
953
954 2022-09-29  Ronan Desplanques  <desplanques@adacore.com>
955
956         * einfo.ads: remove documentation duplicate
957
958 2022-09-29  Eric Botcazou  <ebotcazou@adacore.com>
959
960         * contracts.adb (Build_Subprogram_Contract_Wrapper): Put back the
961         extended return statement if the result type is built-in-place.
962         * sem_attr.adb (Analyze_Attribute_Old_Result): Also expect an
963         extended return statement.
964
965 2022-09-29  Bob Duff  <duff@adacore.com>
966
967         * exp_ch5.adb
968         (Expand_Assign_Array_Loop_Or_Bitfield): Make the checks for
969         volatile and independent objects more precise.
970
971 2022-09-29  Piotr Trojanek  <trojanek@adacore.com>
972
973         * sem_util.adb (Collect_Visible_States): Ignore package renamings.
974
975 2022-09-26  Ghjuvan Lacambre  <lacambre@adacore.com>
976
977         * doc/gnat_rm/implementation_defined_attributes.rst: Rename Valid_Image.
978         * gnat_rm.texi: Regenerate.
979         * gnat_ugn.texi: Regenerate.
980
981 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
982
983         * sem_ch12.adb (Build_Instance_Compilation_Unit_Nodes): Relocate
984         auxiliary declarations from the original compilation unit to the
985         newly created compilation unit for the spec.
986
987 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
988
989         * rtsfind.ads
990         (RTU_Id): Remove unreferenced packages; fix whitespace.
991         (RE_Id): Remove unreferenced entities; add comment about entity
992         that is only used by GNATprove and not by GNAT.
993
994 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
995
996         * s-oscons-tmplt.c (STR, STR1): Remove.
997
998 2022-09-26  Eric Botcazou  <ebotcazou@adacore.com>
999
1000         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
1001         (-gnateT): Document new parameter Long_Long_Long_Size.
1002         * gnat_ugn.texi: Regenerate.
1003
1004 2022-09-26  Steve Baird  <baird@adacore.com>
1005
1006         * bindgen.adb: When the binder is invoked for the device, specify
1007         the CUDA_Global aspect for the adainit and adafinal procedures via
1008         a pragma instead of via an aspect_specification.
1009
1010 2022-09-26  Kévin Le Gouguec  <legouguec@adacore.com>
1011
1012         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
1013         (Linker Switches): Document support for mold along with gold; add some
1014         advice regarding OpenSSL in the Pro version.
1015         * gnat_ugn.texi: Regenerate.
1016
1017 2022-09-26  Tucker Taft  <taft@adacore.com>
1018
1019         * sem_util.adb (Original_Aspect_Pragma_Name): Check for Check
1020         pragmas.
1021
1022 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1023
1024         * sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion
1025         based on Full_Analysis flag.
1026
1027 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1028
1029         * sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion of
1030         for iterated component association just like it is done within
1031         quantified expression.
1032
1033 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1034
1035         * contracts.adb (Analyze_Object_Contract): Check SPARK_Mode before
1036         applying SPARK rule.
1037
1038 2022-09-26  Justin Squirek  <squirek@adacore.com>
1039
1040         * sem_util.adb
1041         (Accessibility_Level): Modify indexed and selected components case
1042         by reducing the scope where Original_Node gets used.
1043
1044 2022-09-26  Boris Yakobowski  <yakobowski@adacore.com>
1045
1046         * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation for
1047         gnatmetric.
1048
1049 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1050
1051         * gsocket.h: Remove redefinition of _WIN32_WINNT.
1052         * mingw32.h: Remove conditional definition of _WIN32_WINNT.
1053
1054 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1055
1056         * mingw32.h: Remove condition definition of MAXPATHLEN; the include
1057         directive for stdlib.h was most likely intended to provide the
1058         MAX_PATH.
1059
1060 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1061
1062         * adaint.c: Remove conditional #include directives for old MinGW.
1063         * cal.c: Always include winsock.h, since it is part of modern
1064         MinGW.
1065         * cstreams.c: Remove workaround for old MinGW.
1066         * expect.c: Remove conditional #include directive for old MinGW.
1067         * mingw32.h: Remove STD_MINGW and OLD_MINGW declarations.
1068         * sysdep.c: Remove conditional #include directive for old MinGW.
1069
1070 2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
1071
1072         * sem_warn.ads (Has_Junk_Name): Reword comment.
1073
1074 2022-09-20  Martin Liska  <mliska@suse.cz>
1075
1076         * exp_ch6.adb: Replace "the the" with "the".
1077         * sem_ch6.adb: Likewise.
1078         * sem_disp.ads: Likewise.
1079
1080 2022-09-15  Richard Biener  <rguenther@suse.de>
1081
1082         * gcc-interface/trans.cc (gigi): Do not initialize void_list_node.
1083
1084 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1085
1086         * gcc-interface/decl.cc (gnat_to_gnu_entity): Relax assertion when
1087         front-end unnesting is enabled.
1088
1089 2022-09-12  Justin Squirek  <squirek@adacore.com>
1090
1091         * sem_util.adb
1092         (Innermost_Master_Scope_Depth): Detect and handle case where scope
1093         depth is not set on an enclosing scope.
1094
1095 2022-09-12  Steve Baird  <baird@adacore.com>
1096
1097         * bindgen.adb: When the binder is invoked for the host, generate a
1098         "with CUDA.Internal;" with clause.
1099
1100 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1101
1102         * doc/gnat_rm/implementation_defined_pragmas.rst
1103         (Pragma Unreferenced): Sync description with
1104         Sem_Warn.Has_Junk_Name routine.
1105         * gnat_rm.texi: Regenerate.
1106         * gnat_ugn.texi: Regenerate.
1107
1108 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1109
1110         * sem_attr.adb (Analyze_Attribute [Valid_Scalars]): Move check for
1111         unchecked union before checks for private and public types.
1112
1113 2022-09-12  Steve Baird  <baird@adacore.com>
1114
1115         * bindgen.adb: When the binder is invoked for the host, it
1116         declares imported subprograms corresponding to the Adainit and
1117         Adafinal routines on the device. Declare string constants and
1118         expression functions for the Ada source names and the link names
1119         of these routines. Generate these subprogram declarations (and
1120         accompanying Import pragmas) in Gen_CUDA_Defs. Generate
1121         CUDA_Execute pragmas to call these subprograms from the host in
1122         Gen_Adafinal and Gen_CUDA_Init. When the binder is invoked for the
1123         device, include a CUDA_Global aspect declaration in the
1124         declarations of Adainit and Adafinal and use the aforementioned
1125         link names in the Export pragmas generated for those two routines.
1126         * debug.adb: Update comments about "d_c" and "d_d" switches.
1127         * opt.ads: Declare new Boolean variable,
1128         Enable_CUDA_Device_Expansion. This complements the existing
1129         Enable_CUDA_Expansion variable, which is used to enable host-side
1130         CUDA expansion. The new variable enables device-side CUDA
1131         expansion. It is currently never set during compilation; it is
1132         only set via a binder switch.
1133         * switch-b.adb
1134         (scan_debug_switches): Add new use of the "-d_d" binder switch.
1135         The new switch and the variable Opt.Enabled_CUDA_Device_Expansion
1136         follow the existing pattern of the "-d_c" switch and the variable
1137         Opt.Enabled_CUDA_Expansion. Flag error if both "-d_c" and "-d_d"
1138         are specified.
1139
1140 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1141
1142         * contracts.adb (Build_Subprogram_Contract_Wrapper): Remove useless
1143         local variable. In the case of a function, replace the extended
1144         return statement by a block statement declaring a renaming of the
1145         call to the local subprogram after removing side effects manually.
1146         (Expand_Subprogram_Contract): Adjust description accordingly.
1147         * exp_ch6.adb (Expand_Ctrl_Function_Call): Rewrite obsolete
1148         comment and do not apply the transformation twice.
1149         * sem_attr.adb (Analyze_Attribute_Old_Result): Now expect a block
1150         statement instead of an extended return statement.
1151
1152 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1153
1154         * erroutc.adb (Set_Msg_Insertion_Name): Special-case printing with
1155         acronyms.
1156
1157 2022-09-12  Yannick Moy  <moy@adacore.com>
1158
1159         * libgnat/s-imagei.adb (Image_Integer): Add justification.
1160
1161 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1162
1163         * sem_prag.adb (Get_SPARK_Mode_Type): Fix header box; replace
1164         chained IF with a CASE statement.
1165
1166 2022-09-12  Yannick Moy  <moy@adacore.com>
1167
1168         * sem_prag.adb (Analyze_Pragma): Accept SPARK_Mode=>Auto as
1169         configuration pragma.
1170         (Get_SPARK_Mode): Make the value for Auto explicit.
1171         * snames.ads-tmpl (Name_Auto): Add name.
1172
1173 2022-09-12  Joffrey Huguet  <huguet@adacore.com>
1174
1175         * doc/gnat_rm/the_gnat_library.rst: Remove paragraphs about SPARK
1176         containers.
1177         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1178
1179 2022-09-12  Yannick Moy  <moy@adacore.com>
1180
1181         * libgnat/s-maccod.ads: Mark package as SPARK_Mode Off.
1182
1183 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1184
1185         * fe.h (Unnest_Subprogram_Mode): Declare.
1186
1187 2022-09-12  Steve Baird  <baird@adacore.com>
1188
1189         * contracts.adb
1190         (Analyze_Package_Contract): Do not analyze the contract of a
1191         temporary package created just to check conformance of an actual
1192         package.
1193
1194 2022-09-12  Joffrey Huguet  <huguet@adacore.com>
1195
1196         * Makefile.rtl: Remove SPARK containers filenames.
1197         * impunit.adb: Remove SPARK containers packages names.
1198         * libgnat/a-cfdlli.adb, libgnat/a-cfdlli.ads: Remove content and
1199         add pragma Compile_Time_Error with suitable message.
1200         * libgnat/a-cfhama.adb, libgnat/a-cfhama.ads: Likewise.
1201         * libgnat/a-cfhase.adb, libgnat/a-cfhase.ads: Likewise.
1202         * libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Likewise.
1203         * libgnat/a-cfinse.adb, libgnat/a-cfinse.ads: Likewise.
1204         * libgnat/a-cfinve.adb, libgnat/a-cfinve.ads: Likewise.
1205         * libgnat/a-cforma.adb, libgnat/a-cforma.ads: Likewise.
1206         * libgnat/a-cforse.adb, libgnat/a-cforse.ads: Likewise.
1207         * libgnat/a-cofove.adb, libgnat/a-cofove.ads: Likewise.
1208         * libgnat/a-cofuma.adb, libgnat/a-cofuma.ads: Likewise.
1209         * libgnat/a-cofuse.adb, libgnat/a-cofuse.ads: Likewise.
1210         * libgnat/a-cofuve.adb, libgnat/a-cofuve.ads: Likewise.
1211         * libgnat/a-cofuba.adb, libgnat/a-cofuba.ads: Remove package.
1212
1213 2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
1214
1215         * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
1216         Adapt to object declaration being rewritten into object renaming.
1217
1218 2022-09-12  Justin Squirek  <squirek@adacore.com>
1219
1220         * contracts.adb, contracts.ads
1221         (Analyze_Pragmas_In_Declarations): Added to aid in the new
1222         expansion model so that pragmas relating to contracts can get
1223         processed early before the rest of the subprogram containing them.
1224         (Build_Subprogram_Contract_Wrapper): Created to do the majority of
1225         expansion for postconditions. It builds a local wrapper with the
1226         statements and declarations within a given subprogram.
1227         (Is_Prologue_Renaming): Moved out from Process_Preconditions to be
1228         used generally within the contracts package.
1229         (Build_Entry_Contract_Wrapper): Moved from exp_ch7.
1230         (Expand_Subprogram_Contract): Add new local variable Decls to
1231         store expanded declarations needed for evaluation of contracts.
1232         Call new wrapper building procedure and modify comments to match
1233         new expansion model.
1234         (Get_Postcond_Enabled): Deleted.
1235         (Get_Result_Object_For_Postcond): Deleted.
1236         (Get_Return_Success_For_Postcond): Deleted.
1237         (Process_Contract_Cases): Add new parameter to store declarations.
1238         (Process_Postconditions): Add new parameter to store declarations.
1239         (Process_Preconditions): Add new parameter to store declarations.
1240         Add code to move entry-call prologue renamings
1241         * einfo.ads: Document new field Wrapped_Statements and modify
1242         comment for Postconditions_Proc.
1243         * exp_attr.adb
1244         (Analyze_Attribute): Modify expansion of the 'Old attribute to
1245         recognize new expansion model and use Wrapped_Statements instead
1246         of Postconditions_Proc.
1247         * exp_ch6.adb
1248         (Add_Return): Remove special expansion for postconditions.
1249         (Expand_Call): Modify condition checking for calls to access
1250         subprogram wrappers to handle new expansion models.
1251         (Expand_Call_Helper): Remove special expansion for postconditions.
1252         (Expand_Non_Function_Return): Remove special expansion for
1253         postconditions.
1254         (Expand_Simple_Function_Return): Remove special expansion for
1255         postconditions.
1256         * exp_ch7.adb
1257         (Build_Finalizer): Deleted, but replaced by code in
1258         Build_Finalizer_Helper
1259         (Build_Finalizer_Helper): Renamed to Build_Finalizer, and special
1260         handling of 'Old objects removed.
1261         * exp_ch9.adb
1262         (Build_Contract_Wrapper): Renamed and moved to contracts package.
1263         * exp_prag.adb
1264         (Expand_Pragma_Contract_Cases): Delay analysis of contracts since
1265         they now instead get analyzed as part of the wrapper generation
1266         instead of after analysis of their corresponding subprogram's
1267         body.
1268         (Expand_Pragma_Check): Label expanded if-statements which come
1269         from the expansion of assertion statements as
1270         Comes_From_Check_Or_Contract.
1271         * freeze.adb
1272         (Freeze_Entity): Add special case to avoid freezing when a freeze
1273         node gets generated as part of the expansion of a postcondition
1274         check.
1275         * gen_il-gen-gen_nodes.adb: Add new flag
1276         Comes_From_Check_Or_Contract.
1277         * gen_il-fields.ads: Add new field Wrapped_Statements. Add new
1278         flag Comes_From_Check_Or_Contract.
1279         * gen_il-gen-gen_entities.adb: Add new field Wrapped_Statements.
1280         * ghost.adb
1281         (Is_OK_Declaration): Replace Name_uPostconditions with
1282         Name_uWrapped_Statements.
1283         (Is_OK_Statement): Simplify condition due to the loss of
1284         Original_Node as a result of the new expansion model of contracts
1285         and use new flag Comes_From_Check_Or_Contract in its place.
1286         * inline.adb
1287         (Declare_Postconditions_Result): Replace Name_uPostconditions with
1288         Name_uWrapped_Statements.
1289         (Expand_Inlined_Call): Replace Name_uPostconditions with
1290         Name_uWrapped_Statements.
1291         * lib.adb, lib.ads
1292         (ipu): Created to aid in debugging.
1293         * lib-xref.adb
1294         (Generate_References): Remove special handling for postcondition
1295         procedures.
1296         * sem_attr.adb
1297         (Analyze_Attribute_Old_Result): Add new context in which 'Old can
1298         appear due to the changes in expansion. Replace
1299         Name_uPostconditions with Name_uWrapped_Statements.
1300         (Result): Replace Name_uPostconditions with
1301         Name_uWrapped_Statements.
1302         * sem_ch11.adb
1303         (Analyze_Handled_Statements): Remove check to exclude warnings on
1304         useless assignments within postcondition procedures since
1305         postconditions no longer get isolated into separate subprograms.
1306         * sem_ch6.adb
1307         (Analyze_Generic_Subprogram_Body): Modify expansion of generic
1308         subprogram bodies so that contracts (and their associated pragmas)
1309         get analyzed first.
1310         (Analyze_Subprogram_Body_Helper): Remove global HSS variable due
1311         to the HSS of the body potentially changing during the expansion
1312         of contracts. In cases where it was used instead directly call
1313         Handled_Statement_Sequence. Modify expansion of subprogram bodies
1314         so that contracts (and their associated pragmas) get analyzed
1315         first.
1316         (Check_Missing_Return): Create local HSS variable instead of using
1317         a global one.
1318         (Move_Pragmas): Use new pragma table instead of an explicit list.
1319         * sem_elab.adb
1320         (Is_Postconditions_Proc): Deleted since the new scheme of
1321         expansion no longer divides postcondition checks to a separate
1322         subprogram and so cannot be easily identified (similar to
1323         pre-condition checks).
1324         (Info_Call): Remove info printing for _Postconditions subprograms.
1325         (Is_Assertion_Pragma_Target): Remove check for postconditions
1326         procedure
1327         (Is_Bridge_Target): Remove check for postconditions procedure.
1328         (Get_Invocation_Attributes): Remove unneeded local variables and
1329         check for postconditions procedure.
1330         (Output_Call): Remove info printing for _Postconditions
1331         subprograms.
1332         * sem_prag.adb, sem_prag.ads: Add new Pragma table for pragmas
1333         significant to subprograms, along with tech-debt comment.
1334         (Check_Arg_Is_Local_Name): Modified to recognize the new
1335         _Wrapped_Statements internal subprogram and the new expansion
1336         model.
1337         (Relocate_Pragmas_To_Body): Replace Name_uPostconditions with
1338         Name_uWrapped_Statements.
1339         * sem_res.adb
1340         (Resolve_Entry_Call): Add conditional to detect both contract
1341         based wrappers of entries, but also wrappers generated as part of
1342         general contract expansion (e.g. local postconditions
1343         subprograms).
1344         * sem_util.adb
1345         (Accessibility_Level): Verify 'Access is not taken based on a
1346         component of a function result.
1347         (Has_Significant_Contracts): Replace Name_uPostconditions with
1348         Name_uWrapped_Statements.
1349         (Same_Or_Aliased_Subprogram): Add conditional to detect and obtain
1350         the original subprogram based on the new concept of
1351         "postcondition" wrappers.
1352         * sinfo.ads: Add documentation for new flag
1353         Comes_From_Check_Or_Contract.
1354         * snames.ads-tmpl: Remove Name_uPostconditions and add
1355         Name_uWrapped_Statements
1356
1357 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1358
1359         * exp_unst.adb (Unnest_Subprograms.Search_Subprograms): Skip the
1360         subprogram bodies that are not to be unnested.
1361
1362 2022-09-12  Steve Baird  <baird@adacore.com>
1363
1364         * sem_aggr.adb
1365         (Resolve_Array_Aggregate): Generate an appropriate error message
1366         in the case where an error in the source code leads to an
1367         N_Iterated_Element_Association node in a bad context.
1368
1369 2022-09-12  Steve Baird  <baird@adacore.com>
1370
1371         * sem_ch4.adb
1372         (Analyze_Selected_Component): Initialize the local variable Comp
1373         to avoid having CodePeer generate an uninitialized variable
1374         warning.
1375
1376 2022-09-12  Steve Baird  <baird@adacore.com>
1377
1378         * sem_ch4.adb
1379         (Analyze_Selected_Component): Avoid initializing the local
1380         variable Comp if the variable is not going to be subsequently
1381         referenced. This is a correctness issue because the call to
1382         First_Entity can fail.
1383
1384 2022-09-12  Steve Baird  <baird@adacore.com>
1385
1386         * sem_ch9.adb
1387         (Satisfies_Lock_Free_Requirements): If Ceiling_Locking locking
1388         policy has been specified, then either return False (if Lock_Free
1389         was not explicitly specified) or generate a warning that ceiling
1390         locking will not be implemented for this protected unit (if
1391         Lock_Free was explicitly specified). Generate an error message (in
1392         addition to returning False) if an explicit Lock_Free aspect
1393         specification is rejected because atomic primitives are not
1394         supported on the given target.
1395         * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify that the
1396         Lock_Free aspect for a protected unit takes precedence over the
1397         Ceiling_Locking locking policy in the case where both apply.
1398         * gnat_rm.texi: Regenerate.
1399
1400 2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1401
1402         * exp_ch9.adb (Build_Protected_Spec): Tidy up and propagate the
1403         Comes_From_Source flag onto the new formal parameters.
1404         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not check
1405         references for subprograms generated for protected subprograms.
1406
1407 2022-09-12  Gary Dismukes  <dismukes@adacore.com>
1408
1409         * sem_res.adb
1410         (Resolve_Equality_Op): Add handling for equality ops with
1411         user-defined literal operands.
1412         * sem_util.ads
1413         (Is_User_Defined_Literal): Update spec comment to indicate
1414         inclusion of named number cases.
1415         * sem_util.adb
1416         (Corresponding_Primitive_Op): Rather than following the chain of
1417         ancestor subprograms via Alias and Overridden_Operation links, we
1418         check for matching profiles between primitive subprograms of the
1419         descendant type and the ancestor subprogram (by calling a new
1420         nested function Profile_Matches_Ancestor). This prevents the
1421         compiler from hanging due to circular linkages via those fields
1422         that can occur between inherited and overriding subprograms
1423         (which might indicate a latent bug, but one that may be rather
1424         delicate to resolve).
1425         (Profile_Matches_Ancestor): New nested subprogram to compare the
1426         profile of a primitive subprogram with the profile of a candidate
1427         ancestor subprogram.
1428         (Is_User_Defined_Literal): Also return True in cases where the
1429         node N denotes a named number (E_Name_Integer and E_Named_Real).
1430
1431 2022-09-12  Steve Baird  <baird@adacore.com>
1432
1433         * debug.adb: remove a comment.
1434
1435 2022-09-12  Bob Duff  <duff@adacore.com>
1436
1437         * checks.adb
1438         (Selected_Length_Checks): In the message for an aggregate that has
1439         too few or too many elements, add "!!" to make sure the warning
1440         gets printed in with'ed units. Note that we have to put "!!"
1441         before the "??", because Compile_Time_Constraint_Error detects
1442         warnings by comparing the last character of the message with '?'
1443         (which is bit dubious, but we're not changing that here).
1444         (Length_Mismatch_Info_Message): Use Unat for some things that
1445         can't be negative. Specify Decimal instead of Auto in calls to
1446         UI_Image.
1447         * sem_util.adb
1448         (Compile_Time_Constraint_Error): Minor.
1449         * uintp.adb
1450         (Image_Uint): It's always better to initialize objects on their
1451         declaration.
1452
1453 2022-09-12  Patrick Bernardi  <bernardi@adacore.com>
1454
1455         * libgnat/system-vxworks7-x86_64-kernel.ads: Set
1456         Support_Atomic_Primitives to false.
1457         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Ditto.
1458
1459 2022-09-12  Patrick Bernardi  <bernardi@adacore.com>
1460
1461         * libgnat/system-qnx-arm.ads: Set Support_Atomic_Primitives to
1462         false.
1463         * libgnat/system-vxworks7-aarch64.ads: Ditto.
1464         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Ditto.
1465         * libgnat/system-vxworks7-arm.ads: Ditto.
1466         * libgnat/system-vxworks7-arm-rtp-smp.ads: Ditto.
1467         * libgnat/system-vxworks7-x86-kernel.ads: Ditto.
1468         * libgnat/system-vxworks7-x86-rtp-smp.ads: Ditto.
1469
1470 2022-09-12  Bob Duff  <duff@adacore.com>
1471
1472         * par-tchk.adb, par-util.adb, prep.adb, prepcomp.adb, scng.adb:
1473         Use "in" instead of chains of "=" connected with "or else".
1474         Likewise for "not in", "/=", "and then". Misc cleanup.
1475         * par-ch10.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb: Likewise.
1476         * par-ch8.adb, par-ch9.adb, par-endh.adb, par-sync.adb: Likewise.
1477         * par.adb
1478         (Pf_Rec): Remove filler, which was added August 25, 1993 to get
1479         around a compiler limitation that no longer exists. Minor cleanup.
1480         Remove useless qualfications.
1481         * par-ch3.adb: Remove redundant return statements.
1482         (Component_Scan_Loop): Remove loop name; there are no nested
1483         loops, so it's unnecessary and possibly misleading, and it causes
1484         too-long lines.
1485         * par-ch5.adb: DRY: Remove comments that repeat the comments in
1486         par.adb.
1487         (P_Sequence_Of_Statements): It is better to initialize things on
1488         the declaration. And constants are better than variables.
1489         (Test_Statement_Required): Remove unnecessary insertion of a null
1490         statement.
1491         * par-ch6.adb, par-ch7.adb: DRY: Remove comments that repeat the
1492         comments in par.adb.
1493
1494 2022-09-12  Javier Miranda  <miranda@adacore.com>
1495
1496         Revert:
1497         2022-09-06  Javier Miranda  <miranda@adacore.com>
1498
1499         * debug.adb
1500         (Debug_Flag_Underscore_X): Switch added temporarily to allow
1501         disabling extra formal checks.
1502         * exp_attr.adb
1503         (Expand_N_Attribute_Reference [access types]): Add extra formals
1504         to the subprogram referenced in the prefix of 'Unchecked_Access,
1505         'Unrestricted_Access or 'Access; required to check that its extra
1506         formals match the extra formals of the corresponding subprogram
1507         type.
1508         * exp_ch3.adb
1509         (Stream_Operation_OK): Declaration moved to the public part of the
1510         package.
1511         (Validate_Tagged_Type_Extra_Formals): New subprogram.
1512         (Expand_Freeze_Record_Type): Improve the code that takes care of
1513         adding the extra formals of dispatching primitives; extended to
1514         add also the extra formals to renamings of dispatching primitives.
1515         * exp_ch3.ads
1516         (Stream_Operation_OK): Declaration moved from the package body.
1517         * exp_ch6.adb
1518         (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
1519         part of the package. In addition, a parameter has been added to
1520         disable an assertion that requires its use with frozen entities.
1521         (Expand_Call_Helper): Enforce assertion checking extra formals on
1522         thunks.
1523         (Is_Build_In_Place_Function): Return False for entities with
1524         foreign convention.
1525         (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
1526         Is_Return_Object replaced by the local variable
1527         Is_OK_Return_Object that evaluates to False for scopes with
1528         foreign convention.
1529         (Might_Have_Tasks): Fix check of class-wide limited record types.
1530         (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
1531         function in more contexts; in addition it returns False for
1532         functions returning objects with foreign convention.
1533         (Needs_BIP_Finalization_Master): Likewise.
1534         (Needs_BIP_Alloc_Form): Likewise.
1535         * exp_ch6.ads
1536         (Stream_Operation_OK): Declaration moved from the package body. In
1537         addition, a parameter has been added to disable assertion that
1538         requires its use with frozen entities.
1539         * freeze.adb
1540         (Check_Itype): Add extra formals to anonymous access subprogram
1541         itypes.
1542         (Freeze_Expression): Improve code that disables the addition of
1543         extra formals to functions with foreign convention.
1544         (Check_Extra_Formals): Moved to package Sem_Ch6 as
1545         Extra_Formals_OK.
1546         (Freeze_Subprogram): Add extra formals to non-dispatching
1547         subprograms.
1548         * sem_ch3.adb
1549         (Access_Subprogram_Declaration): Defer the addition of extra
1550         formals to the freezing point so that we know the convention.
1551         (Check_Anonymous_Access_Component): Likewise.
1552         (Derive_Subprogram): Fix documentation.
1553         * sem_ch6.adb
1554         (Check_Anonymous_Return): Fix check of access to class-wide
1555         limited record types.
1556         (Check_Untagged_Equality): Placed in alphabetical order.
1557         (Extra_Formals_OK): Subprogram moved from freeze.adb.
1558         (Extra_Formals_Match_OK): New subprogram.
1559         (Has_BIP_Formals): New subprogram.
1560         (Has_Extra_Formals): New subprograms.
1561         (Needs_Accessibility_Check_Extra): New subprogram.
1562         (Needs_Constrained_Extra): New subprogram.
1563         (Parent_Subprogram): New subprogram.
1564         (Add_Extra_Formal): Minor code cleanup.
1565         (Create_Extra_Formals): Enforce matching extra formals on
1566         overridden and aliased entities.
1567         (Has_Reliable_Extra_Formals): New subprogram.
1568         * sem_ch6.ads
1569         (Extra_Formals_OK): Subprogram moved from freeze.adb.
1570         (Extra_Formals_Match_OK): New subprogram.
1571         * sem_eval.adb
1572         (Compile_Time_Known_Value): Improve predicate to avoid assertion
1573         failure; found working on this ticket; this change does not affect
1574         the behavior of the compiler because this subprogram has an
1575         exception handler that returns False when the assertion fails.
1576         * sem_util.adb
1577         (Needs_Result_Accessibility_Level): Do not return False for
1578         dispatching operations compiled with Ada_Version < 2012 since they
1579         they may be overridden by primitives compiled with Ada_Version >=
1580         Ada_2012.
1581
1582 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1583
1584         * gcc-interface/decl.cc (gnat_to_gnu_param): Set DECL_ARTIFICIAL.
1585
1586 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1587
1588         * gcc-interface/trans.cc (At_End_Proc_to_gnu): Use the End_Label of
1589         the child Handled_Statement_Sequence for body nodes.
1590         (set_end_locus_from_node): Minor tweaks.
1591
1592 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1593
1594         * gcc-interface/trans.cc (Full_View_Of_Private_Constant): New
1595         function returning the Full_View of a private constant, after
1596         looking through a chain of renamings, if any.
1597         (Identifier_to_gnu): Call it on the entity.  Small cleanup.
1598
1599 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1600
1601         * gcc-interface/utils.cc (gnat_pushdecl): Preserve named
1602         TYPE_DECLs consistently for all kind of pointer types.
1603
1604 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1605
1606         * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Divide>: Report a
1607         violation of No_Dependence on System.GCC if the result type is
1608         larger than a word.
1609         <N_Op_Shift>: Likewise.
1610         <N_Op_Mod>: Likewise.
1611         <N_Op_Rem>: Likewise.
1612         (convert_with_check): Report a violation of No_Dependence on
1613         System.GCC for a conversion between an integer type larger than
1614         a word and a floating-point type.
1615
1616 2022-09-06  Steve Baird  <baird@adacore.com>
1617
1618         * sem_ch9.adb
1619         (Allows_Lock_Free_Implementation): Return False if
1620         Support_Atomic_Primitives is False.
1621
1622 2022-09-06  Steve Baird  <baird@adacore.com>
1623
1624         * debug.adb: Remove comment regarding the -gnatd9 switch.
1625         * doc/gnat_rm/implementation_defined_attributes.rst: Remove all
1626         mention of the Lock_Free attribute.
1627         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1628         * exp_attr.adb, sem_attr.adb: Remove all mention of the former
1629         Attribute_Lock_Free enumeration element of the Attribute_Id type.
1630         * sem_ch9.adb
1631         (Allows_Lock_Free_Implementation): Remove the Debug_Flag_9 test.
1632         Return False in the case of a protected function whose result type
1633         requires use of the secondary stack.
1634         (Satisfies_Lock_Free_Requirements): This functions checks for
1635         certain constructs and returns False if one is found. In the case
1636         of a protected function, there is no need to check to see if the
1637         protected object is being modified. So it is ok to omit *some*
1638         checks in the case of a protected function. But other checks which
1639         are required (e.g., the test for a reference to a variable that is
1640         not part of the protected object) were being incorrectly omitted.
1641         This could result in accepting "Lock_Free => True" aspect
1642         specifications that should be rejected.
1643         * snames.adb-tmpl: Name_Lock_Free no longer requires special
1644         treatment in Get_Pragma_Id or Is_Pragma_Name (because it is no
1645         longer an attribute name).
1646         * snames.ads-tmpl: Move the declaration of Name_Lock_Free to
1647         reflect the fact that it is no longer the name of an attribute.
1648         Delete Attribute_Lock_Free from the Attribute_Id enumeration type.
1649
1650 2022-09-06  Steve Baird  <baird@adacore.com>
1651
1652         * libgnat/a-coorse.ads: Restore Aggregate aspect specification for
1653         type Set.
1654
1655 2022-09-06  Marc Poulhiès  <poulhies@adacore.com>
1656
1657         * exp_util.adb (Build_Allocate_Deallocate_Proc): Add
1658         Alignment_Param in the formal list for calls to SS_Allocate.
1659
1660 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
1661
1662         * inline.adb (Process_Formals): Preserve Has_Private_View flag while
1663         rewriting formal into actual parameters.
1664
1665 2022-09-06  Javier Miranda  <miranda@adacore.com>
1666
1667         * debug.adb
1668         (Debug_Flag_Underscore_X): Switch added temporarily to allow
1669         disabling extra formal checks.
1670         * exp_attr.adb
1671         (Expand_N_Attribute_Reference [access types]): Add extra formals
1672         to the subprogram referenced in the prefix of 'Unchecked_Access,
1673         'Unrestricted_Access or 'Access; required to check that its extra
1674         formals match the extra formals of the corresponding subprogram
1675         type.
1676         * exp_ch3.adb
1677         (Stream_Operation_OK): Declaration moved to the public part of the
1678         package.
1679         (Validate_Tagged_Type_Extra_Formals): New subprogram.
1680         (Expand_Freeze_Record_Type): Improve the code that takes care of
1681         adding the extra formals of dispatching primitives; extended to
1682         add also the extra formals to renamings of dispatching primitives.
1683         * exp_ch3.ads
1684         (Stream_Operation_OK): Declaration moved from the package body.
1685         * exp_ch6.adb
1686         (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
1687         part of the package. In addition, a parameter has been added to
1688         disable an assertion that requires its use with frozen entities.
1689         (Expand_Call_Helper): Enforce assertion checking extra formals on
1690         thunks.
1691         (Is_Build_In_Place_Function): Return False for entities with
1692         foreign convention.
1693         (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
1694         Is_Return_Object replaced by the local variable
1695         Is_OK_Return_Object that evaluates to False for scopes with
1696         foreign convention.
1697         (Might_Have_Tasks): Fix check of class-wide limited record types.
1698         (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
1699         function in more contexts; in addition it returns False for
1700         functions returning objects with foreign convention.
1701         (Needs_BIP_Finalization_Master): Likewise.
1702         (Needs_BIP_Alloc_Form): Likewise.
1703         * exp_ch6.ads
1704         (Stream_Operation_OK): Declaration moved from the package body. In
1705         addition, a parameter has been added to disable assertion that
1706         requires its use with frozen entities.
1707         * freeze.adb
1708         (Check_Itype): Add extra formals to anonymous access subprogram
1709         itypes.
1710         (Freeze_Expression): Improve code that disables the addition of
1711         extra formals to functions with foreign convention.
1712         (Check_Extra_Formals): Moved to package Sem_Ch6 as
1713         Extra_Formals_OK.
1714         (Freeze_Subprogram): Add extra formals to non-dispatching
1715         subprograms.
1716         * sem_ch3.adb
1717         (Access_Subprogram_Declaration): Defer the addition of extra
1718         formals to the freezing point so that we know the convention.
1719         (Check_Anonymous_Access_Component): Likewise.
1720         (Derive_Subprogram): Fix documentation.
1721         * sem_ch6.adb
1722         (Check_Anonymous_Return): Fix check of access to class-wide
1723         limited record types.
1724         (Check_Untagged_Equality): Placed in alphabetical order.
1725         (Extra_Formals_OK): Subprogram moved from freeze.adb.
1726         (Extra_Formals_Match_OK): New subprogram.
1727         (Has_BIP_Formals): New subprogram.
1728         (Has_Extra_Formals): New subprograms.
1729         (Needs_Accessibility_Check_Extra): New subprogram.
1730         (Needs_Constrained_Extra): New subprogram.
1731         (Parent_Subprogram): New subprogram.
1732         (Add_Extra_Formal): Minor code cleanup.
1733         (Create_Extra_Formals): Enforce matching extra formals on
1734         overridden and aliased entities.
1735         (Has_Reliable_Extra_Formals): New subprogram.
1736         * sem_ch6.ads
1737         (Extra_Formals_OK): Subprogram moved from freeze.adb.
1738         (Extra_Formals_Match_OK): New subprogram.
1739         * sem_eval.adb
1740         (Compile_Time_Known_Value): Improve predicate to avoid assertion
1741         failure; found working on this ticket; this change does not affect
1742         the behavior of the compiler because this subprogram has an
1743         exception handler that returns False when the assertion fails.
1744         * sem_util.adb
1745         (Needs_Result_Accessibility_Level): Do not return False for
1746         dispatching operations compiled with Ada_Version < 2012 since they
1747         they may be overridden by primitives compiled with Ada_Version >=
1748         Ada_2012.
1749
1750 2022-09-06  Arnaud Charlet  <charlet@adacore.com>
1751
1752         * exp_ch4.adb (Expand_N_If_Expression): Disable optimization
1753         for LLVM.
1754
1755 2022-09-06  Javier Miranda  <miranda@adacore.com>
1756
1757         * sem_prag.adb
1758         (Analyze_Pre_Post_Condition_In_Decl_Part): Improve check to report
1759         an error in non-legal class-wide conditions.
1760
1761 2022-09-06  Steve Baird  <baird@adacore.com>
1762
1763         * libgnat/a-strsup.adb, libgnat/a-stwisu.adb, libgnat/a-stzsup.adb
1764         (Super_Slice function and procedure): fix slice length computation.
1765
1766 2022-09-06  Steve Baird  <baird@adacore.com>
1767
1768         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1769         Improve -gnatVa, -gnatVc, -gnatVd, -gnatVe, -gnatVf, -gnatVo,
1770         -gnatVp, -gnatVr, and -gnatVs switch descriptions.
1771         * gnat_ugn.texi: Regenerate.
1772
1773 2022-09-06  Justin Squirek  <squirek@adacore.com>
1774
1775         * exp_unst.adb
1776         (Visit_Node): Add N_Block_Statement to the enclosing construct
1777         case since they can now have "At end" procedures. Also, recognize
1778         calls from "At end" procedures when recording subprograms.
1779
1780 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
1781
1782         * inline.adb (Replace_Formal): Fix name of the referenced routine.
1783
1784 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
1785
1786         * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
1787         Remove unnecessary local constant that was shadowing another
1788         constant with the same initial value.
1789
1790 2022-09-06  Julien Bortolussi  <bortolussi@adacore.com>
1791
1792         * libgnat/a-cforse.ads (Replace): Fix the postcondition.
1793
1794 2022-09-06  Steve Baird  <baird@adacore.com>
1795
1796         * exp_attr.adb
1797         (Attribute_Valid): Ensure that PBtyp is initialized to a value for
1798         which Is_Scalar_Type is True.
1799         * checks.adb
1800         (Determine_Range): Call Implemention_Base_Type instead of
1801         Base_Type in order to ensure that result is suitable for passing
1802         to Enum_Pos_To_Rep.
1803
1804 2022-09-06  Bob Duff  <duff@adacore.com>
1805             Eric Botcazou  <ebotcazou@adacore.com>
1806
1807         * gen_il-fields.ads
1808         (First_Real_Statement): Remove this field.
1809         * gen_il-gen-gen_nodes.adb: Remove the First_Real_Statement field.
1810         Add the At_End_Proc field to nodes that have both Declarations and
1811         HSS.
1812         * sinfo.ads
1813         (At_End_Proc): Document new semantics.
1814         (First_Real_Statement): Remove comment.
1815         * exp_ch11.adb
1816         (Expand_N_Handled_Sequence_Of_Statements): Remove
1817         First_Real_Statement.
1818         * exp_ch7.adb
1819         (Build_Cleanup_Statements): Remove "Historical note"; it doesn't
1820         seem useful, and we have revision history.
1821         (Create_Finalizer): Insert the finalizer later, typically in the
1822         statement list, in some cases.
1823         (Build_Finalizer_Call): Attach the "at end" handler to the parent
1824         of the HSS node in most cases, so it applies to declarations.
1825         (Expand_Cleanup_Actions): Remove Wrap_HSS_In_Block and the call to
1826         it. Remove the code that moves declarations. Remove some redundant
1827         code.
1828         * exp_ch9.adb
1829         (Build_Protected_Entry): Copy the At_End_Proc.
1830         (Build_Protected_Subprogram_Body): Reverse the sense of Exc_Safe,
1831         to avoid double negatives. Remove "Historical note" as in
1832         exp_ch7.adb.
1833         (Build_Unprotected_Subprogram_Body): Copy the At_End_Proc from the
1834         protected version.
1835         (Expand_N_Conditional_Entry_Call): Use First (Statements(...))
1836         instead of First_Real_Statement(...).
1837         (Expand_N_Task_Body): Put the Abort_Undefer call at the beginning
1838         of the declarations, rather than in the HSS. Use First
1839         (Statements(...)) instead of First_Real_Statement(...). Copy the
1840         At_End_Proc.
1841         * inline.adb
1842         (Has_Initialized_Type): Return False if the declaration does not
1843         come from source.
1844         * libgnarl/s-tpoben.ads
1845         (Lock_Entries, Lock_Entries_With_Status): Document when these
1846         things raise Program_Error. It's not clear that
1847         Lock_Entries_With_Status ought to be raising exceptions, but at
1848         least it's documented now.
1849         * sem.ads: Minor comment fixes.
1850         * sem_ch6.adb
1851         (Analyze_Subprogram_Body_Helper): Use First (Statements(...))
1852         instead of First_Real_Statement(...).
1853         (Analyze_Null_Procedure): Minor comment fix.
1854         * sem_util.adb
1855         (Might_Raise): Return True for N_Raise_Expression. Adjust the part
1856         about exceptions generated by the back end to match the reality of
1857         what the back end generates.
1858         (Update_First_Real_Statement): Remove.
1859         * sem_util.ads: Remove First_Real_Statement from comment.
1860         * sinfo-utils.ads
1861         (First_Real_Statement): New function that always returns Empty.
1862         This should be removed once gnat-llvm and codepeer have been
1863         updated to not refer to First_Real_Statement.
1864         * sprint.adb
1865         (Sprint_At_End_Proc): Deal with printing At_End_Proc.
1866         * sem_prag.adb: Minor comment fixes.
1867         * gcc-interface/trans.cc (At_End_Proc_to_gnu): New function.
1868         (Subprogram_Body_to_gnu): Call it to handle an At_End_Proc.
1869         (Handled_Sequence_Of_Statements_to_gnu): Likewise. Remove the
1870         support for First_Real_Statement and clean up the rest.
1871         (Exception_Handler_to_gnu): Do not push binding levels.
1872         (Compilation_Unit_to_gnu): Adjust call to process_decls.
1873         (gnat_to_gnu) <N_Package_Specification>: Likewise. <N_Entry_Body>:
1874         Likewise. <N_Freeze_Entity>: Likewise. <N_Block_Statement>:
1875         Likewise and call At_End_Proc_to_gnu to handle an At_End_Proc.
1876         <N_Package_Body>: Likewise.
1877         (process_decls): Remove GNAT_END_LIST parameter and adjust
1878         recursive calls.
1879
1880 2022-09-06  Steve Baird  <baird@adacore.com>
1881
1882         * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
1883         temporary rule that a "when others =>" case choice must be given
1884         when casing on a composite selector.
1885         * gnat_rm.texi: Regenerate.
1886
1887 2022-09-06  Steve Baird  <baird@adacore.com>
1888
1889         * sem_case.adb: Define a new Boolean constant,
1890         Simplified_Composite_Coverage_Rules, initialized to True. Setting
1891         this constant to True has two effects: 1- Representative value
1892         sets are not fully initialized - this is done to avoid capacity
1893         problems, as well as for performance. 2- In
1894         Check_Case_Pattern_Choices, the only legality check performed is a
1895         check that a "when others =>" choice is present.
1896
1897 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
1898
1899         * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix error
1900         template.
1901
1902 2022-09-06  Steve Baird  <baird@adacore.com>
1903
1904         * exp_attr.adb
1905         (Make_Range_Test): In determining which subtype's First and Last
1906         attributes are to be queried as part of a range test, call
1907         Validated_View in order to get a scalar (as opposed to private)
1908         subtype.
1909         (Attribute_Valid): In determining whether to perform a signed or
1910         unsigned comparison for a range test, call Validated_View in order
1911         to get a scalar (as opposed to private) type. Also correct a typo
1912         which, by itself, is the source of the problem reported for this
1913         ticket.
1914
1915 2022-09-06  Steve Baird  <baird@adacore.com>
1916
1917         * sem_ch4.adb
1918         (Analyze_Selected_Component): Define new Boolean-valued function,
1919         Constraint_Has_Unprefixed_Discriminant_Reference, which takes a
1920         subtype that is subject to a discriminant-dependent constraint and
1921         returns True if any of the constraint values are unprefixed
1922         discriminant names. Usually, the Etype of a selected component
1923         node is set to Etype of the component. However, in the case of an
1924         access-to-array component for which this predicate returns True,
1925         we instead use the base type of the Etype of the component.
1926         Normally such problematic discriminant references are addressed by
1927         calling Build_Actual_Subtype_Of_Component, but that doesn't work
1928         if Full_Analyze is False.
1929
1930 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
1931
1932         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Include
1933         System.Value_U_Spec and System.Value_I_Spec units.
1934
1935 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1936
1937         * libgnat/s-powflt.ads (Powfive): New constant array.
1938         * libgnat/s-powlfl.ads (Powfive): Likewise.
1939         (Powfive_100): New constant.
1940         (Powfive_200): Likewise.
1941         (Powfive_300): Likewise.
1942         * libgnat/s-powllf.ads (Powfive): New constant array.
1943         (Powfive_100): New constant.
1944         (Powfive_200): Likewise.
1945         (Powfive_300): Likewise.
1946         * libgnat/s-valflt.ads (Impl): Replace Powten with Powfive and pass
1947         Null_Address for the address of large constants.
1948         * libgnat/s-vallfl.ads (Impl): Replace Powten with Powfive and pass
1949         the address of large constants.
1950         * libgnat/s-valllf.ads (Impl): Likewise.
1951         * libgnat/s-valrea.ads (System.Val_Real): Replace Powten_Address
1952         with Powfive_Address and add Powfive_{1,2,3}00_Address parameters.
1953         * libgnat/s-valrea.adb (Is_Large_Type): New boolean constant.
1954         (Is_Very_Large_Type): Likewise.
1955         (Maxexp32): Change value of 10 to that of 5.
1956         (Maxexp64): Likewise.
1957         (Maxexp80): Likewise.
1958         (Integer_to_Real): Use a combination of tables of powers of 5 and
1959         scaling if the base is 10.
1960         (Large_Powten): Rename into...
1961         (Large_Powfive): ...this.  Add support for large constants.
1962         (Large_Powfive): New overloaded function for very large exponents.
1963
1964 2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
1965
1966         * doc/gnat_rm/implementation_defined_aspects.rst
1967         (Aspect Iterable): Include Last and Previous primitives in
1968         syntactic and semantic description.
1969         * exp_attr.adb
1970         (Expand_N_Attribute_Reference): Don't expect attributes like
1971         Iterable that can only appear in attribute definition clauses.
1972         * sem_ch13.adb
1973         (Analyze_Attribute_Definition_Clause): Prevent crash on
1974         non-aggregate Iterable attribute; improve basic diagnosis of
1975         attribute values.
1976         (Resolve_Iterable_Operation): Improve checks for illegal
1977         primitives in aspect Iterable, e.g. with wrong number of formal
1978         parameters.
1979         (Validate_Iterable_Aspect): Prevent crashes on syntactically
1980         illegal aspect expression.
1981         * sem_util.adb
1982         (Get_Cursor_Type): Fix style.
1983         * gnat_ugn.texi, gnat_rm.texi: Regenerate.
1984
1985 2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1986
1987         * libgnat/s-valuer.ads (System.Value_R): Add Parts formal parameter
1988         as well as Data_Index, Scale_Array and Value_Array types.
1989         (Scan_Raw_Real): Change type of Scale and return type.
1990         (Value_Raw_Real): Likewise.
1991         * libgnat/s-valuer.adb (Round_Extra): Reorder parameters and adjust
1992         recursive call.
1993         (Scan_Decimal_Digits): Reorder parameters, add N parameter and deal
1994         with multi-part scale and value.
1995         (Scan_Integral_Digits): Likewise.
1996         (Scan_Raw_Real): Change type of Scale and return type and deal with
1997         multi-part scale and value.
1998         (Value_Raw_Real): Change type of Scale and return type and tidy up.
1999         * libgnat/s-valued.adb (Impl): Pass 1 as Parts actual parameter.
2000         (Scan_Decimal): Adjust to type changes.
2001         (Value_Decimal): Likewise.
2002         * libgnat/s-valuef.adb (Impl): Pass 1 as Parts actual parameter.
2003         (Scan_Fixed): Adjust to type changes.
2004         (Value_Fixed): Likewise.
2005         * libgnat/s-valrea.adb (Need_Extra): Delete.
2006         (Precision_Limit): Always use the precision of the mantissa.
2007         (Impl): Pass 2 as Parts actual parameter.
2008         (Exact_Log2): New expression function.
2009         (Integer_to_Real): Change type of Scale and Val and deal with a
2010         2-part integer mantissa.
2011         (Scan_Real): Adjust to type changes.
2012         (Value_Real): Likewise.
2013
2014 2022-09-05  Martin Liska  <mliska@suse.cz>
2015
2016         * sigtramp-vxworks-target.h: Rename DBX_REGISTER_NUMBER to
2017           DEBUGGER_REGNO.
2018
2019 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2020
2021         * exp_aggr.adb (Check_Bounds): Move code and comment related to
2022         check for null array aggregate from Resolve_Null_Array_Aggregate.
2023         * sem_aggr.ads (Is_Null_Aggregate): Move spec from unit body.
2024         * sem_aggr.adb (Resolve_Null_Array_Aggregate): Move check to
2025         expansion.
2026
2027 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2028
2029         * sem_aggr.adb
2030         (Array_Aggr_Subtype): Bypass call to Collect_Aggr_Bound with
2031         dedicated code for null array aggregates.
2032         (Resolve_Array_Aggregate): Remove special handling of null array
2033         aggregates.
2034         (Resolve_Array_Aggregate): Create bounds, but let
2035         Array_Aggr_Subtype create itype entities.
2036
2037 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2038
2039         * sem_aggr.adb (Resolve_Null_Array_Aggregate): Insert check as a
2040         Raise_Constraint_Error node and not an If_Statement.
2041
2042 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2043
2044         * sem_aggr.adb
2045         (Resolve_Container_Aggregate): Style cleanup.
2046         (Resolve_Record_Aggregate): Remove redundant guard.
2047
2048 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2049
2050         * exp_util.ads (Entry_Names_OK): Remove spec.
2051         * exp_util.adb (Entry_Names_OK): Remove body.
2052
2053 2022-09-05  Steve Baird  <baird@adacore.com>
2054
2055         * libgnat/a-coinve.adb, libgnat/a-convec.adb
2056         (Append): If the Append that takes an Element and a Count is
2057         called with Count = 1, then call the Append that does not take a
2058         Count parameter; otherwise call the code that handles the general
2059         case. Move the special case detection/handling code that was
2060         formerly in that version of Append into the version that does not
2061         take a Count parameter, so that now both versions get the
2062         performance benefit.
2063
2064 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2065
2066         * sem_aggr.adb (Resolve_Null_Array_Aggregate): Create internal
2067         type for the aggregate as an itype.
2068
2069 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2070
2071         * sem_util.ads (Itype_Has_Declaration): Remove spec.
2072         * sem_util.adb (Itype_Has_Declaration): Remove body.
2073
2074 2022-09-05  Steve Baird  <baird@adacore.com>
2075
2076         * exp_ch3.adb
2077         (Expand_N_Object_Declaration): In deciding whether to emit a DIC
2078         check, we were previously testing the Has_Init_Expression flag.
2079         Continue to test that flag as before, but add a test for the
2080         syntactic presence of an initial value in the object declaration.
2081         This new test would not supersede the old test in the case where
2082         an explicit initial value has been eliminated as part of some tree
2083         transformation.
2084
2085 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2086
2087         * sem_ch13.adb (Validate_Unchecked_Conversions): Use
2088         Has_Warnings_Off.
2089         * sem_elab.adb (Check_Internal_Call_Continue): Likewise.
2090
2091 2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
2092
2093         * libgnat/s-valuer.adb (Scan_Decimal_Digits): Consistently avoid
2094         initializing local variables.
2095         (Scan_Integral_Digits): Likewise.
2096         (Scan_Raw_Real): Likewise and add a couple of comments.
2097
2098 2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
2099
2100         * sem_ch13.adb (Freeze_Entity_Checks): Build predicate functions
2101         only after checking the variant part of a record type, if any.
2102
2103 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2104
2105         * exp_aggr.adb
2106         (Two_Pass_Aggregate_Expansion): Expand into implicit rather than
2107         ordinary loops, to detect violations of restriction
2108         No_Implicit_Loops.
2109         (Generate_Loop): Likewise for delta array aggregates.
2110
2111 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2112
2113         * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Expand iterated
2114         component association with an unanalyzed copy of iterated
2115         expression. The previous code worked only because the expanded
2116         loop used both an analyzed copy of the iterator_specification and
2117         an analyzed copy of the iterated expression. Now the iterated
2118         expression is reanalyzed in the context of the expanded loop.
2119         * par-ch4.adb (Build_Iterated_Component_Association): Don't set
2120         defining identifier when iterator specification is present.
2121         * sem_aggr.adb (Resolve_Iterated_Association): Pick index name
2122         from the iterator specification.
2123         * sem_elab.adb (Traverse_Potential_Scenario): Handle iterated
2124         element association just like iterated component association. Not
2125         strictly part of this fix, but still worth for the completeness.
2126         * sem_res.adb (Resolve): Pick index name from the iterator
2127         specification, when present.
2128         * sem_util.adb (Traverse_More): For completeness, just like the
2129         change in Traverse_Potential_Scenario.
2130         * sinfo.ads
2131         (ITERATED_COMPONENT_ASSOCIATION): Fix and complete description.
2132         (ITERATED_ELEMENT_ASSOCIATION): Likewise.
2133
2134 2022-09-05  Bob Duff  <duff@adacore.com>
2135
2136         * sem_ch6.adb
2137         (Analyze_Subprogram_Body_Helper): Use First_Real_Statement to deal
2138         with this case. Note that First_Real_Statement is likely to be
2139         removed as part of this ticket, so this is a temporary fix.
2140
2141 2022-09-05  Arnaud Charlet  <charlet@adacore.com>
2142
2143         * ali.adb (Scan_ALI): Special case i-c*.ali when setting
2144         Sec_Stack_Used.
2145
2146 2022-09-05  Bob Duff  <duff@adacore.com>
2147
2148         * par-ch5.adb
2149         (P_Sequence_Of_Statements): Call Error_Msg_GNAT_Extension to give
2150         the error message.
2151
2152 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2153
2154         * sem_aggr.adb (Resolve_Iterated_Component_Association): Split
2155         processing of cases with and without iterator specification; reuse
2156         analysis of iterator specification; improve diagnostics for
2157         premature usage of iterator index in discrete choices.
2158
2159 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2160
2161         * sem_ch5.adb (Check_Subtype_Definition): Remove redundant call to
2162         Present; style cleanup.
2163
2164 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2165
2166         * sem_aggr.adb (Resolve_Array_Aggregate): Change an inconsistent
2167         use of False into its local equivalent Failure.
2168
2169 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2170
2171         * sem_aggr.adb (Resolve_Iterated_Component_Association): Change
2172         generic name Ent to a more intuitive Scop; rename Remove_Ref to
2173         Remove_Reference, so it can be instantiated as a traversal routine
2174         with plural name.
2175
2176 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2177
2178         * sem_ch4.adb
2179         (Is_Empty_Range): Move error reporting to the caller.
2180         (Analyze_Qualified_Expression): Move error reporting from Is_Empty_Range;
2181         add matching call to End_Scope before rewriting and returning.
2182
2183 2022-09-05  Arnaud Charlet  <charlet@adacore.com>
2184
2185         * bindgen.adb (Gen_Elab_Calls): Check for Check_Elaboration_Flags.
2186         * bindusg.adb (Display): Add -k.
2187         * opt.ads (Check_Elaboration_Flags): New.
2188         * switch-b.adb (Scan_Binder_Switches): Add processing of -k.
2189         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
2190         documentation for -k and -K.
2191         * gnat_ugn.texi: Regenerate.
2192
2193 2022-09-05  Arnaud Charlet  <charlet@adacore.com>
2194
2195         * treepr.adb: Remove local To_Lower and use the procedure
2196         version instead.
2197
2198 2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
2199
2200         * aspects.ads (Delaying Evaluation of Aspect): Fix typos.
2201         * exp_ch3.adb (Freeze_Type): Do not generate Invariant and DIC
2202         procedures for internal types.
2203         * exp_util.adb (Build_DIC_Procedure_Body): Adjust comment.
2204         * freeze.adb (Freeze_Entity): Call Inherit_Delayed_Rep_Aspects for
2205         subtypes and derived types only after the base or parent type has
2206         been frozen.  Remove useless freezing for first subtype.
2207         (Freeze_Fixed_Point_Type): Call Inherit_Delayed_Rep_Aspects too.
2208         * layout.adb (Set_Elem_Alignment): Deal with private types.
2209         * sem_ch3.adb (Build_Derived_Enumeration_Type): Build the implicit
2210         base as an itype and do not insert its declaration in the tree.
2211         (Build_Derived_Numeric_Type): Do not freeze the implicit base.
2212         (Derived_Standard_Character): Likewise.
2213         (Constrain_Enumeration): Inherit the chain of representation items
2214         instead of replacing it.
2215         * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): Add ??? comment.
2216         (Inherit_Delayed_Rep_Aspects): Declare.
2217         * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Do not invoke
2218         Inherit_Delayed_Rep_Aspects.
2219         (Inherit_Aspects_At_Freeze_Point): Deal with private types.
2220         (Inherit_Delayed_Rep_Aspects): Move to library level.
2221
2222 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2223
2224         * einfo-utils.adb (Number_Entries): Refine type of a local variable.
2225         * exp_attr.adb (Expand_N_Attribute_Reference): Rename Conctyp to
2226         Prottyp; refactor repeated calls to New_Occurrence_Of; replace
2227         Number_Entries with Has_Entries.
2228         * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise; remove Subprg
2229         variable (apparently copy-pasted from expansion of the attribute).
2230
2231 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2232
2233         * exp_attr.adb (Expand_N_Attribute_Reference): Fix detection of the
2234         enclosing protected type and of the enclosing protected subprogram.
2235         * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise.
2236
2237 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2238
2239         * freeze.adb (Freeze_Itype): Remove excessive guard.
2240         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Likewise.
2241
2242 2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
2243
2244         * sprint.adb (Sprint_Node_Actual): Handle iterator_specification within
2245         iterated_component_association and iterator_filter within
2246         iterator_specification.
2247
2248 2022-09-05  Arnaud Charlet  <charlet@adacore.com>
2249
2250         * doc/gnat_ugn/gnat_and_program_execution.rst: Fix rest syntax
2251         * gnat_ugn.texi: Regenerate.
2252
2253 2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
2254
2255         * exp_util.adb (Expand_Subtype_From_Expr): Be prepared for rewritten
2256         aggregates as expressions.
2257
2258 2022-09-02  Gary Dismukes  <dismukes@adacore.com>
2259
2260         * exp_ch6.adb (Expand_Simple_Function_Return) Bypass creation of an
2261         actual subtype and unchecked conversion to that subtype when the
2262         underlying type of the expression has discriminants without defaults.
2263
2264 2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
2265
2266         * exp_util.adb (Expand_Subtype_From_Expr): Check for the presence
2267         of the Is_Constr_Subt_For_U_Nominal flag instead of the absence
2268         of the Is_Constr_Subt_For_UN_Aliased flag on the subtype of the
2269         expression of an object declaration before reusing this subtype.
2270         * sem_ch3.adb (Analyze_Object_Declaration): Do not incorrectly
2271         set the Is_Constr_Subt_For_UN_Aliased flag on the actual subtype
2272         of an array with definite nominal subtype.  Remove useless test.
2273
2274 2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
2275
2276         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
2277         (No_Dependence): Cite implicit dependences on the runtime library.
2278         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
2279
2280 2022-09-02  Claire Dross  <dross@adacore.com>
2281
2282         * libgnat/a-strmap.adb: Add variants to simple and while loops.
2283         * libgnat/a-strsea.adb: Idem.
2284
2285 2022-09-02  Claire Dross  <dross@adacore.com>
2286
2287         * libgnat/s-expmod.adb (Lemma_Add_Mod): Add new lemma to factor
2288         out a complex sub-proof.
2289         (Exp_Modular): Add assertion to help proof.
2290
2291 2022-09-02  Claire Dross  <dross@adacore.com>
2292
2293         * libgnat/s-widthu.adb (Lemma_Euclidean): Lemma to prove the
2294         relation between the quotient/remainder of a division.
2295
2296 2022-09-02  Yannick Moy  <moy@adacore.com>
2297
2298         * libgnat/s-aridou.adb: Add or rework ghost code.
2299         * libgnat/s-aridou.ads: Add Big_Positive subtype.
2300
2301 2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
2302
2303         * doc/gnat_ugn/gnat_and_program_execution.rst
2304         (Non-Symbolic Traceback): Update section.
2305         * gnat_rm.texi, gnat_ugn.texi, gnat-style.texi: Regenerate.
2306
2307 2022-09-02  Claire Dross  <dross@adacore.com>
2308
2309         * libgnat/a-nbnbig.ads: Add Always_Return annotation.
2310         * libgnat/s-vaispe.ads: New ghost unit for the specification of
2311         System.Value_I. Restore proofs.
2312         * libgnat/s-vauspe.ads: New ghost unit for the specification of
2313         System.Value_U. Restore proofs.
2314         * libgnat/s-valuei.adb: The specification only subprograms are
2315         moved to System.Value_I_Spec. Restore proofs.
2316         * libgnat/s-valueu.adb: The specification only subprograms are
2317         moved to System.Value_U_Spec. Restore proofs.
2318         * libgnat/s-valuti.ads
2319         (Uns_Params): Generic unit used to bundle together the
2320         specification functions of System.Value_U_Spec.
2321         (Int_Params): Generic unit used to bundle together the
2322         specification functions of System.Value_I_Spec.
2323         * libgnat/s-imagef.adb: It is now possible to instantiate the
2324         appropriate specification units instead of creating imported ghost
2325         subprograms.
2326         * libgnat/s-imagei.adb: Update to refactoring of specifications
2327         and fix proofs.
2328         * libgnat/s-imageu.adb: Likewise.
2329         * libgnat/s-imgint.ads: Ghost parameters are grouped together in a
2330         package now.
2331         * libgnat/s-imglli.ads: Likewise.
2332         * libgnat/s-imgllu.ads: Likewise.
2333         * libgnat/s-imgllli.ads: Likewise.
2334         * libgnat/s-imglllu.ads: Likewise.
2335         * libgnat/s-imguns.ads: Likewise.
2336         * libgnat/s-vallli.ads: Likewise.
2337         * libgnat/s-valllli.ads: Likewise.
2338         * libgnat/s-imagei.ads: Likewise.
2339         * libgnat/s-imageu.ads: Likewise.
2340         * libgnat/s-vaispe.adb: Likewise.
2341         * libgnat/s-valint.ads: Likewise.
2342         * libgnat/s-valuei.ads: Likewise.
2343         * libgnat/s-valueu.ads: Likewise.
2344         * libgnat/s-vauspe.adb: Likewise.
2345
2346 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2347
2348         * gcc-interface/trans.cc (gnat_to_gnu) <N_Assignment_Statement>: Fix
2349         a couple of minor issues in the commentary.
2350
2351 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2352
2353         * gcc-interface/trans.cc (gigi): Report a violation of No_Dependence
2354         on System.Stack_Checking if Stack_Check_Probes_On_Target is not set
2355         and -fstack-check is specified.
2356         (build_binary_op_trapv): Report violatiosn of No_Dependence on both
2357         System.Arith_64 and System.Arith_128.
2358         (add_decl_expr): If an initialized variable, report a violation of
2359         No_Dependence on System.Memory_Copy for large aggregate types.
2360         (gnat_to_gnu) <N_Op_Eq>: Report a violation
2361         of No_Dependence on System.Memory_Compare for large aggregate types.
2362         <N_Assignment_Statement>! Report a violation of No_Dependence on
2363         System.Memory_Set, System.Memory_Move or else System.Memory_Copy for
2364         large aggregate types.
2365         * gcc-interface/utils2.cc (maybe_wrap_malloc): Report a violation of
2366         No_Dependence on System.Memory.
2367         (maybe_wrap_free): Add GNAT_NODE parameter and report a violation of
2368         No_Dependence on System.Memory.
2369         (build_call_alloc_dealloc): Adjust call to maybe_wrap_free.
2370
2371 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2372
2373         * gcc-interface/decl.cc (gnat_to_gnu_entity): Do not set the debug
2374         type for vector types.
2375
2376 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2377
2378         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>:
2379         Undo questionable renaming.
2380
2381 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2382
2383         * gcc-interface/decl.cc (Gigi_Cloned_Subtype): Handle private case.
2384
2385 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2386
2387         * gcc-interface/trans.cc (gigi): Add one more leading underscore to
2388         name of stack checking function.
2389
2390 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2391
2392         * gcc-interface/decl.cc (Gigi_Cloned_Subtype): New function.
2393         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Call it to get the
2394         cloned subtype, if any.
2395         <E_Floating_Point_Subtype>: Likewise.
2396         <E_Array_Subtype>: Likewise.
2397         <E_Record_Subtype>: Likewise.
2398         <E_Access_Subtype>: Likewise.
2399         Deal with all cloned subtypes on the main path.
2400
2401 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2402
2403         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: Do
2404         not reuse the TYPE_DECL of the base type.
2405
2406 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2407
2408         * gcc-interface/utils.cc (gnat_pushdecl): Build DECL_ORIGINAL_TYPE
2409         only for pointer types.
2410
2411 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2412
2413         * gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Also accept
2414         pointer-to-function types that are not variant of each other.
2415
2416 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2417
2418         * gcc-interface/utils.cc (unchecked_convert): Also pad in most cases
2419         if the source is not a scalar type but the destination is.
2420
2421 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2422
2423         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Save
2424         and restore the alias set of the dummy pointer-to-array type.
2425
2426 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2427
2428         * snames.ads-tmpl (Name_Memory_Compare): New package name.
2429         (Name_Memory_Copy): Likewise.
2430         (Name_Memory_Move): Likewise.
2431         (Name_Memory_Set): Likewise.
2432
2433 2022-07-13  Gary Dismukes  <dismukes@adacore.com>
2434
2435         * sem_ch13.adb (Check_And_Resolve_Storage_Model_Type_Argument):
2436         Call the System.Case_Util.To_Mixed procedure rather than the
2437         function, to avoid bootstrap problems.
2438
2439 2022-07-13  Gary Dismukes  <dismukes@adacore.com>
2440
2441         * aspects.ads (Aspect_Argument): Change the association for
2442         Aspect_Storage_Model_Type from Expression to
2443         Optional_Expression.
2444         * exp_util.ads (Find_Storage_Op): Update comment to indicate
2445         that Empty can be returned in the case where a storage-model
2446         operation is defaulted.
2447         * exp_util.adb (Find_Storage_Op): Allow the function to return
2448         Empty in Storage_Model_Type case rather than raising
2449         Program_Error, so that Procedure_To_Call fields in N_Allocator
2450         and N_Free_Statement nodes will be set to Empty in the defaulted
2451         native storage-model case.
2452         * sem_ch13.adb: Add with and use of System.Case_Util (and
2453         reformat context_clause).
2454         (Check_Aspect_At_Freeze_Point): Return with no action for a
2455         Storage_Model_Type aspect with no expression (fully-defaulted
2456         native memory-model case).
2457         (Resolve_Storage_Model_Type_Argument): If an Address_Type has
2458         not been explicitly specified, then set Addr_Type to denote type
2459         System.Address.
2460         (Validate_Storage_Model_Type_Aspect): Return immediately in the
2461         case where the aspect has no Expression (fully-defaulted native
2462         memory-model case).  No longer issue an error when Address_Type
2463         isn't specified, and instead use type System.Address as the
2464         default address type. When the address type is
2465         System.Address (whether specified or defaulted), no longer issue
2466         errors for any other "subaspects" that aren't specified, since
2467         in that case those are allowed to default as well. Remove ???
2468         comment about needing to check for duplicates, which is now
2469         addressed.
2470         (Check_And_Resolve_Storage_Model_Type_Argument): New procedure
2471         to check that an association for a storage-model subaspect in
2472         the aggregate has not been specified earlier in the aggregate,
2473         and to then resolve the expression of the association and save
2474         the resolved entity. Called by
2475         Validate_Storage_Model_Type_Aspect.
2476         * sem_util.ads (Storage_Model_Support): Update comments on specs
2477         of the functions Get_Storage_Model_Type_Entity,
2478         Storage_Model_Address_Type, and Storage_Model_Null_Address to
2479         indicate the behavior when the address type is System.Address
2480         (the native memory-model case).
2481         * sem_util.adb
2482         (Storage_Model_Support.Get_Storage_Model_Type_Entity): Suppress
2483         the search for the given subaspect name (Nam) when the
2484         Storage_Model_Type aspect is fully defaulted (i.e., no
2485         Expression is present) and simply return. In cases where the
2486         search is done, but no association that matches Nam is found,
2487         return System.Address for the Name_Address_Type case, return
2488         System.Null_Address for the Name_Null_Address case, and return
2489         Empty for all other cases.
2490
2491 2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
2492
2493         * sem_ch13.adb (Relocate_Expression): New routine with code that
2494         previously was only applied to Pre and Post aspects.
2495         (Analyze_Aspect_Specifications): Apply the above routine to
2496         other aspects, in particular to aspects Address, Attach_Handler,
2497         Predicate and Interrupt_Priority.
2498
2499 2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
2500
2501         * inline.adb (Build_Body_To_Inline): Instead of manipulating the
2502         Full_Analysis flag, use the Inside_A_Generic flag (which is
2503         conveniently manipulated by Start_Generic/End_Generic, together
2504         with Expander_Active).
2505         * sem_attr.adb (Analyze_Attribute_Old_Result): Adapt comment and
2506         assertion to different flag that is set while building
2507         body-to-inline.
2508
2509 2022-07-13  Alexandre Oliva  <oliva@adacore.com>
2510
2511         * doc/gnat_rm/security_hardening_features.rst: Clarify the need
2512         for choices after -fzero-call-used-regs and -fstrub.
2513         * gnat_rm.texi: Regenerate.
2514
2515 2022-07-13  Yannick Moy  <moy@adacore.com>
2516
2517         * sem_prag.adb (Analyze_Pragma): Recognize a generated subtype
2518         with Ghost pragma for generic instantiations.
2519
2520 2022-07-13  Yannick Moy  <moy@adacore.com>
2521
2522         * libgnat/s-aridou.adb (Lemma_Mult_Div, Lemma_Powers): New
2523         lemmas.
2524         (Prove_Sign_Quotient): New local lemma.
2525         (Prove_Signs): Expand definition of Big_R and Big_Q in the
2526         postcondition. Add intermediate assertions.
2527         (Double_Divide): Call new lemma.
2528         (Lemma_Div_Eq): Provide body for proving lemma.
2529         (Lemma_Powers_Of_2, Lemma_Shift_Without_Drop,
2530         Prove_Dividend_Scaling, Prove_Multiplication, Prove_Z_Low): Call
2531         lemmas, add intermediate assertions.
2532
2533 2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
2534
2535         * inline.adb (Has_Single_Return): Add guard for the subsequent
2536         call to Expression.
2537
2538 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2539
2540         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Acts_As_Spec
2541         earlier if the body is not the completion of a declaration.
2542         (Check_Untagged_Equality): Deal with subprogram bodies that are
2543         not the completion of a declaration and make sure that they are
2544         not flagged when they cause the freezing of the type themselves.
2545         Give a warning on the freezing point of the type in more cases.
2546         * sem_res.adb (Resolve_Equality_Op): Revert latest change.
2547
2548 2022-07-13  Yannick Moy  <moy@adacore.com>
2549
2550         * libgnat/s-arit32.adb (Scaled_Divide32): Add an assertion, move
2551         the call of Prove_Sign_R around.
2552
2553 2022-07-13  Marc Poulhiès  <poulhies@adacore.com>
2554
2555         * exp_ch4.adb (Expand_N_If_Expression): Test for compile time
2556         known bounds when handling slices.
2557
2558 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2559
2560         * exp_util.ads (Integer_Type_For): Mention Small_Integer_Type_For.
2561         (Small_Integer_Type_For): Mention Integer_Type_For.
2562
2563 2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
2564
2565         * sem_res.adb (Resolve_Equality_Op): Make sure that the user-defined
2566         operator of an untagged record type is declared ahead of an instance
2567         before using it to resolve the equality operator in the instance.
2568
2569 2022-07-13  Justin Squirek  <squirek@adacore.com>
2570
2571         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Add default
2572         initialization for Stmts.
2573         * sem_ch12.adb (Analyze_Associations): Add default
2574         initialization for Match.
2575         * libgnat/a-ztenau.adb (Scan_Enum_Lit): Remove duplicated
2576         boolean test.
2577         * libgnat/g-spipat.adb (XMatch): Combine duplicated cases.
2578
2579 2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
2580
2581         * par-prag.adb (Check_Arg_Count): Change parameter type from Int
2582         to Nat, because this parameter is compared to Arg_Count variable
2583         which is of type Nat. Also, it wouldn't make sense to check for
2584         negative number of pragma arguments.
2585
2586 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2587
2588         * exp_ch11.adb (Expand_N_Exception_Declaration): Sync comment
2589         with declaration in System.Standard_Library.
2590
2591 2022-07-12  Marc Poulhiès  <poulhies@adacore.com>
2592
2593         * libgnat/s-secsta.adb (Has_Enough_Free_Memory): Check for full
2594         chunk before computing the available size.
2595
2596 2022-07-12  Steve Baird  <baird@adacore.com>
2597
2598         * exp_ch4.adb (Expand_Nonbinary_Modular_Op.Expand_Modular_Op):
2599         Reimplement choice of which predefined type to use for the
2600         implementation of a predefined operation of a modular type with
2601         a non-power-of-two modulus.
2602
2603 2022-07-12  Justin Squirek  <squirek@adacore.com>
2604
2605         * einfo.ads: Modify documentation for In_Use flag to include
2606         scope stack manipulation.
2607         * sem_ch8.adb (Use_One_Type): Add condition to return when
2608         attempting to detect redundant use_type_clauses in child units
2609         in certain cases.
2610
2611 2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2612
2613         * restrict.ads (type ND_Entry): Add System_Child component.
2614         (Check_Restriction_No_Dependence_On_System): Declare.
2615         * restrict.adb (Global_Restriction_No_Tasking): Move around.
2616         (Violation_Of_No_Dependence): New procedure.
2617         (Check_Restriction_No_Dependence): Call Violation_Of_No_Dependence
2618         to report a violation.
2619         (Check_Restriction_No_Dependence_On_System): New procedure.
2620         (Set_Restriction_No_Dependenc): Set System_Child component if the
2621         unit is a child of System.
2622         * snames.ads-tmpl (Name_Arith_64): New package name.
2623         (Name_Arith_128): Likewise.
2624         (Name_Memory): Likewise.
2625         (Name_Stack_Checking): Likewise.
2626         * fe.h (Check_Restriction_No_Dependence_On_System): Declare.
2627
2628 2022-07-12  Bob Duff  <duff@adacore.com>
2629
2630         * par.adb (P_Declarative_Items): New function to parse a
2631         sequence of declarative items.
2632         (P_Sequence_Of_Statements): Add Handled flag, to indicate
2633         whether to wrap the result in a block statement.
2634         * par-ch3.adb (P_Declarative_Item): Rename P_Declarative_Items
2635         to be P_Declarative_Item, because it really only parses a single
2636         declarative item, and to avoid conflict with the new
2637         P_Declarative_Items. Add In_Statements.  We keep the old
2638         error-recovery mechanisms in place when In_Statements is False.
2639         When True, we don't want to complain about statements, because
2640         we are parsing a sequence of statements.
2641         (P_Identifier_Declarations): If In_Statements, and we see what
2642         looks like a statement, we no longer give an error. We return to
2643         P_Sequence_Of_Statements with Done = True, so it can parse the
2644         statement.
2645         * par-ch5.adb (P_Sequence_Of_Statements): Call
2646         P_Declarative_Items to parse declarative items that appear in
2647         the statement list.  Remove error handling code that complained
2648         about such items.  Check some errors conservatively.  Wrap the
2649         result in a block statement when necessary.
2650         * par-ch11.adb (P_Handled_Sequence_Of_Statements): Pass
2651         Handled => True to P_Sequence_Of_Statements.
2652         * types.ads (No, Present): New functions for querying
2653         Source_Ptrs (equal, not equal No_Location).
2654
2655 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2656
2657         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
2658         Fix range of iteration.
2659
2660 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2661
2662         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
2663         Do not process expression of unknown restrictions.
2664
2665 2022-07-12  Vasiliy Fofanov  <fofanov@adacore.com>
2666
2667         * makeusg.adb,
2668         doc/gnat_ugn/building_executable_programs_with_gnat.rst: Move -P
2669         to the top of switches list and make it clear that gnatmake
2670         passes the ball to gprbuild if -P is set.
2671         * gnat_ugn.texi: Regenerate.
2672
2673 2022-07-12  Bob Duff  <duff@adacore.com>
2674
2675         * libgnat/g-socthi__vxworks.adb (C_Connect): Suppress new warning.
2676
2677 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2678
2679         * sem_attr.adb (Set_Boolean_Result): Simplify using
2680         Boolean_Literals.
2681
2682 2022-07-12  Yannick Moy  <moy@adacore.com>
2683
2684         * errout.adb (Record_Compilation_Errors): Remove global
2685         variable.
2686         (Compilation_Errors): Simplify.
2687         (Initialize): Inline Reset_Warnings.
2688         (Reset_Warnings): Remove.
2689         * errout.ads (Reset_Warnings): Remove.
2690         (Compilation_Errors): Update comment.
2691         * gnat1drv.adb (Adjust_Global_Switches): Ignore all frontend
2692         warnings in GNATprove mode, except regarding elaboration and
2693         suspicious contracts.
2694
2695 2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2696
2697         * sem_util.adb (Caller_Known_Size_Record): Make entry assertion
2698         more robust and add guard for null argument.  For protected
2699         types, invoke Caller_Known_Size_Record on
2700         Corresponding_Record_Type.
2701         (Needs_Secondary_Stack): Likewise.
2702
2703 2022-07-12  Doug Rupp  <rupp@adacore.com>
2704
2705         * libgnat/system-vxworks7-ppc-rtp.ads: Remove
2706         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
2707
2708 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2709
2710         * sem_ch12.adb (Analyze_Package_Instantiation): Remove dubious
2711         call to Set_Comes_From_Source.
2712
2713 2022-07-12  Bob Duff  <duff@adacore.com>
2714
2715         * sem_ch5.adb (Check_Unreachable_Code): Refine heuristics.
2716         * sem_util.ads, sem_util.adb (Is_Static_Constant_Name): Remove
2717         this; instead we have a new function Is_Simple_Case in
2718         Sem_Ch5.Check_Unreachable_Code.
2719
2720 2022-07-12  Bob Duff  <duff@adacore.com>
2721
2722         * gnatls.adb (Output_License_Information): Remove pragma
2723         No_Return; call sites deal with Exit_Program.
2724         * libgnat/g-socthi.adb (C_Connect): Suppress warning about
2725         unreachable code.
2726         * sem_ch5.adb (Check_Unreachable_Code): Special-case if
2727         statements with static conditions.  If we remove unreachable
2728         code (including the return statement) from a function, add
2729         "raise Program_Error", so we won't warn about missing returns.
2730         Remove Original_Node in test for N_Raise_Statement; it's not
2731         needed.  Remove test for CodePeer_Mode; if Operating_Mode =
2732         Generate_Code, then CodePeer_Mode can't be True.  Misc cleanup.
2733         Do not reuse Nxt variable for unrelated purpose (the usage in
2734         the Kill_Dead_Code loop is entirely local to the loop).
2735         * sem_ch6.adb: Add check for Is_Transfer. Misc cleanup.
2736         * sem_prag.adb: Minor.
2737         * sem_res.adb: Minor.
2738         * sem_util.adb: Minor cleanup.
2739         (Is_Trivial_Boolean): Move to nonnested place, so it can be
2740         called from elsewhere.
2741         (Is_Static_Constant_Boolean): New function.
2742         * sem_util.ads (Is_Trivial_Boolean): Export.
2743         (Is_Static_Constant_Boolean): New function.
2744
2745 2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2746
2747         * libgnat/s-stchop.ads: Use a double underscore prefix for symbols.
2748
2749 2022-07-12  Ed Schonberg  <schonberg@adacore.com>
2750
2751         * freeze.adb (Check_Expression_Function.Find_Constant): Add a
2752         check that a type that is referenced as the prefix of an
2753         attribute is fully declared.
2754         (Freeze_And_Append): Do not freeze the profile when freezing an
2755         expression function.
2756         (Freeze_Entity): When a tagged type is frozen, also freeze any
2757         primitive operations of the type that are expression functions.
2758         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not prevent
2759         freezing associated with an expression function body if the
2760         function is a dispatching op.
2761
2762 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2763
2764         * sem_ch7.adb (Analyze_Package_Declaration): Check references to
2765         unset objects.
2766
2767 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2768
2769         * sem_ch13.adb (Analyze_Aspect_Yield): Look at the entity kind,
2770         not at the declaration kind.
2771
2772 2022-07-12  Joffrey Huguet  <huguet@adacore.com>
2773
2774         * libgnarl/a-reatim.ads, libgnat/a-cfdlli.ads,
2775         libgnat/a-cfhama.ads, libgnat/a-cfhase.ads,
2776         libgnat/a-cfinse.ads, libgnat/a-cfinve.ads,
2777         libgnat/a-cforma.ads, libgnat/a-cforse.ads,
2778         libgnat/a-chahan.ads, libgnat/a-cofove.ads,
2779         libgnat/a-cofuma.ads, libgnat/a-cofuse.ads,
2780         libgnat/a-cofuve.ads, libgnat/a-nbnbin.ads,
2781         libgnat/a-nbnbre.ads, libgnat/a-ngelfu.ads,
2782         libgnat/a-nlelfu.ads, libgnat/a-nllefu.ads,
2783         libgnat/a-nselfu.ads, libgnat/a-nuelfu.ads,
2784         libgnat/a-strbou.ads, libgnat/a-strfix.ads,
2785         libgnat/a-strmap.ads, libgnat/a-strunb.ads,
2786         libgnat/a-strunb__shared.ads,  libgnat/a-strsea.ads,
2787         libgnat/a-textio.ads, libgnat/a-tideio.ads,
2788         libgnat/a-tienio.ads, libgnat/a-tifiio.ads,
2789         libgnat/a-tiflio.ads, libgnat/a-tiinio.ads,
2790         libgnat/a-timoio.ads, libgnat/i-c.ads, libgnat/interfac.ads,
2791         libgnat/interfac__2020.ads, libgnat/s-atacco.ads,
2792         libgnat/s-stoele.ads: Annotate packages and subprograms with
2793         returning annotations.
2794
2795 2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2796
2797         * rtsfind.ads (RE_Id): Remove RE_Str_Concat_Bounds_N values.
2798         (RE_Unit_Table): Remove RE_Str_Concat_Bounds_N entries.
2799         * libgnat/s-conca2.ads (Str_Concat_2): Adjust head comment.
2800         (Str_Concat_Bounds_2): Delete.
2801         * libgnat/s-conca2.adb (Str_Concat_2): Use the length of the last
2802         input to size the last assignment.
2803         (Str_Concat_Bounds_2): Delete.
2804         * libgnat/s-conca3.ads (Str_Concat_3): Adjust head comment.
2805         (Str_Concat_Bounds_3): Delete.
2806         * libgnat/s-conca3.adb (Str_Concat_3): Use the length of the last
2807         input to size the last assignment.
2808         (Str_Concat_Bounds_3): Delete.
2809         * libgnat/s-conca4.ads (Str_Concat_4): Adjust head comment.
2810         (Str_Concat_Bounds_4): Delete.
2811         * libgnat/s-conca4.adb (Str_Concat_4): Use the length of the last
2812         input to size the last assignment.
2813         (Str_Concat_Bounds_4): Delete.
2814         * libgnat/s-conca5.ads (Str_Concat_5): Adjust head comment.
2815         (Str_Concat_Bounds_5): Delete.
2816         * libgnat/s-conca5.adb (Str_Concat_5): Use the length of the last
2817         input to size the last assignment.
2818         (Str_Concat_Bounds_5): Delete.
2819         * libgnat/s-conca6.ads (Str_Concat_6): Adjust head comment.
2820         (Str_Concat_Bounds_6): Delete.
2821         * libgnat/s-conca6.adb (Str_Concat_6): Use the length of the last
2822         input to size the last assignment.
2823         (Str_Concat_Bounds_6): Delete.
2824         * libgnat/s-conca7.ads (Str_Concat_7): Adjust head comment.
2825         (Str_Concat_Bounds_7): Delete.
2826         * libgnat/s-conca7.adb (Str_Concat_7): Use the length of the last
2827         input to size the last assignment.
2828         (Str_Concat_Bounds_7): Delete.
2829         * libgnat/s-conca8.ads (Str_Concat_8): Adjust head comment.
2830         (Str_Concat_Bounds_8): Delete.
2831         * libgnat/s-conca8.adb (Str_Concat_8): Use the length of the last
2832         input to size the last assignment.
2833         (Str_Concat_Bounds_8): Delete.
2834         * libgnat/s-conca9.ads (Str_Concat_9): Adjust head comment.
2835         (Str_Concat_Bounds_9): Delete.
2836         * libgnat/s-conca9.adb (Str_Concat_9): Use the length of the last
2837         input to size the last assignment.
2838         (Str_Concat_Bounds_9): Delete.
2839
2840 2022-07-12  Bob Duff  <duff@adacore.com>
2841
2842         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use _Next and
2843         _Previous in the optimized expansion of "for ... of".  No longer
2844         need to check parameter profiles for these, because the
2845         leading-underscore names are unique.
2846         * libgnat/a-convec.ads (_Next, _Previous): Renamings of Next and
2847         Previous, to avoid namespace pollution.
2848         * libgnat/a-cbdlli.ads, libgnat/a-cbhama.ads,
2849         libgnat/a-cbhase.ads, libgnat/a-cbmutr.ads,
2850         libgnat/a-cborma.ads, libgnat/a-cborse.ads,
2851         libgnat/a-cdlili.ads, libgnat/a-cidlli.ads,
2852         libgnat/a-cihama.ads, libgnat/a-cihase.ads,
2853         libgnat/a-cimutr.ads, libgnat/a-ciorma.ads,
2854         libgnat/a-ciorse.ads, libgnat/a-cobove.ads,
2855         libgnat/a-cohama.ads, libgnat/a-cohase.ads,
2856         libgnat/a-coinve.ads, libgnat/a-comutr.ads,
2857         libgnat/a-coorma.ads, libgnat/a-coorse.ads: Likewise.  Also,
2858         remove duplicated comments -- refer to one comment about _Next,
2859         _Previous, Pseudo_Reference in libgnat/a-convec.ads. DRY.
2860         * scng.adb (Scan): Allow leading underscores in identifiers in
2861         the run-time library.
2862         * snames.ads-tmpl (Name_uNext, Name_uPrevious): New names with
2863         leading underscores.
2864
2865 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2866
2867         * sem_ch5.adb (Check_Unreachable_Code): Extend suppression to
2868         calls with No_Return aspect, but narrow it to functions.
2869         * sem_res.adb (Resolve_Call): Warn about unreachable code after
2870         calls with No_Return.
2871
2872 2022-07-12  Bob Duff  <duff@adacore.com>
2873
2874         * scans.ads: Fix obsolete comments about Tok_Special, and give
2875         Special_Character a predicate assuring it is one of the two
2876         characters used in preprocessing.
2877         * scng.ads: Clean up comments.
2878         * scng.adb: Clean up handling of Tok_Special.  Remove comment
2879         about '@' (target_name), which doesn't seem very helpful.
2880         Set_Special_Character will now blow up if given anything other
2881         than '#' and '$', because of the predicate on Special_Character;
2882         it's not clear why it used to say "when others => null;".
2883         Remove Comment_Is_Token, which is not used.
2884         * scn.ads: Remove commented-out use clause.  Remove redundant
2885         comment.
2886         * ali-util.adb: Use "is null" for do-nothing procedures.
2887         * gprep.adb (Post_Scan): Use "is null".
2888
2889 2022-07-12  Bob Duff  <duff@adacore.com>
2890
2891         * libgnarl/s-solita.adb (Task_Termination_Handler_T): Ignore all
2892         exceptions propagated by Specific_Handler.
2893         * libgnarl/s-tassta.adb, libgnarl/s-taskin.ads: Minor.
2894
2895 2022-07-12  Marc Poulhiès  <poulhies@adacore.com>
2896
2897         * sem.adb (Preanalyze): Suppress checks when not in GNATprove
2898         mode.
2899         * sem_res.adb (Preanalyze_And_Resolve): Add cross reference in
2900         comment to above procedure.
2901         * sinfo.ads: Typo fix in comment.
2902
2903 2022-07-12  Julien Bortolussi  <bortolussi@adacore.com>
2904
2905         * libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Implementation
2906         files of the formal unbounded indefinite list.
2907         * Makefile.rtl, impunit.adb: Take into account the add of the
2908         new files.
2909
2910 2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
2911
2912         * sem_util.adb (Is_Variable): Remove excessive guard.
2913
2914 2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
2915
2916         * gcc-interface/Make-lang.in (ada/generated/gnatvsn.ads):
2917         Simplify regular expression. The "interval expression",
2918         i.e. \{8\} is part of the POSIX regular expressions, so it
2919         should not be a problem for modern implementations of sed.
2920
2921 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2922
2923         * gcc-interface/trans.cc (gnat_to_gnu): Update comment.
2924
2925 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2926
2927         * gcc-interface/gigi.h (simple_constant_p): Declare.
2928         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Strip
2929         the qualifiers from the type of a simple constant.
2930         (simple_constant_p): New predicate.
2931         * gcc-interface/trans.cc (node_is_atomic): Return true for objects
2932         with atomic type except for simple constants.
2933         (node_is_volatile_full_access): Return false for simple constants
2934         with VFA type.
2935
2936 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2937
2938         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Create a
2939         local constant holding the underlying GNAT type of the object.  Do
2940         not fiddle with the object size for an unconstrained array.
2941
2942 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2943
2944         * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Constify a
2945         local variable and move a couple of others around.
2946
2947 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2948
2949         * gcc-interface/trans.cc (gnat_gimplify_expr) <SAVE_EXPR>: New case.
2950
2951 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
2952
2953         * exp_ch6.adb (Function return mechanisms): New paragraph.
2954
2955 2022-07-06  Yannick Moy  <moy@adacore.com>
2956
2957         * sem_util.adb (Is_Non_Preelaborable_Construct): Fix for
2958         deferred constants.
2959
2960 2022-07-06  Justin Squirek  <squirek@adacore.com>
2961
2962         * libgnat/s-regpat.adb, libgnat/s-regpat.ads (Compile): Add a
2963         new defaulted parameter Error_When_Too_Small to trigger an
2964         error, if specified true, when Matcher is too small to hold the
2965         compiled regex program.
2966
2967 2022-07-06  Justin Squirek  <squirek@adacore.com>
2968
2969         * sem_ch4.adb (Analyze_Selected_Component): Add condition to
2970         avoid interpreting derived type components as candidates for
2971         selected components in preanalysis of inherited class
2972         conditions.
2973
2974 2022-07-06  Yannick Moy  <moy@adacore.com>
2975
2976         * ghost.adb (Check_Ghost_Context): Delay checking for generic
2977         associations.
2978         (Check_Ghost_Context_In_Generic_Association): Perform ghost
2979         checking in analyzed generic associations.
2980         (Check_Ghost_Formal_Procedure_Or_Package): Check SPARK RM
2981         6.9(13-14) for formal procedures and packages.
2982         (Check_Ghost_Formal_Variable): Check SPARK RM 6.9(13-14) for
2983         variables.
2984         * ghost.ads: Declarations for the above.
2985         * sem_ch12.adb (Analyze_Associations): Apply delayed checking
2986         for generic associations.
2987         (Analyze_Formal_Object_Declaration): Same.
2988         (Analyze_Formal_Subprogram_Declaration): Same.
2989         (Instantiate_Formal_Package): Same.
2990         (Instantiate_Formal_Subprogram): Same.
2991         (Instantiate_Object): Same.  Copy ghost aspect to newly declared
2992         object for actual for IN formal object. Use new function
2993         Get_Enclosing_Deep_Object to retrieve root object.
2994         (Instantiate_Type): Copy ghost aspect to declared subtype for
2995         actual for formal type.
2996         * sem_prag.adb (Analyze_Pragma): Recognize new allowed
2997         declarations.
2998         * sem_util.adb (Copy_Ghost_Aspect): Copy the ghost aspect
2999         between nodes.
3000         (Get_Enclosing_Deep_Object): New function to return enclosing
3001         deep object (or root for reachable part).
3002         * sem_util.ads (Copy_Ghost_Aspect): Same.
3003         (Get_Enclosing_Deep_Object): Same.
3004         * libgnat/s-imageu.ads: Declare formal subprograms as ghost.
3005         * libgnat/s-valuei.ads: Same.
3006         * libgnat/s-valuti.ads: Same.
3007
3008 2022-07-06  Javier Miranda  <miranda@adacore.com>
3009
3010         * sem_res.adb (Resolve_Type_Conversion): Code cleanup since the
3011         previous static check has been moved to Valid_Tagged_Conversion.
3012         (Valid_Tagged_Conversion): Fix the code checking conversion
3013         to/from interface types since incorrectly returns True when the
3014         parent type of the operand type (or the target type) is an
3015         interface type; add missing static checks on interface type
3016         conversions.
3017
3018 2022-07-06  Marc Poulhiès  <poulhies@adacore.com>
3019
3020         * libgnat/s-secsta.ads (SS_Allocate): Add new Alignment
3021         parameter.
3022         (Memory_Alignment): Remove.
3023         * libgnat/s-secsta.adb (Align_Addr): New.
3024         (SS_Allocate): Add new Alignment parameter. Realign pointer if
3025         needed. Don't allocate anything for 0-sized allocations.
3026         * gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Add
3027         allocated object's alignment as last parameter to allocation
3028         invocation.
3029
3030 2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
3031
3032         * libgnat/g-socket.adb (Get_Address_Info): Reduce scope of the
3033         Found variable; avoid repeated assignment inside the loop.
3034
3035 2022-07-06  Doug Rupp  <rupp@adacore.com>
3036
3037         * Makefile.rtl [arm,aarch64 vxworks7]: Remove rtp and kernel
3038         build macros and set an error variable if needed.
3039         [x86,x86_vxworks7]: Likewise.
3040         [ppc,ppc64]: Set an error variable if needed.
3041         (rts-err): New phony Makefile target.
3042         (setup-rts): Depend on rts-err.
3043
3044 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3045
3046         * exp_ch3.adb (Make_Allocator_For_BIP_Return): New local function.
3047         (Expand_N_Object_Declaration): Use it to build the three allocators
3048         for a Build-In-Place return with an unconstrained type.  Update the
3049         head comment after other recent changes.
3050
3051 2022-07-06  Doug Rupp  <rupp@adacore.com>
3052
3053         * libgnat/system-vxworks7-e500-kernel.ads: Remove.
3054         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
3055         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
3056
3057 2022-07-06  Justin Squirek  <squirek@adacore.com>
3058
3059         * gnat_cuda.adb (Empty_CUDA_Global_Subprogram): Set
3060         Specification and Corresponding_Spec to match the original
3061         Kernel_Body.
3062
3063 2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
3064
3065         * exp_ch6.adb (Build_Static_Check_Helper_Call): Replace explicit
3066         call to Make_Unchecked_Type_Conversion with a call to
3067         Unchecked_Convert_To.
3068         * tbuild.adb (Unchecked_Convert_To): Fix whitespace.
3069
3070 2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
3071
3072         * sem_res.adb (Resolve_Actuals): Restore first sentence of a
3073         comment.
3074
3075 2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
3076
3077         * exp_aggr.adb (Expand_Record_Aggregate): Do not call
3078         Is_Full_Access_Aggregate here.
3079         * freeze.ads (Is_Full_Access_Aggregate): Delete.
3080         * freeze.adb (Is_Full_Access_Aggregate): Move to...
3081         (Freeze_Entity): Do not call Is_Full_Access_Aggregate here.
3082         * sem_aggr.adb (Is_Full_Access_Aggregate): ...here
3083         (Resolve_Aggregate): Call Is_Full_Access_Aggregate here.
3084
3085 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3086
3087         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
3088         (Warning Message Control): Update description of switch -gnatwj.
3089         * gnat_ugn.texi: Regenerate.
3090         * sem_ch10.adb (Analyze_With_Clause): Warn on WITH clauses for
3091         obsolete renamed units; in Ada 83 mode do not consider
3092         predefined renamings to be obsolete.
3093
3094 2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>
3095
3096         * exp_util.adb (Make_Subtype_From_Expr): Do not set field to Empty.
3097         * sem_util.adb (Visit_Itype): Remove ??? comment.
3098
3099 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3100
3101         * sem_attr.adb (Note_Possible_Modification): Revert a
3102         special-case for validity checks on Long_Float type.
3103         * snames.ads-tmpl (Name_Attr_Long_Float): Remove name added
3104         exclusively for the mentioned fix.
3105
3106 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3107
3108         * sem_ch6.adb (Set_Formal_Mode): Remove unnecessary setting of
3109         Never_Set_In_Source.
3110
3111 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3112
3113         * sem_ch6.adb (Process_Formals): Avoid repeated calls to
3114         Expression.
3115
3116 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3117
3118         * exp_code.adb (Setup_Asm_IO_Args): Remove guard against No_List.
3119         * par_sco.adb (Process_Decisions): Likewise.
3120         * sem_ch13.adb (Check_Component_List): Likewise.
3121         * sem_ch6.adb (FCL): Likewise.
3122
3123 2022-07-05  Doug Rupp  <rupp@adacore.com>
3124
3125         * cstreams.c (__gnat_full_name) [QNX]: Remove block.
3126
3127 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3128
3129         * osint.adb (Locate_File): Use Name_Find with a parameter and
3130         not with a global buffer.
3131
3132 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3133
3134         * exp_ch3.adb (Build_Init_Statements): Reuse Get_Pragma_Arg.
3135         * exp_prag.adb (Arg_N): Likewise.
3136
3137 2022-07-05  Yannick Moy  <moy@adacore.com>
3138
3139         * ghost.adb (Is_OK_Ghost_Context): Detect ghost type inside object
3140         renaming.
3141
3142 2022-07-05  Bob Duff  <duff@adacore.com>
3143
3144         * exp_ch7.adb: Change two constants Is_Protected_Body and
3145         Is_Prot_Body to be Is_Protected_Subp_Body; these are not true
3146         for protected bodies, but for protected subprogram bodies.
3147         (Expand_Cleanup_Actions): No need to search for
3148         Activation_Chain_Entity; just use Activation_Chain_Entity.
3149         * sem_ch8.adb (Find_Direct_Name): Use Entyp constant.
3150         * atree.adb, atree.ads, atree.h, nlists.adb, nlists.ads
3151         (Parent): Provide nonoverloaded versions of Parent, so that they
3152         can be easily found in the debugger.
3153         * debug_a.adb, debug_a.ads: Clarify that we're talking about the
3154         -gnatda switch; switches are case sensitive.  Print out the
3155         Chars field if appropriate, which makes it easier to find things
3156         in the output.
3157         (Debug_Output_Astring): Simplify. Also fix an off-by-one
3158         bug ("for I in Vbars'Length .." should have been "for I in
3159         Vbars'Length + 1 ..").  Before, it was printing Debug_A_Depth +
3160         1 '|' characters if Debug_A_Depth > Vbars'Length.
3161
3162 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3163
3164         * sem_prag.adb (Analyze_Pragma): Remove unnecessary call to
3165         Analyze.
3166
3167 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3168
3169         * libgnat/g-socket.adb (Raise_Host_Error): Add No_Return aspect.
3170         (Raise_GAI_Error): Likewise.
3171         * libgnat/g-socket.ads (Raise_Socket_Error): Likewise.
3172
3173 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3174
3175         * sem_util.adb (Aggregate_Constraint_Checks): Fix whitespace;
3176         refactor repeated code; replace a ??? comment with an
3177         explanation based on the comment for the routine spec.
3178
3179 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3180
3181         * sem_util.ads (Note_Possible_Modification): Fix occurrence of
3182         May_Be_Modified in comment.
3183         * sem_warn.ads (Check_Unset_Reference): Fix occurrence of
3184         Not_Assigned in comment.
3185
3186 2022-07-05  Yannick Moy  <moy@adacore.com>
3187
3188         * sem_attr.adb (Analyze_Attribute): Take into account the
3189         possibility of homonyms.
3190
3191 2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>
3192
3193         * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite as a renaming
3194         for any nonaliased local object with nominal unconstrained subtype
3195         originally initialized with the result of a function call that has
3196         been rewritten as the dereference of a reference to the result.
3197         * sem_ch3.adb (Analyze_Object_Declaration): Do not do it here
3198
3199 2022-07-05  Arnaud Charlet  <charlet@adacore.com>
3200
3201         * exp_imgv.adb (Build_Enumeration_Image_Tables): Also disable
3202         perfect hash in GNAT_Mode.
3203         * raise-gcc.c (__gnat_Unwind_RaiseException): Add support for
3204         disabling exception propagation.
3205         * sem_eval.adb (Compile_Time_Known_Value): Update comment and
3206         remove wrong call to Check_Error_Detected.
3207         * sem_prag.adb (Check_Loop_Pragma_Grouping, Analyze_Pragma):
3208         Remove exception propagation during bootstrap.
3209
3210 2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>
3211
3212         * exp_aggr.adb (Expand_Array_Aggregate): Remove obsolete code.
3213         Delay the expansion of aggregates initializing return objects of
3214         build-in-place functions.
3215         * exp_ch3.ads (Ensure_Activation_Chain_And_Master): Delete.
3216         * exp_ch3.adb (Ensure_Activation_Chain_And_Master): Fold back to...
3217         (Expand_N_Object_Declaration): ...here.
3218         Perform the expansion of return objects of build-in-place functions
3219         here instead of...
3220         * exp_ch6.ads (Is_Build_In_Place_Return_Object): Declare.
3221         * exp_ch6.adb (Expand_N_Extended_Return_Statement): ...here.
3222         (Is_Build_In_Place_Result_Type): Alphabetize.
3223         (Is_Build_In_Place_Return_Object): New predicate.
3224         * exp_ch7.adb (Enclosing_Function): Delete.
3225         (Process_Object_Declaration): Tidy up handling of return objects.
3226         * sem_ch3.adb (Analyze_Object_Declaration): Do not decorate and
3227         freeze the actual type if it is the same as the nominal type.
3228         * sem_ch6.adb: Remove use and with clauses for Exp_Ch3.
3229         (Analyze_Function_Return): Analyze again all return objects.
3230         (Create_Extra_Formals): Do not force the definition of an Itype
3231         if the subprogram is a compilation unit.
3232
3233 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3234
3235         * gnatls.adb (Corresponding_Sdep_Entry): Remove dead return
3236         statement in defensive path; there is another return statement
3237         for a normal execution of this routine, so rule Ada RM 6.5(5),
3238         which requires function to have at least one return statement is
3239         still satisfied.
3240         (Gnatls): Remove dead, call to nonreturning Exit_Program after
3241         Output_License_Information which itself does not return.
3242         * libgnat/a-exstat.adb (Bad_EO): Remove raise statement that was
3243         meant to please some ancient version of GNAT.
3244         * libgnat/g-awk.adb (Raise_With_Info): Likewise.
3245         * sem_attr.adb (Check_Reference): Remove dead return statement;
3246         rule Ada RM 6.5(5), which requires function to have at least one
3247         return statement is still satisfied.
3248         (Analyze_Attribute): Remove dead exit statement.
3249         (Check_Reference): Same as above.
3250         * sem_ch12.adb (Instantiate_Formal_Package): Remove dead raise
3251         statement; it was inconsistent with other calls to
3252         Abandon_Instantiation, which are not followed by a raise
3253         statement.
3254         * sem_prag.adb (Process_Convention): Remove dead defensive
3255         assignment.
3256         (Interrupt_State): Remove dead defensive exit statement.
3257         (Do_SPARK_Mode): Likewise.
3258         * sfn_scan.adb (Scan_String): Remove dead defensive assignment.
3259
3260 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3261
3262         * sem_attr.adb, sem_prag.adb: Remove dead return statements
3263         after calls to Error_Attr, Error_Pragma, Error_Pragma_Arg and
3264         Placement_Error. All these calls raise exceptions that are
3265         handled to gently recover from errors.
3266
3267 2022-07-05  Doug Rupp  <rupp@adacore.com>
3268
3269         * libgnat/system-vxworks-ppc-kernel.ads (Word_Size): Compute
3270         based on Standard'Word_Size.
3271         (Memory_Size): Compute based on Word_Size.
3272         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
3273         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
3274
3275 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3276
3277         * sem_attr.adb (Analyze_Attribute): Move call to
3278         Set_Address_Taken so that it is executed when the prefix
3279         attribute is legal.
3280
3281 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3282
3283         * sem_ch5.adb (Check_Unreachable_Code): Avoid explicit use of
3284         Sloc; this should also help when we finally use Source_Span for
3285         prettier error messages.
3286
3287 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3288
3289         * sem_ch5.adb (Check_Unreachable_Code): Remove redundant guard;
3290         the call to Present wasn't needed either.
3291
3292 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3293
3294         * sem_ch5.adb (Analyze_Block_Statement): Call to List_Length with
3295         No_List is safe and will return zero.
3296
3297 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3298
3299         * sem_ch6.adb (Check_Missing_Return): Add reference to an RM rule.
3300
3301 2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
3302
3303         * sem_ch6.adb (Check_Missing_Return): Remove outdated comment.
3304
3305 2022-07-05  Dmitriy Anisimkov  <anisimko@adacore.com>
3306
3307         * adaint.h (convert_addresses): Remove function declaration.
3308
3309 2022-07-05  Doug Rupp  <rupp@adacore.com>
3310
3311         * Makefile.rtl (*vxworks*): Remove most pre-vxworks7 code.
3312         * vxworks-arm-link.spec: Remove.
3313         * vxworks-e500-link.spec: Likewise.
3314         * vxworks-smp-arm-link.spec: Likewise.
3315         * vxworks-smp-e500-link.spec: Likewise.
3316         * vxworks-smp-x86-link.spec: Likewise.
3317         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
3318         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
3319         * libgnat/system-vxworks-arm.ads: Likewise.
3320         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
3321         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
3322         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
3323         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
3324         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
3325         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
3326
3327 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3328
3329         * sem_disp.adb (Check_Dispatching_Call): Merge the two special cases
3330         where there are no controlling actuals but tag-indeternminate ones.
3331
3332 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3333
3334         * exp_disp.adb (Expand_Dispatching_Call): Fix detection of calls
3335         that are dispatching on tagged result.
3336
3337 2022-07-04  Doug Rupp  <rupp@adacore.com>
3338
3339         * Makefile.rtl (ADA_EXCLUDE_SRCS): Add s-qnx.ads.
3340
3341 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3342
3343         * exp_ch3.adb (Expand_N_Object_Declaration) <OK_To_Rename_Ref>: New
3344         local function.
3345         <Rewrite_As_Renaming>: Change to a local variable whose value is
3346         computed once and generate a call to Finalize after this is done.
3347         Simplify the code creating the renaming at the end.
3348
3349 2022-07-04  Doug Rupp  <rupp@adacore.com>
3350
3351         * Makefile.rtl (GCC_SPEC_FILES): Remove vxworks cert files.
3352
3353 2022-07-04  Piotr Trojanek  <trojanek@adacore.com>
3354
3355         * sem_attr.adb (Resolve_Attribute): Refactor duplicated code for
3356         Count and Index attributes.
3357
3358 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3359
3360         * checks.adb (Apply_Length_Check_On_Assignment): Return early if
3361         the Suppress_Assignment_Checks flag is set.
3362         (Selected_Range_Checks): Deal with conditional expressions.
3363         * exp_ch4.adb (Too_Large_Length_For_Array): New constant.
3364         (Expand_Concatenate): Use it in lieu of Too_Large_Max_Length.
3365         (Expand_N_If_Expression): If the result has a unidimensional array
3366         type but the dependent expressions have constrained subtypes with
3367         known bounds, create a static temporary on the stack with a subtype
3368         covering the result.
3369         (Get_First_Index_Bounds): Deal with string literals.
3370         * uintp.ads (Uint_256): New deferred constant.
3371         * sinfo.ads (Suppress_Assignment_Checks): Document new usage.
3372
3373 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3374
3375         * exp_ch3.adb (Expand_N_Object_Declaration.Rewrite_As_Renaming):
3376         Do not rewrite if the declaration has got constraints.
3377         * sinfo.ads (Case Expression Alternative): Fix typo.
3378
3379 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3380
3381         * exp_ch3.adb (Expand_N_Object_Declaration.Rewrite_As_Renaming):
3382         Be prepared for slices.
3383         * exp_ch4.adb (Get_First_Index_Bounds): New procedure.
3384         (Expand_Array_Comparison.Length_Less_Than_4): Call it.
3385         (Expand_Concatenate): Try to compute a maximum length for
3386         operands with variable length and a maximum total length at the
3387         end.  If the concatenation is dynamic, but a sensible maximum
3388         total length has been computed, use this length to create a
3389         static array subtype for the temporary and return a slice of it.
3390
3391 2022-07-04  Steve Baird  <baird@adacore.com>
3392
3393         * sem_ch3.adb (Check_Possible_Deferred_Completion): Delete
3394         Prev_Obj_Def formal parameter.  Reorganize code so that
3395         statically matching check is also performed in the case where
3396         the subtype given in the initial declaration is constrained and
3397         the subtype given in the completion is not.
3398
3399 2022-07-04  Bob Duff  <duff@adacore.com>
3400
3401         * einfo-utils.ads, einfo-utils.adb: Add predicates on subtypes E
3402         and N.  Change some parameters to use the unpredicated subtypes,
3403         because they sometimes return e.g. Empty.  Note that N_Entity_Id
3404         has a predicate; Entity_Id does not.
3405         * exp_tss.adb (Base_Init_Proc): Use Entity_Id instead of E,
3406         because otherwise we fail the predicate. We shouldn't be
3407         referring to single-letter names from far away anyway.
3408         * sem_aux.adb (Is_Derived_Type): Likewise.
3409         * sem_res.adb (Is_Definite_Access_Type): Use N_Entity_Id for
3410         predicate.
3411         * types.ads (Entity_Id): Add comment explaining the difference
3412         between Entity_Id and N_Entity_Id.
3413
3414 2022-07-04  Justin Squirek  <squirek@adacore.com>
3415
3416         * exp_util.adb (Remove_Side_Effects): Combine identical
3417         branches.
3418         * sem_attr.adb (Analyze_Attribute): Combine identical cases
3419         Attribute_Has_Same_Storage and Attribute_Overlaps_Storage.
3420         * sem_prag.adb (Check_Role): Combine E_Out_Parameter case with
3421         general case for parameters.
3422         * sem_util.adb (Accessibility_Level): Combine identical
3423         branches.
3424         * sprint.adb (Sprint_Node_Actual): Combine cases for
3425         N_Real_Range_Specification and N_Signed_Integer_Type_Definition.
3426
3427 2022-07-04  Justin Squirek  <squirek@adacore.com>
3428
3429         * libgnat/s-os_lib.adb (Quote_Argument): Modify the result
3430         buffer size calculation to handle the case where Arg'Length is
3431         1.
3432
3433 2022-07-04  Bob Duff  <duff@adacore.com>
3434
3435         * exp_util.adb (Expand_Subtype_From_Expr): Generate a new
3436         subtype when Is_Constr_Subt_For_UN_Aliased is True, so the
3437         Is_Constr_Subt_For_U_Nominal flag will not be set on the
3438         preexisting subtype.
3439         * sem_attr.adb, sem_ch3.adb: Minor.
3440
3441 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3442
3443         * debug.adb (d.9): Remove usage.
3444         * exp_ch6.adb (Expand_Simple_Function_Return): Remove redundant
3445         test on Debug_Flag_Dot_L.
3446         (Is_Build_In_Place_Result_Type): Return false for nonlimited types.
3447         (Is_Build_In_Place_Function): Tidy up and remove redundant test on
3448         Debug_Flag_Dot_L.
3449
3450 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3451
3452         * exp_ch3.adb (Expand_N_Object_Declaration): Don't adjust the object
3453         if the expression is a function call.
3454         <Rewrite_As_Renaming>: Return true if the object needs finalization
3455         and is initialized  with the result of a function call returned on
3456         the secondary stack.
3457         * exp_ch6.adb (Expand_Ctrl_Function_Call): Add Use_Sec_Stack boolean
3458         parameter.  Early return if the parent is an object declaration and
3459         Use_Sec_Stack is false.
3460         (Expand_Call_Helper): Adjust call to Expand_Ctrl_Function_Call.
3461         * exp_ch7.adb (Find_Last_Init): Be prepared for initialization still
3462         present in the object declaration.
3463         * sem_ch3.adb (Analyze_Object_Declaration): Call the predicates
3464         Needs_Secondary_Stack and Needs_Finalization to guard the renaming
3465         optimization.
3466
3467 2022-07-04  Bob Duff  <duff@adacore.com>
3468
3469         * libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
3470         libgnat/a-cihase.ads, libgnat/a-ciorse.ads,
3471         libgnat/a-cohase.ads, libgnat/a-coorse.ads (Key): New function
3472         that takes a Container parameter, implemented as an expression
3473         function, so it is self explanatory (doesn't need a comment).
3474
3475 2022-07-04  Vasiliy Fofanov  <fofanov@adacore.com>
3476
3477         * doc/gnat_rm/the_gnat_library.rst: Fix length of title
3478         underlines.
3479
3480 2022-07-04  Steve Baird  <baird@adacore.com>
3481
3482         * sem_ch4.adb (Analyze_Allocator): After calling Insert_Action
3483         to insert a subtype declaration associated with an allocator,
3484         the subtype declaration will usually be analyzed. But not
3485         always. Add an explicit call to Preanalyze to cope with the
3486         unusual case. The subtype declaration must be at least
3487         preanalyzed before the call to Sem_Ch3.Process_Subtype a little
3488         while later, during which we analyze an identifier that refers
3489         to the subtype.
3490
3491 2022-07-04  Steve Baird  <baird@adacore.com>
3492
3493         * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
3494         generate a warning if the expression in question is an assertion
3495         expression, or a subexpression thereof. But do call
3496         Test_Comparison so that it can generate warnings for the cases
3497         that it generates warnings for.
3498         * sem_prag.ads: Modify Assertion_Expression_Pragma constant so
3499         that the predicate Sem_Util.In_Assertion_Expression_Pragma
3500         returns True for the expression of a Compile_Time_Error pragma.
3501
3502 2022-07-04  Julien Bortolussi  <bortolussi@adacore.com>
3503
3504         * doc/gnat_rm/the_gnat_library.rst: Add the new entry.
3505         * gnat_rm.texi: Regenerate.
3506
3507 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3508
3509         * sem_res.adb (Resolve_Comparison_Op): Deal with ambiguous operands
3510         in all cases.
3511         (Resolve_Equality_Op): Likewise, except for the case of the implicit
3512         inequality operator created for a user-defined operator that is not
3513         an intrinsic subprogram.
3514
3515 2022-07-04  Bob Duff  <duff@adacore.com>
3516
3517         * libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
3518         libgnat/a-cborse.adb, libgnat/a-cborse.ads,
3519         libgnat/a-cihase.adb, libgnat/a-cihase.ads,
3520         libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
3521         libgnat/a-cohase.adb, libgnat/a-cohase.ads,
3522         libgnat/a-conhel.adb, libgnat/a-conhel.ads,
3523         libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add Has_Element,
3524         Element, Query_Element, and Next subprograms that take a Set
3525         parameter. Add Tampering_With_Cursors_Prohibited function. These
3526         are all new in Ada 2022.
3527
3528 2022-07-04  Claire Dross  <dross@adacore.com>
3529
3530         * doc/gnat_rm/the_gnat_library.rst: Functional vectors, sets,
3531         and maps are now controlled.
3532         * gnat_rm.texi: Regenerate.
3533
3534 2022-07-04  Claire Dross  <dross@adacore.com>
3535
3536         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
3537         (Debugging and Assertion Control): Add GNAT specific assertion
3538         pragmas to the equivalent Assertion_Policy for the -gnata
3539         option.
3540         * gnat_ugn.texi: Regenerate.
3541
3542 2022-07-04  Justin Squirek  <squirek@adacore.com>
3543
3544         * sem_disp.adb (Most_Descendant_Use_Clause): Remove call to
3545         deprecated Is_Internal.
3546         * sem_util.adb (Innermost_Master_Scope_Depth): Use
3547         Find_Enclosing_Scope instead of Nearest_Dynamic_Scope to avoid
3548         cases where relevant scopes get skipped leading to an incorrect
3549         scope depth calculation.
3550
3551 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3552
3553         * exp_ch6.adb (Build_In_Place_Formal): Also compute Returns_By_Ref
3554         for the function if the extra formals were not built initially.
3555
3556 2022-07-04  Piotr Trojanek  <trojanek@adacore.com>
3557
3558         * sem_ch13.adb (Resolve_Iterable_Operation): Add guard to
3559         prevent crash when the examined function has no formal
3560         parameters and Etype is called on Empty entity.
3561
3562 2022-07-04  Julien Bortolussi  <bortolussi@adacore.com>
3563
3564         * libgnat/a-cfinse.adb, libgnat/a-cfinse.ads: Implementation
3565         files of the sequence.
3566         * Makefile.rtl, impunit.adb: Take into account the add of the
3567         new files
3568
3569 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3570
3571         * doc/gnat_rm/implementation_defined_pragmas.rst (Pure_Function):
3572         Fix ambiguous wording about context dependence.
3573         * gnat_rm.texi: Regenerate.
3574
3575 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
3576
3577         * gcc-interface/misc.cc (gnat_get_sarif_source_language): New.
3578         (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): Redefine.
3579
3580 2022-06-02  Pierre-Marie de Rodat  <derodat@adacore.com>
3581
3582         * gcc-interface/gigi.h: Update copyright notice.
3583         * gcc-interface/lang-specs.h: Likewise.
3584         * gcc-interface/utils.cc: Likewise.
3585
3586 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3587
3588         * gcc-interface/gigi.h (enum standard_datatypes): Remove values
3589         for the SJLJ exception mechanism.
3590         (jmpbuf_type): Delete.
3591         (jmpbuf_ptr_type): Likewise.
3592         (get_jmpbuf_decl): Likewise.
3593         (set_jmpbuf_decl): Likewise.
3594         (get_excptr_decl): Likewise.
3595         (not_handled_by_others_decl): Likewise.
3596         (setjmp_decl): Likewise.
3597         (update_setjmp_buf_decl): Likewise.
3598         (raise_nodefer_decl): Likewise.
3599         (set_block_jmpbuf_decl): Likewise.
3600         (get_block_jmpbuf_decl): Likewise.
3601         * gcc-interface/trans.cc (gigi): Delete dead code.
3602         * gcc-interface/utils.cc (gnat_binding_level): Remove JMPBUF_DECL.
3603         (gnat_pushlevel): Do not clear it.
3604         (set_block_jmpbuf_decl): Delete.
3605         (get_block_jmpbuf_decl): Likewise.
3606
3607 2022-06-02  Ghjuvan Lacambre  <lacambre@adacore.com>
3608
3609         * gcc-interface/decl.cc (warn_on_field_placement): Add insertion
3610         character '.q' to warning string.
3611
3612 2022-06-02  Arnaud Charlet  <charlet@adacore.com>
3613
3614         * gcc-interface/Makefile.in (gnatlib-shared-default): Add
3615         -fno-lto.
3616
3617 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3618
3619         * gcc-interface/decl.cc (gnat_to_gnu_entity): Do not check the
3620         scope of anonymous access Itypes.
3621         * gcc-interface/trans.cc (Identifier_to_gnu): Do not translate
3622         the return type of a subprogram here.
3623
3624 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3625
3626         * exp_ch7.adb (Expand_N_Package_Body): Build static dispatch
3627         tables only for units that are not compilation units, unless
3628         they are generic instances.  Do not push a scope for this.
3629         (Expand_N_Package_Declaration): Build static dispatch tables
3630         only for units that are both not compilation units and generic
3631         instances.
3632         * exp_disp.adb (Build_Static_Dispatch_Tables): Remove redundant
3633         early return.  Push a scope for package bodies.
3634         * sem_ch10.adb: Add with and use clauses for Exp_Disp.
3635         (Analyze_Compilation_Unit): Build static dispatch tables here.
3636
3637 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3638
3639         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Clear the Is_Public
3640         flag on thunks.
3641
3642 2022-06-02  Piotr Trojanek  <trojanek@adacore.com>
3643
3644         * exp_ch13.adb, exp_ch5.adb, exp_ch9.adb, exp_strm.adb,
3645         sem_ch10.adb, sem_ch13.adb, sem_ch5.adb, sem_ch6.adb,
3646         sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb,
3647         sem_util.adb: Remove checks for the missing list before
3648         iterating with First/Next; reindent code and refill comments.
3649
3650 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3651
3652         * einfo.ads (Has_Controlling_Result): Document new usage.
3653         (Is_Thunk): Document secondary stack thunks.
3654         (Returns_By_Ref): Adjust.
3655         * exp_ch6.adb (Caller_Known_Size): Return true for tagged types.
3656         (Expand_N_Extended_Return_Statement): Do not call Set_By_Ref.
3657         (Expand_Simple_Function_Return): For a BIP return with an Alloc_Form
3658         parameter, mark the node as returning on the secondary stack.
3659         Replace call to Is_Limited_Interface with Is_Limited_View.  Deal wit
3660         secondary stack thunks.  Do not call Set_By_Ref.  Optimize the case
3661         of a call to a function whose type also needs finalization.
3662         (Needs_BIP_Task_Actuals): Replace Thunk_Entity with Thunk_Target.
3663         (Needs_BIP_Finalization_Master): Cosmetic fixes.
3664         (Needs_BIP_Alloc_Form): Check No_Secondary_Stack restriction and
3665         return true for tagged types.
3666         * exp_ch7.adb (Transient Scope Management): Update description.
3667         * exp_disp.adb (Expand_Dispatching_Call): Always set Returns_By_Ref
3668         on designated type if the call is dispatching on result.  Tidy up.
3669         (Expand_Interface_Thunk): Change type of Thunk_Code from Node_Id to
3670         List_Id.  Change type of local variables from Node_Id to Entity_Id.
3671         Propagate Aliased_Present flag to create the formals and explicitly
3672         set Has_Controlling_Result to False.  Build a secondary stack thunk
3673         if necessary in the function case.
3674         (Expand_Secondary_Stack_Thunk): New function.
3675         (Make_Secondary_DT): Build secondary stack thunks if necessary.
3676         (Make_DT): Likewise.
3677         (Register_Predefined_Primitive): Likewise.
3678         (Register_Primitive): Likewise.
3679         * exp_util.ads (Is_Secondary_Stack_Thunk): Declare.
3680         (Thunk_Target): Likewise.
3681         * exp_util.adb (Is_Secondary_Stack_Thunk): New function.
3682         (Thunk_Target): Likewise.
3683         * fe.h (Is_Secondary_Stack_Thunk): Declare.
3684         (Thunk_Target): Likewise.
3685         * gen_il-fields.ads (Opt_Field_Enum): Remove By_Ref.
3686         * gen_il-gen-gen_nodes.adb (N_Simple_Return_Statement): Likewise.
3687         (N_Extended_Return_Statement): Likewise.
3688         * sem_ch6.adb (Analyze_Subprogram_Specification): Skip check for
3689         abstract return type in the thunk case.
3690         (Create_Extra_Formals): Replace Thunk_Entity with Thunk_Target.
3691         * sem_disp.adb (Check_Controlling_Formals): Skip in the thunk case.
3692         * sem_util.adb: Add use and with clauses for Exp_Ch6.
3693         (Compute_Returns_By_Ref): Do not process procedures and only set
3694         the flag for direct return by reference.
3695         (Needs_Secondary_Stack): Do not return true for specific tagged
3696         types and adjust comments accordingly.
3697         * sinfo.ads (By_Ref): Delete.
3698         (N_Simple_Return_Statement): Remove By_Ref.
3699         (N_Extended_Return_Statement): Likewise.
3700         * gcc-interface/ada-tree.h (TYPE_RETURN_UNCONSTRAINED_P): Delete.
3701         * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Do not use it.
3702         Return by direct reference if the return type needs the secondary
3703         stack as well as for secondary stack thunks.
3704         * gcc-interface/gigi.h (fntype_same_flags_p): Remove parameter.
3705         * gcc-interface/misc.cc (gnat_type_hash_eq): Adjust to above change.
3706         * gcc-interface/trans.cc (finalize_nrv): Replace test on
3707         TYPE_RETURN_UNCONSTRAINED_P with TYPE_RETURN_BY_DIRECT_REF_P.
3708         (Subprogram_Body_to_gnu): Do not call maybe_make_gnu_thunk for
3709         secondary stack thunks.
3710         (Call_to_gnu): Do not test TYPE_RETURN_UNCONSTRAINED_P.
3711         (gnat_to_gnu) <N_Simple_Return_Statement>: In the return by direct
3712         reference case, test for the presence of Storage_Pool on the node
3713         to build an allocator.
3714         (maybe_make_gnu_thunk): Deal with Thunk_Entity and Thunk_Target.
3715         * gcc-interface/utils.cc (fntype_same_flags_p): Remove parameter.
3716
3717 2022-06-02  Marc Poulhiès  <poulhies@adacore.com>
3718
3719         * einfo.ads: Fix reference to Global_Entity_Suppress and
3720         Local_Entity_Suppress variable in the comments.
3721         * sem.ads: Likewise.
3722         * sem_prag.adb: Likewise.
3723
3724 2022-06-02  Claire Dross  <dross@adacore.com>
3725
3726         * libgnat/s-aridou.adb: Use Always_Return instead of Terminating
3727         to annotate termination for GNATprove.
3728         * libgnat/s-arit32.adb: Idem.
3729         * libgnat/s-spcuop.ads: Idem.
3730
3731 2022-06-02  Julien Bortolussi  <bortolussi@adacore.com>
3732
3733         * libgnat/a-cofuse.ads, libgnat/a-cofuse.adb,
3734         libgnat/a-cofuma.ads, libgnat/a-cofuma.adb: Make Length and
3735         Num_Overlaps return Big_Natural.
3736         * libgnat/a-cforse.ads, libgnat/a-cforse.adb,
3737         libgnat/a-cforma.adb, libgnat/a-cfhase.ads,
3738         libgnat/a-cfhase.adb, libgnat/a-cfhama.adb,
3739         libgnat/a-cfdlli.adb: Adapt code to handle Big_Integers instead
3740         of Count_Type.
3741
3742 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3743
3744         * exp_ch3.adb (Init_Secondary_Tags.Initialize_Tag): Initialize the
3745         Offset_Func component by means of 'Unrestricted_Access.
3746
3747 2022-06-02  Ghjuvan Lacambre  <lacambre@adacore.com>
3748
3749         * errout.adb (Write_JSON_Span): Add subprogram name to emitted
3750         JSON.
3751
3752 2022-06-02  Arnaud Charlet  <charlet@adacore.com>
3753
3754         * sem_ch7.adb (Set_Referencer_Of_Non_Subprograms): New local
3755         procedure, used for code refactoring. Also take into account
3756         Inline_Always pragma when deciding to make a symbol public for
3757         C generation.
3758
3759 2022-06-02  Yannick Moy  <moy@adacore.com>
3760
3761         * atree.adb (New_Copy): Reset flags related to ghost entities
3762         before marking the new node.
3763
3764 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3765
3766         * exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Move
3767         procedure to...
3768         * exp_disp.ads (Expand_Interface_Thunk): Move declaration to...
3769         (Register_Predefined_Primitive): Declare.
3770         * exp_disp.adb (Expand_Interface_Thunk): ...here.
3771         (Register_Predefined_Primitive): ...here and change into a function
3772         returning List_Id.
3773
3774 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3775
3776         * exp_ch3.adb (Expand_Freeze_Record_Type): Adjust comment.
3777         (Expand_N_Object_Declaration): Do not build static dispatch tables.
3778         * exp_disp.adb (Make_And_Insert_Dispatch_Table): New procedure.
3779         (Build_Static_Dispatch_Tables): Call it to build the dispatch tables
3780         and wrap them in the Actions list of a freeze node.
3781
3782 2022-06-02  Doug Rupp  <rupp@adacore.com>
3783
3784         * libgnat/system-vxworks7-arm.ads (Support_Atomic_Primitives):
3785         Set True.
3786         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
3787         * libgnat/system-vxworks7-aarch64.ads: Likewise.
3788         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise:
3789
3790 2022-06-02  Javier Miranda  <miranda@adacore.com>
3791
3792         * libgnat/g-dyntab.ads (Table_Type): Update documentation.
3793
3794 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3795
3796         * freeze.adb (Check_Expression_Function.Find_Constant): Make test
3797         for deferred constants more robust.
3798
3799 2022-06-02  Joffrey Huguet  <huguet@adacore.com>
3800
3801         * libgnat/i-cstrin.ads (Update): Update precondition.
3802
3803 2022-06-02  Yannick Moy  <moy@adacore.com>
3804
3805         * sem_ch2.adb (Analyze_Identifier): Add checking for ghost
3806         context.
3807         * sem_ch5.adb (Analyze_Implicit_Label_Declaration): Treat
3808         implicit labels like other entities by setting their ghost
3809         status according to context.
3810         * ghost.adb (Check_Ghost_Context): Adapt checking.
3811
3812 2022-06-02  Joffrey Huguet  <huguet@adacore.com>
3813
3814         * libgnat/i-cstrin.ads (Update): Add precondition.
3815
3816 2022-06-02  Yannick Moy  <moy@adacore.com>
3817
3818         * sem_ch5.adb (Analyze_Label_Entity): Remove body.
3819         * sem_ch5.ads (Analyze_Label_Entity): Remove spec.
3820
3821 2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3822
3823         * sem_util.adb (Propagate_DIC_Attributes): Add ??? comment.
3824         (Propagate_Invariant_Attributes): Likewise.  Propagate the
3825         Has_Inheritable_Invariants and Has_Inherited_Invariants to
3826         the base type of the target type.
3827
3828 2022-06-02  Doug Rupp  <rupp@adacore.com>
3829
3830         * libgnat/system-linux-arm.ads (Memory_Size): Compute based on
3831         Word_Size.
3832
3833 2022-06-02  Doug Rupp  <rupp@adacore.com>
3834
3835         * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Word_Size):
3836         Compute based on Standard'Word_Size. (Memory_Size): Compute
3837         based on Word_Size.
3838         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
3839         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
3840         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
3841         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
3842         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
3843         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
3844         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
3845         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
3846
3847 2022-06-02  Justin Squirek  <squirek@adacore.com>
3848
3849         * gnatbind.adb (Gnatbind): Add initialize call for Uintp
3850         * gnatls.adb (Gnatls): Likewise.
3851         * gprep.adb (Gnatprep): Likewise.
3852         * make.adb (Initialize): Likewise.
3853
3854 2022-06-02  Claire Dross  <dross@adacore.com>
3855
3856         * libgnat/a-cfinve.ads (Element): Change the type of the
3857         Position parameter to Extended_Index.
3858         * libgnat/a-cfinve.adb (Element): Idem.
3859         * libgnat/a-cofove.ads (Element): Idem.
3860         * libgnat/a-cofove.adb (Element): Idem.
3861
3862 2022-06-02  Joffrey Huguet  <huguet@adacore.com>
3863
3864         * libgnat/s-atacco.ads (To_Pointer): Add Global => null.
3865         (To_Address): Add SPARK_Mode => Off.
3866
3867 2022-06-02  Joffrey Huguet  <huguet@adacore.com>
3868
3869         * libgnat/i-cstrin.ads (To_Chars_Ptr): Add SPARK_Mode => Off.
3870         (Free): Likewise.
3871         (New_Char_Array): Add global contracts and Volatile attribute.
3872         (New_String): Likewise.
3873         (Value, Strlen, Update): Add global contracts and preconditions.
3874         * libgnat/i-cstrin.adb: Add SPARK_Mode => Off to the package
3875         body.
3876
3877 2022-06-01  Yannick Moy  <moy@adacore.com>
3878
3879         * contracts.adb (Check_Type_Or_Object_External_Properties): Check
3880         the validity of combinations only when No_Caching is not used.
3881         * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Check
3882         valid combinations with No_Caching.
3883
3884 2022-06-01  Doug Rupp  <rupp@adacore.com>
3885
3886         * libgnat/system-vxworks7-aarch64.ads (Word_Size): Compute
3887         based on Standard'Word_Size. (Memory_Size): Compute based
3888         on Word_Size.
3889         * libgnat/system-vxworks7-arm.ads: Likewise.
3890         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
3891         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
3892         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
3893         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
3894         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
3895
3896 2022-06-01  Doug Rupp  <rupp@adacore.com>
3897
3898         * libgnat/system-qnx-arm.ads (Memory_Size): Compute based on
3899         Word_Size.
3900
3901 2022-06-01  Piotr Trojanek  <trojanek@adacore.com>
3902
3903         * par-util.adb (Ignore): Add missing space to message string.
3904
3905 2022-06-01  Yannick Moy  <moy@adacore.com>
3906
3907         * sem_prag.ads (Assertion_Expression_Pragmas): Fix value for
3908         pragma Subprogram_Variant.
3909
3910 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3911
3912         * exp_ch6.adb (Caller_Known_Size): Invoke Needs_Secondary_Stack in
3913         lieu of Returns_On_Secondary_Stack.
3914         (Expand_Call_Helper): Likewise.
3915         (Expand_Simple_Function_Return): Likewise.
3916         (Needs_BIP_Alloc_Form): Likewise.
3917         * exp_ch7.adb (Wrap_Transient_Declaration): Likewise.
3918         * sem_res.adb (Resolve_Call): Likewise.
3919         (Resolve_Entry_Call): Likewise.
3920         * sem_util.ads (Returns_On_Secondary_Stack): Rename into...
3921         (Needs_Secondary_Stack): ...this.
3922         * sem_util.adb (Returns_On_Secondary_Stack): Rename into...
3923         (Needs_Secondary_Stack): ...this.
3924         * fe.h (Returns_On_Secondary_Stack): Delete.
3925         (Needs_Secondary_Stack): New function.
3926         * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call
3927         to Returns_On_Secondary_Stack with Needs_Secondary_Stack.
3928
3929 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3930
3931         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For the case where
3932         there is no previous declaration, freeze the body entity only after
3933         it has been processed as a new overloaded name.
3934         Use Was_Expression_Function to recognize expression functions.
3935         * sem_disp.adb (Check_Dispatching_Operation): Do not require a body
3936         which is the last primitive to be frozen here.
3937
3938 2022-06-01  Julien Bortolussi  <bortolussi@adacore.com>
3939
3940         * libgnat/a-cfdlli.adb ("="): Make the function properly loop
3941         over the right list.
3942
3943 2022-06-01  Marc Poulhiès  <poulhies@adacore.com>
3944
3945         * checks.adb (Apply_Predicate_Check): Refine condition for
3946         applying optimization.
3947         * sem_ch3.adb (Analyze_Component_Declaration): Adjust calls to
3948         Should_Build_Subtype.
3949         (Analyze_Object_Declaration): Likewise.
3950         (Should_Build_Subtype): Rename/move to ...
3951         * sem_util.ads (Build_Default_Subtype_OK): ... this.
3952         * sem_util.adb (Build_Default_Subtype_OK): Moved from
3953         sem_ch3.adb.
3954
3955 2022-06-01  Doug Rupp  <rupp@adacore.com>
3956
3957         * init.c (__gnat_adjust_context_for_raise) [QNX][__thumb2__]: Bump
3958         the pc an extra byte.
3959
3960 2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
3961
3962         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
3963         Document new behavior.
3964         * errout.adb (Write_JSON_Location): Output absolute paths when
3965         needed.
3966         * switch-c.adb (Scan_Front_End_Switches): Update -gnatef
3967         comment.
3968         * usage.adb (Usage): Update description of -gnatef.
3969         * gnat_ugn.texi: Regenerate.
3970
3971 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3972
3973         * contracts.adb (Build_Postconditions_Procedure): Set Is_Inlined
3974         unconditionnally on the procedure entity.
3975
3976 2022-06-01  Piotr Trojanek  <trojanek@adacore.com>
3977
3978         * sem_ch3.adb (Constrain_Access): Propagate null-exclusion flag
3979         from parent type.
3980
3981 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3982
3983         * sem_ch5.adb (Analyze_Loop_Statement): Add a comment about
3984         a finalization issue.
3985
3986 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3987
3988         * exp_ch6.adb (Caller_Known_Size): Call Returns_On_Secondary_Stack
3989         instead of Requires_Transient_Scope and tidy up.
3990         (Needs_BIP_Alloc_Form): Likewise.
3991         * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Also return
3992         true if the build-in-place function call has no BIPalloc parameter.
3993         (Is_Finalizable_Transient): Remove redundant test.
3994
3995 2022-06-01  Alexandre Oliva  <oliva@adacore.com>
3996
3997         * doc/gnat_rm/security_hardening_features.rst: Note that hardening
3998         features are experimental.
3999         * gnat_rm.texi: Regenerate.
4000
4001 2022-06-01  Steve Baird  <baird@adacore.com>
4002
4003         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Set the
4004         Corresponding_Spec field of a wrapper subprogram body before
4005         analyzing the subprogram body; the field will be set (again)
4006         during analysis, but we need it to be set earlier.
4007         * exp_ch13.adb (Expand_N_Freeze_Entity): Add wrapper subprogram
4008         bodies to the list of declarations for which we do not want to
4009         suppress checks.
4010
4011 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4012
4013         * sem_util.adb (Indirect_Temp_Needed): Adjust reference in comment.
4014
4015 2022-06-01  Doug Rupp  <rupp@adacore.com>
4016
4017         * Makefile.rtl (GNATLIB_SHARED): Revert disablement for arm-qnx.
4018
4019 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4020
4021         * sem_util.adb
4022         (Returns_On_Secondary_Stack.Caller_Known_Size_Record): Directly
4023         check the dependence on discriminants for the variant part, if
4024         any, instead of calling the Is_Definite_Subtype predicate.
4025
4026 2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
4027
4028         * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix warning tag.
4029
4030 2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
4031
4032         * sem_warn.adb (Check_References): Adjust conditions under which
4033         warning messages should be emitted and their tags as well.
4034
4035 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4036
4037         * exp_disp.ads (Expand_Interface_Thunk): Change type of Prim.
4038         * exp_disp.adb (Expand_Interface_Thunk): Declare Is_Predef_Op
4039         earlier, do not initialize Iface_Formal, use No idiom and tweaks
4040         comments.
4041         (Register_Primitive): Declare L earlier and tweak comments.
4042         * sem_disp.adb (Check_Dispatching_Operation): Move tests out of
4043         loop.
4044
4045 2022-06-01  Steve Baird  <baird@adacore.com>
4046
4047         * exp_ch3.ads: Replace visible Build_Discr_Checking_Funcs (which
4048         did not need to be visible - it was not referenced outside this
4049         package) with Build_Or_Copy_Discr_Checking_Funcs.
4050         * exp_ch3.adb: Refactor existing code into 3 procedures -
4051         Build_Discr_Checking_Funcs, Copy_Discr_Checking_Funcs, and
4052         Build_Or_Copy_Discr_Checking_Funcs. This refactoring is intended
4053         to be semantics-preserving.
4054         * exp_ch4.adb (Expand_N_Selected_Component): Detect case where a
4055         call should be generated to the Discriminant_Checking_Func for
4056         the component in question, but that subprogram does not yet
4057         exist.
4058         * sem_ch13.adb (Freeze_Entity_Checks): Immediately before
4059         calling Build_Predicate_Function, add a call to
4060         Exp_Ch3.Build_Or_Copy_Discr_Checking_Funcs in order to ensure
4061         that Discriminant_Checking_Func attributes are already set when
4062         Build_Predicate_Function is called.
4063         * sem_ch6.adb (Analyze_Expression_Function): If the expression
4064         of a static expression function has been transformed into an
4065         N_Raise_xxx_Error node, then we need to copy the original
4066         expression in order to check the requirement that the expression
4067         must be a potentially static expression. We also want to set
4068         aside a copy the untransformed expression for later use in
4069         checking calls to the expression function via
4070         Inline_Static_Function_Call.  So introduce a new function,
4071         Make_Expr_Copy, for use in these situations.
4072         * sem_res.adb (Preanalyze_And_Resolve): When analyzing certain
4073         expressions (e.g., a default parameter expression in a
4074         subprogram declaration) we want to suppress checks. However, we
4075         do not want to suppress checks for the expression of an
4076         expression function.
4077
4078 2022-06-01  Bob Duff  <duff@adacore.com>
4079
4080         * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): For each
4081         subprogram found, assert that the variable is Empty, so we can
4082         detect bugs where we find two or more things with the same name.
4083         Without this patch, that bug would happen when we add the new
4084         Next procedure.  For Step, make sure we pick the right one, by
4085         checking name and number of parameters.  For Get_Element_Access,
4086         check that we're picking a function.  That's not really
4087         necessary, because there is no procedure with that name, but it
4088         seems cleaner this way.
4089         * rtsfind.ads: Minor comment improvement. It seems kind of odd
4090         to say "under no circumstances", and then immediately contradict
4091         that with "The one exception is...".
4092
4093 2022-06-01  Doug Rupp  <rupp@adacore.com>
4094
4095         * init.c (QNX): __gnat_adjust_context_for_raise: New
4096         implementation for arm-qnx.
4097
4098 2022-06-01  Julien Bortolussi  <bortolussi@adacore.com>
4099
4100         * libgnat/a-cofuba.ads, libgnat/a-cofuba.adb: Add reference
4101         counting.
4102
4103 2022-06-01  Yannick Moy  <moy@adacore.com>
4104
4105         * sem_ch8.adb (Use_One_Package): Possibly warn.
4106         * sem_util.adb (Enter_Name): Factor out warning on hidden entity.
4107         (Warn_On_Hiding_Entity): Extract warning logic from Enter_Name and
4108         generalize it to be applied also on use_clause.
4109         * sem_util.ads (Warn_On_Hiding_Entity): Add new procedure.
4110
4111 2022-06-01  Yannick Moy  <moy@adacore.com>
4112
4113         * par-ch3.adb (P_Known_Discriminant_Part_Opt): Reword error
4114         message to benefit from existing codefix.
4115         (P_Record_Definition): Detect out-of-order keywords in record
4116         definition and issue appropriate messages. Other cases are
4117         already caught at appropriate places.
4118
4119 2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4120
4121         * exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Put
4122         the actions into the Actions field of the freeze node instead of
4123         inserting them after it.
4124
4125 2022-06-01  Marc Poulhiès  <poulhies@adacore.com>
4126
4127         * sinfo.ads: Add inline documention for Is_Parenthesis_Aggregate
4128         and Is_Enum_Array_Aggregate.
4129
4130 2022-06-01  Bob Duff  <duff@adacore.com>
4131
4132         * einfo-utils.adb (Set_Convention): Call Set_Convention
4133         recursively, so that Set_Can_Use_Internal_Rep is called (if
4134         appropriate) on the anonymous access type of the object, and its
4135         designated subprogram type.
4136         * sem_ch3.adb (Access_Definition): Remove redundant call to
4137         Set_Can_Use_Internal_Rep.
4138
4139 2022-06-01  Bob Duff  <duff@adacore.com>
4140
4141         * exp_ch4.adb (Expand_N_In): Do not warn in the above-mentioned
4142         cases.
4143         * fe.h (Assume_No_Invalid_Values): Remove from fe.h, because
4144         this is not used in gigi.
4145         * opt.ads (Assume_No_Invalid_Values): Improve the comment. We
4146         don't need to "clearly prove"; we can just "prove". Remove the
4147         comment about fe.h, which is no longer true.
4148
4149 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4150
4151         * erroutc.adb (Get_Warning_Option): Don't consider `?` as a
4152         valid option switch.
4153
4154 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4155
4156         * erroutc.ads (Get_Warning_Option): New function returning the
4157         option responsible for a warning if it exists.
4158         * erroutc.adb (Get_Warning_Option): Likewise.
4159         (Get_Warning_Tag): Rely on Get_Warning_Option when possible.
4160         * errout.adb (Output_JSON_Message): Emit option field.
4161
4162 2022-05-30  Julien Bortolussi  <bortolussi@adacore.com>
4163
4164         * libgnat/a-cfdlli.ads (Insert): Remove the duplication.
4165
4166 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4167
4168         * exp_ch6.adb (Check_Subprogram_Variant): Ignore structural
4169         variants.
4170
4171 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4172
4173         * osint.adb (Locate_File): Change variable to constant and
4174         initialize it by concatenation of directory, file name and NUL.
4175
4176 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4177
4178         * doc/gnat_rm/implementation_advice.rst (Packed Types): Remove
4179         duplicated and wrongly placed paragraph.
4180         * gnat_rm.texi: Regenerate.
4181
4182 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4183
4184         * inline.adb (Check_Package_Body_For_Inlining): Add insertion
4185         character.
4186
4187 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4188
4189         * freeze.adb (Warn_Overlay): Add 'o' insertion character.
4190         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Likewise.
4191         * sem_util.adb (Note_Possible_Modifications): Likewise.
4192
4193 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4194
4195         * sem_warn.adb (Warn_On_Useless_Assignment): Fix insertion
4196         character.
4197
4198 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4199
4200         * sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension):
4201         Fix insertion character.
4202
4203 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4204
4205         * sem_elab.adb (Process_Conditional_ABE_Access_Taken): Add '.f'
4206         insertion characters.
4207
4208 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4209
4210         * lib-xref.ads (Deferred_Reference_Entry, Defer_Reference,
4211         Process_Deferred_References, Has_Deferred_Reference): Remove
4212         client API.
4213         * lib-xref.adb (Deferred_References, Defer_Reference,
4214         Has_Deferred_Reference, Process_Deferred_References): Remove
4215         implementation.
4216         * frontend.adb, sem_ch11.adb, sem_ch5.adb, sem_res.adb,
4217         sem_util.adb, sem_warn.adb: Remove uses of Deferred_References.
4218
4219 2022-05-30  Bob Duff  <duff@adacore.com>
4220
4221         * exp_ch7.adb (Wrap_HSS_In_Block): Do not create a new block in
4222         the case of function bodies. We include all subprogram bodies,
4223         because it's harmless for procedures. We cannot easily avoid
4224         creating this block in ALL cases, because some transformations
4225         of (e.g.) task bodies end up moving some code such that the
4226         wrong exception handlers apply to that code.
4227         (Build_Finalizer_Call): Remove code for creating a new block.
4228         This was unreachable code, given that Wrap_HSS_In_Block has
4229         already done that, but with the above change to
4230         Wrap_HSS_In_Block, this code becomes reachable, and triggers
4231         essentially the same bug.
4232         * exp_ch7.ads: Adjust comment.
4233
4234 2022-05-30  Justin Squirek  <squirek@adacore.com>
4235
4236         * par-ch6.adb (P_Formal_Part): Set Aspect_Specifications on all
4237         formals instead of just the last in a formal id list.
4238         * sem_ch6.adb (Analyze_Null_Procedure): Mark expanded null
4239         generic procedures as trivial in order to avoid spurious
4240         unreferenced warnings.
4241
4242 2022-05-30  Romain Beguet  <beguet@adacore.com>
4243
4244         * libgnat/s-dwalin.adb: Add a subtype declaration to fix the
4245         ambiguity.
4246
4247 2022-05-30  Steve Baird  <baird@adacore.com>
4248
4249         * sem_ch13.adb (Is_Predicate_Static): Do not generate warnings
4250         about subexpressions of enclosing expressions. Generate warnings
4251         for predicates that are known to be always true or always false,
4252         except in the case where the predicate is expressed as a Boolean
4253         literal. Deal with non-predicate-static expressions that have
4254         been transformed into predicate-static expressions.  Add missing
4255         Is_Type_Ref call to N_Membership_Test case.
4256
4257 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4258
4259         * exp_aggr.adb (Expand_Record_Aggregate.Build_Back_End_Aggregate):
4260         Skip the discriminants at the start of the component list before
4261         looking for the components inherited from the parent in the case
4262         of a tagged extension.
4263
4264 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4265
4266         * exp_disp.adb (Make_DT): Remove remaining freezing code.
4267
4268 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4269
4270         * sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Don't analyze
4271         the body of an expression function in the case of a dispatch table.
4272
4273 2022-05-30  Arnaud Charlet  <charlet@adacore.com>
4274
4275         * gnat1drv.adb, opt.ads, sem_ch7.adb: Introduce CCG_Mode.
4276
4277 2022-05-30  Yannick Moy  <moy@adacore.com>
4278
4279         * Makefile.rtl: Add new units.
4280         * libgnat/s-aridou.adb (Scaled_Divide): Add ghost code for provers.
4281         * libgnat/s-spcuop.adb: New unit for ghost cut operations.
4282         * libgnat/s-spcuop.ads: New unit for ghost cut operations.
4283         * libgnat/s-spark.ads: New unit.
4284
4285 2022-05-30  Alexandre Oliva  <oliva@adacore.com>
4286
4287         * doc/gnat_rm/security_hardening_features.rst: Mention
4288         availability in other languages when applicable.
4289         (Stack Scrubbing): Associate the attribute with types, expand
4290         some comments, fix the example involving access to variables.
4291         * gnat_rm.texi: Regenerate.
4292
4293 2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
4294
4295         * libgnat/a-cofuse.ads (Empty_Set): Fix typo in comment.
4296
4297 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4298
4299         * sem_ch6.adb (New_Overloaded_Entity): Deal specifically with the
4300         overriding of the "=" operator for tagged types.
4301
4302 2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4303
4304         * exp_ch3.adb (Expand_N_Object_Declaration): Adjust call to Make_DT.
4305         * exp_disp.ads (Building_Static_DT): Remove pragma Inline.
4306         (Building_Static_Secondary_DT): Likewise.
4307         (Convert_Tag_To_Interface): Likewise.
4308         (Make_DT): Remove second parameter.
4309         * exp_disp.adb (Make_DT): Likewise.
4310         (Check_Premature_Freezing): Delete.
4311         Pass Do_Freeze_Profile as False in call to Freeze_Entity.
4312         * freeze.ads (Freezing_Library_Level_Tagged_Type): Delete.
4313         * freeze.adb (Freeze_Profile): Remove obsolete code.
4314         (Freeze_Entity): Tweak comment.
4315
4316 2022-05-30  Yannick Moy  <moy@adacore.com>
4317
4318         * libgnat/s-arit32.adb (Scaled_Divide32): Move assertion up.
4319
4320 2022-05-30  Yannick Moy  <moy@adacore.com>
4321
4322         PR ada/105303
4323         * libgnat/s-gearop.adb: Add pragma Assertion_Policy in generic
4324         bodies making use of additional assertions or ghost code.
4325         * libgnat/s-gearop.ads: Remove confusing Assertion_Policy.
4326
4327 2022-05-30  Steve Baird  <baird@adacore.com>
4328
4329         * exp_ch11.adb (Expand_N_Raise_Expression): Remove
4330         Convert_To_Return_False test.
4331         * gen_il-fields.ads: Remove Convert_To_Return_False field.
4332         * gen_il-gen-gen_nodes.adb: Remove use of
4333         Convert_To_Return_False field.
4334         * sinfo.ads: Remove comment describing Convert_To_Return_False
4335         flag.
4336
4337 2022-05-30  Julien Bortolussi  <bortolussi@adacore.com>
4338
4339         * libgnat/a-cofuma.ads, libgnat/a-cofuma.adb,
4340         libgnat/a-cofuse.ads, libgnat/a-cofuse.adb,
4341         libgnat/a-cofuve.ads, libgnat/a-cofuve.adb: Add empty
4342         constructors.
4343
4344 2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
4345
4346         * bindgen.adb (Gen_CUDA_Init): Remove code generating CUDA
4347         definitions.
4348         (Gen_CUDA_Defs): New function, generating definitions
4349         initialized by Gen_CUDA_Init.
4350         (Gen_Output_File_Ada): Call Gen_CUDA_Defs instead of
4351         Gen_CUDA_Init.
4352         (Gen_Adainit): Call Gen_CUDA_Init.
4353
4354 2022-05-28  Alexandre Oliva  <oliva@adacore.com>
4355
4356         * gcc-interface/Makefile.in (OSCONS_CC): Rename to...
4357         (GCC_FOR_ADA_RTS): ... this.  Adjust users.
4358         (gnatlib): Pass it down as CC.
4359         (gnatlib-shared-default): Likewise.
4360         (gnatlib-shared-win32, gnatlib-shared-darwin): Likewise.
4361
4362 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4363
4364         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Constant>: Deal with
4365         a constant related to a return in a function specially.
4366         * gcc-interface/trans.cc (Call_to_gnu): Use return slot optimization
4367         if the target is a return object.
4368         (gnat_to_gnu) <N_Object_Declaration>: Deal with a constant related
4369         to a return in a function specially.
4370
4371 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4372
4373         * gcc-interface/utils.cc (gnat_pushdecl): Also set TREE_NO_WARNING
4374         on the decl if Comes_From_Source is false for the associated node.
4375
4376 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4377
4378         * gcc-interface/trans.cc (gnat_gimplify_expr): Tidy up.
4379
4380 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4381
4382         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Function>: Also call
4383         process_attributes for built-in functions.
4384         (prepend_one_attribute_pragma): Deal with "simd" attribute.
4385         * gcc-interface/utils.cc (handle_simd_attribute): New function.
4386         (gnat_internal_attribute_table): Add entry for "simd" attribute.
4387
4388 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4389
4390         * gcc-interface/decl.cc (components_to_record): Use NULL recursively
4391         as P_GNU_REP_LIST for the innermost variant level in the unchecked
4392         union case with a fixed part.
4393
4394 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4395
4396         * gcc-interface/trans.cc (gnat_to_gnu): Do not set Current_Error_Node
4397         to a node without location.
4398
4399 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4400
4401         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: And
4402         skip the elaboration of the designated subtype when that of its base
4403         type has been delayed.
4404
4405 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4406
4407         * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Subtype>: If
4408         it is a special subtype designated by an access subtype, then defer
4409         the completion of incomplete types.
4410
4411 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4412
4413         * gcc-interface/ada-tree.h, gcc-interface/ada.h,
4414         gcc-interface/gadaint.h, gcc-interface/targtyps.cc: Adjust
4415         copyright line.
4416
4417 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4418
4419         * gcc-interface/utils.cc (unchecked_convert): Do not fold a string
4420         constant if the target type is pointer to character.
4421
4422 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
4423
4424         * sem_prag.adb (Analyze_Pragma): Remove redundant call to
4425         Set_Error_Posted.
4426
4427 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
4428
4429         * sem_ch8.adb (Find_Expanded_Name): Emit a main error message
4430         before adding a continuation with the call to
4431         Error_Missing_With_Of_Known_Unit.
4432
4433 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4434
4435         * sem_util.ads (Requires_Transient_Scope): Add pragma Inline.
4436
4437 2022-05-19  Steve Baird  <baird@adacore.com>
4438
4439         * sem_ch13.adb (Build_Predicate_Functions): If a semantic error
4440         has been detected then ignore Predicate_Failure aspect
4441         specifications in the same way as is done for CodePeer and
4442         SPARK. This avoids an internal compiler error if
4443         Ancestor_Predicate_Function_Called is True but Result_Expr is
4444         not an N_And_Then node (and is therefore unsuitable as an
4445         argument in a call to Left_Opnd).
4446
4447 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4448
4449         * exp_ch7.adb (Wrap_Transient_Declaration): Propagate Uses_Sec_Stack
4450         to enclosing function if it does not return on the secondary stack.
4451         * exp_ch6.adb (Expand_Call_Helper): Call Establish_Transient_Scope
4452         with Manage_Sec_Stack set to True only when necessary.
4453         * sem_res.adb (Resolve_Call): Likewise.
4454         (Resolve_Entry_Call): Likewise.
4455
4456 2022-05-19  Daniel Mercier  <mercier@adacore.com>
4457
4458         * sem_ch13.adb (Build_Predicate_Function): Ignore predicate
4459         failure in CodePeer mode.
4460
4461 2022-05-19  Arnaud Charlet  <charlet@adacore.com>
4462
4463         * raise-gcc.c: Fix compilation with -DSTANDALONE under windows.
4464
4465 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4466
4467         * exp_ch4.adb (Narrow_Large_Operation): Preserve and reuse Etype.
4468
4469 2022-05-19  Javier Miranda  <miranda@adacore.com>
4470
4471         * exp_attr.adb (Add_Implicit_Interface_Type_Conversion): New
4472         subprogram which factorizes code.
4473         (Expand_N_Attribute_Reference): Call the new subprogram to add
4474         the missing implicit interface type conversion.
4475
4476 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
4477
4478         * sem_ch13.adb (Build_Predicate_Function): Ignore predicate
4479         failure in GNATprove mode.
4480
4481 2022-05-19  Steve Baird  <baird@adacore.com>
4482
4483         * einfo-utils.ads, einfo-utils.adb: Delete Predicate_Function_M
4484         function and Set_Predicate_Function_M procedure.
4485         * einfo.ads: Delete comments for Is_Predicate_Function_M and
4486         Predicate_Function_M functions. Add comment for new
4487         Predicate_Expression function. Update comment describing
4488         predicate functions.
4489         * exp_util.ads, exp_util.adb (Make_Predicate_Call): Replace Mem
4490         formal parameter with Static_Mem and Dynamic_Mem formals.
4491         (Make_Predicate_Check): Delete Add_Failure_Expression and call
4492         to it.
4493         * exp_ch4.adb (Expand_N_In.Predicate_Check): Update
4494         Make_Predicate_Call call to match profile change.
4495         * gen_il-fields.ads: Delete Is_Predicate_Function_M field, add
4496         Predicate_Expression field.
4497         * gen_il-gen-gen_entities.adb: Delete Is_Predicate_Function_M
4498         use, add Predicate_Expression use.
4499         * sem_ch13.adb (Build_Predicate_Functions): Rename as singular,
4500         not plural; we no longer build a Predicate_M function. Delete
4501         Predicate_M references. Add new Boolean parameter for predicate
4502         functions when needed. Restructure body of generated predicate
4503         functions to implement required Predicate_Failure behavior and
4504         to set new Predicate_Expression attribute. Remove special
4505         treatment of raise expressions within predicate expressions.
4506         * sem_util.ads (Predicate_Failure_Expression,
4507         Predicate_Function_Needs_Membership_Parameter): New functions.
4508         * sem_util.adb (Is_Current_Instance): Fix bugs which caused
4509         wrong result.
4510         (Is_Current_Instance_Reference_In_Type_Aspect): Delete
4511         Is_Predicate_Function_M reference.
4512         (Predicate_Failure_Expression): New function.
4513         (Propagate_Predicate_Attributes): Delete Is_Predicate_Function_M
4514         references.
4515
4516 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4517
4518         * exp_ch6.adb (Expand_Call_Helper): Adjust comment.
4519         (Expand_Simple_Function_Return): For the case of a type which needs
4520         finalization and is returned on the primary stack, do not create a
4521         copy if the expression originates from a function call.
4522         * exp_ch7.adb (Transient Scope Management): Adjust comment.
4523         * exp_util.ads (Is_Related_To_Func_Return): Add WARNING line.
4524         * fe.h (Is_Related_To_Func_Return): Declare.
4525
4526 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
4527
4528         * exp_ch9.adb (Build_Find_Body_Index): Remove empty Elsif_Parts
4529         from the constructed IF statement.
4530
4531 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
4532
4533         * exp_ch9.adb (Build_Find_Body_Index): Remove IF statement whose
4534         condition was true-by-construction; remove excessive assertion
4535         (since the call to Elsif_Parts will check that Nod is present
4536         and it is an if-statement).
4537
4538 2022-05-19  Arnaud Charlet  <charlet@adacore.com>
4539
4540         * gnat1drv.adb, gnatcmd.adb: Remove references to gnatfind/xref.
4541         * doc/gnat_ugn/building_executable_programs_with_gnat.rst,
4542         doc/gnat_ugn/the_gnat_compilation_model.rst: Ditto.
4543         * gnat_ugn.texi: Regenerate.
4544         * gnatfind.adb, gnatxref.adb, xr_tabls.adb, xr_tabls.ads,
4545         xref_lib.adb, xref_lib.ads: Removed, no longer used.
4546
4547 2022-05-19  Claire Dross  <dross@adacore.com>
4548
4549         * libgnat/a-strfix.adb: Add assertions.
4550         * libgnat/a-strsup.adb: Idem.
4551
4552 2022-05-19  Ed Schonberg  <schonberg@adacore.com>
4553
4554         * erroutc.ads: Fix a single-character typo in a comment.
4555         * exp_aggr.adb: Fix a single-character typo in a comment.
4556         Replace several pairs of calls to Low_Bound and
4557         High_Bound (which do not handle an identifier that denotes a
4558         scalar subtype) with corresponding calls to Get_Index_Bounds
4559         (which does handle that case).
4560         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Set the
4561         Component_Associations attribute of a null array aggregate to
4562         New_List.
4563         * sem_aggr.ads: New visible function
4564         Is_Null_Array_Aggregate_High_Bound.
4565         * sem_aggr.adb (Is_Null_Array_Aggregate_High_Bound,
4566         Is_Null_Aggregate, Resolve_Null_Array_Aggregate): New functions.
4567         (Resolve_Aggregate): Recognize null array aggregates (using
4568         Is_Null_Aggregate) and, when one is recognized, resolve
4569         it (using Resolve_Null_Array_Aggregate).  Avoid calling
4570         Array_Aggr_Subtype for a null array aggregate; the needed
4571         subtype is built in Resolve_Null_Array_Aggregate. Do not
4572         incorrectly flag a null aggregate (after it is transformed by
4573         expansion) as being both positional and named.
4574         * sem_attr.adb (Eval_Attribute): Special treatment for null
4575         array aggregate high bounds to avoid incorrectly flagging
4576         something like Integer'Pred (Integer'First) as an illegal static
4577         expression.
4578         * sem_eval.adb (Out_Of_Range): Special treatment for null array
4579         aggregate high bounds to avoid incorrectly flagging something
4580         like Integer'Pred (Integer'First) as an illegal static
4581         expression.
4582
4583 2022-05-19  Yannick Moy  <moy@adacore.com>
4584
4585         * libgnat/s-aridou.adb (Lemma_Abs_Range,
4586         Lemma_Double_Shift_Left, Lemma_Shift_Left): New lemmas.
4587         (Double_Divide): Add ghost code.
4588         (Lemma_Concat_Definition, Lemma_Double_Shift_Left,
4589         Lemma_Shift_Left, Lemma_Shift_Right): Define or complete lemmas.
4590         (Scaled_Divide): Add ghost code.
4591
4592 2022-05-19  Bob Duff  <duff@adacore.com>
4593
4594         * exp_pakd.adb (Expand_Packed_Eq): Replace the check for *same*
4595         modular type, with a check for any modular type, and assert that
4596         the two types have the same modulus and so on.
4597         * exp_pakd.ads: Minor comment improvements.
4598
4599 2022-05-19  Bob Duff  <duff@adacore.com>
4600
4601         * style.adb (Check_Identifier): Deal with the case where a
4602         record component definition has been transformed; we want to
4603         warn if the original came from source.
4604         * libgnat/s-objrea.ads, libgnat/s-objrea.adb: Fix casing of MF
4605         to be consistent.
4606         * uname.adb: Fix casing of Chars to be consistent.
4607         * sem_util.ads: Minor comment fix.
4608
4609 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4610
4611         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-retsta.
4612         * debug.adb (d_r): Document usage.
4613         * exp_ch4.adb (Expand_N_Allocato): Deal with the return stack pool.
4614         * exp_ch6.adb (Expand_Simple_Function_Return): Replace calls to
4615         Requires_Transient_Scope with Returns_On_Secondary_Stack.  Deal
4616         with types that need finalization returned on the primary stack,
4617         use CW_Or_Needs_Finalization for those returned on the secondary.
4618         * exp_util.adb (Build_Allocate_Deallocate_Proc): Return early
4619         for the return stack pool.
4620         (Remove_Side_Effects): Call CW_Or_Needs_Finalization.
4621         * fe.h (Requires_Transient_Scope): Delete.
4622         (Returns_On_Secondary_Stack): Declare.
4623         * gnat1drv.adb (Adjust_Global_Switches): Set Back_End_Return_Slot
4624         to False when generating C code or if -gnatd_r is specified.
4625         * opt.ads (Back_End_Return_Slot): New boolean variable.
4626         * rtsfind.ads (RTU_Id): Add System_Return_Stack.
4627         (RE_Id): Add RE_RS_Allocate and RE_RS_Pool.
4628         (RE_Unit_Table): Add entries for RE_RS_Allocate and RE_RS_Pool.
4629         * sem_util.ads (CW_Or_Has_Controlled_Part): Delete.
4630         (CW_Or_Needs_Finalization): Declare.
4631         (Requires_Transient_Scope): Adjust description.
4632         (Returns_On_Secondary_Stack): Declare.
4633         * sem_util.adb (Compute_Returns_By_Ref): Set Returns_By_Ref on types
4634         which need finalization if they are returned on the secondary stack.
4635         (CW_Or_Has_Controlled_Part): Rename to...
4636         (CW_Or_Needs_Finalization): ...this.
4637         (Requires_Transient_Scope): Move bulk of implementation to...
4638         (Returns_On_Secondary_Stack): ...here.  Return true for types which
4639         need finalization only if the back-end return slot is not supported.
4640         * libgnat/s-retsta.ads: New file.
4641         * gcc-interface/ada-builtin-types.def (BT_FN_PTR_SSIZE): Define.
4642         * gcc-interface/ada-builtins.def (return_slot): Likewise.
4643         * gcc-interface/ada-tree.h (BUILT_IN_RETURN_SLOT): Likewise.
4644         * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call to
4645         Requires_Transient_Scope with Returns_On_Secondary_Stack.
4646         * gcc-interface/trans.cc (gnat_to_gnu) <N_Simple_Return_Statement>:
4647         In the return by invisible reference, skip the copy if the source
4648         is the same as the destination.
4649         * gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Deal with
4650         the return stack pool.
4651
4652 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4653
4654         * gcc-interface/trans.cc: Fix formatting issues in comments.
4655         (Subprogram_Body_to_gnu): Tidy up.
4656         (Exception_Handler_to_gnu_gcc): Rename into...
4657         (Exception_Handler_to_gnu): ...this.
4658         (gnat_to_gnu) <N_Exception_Handler>: Adjust to above renaming.
4659
4660 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4661
4662         * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Rename a couple
4663         of local variables and use Is_Generic_Subprogram predicate.
4664         (process_decls): Likewise.
4665
4666 2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4667
4668         * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Do not deal with
4669         inlining heuristics for expression functions here but...
4670         * gcc-interface/decl.cc (inline_status_for_subprog): ...here instead
4671         and do not override them at -Os.
4672
4673 2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
4674
4675         * gcc-interface/decl.cc (gnat_to_gnu_entity): Remove dead code
4676         which expected Scope to return E_Subprogram_Body entity.
4677
4678 2022-05-18  Claire Dross  <dross@adacore.com>
4679
4680         * libgnat/s-imageu.adb (Set_Image_Unsigned): Change assertion.
4681
4682 2022-05-18  Doug Rupp  <rupp@adacore.com>
4683
4684         * sigtramp-qnx.c: Change struct sigcontext * to mcontext_t *.
4685
4686 2022-05-18  Doug Rupp  <rupp@adacore.com>
4687
4688         * sigtramp-arm-qnx.c: Rewrite.
4689
4690 2022-05-18  Yannick Moy  <moy@adacore.com>
4691
4692         * libgnat/s-aridou.adb (Big3): Change return type.
4693         (Lemma_Mult_Non_Negative, Lemma_Mult_Non_Positive): Reorder
4694         alphabetically.
4695         (Lemma_Concat_Definition, Lemma_Double_Big_2xxsingle): New
4696         lemmas.
4697         (Double_Divide, Scaled_Divide): Add assertions.
4698
4699 2022-05-18  Claire Dross  <dross@adacore.com>
4700
4701         * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertions.
4702
4703 2022-05-18  Kévin Le Gouguec  <legouguec@adacore.com>
4704
4705         * libgnat/s-dwalin.adb (Read_Aranges_Header): Initialize output
4706         parameter in case we return early.
4707
4708 2022-05-18  Bob Duff  <duff@adacore.com>
4709
4710         * libgnat/a-crbtgo.ads, libgnat/a-rbtgbo.ads,
4711         libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
4712         libgnat/a-cbhase.adb, libgnat/a-cdlili.adb,
4713         libgnat/a-cfdlli.adb, libgnat/a-cfhama.adb,
4714         libgnat/a-cfhase.adb, libgnat/a-cidlli.adb,
4715         libgnat/a-cihama.adb, libgnat/a-cihase.adb,
4716         libgnat/a-cohama.adb, libgnat/a-cohase.adb,
4717         libgnat/a-crbtgo.adb, libgnat/a-crdlli.adb, libgnat/a-rbtgbo.adb
4718         (Vet): Make the Vet functions do nothing when
4719         Container_Checks'Enabled is False, and inline them, so the calls
4720         disappear when optimizing.
4721
4722 2022-05-18  Doug Rupp  <rupp@adacore.com>
4723
4724         * Makefile.rtl (arm-qnx): Use default (non-fma) target pair.
4725
4726 2022-05-18  Kévin Le Gouguec  <legouguec@adacore.com>
4727
4728         * libgnat/s-dwalin.adb (Aranges_Lookup, Enable_Cache): Adapt to
4729         changes in the signature of Read_Aranges_*.
4730         (Debug_Info_Lookup): Do not control address size read from
4731         DWARF.
4732         (Read_Aranges_Header): Do not control address size read from
4733         DWARF; return this size.
4734         (Read_Aranges_Entry): Use the size returned by
4735         Read_Aranges_Header.
4736
4737 2022-05-18  Gary Dismukes  <dismukes@adacore.com>
4738
4739         * errout.ads (Error_Msg_GNAT_Extension): Add formal Loc and
4740         revise comment.
4741         * errout.adb (Error_Msg_GNAT_Extension): Condition message on
4742         the flag Ada_Version_Pragma, and add suggestion to use of pragma
4743         Extensions_Allowed in messages.
4744         * par-ch3.adb, par-ch5.adb, par-ch6.adb, par-ch11.adb,
4745         par-ch12.adb: Add actual Token_Ptr on calls to
4746         Error_Msg_GNAT_Extension.
4747         * par-ch4.adb: Change Error_Msg to Error_Msg_GNAT_Extension for
4748         error calls related to use of extension features.
4749         * sem_ch13.adb: Likewise.
4750
4751 2022-05-18  Johannes Kliemann  <kliemann@adacore.com>
4752
4753         * libgnarl/s-osinte__qnx.adb (To_Target_Priority): Perform
4754         arithmetic in int.
4755
4756 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
4757
4758         * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Use Needs_BIP_Alloc_Form.
4759
4760 2022-05-18  Javier Miranda  <miranda@adacore.com>
4761
4762         * sem_ch6.adb (Find_Corresponding_Spec): Avoid calling
4763         Is_Null_Extension with a class-wide type entity.
4764         (Overrides_Visible_Function): Handle alias entities.
4765         * sem_res.adb (Has_Applicable_User_Defined_Literal): Conversion
4766         not needed if the result type of the call is class-wide or if
4767         the result type matches the context type.
4768         * sem_util.ads (Is_Null_Extension): Adding documentation.
4769         (Is_Null_Extension_Of): Adding documentation.
4770         * sem_util.adb (Is_Null_Extension): Adding assertion.
4771         (Is_Null_Extension_Of): Adding assertions.
4772
4773 2022-05-18  Javier Miranda  <miranda@adacore.com>
4774
4775         * snames.ads-tmpl (Name_Index): New attribute name.
4776         (Attribute_Id): Adding Attribute_Index as regular attribute.
4777         * sem_attr.adb (Attribute_22): Adding Attribute_Index as Ada
4778         2022 attribute.
4779         (Analyze_Index_Attribute): Check that 'Index appears in a
4780         pre-/postcondition aspect or pragma associated with an entry
4781         family.
4782         (Analyze_Attribute): Adding semantic analysis for 'Index.
4783         (Eval_Attribute): Register 'Index as can never be folded.
4784         (Resolve_Attribute): Resolve attribute 'Index.
4785         * sem_ch9.adb (Check_Wrong_Attribute_In_Postconditions): New
4786         subprogram.
4787         (Analyze_Requeue): Check that the requeue target shall not have
4788         an applicable specific or class-wide postcondition which
4789         includes an Index attribute reference.
4790         * exp_attr.adb (Expand_N_Attribute_Reference): Transform
4791         attribute Index into a renaming of the second formal of the
4792         wrapper built for an entry family that has contract cases.
4793         * einfo.ads (Is_Entry_Wrapper): Complete documentation.
4794
4795 2022-05-18  Yannick Moy  <moy@adacore.com>
4796
4797         * libgnat/s-imagei.adb (Set_Digits): Add assertion.
4798         * libgnat/s-imgboo.adb (Image_Boolean): Add assertions.
4799         * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertion.
4800
4801 2022-05-18  Arnaud Charlet  <charlet@adacore.com>
4802
4803         * sem_aux.adb (Is_Immutably_Limited_Type): Do not look through
4804         private types as per RM 7.5(8.1).
4805         * sem_ch6.adb (Analyze_Function_Return): Use
4806         Is_Immutably_Limited_Type as per RM 6.5(5.10).
4807
4808 2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
4809
4810         * gen_il-gen-gen_nodes.adb (Gen_IL.Gen.Gen_Nodes): Add
4811         Is_Homogeneous_Aggregate field for N_Delta_Aggregate nodes.
4812         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Minor reformatting.
4813         * sem_aggr.adb (Resolve_Delta_Aggregate): Reject square brackets
4814         for record aggregate.
4815         (Resolve_Record_Aggregate): Uniformise error message.
4816
4817 2022-05-18  Arnaud Charlet  <charlet@adacore.com>
4818
4819         * ali.adb (Scan_ALI): Special case a-tags.ali when setting
4820         Sec_Stack_Used.
4821         * bindgen.adb (Gen_Adainit): Simplify handling of secondary
4822         stack related code, and only import __gnat_binder_ss_count when
4823         needed.
4824         * libgnat/s-secsta.adb (Binder_SS_Count): Default initialize to
4825         0.
4826
4827 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
4828
4829         * libgnat/s-dourea.adb ("/"): Add guard for zero and infinite
4830         divisor.
4831         * libgnat/s-valuer.adb (Scan_Raw_Real): Add guard for very large
4832         exponent values.
4833
4834 2022-05-18  Yannick Moy  <moy@adacore.com>
4835
4836         * sem_elab.adb (Is_Suitable_Construct): Fix for generated
4837         constructs.
4838
4839 2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
4840
4841         * sem_ch3.adb (Analyze_Object_Declaration): Skip predicate check
4842         for type conversion if object's subtype and expression's subtype
4843         statically match.
4844         * exp_prag.adb (Expand_Pragma_Check): Typo fix in comment.
4845
4846 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
4847
4848         * exp_dbug.ads (Build_Subprogram_Instance_Renamings): Fix typo.
4849         * exp_dbug.adb (Build_Subprogram_Instance_Renamings): Build the
4850         renaming only for actuals of formal objects.
4851
4852 2022-05-18  Gary Dismukes  <dismukes@adacore.com>
4853
4854         * sem_ch3.adb (Check_Abstract_Overriding): If the type is
4855         derived from an untagged type, then don't perform any of the
4856         abstract overriding error checks.
4857
4858 2022-05-18  Piotr Trojanek  <trojanek@adacore.com>
4859
4860         * exp_aggr.adb (Component_Count): Calculate size as an Uint and
4861         only then check if it is in the range of Int, as otherwise the
4862         multiplication of Int values can overflow.
4863
4864 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
4865
4866         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-gfmafu$(objext).
4867         (SIMD_PATH_TARGET_PAIRS): New variable.
4868         (TRASYM_DWARF_COMMON_OBJS): Minor tweak.
4869         (x86-64/Linux): Use SIMD_PATH_TARGET_PAIRS.
4870         (x32/Linux): Likewise.
4871         * doc/gnat_rm/the_gnat_library.rst (Generic_Fast_Math_Functions):
4872         New entry.
4873         * gnat_rm.texi: Regenerate.
4874         * impunit.adb (Non_Imp_File_Names_95): Add g-gfmafu.
4875         * sem_ch7.adb (Has_Referencer): Do not set In_Nested_Instance for
4876         instances of generic packages that do not have a body.
4877         * libgnat/a-nalofl__simd.ads: New SIMD-enabled version.
4878         * libgnat/a-nuaufl__simd.ads: Likewise.
4879         * libgnat/g-gfmafu.ads: New package renaming unit.
4880
4881 2022-05-18  Arnaud Charlet  <charlet@adacore.com>
4882
4883         * freeze.adb (Should_Freeze_Type): Fix handling of freezing in
4884         instances.
4885
4886 2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
4887
4888         * sem_ch12.adb (Check_Generic_Parent): Use
4889         Get_Unit_Instantiation_Node instead of Next.
4890
4891 2022-05-18  Alexandre Oliva  <oliva@adacore.com>
4892
4893         * libgnat/a-nagefl.ads: Replace mentions of C/unix math library
4894         with intrinsics.
4895         * libgnat/a-nallfl.ads: Likewise.  State compatibility
4896         requirements.
4897         * libgnat/a-nalofl.ads: Likewise.
4898         * libgnat/a-nuaufl.ads: Likewise.
4899
4900 2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
4901
4902         * sem_ch8.adb (Analyze_Subprogram_Renaming): Move final test on
4903         In_Instance to outer condition.
4904
4905 2022-05-18  Doug Rupp  <rupp@adacore.com>
4906
4907         * Makefile.rtl: Rename system-qnx-aarch64.ads to
4908         system-qnx-arm.ads.
4909         (AARCH64 QNX section): Modify to handle both arm and arch64.
4910         * tracebak.c (__QNX__): Add new __ARMEL__ section.
4911         * sigtramp-arm-qnx.c: New file.
4912         * libgnat/system-qnx-aarch64.ads: Renamed to ...
4913         * libgnat/system-qnx-arm.ads: this.
4914
4915 2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
4916
4917         * sem_res.adb (Flag_Effectively_Volatile_Objects): Restore
4918         redundant guard.
4919
4920 2022-05-17  Gary Dismukes  <dismukes@adacore.com>
4921
4922         * sem_ch8.adb (Analyze_Subprogram_Renaming): Add error check for
4923         the case of a renamed subprogram given by an expanded name whose
4924         outermost prefix names a unit that is hidden by the name of the
4925         renaming.
4926         (Ult_Expanded_Prefix): New local expression function to return
4927         the ultimate prefix of an expanded name.
4928
4929 2022-05-17  Ghjuvan Lacambre  <lacambre@adacore.com>
4930
4931         * gnat_cuda.ads: Update package-level comments.
4932         (Build_And_Insert_CUDA_Initialization): Remove function.
4933         * gnat_cuda.adb (Build_And_Insert_CUDA_Initialization): Remove
4934         function.
4935         (Expand_CUDA_Package): Remove call to
4936         Build_And_Insert_CUDA_Initialization.
4937
4938 2022-05-17  Etienne Servais  <servais@adacore.com>
4939
4940         * freeze.adb (Freeze_Enumeration_Type): Fix comment, enhance
4941         message and silence warning for size > 32.
4942
4943 2022-05-17  Yannick Moy  <moy@adacore.com>
4944
4945         * exp_spark.adb (Expand_SPARK_Potential_Renaming): Deal with no
4946         entity case.
4947         * inline.ads (Check_Object_Renaming_In_GNATprove_Mode): New
4948         procedure.
4949         * inline.adb (Check_Object_Renaming_In_GNATprove_Mode): New
4950         procedure.
4951         (Can_Be_Inlined_In_GNATprove_Mode): Remove case forbidding
4952         inlining for subprograms inside generics.
4953         * sem_ch12.adb (Copy_Generic_Node): Preserve global entities
4954         when inlining in GNATprove mode.
4955         * sem_ch6.adb (Analyse_Subprogram_Body_Helper): Remove body to
4956         inline if renaming is detected in GNATprove mode.
4957
4958 2022-05-17  Gary Dismukes  <dismukes@adacore.com>
4959
4960         * exp_ch4.adb (Expand_N_Allocator): For an allocator with an
4961         unconstrained discriminated designated type, and whose
4962         allocation subtype is constrained, set the
4963         Actual_Designated_Subtype of the dereference passed to the init
4964         proc of the designated type to be the allocation subtype.
4965         * sinfo.ads: Add documentation of new setting of
4966         Actual_Designated_Subtype on a dereference used as an actual
4967         parameter of call to an init proc associated with an allocator.
4968         Also add missing syntax and documentation for the GNAT language
4969         extension that allows an expression as a default for a concrete
4970         generic formal function.
4971
4972 2022-05-17  Bob Duff  <duff@adacore.com>
4973
4974         * sinfo.ads: Remove From_At_End.  Update comments.
4975         * gen_il-fields.ads, gen_il-gen-gen_nodes.adb, sem_ch11.adb:
4976         Remove From_At_End.
4977         * exp_ch11.adb (Expand_At_End_Handler): Remove assertion.
4978         * fe.h (Exception_Mechanism, Exception_Mechanism_Type, Has_DIC,
4979         Has_Invariants, Is_List_Member, List_Containing): Remove
4980         declarations that are not used in gigi.
4981         * opt.ads (Exception_Mechanism): This is not used in gigi.
4982         * exp_util.ads: Minor comment fix.
4983
4984 2022-05-17  Dmitriy Anisimkov  <anisimko@adacore.com>
4985
4986         * impunit.adb: Add "g-binsea" to Non_Imp_File_Names_95 list.
4987
4988 2022-05-17  Yannick Moy  <moy@adacore.com>
4989
4990         * sem_ch5.adb (Analyze_Iterator_Specification): Use
4991         Insert_Action when possibly inside an expression.
4992
4993 2022-05-17  Marc Poulhiès  <poulhies@adacore.com>
4994
4995         * libgnat/g-forstr.adb (Is_Number): Add scientific notation and
4996         shortest representation.
4997
4998 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4999
5000         * exp_ch3.adb (Expand_N_Full_Type_Declaration): Look into N.
5001
5002 2022-05-17  Bob Duff  <duff@adacore.com>
5003
5004         * exp_util.adb (Requires_Cleanup_Actions): Remove
5005         N_Protected_Body from the case statement, so that case will be
5006         covered by "raise Program_Error".
5007
5008 2022-05-17  Bob Duff  <duff@adacore.com>
5009
5010         * output.adb (Pop_Output, Set_Output): Unconditionally flush
5011         output when switching from one output destination to another.
5012         Otherwise buffering can cause garbled output.
5013         (w): Push/pop the current settings, and temporarily
5014         Set_Standard_Error during these procedures.
5015
5016 2022-05-17  Dmitriy Anisimkov  <anisimko@adacore.com>
5017
5018         * libgnat/g-binsea.ads, libgnat/g-binsea.adb
5019         (GNAT.Binary_Search): New package.
5020         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): New item in list.
5021         * doc/gnat_rm/the_gnat_library.rst (GNAT.Binary_Search): New
5022         package record.
5023         * gnat_rm.texi: Regenerate.
5024
5025 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5026
5027         * sem_ch12.ads (Is_Abbreviated_Instance): Declare.
5028         * sem_ch12.adb (Check_Abbreviated_Instance): Declare.
5029         (Requires_Conformance_Checking): Declare.
5030         (Analyze_Association.Process_Default): Fix subtype of parameter.
5031         (Analyze_Formal_Object_Declaration): Check whether it is in the
5032         visible part of abbreviated instance.
5033         (Analyze_Formal_Subprogram_Declaration): Likewise.
5034         (Analyze_Formal_Type_Declaration): Likewise.
5035         (Analyze_Package_Instantiation): Do not check for a generic child
5036         unit in the case of an abbreviated instance.
5037         (Check_Abbreviated_Instance): New procedure.
5038         (Check_Formal_Packages): Tidy up.
5039         (Copy_Generic_Elist): Fix comment.
5040         (Instantiate_Formal_Package): Tidy up.  If the generic unit is a
5041         child unit, copy the qualified name onto the abbreviated instance.
5042         (Is_Abbreviated_Instance): New function.
5043         (Collect_Previous_Instances): Call Is_Abbreviated_Instance.
5044         (Requires_Conformance_Checking): New function.
5045         * sem_ch7.adb (Analyze_Package_Specification): Do not install the
5046         private declarations of the parent for an abbreviated instance.
5047
5048 2022-05-17  Etienne Servais  <servais@adacore.com>
5049
5050         * sem_ch3.adb (Analyze_Subtype_Declaration): Use underlying type
5051         of Indic_Typ.
5052         (Constrain_Array): Ditto for T.
5053
5054 2022-05-17  Arnaud Charlet  <charlet@adacore.com>
5055
5056         * sem_attr.adb (Analyze_Attribute [Attribute_Reduce]): Allow
5057         'Reduce for Ada 2022 and above.
5058         * sem_attr.ads (Attribute_Impl_Def): 'Reduce is no longer
5059         implementation defined.
5060
5061 2022-05-17  Ghjuvan Lacambre  <lacambre@adacore.com>
5062
5063         * exp_ch9.adb (Expand_N_Asynchronous_Select): Don't generate
5064         Abort_Undefers when not Abort_Allowed.
5065
5066 2022-05-17  Marc Poulhiès  <poulhies@adacore.com>
5067
5068         * exp_ch7.adb: Fix typo.
5069
5070 2022-05-17  Etienne Servais  <servais@adacore.com>
5071
5072         * lib.ads: initialize `Compiler_State` to `Parsing`.
5073
5074 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5075
5076         * sem_ch13.adb (Has_Compatible_Representation): Return true for
5077         derived untagged record types without representation clause.
5078
5079 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5080
5081         * sem_ch13.ads (Has_Compatible_Representation): Minor tweaks.
5082         * sem_ch13.adb (Has_Compatible_Representation): Look directly into
5083         the (implementation) base types and simplifiy accordingly.
5084         * exp_ch5.adb (Change_Of_Representation): Adjust.
5085         * exp_ch6.adb (Expand_Actuals): Likewise.
5086
5087 2022-05-17  Etienne Servais  <servais@adacore.com>
5088
5089         * sem_ch5.adb (Analyze_Assignment): Remove superfluous call to
5090         Original_Node.
5091
5092 2022-05-17  Javier Miranda  <miranda@adacore.com>
5093
5094         * freeze.adb (Freeze_Entity): Protect the call to
5095         Declaration_Node against entities of expressions replaced by the
5096         frontend with an N_Raise_CE node.
5097
5098 2022-05-17  Javier Miranda  <miranda@adacore.com>
5099
5100         * freeze.adb (Build_DTW_Spec): Do not inherit the not-overriding
5101         indicator because the DTW wrapper overrides its wrapped
5102         subprogram.
5103         * contracts.ads (Make_Class_Precondition_Subps): Adding
5104         documentation.
5105
5106 2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5107
5108         * exp_ch13.adb (Expand_N_Freeze_Entity): Delete freeze nodes for
5109         subprograms only if they have no actions.
5110         * exp_ch6.adb (Freeze_Subprogram): Put the actions into the Actions
5111         field of the freeze node instead of inserting them after it.
5112         * sem_elab.adb (Is_SPARK_Semantic_Target): Fix typo in comment.
5113         * gcc-interface/trans.cc (process_freeze_entity): Return early for
5114         freeze nodes of subprograms with Interface_Alias set.
5115
5116 2022-05-17  Javier Miranda  <miranda@adacore.com>
5117
5118         * contracts.adb (Build_Call_Helper_Body): Improve handling of
5119         the case of a (legal) non-dispatching call to an abstract
5120         subprogram.
5121
5122 2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
5123
5124         * doc/gnat_rm/implementation_defined_attributes.rst
5125         (Loop_Entry): Mention pragmas Assert, Assert_And_Cut and Assume;
5126         refill.
5127         * gnat_rm.texi: Regenerate.
5128
5129 2022-05-17  Etienne Servais  <servais@adacore.com>
5130
5131         * par-ch3.adb (P_Access_Type_Definition): Outputs an error if
5132         token is not "access".
5133
5134 2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
5135
5136         * exp_ch2.adb (Expand_Current_Value): Remove special case for
5137         references immediately within pragma argument associations.
5138         * exp_prag.adb (Expand_Pragma_Inspection_Point): Remove special
5139         case for privals.
5140
5141 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5142
5143         * sem_ch7.adb (Inspect_Untagged_Record_Completion): Also move the
5144         equality operator on the homonym chain if there is another equality
5145         operator in the private part.
5146
5147 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5148
5149         * exp_attr.adb (Expand_Loop_Entry_Attribute): Disable value
5150         propagation when analysing the constant that holds the
5151         Loop_Entry prefix value.
5152
5153 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5154
5155         * sem_attr.adb (Address_Checks): Remove call to
5156         Kill_Current_Values for subprogram entities, because this
5157         routine only does something for object entities.
5158
5159 2022-05-16  Justin Squirek  <squirek@adacore.com>
5160
5161         * exp_ch7.adb (Build_Finalizer): Disable late evaluation of
5162         postconditions for functions returning types which where
5163         Has_Unconstrained_Elements is true or are unconstrained arrays.
5164
5165 2022-05-16  Etienne Servais  <servais@adacore.com>
5166
5167         * exp_ch4.adb (Expand_N_Qualified_Expression): Freeze
5168         Target_Type.
5169
5170 2022-05-16  Yannick Moy  <moy@adacore.com>
5171
5172         * libgnat/s-aridou.adb (Double_Divide): Add intermediate
5173         assertions.
5174
5175 2022-05-16  Ghjuvan Lacambre  <lacambre@adacore.com>
5176
5177         * lib-writ.adb (Output_CUDA_Symbols): Check for null packages.
5178
5179 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5180
5181         * libgnat/g-debpoo.ads: Improve documentation of the
5182         Stack_Trace_Depth parameter.
5183
5184 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5185
5186         * init.c (__gnat_install_handler) [__QNX__]: Save sigaction's
5187         return value in err before checking err's value.  Fix incorrect
5188         signal names in perror messages.
5189
5190 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5191
5192         * init.c (__gnat_install_handler) [__QNX__]: Set
5193         act.sa_sigaction rather than act.sa_handler.
5194
5195 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5196
5197         * cstreams.c: Add <stdlib.h> #include.
5198
5199 2022-05-16  Joel Brobecker  <brobecker@adacore.com>
5200
5201         * terminals.c: Remove bzero #define on HP/UX or Solaris
5202         platforms.
5203         (child_setup_tty): Replace bzero call by equivalent call to
5204         memset.
5205
5206 2022-05-16  Gary Dismukes  <dismukes@adacore.com>
5207
5208         * sem_util.ads (Storage_Model_Support): Revise comments on most
5209         operations within this nested package to reflect that they can
5210         now be passed either a type that has aspect Storage_Model_Type
5211         or an object of such a type.  Change the names of the relevant
5212         formals to SM_Obj_Or_Type. Also, add more precise semantic
5213         descriptions in some cases, and declare the subprograms in a
5214         more logical order.
5215         * sem_util.adb (Storage_Model_Support.Storage_Model_Object): Add
5216         an assertion that the type must specify aspect
5217         Designated_Storage_Model, rather than returning Empty when it
5218         doesn't specify that aspect.
5219         (Storage_Model_Support.Storage_Model_Type): Add an assertion
5220         that formal must be an object whose type specifies aspect
5221         Storage_Model_Type, rather than returning Empty for when it
5222         doesn't have such a type (and test Has_Storage_Model_Type_Aspect
5223         rather than Find_Value_Of_Aspect).
5224         (Storage_Model_Support.Get_Storage_Model_Type_Entity): Allow
5225         both objects and types, and add an assertion that the type (or
5226         the type of the object) has a value for aspect
5227         Storage_Model_Type.
5228
5229 2022-05-16  Etienne Servais  <servais@adacore.com>
5230
5231         * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
5232         Fix condition to return.
5233
5234 2022-05-16  Yannick Moy  <moy@adacore.com>
5235
5236         * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Update comment.
5237
5238 2022-05-16  Marc Poulhiès  <poulhies@adacore.com>
5239
5240         * sem_aggr.adb (Resolve_Iterated_Association): Create scope
5241         around N_Iterated_Element_Association handling. Analyze a copy
5242         of the Loop_Parameter_Specification. Call Analyze instead
5243         Analyze_* to be more homogeneous.
5244         (Sem_Ch5): Remove now unused package.
5245
5246 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5247
5248         * exp_util.adb (Insert_Actions) <N_Iterated_Component_Association>:
5249         Climb up out of the node if the actions come from Discrete_Choices.
5250
5251 2022-05-16  Javier Miranda  <miranda@adacore.com>
5252
5253         * sem_disp.adb (Check_Dispatching_Context): When checking to see
5254         whether an expression occurs in a class-wide pre/post-condition,
5255         also check for the possibility that it occurs in a class-wide
5256         preconditions subprogram that was introduced as part of
5257         expansion. Without this fix, some legal calls occuring in
5258         class-wide preconditions may be incorrectly flagged as violating
5259         the "a call to an abstract subprogram must be dispatching" rule.
5260
5261 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5262
5263         * inline.adb (Cleanup_Scopes): Test the underlying type.
5264
5265 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5266
5267         * sem_util.ads (Is_Entity_Of_Quantified_Expression): Declare.
5268         * sem_util.adb (Is_Entity_Of_Quantified_Expression): New
5269         predicate.
5270         (New_Copy_Tree): Deal with all entities of quantified
5271         expressions.
5272         * sem_ch13.adb (Build_Predicate_Functions): Get rid of
5273         superfluous tree copying and remove obsolete code.
5274         * sem_ch6.adb (Fully_Conformant_Expressions): Deal with all
5275         entities of quantified expressions.
5276
5277 2022-05-16  Steve Baird  <baird@adacore.com>
5278
5279         * exp_ch7.adb (Build_Finalize_Statements): Add Last_POC_Call
5280         variable to keep track of the last "early finalization" call
5281         generated for type extension's finalization procedure. If
5282         non-empty, then this will indicate the point at which to insert
5283         the call to the parent type's finalization procedure. Modify
5284         nested function Process_Component_List_For_Finalize to set this
5285         variable (and avoid setting it during a recursive call).  If
5286         Last_POC_Call is empty, then insert the parent finalization call
5287         before, rather than after, the finalization code for the
5288         extension components.
5289
5290 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5291
5292         * einfo-utils.adb (Remove_Entity): Fix couple of oversights.
5293         * exp_ch3.adb (Is_User_Defined_Equality): Delete.
5294         (User_Defined_Eq): Call Get_User_Defined_Equality.
5295         (Make_Eq_Body): Likewise.
5296         (Predefined_Primitive_Eq_Body): Call Is_User_Defined_Equality.
5297         * exp_ch4.adb (Build_Eq_Call): Call Get_User_Defined_Equality.
5298         (Is_Equality): Delete.
5299         (User_Defined_Primitive_Equality_Op): Likewise.
5300         (Find_Aliased_Equality): Call Is_User_Defined_Equality.
5301         (Expand_N_Op_Eq): Call Underlying_Type unconditionally.
5302         Do not implement AI12-0101 + AI05-0123 here.
5303         (Expand_Set_Membership): Call Resolve_Membership_Equality.
5304         * exp_ch6.adb (Expand_Call_Helper): Remove obsolete code.
5305         * sem_aux.ads (Is_Record_Or_Limited_Type): Delete.
5306         * sem_aux.adb (Is_Record_Or_Limited_Type): Likewise.
5307         * sem_ch4.ads (Nondispatching_Call_To_Abstract_Operation): Declare.
5308         * sem_ch4.adb (Analyze_Call): Call Call_Abstract_Operation.
5309         (Analyze_Membership_Op): Call Resolve_Membership_Equality.
5310         (Nondispatching_Call_To_Abstract_Operation): New procedure.
5311         (Remove_Abstract_Operations): Call it.
5312         * sem_ch6.adb (Check_Untagged_Equality): Remove obsolete error and
5313         call Is_User_Defined_Equality.
5314         * sem_ch7.adb (Inspect_Untagged_Record_Completion): New procedure
5315         implementing AI12-0101 + AI05-0123.
5316         (Analyze_Package_Specification): Call it.
5317         (Declare_Inherited_Private_Subprograms): Minor tweak.
5318         (Uninstall_Declarations): Likewise.
5319         * sem_disp.adb (Check_Direct_Call): Adjust to new implementation
5320         of Is_User_Defined_Equality.
5321         * sem_res.ads (Resolve_Membership_Equality): Declare.
5322         * sem_res.adb (Resolve): Replace direct error handling with call to
5323         Nondispatching_Call_To_Abstract_Operation
5324         (Resolve_Call): Likewise.
5325         (Resolve_Equality_Op): Likewise.  mplement AI12-0413.
5326         (Resolve_Membership_Equality): New procedure.
5327         (Resolve_Membership_Op): Call Get_User_Defined_Equality.
5328         * sem_util.ads (Get_User_Defined_Eq): Rename into...
5329         (Get_User_Defined_Equality): ...this.
5330         * sem_util.adb (Get_User_Defined_Eq): Rename into...
5331         (Get_User_Defined_Equality): ...this. Call Is_User_Defined_Equality.
5332         (Is_User_Defined_Equality): Also check the profile but remove tests
5333         on Comes_From_Source and Parent.
5334         * sinfo.ads (Generic_Parent_Type): Adjust field description.
5335         * uintp.ads (Ubool): Invoke user-defined equality in predicate.
5336
5337 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5338
5339         * exp_ch3.adb (User_Defined_Eq): Replace duplicated code with a
5340         call to Get_User_Defined_Eq.
5341
5342 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5343
5344         * exp_ch3.adb (Build_Untagged_Equality): Exit early when the
5345         outcome of a loop is already known.
5346
5347 2022-05-16  Olivier Hainque  <hainque@adacore.com>
5348
5349         * Makefile.rtl: Add aarch64 to the list of CPUs for which
5350         GNATLIB_SHARED maps to gnatlib-shared-dual for vxworks7r2.
5351
5352 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5353
5354         * sem_ch4.adb (Analyze_Negation): Minor tweak.
5355         (Analyze_Unary_Op): Likewise.
5356
5357 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5358
5359         * exp_ch3.adb (Build_Assignment): Adjust to the new definition of
5360         Incomplete_View field.
5361         * sem_ch10.ads (Decorate_Type): Declare.
5362         * sem_ch10.adb (Decorate_Type): Move to library level.
5363         (Install_Limited_With_Clause): In the already analyzed case, also
5364         deal with incomplete type declarations present in the sources and
5365         simplify the replacement code.
5366         (Build_Shadow_Entity): Deal with swapped views in package body.
5367         (Restore_Chain_For_Shadow): Deal with incomplete type declarations
5368         present in the sources.
5369         * sem_ch3.adb (Analyze_Full_Type_Declaration): Adjust to the new
5370         definition of Incomplete_View field.
5371         (Build_Incomplete_Type_Declaration): Small consistency tweak.
5372         Set the incomplete type as the Incomplete_View of the full type.
5373         If the scope is a package with a limited view, build a shadow
5374         entity for the incomplete type.
5375         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): When replacing
5376         the limited view of a CW type as designated type of an anonymous
5377         access return type, get to the CW type of the incomplete view of
5378         the tagged type, if any.
5379         (Collect_Primitive_Operations): Adjust to the new definition of
5380         Incomplete_View field.
5381         * sinfo.ads (Incomplete_View): Denote the entity itself instead
5382         of its declaration.
5383         * sem_util.adb: Remove call to Defining_Entity.
5384
5385 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5386
5387         * sem_util.adb (Type_Or_Variable_Has_Enabled_Property): Given a
5388         subtype recurse into its base type.
5389
5390 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5391
5392         * sem_util.adb (Type_Or_Variable_Has_Enabled_Property): Clarify.
5393
5394 2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
5395
5396         * sem_util.adb (Is_Enabled): Remove; use Is_Enabled_Pragma
5397         instead.
5398
5399 2022-05-16  Martin Liska  <mliska@suse.cz>
5400
5401         * locales.c (iso_639_1_to_639_3): Use ARRAY_SIZE.
5402         (language_name_to_639_3): Likewise.
5403         (country_name_to_3166): Likewise.
5404
5405 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
5406
5407         * gcc-interface/decl.cc (is_cplusplus_method): Build proper
5408         String for Get_External_Name.
5409
5410 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5411
5412         * sem_ch3.adb (Derive_Subprogram): For a function, also copy the
5413         Returns_By_Ref flag from the parent.
5414
5415 2022-05-13  Gary Dismukes  <dismukes@adacore.com>
5416
5417         * sem_ch13.adb (Check_Aspect_At_Freeze_Point): Analyze the
5418         expression of the aspect at this point, like other aspects that
5419         denote simple entities. Ensures that function
5420         Storage_Model_Object will have an entity to retrieve from the
5421         aspect expression. Also, move comment about aspects that don't
5422         require delay analysis in front of last alternative of the case
5423         statement, where it's supposed to be.
5424
5425 2022-05-13  Javier Miranda  <miranda@adacore.com>
5426
5427         * contracts.adb (Build_Unique_Name): New subprogram.
5428         (Make_Class_Precondition_Subps): Use Build_Unique_Name to
5429         generate the names of the call helpers and the name of indirect
5430         call wrappers.
5431         * freeze.adb (Needs_Wrapper): Remove dead code.
5432         (Check_Inherited_Conditions): Defer building helpers and ICW
5433         until all the dispatch table wrappers have been built and
5434         analyzed. Required to ensure uniqueness in their names because
5435         when building these wrappers for overlapped subprograms their
5436         homonym number is not definite until they have been analyzed.
5437
5438 2022-05-13  Arnaud Charlet  <charlet@adacore.com>
5439
5440         * libgnarl/s-taprop__linux.adb (Initialize): Do not use an
5441         alternate stack if no handler for SEGV is installed.
5442
5443 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
5444
5445         * doc/gnat_rm/security_hardening_features.rst (Control Flow
5446         Redundancy): Drop mentions of noreturn and tail calls.
5447         * gnat_rm.texi: Regenerate.
5448
5449 2022-05-13  Ghjuvan Lacambre  <lacambre@adacore.com>
5450
5451         * ali.adb: Introduce new 'K' line in ALI files, used to
5452         represent CUDA kernel entries.
5453         * ali.ads: Create new CUDA_Kernels table, which contains entries
5454         of type CUDA_Kernel_Record. Each CUDA_Kernel_Record corresponds
5455         to a K line in an ali file.
5456         * bindgen.adb: Introduce new Gen_CUDA_Init procedure in the
5457         binder, which generates CUDA kernel registration code.
5458         * gnat_cuda.adb: Move Get_CUDA_Kernels spec to package spec to
5459         make it available to bindgen.adb.
5460         * gnat_cuda.ads: Likewise.
5461         * lib-writ.adb: Introduce new Output_CUDA_Symbols procedure,
5462         which generates one 'K' line in the ALI file per visible CUDA
5463         kernel.
5464         * opt.ads: Introduce Enable_CUDA_Expansion option, triggered by
5465         using the -gnatd_c flag.
5466         * switch-b.adb: Likewise.
5467         * switch-c.adb: Likewise.
5468
5469 2022-05-13  Marc Poulhiès  <poulhies@adacore.com>
5470
5471         * exp_aggr.adb (Gen_Loop): Create scope for loop variable of
5472         iterated components.
5473
5474 2022-05-13  Yannick Moy  <moy@adacore.com>
5475
5476         * libgnat/a-chtgfk.adb (Checked_Equivalent_Keys, Checked_Index):
5477         Remove useless functions.
5478         (Delete_Key_Sans_Free, Find, Generic_Conditional_Insert): Adapt
5479         to removal of wrapper functions.
5480         * libgnat/a-chtgfk.ads (Checked_Equivalent_Keys, Checked_Index):
5481         Remove useless functions.
5482         * libgnat/a-chtgfo.adb (Checked_Index): Remove useless function.
5483         (Clear): Delete code commented out regarding Busy and Lock
5484         management.
5485         (Delete_Node_At_Index): Delete unused procedure.
5486         (Delete_Node_Sans_Free, Free, Generic_Read, Next): Adapt to
5487         removal of wrapper functions.
5488         * libgnat/a-chtgfo.ads (Checked_Index): Remove useless function.
5489         (Delete_Node_At_Index): Delete unused procedure.
5490
5491 2022-05-13  Yannick Moy  <moy@adacore.com>
5492
5493         * libgnat/a-cfhama.adb (Generic_Allocate): Retype to avoid
5494         aliasing.
5495         (Assign, Move): Remove address comparison.
5496         (Include): Insert constants for subtype constraints.
5497         (Insert): Rewrite to avoid aliasing and function with side-effects.
5498         * libgnat/a-cfhase.adb (Generic_Allocate): Retype to avoid
5499         aliasing.
5500         (Assign, Move): Remove address comparison.
5501         (Difference, Intersection, Is_Subset, Overlap,
5502         Symmetric_Difference, Union): Remove address comparison.  Insert
5503         constants for subtype constraints.
5504         (Insert): Rewrite to avoid aliasing and function with
5505         side-effects.
5506         * libgnat/a-chtgfk.adb (Checked_Equivalent_Keys, Checked_Index,
5507         Delete_Key_Sans_Free, Find, Generic_Replace_Element, Index):
5508         Type for hash tables not tagged anymore.
5509         (Generic_Conditional_Insert): New_Node generic formal is a
5510         procedure taking the hash table as first parameter now, to avoid
5511         aliasing in the caller.
5512         * libgnat/a-chtgfk.ads: Same.
5513         * libgnat/a-chtgfo.adb (Checked_Index, Clear,
5514         Delete_Node_At_Index, Delete_Node_Sans_Free, First, Free,
5515         Generic_Allocate, Generic_Iteration, Generic_Read,
5516         Generic_Write, Index, Next): Type for hash tables not tagged
5517         anymore.
5518         (Generic_Equal): Removed tagged. Remove address comparison.
5519         * libgnat/a-chtgfo.ads: Same.
5520         * libgnat/a-cohata.ads (Hash_Table_Type): Remove tagged.
5521
5522 2022-05-13  Yannick Moy  <moy@adacore.com>
5523
5524         * Makefile.rtl: Add new files.
5525         * libgnat/a-cfhama.adb: Use formal version of hash tables.
5526         * libgnat/a-cfhama.ads: Same.
5527         * libgnat/a-cfhase.adb: Same.
5528         * libgnat/a-cfhase.ads: Same.
5529         * libgnat/a-chtgfk.adb: New unit for formal containers, modified
5530         version of Generic_Bounded_Keys.
5531         * libgnat/a-chtgfk.ads: Same.
5532         * libgnat/a-chtgfo.adb: New unit for formal containers, modified
5533         version of Generic_Bounded_Operations.
5534         * libgnat/a-chtgfo.ads: Same.
5535         * libgnat/a-cohata.ads (Generic_Formal_Hash_Table_Types): Third
5536         version of the type for hash tables, equivalent to the bounded
5537         version without tampering checks.
5538
5539 2022-05-13  Javier Miranda  <miranda@adacore.com>
5540
5541         * freeze.adb (Check_Inherited_Conditions): Dispatch table
5542         wrappers must be placed in the list of entities of their scope
5543         at the same place of their wrapped primitive. This is required
5544         for private types since these wrappers are built when their full
5545         tagged type declaration is frozen but they may override a
5546         primitive defined in the public part of the package (and it is
5547         important to maintain the wrapper in the list of public entities
5548         of the package to ensure their correct visibility).
5549
5550 2022-05-13  Johannes Kanig  <kanig@adacore.com>
5551
5552         * osint.ads, osint.adb (Relocate_Path): If the GNSA_ROOT
5553         environment variable is set, we use that as the prefix, instead
5554         of computing the prefix from the executable location.
5555
5556 2022-05-13  Steve Baird  <baird@adacore.com>
5557
5558         * exp_ch3.ads (Build_Intialization_Call): Add new formal
5559         parameter, Init_Control_Actual, with default value. Clients
5560         outside of package Exp_Ch3 are unaffected.
5561         * exp_ch3.adb (Initialization_Control): new package; support for
5562         this 4-valued parameter.  The existing Requires_Late_Init
5563         function is moved into this new package.
5564         (Build_Initialization_Call): Add new formal parameter for
5565         subprogram body, use this new formal parameter in generating an
5566         init proc call.
5567         (Build_Record_Init_Proc): Replace Set_Tag Boolean formal
5568         parameter with 4-valued Init_Control_Formal. Wrap if-statements
5569         with appropriate conditions around tag initialization, early
5570         initialization, and late initialization statements.
5571         * exp_util.adb (Build_Task_Image_Decl): Avoid problem with
5572         duplicate declarations when an init proc for a type extension
5573         calls the parent type's init proc twice.
5574
5575 2022-05-13  Ed Schonberg  <schonberg@adacore.com>
5576
5577         * sem_ch5.adb (Analyze_Iterator_Specification): Fix Typ in the
5578         case of a class-wide derived iterator.
5579
5580 2022-05-13  Yannick Moy  <moy@adacore.com>
5581
5582         * libgnat/a-strbou.ads (Overwrite): Switch to >= operator in
5583         contracts.
5584         * libgnat/a-strsup.adb (Super_Overwrite): Switch to >= operator
5585         in code of procedure (function already uses it).
5586         * libgnat/a-strsup.ads (Super_Overwrite): Switch to >= operator
5587         in contracts.
5588
5589 2022-05-13  Etienne Servais  <servais@adacore.com>
5590
5591         * doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix code
5592         snippet.
5593         * gnat_rm.texi: Regenerate.
5594
5595 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5596
5597         * aspects.adb (Find_Value_Of_Aspect): Add guard.
5598         * sem_ch4.adb (Complete_Object_Operation): Remove obsolete code.
5599         * sem_ch5.adb (Has_Sec_Stack_Default_Iterator): Add guard.
5600
5601 2022-05-13  Javier Miranda  <miranda@adacore.com>
5602
5603         * exp_attr.adb (Expand_N_Attribute_Reference): The expansion of
5604         'Address in a call to an instantiation of the implicit
5605         subprogram To_Pointer with a class-wide interface type target
5606         requires adding an implicit type conversion to force
5607         displacement of the "this" pointer.
5608
5609 2022-05-13  Javier Miranda  <miranda@adacore.com>
5610
5611         * sem_attr.adb (Resolve_Attribute): Ensure that attribute
5612         expressions are resolved at this stage; required for preanalyzed
5613         references to discriminants since their resolution (and
5614         expansion) will take care of updating their Entity attribute to
5615         reference their discriminal.
5616
5617 2022-05-13  Justin Squirek  <squirek@adacore.com>
5618
5619         * sem_util.adb (Wrong_Type): Avoid using the first subtype of
5620         the expected type in error messages when the expected type is
5621         not internally generated.
5622
5623 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
5624
5625         * doc/gnat_rm/security_hardening_features.rst: Add subsection on
5626         Control Flow Redundancy.
5627         * gnat_rm.texi: Regenerate.
5628
5629 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5630
5631         * exp_util.adb (Insert_Actions) <N_Iteration_Scheme>: Check that
5632         it is a WHILE iteration scheme before using Condition_Actions.
5633
5634 2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
5635
5636         * atree.adb, gen_il-gen.adb, osint.adb, set_targ.adb,
5637         sinput.adb, table.adb, treepr.adb, types.ads: Replace uses of
5638         Unchecked_Conversion in the compiler itself.
5639         * libgnarl/a-reatim.adb, libgnarl/s-osinte__gnu.ads,
5640         libgnarl/s-osinte__kfreebsd-gnu.ads, libgnat/a-coboho.adb,
5641         libgnat/a-stuten.ads, libgnat/s-putima.adb: Likewise in the
5642         runtime.
5643         * doc/gnat_ugn/gnat_and_program_execution.rst: Likewise in
5644         documentation.
5645         * gnat_ugn.texi: Regenerate.
5646
5647 2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
5648
5649         * butil.adb, sem.adb, sinput.adb, types.ads, xref_lib.adb:
5650         Replace uses of Unchecked_Deallocation with
5651         Ada.Unchecked_Deallocation.
5652         * doc/gnat_ugn/gnat_and_program_execution.rst: Likewise for the
5653         documentation; fix casing of GNAT.IO.
5654         * gnat_ugn.texi: Regenerate.
5655
5656 2022-05-13  Marc Poulhiès  <poulhies@adacore.com>
5657
5658         * sem_aggr.adb (Resolve_Array_Aggregate): Fix ARM reference.
5659         Remove useless loop.
5660
5661 2022-05-13  Etienne Servais  <servais@adacore.com>
5662
5663         * sem_ch3.adb (Analyze_Subtype_Declaration): Fix typo in
5664         comment.
5665
5666 2022-05-13  Justin Squirek  <squirek@adacore.com>
5667
5668         * sem_ch6.adb (Check_Return_Construct_Accessibility): Modify
5669         generation of run-time accessibility checks to account for cases
5670         where Extra_Accessibility_Of_Result should be used versus the
5671         level of the enclosing subprogram. Use original node to avoid
5672         checking against expanded code. Disable check generation for
5673         tagged type case.
5674         (Is_Formal_Of_Current_Function): Added to encompass a predicate
5675         used within Check_Return_Construct_Accessibility to test if an
5676         associated expression is related to a relevant formal.
5677         * sem_util.adb, sem_util.ads (Enclosing_Subprogram): Modified to
5678         accept Node_Or_Entity_Id.
5679         (Innermost_Master_Scope_Depth): Calculate level based on the
5680         subprogram of a return statement instead of the one returned by
5681         Current_Subprogram.
5682         (Needs_Result_Accessibility_Level): Remove
5683         Disable_Coextension_Cases constant, and disable the tagged type
5684         case for performance reasons.
5685
5686 2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
5687
5688         * sem_res.adb (Flag_Effectively_Volatile_Objects): Ignore
5689         component and discriminant identifiers.
5690
5691 2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
5692
5693         * sem_res.adb (Flag_Effectively_Volatile_Objects): Remove
5694         redundant guard.
5695
5696 2022-05-13  Justin Squirek  <squirek@adacore.com>
5697
5698         * sem_ch8.adb (Determine_Package_Scope): Created to centralize
5699         the calculation of which package a given use clause belongs to.
5700         (Most_Descendant_Use_Clause): Modified to call
5701         Determine_Package_Scope.
5702         * sem_util.adb, sem_util.ads (Enclosing_Package): Modified to
5703         handle both entity and node ids.
5704
5705 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5706
5707         * gnat1drv.adb (Gnat1drv): Skip postponed checks when there are
5708         errors.
5709
5710 2022-05-12  Arnaud Charlet  <charlet@adacore.com>
5711
5712         * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix URL.
5713         * gnat_ugn.texi: Regenerate.
5714
5715 2022-05-12  Bob Duff  <duff@adacore.com>
5716
5717         * namet.ads, namet.adb (Write_Name_For_Debug): Add Quote
5718         parameter to allow conditional addition of quotes. Note that
5719         some calls to Write_Name_For_Debug, for example for file names,
5720         shouldn't have quotes, as in some_package.adb:123:45.
5721         * treepr.adb (Print_Name): Add double quotes around the name
5722         using the above Quote parameters.
5723
5724 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5725
5726         * sem_res.adb (Resolve_Actuals): Simplify with N_Op_Compare.
5727         * sem_util.adb (Replace_Null_Operand,
5728         Null_To_Null_Address_Convert_OK): Likewise.
5729
5730 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5731
5732         * sem_util.ads (Is_Selector_Name): Remove spec.
5733         * sem_util.adb (Is_Selector_Name): Remove body.
5734
5735 2022-05-12  Arnaud Charlet  <charlet@adacore.com>
5736
5737         * sem_warn.adb (Has_Junk_Name): Add more dummy names.
5738
5739 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5740
5741         * lib-xref.adb (Generate_Reference): Fix comment and implement
5742         it precisely.
5743
5744 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5745
5746         * atree.adb, atree.ads: Move WITH clause from spec to body; to
5747         prevent new warnings stopping the bootstrap.
5748         * fmap.adb, fname-sf.adb, libgnat/a-direct.adb,
5749         libgnat/s-bignum.adb: Remove unnecessary WITH clauses; to
5750         prevent new warnings stopping the bootstrap.
5751         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Only set
5752         Is_Instantiated flag when the instance is in the extended main
5753         source unit.
5754
5755 2022-05-12  Yannick Moy  <moy@adacore.com>
5756
5757         * libgnat/s-valuei.ads: Remove pragma Warnings Off.
5758         * libgnat/s-valueu.ads: Same.
5759         * libgnat/s-valuti.ads: Same.
5760
5761 2022-05-12  Yannick Moy  <moy@adacore.com>
5762
5763         * sem_util.adb (Check_Result_And_Post_State): Exempt trivial
5764         post.
5765
5766 2022-05-12  Arnaud Charlet  <charlet@adacore.com>
5767
5768         * ali.adb, ali.ads, bcheck.adb, exp_ch11.adb, fe.h,
5769         gnat1drv.adb, opt.adb, opt.ads, targparm.adb, targparm.ads,
5770         lib-writ.adb: Get rid of Frontend_Exceptions processing.
5771         * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads,
5772         libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads,
5773         libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads,
5774         libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads,
5775         libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads,
5776         libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads,
5777         libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads,
5778         libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads,
5779         libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads,
5780         libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads,
5781         libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads,
5782         libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads,
5783         libgnat/system-qnx-aarch64.ads, libgnat/system-rtems.ads,
5784         libgnat/system-solaris-sparc.ads,
5785         libgnat/system-solaris-x86.ads,
5786         libgnat/system-vxworks-arm-rtp-smp.ads,
5787         libgnat/system-vxworks-arm-rtp.ads,
5788         libgnat/system-vxworks-arm.ads,
5789         libgnat/system-vxworks-e500-kernel.ads,
5790         libgnat/system-vxworks-e500-rtp-smp.ads,
5791         libgnat/system-vxworks-e500-rtp.ads,
5792         libgnat/system-vxworks-ppc-kernel.ads,
5793         libgnat/system-vxworks-ppc-rtp-smp.ads,
5794         libgnat/system-vxworks-ppc-rtp.ads,
5795         libgnat/system-vxworks-x86-kernel.ads,
5796         libgnat/system-vxworks-x86-rtp-smp.ads,
5797         libgnat/system-vxworks-x86-rtp.ads,
5798         libgnat/system-vxworks7-aarch64-rtp-smp.ads,
5799         libgnat/system-vxworks7-aarch64.ads,
5800         libgnat/system-vxworks7-arm-rtp-smp.ads,
5801         libgnat/system-vxworks7-arm.ads,
5802         libgnat/system-vxworks7-e500-kernel.ads,
5803         libgnat/system-vxworks7-e500-rtp-smp.ads,
5804         libgnat/system-vxworks7-e500-rtp.ads,
5805         libgnat/system-vxworks7-ppc-kernel.ads,
5806         libgnat/system-vxworks7-ppc-rtp-smp.ads,
5807         libgnat/system-vxworks7-ppc-rtp.ads,
5808         libgnat/system-vxworks7-ppc64-kernel.ads,
5809         libgnat/system-vxworks7-ppc64-rtp-smp.ads,
5810         libgnat/system-vxworks7-x86-kernel.ads,
5811         libgnat/system-vxworks7-x86-rtp-smp.ads,
5812         libgnat/system-vxworks7-x86-rtp.ads,
5813         libgnat/system-vxworks7-x86_64-kernel.ads,
5814         libgnat/system-vxworks7-x86_64-rtp-smp.ads: Remove
5815         Frontend_Exceptions line.
5816         * gcc-interface/decl.cc, gcc-interface/trans.cc
5817         (gnat_to_gnu_entity, gnat_to_gnu_subprog_type, gigi,
5818         gnat_to_gnu): Remove Front_End_SJLJ processing and always assume
5819         Back_End_Exceptions.
5820
5821 2022-05-12  Bob Duff  <duff@adacore.com>
5822
5823         * namet.ads, namet.adb (Write_Name_For_Debug): New more-robust
5824         version of Write_Name.
5825         (Destroy_Global_Name_Buffer): New procedure to help detect bugs
5826         related to use of Global_Name_Buffer.  Misc cleanup and comment
5827         improvements. E.g. we don't need to document every detail of
5828         debugging printouts, especially since they can change.
5829         * uname.ads, uname.adb (Write_Unit_Name_For_Debug): New
5830         more-robust version of Write_Unit_Name.
5831         (Get_Unit_Name_String): Pass buffer in, instead of using the
5832         global variable. Misc cleanup. Remove the "special fudge", which
5833         is apparently not needed, and anyway the comment "the %s or %b
5834         has already been eliminated" seems wrong.
5835         (Write_Unit_Name): Call the new version of Get_Unit_Name_String.
5836         * errout.adb (Set_Msg_Insertion_Unit_Name): Call the new version
5837         of Get_Unit_Name_String. We pass the global variable here,
5838         because it's too much trouble to disentangle such uses in
5839         Errout.
5840         * sem_util.ads, sem_util.adb, sem_dist.adb
5841         (Get_Library_Unit_Name): New version of
5842         Get_Library_Unit_Name_String that avoids usage of the global
5843         variable.
5844         * casing.ads, casing.adb, exp_prag.adb, exp_util.adb
5845         (Set_All_Upper_Case): Remove. There is no need for a wrapper
5846         here -- code is clearer without it.
5847         * treepr.adb (Print_Name): Call Write_Name_For_Debug, which
5848         deals with No_Name (etc), rather than duplicating that here.
5849         Note that the call to Get_Name_String was superfluous.
5850         (Tree_Dump): Call Write_Unit_Name_For_Debug instead of
5851         Write_Unit_Name, which crashes if not Is_Valid_Name.
5852         * erroutc.ads: Improve comments.
5853         * erroutc.adb (Set_Msg_Name_Buffer): Call
5854         Destroy_Global_Name_Buffer to detect potential bugs where it
5855         incorrectly looks at the global variable.
5856         * sinput.adb (Write_Location): Call Write_Name_For_Debug instead
5857         of Write_Name, so it won't blow up on invalid data.
5858         * sinput.ads: Improve comments; remove some verbosity.
5859         * libgnat/s-imagef.adb: Fix typo in comment.
5860
5861 2022-05-12  Yannick Moy  <moy@adacore.com>
5862
5863         * libgnat/s-imageu.adb (Set_Image_Unsigned): Add lemma.
5864         * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertion.
5865
5866 2022-05-12  Yannick Moy  <moy@adacore.com>
5867
5868         * libgnat/s-aridou.ads: Remove use-clause, add renames and
5869         subtypes.
5870         * libgnat/s-exponn.ads: Same.
5871         * libgnat/s-expont.ads: Same.
5872         * libgnat/s-widthu.ads: Same.
5873
5874 2022-05-12  Etienne Servais  <servais@adacore.com>
5875
5876         * csets.adb (Fold_Latin_9): Fix y with diaeresis.
5877         (Fold_IBM_PC_850): Fix o with stroke.
5878
5879 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5880
5881         * sem_type.adb (Valid_Boolean_Arg): Remove redundant guard.
5882
5883 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5884
5885         * sem_type.adb (Valid_Boolean_Arg): Operands of Raise_Type are
5886         valid boolean arguments.
5887
5888 2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
5889
5890         * sem_ch4.adb (Possible_Type_For_Conditional_Expression): Add
5891         test for subtype conformance in the cases of
5892         access-to-subprogram types.
5893
5894 2022-05-12  Yannick Moy  <moy@adacore.com>
5895
5896         * libgnat/s-imagef.adb: Justify false message from CodePeer.
5897
5898 2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
5899
5900         * sem_ch4.adb (Analyze_Case_Expression): Rewrite.
5901         (Analyze_If_Expression): Likewise.
5902         (Possible_Type_For_Conditional_Expression): New function.
5903         * sem_type.adb (Specific_Type): Retur the base type in more
5904         cases.
5905
5906 2022-05-12  Yannick Moy  <moy@adacore.com>
5907
5908         * libgnat/s-imagef.adb: Adapt to new signature of Image_I, by
5909         providing ghost imported subprograms. For now, no contract is
5910         used on these subprograms, as System.Image_F is not proved.
5911         * libgnat/s-imagef.ads: Add modular type Uns as formal
5912         parameter, to use in defining Int_Params for instantiating
5913         Image_I.
5914         * libgnat/s-imagei.adb: Add contracts and ghost code.
5915         * libgnat/s-imagei.ads: Replace Int formal parameter by package
5916         Int_Params, which bundles type Int and Uns with ghost
5917         subprograms.  Add contracts.
5918         * libgnat/s-imfi128.ads: Adapt to new formal of Image_F.
5919         * libgnat/s-imfi32.ads: Adapt to new formal of Image_F.
5920         * libgnat/s-imfi64.ads: Adapt to new formal of Image_F.
5921         * libgnat/s-imgint.ads: Adapt to new formals of Image_I.
5922         * libgnat/s-imglli.ads: Adapt to new formals of Image_I.
5923         * libgnat/s-imgllli.ads: Adapt to new formals of Image_I.
5924         * libgnat/s-valint.ads: Adapt to new formals of Value_I.
5925         * libgnat/s-vallli.ads: Adapt to new formals of Value_I.
5926         * libgnat/s-valllli.ads: Adapt to new formals of Value_I.
5927         * libgnat/s-valuei.adb (Prove_Scan_Only_Decimal_Ghost): New
5928         ghost lemma.
5929         * libgnat/s-valuei.ads: New formal parameters to prove the new
5930         lemma.
5931         * libgnat/s-valuti.ads (Int_Params): Define a generic package to
5932         be used as a trait-like formal parameter in Image_I and other
5933         generics that need to instantiate Image_I.
5934         * libgnat/s-widthu.ads (Big_10): Qualify the 10 literal.
5935
5936 2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
5937
5938         * sem_ch4.adb (Find_Arithmetic_Types): Use local variables.
5939         (Find_Boolean_Types): Rewrite modeled on Find_Arithmetic_Types.
5940
5941 2022-05-12  Alexandre Oliva  <oliva@adacore.com>
5942
5943         * doc/gnat_rm/security_hardening_features.rst (Hardened
5944         Booleans): New.
5945         * exp_util.adb (Adjust_Condition): Perform validity checking on
5946         hardbool-annotated types even with -gnatVT.
5947         * gnat_rm.texi: Regenerate.
5948         * gcc-interface/utils.cc (gnat_internal_attribute_table): Ignore
5949         hardbool.
5950
5951 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5952
5953         * exp_ch9.adb (Build_Protected_Entry): Set scope of the nested
5954         block to spec and not the body of the procedure created for a
5955         protected entry.
5956
5957 2022-05-12  Etienne Servais  <servais@adacore.com>
5958
5959         * sem_ch3.adb (Find_Type_Of_Object): Remove duplicate "i" in
5960         comment.
5961
5962 2022-05-12  Marc Poulhiès  <poulhies@adacore.com>
5963
5964         * csets.adb (Initialize): Only treat square bracket as valid
5965         identifier character for Ada versions prior to Ada 2022.
5966         * style.ads (Check_Left_Paren): Rename...
5967         (Check_Left_Paren_Square_Bracket): ...to this.
5968         * styleg.adb (Check_Left_Bracket): Rename...
5969         (Check_Left_Paren_Square_Bracket): ...to this.
5970         * styleg.ads (Check_Left_Paren): Rename...
5971         (Check_Left_Paren_Square_Bracket): ...to this.
5972         * scng.adb (Scan): Add check for spacing around left square
5973         bracket and use new name for Check_Left_Paren_Square_Bracket.
5974         * libgnat/a-szmzco.ads (Control_Ranges, Graphic_Ranges)
5975         (Letter_Ranges, Decimal_Digit_Ranges, ISO_646_Ranges)
5976         (Character_Ranges): Fix style (remove extra space).
5977         * libgnat/a-swmwco.ads (Control_Ranges, Graphic_Ranges)
5978         (Letter_Ranges, Decimal_Digit_Ranges, ISO_646_Ranges)
5979         (Character_Ranges): Likewise.
5980         * opt.adb (Set_Config_Switches): Remove [ from Identifier_Char
5981         set.
5982
5983 2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
5984
5985         * sem_type.adb (Specific_Type): Add swapped cases for interfaces.
5986
5987 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5988
5989         * doc/gnat_rm/implementation_defined_pragmas.rst:
5990         (Export_Object, Import_Object, Short_Descriptors): Fix pragma
5991         syntax specification.
5992         * gnat_rm.texi: Regenerate.
5993
5994 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
5995
5996         * ali.adb (Hash): Reuse GNAT.String_Hash.Hash and don't pollute
5997         the Name_Id table.
5998
5999 2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
6000
6001         * doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
6002         Pragmas): Add Aggregate_Individually_Assign; otherwise the list
6003         is complete except for some obsoleted pragmas, which most likely
6004         are intentionally omitted.
6005         * gnat_ugn.texi: Regenerate.
6006
6007 2022-05-11  Yannick Moy  <moy@adacore.com>
6008
6009         * libgnat/s-imaged.ads: Remove Pure.
6010         * libgnat/s-imagef.ads: Remove Pure.
6011         * libgnat/s-imager.ads: Remove Pure.
6012         * libgnat/s-imageu.adb: Add ghost code.
6013         * libgnat/s-imageu.ads: Add contracts.
6014         * libgnat/s-imde128.ads: Remove Pure.
6015         * libgnat/s-imde32.ads: Remove Pure.
6016         * libgnat/s-imde64.ads: Remove Pure.
6017         * libgnat/s-imfi128.ads: Remove Pure.
6018         * libgnat/s-imfi32.ads: Remove Pure.
6019         * libgnat/s-imfi64.ads: Remove Pure.
6020         * libgnat/s-imgflt.ads: Remove Pure.
6021         * libgnat/s-imglfl.ads: Remove Pure.
6022         * libgnat/s-imgllf.ads: Remove Pure.
6023         * libgnat/s-imglllu.ads: Instantiate with ghost subprograms.
6024         * libgnat/s-imgllu.ads: Instantiate with ghost subprograms.
6025         * libgnat/s-imgrea.ads: Remove Pure.
6026         * libgnat/s-imguns.ads: Instantiate with ghost subprograms.
6027         * libgnat/s-imguti.ads: Remove Pure.
6028         * libgnat/s-valueu.adb (Prove_Iter_Scan_Based_Number_Ghost,
6029         Prove_Scan_Only_Decimal_Ghost): New lemmas.
6030         * libgnat/s-valueu.ads (Uns_Option): Do not make type ghost to
6031         be able to use it as formal in instantiations.
6032         (Only_Decimal_Ghost): New ghost query.
6033         (Prove_Iter_Scan_Based_Number_Ghost,
6034         Prove_Scan_Only_Decimal_Ghost): New lemmas.
6035         * libgnat/s-widlllu.ads: Adapt to changes in Width_U.
6036         * libgnat/s-widllu.ads: Adapt to changes in Width_U.
6037         * libgnat/s-widthu.adb: Change generic function in generic
6038         package in order to complete the postcondition. Tighten the
6039         upper bound on the result by 1.
6040         * libgnat/s-widthu.ads: Same.
6041         * libgnat/s-widuns.ads: Adapt to changes in Width_U.
6042         * gcc-interface/Make-lang.in: Add dependencies on a-nubinu,
6043         a-numeri.ads and a-widuns.ads.
6044
6045 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6046
6047         * snames.ads-tmpl (Detect_Blocking): Move after
6048         Default_Storage_Pool.
6049
6050 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6051
6052         * sem_prag.adb (Analyze_Pragma): Remove custom check for
6053         Compile_Time_Error and Compile_Time_Warning pragmas.
6054         * snames.ads-tmpl (Compile_Time_Error, Compile_Time_Warning):
6055         Move beyond Last_Configuration_Pragma_Name.
6056
6057 2022-05-11  Marc Poulhiès  <poulhies@adacore.com>
6058
6059         * libgnat/a-direct.adb (Start_Search_Internal): Use parentheses
6060         for record aggregate.
6061         * libgnat/a-stbubo.adb (Get_UTF_8): Likewise.
6062         * libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
6063         * libgnat/a-stzbou.ads (Null_Bounded_Wide_Wide_String):
6064         Likewise.
6065         * libgnat/a-swmwco.ads (Lower_Case_Mapping, Basic_Mapping):
6066         Likewise.
6067         * libgnat/a-szmzco.ads (Lower_Case_Mapping, Basic_Mapping):
6068         Likewise.
6069         * libgnat/s-statxd.adb (Fields): Likewise.
6070         * libgnat/s-stausa.adb (Initialize): Likewise.
6071         * sem_aggr.adb (Resolve_Record_Aggregate): Reject aggregates
6072         using brackets.
6073
6074 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6075
6076         * doc/gnat_rm/implementation_defined_pragmas.rst,
6077         doc/gnat_rm/implementation_of_specific_ada_features.rst,
6078         doc/gnat_rm/representation_clauses_and_pragmas.rst,
6079         doc/gnat_rm/the_gnat_library.rst,
6080         doc/gnat_rm/the_implementation_of_standard_i_o.rst,
6081         doc/gnat_ugn/building_executable_programs_with_gnat.rst,
6082         doc/gnat_ugn/gnat_and_program_execution.rst,
6083         doc/gnat_ugn/platform_specific_information.rst: Fix unbalanced
6084         parentheses and brackets.
6085         * sem_prag.adb (pragma Obsolescent): Likewise.
6086         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
6087
6088 2022-05-11  Marc Poulhiès  <poulhies@adacore.com>
6089
6090         * libgnat/s-rident.ads (Restriction_Id): Add
6091         No_Local_Tagged_Types, update comment for adding new GNAT
6092         specific restriction.
6093         * restrict.ads (Implementation_Restriction): Add
6094         No_Local_Tagged_Types.
6095         * sem_ch3.adb (Analyze_Full_Type_Declaration): Add check for
6096         tagged type at library level.
6097         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
6098         Add No_Local_Tagged_Types description.
6099         * gnat_rm.texi: Regenerate.
6100
6101 2022-05-11  Eric Botcazou  <ebotcazou@adacore.com>
6102
6103         * sem_ch4.adb (Analyze_User_Defined_Binary_Op): Use the base type
6104         in the interpretation of the operator.
6105
6106 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6107
6108         * sem_case.adb (Free_Value_Sets): Fix style in body header box.
6109         * sem_ch12.adb (Build_Subprogram_Wrappers): Likewise.
6110         * sem_util.adb (Statically_Denotes_Entity): Likewise.
6111
6112 2022-05-11  Etienne Servais  <servais@adacore.com>
6113
6114         * sem_ch3.adb (Constrain_Access): Call Desig_Subtype in each if
6115         branch to avoid calling it twice.
6116
6117 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6118
6119         * sem_warn.adb (Find_Var): Detect all operators; replace
6120         "condition" to "expression" in comments, because when this
6121         routine is called recursively it no longer examines the
6122         condition.
6123         (Is_Suspicious_Function_Name): Reduce scope of a local variable
6124         to avoid shadowing with a parameter of a nested
6125         Substring_Present function.
6126
6127 2022-05-11  Yannick Moy  <moy@adacore.com>
6128
6129         * libgnat/s-aridou.adb (Double_Divide, Scaled_Divide): Add
6130         intermediate assertions.
6131
6132 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6133
6134         * libgnat/s-rident.ads (Implementation_Restriction): Remove
6135         No_Dynamic_Attachment, No_Implementation_Attributes,
6136         No_Implementation_Pragmas, No_Local_Protected_Objects,
6137         No_Protected_Type_Allocators, No_Relative_Delay,
6138         No_Requeue_Statements, No_Select_Statements,
6139         No_Task_Termination, Pure_Barriers and Simple_Barriers; add
6140         No_Dynamic_Sized_Objects,
6141         No_Implicit_Protected_Object_Allocations,
6142         No_Implicit_Task_Allocations, No_Task_At_Interrupt_Priority and
6143         Static_Dispatch_Tables; sort alphabetically.
6144         * restrict.ads (Restriction_Id): Change Pure_Barriers and
6145         No_Task_Termination from GNAT to Ada restrictions.
6146
6147 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6148
6149         * exp_atag.adb, lib-util.ads, libgnat/g-decstr.adb,
6150         libgnat/g-exptty.adb, libgnat/g-socpol.adb,
6151         libgnat/s-strhas.adb: Fix headers.
6152
6153 2022-05-11  Joao Azevedo  <azevedo@adacore.com>
6154
6155         * doc/gnat_ugn/platform_specific_information.rst: Add
6156         glibc-locale-base-32bit as a dependency in SUSE distributions.
6157         * gnat_ugn.texi: Regenerate.
6158
6159 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6160
6161         * doc/gnat_ugn/gnat_and_program_execution.rst,
6162         doc/gnat_ugn/gnat_utility_programs.rst,
6163         doc/gnat_ugn/inline_assembler.rst: Fix typos and formatting
6164         glitches.
6165         * gnat_ugn.texi: Regenerate.
6166
6167 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6168
6169         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Change
6170         blocks from plain code to Ada.
6171
6172 2022-05-11  Gary Dismukes  <dismukes@adacore.com>
6173
6174         * exp_ch5.adb (Expand_Assign_With_Target_Names): Bypass the temp
6175         object approach in the case where the type of the LHS is
6176         controlled or has controlled subcomponents (Needs_Finalization
6177         is True), and use the procedure approach instead.
6178
6179 2022-05-11  Bob Duff  <duff@adacore.com>
6180
6181         * sem_ch3.adb (Get_Discr_Value): Copy the result. Otherwise, the
6182         "tree" can be malformed (a DAG, not a tree) because
6183         Get_Discr_Value could be returning some subtree already attached
6184         to the tree.
6185
6186 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6187
6188         * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
6189         proper label entities.
6190
6191 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6192
6193         * doc/gnat_rm/implementation_defined_characteristics.rst: Add
6194         tabularcolums directive, as explained in documentation of Sphinx
6195         and tabular LaTeX package.
6196
6197 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6198
6199         * doc/gnat_rm/implementation_defined_aspects.rst,
6200         doc/gnat_rm/implementation_defined_pragmas.rst: Remove extra
6201         whitespace.
6202         * gnat_rm.texi: Regenerate.
6203
6204 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6205
6206         * doc/gnat_rm/implementation_defined_characteristics.rst: Remove
6207         extra indent in continuation lines; indent both descriptions of
6208         Max_Picture_Length.
6209         * gnat_rm.texi: Regenerate.
6210
6211 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6212
6213         * doc/gnat_rm/implementation_defined_pragmas.rst (Pragma
6214         Eliminate): Fix markup.
6215         * gnat_rm.texi: Regenerate.
6216
6217 2022-05-11  Johannes Kliemann  <kliemann@adacore.com>
6218
6219         * libgnat/g-sthcso.adb: Suppress warning about unneeded use type
6220         clause.
6221
6222 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6223
6224         * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
6225         proper label entities.
6226
6227 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6228
6229         * doc/gnat_rm/implementation_defined_pragmas.rst (Pragma
6230         Ada_2022): Copy description from pragma Ada 2012 and adapt.
6231         * doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
6232         Pragmas): List pragma Ada 2022.
6233         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
6234
6235 2022-05-11  Steve Baird  <baird@adacore.com>
6236
6237         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Replace
6238         the existing check for an address specification for an object of
6239         a class-wide type with a more general check which rejects either
6240         the class-wide case or the case where the FE would (if the
6241         address specification were accepted) build a malformed
6242         tree (specifically, an object renaming declaration with a
6243         specified address). In the case where the check fails, reject
6244         the construct at compile time instead of generating an
6245         unconditional raise of Program_Error.
6246         * doc/gnat_rm/representation_clauses_and_pragmas.rst: Update
6247         documentation to reflect these changes.
6248         * gnat_rm.texi: Regenerate.
6249
6250 2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
6251
6252         * gen_il-gen-gen_entities.adb (Reachable): Move from
6253         Root_Entity_Type to E_Label.
6254
6255 2022-05-11  Alexandre Oliva  <oliva@adacore.com>
6256
6257         * exp_ch3.adb (Expand_N_Object_Declaration): Guard
6258         Set_Is_Known_Valid with Safe_To_Capture_Value.
6259
6260 2022-05-11  Bob Duff  <duff@adacore.com>
6261
6262         * repinfo.adb (List_Object_Info): Do not try to print values
6263         that have not been computed (and so are No_Uint).
6264         (Rep_Not_Constant): Reverse sense and change name to
6265         Compile_Time_Known_Rep. This makes the code at call sites a
6266         little more readable. Simplify code to a single return
6267         statement.
6268
6269 2022-05-10  Martin Liska  <mliska@suse.cz>
6270
6271         * gcc-interface/decl.cc (compare_field_bitpos): Use void *
6272         instead PTR.
6273         * gcc-interface/utils2.cc (compare_elmt_bitpos): Likewise.
6274
6275 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6276
6277         * fe.h (Is_Expression_Function): Declare.
6278         * sem_util.ads (Is_Expression_Function): Add warning line.
6279
6280 2022-05-10  Alexandre Oliva  <oliva@adacore.com>
6281
6282         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Valid>:
6283         Drop redundant range check for nonstandard booleans.
6284
6285 2022-05-10  Alexandre Oliva  <oliva@adacore.com>
6286
6287         * exp_util.adb (Adjust_Result_Type): Leave result in
6288         Standard.Boolean if it's going to be converted to another
6289         boolean type.
6290         * exp_ch4.adb (Expand_N_Type_Conversion): When optimizing,
6291         convert to nonstandard booleans with an if_expression with
6292         boolean literals.
6293
6294 2022-05-10  Alexandre Oliva  <oliva@adacore.com>
6295
6296         * exp_ch4.adb (Expand_N_If_Expression): Call Adjust_Condition to
6297         handle non-standard booleans.
6298
6299 2022-05-10  Justin Squirek  <squirek@adacore.com>
6300
6301         * sem_ch8.adb (Use_One_Type): Remove code in charge of setting
6302         Current_Use_Clause when Id is known to be redundant, and modify
6303         the printing of errors associated with redundant use type
6304         clauses so that line number gets included in more cases.
6305
6306 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6307
6308         * sem_warn.adb (Check_Unset_Reference): Use variant of
6309         Earlier_In_Extended_Unit that calls Sloc internally.
6310
6311 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6312
6313         * par-ch10.adb, scng.adb, sem_res.adb, sinfo-utils.adb,
6314         treepr.adb: Simplify calculations with Source_Ptr and Loc
6315         values.
6316
6317 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6318
6319         * sem_res.adb (Resolve_Expression_With_Actions): Fix style in
6320         nested routines.
6321
6322 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6323
6324         * atree.adb, exp_ch6.adb, exp_ch9.adb, ghost.adb, sem_ch3.adb,
6325         sem_ch4.adb, sem_res.adb, sem_util.adb: Use
6326         Is_Rewrite_Substitution where possible.
6327
6328 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6329
6330         * exp_ch11.adb, exp_ch5.adb, exp_prag.adb, gnat_cuda.adb,
6331         sem_ch12.adb, sem_ch3.adb, sem_ch6.adb, sem_util.adb,
6332         treepr.adb: Replace /= and = operators with No and Present,
6333         respectively.
6334
6335 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6336
6337         * sem_warn.adb (Within_Postcondition): Guard against search
6338         going too far.
6339
6340 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6341
6342         * sem_warn.adb (Check_Unset_Reference): The early test was only
6343         saving time of calls to Original_Node, Comes_From_Source and
6344         Nkind, which are all quick and cheap.
6345
6346 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6347
6348         * sem_ch5.adb (Check_Unreachable_Code): Remove inner declare
6349         block; refill code and comments.
6350
6351 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6352
6353         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace
6354         First_Entity/Next_Entity with First_Formal/Next_Formal; rename
6355         E1/E2 to F1/F2.
6356
6357 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6358
6359         * sem_res.adb (Resolve_Declare_Expression): Check expression for
6360         references to unset objects.
6361         (Resolve_Qualified_Expression): Likewise.
6362         * sem_warn.adb (Check_Unset_Reference): Remove handling of
6363         declare and qualified expressions; clarify comment for type
6364         conversions.
6365
6366 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6367
6368         * sem_res.adb (Resolve_Case_Expression): Check alternative
6369         expressions for references to unset objects.
6370         (Resolve_If_Expression): Check condition, then and else
6371         expressions for references to unset objects.
6372
6373 2022-05-10  Kévin Le Gouguec  <legouguec@adacore.com>
6374
6375         * doc/gnat_rm/implementation_defined_attributes.rst,
6376         doc/gnat_ugn/the_gnat_compilation_model.rst: Fix typos.
6377         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
6378
6379 2022-05-10  Etienne Servais  <servais@adacore.com>
6380
6381         * sem_ch13.adb (Is_Predicate_Static): Fix typo in comment.
6382
6383 2022-05-10  Yannick Moy  <moy@adacore.com>
6384
6385         * libgnat/s-valuei.adb: Fix indentation.
6386         * libgnat/s-valuei.ads: Same.
6387
6388 2022-05-10  Claire Dross  <dross@adacore.com>
6389
6390         * snames.ads-tmpl: Add "Structural" as a name.
6391         * sem_prag.adb: (Analyze_Pragma): Accept modifier "Structural"
6392         in pragmas Loop_Variant and Subprogram_Variant. Check that items
6393         associated to Structural occur alone in the pragma associations.
6394         (Analyze_Subprogram_Variant_In_Decl_Part): Idem.
6395         * exp_prag.adb (Expand_Pragma_Loop_Variant): Discard structural
6396         variants.
6397         (Expand_Pragma_Subprogram_Variant): Idem.
6398
6399 2022-05-10  Claire Dross  <dross@adacore.com>
6400
6401         * libgnat/s-valint.ads: Add SPARK_Mode and pragma to ignore
6402         assertions in instance and add additional ghost parameters to
6403         the instance of Value_I.
6404         * libgnat/s-vallli.ads: Idem.
6405         * libgnat/s-valllli.ads: Idem.
6406         * libgnat/s-valuei.ads, libgnat/s-valuei.adb: New generic
6407         parameters for ghost functions from System.Valueu. Add
6408         functional contracts.
6409
6410 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6411
6412         * sem_res.adb (Resolve_Eqyality_Op): Remove obsolete code.
6413         (Resolve_Op_Not): Likewise.
6414         * sem_type.adb (Disambiguate): Add missing test for RM 8.4(10).
6415         * libgnat/s-dwalin.adb (Enable_Cache): Fix ambiguity.
6416         (Symbolic_Address): Likewise.
6417
6418 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
6419
6420         * sem_eval.adb (Eval_Integer_Literal): Fix oversight in entry test.
6421
6422 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6423
6424         * exp_aggr.adb (Expand_N_Aggregate): Replace UI_To_Int with
6425         UI_To_CC; replace magic literals with high-level routines that
6426         recognise wide and wide wide characters; reorder if-then-elsif
6427         condition, because we don't have a routine to detect wide wide
6428         characters.
6429
6430 2022-05-10  Etienne Servais  <servais@adacore.com>
6431
6432         * scng.adb (Nlit): Error on big UI_Scale.
6433
6434 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6435
6436         * exp_util.adb (Build_Task_Array_Image): Declare expanded
6437         objects as constants.
6438         (Build_Task_Image_Prefix): Likewise.
6439         (Build_Task_Record_Image): Likewise.
6440
6441 2022-05-10  Marc Poulhiès  <poulhies@adacore.com>
6442
6443         * checks.adb (Determine_Range): Fix range refining.
6444
6445 2022-05-10  Steve Baird  <baird@adacore.com>
6446
6447         * sem_util.adb (Get_Actual_Subtype): If a new subtype is built,
6448         do not freeze it if Expander_Active is False. The idea here is
6449         to avoid generating an unwanted Freeze_Node for a subtype that
6450         has been conjured up solely for purposes of preanalysis.
6451
6452 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6453
6454         * exp_util.adb (Build_Task_Array_Image): Fix style in the
6455         structure of generated code; add Pref'Length as the component of
6456         the Sum initialization expression.
6457
6458 2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
6459
6460         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Use
6461         Get_Char_Code.
6462         * exp_util.adb (Build_Task_Array_Image): Simplify conversion to
6463         Char_Code.
6464         (Build_Task_Image_Prefix): Likewise.
6465         (Build_Task_Record_Image): Likewise.
6466         * cstand.adb (Create_Standard): Use UI_From_Int instead of
6467         UI_From_CC.
6468         * exp_ch11.adb (Expand_N_Exception_Declaration): Likewise.
6469         * sem_res.adb (Patch_Up_Value): Likewise.
6470         * stringt.adb (Write_String_Table_Entry): Use Get_Char_Code.
6471
6472 2022-05-09  Yannick Moy  <moy@adacore.com>
6473
6474         * sem_util.adb (Bad_Predicated_Subtype_Use): Add continuation
6475         message.
6476
6477 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6478
6479         * uintp.adb (UI_To_CC): Guard against illegal inputs; reuse
6480         UI_To_Int.
6481
6482 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6483
6484         * par-prag.adb (Prag): Simplify conversion of character codes.
6485         * sem_case.adb (Choice_Image): Likewise.
6486         (Lit_Of): Likewise.
6487
6488 2022-05-09  Justin Squirek  <squirek@adacore.com>
6489
6490         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Tag>:
6491         Deal specifically wth class-wide equivalent types without a
6492         parent.
6493         * exp_util.adb (Build_Allocate_Deallocate_Proc): Extract
6494         allocator node for calculation of alignment actual and modify
6495         alignment for allocators of class-wide types with associated
6496         expressions.
6497         (Make_CW_Equivalent_Type): Handle interface types differently
6498         when generating the equivalent record.
6499         * sem_aux.adb (First_Tag_Component): Accept class-wide
6500         equivalent types too.
6501
6502 2022-05-09  Etienne Servais  <servais@adacore.com>
6503
6504         * repinfo.adb (List_Name): Rework termination condition.
6505
6506 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6507
6508         * bindgen.adb, errout.adb, exp_unst.adb, gnatchop.adb,
6509         libgnat/a-ngcefu.adb, libgnat/a-strunb.adb,
6510         libgnat/a-stwiun.adb, libgnat/a-stzunb.adb,
6511         libgnat/a-wtedit.adb, libgnat/g-debpoo.adb, osint.adb,
6512         sigtramp-vxworks.c, uintp.adb: Remove extra whitespace around +,
6513         -, *, / and **.
6514
6515 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6516
6517         * libgnat/s-expmod.adb: Remove CodePeer annotation for pragma
6518         Loop_Variant.
6519
6520 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6521
6522         * sem_util.ads (In_Statement_Condition_With_Actions): Renamed
6523         from In_While_Loop_Condition; move to fit the alphabetic order.
6524         * sem_util.adb (In_Statement_Condition_With_Actions): Detect
6525         Elsif condition; stop search on other statements; prevent search
6526         from going too far; move to fit the alphabetic order.
6527         * sem_res.adb (Resolve_Call): Adapt caller.
6528
6529 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6530
6531         * inline.adb (Build_Body_To_Inline): Remove redundant guards.
6532         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
6533
6534 2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>
6535
6536         * sem_util.adb (Is_OK_Variable_For_Out_Formal): Remove test on
6537         Comes_From_Source in the condition dealing with the expression
6538         of an N_Unchecked_Type_Conversion node.
6539
6540 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6541
6542         * exp_aggr.adb, exp_ch3.adb, exp_util.adb, freeze.adb,
6543         gnatfind.adb, gnatlink.adb, gnatxref.adb, gprep.adb,
6544         libgnat/a-cfhama.adb, libgnat/g-alleve.adb, sem_ch12.adb,
6545         sem_ch13.adb, xr_tabls.adb: Fix style labels.
6546
6547 2022-05-09  Justin Squirek  <squirek@adacore.com>
6548
6549         * err_vars.ads: Add new error message names and nodes.
6550         * erroutc.adb (Set_Msg_Insertion_Name,
6551         Set_Msg_Insertion_Name_Literal): Likewise.
6552         * errout.adb (Set_Msg_Insertion_Node): Likewise.
6553         * errout.ads: Likewise.
6554         * exp_disp.adb (Check_Premature_Freezing): Modify setting of
6555         Error_Msg_Node_2 to occur directly before Error_Msg call where
6556         applicable.
6557         * sem_ch8.adb (Error_Missing_With_Of_Known_Unit): Added to
6558         handle the printing of full package names of known units.
6559         (Undefined, Find_Expanded_Name): Replace error printing with
6560         call to Error_Missing_With_Of_Known_Unit.
6561
6562 2022-05-09  Yannick Moy  <moy@adacore.com>
6563
6564         * exp_ch4.adb (Expand_Allocator_Expression): Set Error_Msg_Warn
6565         correctly.
6566
6567 2022-05-09  Steve Baird  <baird@adacore.com>
6568
6569         * sem_ch13.adb (Replace_Type_Ref): In the case of an identifier
6570         that names a component of the type, simplify the test to decide
6571         whether to build a prefix for it (the prefix denotes the current
6572         instance of the enclosing type): if the identifier doesn't
6573         already have a prefix, then give it one. This isn't quite right
6574         in the corner case of a quantified expression or some other such
6575         expression that declares an object with the same name as a
6576         component, but it is still an improvement.
6577
6578 2022-05-09  Ed Schonberg  <schonberg@adacore.com>
6579
6580         * exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
6581         package if array type and element type come from the same
6582         package, and the original array type is private.
6583
6584 2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>
6585
6586         * exp_ch4.adb (Handle_Changed_Representation): Simplify and fix
6587         thinko in the loop building the constraints for discriminants.
6588         * exp_ch5.adb (Make_Component_List_Assign): Try also to extract
6589         discriminant values for a derived type.
6590
6591 2022-05-09  Ed Schonberg  <schonberg@adacore.com>
6592
6593         * sem_res.adb (Resolve_Declare_Expression): Traverse the
6594         expression to replace references to local variables that occur
6595         within declarations of the declare_expression; fix typos in
6596         comments.
6597
6598 2022-05-09  Ed Schonberg  <schonberg@adacore.com>
6599
6600         * sem_ch4.adb (Operator_Check): Fix condition.
6601
6602 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6603
6604         * doc/gnat_rm/implementation_defined_pragmas.rst
6605         (Abstract_State, Async_Readers, Async_Writers,
6606         Constant_After_Elaboration, Effective_Reads, Effective_Writes,
6607         Extensions_Visible, Ghost, No_Caching, Volatile_Function): Only
6608         static Boolean expressions are allowed.
6609         * gnat_rm.texi: Regenerate.
6610
6611 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6612
6613         * exp_prag.adb (Expand_Pragma_Loop_Variant,
6614         Expand_Pragma_Subprogram_Variant): Adapt call via
6615         Process_Variant to Make_Variant_Comparison.
6616         * exp_util.adb (Make_Variant_Comparison): Compare Big_Integer
6617         expressions with a function call and not an operator.
6618         * exp_util.ads (Make_Variant_Comparison): Add type parameter,
6619         which is needed because the Curr_Val and Old_Val expressions
6620         might not be yet decorated.
6621         * rtsfind.ads: (RTU_Id): Add support for Big_Integers and
6622         Big_Integers_Ghost.
6623         (RE_Id): Add support for Big_Integer and its ghost variant.
6624         (RE_Unit_Table): Add mapping from Big_Integer to Big_Integers;
6625         same for the ghost variants.
6626         * rtsfind.adb (Get_Unit_Name): Add support for Big_Numbers.
6627         * sem_prag.adb (Analyze_Pragma): Allow Big_Integer in pragma
6628         Loop_Variant.
6629         (Analyze_Variant): Allow Big_Integer in pragma
6630         Subprogram_Variant.
6631
6632 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6633
6634         * sem_ch3.ads, sem_ch3.adb (Preanalyze_Assert_Expression): Add a
6635         variant that doesn't force preanalysis to yield a specific type.
6636
6637 2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>
6638
6639         * einfo.ads (Access Kinds): Reorder and beef up.
6640         * sem.adb (Analyze): Call Analyze_Comparison_Equality_Op for all
6641         comparison and equality operators.
6642         * sem_ch4.ads (Analyze_Comparison_Op): Delete.
6643         (Analyze_Equality_Op): Likewise.
6644         (Analyze_Comparison_Equality_Op): Declare.
6645         (Ambiguous_Operands): Likewise.
6646         * sem_ch4.adb (Ambiguous_Operands): Remove declaration.
6647         (Defined_In_Scope): Delete.
6648         (Find_Comparison_Types): Merge into...
6649         (Find_Equality_Types): Merge into...
6650         (Find_Comparison_Equality_Types): ...this.  Make fully symmetrical.
6651         (Analyze_Arithmetic_Op): Minor consistency tweaks.
6652         (Analyze_Comparison_Op): Merge into...
6653         (Analyze_Equality_Op): Merge into...
6654         (Analyze_Comparison_Equality_Op): ...this.  Make fully symmetrical.
6655         (Analyze_Logical_Op): Minor consistency tweaks.
6656         (Analyze_Membership_Op): Make fully symmetrical.
6657         (Analyze_One_Call): Minor comment tweak.
6658         (Analyze_Operator_Call): Call Find_Comparison_Equality_Types.
6659         (Analyze_User_Defined_Binary_Op): Make fully symmetrical.
6660         (Check_Arithmetic_Pair.Specific_Type): Delete.
6661         (Diagnose_Call): Add special handling for "+" operator.
6662         (Operator_Check): Call Analyze_Comparison_Equality_Op.
6663         * sem_ch8.adb (Has_Implicit_Operator): Add Is_Type guard for boolean
6664         operators, use Valid_Comparison_Arg and Valid_Equality_Arg for resp.
6665         comparison and equality operators.
6666         * sem_res.adb (Check_For_Visible_Operator): Call Is_Visible_Operator
6667         (Make_Call_Into_Operator): Use Preserve_Comes_From_Source.
6668         (Resolve_Actuals): Deal specifically with Any_Type actuals for user-
6669         defined comparison and equality operators.
6670         (Resolve_Call): Minor tweaks.
6671         (Resolve_Comparison_Op): Tidy up and give error for ambiguity.
6672         (Resolve_Equality_Op): Likewise, as well as other errors.
6673         (Rewrite_Renamed_Operator): Simplify.
6674         * sem_type.ads (Is_Invisible_Operator): Delete.
6675         (Is_Visible_Operator): Declare.
6676         (Has_Compatible_Type): Remove For_Comparison parameter.
6677         (Specific_Type): Declare.
6678         (Valid_Equality_Arg): Likewise.
6679         * sem_type.adb (Specific_Type): Remove declaration.
6680         (Add_One_Interp): Call Is_Visible_Operator for the visibility test.
6681         (Remove_Conversions): Rename into...
6682         (Remove_Conversions_And_Abstract_Operations): ...this.  Do not apply
6683         numeric-type treatment to Any_Type.  Expand the special handling for
6684         abstract interpretations to second operand.  Remove obsolete code.
6685         (Disambiguate): Adjust to above renaming.  Tweak to hidden case and
6686         call Remove_Conversions_And_Abstract_Operations for operators too.
6687         (Entity_Matches_Spec): Minor tweak.
6688         (Find_Unique_Type): Simplify and deal with user-defined literals.
6689         (Has_Compatible_Type): Remove For_Comparison parameter and adjust.
6690         Call the Is_User_Defined_Literal predicate and remove call to
6691         the Is_Invisible_Operator predicate.
6692         (Is_Invisible_Operator): Delete.
6693         (Is_Visible_Operator): New function.
6694         (Operator_Matches_Spec): Use Valid_Equality_Arg predicate.
6695         (Specific_Type): Tidy up, make fully symmetrical and deal with
6696         private views the same way as Covers.
6697         (Valid_Comparison_Arg): Return true for Any_Composite/Any_String.
6698         (Valid_Equality_Arg): New function.
6699         * sem_util.ads (Is_User_Defined_Literal): Declare.
6700         * sem_util.adb (Is_User_Defined_Literal): New function.
6701
6702 2022-05-09  Bob Duff  <duff@adacore.com>
6703
6704         * lib-xref.adb, sem_util.adb: Change wording of warning messages
6705         to use "aspect".
6706         * sem_prag.adb: Use Fix_Error to change wording of warnings.
6707         * doc/gnat_rm/implementation_defined_pragmas.rst: Minor: fix
6708         cut&paste error.
6709         * gnat_rm.texi: Regenerate.
6710
6711 2022-05-09  Doug Rupp  <rupp@adacore.com>
6712
6713         * init.c [vxworks] (CLEAR_EXCEPTION_COUNT): New macro.
6714         (__gnat_clear_exception_count): Remove.
6715         (__gnat_map_signal): Call CLEAR_EXCEPTION_COUNT().
6716
6717 2022-05-09  Fedor Rybin  <frybin@adacore.com>
6718
6719         * doc/gnat_ugn/gnat_utility_programs.rst: Remove gnattest
6720         section.
6721
6722 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6723
6724         * sem_attr.adb (Analyze_Attribute): Remove calls to Analyze for
6725         attributes Identity, Priority, Ref, Restriction_Set, To_Address
6726         and for tasking-related attributes Callable, Terminated and
6727         Storage_Size.
6728
6729 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6730
6731         * sem_attr.adb (Analyze_Attribute): Don't call Set_Etype for
6732         Bit_Order attribute.
6733
6734 2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
6735
6736         * exp_ch5.adb (Update_Choice_Index): Simplify condition.
6737         * sem_ch8.adb (Attribute_Renaming): Likewise.
6738
6739 2022-05-09  Dmitriy Anisimkov  <anisimko@adacore.com>
6740
6741         * adaint.c (__gnat_kill): Remove close parameter.
6742         (__gnat_killprocesstree): Do not provide close parameter on call
6743         to __gnat_kill.
6744         * libgnat/g-expect.adb (Kill): Remove Close parameter.
6745         (Close): Do not provide Close parameter on call to Kill.
6746         (Send_Signal): Do not provide Close parameter on call to Kill.
6747         * libgnat/s-os_lib.adb (Kill): Do not provide close parameter on
6748         call to __gnat_kill.
6749
6750 2022-05-09  Dmitriy Anisimkov  <anisimko@adacore.com>
6751
6752         * libgnat/g-expect.adb (Close): Call Kill before Close_Input.
6753
6754 2022-04-29  Martin Liska  <mliska@suse.cz>
6755
6756         * gnatvsn.ads: Bump Library_Version to 13.
6757
6758 2022-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6759
6760         * tracebak.c: Add support for ARM RTEMS. Add support for RTEMS to PPC
6761         ELF.  Add support for RTEMS to SPARC.  Merge aarch64 support of Linux
6762         and RTEMS.
6763
6764 2022-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
6765
6766         PR ada/104027
6767         * gnat1drv.adb: Remove the goto End_Of_Program.
6768
6769 2022-03-24  Pascal Obry  <obry@adacore.com>
6770
6771         PR ada/104767
6772         * libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1.
6773         * libgnat/g-sercom__linux.adb (Close): Likewise.
6774
6775 2022-03-10  Richard Biener  <rguenther@suse.de>
6776
6777         PR ada/104861
6778         * gcc-interface/Makefile.in (target_noncanonical): Substitute.
6779         (OSCONS_CPP): Pass target_noncanonical as TARGET.
6780
6781 2022-02-13  Maciej W. Rozycki  <macro@orcam.me.uk>
6782
6783         PR ada/98724
6784         PR ada/97504
6785         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <alpha*-*-linux*>: Use
6786         wraplf version of Aux_Long_Long_Float.
6787
6788 2022-01-31  Pierre-Marie de Rodat  <derodat@adacore.com>
6789
6790         * doc/share/conf.py: Remove spurious call to ".decode()".
6791
6792 2022-01-31  Arnaud Charlet  <charlet@adacore.com>
6793
6794         PR ada/104027
6795         * gnat1drv.adb (Gnat1drv): Only call Exit_Program when not
6796         generating code, otherwise instead go to End_Of_Program.
6797
6798 2022-01-28  Eric Botcazou  <ebotcazou@adacore.com>
6799
6800         PR ada/104258
6801         * exp_ch4.adb (Narrow_Large_Operation): Also copy the entity, if
6802         any, when rewriting the operator node.
6803
6804 2022-01-19  H.J. Lu  <hjl.tools@gmail.com>
6805
6806         PR ada/103538
6807         * gcc-interface/Makefile.in (target_cpu): Set to x32 for
6808         x86_64-linux-gnux32.
6809
6810 2022-01-19  H.J. Lu  <hjl.tools@gmail.com>
6811
6812         PR ada/103538
6813         * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Add
6814         $(TRASYM_DWARF_UNIX_PAIRS),
6815         s-tsmona.adb<libgnat/s-tsmona__linux.adb,
6816         $(GNATRTL_128BIT_PAIRS).
6817         (EXTRA_GNATRTL_NONTASKING_OBJS): Add $(TRASYM_DWARF_UNIX_OBJS)
6818         and $(GNATRTL_128BIT_OBJS).
6819
6820 2022-01-18  Martin Liska  <mliska@suse.cz>
6821
6822         * adaint.c: Revert filename changes in comments.
6823         * ctrl_c.c (dummy_handler): Likewise.
6824         * gsocket.h: Likewise.
6825         * init.c (__gnat_error_handler): Likewise.
6826         * libgnarl/s-intman.ads: Likewise.
6827         * libgnarl/s-osinte__android.ads: Likewise.
6828         * libgnarl/s-osinte__darwin.ads: Likewise.
6829         * libgnarl/s-osinte__hpux.ads: Likewise.
6830         * libgnarl/s-osinte__linux.ads: Likewise.
6831         * libgnarl/s-osinte__qnx.ads: Likewise.
6832         * libgnarl/s-taskin.ads: Likewise.
6833         * rtfinal.c: Likewise.
6834
6835 2022-01-18  Martin Liska  <mliska@suse.cz>
6836
6837         * Make-generated.in: Revert renaming changes.
6838         * Makefile.rtl: Likewise.
6839         * adadecode.cc: Moved to...
6840         * adadecode.c: ...here.
6841         * affinity.cc: Moved to...
6842         * affinity.c: ...here.
6843         * argv-lynxos178-raven-cert.cc: Moved to...
6844         * argv-lynxos178-raven-cert.c: ...here.
6845         * argv.cc: Moved to...
6846         * argv.c: ...here.
6847         * aux-io.cc: Moved to...
6848         * aux-io.c: ...here.
6849         * cio.cc: Moved to...
6850         * cio.c: ...here.
6851         * cstreams.cc: Moved to...
6852         * cstreams.c: ...here.
6853         * env.cc: Moved to...
6854         * env.c: ...here.
6855         * exit.cc: Moved to...
6856         * exit.c: ...here.
6857         * expect.cc: Moved to...
6858         * expect.c: ...here.
6859         * final.cc: Moved to...
6860         * final.c: ...here.
6861         * gcc-interface/Makefile.in:
6862         * init.cc: Moved to...
6863         * init.c: ...here.
6864         * initialize.cc: Moved to...
6865         * initialize.c: ...here.
6866         * libgnarl/thread.cc: Moved to...
6867         * libgnarl/thread.c: ...here.
6868         * link.cc: Moved to...
6869         * link.c: ...here.
6870         * locales.cc: Moved to...
6871         * locales.c: ...here.
6872         * mkdir.cc: Moved to...
6873         * mkdir.c: ...here.
6874         * raise.cc: Moved to...
6875         * raise.c: ...here.
6876         * rtfinal.cc: Moved to...
6877         * rtfinal.c: ...here.
6878         * rtinit.cc: Moved to...
6879         * rtinit.c: ...here.
6880         * s-oscons-tmplt.c (CND): Revert renaming changes.
6881         * seh_init.cc: Moved to...
6882         * seh_init.c: ...here.
6883         * sigtramp-armdroid.cc: Moved to...
6884         * sigtramp-armdroid.c: ...here.
6885         * sigtramp-ios.cc: Moved to...
6886         * sigtramp-ios.c: ...here.
6887         * sigtramp-qnx.cc: Moved to...
6888         * sigtramp-qnx.c: ...here.
6889         * sigtramp-vxworks.cc: Moved to...
6890         * sigtramp-vxworks.c: ...here.
6891         * socket.cc: Moved to...
6892         * socket.c: ...here.
6893         * tracebak.cc: Moved to...
6894         * tracebak.c: ...here.
6895         * version.cc: Moved to...
6896         * version.c: ...here.
6897         * vx_stack_info.cc: Moved to...
6898         * vx_stack_info.c: ...here.
6899
6900 2022-01-17  Martin Liska  <mliska@suse.cz>
6901
6902         * Makefile.rtl: Rename .c names to .cc.
6903         * gcc-interface/Make-lang.in: Likewise.
6904         * gcc-interface/Makefile.in: Likewise.
6905
6906 2022-01-17  Martin Liska  <mliska@suse.cz>
6907
6908         * Make-generated.in: Rename .c names to .cc.
6909         * adaint.c: Likewise.
6910         * ctrl_c.c (dummy_handler): Likewise.
6911         * gcc-interface/Makefile.in: Likewise.
6912         * gcc-interface/config-lang.in: Likewise.
6913         * gcc-interface/decl.cc (concat_name): Likewise.
6914         (init_gnat_decl): Likewise.
6915         * gcc-interface/gigi.h (concat_name): Likewise.
6916         (init_gnat_utils): Likewise.
6917         (build_call_raise_range): Likewise.
6918         (gnat_mark_addressable): Likewise.
6919         (gnat_protect_expr): Likewise.
6920         (gnat_rewrite_reference): Likewise.
6921         * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Likewise.
6922         * gcc-interface/utils.cc (GTY): Likewise.
6923         (add_deferred_type_context): Likewise.
6924         (init_gnat_utils): Likewise.
6925         * gcc-interface/utils2.cc (gnat_stable_expr_p): Likewise.
6926         (gnat_protect_expr): Likewise.
6927         (gnat_stabilize_reference_1): Likewise.
6928         (gnat_rewrite_reference): Likewise.
6929         * gsocket.h: Likewise.
6930         * init.cc (__gnat_error_handler): Likewise.
6931         * libgnarl/s-intman.ads: Likewise.
6932         * libgnarl/s-osinte__android.ads: Likewise.
6933         * libgnarl/s-osinte__darwin.ads: Likewise.
6934         * libgnarl/s-osinte__hpux.ads: Likewise.
6935         * libgnarl/s-osinte__linux.ads: Likewise.
6936         * libgnarl/s-osinte__qnx.ads: Likewise.
6937         * libgnarl/s-taskin.ads: Likewise.
6938         * rtfinal.cc: Likewise.
6939         * s-oscons-tmplt.c (CND): Likewise.
6940         * set_targ.ads: Likewise.
6941
6942 2022-01-17  Martin Liska  <mliska@suse.cz>
6943
6944         * adadecode.c: Moved to...
6945         * adadecode.cc: ...here.
6946         * affinity.c: Moved to...
6947         * affinity.cc: ...here.
6948         * argv-lynxos178-raven-cert.c: Moved to...
6949         * argv-lynxos178-raven-cert.cc: ...here.
6950         * argv.c: Moved to...
6951         * argv.cc: ...here.
6952         * aux-io.c: Moved to...
6953         * aux-io.cc: ...here.
6954         * cio.c: Moved to...
6955         * cio.cc: ...here.
6956         * cstreams.c: Moved to...
6957         * cstreams.cc: ...here.
6958         * env.c: Moved to...
6959         * env.cc: ...here.
6960         * exit.c: Moved to...
6961         * exit.cc: ...here.
6962         * expect.c: Moved to...
6963         * expect.cc: ...here.
6964         * final.c: Moved to...
6965         * final.cc: ...here.
6966         * gcc-interface/cuintp.c: Moved to...
6967         * gcc-interface/cuintp.cc: ...here.
6968         * gcc-interface/decl.c: Moved to...
6969         * gcc-interface/decl.cc: ...here.
6970         * gcc-interface/misc.c: Moved to...
6971         * gcc-interface/misc.cc: ...here.
6972         * gcc-interface/targtyps.c: Moved to...
6973         * gcc-interface/targtyps.cc: ...here.
6974         * gcc-interface/trans.c: Moved to...
6975         * gcc-interface/trans.cc: ...here.
6976         * gcc-interface/utils.c: Moved to...
6977         * gcc-interface/utils.cc: ...here.
6978         * gcc-interface/utils2.c: Moved to...
6979         * gcc-interface/utils2.cc: ...here.
6980         * init.c: Moved to...
6981         * init.cc: ...here.
6982         * initialize.c: Moved to...
6983         * initialize.cc: ...here.
6984         * libgnarl/thread.c: Moved to...
6985         * libgnarl/thread.cc: ...here.
6986         * link.c: Moved to...
6987         * link.cc: ...here.
6988         * locales.c: Moved to...
6989         * locales.cc: ...here.
6990         * mkdir.c: Moved to...
6991         * mkdir.cc: ...here.
6992         * raise.c: Moved to...
6993         * raise.cc: ...here.
6994         * rtfinal.c: Moved to...
6995         * rtfinal.cc: ...here.
6996         * rtinit.c: Moved to...
6997         * rtinit.cc: ...here.
6998         * seh_init.c: Moved to...
6999         * seh_init.cc: ...here.
7000         * sigtramp-armdroid.c: Moved to...
7001         * sigtramp-armdroid.cc: ...here.
7002         * sigtramp-ios.c: Moved to...
7003         * sigtramp-ios.cc: ...here.
7004         * sigtramp-qnx.c: Moved to...
7005         * sigtramp-qnx.cc: ...here.
7006         * sigtramp-vxworks.c: Moved to...
7007         * sigtramp-vxworks.cc: ...here.
7008         * socket.c: Moved to...
7009         * socket.cc: ...here.
7010         * tracebak.c: Moved to...
7011         * tracebak.cc: ...here.
7012         * version.c: Moved to...
7013         * version.cc: ...here.
7014         * vx_stack_info.c: Moved to...
7015         * vx_stack_info.cc: ...here.
7016
7017 2022-01-14  Andrew Pinski  <apinski@marvell.com>
7018
7019         PR ada/104027
7020         * gnat1drv.adb (Gnat1drv): After Back_End.Gen_Or_Update_Object_File
7021         goto End_Of_Program.
7022
7023 2022-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7024
7025         * gcc-interface/utils2.c (build_binary_op) <EQ_EXPR>: Relax a
7026         little the assertion on designated types of pointer types.
7027
7028 2022-01-11  Justin Squirek  <squirek@adacore.com>
7029
7030         * sem_ch8.adb (Nvis_Messages): Add generic instance name to
7031         error message.
7032
7033 2022-01-11  Etienne Servais  <servais@adacore.com>
7034
7035         * par-ch6.adb (Scan_Body_Or_Expression_Function): Accept left
7036         bracket as token to open an expression function.
7037
7038 2022-01-11  Justin Squirek  <squirek@adacore.com>
7039
7040         * sem_warn.adb (Check_References): Add call to Has_Task instead
7041         of checking component type.
7042
7043 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7044
7045         * exp_util.ads (Insert_Declaration): Remove spec.
7046         * exp_util.adb (Insert_Declaration): Remove body.
7047
7048 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7049
7050         * exp_ch4.adb (Expand_N_Expression_With_Actions): Avoid
7051         redundant check.
7052         * exp_ch5.adb (Expand_N_If_Statement): Likewise.
7053         * exp_ch7.adb (Process_Declarations): Likewise.
7054         * sem_elab.adb (Freeze_Node_Location): Likewise.
7055         * exp_util.adb (Insert_Actions): Likewise.
7056         (Is_OK_PF_Pragma): Likewise.
7057         (Requires_Cleanup_Actions): Remove early exit; ordinary
7058         processing path will similarly do nothing.
7059
7060 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7061
7062         * snames.ads-tmpl: Restore Name_Rpc.
7063
7064 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7065
7066         * sem_ch4.adb (Analyze_Allocator): Move DECLARE block inside IF
7067         statement; refill code and comments.
7068
7069 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7070
7071         * sem_ch4.adb (Analyze_Allocator): Fix comment.
7072         * sem_eval.ads (Compile-Time Known Values): Likewise.
7073
7074 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7075
7076         * snames.ads-tmpl: Remove unreferenced names.
7077
7078 2022-01-11  Yannick Moy  <moy@adacore.com>
7079
7080         * libgnat/s-aridou.adb (Double_Divide): Adjust proof of lemma
7081         Prove_Signs, call lemma for commutation of Big and
7082         multiplication.
7083         (Multiply_With_Ovflo_Check): Adjust postcondition of
7084         Prove_Pos_Int.
7085         (Scaled_Divide): Explicit commutation in the proof of lemma
7086         Prove_Multiplication, add new lemma Prove_Shift_Progress for
7087         congruence property that is not proved in a larger context, add
7088         assertions at the end of the loop to state loop invariant
7089         properties.
7090
7091 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7092
7093         * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Remove spec.
7094         * sem_eval.adb (Compile_Time_Known_Value_Or_Aggr): Remove body.
7095
7096 2022-01-11  Yannick Moy  <moy@adacore.com>
7097
7098         * libgnat/a-strfix.adb (Insert, Overwrite): Add assertions.
7099
7100 2022-01-11  Arnaud Charlet  <charlet@adacore.com>
7101
7102         PR ada/79724
7103         * osint.adb (Program_Name): Fix handling of suffixes.
7104
7105 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7106
7107         * exp_ch4.adb (Size_In_Storage_Elements): Remove unnecessary
7108         DECLARE block; refill code and comments.
7109
7110 2022-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7111
7112         * sem_ch3.adb (Analyze_Subtype_Declaration): In the case of an array
7113         copy Packed_Array_Impl_Type manually here.
7114         (Copy_Array_Subtype_Attributes): Do not copy it here.
7115
7116 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7117
7118         * exp_ch7.adb (Set_Block_Elab_Proc, Unnest_Block, Unnest_Loop,
7119         Unnest_Statement_List): Simplify with Make_Temporary.
7120         * exp_put_image.adb (Build_Image_Call): Likewise.
7121         * inline.adb (Generate_Subprogram_Body): Likewise.
7122         * sem_ch13.adb (Build_Predicate_Functions): Likewise.
7123         * sem_util.adb (New_Copy_Separate_List): Likewise.
7124
7125 2022-01-11  Etienne Servais  <servais@adacore.com>
7126
7127         * sem_ch3.adb (Check_Dynamic_Object): Swap check order.
7128
7129 2022-01-11  Yannick Moy  <moy@adacore.com>
7130
7131         * libgnat/s-casuti.adb: Add ghost code.
7132         * libgnat/s-casuti.ads: Add contracts.
7133
7134 2022-01-11  Claire Dross  <dross@adacore.com>
7135
7136         * libgnat/a-tiinau.ads: Use a procedure for the Scan parameter
7137         instead of a function with side-effects.
7138         * libgnat/a-tiinau.adb: Idem.
7139         * libgnat/a-wtinau.ads: Idem.
7140         * libgnat/a-wtinau.adb: Idem.
7141         * libgnat/a-ztinau.ads: Idem.
7142         * libgnat/a-ztinau.adb: Idem.
7143         * libgnat/s-valint.ads: Change the function with side-effects
7144         Scan_Integer into a procedure
7145         * libgnat/s-vallli.ads: Idem.
7146         * libgnat/s-valllli.ads: Idem.
7147         * libgnat/s-vallllu.ads: Add SPARK_Mode and pragma to ignore
7148         assertions in instance.
7149         * libgnat/s-valllu.ads: Idem.
7150         * libgnat/s-valuns.ads: Idem.
7151         * libgnat/s-valuei.ads: Use a procedure for the
7152         Scan_Raw_Unsigned parameter instead of a function with
7153         side-effects and change the function with side-effects
7154         Scan_Integer into a procedure.
7155         * libgnat/s-valuei.adb: Idem.
7156         * libgnat/s-valuti.ads: Introduce a ghost function that scans an
7157         exponent and complete the postcondition of Scan_Exponent to also
7158         describe the value of Ptr after the call. Fix the postcondition
7159         of Scan_Underscore. Simplify the definition of
7160         Scan_Natural_Ghost.
7161         * libgnat/s-valuti.adb: Idem.
7162         * libgnat/s-valboo.ads, libgnat/s-valboo.adb: Update calls to
7163         First_Non_Space_Ghost.
7164         * libgnat/s-valueu.ads: Add functional contracts.
7165         * libgnat/s-valueu.adb: Idem.
7166
7167 2022-01-11  Yannick Moy  <moy@adacore.com>
7168
7169         * libgnat/s-expmod.adb (Exp_Modular): Add assertions.
7170
7171 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7172
7173         * errout.adb (Error_Msg_CRT): Build message with string
7174         concatenation; it is slightly repetitive but much easier to
7175         read.
7176
7177 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7178
7179         * exp_ch11.adb (Expand_N_Exception_Declaration): Remove explicit
7180         initialization of the exceptF object.
7181
7182 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7183
7184         * par-ch3.adb (P_Array_Type_Definition): Use
7185         Error_Msg_GNAT_Extension.
7186
7187 2022-01-11  Gary Dismukes  <dismukes@adacore.com>
7188
7189         * sem_disp.adb (Check_Controlling_Type): Add test for the case
7190         where Subp is a subprogram associated with a protected
7191         subprogram and return Empty, unless Tagged_Type is the
7192         corresponding record type of the protected type.
7193
7194 2022-01-11  Yannick Moy  <moy@adacore.com>
7195
7196         * libgnat/s-veboop.adb: Add ghost code for proof.
7197         * libgnat/s-veboop.ads: Add specification.
7198
7199 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7200
7201         * exp_aggr.adb, exp_attr.adb, exp_ch3.adb, exp_ch7.adb,
7202         exp_dist.adb, exp_util.adb, freeze.adb, frontend.adb,
7203         inline.adb, itypes.adb, lib-load.adb, lib-xref.adb,
7204         libgnat/a-cfhase.adb, libgnat/a-cforse.adb,
7205         libgnat/a-chtgbo.adb, libgnat/a-crdlli.adb,
7206         libgnat/a-except.adb, libgnat/a-strfix.adb,
7207         libgnat/a-textio.adb, libgnat/a-tienau.adb,
7208         libgnat/a-tigeau.adb, libgnat/a-witeio.adb,
7209         libgnat/a-wtenau.adb, libgnat/a-wtgeau.adb,
7210         libgnat/a-ztenau.adb, libgnat/a-ztexio.adb,
7211         libgnat/a-ztgeau.adb, libgnat/g-comlin.adb,
7212         libgnat/g-debpoo.adb, libgnat/g-expect.adb,
7213         libgnat/s-fileio.adb, libgnat/s-memory.adb, libgnat/s-mmap.adb,
7214         libgnat/s-objrea.adb, libgnat/s-pehage.adb,
7215         libgnat/s-regpat.adb, libgnat/s-shasto.adb,
7216         libgnat/s-valued.adb, libgnat/s-valuef.adb, par-ch11.adb,
7217         par-ch4.adb, par-ch6.adb, par-ch9.adb, par_sco.adb,
7218         repinfo-input.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb,
7219         sem_ch13.adb, sem_ch4.adb, sem_eval.adb, sem_prag.adb,
7220         sem_res.adb, sem_util.adb, sinput.adb, switch-c.adb: Fix style.
7221
7222 2022-01-11  Arnaud Charlet  <charlet@adacore.com>
7223
7224         * exp_ch9.adb, gen_il-types.ads, make.adb, par-ch12.adb,
7225         sem_ch13.adb: Use membership tests.
7226
7227 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7228
7229         * erroutc.ads, erroutc.adb (Is_Runtime_Raise): Global flag to
7230         connect status of initial messages and their continuation; we
7231         already have several flags like this.
7232         (Error_Msg_Object): Add field Warn_Runtime_Raise to connect
7233         error reporting (when problematic code is found) and removal
7234         (when problematic code is determined to be dead).
7235         * errout.adb (Error_Msg_Internal): Handle new field when
7236         recording a continuation message; propagate status from
7237         continuation to the preceding messages.
7238         (To_Be_Removed): For dead code remove both simple warnings and
7239         warnings about constraint errors that have been escalated to
7240         hard errors.
7241         (Set_Msg_Text): Recognize warnings about constraint errors that
7242         are escalated to hard errors.
7243         * errutil.adb (Error_Msg): Handle added field when recording a
7244         new message.
7245
7246 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
7247
7248         * errout.adb (Error_Msg_Internal): Propagate warnings-as-error
7249         flag from continuation message to its preceding messages.
7250
7251 2022-01-11  Arnaud Charlet  <charlet@adacore.com>
7252
7253         * gnatvsn.ads (Current_Year): Update copyright notice, bump to
7254         2022.
7255         * ada_get_targ.adb: Update copyright notice.
7256         * adabkend.adb: Likewise.
7257         * adabkend.ads: Likewise.
7258         * adadecode.c: Likewise.
7259         * adadecode.h: Likewise.
7260         * adaint.c: Likewise.
7261         * adaint.h: Likewise.
7262         * affinity.c: Likewise.
7263         * ali-util.adb: Likewise.
7264         * ali-util.ads: Likewise.
7265         * ali.adb: Likewise.
7266         * ali.ads: Likewise.
7267         * alloc.ads: Likewise.
7268         * argv-lynxos178-raven-cert.c: Likewise.
7269         * argv.c: Likewise.
7270         * aspects.adb: Likewise.
7271         * aspects.ads: Likewise.
7272         * atree.adb: Likewise.
7273         * atree.ads: Likewise.
7274         * atree.h: Likewise.
7275         * aux-io.c: Likewise.
7276         * back_end.adb: Likewise.
7277         * back_end.ads: Likewise.
7278         * backend_utils.adb: Likewise.
7279         * backend_utils.ads: Likewise.
7280         * bcheck.adb: Likewise.
7281         * bcheck.ads: Likewise.
7282         * binde.adb: Likewise.
7283         * binde.ads: Likewise.
7284         * binderr.adb: Likewise.
7285         * binderr.ads: Likewise.
7286         * bindgen.adb: Likewise.
7287         * bindgen.ads: Likewise.
7288         * bindo-augmentors.adb: Likewise.
7289         * bindo-augmentors.ads: Likewise.
7290         * bindo-builders.adb: Likewise.
7291         * bindo-builders.ads: Likewise.
7292         * bindo-diagnostics.adb: Likewise.
7293         * bindo-diagnostics.ads: Likewise.
7294         * bindo-elaborators.adb: Likewise.
7295         * bindo-elaborators.ads: Likewise.
7296         * bindo-graphs.adb: Likewise.
7297         * bindo-graphs.ads: Likewise.
7298         * bindo-units.adb: Likewise.
7299         * bindo-units.ads: Likewise.
7300         * bindo-validators.adb: Likewise.
7301         * bindo-validators.ads: Likewise.
7302         * bindo-writers.adb: Likewise.
7303         * bindo-writers.ads: Likewise.
7304         * bindo.adb: Likewise.
7305         * bindo.ads: Likewise.
7306         * bindusg.adb: Likewise.
7307         * bindusg.ads: Likewise.
7308         * butil.adb: Likewise.
7309         * butil.ads: Likewise.
7310         * cal.c: Likewise.
7311         * casing.adb: Likewise.
7312         * casing.ads: Likewise.
7313         * checks.adb: Likewise.
7314         * checks.ads: Likewise.
7315         * cio.c: Likewise.
7316         * clean.adb: Likewise.
7317         * clean.ads: Likewise.
7318         * comperr.adb: Likewise.
7319         * comperr.ads: Likewise.
7320         * contracts.adb: Likewise.
7321         * contracts.ads: Likewise.
7322         * csets.adb: Likewise.
7323         * csets.ads: Likewise.
7324         * cstand.adb: Likewise.
7325         * cstand.ads: Likewise.
7326         * cstreams.c: Likewise.
7327         * ctrl_c.c: Likewise.
7328         * debug.ads: Likewise.
7329         * debug_a.adb: Likewise.
7330         * debug_a.ads: Likewise.
7331         * einfo-utils.adb: Likewise.
7332         * einfo-utils.ads: Likewise.
7333         * einfo.adb: Likewise.
7334         * einfo.ads: Likewise.
7335         * elists.adb: Likewise.
7336         * elists.ads: Likewise.
7337         * elists.h: Likewise.
7338         * env.c: Likewise.
7339         * env.h: Likewise.
7340         * err_vars.ads: Likewise.
7341         * errno.c: Likewise.
7342         * errout.adb: Likewise.
7343         * errout.ads: Likewise.
7344         * erroutc.adb: Likewise.
7345         * erroutc.ads: Likewise.
7346         * errutil.adb: Likewise.
7347         * errutil.ads: Likewise.
7348         * eval_fat.adb: Likewise.
7349         * eval_fat.ads: Likewise.
7350         * exit.c: Likewise.
7351         * exp_aggr.adb: Likewise.
7352         * exp_aggr.ads: Likewise.
7353         * exp_atag.adb: Likewise.
7354         * exp_atag.ads: Likewise.
7355         * exp_attr.adb: Likewise.
7356         * exp_attr.ads: Likewise.
7357         * exp_cg.adb: Likewise.
7358         * exp_cg.ads: Likewise.
7359         * exp_ch10.ads: Likewise.
7360         * exp_ch11.adb: Likewise.
7361         * exp_ch11.ads: Likewise.
7362         * exp_ch12.adb: Likewise.
7363         * exp_ch12.ads: Likewise.
7364         * exp_ch13.adb: Likewise.
7365         * exp_ch13.ads: Likewise.
7366         * exp_ch2.adb: Likewise.
7367         * exp_ch2.ads: Likewise.
7368         * exp_ch3.adb: Likewise.
7369         * exp_ch3.ads: Likewise.
7370         * exp_ch4.adb: Likewise.
7371         * exp_ch4.ads: Likewise.
7372         * exp_ch5.adb: Likewise.
7373         * exp_ch5.ads: Likewise.
7374         * exp_ch6.adb: Likewise.
7375         * exp_ch6.ads: Likewise.
7376         * exp_ch7.adb: Likewise.
7377         * exp_ch7.ads: Likewise.
7378         * exp_ch8.adb: Likewise.
7379         * exp_ch8.ads: Likewise.
7380         * exp_ch9.adb: Likewise.
7381         * exp_ch9.ads: Likewise.
7382         * exp_code.adb: Likewise.
7383         * exp_code.ads: Likewise.
7384         * exp_dbug.adb: Likewise.
7385         * exp_dbug.ads: Likewise.
7386         * exp_disp.adb: Likewise.
7387         * exp_disp.ads: Likewise.
7388         * exp_dist.adb: Likewise.
7389         * exp_dist.ads: Likewise.
7390         * exp_fixd.adb: Likewise.
7391         * exp_fixd.ads: Likewise.
7392         * exp_imgv.adb: Likewise.
7393         * exp_imgv.ads: Likewise.
7394         * exp_intr.adb: Likewise.
7395         * exp_intr.ads: Likewise.
7396         * exp_pakd.adb: Likewise.
7397         * exp_pakd.ads: Likewise.
7398         * exp_prag.adb: Likewise.
7399         * exp_prag.ads: Likewise.
7400         * exp_put_image.adb: Likewise.
7401         * exp_put_image.ads: Likewise.
7402         * exp_sel.adb: Likewise.
7403         * exp_sel.ads: Likewise.
7404         * exp_smem.adb: Likewise.
7405         * exp_smem.ads: Likewise.
7406         * exp_spark.adb: Likewise.
7407         * exp_spark.ads: Likewise.
7408         * exp_strm.adb: Likewise.
7409         * exp_strm.ads: Likewise.
7410         * exp_tss.adb: Likewise.
7411         * exp_tss.ads: Likewise.
7412         * exp_unst.adb: Likewise.
7413         * exp_unst.ads: Likewise.
7414         * exp_util.adb: Likewise.
7415         * exp_util.ads: Likewise.
7416         * expander.adb: Likewise.
7417         * expander.ads: Likewise.
7418         * expect.c: Likewise.
7419         * fe.h: Likewise.
7420         * final.c: Likewise.
7421         * fmap.adb: Likewise.
7422         * fmap.ads: Likewise.
7423         * fname-sf.adb: Likewise.
7424         * fname-sf.ads: Likewise.
7425         * fname-uf.adb: Likewise.
7426         * fname-uf.ads: Likewise.
7427         * fname.adb: Likewise.
7428         * fname.ads: Likewise.
7429         * freeze.adb: Likewise.
7430         * freeze.ads: Likewise.
7431         * frontend.adb: Likewise.
7432         * frontend.ads: Likewise.
7433         * gen_il-fields.ads: Likewise.
7434         * gen_il-gen-gen_entities.adb: Likewise.
7435         * gen_il-gen-gen_nodes.adb: Likewise.
7436         * gen_il-gen.adb: Likewise.
7437         * gen_il-gen.ads: Likewise.
7438         * gen_il-internals.adb: Likewise.
7439         * gen_il-internals.ads: Likewise.
7440         * gen_il-main.adb: Likewise.
7441         * gen_il-types.ads: Likewise.
7442         * gen_il.adb: Likewise.
7443         * gen_il.ads: Likewise.
7444         * get_scos.adb: Likewise.
7445         * get_scos.ads: Likewise.
7446         * get_targ.adb: Likewise.
7447         * get_targ.ads: Likewise.
7448         * ghost.adb: Likewise.
7449         * ghost.ads: Likewise.
7450         * gnat1drv.adb: Likewise.
7451         * gnat1drv.ads: Likewise.
7452         * gnat_cuda.adb: Likewise.
7453         * gnat_cuda.ads: Likewise.
7454         * gnatbind.adb: Likewise.
7455         * gnatbind.ads: Likewise.
7456         * gnatchop.adb: Likewise.
7457         * gnatclean.adb: Likewise.
7458         * gnatcmd.adb: Likewise.
7459         * gnatcmd.ads: Likewise.
7460         * gnatdll.adb: Likewise.
7461         * gnatfind.adb: Likewise.
7462         * gnatkr.adb: Likewise.
7463         * gnatkr.ads: Likewise.
7464         * gnatlink.adb: Likewise.
7465         * gnatlink.ads: Likewise.
7466         * gnatls.adb: Likewise.
7467         * gnatls.ads: Likewise.
7468         * gnatmake.adb: Likewise.
7469         * gnatmake.ads: Likewise.
7470         * gnatname.adb: Likewise.
7471         * gnatname.ads: Likewise.
7472         * gnatprep.adb: Likewise.
7473         * gnatprep.ads: Likewise.
7474         * gnatvsn.adb: Likewise.
7475         * gnatxref.adb: Likewise.
7476         * gprep.adb: Likewise.
7477         * gprep.ads: Likewise.
7478         * gsocket.h: Likewise.
7479         * hostparm.ads: Likewise.
7480         * impunit.adb: Likewise.
7481         * impunit.ads: Likewise.
7482         * indepsw-aix.adb: Likewise.
7483         * indepsw-darwin.adb: Likewise.
7484         * indepsw-gnu.adb: Likewise.
7485         * indepsw.adb: Likewise.
7486         * indepsw.ads: Likewise.
7487         * init.c: Likewise.
7488         * initialize.c: Likewise.
7489         * inline.adb: Likewise.
7490         * inline.ads: Likewise.
7491         * itypes.adb: Likewise.
7492         * itypes.ads: Likewise.
7493         * krunch.adb: Likewise.
7494         * krunch.ads: Likewise.
7495         * layout.adb: Likewise.
7496         * layout.ads: Likewise.
7497         * lib-list.adb: Likewise.
7498         * lib-load.adb: Likewise.
7499         * lib-load.ads: Likewise.
7500         * lib-sort.adb: Likewise.
7501         * lib-util.adb: Likewise.
7502         * lib-util.ads: Likewise.
7503         * lib-writ.adb: Likewise.
7504         * lib-writ.ads: Likewise.
7505         * lib-xref-spark_specific.adb: Likewise.
7506         * lib-xref.adb: Likewise.
7507         * lib-xref.ads: Likewise.
7508         * lib.adb: Likewise.
7509         * lib.ads: Likewise.
7510         * libgnarl/a-astaco.adb: Likewise.
7511         * libgnarl/a-dispat.adb: Likewise.
7512         * libgnarl/a-dynpri.adb: Likewise.
7513         * libgnarl/a-etgrbu.ads: Likewise.
7514         * libgnarl/a-exetim__darwin.adb: Likewise.
7515         * libgnarl/a-exetim__default.ads: Likewise.
7516         * libgnarl/a-exetim__mingw.adb: Likewise.
7517         * libgnarl/a-exetim__mingw.ads: Likewise.
7518         * libgnarl/a-exetim__posix.adb: Likewise.
7519         * libgnarl/a-interr.adb: Likewise.
7520         * libgnarl/a-interr.ads: Likewise.
7521         * libgnarl/a-intnam.ads: Likewise.
7522         * libgnarl/a-intnam__aix.ads: Likewise.
7523         * libgnarl/a-intnam__darwin.ads: Likewise.
7524         * libgnarl/a-intnam__dragonfly.ads: Likewise.
7525         * libgnarl/a-intnam__dummy.ads: Likewise.
7526         * libgnarl/a-intnam__freebsd.ads: Likewise.
7527         * libgnarl/a-intnam__hpux.ads: Likewise.
7528         * libgnarl/a-intnam__linux.ads: Likewise.
7529         * libgnarl/a-intnam__lynxos.ads: Likewise.
7530         * libgnarl/a-intnam__mingw.ads: Likewise.
7531         * libgnarl/a-intnam__qnx.ads: Likewise.
7532         * libgnarl/a-intnam__rtems.ads: Likewise.
7533         * libgnarl/a-intnam__solaris.ads: Likewise.
7534         * libgnarl/a-intnam__vxworks.ads: Likewise.
7535         * libgnarl/a-reatim.adb: Likewise.
7536         * libgnarl/a-reatim.ads: Likewise.
7537         * libgnarl/a-retide.adb: Likewise.
7538         * libgnarl/a-retide.ads: Likewise.
7539         * libgnarl/a-rttiev.adb: Likewise.
7540         * libgnarl/a-rttiev.ads: Likewise.
7541         * libgnarl/a-synbar.adb: Likewise.
7542         * libgnarl/a-synbar.ads: Likewise.
7543         * libgnarl/a-synbar__posix.adb: Likewise.
7544         * libgnarl/a-synbar__posix.ads: Likewise.
7545         * libgnarl/a-sytaco.adb: Likewise.
7546         * libgnarl/a-sytaco.ads: Likewise.
7547         * libgnarl/a-tasatt.adb: Likewise.
7548         * libgnarl/a-tasatt.ads: Likewise.
7549         * libgnarl/a-taside.adb: Likewise.
7550         * libgnarl/a-taside.ads: Likewise.
7551         * libgnarl/a-tasini.adb: Likewise.
7552         * libgnarl/a-tasini.ads: Likewise.
7553         * libgnarl/a-taster.adb: Likewise.
7554         * libgnarl/g-boubuf.adb: Likewise.
7555         * libgnarl/g-boubuf.ads: Likewise.
7556         * libgnarl/g-boumai.ads: Likewise.
7557         * libgnarl/g-semaph.adb: Likewise.
7558         * libgnarl/g-semaph.ads: Likewise.
7559         * libgnarl/g-signal.adb: Likewise.
7560         * libgnarl/g-signal.ads: Likewise.
7561         * libgnarl/g-tastus.ads: Likewise.
7562         * libgnarl/g-thread.adb: Likewise.
7563         * libgnarl/g-thread.ads: Likewise.
7564         * libgnarl/i-vxinco.adb: Likewise.
7565         * libgnarl/i-vxinco.ads: Likewise.
7566         * libgnarl/s-inmaop.ads: Likewise.
7567         * libgnarl/s-inmaop__dummy.adb: Likewise.
7568         * libgnarl/s-inmaop__hwint.adb: Likewise.
7569         * libgnarl/s-inmaop__posix.adb: Likewise.
7570         * libgnarl/s-interr.adb: Likewise.
7571         * libgnarl/s-interr.ads: Likewise.
7572         * libgnarl/s-interr__dummy.adb: Likewise.
7573         * libgnarl/s-interr__hwint.adb: Likewise.
7574         * libgnarl/s-interr__sigaction.adb: Likewise.
7575         * libgnarl/s-interr__vxworks.adb: Likewise.
7576         * libgnarl/s-intman.ads: Likewise.
7577         * libgnarl/s-intman__android.adb: Likewise.
7578         * libgnarl/s-intman__dummy.adb: Likewise.
7579         * libgnarl/s-intman__lynxos.adb: Likewise.
7580         * libgnarl/s-intman__mingw.adb: Likewise.
7581         * libgnarl/s-intman__posix.adb: Likewise.
7582         * libgnarl/s-intman__qnx.adb: Likewise.
7583         * libgnarl/s-intman__rtems.adb: Likewise.
7584         * libgnarl/s-intman__rtems.ads: Likewise.
7585         * libgnarl/s-intman__solaris.adb: Likewise.
7586         * libgnarl/s-intman__susv3.adb: Likewise.
7587         * libgnarl/s-intman__vxworks.adb: Likewise.
7588         * libgnarl/s-intman__vxworks.ads: Likewise.
7589         * libgnarl/s-linux.ads: Likewise.
7590         * libgnarl/s-linux__alpha.ads: Likewise.
7591         * libgnarl/s-linux__android.ads: Likewise.
7592         * libgnarl/s-linux__hppa.ads: Likewise.
7593         * libgnarl/s-linux__mips.ads: Likewise.
7594         * libgnarl/s-linux__riscv.ads: Likewise.
7595         * libgnarl/s-linux__sparc.ads: Likewise.
7596         * libgnarl/s-linux__x32.ads: Likewise.
7597         * libgnarl/s-mudido.adb: Likewise.
7598         * libgnarl/s-mudido__affinity.adb: Likewise.
7599         * libgnarl/s-osinte__aix.adb: Likewise.
7600         * libgnarl/s-osinte__aix.ads: Likewise.
7601         * libgnarl/s-osinte__android.adb: Likewise.
7602         * libgnarl/s-osinte__android.ads: Likewise.
7603         * libgnarl/s-osinte__darwin.adb: Likewise.
7604         * libgnarl/s-osinte__darwin.ads: Likewise.
7605         * libgnarl/s-osinte__dragonfly.adb: Likewise.
7606         * libgnarl/s-osinte__dragonfly.ads: Likewise.
7607         * libgnarl/s-osinte__dummy.ads: Likewise.
7608         * libgnarl/s-osinte__freebsd.adb: Likewise.
7609         * libgnarl/s-osinte__freebsd.ads: Likewise.
7610         * libgnarl/s-osinte__gnu.adb: Likewise.
7611         * libgnarl/s-osinte__gnu.ads: Likewise.
7612         * libgnarl/s-osinte__hpux-dce.adb: Likewise.
7613         * libgnarl/s-osinte__hpux-dce.ads: Likewise.
7614         * libgnarl/s-osinte__hpux.ads: Likewise.
7615         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
7616         * libgnarl/s-osinte__linux.ads: Likewise.
7617         * libgnarl/s-osinte__lynxos178.adb: Likewise.
7618         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
7619         * libgnarl/s-osinte__mingw.ads: Likewise.
7620         * libgnarl/s-osinte__posix.adb: Likewise.
7621         * libgnarl/s-osinte__qnx.adb: Likewise.
7622         * libgnarl/s-osinte__qnx.ads: Likewise.
7623         * libgnarl/s-osinte__rtems.adb: Likewise.
7624         * libgnarl/s-osinte__rtems.ads: Likewise.
7625         * libgnarl/s-osinte__solaris.adb: Likewise.
7626         * libgnarl/s-osinte__solaris.ads: Likewise.
7627         * libgnarl/s-osinte__vxworks.adb: Likewise.
7628         * libgnarl/s-osinte__vxworks.ads: Likewise.
7629         * libgnarl/s-osinte__x32.adb: Likewise.
7630         * libgnarl/s-proinf.adb: Likewise.
7631         * libgnarl/s-proinf.ads: Likewise.
7632         * libgnarl/s-putaim.adb: Likewise.
7633         * libgnarl/s-putaim.ads: Likewise.
7634         * libgnarl/s-qnx.ads: Likewise.
7635         * libgnarl/s-solita.adb: Likewise.
7636         * libgnarl/s-solita.ads: Likewise.
7637         * libgnarl/s-stusta.adb: Likewise.
7638         * libgnarl/s-stusta.ads: Likewise.
7639         * libgnarl/s-taasde.adb: Likewise.
7640         * libgnarl/s-taasde.ads: Likewise.
7641         * libgnarl/s-tadeca.adb: Likewise.
7642         * libgnarl/s-tadeca.ads: Likewise.
7643         * libgnarl/s-tadert.adb: Likewise.
7644         * libgnarl/s-tadert.ads: Likewise.
7645         * libgnarl/s-taenca.adb: Likewise.
7646         * libgnarl/s-taenca.ads: Likewise.
7647         * libgnarl/s-taprob.adb: Likewise.
7648         * libgnarl/s-taprob.ads: Likewise.
7649         * libgnarl/s-taprop.ads: Likewise.
7650         * libgnarl/s-taprop__dummy.adb: Likewise.
7651         * libgnarl/s-taprop__hpux-dce.adb: Likewise.
7652         * libgnarl/s-taprop__linux.adb: Likewise.
7653         * libgnarl/s-taprop__mingw.adb: Likewise.
7654         * libgnarl/s-taprop__posix.adb: Likewise.
7655         * libgnarl/s-taprop__qnx.adb: Likewise.
7656         * libgnarl/s-taprop__rtems.adb: Likewise.
7657         * libgnarl/s-taprop__solaris.adb: Likewise.
7658         * libgnarl/s-taprop__vxworks.adb: Likewise.
7659         * libgnarl/s-tarest.adb: Likewise.
7660         * libgnarl/s-tarest.ads: Likewise.
7661         * libgnarl/s-tasdeb.adb: Likewise.
7662         * libgnarl/s-tasdeb.ads: Likewise.
7663         * libgnarl/s-tasinf.adb: Likewise.
7664         * libgnarl/s-tasinf.ads: Likewise.
7665         * libgnarl/s-tasinf__linux.adb: Likewise.
7666         * libgnarl/s-tasinf__linux.ads: Likewise.
7667         * libgnarl/s-tasinf__mingw.adb: Likewise.
7668         * libgnarl/s-tasinf__mingw.ads: Likewise.
7669         * libgnarl/s-tasinf__solaris.adb: Likewise.
7670         * libgnarl/s-tasinf__solaris.ads: Likewise.
7671         * libgnarl/s-tasinf__vxworks.ads: Likewise.
7672         * libgnarl/s-tasini.adb: Likewise.
7673         * libgnarl/s-tasini.ads: Likewise.
7674         * libgnarl/s-taskin.adb: Likewise.
7675         * libgnarl/s-taskin.ads: Likewise.
7676         * libgnarl/s-taspri__dummy.ads: Likewise.
7677         * libgnarl/s-taspri__hpux-dce.ads: Likewise.
7678         * libgnarl/s-taspri__lynxos.ads: Likewise.
7679         * libgnarl/s-taspri__mingw.ads: Likewise.
7680         * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
7681         * libgnarl/s-taspri__posix.ads: Likewise.
7682         * libgnarl/s-taspri__solaris.ads: Likewise.
7683         * libgnarl/s-taspri__vxworks.ads: Likewise.
7684         * libgnarl/s-tasque.adb: Likewise.
7685         * libgnarl/s-tasque.ads: Likewise.
7686         * libgnarl/s-tasren.adb: Likewise.
7687         * libgnarl/s-tasren.ads: Likewise.
7688         * libgnarl/s-tasres.ads: Likewise.
7689         * libgnarl/s-tassta.adb: Likewise.
7690         * libgnarl/s-tassta.ads: Likewise.
7691         * libgnarl/s-tasuti.adb: Likewise.
7692         * libgnarl/s-tasuti.ads: Likewise.
7693         * libgnarl/s-tataat.adb: Likewise.
7694         * libgnarl/s-tataat.ads: Likewise.
7695         * libgnarl/s-tpinop.adb: Likewise.
7696         * libgnarl/s-tpinop.ads: Likewise.
7697         * libgnarl/s-tpoaal.adb: Likewise.
7698         * libgnarl/s-tpoben.adb: Likewise.
7699         * libgnarl/s-tpoben.ads: Likewise.
7700         * libgnarl/s-tpobmu.adb: Likewise.
7701         * libgnarl/s-tpobmu.ads: Likewise.
7702         * libgnarl/s-tpobop.adb: Likewise.
7703         * libgnarl/s-tpobop.ads: Likewise.
7704         * libgnarl/s-tpopmo.adb: Likewise.
7705         * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
7706         * libgnarl/s-tpopsp__posix.adb: Likewise.
7707         * libgnarl/s-tpopsp__solaris.adb: Likewise.
7708         * libgnarl/s-tpopsp__tls.adb: Likewise.
7709         * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
7710         * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
7711         * libgnarl/s-tpopsp__vxworks.adb: Likewise.
7712         * libgnarl/s-tporft.adb: Likewise.
7713         * libgnarl/s-tposen.adb: Likewise.
7714         * libgnarl/s-tposen.ads: Likewise.
7715         * libgnarl/s-vxwext.adb: Likewise.
7716         * libgnarl/s-vxwext.ads: Likewise.
7717         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
7718         * libgnarl/s-vxwext__kernel.adb: Likewise.
7719         * libgnarl/s-vxwext__kernel.ads: Likewise.
7720         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
7721         * libgnarl/s-vxwext__rtp.adb: Likewise.
7722         * libgnarl/s-vxwext__rtp.ads: Likewise.
7723         * libgnarl/s-vxwork__aarch64.ads: Likewise.
7724         * libgnarl/s-vxwork__arm.ads: Likewise.
7725         * libgnarl/s-vxwork__ppc.ads: Likewise.
7726         * libgnarl/s-vxwork__x86.ads: Likewise.
7727         * libgnarl/thread.c: Likewise.
7728         * libgnat/a-assert.adb: Likewise.
7729         * libgnat/a-assert.ads: Likewise.
7730         * libgnat/a-btgbso.adb: Likewise.
7731         * libgnat/a-btgbso.ads: Likewise.
7732         * libgnat/a-calari.adb: Likewise.
7733         * libgnat/a-calari.ads: Likewise.
7734         * libgnat/a-calcon.adb: Likewise.
7735         * libgnat/a-calcon.ads: Likewise.
7736         * libgnat/a-caldel.adb: Likewise.
7737         * libgnat/a-caldel.ads: Likewise.
7738         * libgnat/a-calend.adb: Likewise.
7739         * libgnat/a-calend.ads: Likewise.
7740         * libgnat/a-calfor.adb: Likewise.
7741         * libgnat/a-calfor.ads: Likewise.
7742         * libgnat/a-catizo.adb: Likewise.
7743         * libgnat/a-cbdlli.adb: Likewise.
7744         * libgnat/a-cbdlli.ads: Likewise.
7745         * libgnat/a-cbhama.adb: Likewise.
7746         * libgnat/a-cbhama.ads: Likewise.
7747         * libgnat/a-cbhase.adb: Likewise.
7748         * libgnat/a-cbhase.ads: Likewise.
7749         * libgnat/a-cbmutr.adb: Likewise.
7750         * libgnat/a-cbmutr.ads: Likewise.
7751         * libgnat/a-cborma.adb: Likewise.
7752         * libgnat/a-cborma.ads: Likewise.
7753         * libgnat/a-cborse.adb: Likewise.
7754         * libgnat/a-cborse.ads: Likewise.
7755         * libgnat/a-cbprqu.adb: Likewise.
7756         * libgnat/a-cbprqu.ads: Likewise.
7757         * libgnat/a-cbsyqu.adb: Likewise.
7758         * libgnat/a-cbsyqu.ads: Likewise.
7759         * libgnat/a-cdlili.adb: Likewise.
7760         * libgnat/a-cdlili.ads: Likewise.
7761         * libgnat/a-cfdlli.adb: Likewise.
7762         * libgnat/a-cfdlli.ads: Likewise.
7763         * libgnat/a-cfhama.adb: Likewise.
7764         * libgnat/a-cfhama.ads: Likewise.
7765         * libgnat/a-cfhase.adb: Likewise.
7766         * libgnat/a-cfhase.ads: Likewise.
7767         * libgnat/a-cfinve.adb: Likewise.
7768         * libgnat/a-cfinve.ads: Likewise.
7769         * libgnat/a-cforma.adb: Likewise.
7770         * libgnat/a-cforma.ads: Likewise.
7771         * libgnat/a-cforse.adb: Likewise.
7772         * libgnat/a-cforse.ads: Likewise.
7773         * libgnat/a-cgaaso.adb: Likewise.
7774         * libgnat/a-cgaaso.ads: Likewise.
7775         * libgnat/a-cgarso.adb: Likewise.
7776         * libgnat/a-cgcaso.adb: Likewise.
7777         * libgnat/a-chacon.adb: Likewise.
7778         * libgnat/a-chacon.ads: Likewise.
7779         * libgnat/a-chahan.adb: Likewise.
7780         * libgnat/a-chahan.ads: Likewise.
7781         * libgnat/a-chlat9.ads: Likewise.
7782         * libgnat/a-chtgbk.adb: Likewise.
7783         * libgnat/a-chtgbk.ads: Likewise.
7784         * libgnat/a-chtgbo.adb: Likewise.
7785         * libgnat/a-chtgbo.ads: Likewise.
7786         * libgnat/a-chtgke.adb: Likewise.
7787         * libgnat/a-chtgke.ads: Likewise.
7788         * libgnat/a-chtgop.adb: Likewise.
7789         * libgnat/a-chtgop.ads: Likewise.
7790         * libgnat/a-chzla1.ads: Likewise.
7791         * libgnat/a-chzla9.ads: Likewise.
7792         * libgnat/a-cidlli.adb: Likewise.
7793         * libgnat/a-cidlli.ads: Likewise.
7794         * libgnat/a-cihama.adb: Likewise.
7795         * libgnat/a-cihama.ads: Likewise.
7796         * libgnat/a-cihase.adb: Likewise.
7797         * libgnat/a-cihase.ads: Likewise.
7798         * libgnat/a-cimutr.adb: Likewise.
7799         * libgnat/a-cimutr.ads: Likewise.
7800         * libgnat/a-ciorma.adb: Likewise.
7801         * libgnat/a-ciorma.ads: Likewise.
7802         * libgnat/a-ciormu.adb: Likewise.
7803         * libgnat/a-ciormu.ads: Likewise.
7804         * libgnat/a-ciorse.adb: Likewise.
7805         * libgnat/a-ciorse.ads: Likewise.
7806         * libgnat/a-clrefi.adb: Likewise.
7807         * libgnat/a-clrefi.ads: Likewise.
7808         * libgnat/a-coboho.adb: Likewise.
7809         * libgnat/a-coboho.ads: Likewise.
7810         * libgnat/a-cobove.adb: Likewise.
7811         * libgnat/a-cobove.ads: Likewise.
7812         * libgnat/a-cofove.adb: Likewise.
7813         * libgnat/a-cofove.ads: Likewise.
7814         * libgnat/a-cofuba.adb: Likewise.
7815         * libgnat/a-cofuba.ads: Likewise.
7816         * libgnat/a-cofuma.adb: Likewise.
7817         * libgnat/a-cofuma.ads: Likewise.
7818         * libgnat/a-cofuse.adb: Likewise.
7819         * libgnat/a-cofuse.ads: Likewise.
7820         * libgnat/a-cofuve.adb: Likewise.
7821         * libgnat/a-cofuve.ads: Likewise.
7822         * libgnat/a-cogeso.adb: Likewise.
7823         * libgnat/a-cogeso.ads: Likewise.
7824         * libgnat/a-cohama.adb: Likewise.
7825         * libgnat/a-cohama.ads: Likewise.
7826         * libgnat/a-cohase.adb: Likewise.
7827         * libgnat/a-cohase.ads: Likewise.
7828         * libgnat/a-cohata.ads: Likewise.
7829         * libgnat/a-coinho.adb: Likewise.
7830         * libgnat/a-coinho.ads: Likewise.
7831         * libgnat/a-coinho__shared.adb: Likewise.
7832         * libgnat/a-coinho__shared.ads: Likewise.
7833         * libgnat/a-coinve.adb: Likewise.
7834         * libgnat/a-coinve.ads: Likewise.
7835         * libgnat/a-colien.adb: Likewise.
7836         * libgnat/a-colien.ads: Likewise.
7837         * libgnat/a-colire.adb: Likewise.
7838         * libgnat/a-colire.ads: Likewise.
7839         * libgnat/a-comlin.adb: Likewise.
7840         * libgnat/a-comlin.ads: Likewise.
7841         * libgnat/a-comutr.adb: Likewise.
7842         * libgnat/a-comutr.ads: Likewise.
7843         * libgnat/a-conhel.adb: Likewise.
7844         * libgnat/a-conhel.ads: Likewise.
7845         * libgnat/a-convec.adb: Likewise.
7846         * libgnat/a-convec.ads: Likewise.
7847         * libgnat/a-coorma.adb: Likewise.
7848         * libgnat/a-coorma.ads: Likewise.
7849         * libgnat/a-coormu.adb: Likewise.
7850         * libgnat/a-coormu.ads: Likewise.
7851         * libgnat/a-coorse.adb: Likewise.
7852         * libgnat/a-coorse.ads: Likewise.
7853         * libgnat/a-coprnu.adb: Likewise.
7854         * libgnat/a-coprnu.ads: Likewise.
7855         * libgnat/a-costso.adb: Likewise.
7856         * libgnat/a-costso.ads: Likewise.
7857         * libgnat/a-crbltr.ads: Likewise.
7858         * libgnat/a-crbtgk.adb: Likewise.
7859         * libgnat/a-crbtgk.ads: Likewise.
7860         * libgnat/a-crbtgo.adb: Likewise.
7861         * libgnat/a-crbtgo.ads: Likewise.
7862         * libgnat/a-crdlli.adb: Likewise.
7863         * libgnat/a-crdlli.ads: Likewise.
7864         * libgnat/a-csquin.ads: Likewise.
7865         * libgnat/a-cuprqu.adb: Likewise.
7866         * libgnat/a-cuprqu.ads: Likewise.
7867         * libgnat/a-cusyqu.adb: Likewise.
7868         * libgnat/a-cusyqu.ads: Likewise.
7869         * libgnat/a-cwila1.ads: Likewise.
7870         * libgnat/a-cwila9.ads: Likewise.
7871         * libgnat/a-decima.adb: Likewise.
7872         * libgnat/a-decima.ads: Likewise.
7873         * libgnat/a-decima__128.ads: Likewise.
7874         * libgnat/a-dhfina.adb: Likewise.
7875         * libgnat/a-dhfina.ads: Likewise.
7876         * libgnat/a-diocst.adb: Likewise.
7877         * libgnat/a-diocst.ads: Likewise.
7878         * libgnat/a-direct.adb: Likewise.
7879         * libgnat/a-direct.ads: Likewise.
7880         * libgnat/a-direio.adb: Likewise.
7881         * libgnat/a-direio.ads: Likewise.
7882         * libgnat/a-dirval.adb: Likewise.
7883         * libgnat/a-dirval.ads: Likewise.
7884         * libgnat/a-dirval__mingw.adb: Likewise.
7885         * libgnat/a-einuoc.adb: Likewise.
7886         * libgnat/a-einuoc.ads: Likewise.
7887         * libgnat/a-elchha.adb: Likewise.
7888         * libgnat/a-elchha.ads: Likewise.
7889         * libgnat/a-envvar.adb: Likewise.
7890         * libgnat/a-excach.adb: Likewise.
7891         * libgnat/a-except.adb: Likewise.
7892         * libgnat/a-except.ads: Likewise.
7893         * libgnat/a-exctra.adb: Likewise.
7894         * libgnat/a-exctra.ads: Likewise.
7895         * libgnat/a-exexda.adb: Likewise.
7896         * libgnat/a-exexpr.adb: Likewise.
7897         * libgnat/a-exextr.adb: Likewise.
7898         * libgnat/a-exstat.adb: Likewise.
7899         * libgnat/a-finali.adb: Likewise.
7900         * libgnat/a-finali.ads: Likewise.
7901         * libgnat/a-locale.adb: Likewise.
7902         * libgnat/a-locale.ads: Likewise.
7903         * libgnat/a-nagefl.ads: Likewise.
7904         * libgnat/a-naliop.ads: Likewise.
7905         * libgnat/a-naliop__nolibm.ads: Likewise.
7906         * libgnat/a-nallfl.ads: Likewise.
7907         * libgnat/a-nallfl__wraplf.ads: Likewise.
7908         * libgnat/a-nalofl.ads: Likewise.
7909         * libgnat/a-nashfl.ads: Likewise.
7910         * libgnat/a-nashfl__wraplf.ads: Likewise.
7911         * libgnat/a-nbnbig.adb: Likewise.
7912         * libgnat/a-nbnbin.adb: Likewise.
7913         * libgnat/a-nbnbin__gmp.adb: Likewise.
7914         * libgnat/a-nbnbre.adb: Likewise.
7915         * libgnat/a-ngcefu.adb: Likewise.
7916         * libgnat/a-ngcoar.adb: Likewise.
7917         * libgnat/a-ngcoty.adb: Likewise.
7918         * libgnat/a-ngcoty.ads: Likewise.
7919         * libgnat/a-ngelfu.adb: Likewise.
7920         * libgnat/a-ngelfu.ads: Likewise.
7921         * libgnat/a-ngrear.adb: Likewise.
7922         * libgnat/a-ngrear.ads: Likewise.
7923         * libgnat/a-nuauco.ads: Likewise.
7924         * libgnat/a-nuauco__x86.ads: Likewise.
7925         * libgnat/a-nuaufl.ads: Likewise.
7926         * libgnat/a-nuaufl__wraplf.ads: Likewise.
7927         * libgnat/a-nudira.adb: Likewise.
7928         * libgnat/a-nudira.ads: Likewise.
7929         * libgnat/a-nuflra.adb: Likewise.
7930         * libgnat/a-nuflra.ads: Likewise.
7931         * libgnat/a-numaux.ads: Likewise.
7932         * libgnat/a-rbtgbk.adb: Likewise.
7933         * libgnat/a-rbtgbk.ads: Likewise.
7934         * libgnat/a-rbtgbo.adb: Likewise.
7935         * libgnat/a-rbtgbo.ads: Likewise.
7936         * libgnat/a-rbtgso.adb: Likewise.
7937         * libgnat/a-rbtgso.ads: Likewise.
7938         * libgnat/a-sbecin.adb: Likewise.
7939         * libgnat/a-sbecin.ads: Likewise.
7940         * libgnat/a-sbhcin.adb: Likewise.
7941         * libgnat/a-sbhcin.ads: Likewise.
7942         * libgnat/a-sblcin.adb: Likewise.
7943         * libgnat/a-sblcin.ads: Likewise.
7944         * libgnat/a-secain.adb: Likewise.
7945         * libgnat/a-secain.ads: Likewise.
7946         * libgnat/a-sequio.adb: Likewise.
7947         * libgnat/a-sequio.ads: Likewise.
7948         * libgnat/a-sfecin.ads: Likewise.
7949         * libgnat/a-sfhcin.ads: Likewise.
7950         * libgnat/a-sflcin.ads: Likewise.
7951         * libgnat/a-shcain.adb: Likewise.
7952         * libgnat/a-shcain.ads: Likewise.
7953         * libgnat/a-siocst.adb: Likewise.
7954         * libgnat/a-siocst.ads: Likewise.
7955         * libgnat/a-slcain.adb: Likewise.
7956         * libgnat/a-slcain.ads: Likewise.
7957         * libgnat/a-ssicst.adb: Likewise.
7958         * libgnat/a-ssicst.ads: Likewise.
7959         * libgnat/a-stboha.adb: Likewise.
7960         * libgnat/a-stbubo.adb: Likewise.
7961         * libgnat/a-stbubo.ads: Likewise.
7962         * libgnat/a-stbufi.adb: Likewise.
7963         * libgnat/a-stbufi.ads: Likewise.
7964         * libgnat/a-stbufo.adb: Likewise.
7965         * libgnat/a-stbufo.ads: Likewise.
7966         * libgnat/a-stbuun.adb: Likewise.
7967         * libgnat/a-stbuut.adb: Likewise.
7968         * libgnat/a-stbuut.ads: Likewise.
7969         * libgnat/a-stmaco.ads: Likewise.
7970         * libgnat/a-storio.adb: Likewise.
7971         * libgnat/a-strbou.adb: Likewise.
7972         * libgnat/a-strbou.ads: Likewise.
7973         * libgnat/a-stream.adb: Likewise.
7974         * libgnat/a-stream.ads: Likewise.
7975         * libgnat/a-strfix.adb: Likewise.
7976         * libgnat/a-strhas.adb: Likewise.
7977         * libgnat/a-strmap.adb: Likewise.
7978         * libgnat/a-strmap.ads: Likewise.
7979         * libgnat/a-strsea.adb: Likewise.
7980         * libgnat/a-strsea.ads: Likewise.
7981         * libgnat/a-strsto.ads: Likewise.
7982         * libgnat/a-strsup.adb: Likewise.
7983         * libgnat/a-strsup.ads: Likewise.
7984         * libgnat/a-strunb.adb: Likewise.
7985         * libgnat/a-strunb.ads: Likewise.
7986         * libgnat/a-strunb__shared.adb: Likewise.
7987         * libgnat/a-strunb__shared.ads: Likewise.
7988         * libgnat/a-ststbo.adb: Likewise.
7989         * libgnat/a-ststbo.ads: Likewise.
7990         * libgnat/a-ststio.adb: Likewise.
7991         * libgnat/a-ststio.ads: Likewise.
7992         * libgnat/a-ststun.adb: Likewise.
7993         * libgnat/a-ststun.ads: Likewise.
7994         * libgnat/a-sttebu.adb: Likewise.
7995         * libgnat/a-stunau.adb: Likewise.
7996         * libgnat/a-stunau.ads: Likewise.
7997         * libgnat/a-stunau__shared.adb: Likewise.
7998         * libgnat/a-stunha.adb: Likewise.
7999         * libgnat/a-stuten.adb: Likewise.
8000         * libgnat/a-stwibo.adb: Likewise.
8001         * libgnat/a-stwibo.ads: Likewise.
8002         * libgnat/a-stwifi.adb: Likewise.
8003         * libgnat/a-stwiha.adb: Likewise.
8004         * libgnat/a-stwima.adb: Likewise.
8005         * libgnat/a-stwima.ads: Likewise.
8006         * libgnat/a-stwise.adb: Likewise.
8007         * libgnat/a-stwise.ads: Likewise.
8008         * libgnat/a-stwisu.adb: Likewise.
8009         * libgnat/a-stwisu.ads: Likewise.
8010         * libgnat/a-stwiun.adb: Likewise.
8011         * libgnat/a-stwiun.ads: Likewise.
8012         * libgnat/a-stwiun__shared.adb: Likewise.
8013         * libgnat/a-stwiun__shared.ads: Likewise.
8014         * libgnat/a-stzbou.adb: Likewise.
8015         * libgnat/a-stzbou.ads: Likewise.
8016         * libgnat/a-stzfix.adb: Likewise.
8017         * libgnat/a-stzhas.adb: Likewise.
8018         * libgnat/a-stzmap.adb: Likewise.
8019         * libgnat/a-stzmap.ads: Likewise.
8020         * libgnat/a-stzsea.adb: Likewise.
8021         * libgnat/a-stzsea.ads: Likewise.
8022         * libgnat/a-stzsup.adb: Likewise.
8023         * libgnat/a-stzsup.ads: Likewise.
8024         * libgnat/a-stzunb.adb: Likewise.
8025         * libgnat/a-stzunb.ads: Likewise.
8026         * libgnat/a-stzunb__shared.adb: Likewise.
8027         * libgnat/a-stzunb__shared.ads: Likewise.
8028         * libgnat/a-suecin.adb: Likewise.
8029         * libgnat/a-suecin.ads: Likewise.
8030         * libgnat/a-suenco.adb: Likewise.
8031         * libgnat/a-suenst.adb: Likewise.
8032         * libgnat/a-suewst.adb: Likewise.
8033         * libgnat/a-suezst.adb: Likewise.
8034         * libgnat/a-suhcin.adb: Likewise.
8035         * libgnat/a-suhcin.ads: Likewise.
8036         * libgnat/a-sulcin.adb: Likewise.
8037         * libgnat/a-sulcin.ads: Likewise.
8038         * libgnat/a-suteio.adb: Likewise.
8039         * libgnat/a-suteio.ads: Likewise.
8040         * libgnat/a-suteio__shared.adb: Likewise.
8041         * libgnat/a-swbwha.adb: Likewise.
8042         * libgnat/a-swmwco.ads: Likewise.
8043         * libgnat/a-swunau.adb: Likewise.
8044         * libgnat/a-swunau.ads: Likewise.
8045         * libgnat/a-swunau__shared.adb: Likewise.
8046         * libgnat/a-swuwha.adb: Likewise.
8047         * libgnat/a-swuwti.adb: Likewise.
8048         * libgnat/a-swuwti.ads: Likewise.
8049         * libgnat/a-swuwti__shared.adb: Likewise.
8050         * libgnat/a-szbzha.adb: Likewise.
8051         * libgnat/a-szmzco.ads: Likewise.
8052         * libgnat/a-szunau.adb: Likewise.
8053         * libgnat/a-szunau.ads: Likewise.
8054         * libgnat/a-szunau__shared.adb: Likewise.
8055         * libgnat/a-szuzha.adb: Likewise.
8056         * libgnat/a-szuzti.adb: Likewise.
8057         * libgnat/a-szuzti.ads: Likewise.
8058         * libgnat/a-szuzti__shared.adb: Likewise.
8059         * libgnat/a-tags.adb: Likewise.
8060         * libgnat/a-tags.ads: Likewise.
8061         * libgnat/a-teioed.adb: Likewise.
8062         * libgnat/a-teioed.ads: Likewise.
8063         * libgnat/a-textio.adb: Likewise.
8064         * libgnat/a-textio.ads: Likewise.
8065         * libgnat/a-tiboio.adb: Likewise.
8066         * libgnat/a-ticoau.adb: Likewise.
8067         * libgnat/a-ticoau.ads: Likewise.
8068         * libgnat/a-ticoio.adb: Likewise.
8069         * libgnat/a-ticoio.ads: Likewise.
8070         * libgnat/a-tideau.adb: Likewise.
8071         * libgnat/a-tideau.ads: Likewise.
8072         * libgnat/a-tideio.adb: Likewise.
8073         * libgnat/a-tideio.ads: Likewise.
8074         * libgnat/a-tideio__128.adb: Likewise.
8075         * libgnat/a-tienau.adb: Likewise.
8076         * libgnat/a-tienau.ads: Likewise.
8077         * libgnat/a-tienio.adb: Likewise.
8078         * libgnat/a-tifiau.adb: Likewise.
8079         * libgnat/a-tifiau.ads: Likewise.
8080         * libgnat/a-tifiio.adb: Likewise.
8081         * libgnat/a-tifiio__128.adb: Likewise.
8082         * libgnat/a-tiflau.adb: Likewise.
8083         * libgnat/a-tiflau.ads: Likewise.
8084         * libgnat/a-tiflio.adb: Likewise.
8085         * libgnat/a-tiflio.ads: Likewise.
8086         * libgnat/a-tigeau.adb: Likewise.
8087         * libgnat/a-tigeau.ads: Likewise.
8088         * libgnat/a-tigeli.adb: Likewise.
8089         * libgnat/a-tiinau.adb: Likewise.
8090         * libgnat/a-tiinau.ads: Likewise.
8091         * libgnat/a-tiinio.adb: Likewise.
8092         * libgnat/a-tiinio.ads: Likewise.
8093         * libgnat/a-tiinio__128.adb: Likewise.
8094         * libgnat/a-timoio.adb: Likewise.
8095         * libgnat/a-timoio.ads: Likewise.
8096         * libgnat/a-timoio__128.adb: Likewise.
8097         * libgnat/a-tiocst.adb: Likewise.
8098         * libgnat/a-tiocst.ads: Likewise.
8099         * libgnat/a-tirsfi.adb: Likewise.
8100         * libgnat/a-tirsfi.ads: Likewise.
8101         * libgnat/a-titest.adb: Likewise.
8102         * libgnat/a-undesu.adb: Likewise.
8103         * libgnat/a-wichha.adb: Likewise.
8104         * libgnat/a-wichun.adb: Likewise.
8105         * libgnat/a-wichun.ads: Likewise.
8106         * libgnat/a-witeio.adb: Likewise.
8107         * libgnat/a-witeio.ads: Likewise.
8108         * libgnat/a-wrstfi.adb: Likewise.
8109         * libgnat/a-wrstfi.ads: Likewise.
8110         * libgnat/a-wtcoau.adb: Likewise.
8111         * libgnat/a-wtcoau.ads: Likewise.
8112         * libgnat/a-wtcoio.adb: Likewise.
8113         * libgnat/a-wtcstr.adb: Likewise.
8114         * libgnat/a-wtcstr.ads: Likewise.
8115         * libgnat/a-wtdeau.adb: Likewise.
8116         * libgnat/a-wtdeau.ads: Likewise.
8117         * libgnat/a-wtdeio.adb: Likewise.
8118         * libgnat/a-wtdeio__128.adb: Likewise.
8119         * libgnat/a-wtedit.adb: Likewise.
8120         * libgnat/a-wtedit.ads: Likewise.
8121         * libgnat/a-wtenau.adb: Likewise.
8122         * libgnat/a-wtenau.ads: Likewise.
8123         * libgnat/a-wtenio.adb: Likewise.
8124         * libgnat/a-wtfiau.adb: Likewise.
8125         * libgnat/a-wtfiau.ads: Likewise.
8126         * libgnat/a-wtfiio.adb: Likewise.
8127         * libgnat/a-wtfiio__128.adb: Likewise.
8128         * libgnat/a-wtflau.adb: Likewise.
8129         * libgnat/a-wtflau.ads: Likewise.
8130         * libgnat/a-wtflio.adb: Likewise.
8131         * libgnat/a-wtgeau.adb: Likewise.
8132         * libgnat/a-wtgeau.ads: Likewise.
8133         * libgnat/a-wtinau.adb: Likewise.
8134         * libgnat/a-wtinau.ads: Likewise.
8135         * libgnat/a-wtinio.adb: Likewise.
8136         * libgnat/a-wtinio__128.adb: Likewise.
8137         * libgnat/a-wtmoio.adb: Likewise.
8138         * libgnat/a-wtmoio.ads: Likewise.
8139         * libgnat/a-wtmoio__128.adb: Likewise.
8140         * libgnat/a-wttest.adb: Likewise.
8141         * libgnat/a-wwboio.adb: Likewise.
8142         * libgnat/a-zchhan.adb: Likewise.
8143         * libgnat/a-zchuni.adb: Likewise.
8144         * libgnat/a-zchuni.ads: Likewise.
8145         * libgnat/a-zrstfi.adb: Likewise.
8146         * libgnat/a-zrstfi.ads: Likewise.
8147         * libgnat/a-ztcoau.adb: Likewise.
8148         * libgnat/a-ztcoio.adb: Likewise.
8149         * libgnat/a-ztcstr.adb: Likewise.
8150         * libgnat/a-ztcstr.ads: Likewise.
8151         * libgnat/a-ztdeau.adb: Likewise.
8152         * libgnat/a-ztdeau.ads: Likewise.
8153         * libgnat/a-ztdeio.adb: Likewise.
8154         * libgnat/a-ztdeio__128.adb: Likewise.
8155         * libgnat/a-ztedit.adb: Likewise.
8156         * libgnat/a-ztedit.ads: Likewise.
8157         * libgnat/a-ztenau.adb: Likewise.
8158         * libgnat/a-ztenau.ads: Likewise.
8159         * libgnat/a-ztenio.adb: Likewise.
8160         * libgnat/a-ztexio.adb: Likewise.
8161         * libgnat/a-ztexio.ads: Likewise.
8162         * libgnat/a-ztfiau.adb: Likewise.
8163         * libgnat/a-ztfiau.ads: Likewise.
8164         * libgnat/a-ztfiio.adb: Likewise.
8165         * libgnat/a-ztfiio__128.adb: Likewise.
8166         * libgnat/a-ztflau.adb: Likewise.
8167         * libgnat/a-ztflau.ads: Likewise.
8168         * libgnat/a-ztflio.adb: Likewise.
8169         * libgnat/a-ztgeau.adb: Likewise.
8170         * libgnat/a-ztgeau.ads: Likewise.
8171         * libgnat/a-ztinau.adb: Likewise.
8172         * libgnat/a-ztinau.ads: Likewise.
8173         * libgnat/a-ztinio.adb: Likewise.
8174         * libgnat/a-ztinio__128.adb: Likewise.
8175         * libgnat/a-ztmoio.adb: Likewise.
8176         * libgnat/a-ztmoio__128.adb: Likewise.
8177         * libgnat/a-zttest.adb: Likewise.
8178         * libgnat/a-zzboio.adb: Likewise.
8179         * libgnat/g-allein.ads: Likewise.
8180         * libgnat/g-alleve.adb: Likewise.
8181         * libgnat/g-alleve.ads: Likewise.
8182         * libgnat/g-alleve__hard.adb: Likewise.
8183         * libgnat/g-alleve__hard.ads: Likewise.
8184         * libgnat/g-altcon.adb: Likewise.
8185         * libgnat/g-altcon.ads: Likewise.
8186         * libgnat/g-altive.ads: Likewise.
8187         * libgnat/g-alveop.adb: Likewise.
8188         * libgnat/g-alveop.ads: Likewise.
8189         * libgnat/g-alvety.ads: Likewise.
8190         * libgnat/g-alvevi.ads: Likewise.
8191         * libgnat/g-arrspl.adb: Likewise.
8192         * libgnat/g-arrspl.ads: Likewise.
8193         * libgnat/g-awk.adb: Likewise.
8194         * libgnat/g-awk.ads: Likewise.
8195         * libgnat/g-binenv.adb: Likewise.
8196         * libgnat/g-binenv.ads: Likewise.
8197         * libgnat/g-brapre.ads: Likewise.
8198         * libgnat/g-bubsor.adb: Likewise.
8199         * libgnat/g-bubsor.ads: Likewise.
8200         * libgnat/g-busora.adb: Likewise.
8201         * libgnat/g-busora.ads: Likewise.
8202         * libgnat/g-busorg.adb: Likewise.
8203         * libgnat/g-busorg.ads: Likewise.
8204         * libgnat/g-byorma.adb: Likewise.
8205         * libgnat/g-byorma.ads: Likewise.
8206         * libgnat/g-bytswa.adb: Likewise.
8207         * libgnat/g-bytswa.ads: Likewise.
8208         * libgnat/g-calend.adb: Likewise.
8209         * libgnat/g-calend.ads: Likewise.
8210         * libgnat/g-casuti.adb: Likewise.
8211         * libgnat/g-casuti.ads: Likewise.
8212         * libgnat/g-catiio.adb: Likewise.
8213         * libgnat/g-catiio.ads: Likewise.
8214         * libgnat/g-cgi.adb: Likewise.
8215         * libgnat/g-cgi.ads: Likewise.
8216         * libgnat/g-cgicoo.adb: Likewise.
8217         * libgnat/g-cgicoo.ads: Likewise.
8218         * libgnat/g-cgideb.adb: Likewise.
8219         * libgnat/g-cgideb.ads: Likewise.
8220         * libgnat/g-comlin.adb: Likewise.
8221         * libgnat/g-comlin.ads: Likewise.
8222         * libgnat/g-comver.adb: Likewise.
8223         * libgnat/g-comver.ads: Likewise.
8224         * libgnat/g-cppexc.adb: Likewise.
8225         * libgnat/g-cppexc.ads: Likewise.
8226         * libgnat/g-crc32.adb: Likewise.
8227         * libgnat/g-crc32.ads: Likewise.
8228         * libgnat/g-ctrl_c.adb: Likewise.
8229         * libgnat/g-ctrl_c.ads: Likewise.
8230         * libgnat/g-curexc.ads: Likewise.
8231         * libgnat/g-debpoo.adb: Likewise.
8232         * libgnat/g-debpoo.ads: Likewise.
8233         * libgnat/g-debuti.adb: Likewise.
8234         * libgnat/g-debuti.ads: Likewise.
8235         * libgnat/g-decstr.adb: Likewise.
8236         * libgnat/g-decstr.ads: Likewise.
8237         * libgnat/g-deutst.ads: Likewise.
8238         * libgnat/g-diopit.adb: Likewise.
8239         * libgnat/g-diopit.ads: Likewise.
8240         * libgnat/g-dirope.adb: Likewise.
8241         * libgnat/g-dirope.ads: Likewise.
8242         * libgnat/g-dynhta.adb: Likewise.
8243         * libgnat/g-dynhta.ads: Likewise.
8244         * libgnat/g-dyntab.adb: Likewise.
8245         * libgnat/g-dyntab.ads: Likewise.
8246         * libgnat/g-eacodu.adb: Likewise.
8247         * libgnat/g-encstr.adb: Likewise.
8248         * libgnat/g-encstr.ads: Likewise.
8249         * libgnat/g-enutst.ads: Likewise.
8250         * libgnat/g-excact.adb: Likewise.
8251         * libgnat/g-excact.ads: Likewise.
8252         * libgnat/g-except.ads: Likewise.
8253         * libgnat/g-exctra.adb: Likewise.
8254         * libgnat/g-exctra.ads: Likewise.
8255         * libgnat/g-expect.adb: Likewise.
8256         * libgnat/g-expect.ads: Likewise.
8257         * libgnat/g-exptty.adb: Likewise.
8258         * libgnat/g-exptty.ads: Likewise.
8259         * libgnat/g-flocon.ads: Likewise.
8260         * libgnat/g-forstr.adb: Likewise.
8261         * libgnat/g-forstr.ads: Likewise.
8262         * libgnat/g-graphs.adb: Likewise.
8263         * libgnat/g-graphs.ads: Likewise.
8264         * libgnat/g-heasor.adb: Likewise.
8265         * libgnat/g-heasor.ads: Likewise.
8266         * libgnat/g-hesora.adb: Likewise.
8267         * libgnat/g-hesora.ads: Likewise.
8268         * libgnat/g-hesorg.adb: Likewise.
8269         * libgnat/g-hesorg.ads: Likewise.
8270         * libgnat/g-htable.adb: Likewise.
8271         * libgnat/g-htable.ads: Likewise.
8272         * libgnat/g-io.adb: Likewise.
8273         * libgnat/g-io.ads: Likewise.
8274         * libgnat/g-io_aux.adb: Likewise.
8275         * libgnat/g-io_aux.ads: Likewise.
8276         * libgnat/g-lists.adb: Likewise.
8277         * libgnat/g-lists.ads: Likewise.
8278         * libgnat/g-locfil.adb: Likewise.
8279         * libgnat/g-locfil.ads: Likewise.
8280         * libgnat/g-mbdira.adb: Likewise.
8281         * libgnat/g-mbdira.ads: Likewise.
8282         * libgnat/g-mbflra.adb: Likewise.
8283         * libgnat/g-mbflra.ads: Likewise.
8284         * libgnat/g-md5.adb: Likewise.
8285         * libgnat/g-md5.ads: Likewise.
8286         * libgnat/g-memdum.adb: Likewise.
8287         * libgnat/g-memdum.ads: Likewise.
8288         * libgnat/g-moreex.adb: Likewise.
8289         * libgnat/g-moreex.ads: Likewise.
8290         * libgnat/g-os_lib.adb: Likewise.
8291         * libgnat/g-os_lib.ads: Likewise.
8292         * libgnat/g-pehage.adb: Likewise.
8293         * libgnat/g-pehage.ads: Likewise.
8294         * libgnat/g-rannum.adb: Likewise.
8295         * libgnat/g-rannum.ads: Likewise.
8296         * libgnat/g-regexp.adb: Likewise.
8297         * libgnat/g-regexp.ads: Likewise.
8298         * libgnat/g-regist.adb: Likewise.
8299         * libgnat/g-regist.ads: Likewise.
8300         * libgnat/g-regpat.adb: Likewise.
8301         * libgnat/g-regpat.ads: Likewise.
8302         * libgnat/g-rewdat.adb: Likewise.
8303         * libgnat/g-rewdat.ads: Likewise.
8304         * libgnat/g-sechas.adb: Likewise.
8305         * libgnat/g-sechas.ads: Likewise.
8306         * libgnat/g-sehamd.adb: Likewise.
8307         * libgnat/g-sehamd.ads: Likewise.
8308         * libgnat/g-sehash.adb: Likewise.
8309         * libgnat/g-sehash.ads: Likewise.
8310         * libgnat/g-sercom.adb: Likewise.
8311         * libgnat/g-sercom.ads: Likewise.
8312         * libgnat/g-sercom__linux.adb: Likewise.
8313         * libgnat/g-sercom__mingw.adb: Likewise.
8314         * libgnat/g-sestin.ads: Likewise.
8315         * libgnat/g-sets.adb: Likewise.
8316         * libgnat/g-sets.ads: Likewise.
8317         * libgnat/g-sha1.adb: Likewise.
8318         * libgnat/g-sha1.ads: Likewise.
8319         * libgnat/g-sha224.ads: Likewise.
8320         * libgnat/g-sha256.ads: Likewise.
8321         * libgnat/g-sha384.ads: Likewise.
8322         * libgnat/g-sha512.ads: Likewise.
8323         * libgnat/g-shsh32.adb: Likewise.
8324         * libgnat/g-shsh32.ads: Likewise.
8325         * libgnat/g-shsh64.adb: Likewise.
8326         * libgnat/g-shsh64.ads: Likewise.
8327         * libgnat/g-shshco.adb: Likewise.
8328         * libgnat/g-shshco.ads: Likewise.
8329         * libgnat/g-soccon.ads: Likewise.
8330         * libgnat/g-socket.adb: Likewise.
8331         * libgnat/g-socket.ads: Likewise.
8332         * libgnat/g-socket__dummy.adb: Likewise.
8333         * libgnat/g-socket__dummy.ads: Likewise.
8334         * libgnat/g-socpol.adb: Likewise.
8335         * libgnat/g-socpol.ads: Likewise.
8336         * libgnat/g-socpol__dummy.adb: Likewise.
8337         * libgnat/g-socpol__dummy.ads: Likewise.
8338         * libgnat/g-socthi.adb: Likewise.
8339         * libgnat/g-socthi.ads: Likewise.
8340         * libgnat/g-socthi__dummy.adb: Likewise.
8341         * libgnat/g-socthi__dummy.ads: Likewise.
8342         * libgnat/g-socthi__mingw.adb: Likewise.
8343         * libgnat/g-socthi__mingw.ads: Likewise.
8344         * libgnat/g-socthi__vxworks.adb: Likewise.
8345         * libgnat/g-socthi__vxworks.ads: Likewise.
8346         * libgnat/g-soliop.ads: Likewise.
8347         * libgnat/g-soliop__lynxos.ads: Likewise.
8348         * libgnat/g-soliop__mingw.ads: Likewise.
8349         * libgnat/g-soliop__qnx.ads: Likewise.
8350         * libgnat/g-soliop__solaris.ads: Likewise.
8351         * libgnat/g-sopowa.adb: Likewise.
8352         * libgnat/g-sopowa__mingw.adb: Likewise.
8353         * libgnat/g-sopowa__posix.adb: Likewise.
8354         * libgnat/g-sothco.adb: Likewise.
8355         * libgnat/g-sothco.ads: Likewise.
8356         * libgnat/g-sothco__dummy.adb: Likewise.
8357         * libgnat/g-sothco__dummy.ads: Likewise.
8358         * libgnat/g-souinf.ads: Likewise.
8359         * libgnat/g-spchge.adb: Likewise.
8360         * libgnat/g-spchge.ads: Likewise.
8361         * libgnat/g-speche.adb: Likewise.
8362         * libgnat/g-speche.ads: Likewise.
8363         * libgnat/g-spipat.adb: Likewise.
8364         * libgnat/g-spipat.ads: Likewise.
8365         * libgnat/g-spitbo.adb: Likewise.
8366         * libgnat/g-spitbo.ads: Likewise.
8367         * libgnat/g-spogwa.adb: Likewise.
8368         * libgnat/g-spogwa.ads: Likewise.
8369         * libgnat/g-sptabo.ads: Likewise.
8370         * libgnat/g-sptain.ads: Likewise.
8371         * libgnat/g-sptavs.ads: Likewise.
8372         * libgnat/g-sse.ads: Likewise.
8373         * libgnat/g-ssvety.ads: Likewise.
8374         * libgnat/g-sthcso.adb: Likewise.
8375         * libgnat/g-stheme.adb: Likewise.
8376         * libgnat/g-strhas.ads: Likewise.
8377         * libgnat/g-string.adb: Likewise.
8378         * libgnat/g-string.ads: Likewise.
8379         * libgnat/g-strspl.ads: Likewise.
8380         * libgnat/g-stseme.adb: Likewise.
8381         * libgnat/g-stsifd__sockets.adb: Likewise.
8382         * libgnat/g-table.adb: Likewise.
8383         * libgnat/g-table.ads: Likewise.
8384         * libgnat/g-tasloc.adb: Likewise.
8385         * libgnat/g-tasloc.ads: Likewise.
8386         * libgnat/g-timsta.adb: Likewise.
8387         * libgnat/g-timsta.ads: Likewise.
8388         * libgnat/g-traceb.adb: Likewise.
8389         * libgnat/g-traceb.ads: Likewise.
8390         * libgnat/g-trasym.adb: Likewise.
8391         * libgnat/g-trasym.ads: Likewise.
8392         * libgnat/g-tty.adb: Likewise.
8393         * libgnat/g-tty.ads: Likewise.
8394         * libgnat/g-u3spch.adb: Likewise.
8395         * libgnat/g-u3spch.ads: Likewise.
8396         * libgnat/g-utf_32.adb: Likewise.
8397         * libgnat/g-utf_32.ads: Likewise.
8398         * libgnat/g-wispch.adb: Likewise.
8399         * libgnat/g-wispch.ads: Likewise.
8400         * libgnat/g-wistsp.ads: Likewise.
8401         * libgnat/g-zspche.adb: Likewise.
8402         * libgnat/g-zspche.ads: Likewise.
8403         * libgnat/g-zstspl.ads: Likewise.
8404         * libgnat/gnat.ads: Likewise.
8405         * libgnat/i-c.adb: Likewise.
8406         * libgnat/i-cexten.ads: Likewise.
8407         * libgnat/i-cexten__128.ads: Likewise.
8408         * libgnat/i-cobol.adb: Likewise.
8409         * libgnat/i-cobol.ads: Likewise.
8410         * libgnat/i-cpoint.adb: Likewise.
8411         * libgnat/i-cpoint.ads: Likewise.
8412         * libgnat/i-cstrea.adb: Likewise.
8413         * libgnat/i-cstrea.ads: Likewise.
8414         * libgnat/i-cstrin.adb: Likewise.
8415         * libgnat/i-cstrin.ads: Likewise.
8416         * libgnat/i-fortra.adb: Likewise.
8417         * libgnat/i-pacdec.adb: Likewise.
8418         * libgnat/i-pacdec.ads: Likewise.
8419         * libgnat/i-vxwoio.adb: Likewise.
8420         * libgnat/i-vxwoio.ads: Likewise.
8421         * libgnat/i-vxwork.ads: Likewise.
8422         * libgnat/i-vxwork__x86.ads: Likewise.
8423         * libgnat/interfac.ads: Likewise.
8424         * libgnat/interfac__2020.ads: Likewise.
8425         * libgnat/memtrack.adb: Likewise.
8426         * libgnat/s-addima.adb: Likewise.
8427         * libgnat/s-addima.ads: Likewise.
8428         * libgnat/s-addope.adb: Likewise.
8429         * libgnat/s-addope.ads: Likewise.
8430         * libgnat/s-aoinar.adb: Likewise.
8431         * libgnat/s-aoinar.ads: Likewise.
8432         * libgnat/s-aomoar.adb: Likewise.
8433         * libgnat/s-aomoar.ads: Likewise.
8434         * libgnat/s-aotase.adb: Likewise.
8435         * libgnat/s-aotase.ads: Likewise.
8436         * libgnat/s-aridou.adb: Likewise.
8437         * libgnat/s-aridou.ads: Likewise.
8438         * libgnat/s-arit128.adb: Likewise.
8439         * libgnat/s-arit128.ads: Likewise.
8440         * libgnat/s-arit32.adb: Likewise.
8441         * libgnat/s-arit32.ads: Likewise.
8442         * libgnat/s-arit64.adb: Likewise.
8443         * libgnat/s-arit64.ads: Likewise.
8444         * libgnat/s-assert.adb: Likewise.
8445         * libgnat/s-assert.ads: Likewise.
8446         * libgnat/s-atacco.adb: Likewise.
8447         * libgnat/s-atacco.ads: Likewise.
8448         * libgnat/s-atocou.adb: Likewise.
8449         * libgnat/s-atocou.ads: Likewise.
8450         * libgnat/s-atocou__builtin.adb: Likewise.
8451         * libgnat/s-atoope.ads: Likewise.
8452         * libgnat/s-atopex.adb: Likewise.
8453         * libgnat/s-atopex.ads: Likewise.
8454         * libgnat/s-atopri.adb: Likewise.
8455         * libgnat/s-atopri.ads: Likewise.
8456         * libgnat/s-auxdec.adb: Likewise.
8457         * libgnat/s-auxdec.ads: Likewise.
8458         * libgnat/s-bignum.adb: Likewise.
8459         * libgnat/s-bignum.ads: Likewise.
8460         * libgnat/s-bitfie.ads: Likewise.
8461         * libgnat/s-bitops.adb: Likewise.
8462         * libgnat/s-bitops.ads: Likewise.
8463         * libgnat/s-bituti.adb: Likewise.
8464         * libgnat/s-bituti.ads: Likewise.
8465         * libgnat/s-boarop.ads: Likewise.
8466         * libgnat/s-boustr.adb: Likewise.
8467         * libgnat/s-boustr.ads: Likewise.
8468         * libgnat/s-bytswa.ads: Likewise.
8469         * libgnat/s-carsi8.adb: Likewise.
8470         * libgnat/s-carsi8.ads: Likewise.
8471         * libgnat/s-carun8.adb: Likewise.
8472         * libgnat/s-carun8.ads: Likewise.
8473         * libgnat/s-casi128.adb: Likewise.
8474         * libgnat/s-casi128.ads: Likewise.
8475         * libgnat/s-casi16.adb: Likewise.
8476         * libgnat/s-casi16.ads: Likewise.
8477         * libgnat/s-casi32.adb: Likewise.
8478         * libgnat/s-casi32.ads: Likewise.
8479         * libgnat/s-casi64.adb: Likewise.
8480         * libgnat/s-casi64.ads: Likewise.
8481         * libgnat/s-casuti.adb: Likewise.
8482         * libgnat/s-casuti.ads: Likewise.
8483         * libgnat/s-caun128.adb: Likewise.
8484         * libgnat/s-caun128.ads: Likewise.
8485         * libgnat/s-caun16.adb: Likewise.
8486         * libgnat/s-caun16.ads: Likewise.
8487         * libgnat/s-caun32.adb: Likewise.
8488         * libgnat/s-caun32.ads: Likewise.
8489         * libgnat/s-caun64.adb: Likewise.
8490         * libgnat/s-caun64.ads: Likewise.
8491         * libgnat/s-chepoo.ads: Likewise.
8492         * libgnat/s-commun.adb: Likewise.
8493         * libgnat/s-commun.ads: Likewise.
8494         * libgnat/s-conca2.adb: Likewise.
8495         * libgnat/s-conca2.ads: Likewise.
8496         * libgnat/s-conca3.adb: Likewise.
8497         * libgnat/s-conca3.ads: Likewise.
8498         * libgnat/s-conca4.adb: Likewise.
8499         * libgnat/s-conca4.ads: Likewise.
8500         * libgnat/s-conca5.adb: Likewise.
8501         * libgnat/s-conca5.ads: Likewise.
8502         * libgnat/s-conca6.adb: Likewise.
8503         * libgnat/s-conca6.ads: Likewise.
8504         * libgnat/s-conca7.adb: Likewise.
8505         * libgnat/s-conca7.ads: Likewise.
8506         * libgnat/s-conca8.adb: Likewise.
8507         * libgnat/s-conca8.ads: Likewise.
8508         * libgnat/s-conca9.adb: Likewise.
8509         * libgnat/s-conca9.ads: Likewise.
8510         * libgnat/s-crc32.adb: Likewise.
8511         * libgnat/s-crc32.ads: Likewise.
8512         * libgnat/s-crtl.ads: Likewise.
8513         * libgnat/s-dfmkio.ads: Likewise.
8514         * libgnat/s-dfmopr.ads: Likewise.
8515         * libgnat/s-dgmgop.ads: Likewise.
8516         * libgnat/s-diflio.adb: Likewise.
8517         * libgnat/s-diflio.ads: Likewise.
8518         * libgnat/s-diflmk.ads: Likewise.
8519         * libgnat/s-digemk.ads: Likewise.
8520         * libgnat/s-diinio.adb: Likewise.
8521         * libgnat/s-diinio.ads: Likewise.
8522         * libgnat/s-dilomk.ads: Likewise.
8523         * libgnat/s-dim.ads: Likewise.
8524         * libgnat/s-dimkio.ads: Likewise.
8525         * libgnat/s-dimmks.ads: Likewise.
8526         * libgnat/s-direio.adb: Likewise.
8527         * libgnat/s-direio.ads: Likewise.
8528         * libgnat/s-dlmkio.ads: Likewise.
8529         * libgnat/s-dlmopr.ads: Likewise.
8530         * libgnat/s-dmotpr.ads: Likewise.
8531         * libgnat/s-dorepr.adb: Likewise.
8532         * libgnat/s-dorepr__fma.adb: Likewise.
8533         * libgnat/s-dourea.adb: Likewise.
8534         * libgnat/s-dourea.ads: Likewise.
8535         * libgnat/s-dsaser.ads: Likewise.
8536         * libgnat/s-dwalin.adb: Likewise.
8537         * libgnat/s-dwalin.ads: Likewise.
8538         * libgnat/s-elaall.adb: Likewise.
8539         * libgnat/s-elaall.ads: Likewise.
8540         * libgnat/s-excdeb.adb: Likewise.
8541         * libgnat/s-excdeb.ads: Likewise.
8542         * libgnat/s-except.adb: Likewise.
8543         * libgnat/s-except.ads: Likewise.
8544         * libgnat/s-excmac__arm.adb: Likewise.
8545         * libgnat/s-excmac__arm.ads: Likewise.
8546         * libgnat/s-excmac__gcc.adb: Likewise.
8547         * libgnat/s-excmac__gcc.ads: Likewise.
8548         * libgnat/s-exctab.adb: Likewise.
8549         * libgnat/s-exctab.ads: Likewise.
8550         * libgnat/s-exctra.adb: Likewise.
8551         * libgnat/s-exctra.ads: Likewise.
8552         * libgnat/s-exnflt.ads: Likewise.
8553         * libgnat/s-exnint.adb: Likewise.
8554         * libgnat/s-exnint.ads: Likewise.
8555         * libgnat/s-exnlfl.ads: Likewise.
8556         * libgnat/s-exnllf.adb: Likewise.
8557         * libgnat/s-exnllf.ads: Likewise.
8558         * libgnat/s-exnlli.adb: Likewise.
8559         * libgnat/s-exnlli.ads: Likewise.
8560         * libgnat/s-exnllli.ads: Likewise.
8561         * libgnat/s-expint.adb: Likewise.
8562         * libgnat/s-expint.ads: Likewise.
8563         * libgnat/s-explli.adb: Likewise.
8564         * libgnat/s-explli.ads: Likewise.
8565         * libgnat/s-expllli.ads: Likewise.
8566         * libgnat/s-explllu.ads: Likewise.
8567         * libgnat/s-expllu.adb: Likewise.
8568         * libgnat/s-expllu.ads: Likewise.
8569         * libgnat/s-expmod.adb: Likewise.
8570         * libgnat/s-expmod.ads: Likewise.
8571         * libgnat/s-exponn.adb: Likewise.
8572         * libgnat/s-exponn.ads: Likewise.
8573         * libgnat/s-exponr.adb: Likewise.
8574         * libgnat/s-exponr.ads: Likewise.
8575         * libgnat/s-expont.adb: Likewise.
8576         * libgnat/s-expont.ads: Likewise.
8577         * libgnat/s-exponu.adb: Likewise.
8578         * libgnat/s-exponu.ads: Likewise.
8579         * libgnat/s-expuns.adb: Likewise.
8580         * libgnat/s-expuns.ads: Likewise.
8581         * libgnat/s-fatflt.ads: Likewise.
8582         * libgnat/s-fatgen.adb: Likewise.
8583         * libgnat/s-fatgen.ads: Likewise.
8584         * libgnat/s-fatlfl.ads: Likewise.
8585         * libgnat/s-fatllf.ads: Likewise.
8586         * libgnat/s-ficobl.ads: Likewise.
8587         * libgnat/s-filatt.ads: Likewise.
8588         * libgnat/s-fileio.adb: Likewise.
8589         * libgnat/s-fileio.ads: Likewise.
8590         * libgnat/s-finmas.adb: Likewise.
8591         * libgnat/s-finmas.ads: Likewise.
8592         * libgnat/s-finroo.adb: Likewise.
8593         * libgnat/s-finroo.ads: Likewise.
8594         * libgnat/s-flocon.adb: Likewise.
8595         * libgnat/s-flocon.ads: Likewise.
8596         * libgnat/s-flocon__none.adb: Likewise.
8597         * libgnat/s-fode128.ads: Likewise.
8598         * libgnat/s-fode32.ads: Likewise.
8599         * libgnat/s-fode64.ads: Likewise.
8600         * libgnat/s-fofi128.ads: Likewise.
8601         * libgnat/s-fofi32.ads: Likewise.
8602         * libgnat/s-fofi64.ads: Likewise.
8603         * libgnat/s-fore_d.adb: Likewise.
8604         * libgnat/s-fore_d.ads: Likewise.
8605         * libgnat/s-fore_f.adb: Likewise.
8606         * libgnat/s-fore_f.ads: Likewise.
8607         * libgnat/s-forrea.adb: Likewise.
8608         * libgnat/s-forrea.ads: Likewise.
8609         * libgnat/s-gearop.adb: Likewise.
8610         * libgnat/s-gearop.ads: Likewise.
8611         * libgnat/s-genbig.adb: Likewise.
8612         * libgnat/s-genbig.ads: Likewise.
8613         * libgnat/s-geveop.adb: Likewise.
8614         * libgnat/s-geveop.ads: Likewise.
8615         * libgnat/s-gloloc.adb: Likewise.
8616         * libgnat/s-gloloc.ads: Likewise.
8617         * libgnat/s-gloloc__mingw.adb: Likewise.
8618         * libgnat/s-htable.adb: Likewise.
8619         * libgnat/s-htable.ads: Likewise.
8620         * libgnat/s-imageb.adb: Likewise.
8621         * libgnat/s-imageb.ads: Likewise.
8622         * libgnat/s-imaged.adb: Likewise.
8623         * libgnat/s-imaged.ads: Likewise.
8624         * libgnat/s-imagef.adb: Likewise.
8625         * libgnat/s-imagef.ads: Likewise.
8626         * libgnat/s-imagei.adb: Likewise.
8627         * libgnat/s-imagei.ads: Likewise.
8628         * libgnat/s-imagen.adb: Likewise.
8629         * libgnat/s-imagen.ads: Likewise.
8630         * libgnat/s-imager.adb: Likewise.
8631         * libgnat/s-imager.ads: Likewise.
8632         * libgnat/s-imageu.adb: Likewise.
8633         * libgnat/s-imageu.ads: Likewise.
8634         * libgnat/s-imagew.adb: Likewise.
8635         * libgnat/s-imagew.ads: Likewise.
8636         * libgnat/s-imde128.ads: Likewise.
8637         * libgnat/s-imde32.ads: Likewise.
8638         * libgnat/s-imde64.ads: Likewise.
8639         * libgnat/s-imen16.ads: Likewise.
8640         * libgnat/s-imen32.ads: Likewise.
8641         * libgnat/s-imenu8.ads: Likewise.
8642         * libgnat/s-imfi128.ads: Likewise.
8643         * libgnat/s-imfi32.ads: Likewise.
8644         * libgnat/s-imfi64.ads: Likewise.
8645         * libgnat/s-imgbiu.adb: Likewise.
8646         * libgnat/s-imgbiu.ads: Likewise.
8647         * libgnat/s-imgboo.adb: Likewise.
8648         * libgnat/s-imgboo.ads: Likewise.
8649         * libgnat/s-imgcha.adb: Likewise.
8650         * libgnat/s-imgcha.ads: Likewise.
8651         * libgnat/s-imgflt.ads: Likewise.
8652         * libgnat/s-imgint.adb: Likewise.
8653         * libgnat/s-imgint.ads: Likewise.
8654         * libgnat/s-imglfl.ads: Likewise.
8655         * libgnat/s-imgllb.adb: Likewise.
8656         * libgnat/s-imgllb.ads: Likewise.
8657         * libgnat/s-imgllf.ads: Likewise.
8658         * libgnat/s-imglli.adb: Likewise.
8659         * libgnat/s-imglli.ads: Likewise.
8660         * libgnat/s-imglllb.ads: Likewise.
8661         * libgnat/s-imgllli.ads: Likewise.
8662         * libgnat/s-imglllu.ads: Likewise.
8663         * libgnat/s-imglllw.ads: Likewise.
8664         * libgnat/s-imgllu.adb: Likewise.
8665         * libgnat/s-imgllu.ads: Likewise.
8666         * libgnat/s-imgllw.adb: Likewise.
8667         * libgnat/s-imgllw.ads: Likewise.
8668         * libgnat/s-imgrea.adb: Likewise.
8669         * libgnat/s-imgrea.ads: Likewise.
8670         * libgnat/s-imguns.adb: Likewise.
8671         * libgnat/s-imguns.ads: Likewise.
8672         * libgnat/s-imguti.adb: Likewise.
8673         * libgnat/s-imguti.ads: Likewise.
8674         * libgnat/s-imgwch.adb: Likewise.
8675         * libgnat/s-imgwch.ads: Likewise.
8676         * libgnat/s-imgwiu.adb: Likewise.
8677         * libgnat/s-imgwiu.ads: Likewise.
8678         * libgnat/s-io.adb: Likewise.
8679         * libgnat/s-io.ads: Likewise.
8680         * libgnat/s-llflex.ads: Likewise.
8681         * libgnat/s-maccod.ads: Likewise.
8682         * libgnat/s-mantis.adb: Likewise.
8683         * libgnat/s-mantis.ads: Likewise.
8684         * libgnat/s-mastop.adb: Likewise.
8685         * libgnat/s-mastop.ads: Likewise.
8686         * libgnat/s-memcop.ads: Likewise.
8687         * libgnat/s-memory.adb: Likewise.
8688         * libgnat/s-memory.ads: Likewise.
8689         * libgnat/s-mmap.adb: Likewise.
8690         * libgnat/s-mmap.ads: Likewise.
8691         * libgnat/s-mmauni__long.ads: Likewise.
8692         * libgnat/s-mmosin__mingw.adb: Likewise.
8693         * libgnat/s-mmosin__mingw.ads: Likewise.
8694         * libgnat/s-mmosin__unix.adb: Likewise.
8695         * libgnat/s-mmosin__unix.ads: Likewise.
8696         * libgnat/s-multip.adb: Likewise.
8697         * libgnat/s-objrea.adb: Likewise.
8698         * libgnat/s-objrea.ads: Likewise.
8699         * libgnat/s-optide.adb: Likewise.
8700         * libgnat/s-os_lib.adb: Likewise.
8701         * libgnat/s-os_lib.ads: Likewise.
8702         * libgnat/s-osprim.ads: Likewise.
8703         * libgnat/s-osprim__darwin.adb: Likewise.
8704         * libgnat/s-osprim__lynxos.ads: Likewise.
8705         * libgnat/s-osprim__mingw.adb: Likewise.
8706         * libgnat/s-osprim__posix.adb: Likewise.
8707         * libgnat/s-osprim__posix2008.adb: Likewise.
8708         * libgnat/s-osprim__rtems.adb: Likewise.
8709         * libgnat/s-osprim__solaris.adb: Likewise.
8710         * libgnat/s-osprim__unix.adb: Likewise.
8711         * libgnat/s-osprim__x32.adb: Likewise.
8712         * libgnat/s-pack03.adb: Likewise.
8713         * libgnat/s-pack03.ads: Likewise.
8714         * libgnat/s-pack05.adb: Likewise.
8715         * libgnat/s-pack05.ads: Likewise.
8716         * libgnat/s-pack06.adb: Likewise.
8717         * libgnat/s-pack06.ads: Likewise.
8718         * libgnat/s-pack07.adb: Likewise.
8719         * libgnat/s-pack07.ads: Likewise.
8720         * libgnat/s-pack09.adb: Likewise.
8721         * libgnat/s-pack09.ads: Likewise.
8722         * libgnat/s-pack10.adb: Likewise.
8723         * libgnat/s-pack10.ads: Likewise.
8724         * libgnat/s-pack100.adb: Likewise.
8725         * libgnat/s-pack100.ads: Likewise.
8726         * libgnat/s-pack101.adb: Likewise.
8727         * libgnat/s-pack101.ads: Likewise.
8728         * libgnat/s-pack102.adb: Likewise.
8729         * libgnat/s-pack102.ads: Likewise.
8730         * libgnat/s-pack103.adb: Likewise.
8731         * libgnat/s-pack103.ads: Likewise.
8732         * libgnat/s-pack104.adb: Likewise.
8733         * libgnat/s-pack104.ads: Likewise.
8734         * libgnat/s-pack105.adb: Likewise.
8735         * libgnat/s-pack105.ads: Likewise.
8736         * libgnat/s-pack106.adb: Likewise.
8737         * libgnat/s-pack106.ads: Likewise.
8738         * libgnat/s-pack107.adb: Likewise.
8739         * libgnat/s-pack107.ads: Likewise.
8740         * libgnat/s-pack108.adb: Likewise.
8741         * libgnat/s-pack108.ads: Likewise.
8742         * libgnat/s-pack109.adb: Likewise.
8743         * libgnat/s-pack109.ads: Likewise.
8744         * libgnat/s-pack11.adb: Likewise.
8745         * libgnat/s-pack11.ads: Likewise.
8746         * libgnat/s-pack110.adb: Likewise.
8747         * libgnat/s-pack110.ads: Likewise.
8748         * libgnat/s-pack111.adb: Likewise.
8749         * libgnat/s-pack111.ads: Likewise.
8750         * libgnat/s-pack112.adb: Likewise.
8751         * libgnat/s-pack112.ads: Likewise.
8752         * libgnat/s-pack113.adb: Likewise.
8753         * libgnat/s-pack113.ads: Likewise.
8754         * libgnat/s-pack114.adb: Likewise.
8755         * libgnat/s-pack114.ads: Likewise.
8756         * libgnat/s-pack115.adb: Likewise.
8757         * libgnat/s-pack115.ads: Likewise.
8758         * libgnat/s-pack116.adb: Likewise.
8759         * libgnat/s-pack116.ads: Likewise.
8760         * libgnat/s-pack117.adb: Likewise.
8761         * libgnat/s-pack117.ads: Likewise.
8762         * libgnat/s-pack118.adb: Likewise.
8763         * libgnat/s-pack118.ads: Likewise.
8764         * libgnat/s-pack119.adb: Likewise.
8765         * libgnat/s-pack119.ads: Likewise.
8766         * libgnat/s-pack12.adb: Likewise.
8767         * libgnat/s-pack12.ads: Likewise.
8768         * libgnat/s-pack120.adb: Likewise.
8769         * libgnat/s-pack120.ads: Likewise.
8770         * libgnat/s-pack121.adb: Likewise.
8771         * libgnat/s-pack121.ads: Likewise.
8772         * libgnat/s-pack122.adb: Likewise.
8773         * libgnat/s-pack122.ads: Likewise.
8774         * libgnat/s-pack123.adb: Likewise.
8775         * libgnat/s-pack123.ads: Likewise.
8776         * libgnat/s-pack124.adb: Likewise.
8777         * libgnat/s-pack124.ads: Likewise.
8778         * libgnat/s-pack125.adb: Likewise.
8779         * libgnat/s-pack125.ads: Likewise.
8780         * libgnat/s-pack126.adb: Likewise.
8781         * libgnat/s-pack126.ads: Likewise.
8782         * libgnat/s-pack127.adb: Likewise.
8783         * libgnat/s-pack127.ads: Likewise.
8784         * libgnat/s-pack13.adb: Likewise.
8785         * libgnat/s-pack13.ads: Likewise.
8786         * libgnat/s-pack14.adb: Likewise.
8787         * libgnat/s-pack14.ads: Likewise.
8788         * libgnat/s-pack15.adb: Likewise.
8789         * libgnat/s-pack15.ads: Likewise.
8790         * libgnat/s-pack17.adb: Likewise.
8791         * libgnat/s-pack17.ads: Likewise.
8792         * libgnat/s-pack18.adb: Likewise.
8793         * libgnat/s-pack18.ads: Likewise.
8794         * libgnat/s-pack19.adb: Likewise.
8795         * libgnat/s-pack19.ads: Likewise.
8796         * libgnat/s-pack20.adb: Likewise.
8797         * libgnat/s-pack20.ads: Likewise.
8798         * libgnat/s-pack21.adb: Likewise.
8799         * libgnat/s-pack21.ads: Likewise.
8800         * libgnat/s-pack22.adb: Likewise.
8801         * libgnat/s-pack22.ads: Likewise.
8802         * libgnat/s-pack23.adb: Likewise.
8803         * libgnat/s-pack23.ads: Likewise.
8804         * libgnat/s-pack24.adb: Likewise.
8805         * libgnat/s-pack24.ads: Likewise.
8806         * libgnat/s-pack25.adb: Likewise.
8807         * libgnat/s-pack25.ads: Likewise.
8808         * libgnat/s-pack26.adb: Likewise.
8809         * libgnat/s-pack26.ads: Likewise.
8810         * libgnat/s-pack27.adb: Likewise.
8811         * libgnat/s-pack27.ads: Likewise.
8812         * libgnat/s-pack28.adb: Likewise.
8813         * libgnat/s-pack28.ads: Likewise.
8814         * libgnat/s-pack29.adb: Likewise.
8815         * libgnat/s-pack29.ads: Likewise.
8816         * libgnat/s-pack30.adb: Likewise.
8817         * libgnat/s-pack30.ads: Likewise.
8818         * libgnat/s-pack31.adb: Likewise.
8819         * libgnat/s-pack31.ads: Likewise.
8820         * libgnat/s-pack33.adb: Likewise.
8821         * libgnat/s-pack33.ads: Likewise.
8822         * libgnat/s-pack34.adb: Likewise.
8823         * libgnat/s-pack34.ads: Likewise.
8824         * libgnat/s-pack35.adb: Likewise.
8825         * libgnat/s-pack35.ads: Likewise.
8826         * libgnat/s-pack36.adb: Likewise.
8827         * libgnat/s-pack36.ads: Likewise.
8828         * libgnat/s-pack37.adb: Likewise.
8829         * libgnat/s-pack37.ads: Likewise.
8830         * libgnat/s-pack38.adb: Likewise.
8831         * libgnat/s-pack38.ads: Likewise.
8832         * libgnat/s-pack39.adb: Likewise.
8833         * libgnat/s-pack39.ads: Likewise.
8834         * libgnat/s-pack40.adb: Likewise.
8835         * libgnat/s-pack40.ads: Likewise.
8836         * libgnat/s-pack41.adb: Likewise.
8837         * libgnat/s-pack41.ads: Likewise.
8838         * libgnat/s-pack42.adb: Likewise.
8839         * libgnat/s-pack42.ads: Likewise.
8840         * libgnat/s-pack43.adb: Likewise.
8841         * libgnat/s-pack43.ads: Likewise.
8842         * libgnat/s-pack44.adb: Likewise.
8843         * libgnat/s-pack44.ads: Likewise.
8844         * libgnat/s-pack45.adb: Likewise.
8845         * libgnat/s-pack45.ads: Likewise.
8846         * libgnat/s-pack46.adb: Likewise.
8847         * libgnat/s-pack46.ads: Likewise.
8848         * libgnat/s-pack47.adb: Likewise.
8849         * libgnat/s-pack47.ads: Likewise.
8850         * libgnat/s-pack48.adb: Likewise.
8851         * libgnat/s-pack48.ads: Likewise.
8852         * libgnat/s-pack49.adb: Likewise.
8853         * libgnat/s-pack49.ads: Likewise.
8854         * libgnat/s-pack50.adb: Likewise.
8855         * libgnat/s-pack50.ads: Likewise.
8856         * libgnat/s-pack51.adb: Likewise.
8857         * libgnat/s-pack51.ads: Likewise.
8858         * libgnat/s-pack52.adb: Likewise.
8859         * libgnat/s-pack52.ads: Likewise.
8860         * libgnat/s-pack53.adb: Likewise.
8861         * libgnat/s-pack53.ads: Likewise.
8862         * libgnat/s-pack54.adb: Likewise.
8863         * libgnat/s-pack54.ads: Likewise.
8864         * libgnat/s-pack55.adb: Likewise.
8865         * libgnat/s-pack55.ads: Likewise.
8866         * libgnat/s-pack56.adb: Likewise.
8867         * libgnat/s-pack56.ads: Likewise.
8868         * libgnat/s-pack57.adb: Likewise.
8869         * libgnat/s-pack57.ads: Likewise.
8870         * libgnat/s-pack58.adb: Likewise.
8871         * libgnat/s-pack58.ads: Likewise.
8872         * libgnat/s-pack59.adb: Likewise.
8873         * libgnat/s-pack59.ads: Likewise.
8874         * libgnat/s-pack60.adb: Likewise.
8875         * libgnat/s-pack60.ads: Likewise.
8876         * libgnat/s-pack61.adb: Likewise.
8877         * libgnat/s-pack61.ads: Likewise.
8878         * libgnat/s-pack62.adb: Likewise.
8879         * libgnat/s-pack62.ads: Likewise.
8880         * libgnat/s-pack63.adb: Likewise.
8881         * libgnat/s-pack63.ads: Likewise.
8882         * libgnat/s-pack65.adb: Likewise.
8883         * libgnat/s-pack65.ads: Likewise.
8884         * libgnat/s-pack66.adb: Likewise.
8885         * libgnat/s-pack66.ads: Likewise.
8886         * libgnat/s-pack67.adb: Likewise.
8887         * libgnat/s-pack67.ads: Likewise.
8888         * libgnat/s-pack68.adb: Likewise.
8889         * libgnat/s-pack68.ads: Likewise.
8890         * libgnat/s-pack69.adb: Likewise.
8891         * libgnat/s-pack69.ads: Likewise.
8892         * libgnat/s-pack70.adb: Likewise.
8893         * libgnat/s-pack70.ads: Likewise.
8894         * libgnat/s-pack71.adb: Likewise.
8895         * libgnat/s-pack71.ads: Likewise.
8896         * libgnat/s-pack72.adb: Likewise.
8897         * libgnat/s-pack72.ads: Likewise.
8898         * libgnat/s-pack73.adb: Likewise.
8899         * libgnat/s-pack73.ads: Likewise.
8900         * libgnat/s-pack74.adb: Likewise.
8901         * libgnat/s-pack74.ads: Likewise.
8902         * libgnat/s-pack75.adb: Likewise.
8903         * libgnat/s-pack75.ads: Likewise.
8904         * libgnat/s-pack76.adb: Likewise.
8905         * libgnat/s-pack76.ads: Likewise.
8906         * libgnat/s-pack77.adb: Likewise.
8907         * libgnat/s-pack77.ads: Likewise.
8908         * libgnat/s-pack78.adb: Likewise.
8909         * libgnat/s-pack78.ads: Likewise.
8910         * libgnat/s-pack79.adb: Likewise.
8911         * libgnat/s-pack79.ads: Likewise.
8912         * libgnat/s-pack80.adb: Likewise.
8913         * libgnat/s-pack80.ads: Likewise.
8914         * libgnat/s-pack81.adb: Likewise.
8915         * libgnat/s-pack81.ads: Likewise.
8916         * libgnat/s-pack82.adb: Likewise.
8917         * libgnat/s-pack82.ads: Likewise.
8918         * libgnat/s-pack83.adb: Likewise.
8919         * libgnat/s-pack83.ads: Likewise.
8920         * libgnat/s-pack84.adb: Likewise.
8921         * libgnat/s-pack84.ads: Likewise.
8922         * libgnat/s-pack85.adb: Likewise.
8923         * libgnat/s-pack85.ads: Likewise.
8924         * libgnat/s-pack86.adb: Likewise.
8925         * libgnat/s-pack86.ads: Likewise.
8926         * libgnat/s-pack87.adb: Likewise.
8927         * libgnat/s-pack87.ads: Likewise.
8928         * libgnat/s-pack88.adb: Likewise.
8929         * libgnat/s-pack88.ads: Likewise.
8930         * libgnat/s-pack89.adb: Likewise.
8931         * libgnat/s-pack89.ads: Likewise.
8932         * libgnat/s-pack90.adb: Likewise.
8933         * libgnat/s-pack90.ads: Likewise.
8934         * libgnat/s-pack91.adb: Likewise.
8935         * libgnat/s-pack91.ads: Likewise.
8936         * libgnat/s-pack92.adb: Likewise.
8937         * libgnat/s-pack92.ads: Likewise.
8938         * libgnat/s-pack93.adb: Likewise.
8939         * libgnat/s-pack93.ads: Likewise.
8940         * libgnat/s-pack94.adb: Likewise.
8941         * libgnat/s-pack94.ads: Likewise.
8942         * libgnat/s-pack95.adb: Likewise.
8943         * libgnat/s-pack95.ads: Likewise.
8944         * libgnat/s-pack96.adb: Likewise.
8945         * libgnat/s-pack96.ads: Likewise.
8946         * libgnat/s-pack97.adb: Likewise.
8947         * libgnat/s-pack97.ads: Likewise.
8948         * libgnat/s-pack98.adb: Likewise.
8949         * libgnat/s-pack98.ads: Likewise.
8950         * libgnat/s-pack99.adb: Likewise.
8951         * libgnat/s-pack99.ads: Likewise.
8952         * libgnat/s-parame.adb: Likewise.
8953         * libgnat/s-parame.ads: Likewise.
8954         * libgnat/s-parame__hpux.ads: Likewise.
8955         * libgnat/s-parame__posix2008.ads: Likewise.
8956         * libgnat/s-parame__rtems.adb: Likewise.
8957         * libgnat/s-parame__vxworks.adb: Likewise.
8958         * libgnat/s-parame__vxworks.ads: Likewise.
8959         * libgnat/s-parint.adb: Likewise.
8960         * libgnat/s-parint.ads: Likewise.
8961         * libgnat/s-pehage.adb: Likewise.
8962         * libgnat/s-pehage.ads: Likewise.
8963         * libgnat/s-pooglo.adb: Likewise.
8964         * libgnat/s-pooglo.ads: Likewise.
8965         * libgnat/s-pooloc.adb: Likewise.
8966         * libgnat/s-pooloc.ads: Likewise.
8967         * libgnat/s-poosiz.adb: Likewise.
8968         * libgnat/s-poosiz.ads: Likewise.
8969         * libgnat/s-powflt.ads: Likewise.
8970         * libgnat/s-powlfl.ads: Likewise.
8971         * libgnat/s-powllf.ads: Likewise.
8972         * libgnat/s-purexc.ads: Likewise.
8973         * libgnat/s-putima.adb: Likewise.
8974         * libgnat/s-putima.ads: Likewise.
8975         * libgnat/s-rannum.adb: Likewise.
8976         * libgnat/s-rannum.ads: Likewise.
8977         * libgnat/s-ransee.adb: Likewise.
8978         * libgnat/s-ransee.ads: Likewise.
8979         * libgnat/s-regexp.adb: Likewise.
8980         * libgnat/s-regexp.ads: Likewise.
8981         * libgnat/s-regpat.adb: Likewise.
8982         * libgnat/s-regpat.ads: Likewise.
8983         * libgnat/s-resfil.adb: Likewise.
8984         * libgnat/s-resfil.ads: Likewise.
8985         * libgnat/s-restri.adb: Likewise.
8986         * libgnat/s-restri.ads: Likewise.
8987         * libgnat/s-rident.ads: Likewise.
8988         * libgnat/s-rpc.adb: Likewise.
8989         * libgnat/s-rpc.ads: Likewise.
8990         * libgnat/s-scaval.adb: Likewise.
8991         * libgnat/s-scaval.ads: Likewise.
8992         * libgnat/s-scaval__128.adb: Likewise.
8993         * libgnat/s-scaval__128.ads: Likewise.
8994         * libgnat/s-secsta.adb: Likewise.
8995         * libgnat/s-secsta.ads: Likewise.
8996         * libgnat/s-sequio.adb: Likewise.
8997         * libgnat/s-sequio.ads: Likewise.
8998         * libgnat/s-shabig.ads: Likewise.
8999         * libgnat/s-shasto.adb: Likewise.
9000         * libgnat/s-shasto.ads: Likewise.
9001         * libgnat/s-soflin.adb: Likewise.
9002         * libgnat/s-soflin.ads: Likewise.
9003         * libgnat/s-soliin.adb: Likewise.
9004         * libgnat/s-soliin.ads: Likewise.
9005         * libgnat/s-spsufi.adb: Likewise.
9006         * libgnat/s-spsufi.ads: Likewise.
9007         * libgnat/s-stache.adb: Likewise.
9008         * libgnat/s-stache.ads: Likewise.
9009         * libgnat/s-stalib.adb: Likewise.
9010         * libgnat/s-stalib.ads: Likewise.
9011         * libgnat/s-statxd.adb: Likewise.
9012         * libgnat/s-statxd.ads: Likewise.
9013         * libgnat/s-stausa.adb: Likewise.
9014         * libgnat/s-stausa.ads: Likewise.
9015         * libgnat/s-stchop.adb: Likewise.
9016         * libgnat/s-stchop.ads: Likewise.
9017         * libgnat/s-stchop__limit.ads: Likewise.
9018         * libgnat/s-stchop__vxworks.adb: Likewise.
9019         * libgnat/s-stoele.adb: Likewise.
9020         * libgnat/s-stoele.ads: Likewise.
9021         * libgnat/s-stopoo.adb: Likewise.
9022         * libgnat/s-stopoo.ads: Likewise.
9023         * libgnat/s-stposu.adb: Likewise.
9024         * libgnat/s-stposu.ads: Likewise.
9025         * libgnat/s-stratt.adb: Likewise.
9026         * libgnat/s-stratt.ads: Likewise.
9027         * libgnat/s-strcom.adb: Likewise.
9028         * libgnat/s-strcom.ads: Likewise.
9029         * libgnat/s-strhas.adb: Likewise.
9030         * libgnat/s-strhas.ads: Likewise.
9031         * libgnat/s-string.adb: Likewise.
9032         * libgnat/s-string.ads: Likewise.
9033         * libgnat/s-ststop.adb: Likewise.
9034         * libgnat/s-ststop.ads: Likewise.
9035         * libgnat/s-tasloc.adb: Likewise.
9036         * libgnat/s-tasloc.ads: Likewise.
9037         * libgnat/s-traceb.adb: Likewise.
9038         * libgnat/s-traceb.ads: Likewise.
9039         * libgnat/s-traceb__hpux.adb: Likewise.
9040         * libgnat/s-traceb__mastop.adb: Likewise.
9041         * libgnat/s-traent.adb: Likewise.
9042         * libgnat/s-traent.ads: Likewise.
9043         * libgnat/s-trasym.adb: Likewise.
9044         * libgnat/s-trasym.ads: Likewise.
9045         * libgnat/s-trasym__dwarf.adb: Likewise.
9046         * libgnat/s-tsmona.adb: Likewise.
9047         * libgnat/s-tsmona__linux.adb: Likewise.
9048         * libgnat/s-tsmona__mingw.adb: Likewise.
9049         * libgnat/s-unstyp.ads: Likewise.
9050         * libgnat/s-utf_32.adb: Likewise.
9051         * libgnat/s-utf_32.ads: Likewise.
9052         * libgnat/s-vade128.ads: Likewise.
9053         * libgnat/s-vade32.ads: Likewise.
9054         * libgnat/s-vade64.ads: Likewise.
9055         * libgnat/s-vaen16.ads: Likewise.
9056         * libgnat/s-vaen32.ads: Likewise.
9057         * libgnat/s-vaenu8.ads: Likewise.
9058         * libgnat/s-vafi128.ads: Likewise.
9059         * libgnat/s-vafi32.ads: Likewise.
9060         * libgnat/s-vafi64.ads: Likewise.
9061         * libgnat/s-valboo.adb: Likewise.
9062         * libgnat/s-valboo.ads: Likewise.
9063         * libgnat/s-valcha.adb: Likewise.
9064         * libgnat/s-valcha.ads: Likewise.
9065         * libgnat/s-valflt.ads: Likewise.
9066         * libgnat/s-valint.adb: Likewise.
9067         * libgnat/s-valint.ads: Likewise.
9068         * libgnat/s-vallfl.ads: Likewise.
9069         * libgnat/s-valllf.ads: Likewise.
9070         * libgnat/s-vallli.adb: Likewise.
9071         * libgnat/s-vallli.ads: Likewise.
9072         * libgnat/s-valllli.ads: Likewise.
9073         * libgnat/s-vallllu.ads: Likewise.
9074         * libgnat/s-valllu.adb: Likewise.
9075         * libgnat/s-valllu.ads: Likewise.
9076         * libgnat/s-valrea.adb: Likewise.
9077         * libgnat/s-valrea.ads: Likewise.
9078         * libgnat/s-valued.adb: Likewise.
9079         * libgnat/s-valued.ads: Likewise.
9080         * libgnat/s-valuef.adb: Likewise.
9081         * libgnat/s-valuef.ads: Likewise.
9082         * libgnat/s-valuei.adb: Likewise.
9083         * libgnat/s-valuei.ads: Likewise.
9084         * libgnat/s-valuen.adb: Likewise.
9085         * libgnat/s-valuen.ads: Likewise.
9086         * libgnat/s-valuer.adb: Likewise.
9087         * libgnat/s-valuer.ads: Likewise.
9088         * libgnat/s-valueu.adb: Likewise.
9089         * libgnat/s-valueu.ads: Likewise.
9090         * libgnat/s-valuns.adb: Likewise.
9091         * libgnat/s-valuns.ads: Likewise.
9092         * libgnat/s-valuti.adb: Likewise.
9093         * libgnat/s-valuti.ads: Likewise.
9094         * libgnat/s-valwch.adb: Likewise.
9095         * libgnat/s-valwch.ads: Likewise.
9096         * libgnat/s-veboop.adb: Likewise.
9097         * libgnat/s-veboop.ads: Likewise.
9098         * libgnat/s-vector.ads: Likewise.
9099         * libgnat/s-vercon.adb: Likewise.
9100         * libgnat/s-vercon.ads: Likewise.
9101         * libgnat/s-wchcnv.adb: Likewise.
9102         * libgnat/s-wchcnv.ads: Likewise.
9103         * libgnat/s-wchcon.adb: Likewise.
9104         * libgnat/s-wchcon.ads: Likewise.
9105         * libgnat/s-wchjis.adb: Likewise.
9106         * libgnat/s-wchjis.ads: Likewise.
9107         * libgnat/s-wchstw.adb: Likewise.
9108         * libgnat/s-wchstw.ads: Likewise.
9109         * libgnat/s-wchwts.adb: Likewise.
9110         * libgnat/s-wchwts.ads: Likewise.
9111         * libgnat/s-widboo.adb: Likewise.
9112         * libgnat/s-widboo.ads: Likewise.
9113         * libgnat/s-widcha.adb: Likewise.
9114         * libgnat/s-widcha.ads: Likewise.
9115         * libgnat/s-widenu.adb: Likewise.
9116         * libgnat/s-widenu.ads: Likewise.
9117         * libgnat/s-widint.ads: Likewise.
9118         * libgnat/s-widlli.adb: Likewise.
9119         * libgnat/s-widlli.ads: Likewise.
9120         * libgnat/s-widllli.ads: Likewise.
9121         * libgnat/s-widlllu.ads: Likewise.
9122         * libgnat/s-widllu.adb: Likewise.
9123         * libgnat/s-widllu.ads: Likewise.
9124         * libgnat/s-widthi.adb: Likewise.
9125         * libgnat/s-widthi.ads: Likewise.
9126         * libgnat/s-widthu.adb: Likewise.
9127         * libgnat/s-widthu.ads: Likewise.
9128         * libgnat/s-widuns.ads: Likewise.
9129         * libgnat/s-widwch.adb: Likewise.
9130         * libgnat/s-widwch.ads: Likewise.
9131         * libgnat/s-win32.ads: Likewise.
9132         * libgnat/s-winext.ads: Likewise.
9133         * libgnat/s-wwdcha.adb: Likewise.
9134         * libgnat/s-wwdcha.ads: Likewise.
9135         * libgnat/s-wwdenu.adb: Likewise.
9136         * libgnat/s-wwdenu.ads: Likewise.
9137         * libgnat/s-wwdwch.adb: Likewise.
9138         * libgnat/s-wwdwch.ads: Likewise.
9139         * libgnat/system-aix.ads: Likewise.
9140         * libgnat/system-darwin-arm.ads: Likewise.
9141         * libgnat/system-darwin-ppc.ads: Likewise.
9142         * libgnat/system-darwin-x86.ads: Likewise.
9143         * libgnat/system-djgpp.ads: Likewise.
9144         * libgnat/system-dragonfly-x86_64.ads: Likewise.
9145         * libgnat/system-freebsd.ads: Likewise.
9146         * libgnat/system-hpux-ia64.ads: Likewise.
9147         * libgnat/system-hpux.ads: Likewise.
9148         * libgnat/system-linux-alpha.ads: Likewise.
9149         * libgnat/system-linux-arm.ads: Likewise.
9150         * libgnat/system-linux-hppa.ads: Likewise.
9151         * libgnat/system-linux-ia64.ads: Likewise.
9152         * libgnat/system-linux-m68k.ads: Likewise.
9153         * libgnat/system-linux-mips.ads: Likewise.
9154         * libgnat/system-linux-ppc.ads: Likewise.
9155         * libgnat/system-linux-riscv.ads: Likewise.
9156         * libgnat/system-linux-s390.ads: Likewise.
9157         * libgnat/system-linux-sh4.ads: Likewise.
9158         * libgnat/system-linux-sparc.ads: Likewise.
9159         * libgnat/system-linux-x86.ads: Likewise.
9160         * libgnat/system-lynxos178-ppc.ads: Likewise.
9161         * libgnat/system-lynxos178-x86.ads: Likewise.
9162         * libgnat/system-mingw.ads: Likewise.
9163         * libgnat/system-qnx-aarch64.ads: Likewise.
9164         * libgnat/system-rtems.ads: Likewise.
9165         * libgnat/system-solaris-sparc.ads: Likewise.
9166         * libgnat/system-solaris-x86.ads: Likewise.
9167         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
9168         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
9169         * libgnat/system-vxworks-arm.ads: Likewise.
9170         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
9171         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
9172         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
9173         * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
9174         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
9175         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
9176         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
9177         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
9178         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
9179         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
9180         * libgnat/system-vxworks7-aarch64.ads: Likewise.
9181         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
9182         * libgnat/system-vxworks7-arm.ads: Likewise.
9183         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
9184         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
9185         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
9186         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
9187         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
9188         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
9189         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
9190         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
9191         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
9192         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
9193         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
9194         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
9195         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
9196         * link.c: Likewise.
9197         * live.adb: Likewise.
9198         * live.ads: Likewise.
9199         * locales.c: Likewise.
9200         * make.adb: Likewise.
9201         * make.ads: Likewise.
9202         * make_util.adb: Likewise.
9203         * make_util.ads: Likewise.
9204         * makeusg.adb: Likewise.
9205         * makeusg.ads: Likewise.
9206         * mdll-fil.adb: Likewise.
9207         * mdll-fil.ads: Likewise.
9208         * mdll-utl.adb: Likewise.
9209         * mdll-utl.ads: Likewise.
9210         * mdll.adb: Likewise.
9211         * mdll.ads: Likewise.
9212         * mingw32.h: Likewise.
9213         * mkdir.c: Likewise.
9214         * namet-sp.adb: Likewise.
9215         * namet-sp.ads: Likewise.
9216         * namet.adb: Likewise.
9217         * namet.ads: Likewise.
9218         * namet.h: Likewise.
9219         * nlists.adb: Likewise.
9220         * nlists.ads: Likewise.
9221         * nlists.h: Likewise.
9222         * opt.adb: Likewise.
9223         * opt.ads: Likewise.
9224         * osint-b.adb: Likewise.
9225         * osint-b.ads: Likewise.
9226         * osint-c.adb: Likewise.
9227         * osint-c.ads: Likewise.
9228         * osint-l.adb: Likewise.
9229         * osint-l.ads: Likewise.
9230         * osint-m.adb: Likewise.
9231         * osint-m.ads: Likewise.
9232         * osint.adb: Likewise.
9233         * osint.ads: Likewise.
9234         * output.adb: Likewise.
9235         * output.ads: Likewise.
9236         * par-ch10.adb: Likewise.
9237         * par-ch11.adb: Likewise.
9238         * par-ch12.adb: Likewise.
9239         * par-ch13.adb: Likewise.
9240         * par-ch2.adb: Likewise.
9241         * par-ch3.adb: Likewise.
9242         * par-ch4.adb: Likewise.
9243         * par-ch5.adb: Likewise.
9244         * par-ch6.adb: Likewise.
9245         * par-ch7.adb: Likewise.
9246         * par-ch8.adb: Likewise.
9247         * par-ch9.adb: Likewise.
9248         * par-endh.adb: Likewise.
9249         * par-labl.adb: Likewise.
9250         * par-load.adb: Likewise.
9251         * par-prag.adb: Likewise.
9252         * par-sync.adb: Likewise.
9253         * par-tchk.adb: Likewise.
9254         * par-util.adb: Likewise.
9255         * par.adb: Likewise.
9256         * par.ads: Likewise.
9257         * par_sco.adb: Likewise.
9258         * par_sco.ads: Likewise.
9259         * pprint.adb: Likewise.
9260         * pprint.ads: Likewise.
9261         * prep.adb: Likewise.
9262         * prep.ads: Likewise.
9263         * prepcomp.adb: Likewise.
9264         * prepcomp.ads: Likewise.
9265         * put_scos.adb: Likewise.
9266         * put_scos.ads: Likewise.
9267         * raise-gcc.c: Likewise.
9268         * raise.c: Likewise.
9269         * raise.h: Likewise.
9270         * repinfo-input.adb: Likewise.
9271         * repinfo-input.ads: Likewise.
9272         * repinfo.adb: Likewise.
9273         * repinfo.ads: Likewise.
9274         * repinfo.h: Likewise.
9275         * restrict.adb: Likewise.
9276         * restrict.ads: Likewise.
9277         * rident.ads: Likewise.
9278         * rtfinal.c: Likewise.
9279         * rtinit.c: Likewise.
9280         * rtsfind.adb: Likewise.
9281         * rtsfind.ads: Likewise.
9282         * runtime.h: Likewise.
9283         * s-oscons-tmplt.c: Likewise.
9284         * sa_messages.adb: Likewise.
9285         * sa_messages.ads: Likewise.
9286         * scans.adb: Likewise.
9287         * scans.ads: Likewise.
9288         * scil_ll.adb: Likewise.
9289         * scil_ll.ads: Likewise.
9290         * scn.adb: Likewise.
9291         * scn.ads: Likewise.
9292         * scng.adb: Likewise.
9293         * scng.ads: Likewise.
9294         * scos.adb: Likewise.
9295         * scos.ads: Likewise.
9296         * scos.h: Likewise.
9297         * sdefault.ads: Likewise.
9298         * seh_init.c: Likewise.
9299         * sem.adb: Likewise.
9300         * sem.ads: Likewise.
9301         * sem_aggr.adb: Likewise.
9302         * sem_aggr.ads: Likewise.
9303         * sem_attr.adb: Likewise.
9304         * sem_attr.ads: Likewise.
9305         * sem_aux.adb: Likewise.
9306         * sem_aux.ads: Likewise.
9307         * sem_case.adb: Likewise.
9308         * sem_case.ads: Likewise.
9309         * sem_cat.adb: Likewise.
9310         * sem_cat.ads: Likewise.
9311         * sem_ch10.adb: Likewise.
9312         * sem_ch10.ads: Likewise.
9313         * sem_ch11.adb: Likewise.
9314         * sem_ch11.ads: Likewise.
9315         * sem_ch12.adb: Likewise.
9316         * sem_ch12.ads: Likewise.
9317         * sem_ch13.adb: Likewise.
9318         * sem_ch13.ads: Likewise.
9319         * sem_ch2.adb: Likewise.
9320         * sem_ch2.ads: Likewise.
9321         * sem_ch3.adb: Likewise.
9322         * sem_ch3.ads: Likewise.
9323         * sem_ch4.adb: Likewise.
9324         * sem_ch4.ads: Likewise.
9325         * sem_ch5.adb: Likewise.
9326         * sem_ch5.ads: Likewise.
9327         * sem_ch6.adb: Likewise.
9328         * sem_ch6.ads: Likewise.
9329         * sem_ch7.adb: Likewise.
9330         * sem_ch7.ads: Likewise.
9331         * sem_ch8.adb: Likewise.
9332         * sem_ch8.ads: Likewise.
9333         * sem_ch9.adb: Likewise.
9334         * sem_ch9.ads: Likewise.
9335         * sem_dim.adb: Likewise.
9336         * sem_dim.ads: Likewise.
9337         * sem_disp.adb: Likewise.
9338         * sem_disp.ads: Likewise.
9339         * sem_dist.adb: Likewise.
9340         * sem_dist.ads: Likewise.
9341         * sem_elab.adb: Likewise.
9342         * sem_elab.ads: Likewise.
9343         * sem_elim.adb: Likewise.
9344         * sem_elim.ads: Likewise.
9345         * sem_eval.adb: Likewise.
9346         * sem_eval.ads: Likewise.
9347         * sem_intr.adb: Likewise.
9348         * sem_intr.ads: Likewise.
9349         * sem_mech.adb: Likewise.
9350         * sem_mech.ads: Likewise.
9351         * sem_prag.adb: Likewise.
9352         * sem_prag.ads: Likewise.
9353         * sem_res.adb: Likewise.
9354         * sem_res.ads: Likewise.
9355         * sem_scil.adb: Likewise.
9356         * sem_scil.ads: Likewise.
9357         * sem_smem.adb: Likewise.
9358         * sem_smem.ads: Likewise.
9359         * sem_type.adb: Likewise.
9360         * sem_type.ads: Likewise.
9361         * sem_util.adb: Likewise.
9362         * sem_util.ads: Likewise.
9363         * sem_warn.adb: Likewise.
9364         * sem_warn.ads: Likewise.
9365         * set_targ.adb: Likewise.
9366         * set_targ.ads: Likewise.
9367         * sfn_scan.adb: Likewise.
9368         * sfn_scan.ads: Likewise.
9369         * sigtramp-armdroid.c: Likewise.
9370         * sigtramp-ios.c: Likewise.
9371         * sigtramp-qnx.c: Likewise.
9372         * sigtramp-vxworks-target.h: Likewise.
9373         * sigtramp-vxworks.c: Likewise.
9374         * sigtramp.h: Likewise.
9375         * sinfo-cn.adb: Likewise.
9376         * sinfo-cn.ads: Likewise.
9377         * sinfo-utils.adb: Likewise.
9378         * sinfo-utils.ads: Likewise.
9379         * sinfo.adb: Likewise.
9380         * sinfo.ads: Likewise.
9381         * sinput-c.adb: Likewise.
9382         * sinput-c.ads: Likewise.
9383         * sinput-d.adb: Likewise.
9384         * sinput-d.ads: Likewise.
9385         * sinput-l.adb: Likewise.
9386         * sinput-l.ads: Likewise.
9387         * sinput.adb: Likewise.
9388         * sinput.ads: Likewise.
9389         * socket.c: Likewise.
9390         * spark_xrefs.adb: Likewise.
9391         * spark_xrefs.ads: Likewise.
9392         * sprint.adb: Likewise.
9393         * sprint.ads: Likewise.
9394         * stand.ads: Likewise.
9395         * stringt.adb: Likewise.
9396         * stringt.ads: Likewise.
9397         * stringt.h: Likewise.
9398         * strub.adb: Likewise.
9399         * strub.ads: Likewise.
9400         * style.adb: Likewise.
9401         * style.ads: Likewise.
9402         * styleg.adb: Likewise.
9403         * styleg.ads: Likewise.
9404         * stylesw.adb: Likewise.
9405         * stylesw.ads: Likewise.
9406         * switch-b.adb: Likewise.
9407         * switch-b.ads: Likewise.
9408         * switch-c.adb: Likewise.
9409         * switch-c.ads: Likewise.
9410         * switch-m.adb: Likewise.
9411         * switch-m.ads: Likewise.
9412         * switch.adb: Likewise.
9413         * switch.ads: Likewise.
9414         * sysdep.c: Likewise.
9415         * table.adb: Likewise.
9416         * table.ads: Likewise.
9417         * targext.c: Likewise.
9418         * targparm.adb: Likewise.
9419         * targparm.ads: Likewise.
9420         * tbuild.adb: Likewise.
9421         * tbuild.ads: Likewise.
9422         * tempdir.adb: Likewise.
9423         * tempdir.ads: Likewise.
9424         * terminals.c: Likewise.
9425         * tracebak.c: Likewise.
9426         * treepr.adb: Likewise.
9427         * treepr.ads: Likewise.
9428         * ttypes.ads: Likewise.
9429         * types.adb: Likewise.
9430         * types.ads: Likewise.
9431         * types.h: Likewise.
9432         * uintp.adb: Likewise.
9433         * uintp.ads: Likewise.
9434         * uintp.h: Likewise.
9435         * uname.adb: Likewise.
9436         * uname.ads: Likewise.
9437         * urealp.adb: Likewise.
9438         * urealp.ads: Likewise.
9439         * urealp.h: Likewise.
9440         * usage.adb: Likewise.
9441         * usage.ads: Likewise.
9442         * validsw.adb: Likewise.
9443         * validsw.ads: Likewise.
9444         * vast.adb: Likewise.
9445         * vast.ads: Likewise.
9446         * warnsw.adb: Likewise.
9447         * warnsw.ads: Likewise.
9448         * widechar.adb: Likewise.
9449         * widechar.ads: Likewise.
9450         * xoscons.adb: Likewise.
9451         * xr_tabls.adb: Likewise.
9452         * xr_tabls.ads: Likewise.
9453         * xref_lib.adb: Likewise.
9454         * xref_lib.ads: Likewise.
9455         * xsnamest.adb: Likewise.
9456         * xutil.adb: Likewise.
9457         * xutil.ads: Likewise.
9458
9459 2022-01-11  Richard Kenner  <kenner@adacore.com>
9460
9461         * debug.adb: Add documentation for new -gnatd_u and old -gnatd_R
9462         flags used for GNAT LLVM and its CCG.
9463
9464 2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
9465
9466         * Makefile.rtl (X86_TARGET_PAIRS): Use __builtin variant of
9467         System.Atomic_Counters.
9468         * libgnat/s-atocou__x86.adb: Remove.
9469
9470 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
9471
9472         * gcc-interface/trans.c (Identifier_to_gnu): Use correct subtype.
9473         (elaborate_profile): New function.
9474         (Call_to_gnu): Call it on the formals and the result type before
9475         retrieving the translated result type from the subprogram type.
9476
9477 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
9478
9479         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Fix
9480         computation of boolean result in the unchecked union case.
9481         (components_to_record): Rename MAYBE_UNUSED parameter to IN_VARIANT
9482         and remove local variable of the same name.  Pass NULL recursively
9483         as P_GNU_REP_LIST for nested variants in the unchecked union case.
9484
9485 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
9486
9487         * gcc-interface/trans.c (lvalue_required_p) <N_Pragma>: New case.
9488         <N_Pragma_Argument_Association>: Likewise.
9489         (Pragma_to_gnu) <Pragma_Inspection_Point>: Fetch the corresponding
9490         variable of a constant before marking it as addressable.
9491
9492 2022-01-10  Arnaud Charlet  <charlet@adacore.com>
9493
9494         * gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Remove
9495         s-casuti.ad?, s-crtl.ad?, s-os_lib.ad?.  Update list of object
9496         files accordingly.
9497
9498 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
9499
9500         * libgnat/s-atopri.ads (Atomic_Compare_Exchange): Replaces
9501         deprecated Sync_Compare_And_Swap.
9502         * libgnat/s-atopri.adb (Lock_Free_Try_Write): Switch from __sync
9503         to __atomic builtins.
9504
9505 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
9506
9507         * libgnat/s-exponn.adb, libgnat/s-expont.adb,
9508         libgnat/s-exponu.adb, libgnat/s-widthi.adb,
9509         libgnat/s-widthu.adb: Remove CodePeer annotations for pragma
9510         Loop_Variant.
9511
9512 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
9513
9514         * exp_prag.adb (Expand_Pragma_Loop_Variant): Disable expansion
9515         in CodePeer mode.
9516
9517 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
9518
9519         * sem_util.adb (Is_Child_Or_Sibling): Fix typo in comment.
9520
9521 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
9522
9523         * exp_pakd.adb (Install_PAT): If the PAT is a scalar type, apply
9524         the canonical adjustment to its alignment.
9525
9526 2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
9527
9528         * libgnat/s-atocou__builtin.adb (Decrement, Increment): Switch
9529         from __sync to __atomic builtins; use 'Address to be consistent
9530         with System.Atomic_Primitives.
9531
9532 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
9533
9534         * exp_pakd.adb (Install_PAT): Do not reset the alignment here.
9535         * layout.adb (Layout_Type): Call Adjust_Esize_Alignment after having
9536         copied the RM_Size onto the Esize when the latter is too small.
9537
9538 2022-01-10  Justin Squirek  <squirek@adacore.com>
9539
9540         * sem_warn.adb (Check_References): Handle arrays of tasks
9541         similar to task objects.
9542
9543 2022-01-07  Patrick Bernardi  <bernardi@adacore.com>
9544
9545         * libgnat/a-direct.adb (Search_Data): Remove type.
9546         (Directory_Vectors): New package instantiation.
9547         (Search_State): New type.
9548         (Fetch_Next_Entry): Remove.
9549         (Close): Remove.
9550         (Finalize): Rewritten.
9551         (Full_Name): Ditto.
9552         (Get_Next_Entry): Return next entry from Search results vector
9553         rather than querying the directory directly using readdir.
9554         (Kind): Rewritten.
9555         (Modification_Time): Rewritten.
9556         (More_Entries): Use Search state cursor to determine if more
9557         entries are available for users to read.
9558         (Simple_Name): Rewritten.
9559         (Size): Rewritten.
9560         (Start_Search_Internal): Rewritten to load the contents of the
9561         directory that matches the pattern and filter into the search
9562         object.
9563         * libgnat/a-direct.ads (Search_Type): New type.
9564         (Search_Ptr): Ditto.
9565         (Directory_Entry_Type): Rewritten to support new Start_Search
9566         procedure.
9567         * libgnat/s-filatt.ads (File_Length_Attr): New function.
9568
9569 2022-01-07  Etienne Servais  <servais@adacore.com>
9570
9571         * sem_attr.adb (Check_Reference): Fix condition.
9572
9573 2022-01-07  Ghjuvan Lacambre  <lacambre@adacore.com>
9574
9575         * libgnarl/s-taprop__mingw.adb (Timed_Sleep): Remove "pragma
9576         Unreferenced" for Result.
9577         (Timed_Delay): Likewise.
9578
9579 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9580
9581         * gen_il-gen.adb (Put_Make_Decls): Put pragma Inline in a
9582         dedicated line, so that the current indentation is taken into
9583         account.
9584
9585 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9586
9587         * exp_aggr.adb (Build_Array_Aggr_Code): Fix inconsistent style
9588         in comments and code.
9589
9590 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9591
9592         * exp_aggr.adb (Gen_Assign): Remove explicit initialization for
9593         components of access types.
9594         (Get_Assoc_Expr): Enable initialization for components of all
9595         types that require simple initialization.
9596
9597 2022-01-07  Javier Miranda  <miranda@adacore.com>
9598
9599         * atree.ads (Traverse_Func_With_Parent): New generic subprogram.
9600         (Traverse_Proc_With_Parent): Likewise.
9601         * atree.adb (Parents_Stack): New table used to traverse trees
9602         passing the parent field of each node.
9603         (Internal_Traverse_With_Parent): New generic subprogram.
9604         (Traverse_Func_With_Parent): Likewise.
9605         (Traverse_Proc_With_Parent): Likewise.
9606         * contracts.adb (Fix_Parents): New subprogram.
9607         (Restore_Original_Selected_Component): Enhanced to fix the
9608         parent field of restored nodes.
9609         (Inherit_Condition): Adding assertions to check the parent field
9610         of inherited conditions and to ensure that the built inherited
9611         condition has no reference to the formals of the parent
9612         subprogram.
9613         * sem_util.ads, sem_util.adb (Check_Parents): New subprogram.
9614
9615 2022-01-07  Etienne Servais  <servais@adacore.com>
9616
9617         * sem_attr.adb (Check_Placement_In_Test_Case): Fix typo.
9618
9619 2022-01-07  Justin Squirek  <squirek@adacore.com>
9620
9621         * comperr.adb (Delete_SCIL_Files): Replace unnecessary
9622         Unreferenced pragma with specific pragma Warnings.
9623         * doc/gnat_rm/implementation_defined_pragmas.rst (Unreferenced):
9624         Add documentation for new behavior.
9625         * gnat_rm.texi: Regenerate.
9626         * erroutc.adb (Set_At): Remove useless assignment.
9627         * exp_ch2.adb (In_Assignment_Context): Deleted.
9628         (Is_Object_Renaming_Name): Replace calls to Is_LHS with calls to
9629         Known_To_Be_Assigned.
9630         (Expand_Current_Value): Replace calls to May_Be_Lvalue with
9631         calls to Known_To_Be_Assigned.
9632         (Expand_Entry_Paramter): Replace calls to In_Assignment_Context
9633         with calls to Known_To_Be_Assigned.
9634         * exp_ch4.adb (Expand_N_Op_Rem): Remove unnecessary Unreferenced
9635         pragma.
9636         * exp_imgv.adb (Build_Enumeration_Image_Tables): Default
9637         initialize S_N.
9638         * ghost.adb (Check_Ghost_Policy): Replace call to May_Be_Lvalue
9639         with call to Known_To_Be_Assigned.
9640         * lib-xref.adb (Is_On_LHS): Deleted.
9641         (OK_To_Set_Referenced): Rewrite subprogram to encompass the new
9642         pragma Unreferenced behavior.
9643         (Process_Deferred_References): Replace call to Is_LHS with call
9644         to Known_To_Be_Assigned.
9645         * libgnarl/s-taasde.adb, libgnarl/s-tasren.adb,
9646         libgnarl/s-tpobop.adb, libgnat/a-calend.adb,
9647         libgnat/a-calfor.adb, libgnat/a-cbdlli.adb,
9648         libgnat/a-cbhama.adb, libgnat/a-cbhase.adb,
9649         libgnat/a-cbmutr.adb, libgnat/a-cborma.adb,
9650         libgnat/a-cborse.adb, libgnat/a-cdlili.adb,
9651         libgnat/a-cfhama.adb, libgnat/a-cforse.adb,
9652         libgnat/a-cidlli.adb, libgnat/a-cihama.adb,
9653         libgnat/a-cihase.adb, libgnat/a-cimutr.adb,
9654         libgnat/a-ciorma.adb, libgnat/a-ciormu.adb,
9655         libgnat/a-ciorse.adb, libgnat/a-cohama.adb,
9656         libgnat/a-cohase.adb, libgnat/a-comutr.adb,
9657         libgnat/a-convec.adb, libgnat/a-coorma.adb,
9658         libgnat/a-coormu.adb, libgnat/a-coorse.adb,
9659         libgnat/a-crdlli.adb, libgnat/a-tigeau.adb,
9660         libgnat/a-wtgeau.adb, libgnat/a-ztgeau.adb,
9661         libgnat/g-calend.adb, libgnat/g-comlin.adb,
9662         libgnat/g-expect.adb, libgnat/g-mbflra.adb,
9663         libgnat/g-spipat.adb, libgnat/s-fatgen.adb,
9664         libgnat/s-fileio.adb, libgnat/s-os_lib.adb,
9665         libgnat/s-regpat.adb, libgnat/s-valued.adb,
9666         libgnat/s-valuer.adb: Remove unnecessary Unreferenced pragmas
9667         * sem_ch10.adb (Process_Spec_Clauses): Remove useless
9668         assignments.
9669         * sem_ch13.adb (Validate_Literal_Aspect): Default initialize I.
9670         * sem_ch3.adb (Build_Derived_Concurrent_Type): Default
9671         initialize Corr_Decl.
9672         * sem_ch8.adb (Undefined): Replace calls to Is_LHS with calls to
9673         Known_To_Be_Assigned.
9674         (In_Abstract_View_Pragma): Likewise.
9675         * sem_eval.adb (Eval_Selected_Component): Replace calls to
9676         Is_LHS with calls to Known_To_Be_Assigned.
9677         * sem_res.adb (Init_Component): Replace calls to May_Be_Lvalue
9678         with calls to Known_To_Be_Assigned.
9679         * sem_util.adb, sem_util.ads (End_Label_Loc): Default initialize
9680         Owner.
9681         (Explain_Limited_Type): Default initialize Expr_Func.
9682         (Find_Actual): Modified to handle entry families.
9683         (Is_LHS): Deleted.
9684         (May_Be_Lvalue): Deleted.
9685         (Known_To_Be_Assigned): Modified and improved to handle all
9686         cases.
9687         * sem_warn.adb (Traverse_Result): Replace calls to May_Be_Lvalue
9688         with calls to Known_To_Be_Assigned.
9689         (Check_Ref): Modify error on unreferenced out parameters to take
9690         into account different warning flags.
9691
9692 2022-01-07  Javier Miranda  <miranda@adacore.com>
9693
9694         * sem_ch3.adb (Reorder_Interfaces): When the conflicting
9695         interface is identified we just replace the interface in the
9696         list of interfaces of the tagged type (instead of adding a
9697         duplicate to the list of interfaces).
9698
9699 2022-01-07  Dmitriy Anisimkov  <anisimko@adacore.com>
9700
9701         * adaint.c (__gnat_kill): Terminate process only in case of
9702         SIGKILL, SIGINT, SIGBREAK, SIGTERM, SIGABRT.  Do not call
9703         OpenProcess if not going to terminate process.
9704
9705 2022-01-07  Eric Botcazou  <ebotcazou@adacore.com>
9706
9707         * exp_prag.adb (Expand_Pragma_Inspection_Point): Do a single pass
9708         over the arguments of the pragma.  Set the Address_Taken flag on
9709         them and use the Has_Delayed_Freeze flag to spot those which have
9710         their elaboration delayed.  Reuse the location variable Loc.
9711
9712 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9713
9714         * osint.adb (To_Lower): Clarify that only To_Lower function
9715         causes bootstrap issues; fix style.
9716         * treepr.adb (Print_Str_Mixed_Case): Reuse existing case
9717         conversion routine.
9718         (To_Mixed): Rename from Capitalize; reuse System.Case_Util
9719         procedure and explain the bootstrap issue.
9720
9721 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9722
9723         * exp_ch7.adb (Process_Transients_In_Scope): Remove unnecessary
9724         initialization of Must_Hook; change Detect_Subprogram_Call from
9725         function to procedure; adapt caller.
9726
9727 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9728
9729         * exp_ch5.adb, exp_disp.adb, exp_util.adb, par-ch4.adb,
9730         sem_ch13.adb: Remove extra space before THEN that occurs at the
9731         end of a line.
9732
9733 2022-01-07  Dmitriy Anisimkov  <anisimko@adacore.com>
9734
9735         * expect.c (__gnat_waitpid): Use macros WIFEXITED, WEXITSTATUS,
9736         WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG to get exit status
9737         or signal that caused the child process to terminate/stop.  Do
9738         not process exit status in case of error in waitpid call.
9739         * adaint.c (__gnat_kill): Use of GenerateConsoleCtrlEvent is
9740         removed in Windows variant as it actually is not working and was
9741         terminating the calling process.  Set signal number into exit
9742         code parameter of TerminateProcess to work the same like in
9743         Linux.
9744
9745 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9746
9747         * exp_ch5.adb (Expand_N_Case_Statement): Remove explicit
9748         expansion.
9749
9750 2022-01-07  Etienne Servais  <servais@adacore.com>
9751
9752         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
9753         Update -gnatwr documentation.
9754         * gnat_ugn.texi: Regenerate.
9755
9756 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9757
9758         * exp_unst.adb (Unnest_Subprogram): Sync comment with the
9759         current code.
9760
9761 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9762
9763         * exp_ch4.adb (Raise_Accessibility_Error): Move exception name
9764         to the message string; move << control characters to the end,
9765         for consistency.
9766         * sem_ch6.adb (Analyze_Function_Return): Likewise.
9767         * sem_util.adb (Compile_Time_Constraint_Error): Likewise.
9768         * gcc-interface/decl.c (gnat_to_gnu_entity): Remove quotes
9769         around Storage_Error.
9770         * gcc-interface/trans.c (gnat_to_gnu): Remove quotes around
9771         Constraint_Error.
9772
9773 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9774
9775         * errout.adb (Error_Msg): Move warning suppression code from
9776         Error_Msg_NLE
9777         (Error_Msg_NLE): Warning suppression is now done by the internal
9778         call to Error_Msg.
9779
9780 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9781
9782         * exp_ch3.adb (Expand_N_Object_Declaration): Remove unnecessary
9783         guards.
9784         * exp_ch4.adb (Expand_N_If_Expression): Likewise; clarify comment.
9785         * exp_ch5.adb (Expand_N_If_Statement,
9786         Expand_Iterator_Loop_Over_Container): Likewise.
9787         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Remove redundant
9788         guard.
9789         * freeze.adb (Freeze_All_Ent): Reduce scope of a local variable.
9790
9791 2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
9792
9793         * exp_ch3.adb (Build_Init_Procedure): Remove unnecessary guard.
9794         * exp_disp.adb (Make_DT): Likewise.
9795         * sem_ch12.adb (Analyze_Associations): Likewise.
9796
9797 2022-01-07  Etienne Servais  <servais@adacore.com>
9798
9799         * sem_res.adb (Resolve_Op_Concat_Arg): Check range when
9800         concatenating scalars.
9801
9802 2022-01-07  Bob Duff  <duff@adacore.com>
9803
9804         * treepr.adb (Print_Node_Ref): Change "not Is_Array_Type" to
9805         "Is_Discrete_Type".
9806
9807 2022-01-07  Richard Kenner  <kenner@adacore.com>
9808
9809         * libgnat/g-spipat.ads (Boolean_Func, Natural_Func,
9810         VString_Func): Mark as Favor_Top_Level.
9811         * sem_ch13.adb (Validate_Unchecked_Conversion): Avoid using
9812         internal representation if Unchecked_Conversion between
9813         an access to subprogram and System.Address within the same unit.
9814
9815 2022-01-07  Bob Duff  <duff@adacore.com>
9816
9817         * treepr.adb (Print_Node_Ref): Print the value if available.
9818
9819 2022-01-07  Richard Kenner  <kenner@adacore.com>
9820
9821         * sem_util.ads, sem_util.adb (Get_Fullest_View): Add option to
9822         not recurse and return the next-most-fullest view.
9823
9824 2022-01-07  Bob Duff  <duff@adacore.com>
9825
9826         * sem_ch10.adb (Check_Redundant_Withs): Add a warning if a
9827         library unit with's its own ancestor. Note that this warning is
9828         not triggered for something like "with P.R;" in P.Q, because
9829         there the "with P;" is considered implicit.
9830         * fname-sf.adb, libgnarl/s-stusta.adb, libgnarl/s-tasdeb.ads,
9831         libgnat/a-calfor.adb, libgnat/a-tiboio.adb,
9832         libgnat/a-wwboio.adb, libgnat/a-zzboio.adb, libgnat/i-cobol.adb,
9833         libgnat/s-bitops.adb, libgnat/s-bitops.ads,
9834         libgnat/s-direio.adb, libgnat/s-dwalin.adb,
9835         libgnat/s-geveop.adb, libgnat/s-mmosin__unix.adb,
9836         libgnat/s-os_lib.adb, libgnat/s-os_lib.ads,
9837         libgnat/s-pooglo.ads, libgnat/s-secsta.adb,
9838         libgnat/s-shasto.adb, libgnat/s-stausa.ads,
9839         libgnat/s-stratt.ads, libgnat/s-ststop.adb: Remove with of
9840         parent.
9841         * sinfo.ads: Minor comment fix.
9842
9843 2022-01-07  Bob Duff  <duff@adacore.com>
9844
9845         * osint-m.adb: Remove with_clause and pragma.
9846
9847 2022-01-06  Bob Duff  <duff@adacore.com>
9848
9849         * sem_res.adb (Resolve_Range): Warn on null range, unless we are
9850         inside a generic unit or an instance thereof.
9851         * sem_ch3.adb (Analyze_Subtype_Indication): Minor: avoid double
9852         negative.
9853
9854 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9855
9856         * errout.adb (Adjust_Name_Case): Remove unnecessary declare
9857         block.
9858
9859 2022-01-06  Yannick Moy  <moy@adacore.com>
9860
9861         * libgnat/a-ngcoar.adb: Add pragma to ignore assertions in
9862         instance.
9863         * libgnat/a-ngrear.adb: Likewise.
9864         * libgnat/s-gearop.adb: Prove implementation is free of runtime
9865         errors.
9866         * libgnat/s-gearop.ads: Add contracts to protect against runtime
9867         errors in the generic part.
9868
9869 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9870
9871         * errout.adb (Remove_Warning_Messages): Use traversal procedure
9872         instead of traversal function, since we discard status of each
9873         step anyway.
9874
9875 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9876
9877         * exp_ch4.adb (Expand_Concatenate): There is no reason for using
9878         declaring, raising and catching an exception; a simple return
9879         statement is enough.
9880
9881 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9882
9883         * sem_eval.adb (Eval_Arithmetic_Op): Add Loc parameter to all
9884         calls to Apply_Compile_Time_Constraint_Error related to division
9885         by zero.
9886
9887 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9888
9889         * errout.adb (Remove_Warning_Messages): Remove unnecessary guard.
9890         * exp_util.adb (Kill_Dead_Code): Likewise.
9891         * par_sco.adb (Traverse_Declarations_Or_Statements): Likewise.
9892         * sem_ch3.adb (Build_Derived_Record_Type): Likewise.
9893         * sem_ch4.adb (Traverse_Interfaces): Likewise.
9894         * sem_eval.adb (Traverse_Interfaces): Likewise.
9895         * sem_util.adb (Collect_Interfaces): Likewise.
9896         (Has_Non_Null_Statements, Side_Effect_Free_Statements):
9897         Likewise; turn into WHILE loops, for consistency.
9898
9899 2022-01-06  Etienne Servais  <servais@adacore.com>
9900
9901         * sem_type.adb (Full_View_Covers): Fix typo.
9902
9903 2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
9904
9905         * sem_ch12.adb (Insert_Freeze_Node_For_Instance): When going to
9906         the outer level, do not jump over following instantiations in
9907         the list.
9908
9909 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9910
9911         * err_vars.ads (Warn_On_Instance): Remove; it was a relic from
9912         the previous handling of warning in instances that was removed
9913         decades ago.
9914
9915 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9916
9917         * errout.adb (Error_Msg_Internal): Reorder words.
9918         * erroutc.ads (Is_Warning_Msg): Add closing paren.
9919         * sem_util.adb (Compile_Time_Constraint_Error): Fix casing.
9920
9921 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9922
9923         * sem_res.adb (Resolve_String_Literal): Simplify pointer
9924         arithmetic.
9925
9926 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9927
9928         * sem_res.adb (Resolve_String_Literal): Avoid unnecessary
9929         conversions inside "<" and ">" bodies.
9930
9931 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
9932
9933         * checks.adb (Null_Exclusion_Static_Checks,
9934         Selected_Range_Checks): Fix style.
9935
9936 2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
9937
9938         * sem_ch8.adb (Analyze_Package_Renaming): Do not check for Text_IO
9939         special units when the name of the renaming is a generic instance,
9940         which is the case for package instantiations in the GNAT model.
9941
9942 2022-01-06  Steve Baird  <baird@adacore.com>
9943
9944         * sem_util.adb (Build_Discriminant_Reference): In the unexpected
9945         case where we previously would fail an assertion, we instead
9946         revert to the old behavior.
9947
9948 2022-01-06  Steve Baird  <baird@adacore.com>
9949
9950         * sem_util.adb (Build_Actual_Subtype_Of_Component): Define a new
9951         local function, Build_Discriminant_Reference, and call it in
9952         each of the three cases where Make_Selected_Component was
9953         previously being called to construct a discriminant reference (2
9954         in Build_Actual_Array_Constraint and 1 in
9955         Build_Actual_Record_Constraint). Instead of unconditionally
9956         using the passed-in object name as the prefix for the new
9957         selected component node, this new function checks to see if
9958         perhaps a prefix of that name should be used instead.
9959
9960 2022-01-06  Etienne Servais  <servais@adacore.com>
9961
9962         * atree.adb: Fix typo.
9963         * einfo.ads: Likewise.
9964         * exp_aggr.adb: Likewise.
9965         * exp_ch6.adb: Likewise.
9966         * exp_ch7.adb: Likewise.
9967         * exp_ch9.adb: Likewise.
9968         * exp_prag.adb: Likewise.
9969         * exp_unst.adb: Likewise.
9970         * exp_unst.ads: Likewise.
9971         * exp_util.adb: Likewise.
9972         * par-endh.adb: Likewise.
9973         * par.adb: Likewise.
9974         * restrict.adb: Likewise.
9975         * sem.ads: Likewise.
9976         * sem_ch4.adb: Likewise.
9977         * sem_ch5.adb: Likewise.
9978         * sem_ch6.adb: Likewise.
9979         * sem_ch8.adb: Likewise.
9980         * sem_ch12.adb: Likewise.
9981         * sem_ch13.adb: Likewise.
9982         * sem_dim.adb: Likewise.
9983         * sem_elab.adb: Likewise.
9984         * sem_prag.adb: Likewise.
9985         * sem_res.adb: Likewise.
9986         * sem_util.adb: Likewise.
9987         * sem_util.ads: Likewise.
9988         * sinfo.ads: Likewise.
9989         * sprint.adb: Likewise.
9990         * urealp.adb: Likewise.
9991
9992 2022-01-06  Justin Squirek  <squirek@adacore.com>
9993
9994         * exp_ch3.adb (Build_Assignment): Replace current instance of
9995         type with Init_Proc formal.
9996         * sem_attr.adb (OK_Self_Reference): Handle recognition of
9997         Current_Instance to detect certain expansion.
9998         * sem_ch4.adb (Analyze_One_Call): Set actual's type when the
9999         actual in question is a current instance and its corresponding
10000         formal is an incomplete type.
10001         * sem_util.adb (Is_Current_Instance): Add check for incomplete
10002         views and add comment.
10003
10004 2022-01-06  Bob Duff  <duff@adacore.com>
10005
10006         * libgnat/s-rident.ads (No_Tagged_Type_Registration): New
10007         restriction identifier.
10008         * restrict.ads (Implementation_Restriction): Add restriction.
10009         * exp_ch7.adb (Process_Declarations): Suppress
10010         tagged-type-related finalization actions if the restriction is
10011         active.  Call RTE_Available last.
10012         * exp_disp.adb (Make_DT): Likewise.
10013         * exp_util.adb (Requires_Cleanup_Actions): Return False for a
10014         tagged type declaration if No_Tagged_Type_Registration is
10015         active.
10016         * sem_attr.adb (Check_Stream_Attribute): Check restriction
10017         No_Tagged_Type_Registration.
10018         * libgnat/a-except.ads (Null_Occurrence): Minor: Initialize, to
10019         avoid stopping at a warning in gdb.
10020         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
10021         Document new restriction.
10022         * gnat_rm.texi: Regenerate.
10023
10024 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10025
10026         * par-ch4.adb (P_Simple_Expression): Reuse Null_String_Id.
10027         * prep.adb (Parse_Def_File): Likewise; remove Empty_String.
10028
10029 2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10030
10031         * stand.ads (Any_Access): Delete.
10032         (Universal_Access): New entity.
10033         * einfo.ads: Remove obsolete reference to Any_Access.
10034         * gen_il-gen-gen_entities.adb: Likewise.
10035         * cstand.adb (Create_Standard): Do not create Any_Access and create
10036         Universal_Access as a full type instead.
10037         * errout.adb (Set_Msg_Insertion_Type_Reference): Do not deal with
10038         Any_Access and deal with Universal_Access instead.
10039         * sem_ch3.adb (Analyze_Object_Declaration): Replace Any_Access with
10040         Universal_Access.
10041         * sem_ch4.adb (Analyze_Null): Likewise.
10042         (Find_Non_Universal_Interpretations): Likewise.
10043         (Find_Equality_Types.Try_One_Interp): Likewise and avoid shadowing
10044         by renaming a local variable of the same name.
10045         * sem_res.adb (Make_Call_Into_Operato): Likewise.
10046         (Resolve_Equality_Op): Likewise.
10047         * sem_type.adb (Covers): Likewise.
10048         (Specific_Type): Likewise.
10049
10050 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10051
10052         * treepr.adb (Destroy): Prevent spurious check from CodePeer.
10053
10054 2022-01-06  Yannick Moy  <moy@adacore.com>
10055
10056         * libgnat/s-exponu.adb (Exponu): Add annotation.
10057
10058 2022-01-06  Justin Squirek  <squirek@adacore.com>
10059
10060         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add comments
10061         regarding special handling of components which depend on
10062         discriminants.
10063         * exp_dist.adb (Build_From_Any_Function): Add Real_Rep actual
10064         for calls to Has_Stream_Attribute_Definition.
10065         (Build_To_Any_Function): Likewise.
10066         (Build_TypeCode_Function): Likewise.
10067         * freeze.adb (Freeze_Entity): Add missing comment for Test_E.
10068         * libgnat/s-utf_32.adb: Remove disabled warning comments and
10069         temporarily inserted pragma warnings.  Remove very old (2006 and
10070         2012) comments about bootstrapping older versions.
10071         * par.adb (P_Identifier): Add new parameter Force_Msg.
10072         * par-ch2.adb (P_Identifier): Restructure and clean up function.
10073         * par-ch3.adb (P_Defining_Identifier): Remove code duplication
10074         for parsing identifiers.
10075         * sem_attr.adb (Stream_Attribute_Available): Add missing
10076         comments and add Real_Rep actual for calls to
10077         Has_Stream_Attribute_Definition.
10078         * sem_cat.adb (Has_Read_Write_Attribute): Add Real_Rep actual
10079         for calls to Has_Stream_Attribute_Definition.
10080         (Has_Stream_Attribute_Definition): Remove local Real_Rep and fix
10081         recursive calls. Add default value for Real_Rep.
10082         * sem_cat.ads (Has_Stream_Attribute_Definition): Add new out
10083         parameter "Real_Rep".
10084         * sem_type.adb (Add_Entry): Add condition to avoid passing
10085         non-function calls to Function_Interp_Has_Abstract_Op.
10086         (Function_Interp_Has_Abstract_Op): Add missing comments and
10087         remove check for Is_Overloadable.
10088         * sem_util.adb (Derivation_Too_Early_To_Inherit): Remove
10089         duplicated code.
10090
10091 2022-01-06  Javier Miranda  <miranda@adacore.com>
10092
10093         * contracts.adb (Restore_Original_Selected_Component): New
10094         subprogram that traverses a preanalyzed expression searching for
10095         dispatching calls to functions whose original node was a
10096         selected component, and replacing them with their original node.
10097         This functionality is required because the preanalyis of
10098         dispatching calls using the Object.Operation notation transforms
10099         such calls, and we need the original condition to properly
10100         inherit and extend the condition expression on tagged type
10101         derivations.  This functionality was previously provided by the
10102         routine Install_Original_Selected_Component (as part of
10103         inheriting conditions); now it is performed as part of the
10104         preanalysis of the condition, thus avoiding repeatedly
10105         installing and restoring such nodes.
10106         (Install_Original_Selected_Component): Removed.
10107         (Restore_Dispatching_Calls): Removed.
10108
10109 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10110
10111         * treepr.adb (Visit_Node): Simplify repeated call to
10112         Next_Entity.
10113
10114 2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
10115
10116         * treepr.ads (Treepr, Print_Tree_List, Print_Tree_Elist): Fix
10117         style in comments.
10118         * treepr.adb (Serial_Numbers): Hash table instance.
10119         (Hash): Hashing routine.
10120         (Print_Field): Fix style.
10121         (Print_Init): Adapt to simple hash table.
10122         (Print_Term): Likewise.
10123         (Serial_Numbers): Likewise.
10124         (Set_Serial_Number): Likewise.
10125
10126 2022-01-06  Yannick Moy  <moy@adacore.com>
10127
10128         * libgnat/s-expmod.adb: Mark in SPARK. Add ghost code for proof.
10129         * libgnat/s-expmod.ads: Mark in SPARK. Add ghost specifications.
10130
10131 2022-01-06  Yannick Moy  <moy@adacore.com>
10132
10133         * libgnat/s-explllu.ads: Mark in SPARK.
10134         * libgnat/s-expllu.ads: Mark in SPARK.
10135         * libgnat/s-exponu.adb: Add loop invariants and needed
10136         assertions.
10137         * libgnat/s-exponu.ads: Add functional contract.
10138         * libgnat/s-expuns.ads: Mark in SPARK.
10139
10140 2022-01-05  Steve Baird  <baird@adacore.com>
10141
10142         * exp_ch5.adb (Finish_Binding_Object_Declaration): Fix a bug
10143         that was introduced in the previous commit.  The previous
10144         version initialized a Boolean constant Declare_Copy before the
10145         variable Decl had been initialized properly.
10146
10147 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10148
10149         * sem_prag.adb (Adjust_External_Name_Case): Use membership test.
10150
10151 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10152
10153         * exp_ch3.adb (Make_Controlling_Function_Wrappers): For
10154         GNATprove build the wrapper as an expression function.
10155
10156 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10157
10158         * exp_ch3.ads (Make_Controlling_Function_Wrappers): Move
10159         declaration from body to spec, so it can be called by
10160         SPARK-specific expansion.
10161         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Likewise.
10162         * exp_spark.adb (SPARK_Freeze_Type): Enable expansion of
10163         wrappers for function with controlling result types.
10164
10165 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10166
10167         * exp_dbug.adb, sem_dim.adb: Replace Add_Str_To_Name_Buffer with
10168         Add_Char_To_Name_Buffer.
10169
10170 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10171
10172         * gnatls.adb (Gnatls): Use Name_Find function.
10173         * targparm.adb (Get_Target_Parameters): Likewise.
10174
10175 2022-01-05  Bob Duff  <duff@adacore.com>
10176
10177         * repinfo.adb (List_Entities): The code was assuming that if we
10178         encounter a package in the current scope, then it must be
10179         a (physically) nested package.  That was wrong, because it could
10180         be a child package.  Avoid recursing into child packages; they
10181         have not been annotated with representation information, and
10182         -gnatR2 queries that information.
10183
10184 2022-01-05  Marc Poulhiès  <poulhies@adacore.com>
10185
10186         * libgnat/s-sopco3.ads, libgnat/s-sopco3.adb: Remove.
10187         * libgnat/s-sopco4.ads, libgnat/s-sopco4.adb: Remove.
10188         * libgnat/s-sopco5.ads, libgnat/s-sopco5.adb: Remove.
10189         * libgnat/s-strops.ads, libgnat/s-strops.adb: Remove.
10190         * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove occurences of removed
10191         units.
10192         * gcc-interface/Make-lang.in (ada/sdefault.o): Remove
10193         dependencies on removed units.
10194         (GNATBIND_OBJS): Remove occurences of removed units.
10195
10196 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10197
10198         * exp_ch3.adb (Build_Dcheck_Function): Remove extra whitespace.
10199         * libgnarl/s-taskin.adb (Initialize_ATCB): Likewise.
10200
10201 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10202
10203         * exp_attr.adb (Build_Array_VS_Func): Remove explicit "IN" in
10204         spec of the generated array validation function; it was
10205         redundant, just like it would be in a user-written code.
10206
10207 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10208
10209         * exp_ch4.adb (Expand_N_Op_Ne): Fix whitespace.
10210         * sem_dim.adb (Expand_Put_Call_With_Symbol): Likewise.
10211         (Reduce): Likewise.
10212
10213 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10214
10215         * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Fix whitespace.
10216         * libgnat/a-cofuve.ads (Add): Likewise.
10217         * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise.
10218
10219 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10220
10221         * exp_ch3.adb (Make_Eq_Body, Make_Neq_Body,
10222         Make_Predefined_Primitive_Eq_Spec,
10223         Make_Predefined_Primitive_Specs): Fix whitespace.
10224
10225 2022-01-05  Etienne Servais  <servais@adacore.com>
10226
10227         * sem_ch3.adb (Analyze_Component_Declaration): Rework condition
10228         to build subtypes.
10229         (Analyze_Object_Declaration): Likewise.
10230         (Should_Build_Subtype): New.
10231
10232 2022-01-05  Yannick Moy  <moy@adacore.com>
10233
10234         * libgnat/s-arit128.adb: Mark in SPARK.
10235         * libgnat/s-arit128.ads: Add functional contracts.
10236
10237 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10238
10239         * sem_util.adb (String_From_Numeric_Literal): Simplify using
10240         membership tests and ranges; fix whitespace.
10241
10242 2022-01-05  Yannick Moy  <moy@adacore.com>
10243
10244         * libgnat/s-expint.ads: Mark in SPARK. Adapt to change to
10245         package.
10246         * libgnat/s-explli.ads: Likewise.
10247         * libgnat/s-expllli.ads: Likewise.
10248         * libgnat/s-expont.adb: Add lemmas and ghost code.
10249         * libgnat/s-expont.ads: Add functional contract.
10250
10251 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10252
10253         * exp_disp.adb (Gen_Parameters_Profile): Remove redundant guard.
10254
10255 2022-01-05  Claire Dross  <dross@adacore.com>
10256
10257         * libgnat/s-valuti.ads (Starts_As_Exponent_Format_Ghost): Ghost
10258         function to determine if a string is recognized as something
10259         which might be an exponent.
10260         (Is_Opt_Exponent_Format_Ghost): Ghost function to determine if a
10261         string has the correct format for an optional exponent.
10262         (Scan_Exponent): Use ghost functions to factorize contracts.
10263
10264 2022-01-05  Bob Duff  <duff@adacore.com>
10265
10266         * exp_util.ads (Get_Current_Value_Condition): Belt: Add a
10267         postcondition that Val /= Var.
10268         * sem_util.adb (Known_Null): Suspenders: Raise Program_Error if
10269         Get_Current_Value_Condition returned the same value. This will
10270         be enabled even without assertions, because infinite recursion
10271         is a nuisance -- better to crash if this bug ever occurs.
10272
10273 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10274
10275         * exp_ch3.adb (Make_Null_Procedure_Specs): Simplify by reusing
10276         Copy_Subprogram_Spec.
10277         * sem_util.ads (Copy_Subprogram_Spec): Add New_Sloc parameter.
10278         * sem_util.adb (Copy_Subprogram_Spec): Pass New_Sloc to
10279         New_Copy_Tree.
10280
10281 2022-01-05  Yannick Moy  <moy@adacore.com>
10282
10283         * libgnat/s-exnint.ads: Mark in SPARK. Adapt to change to
10284         package.
10285         * libgnat/s-exnlli.ads: Likewise.
10286         * libgnat/s-exnllli.ads: Likewise.
10287         * libgnat/s-exponn.adb: Add lemmas and ghost code. Secial case
10288         value zero as Left or Right to simplify proof.
10289         * libgnat/s-exponn.ads: Transform the generic function into a
10290         generic package with a function inside. Add a functional
10291         contract.
10292
10293 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10294
10295         * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove redundant
10296         call to Set_Defining_Unit_Name; a similar call is done few lines
10297         below.
10298
10299 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10300
10301         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create
10302         distinct copies of parameter lists for spec and body with
10303         Copy_Parameter_List; cleanup.
10304         (Make_Null_Procedure_Specs): Fix style in comments; remove a
10305         potentially unnecessary initialization of a local variable.
10306
10307 2022-01-05  Bob Duff  <duff@adacore.com>
10308
10309         * einfo-utils.ads, einfo-utils.adb (Renamed_Entity Alias):
10310         Change Node_Id to Entity_Id.
10311
10312 2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
10313
10314         * sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wrapper):
10315         Remove unreferenced spec.
10316         * sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wrapper):
10317         Remove dead bodies.
10318
10319 2022-01-05  Yannick Moy  <moy@adacore.com>
10320
10321         * libgnat/s-aridou.adb: Apply replacement.
10322
10323 2022-01-05  Yannick Moy  <moy@adacore.com>
10324
10325         * libgnat/s-aridou.adb (Lemma_Word_Commutation): Fix for
10326         instances with other values of Single_Size.
10327
10328 2022-01-05  Marc Poulhiès  <poulhies@adacore.com>
10329
10330         * doc/gnat_rm/implementation_defined_pragmas.rst (Compiler_Unit)
10331         (Compiler_Unit_Warning): Remove.
10332         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
10333         * libgnat/g-dynhta.ads: Add comment indicating this unit is
10334         built during stage1.
10335         * libgnat/g-dyntab.ads: Likewise.
10336         * libgnat/g-graphs.ads: Likewise.
10337         * libgnat/g-lists.ads: Likewise.
10338         * libgnat/g-sets.ads: Likewise.
10339         * libgnat/gnat.ads: Likewise.
10340         * libgnat/s-pehage.ads: Likewise.
10341         * libgnat/s-resfil.ads: Likewise.
10342         * libgnat/s-rident.ads: Likewise.
10343         * libgnat/s-utf_32.ads: Likewise.
10344         * errout.ads: Update comment.
10345         * opt.ads (Opt): Remove Compiler_Unit.
10346         * par-ch5.adb (All_Pragmas): Remove call to Check_Compiler_Unit.
10347         * sem_prag.adb (Analyze_Pragma): Likewise.
10348         * sem_ch4.adb (Non_Static_Choice_Error, Analyze_If_Expression)
10349         (Analyze_Set_Membership, Record_Interp): Likewise.
10350         * sem_ch11.adb (Analyze_Raise_Expression): Likewise.
10351         * sem_ch6.adb: Remove Restric package reference.
10352         (Analyze_Extended_Return_Statement): Remove call to
10353         Check_Compiler_Unit.
10354         * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings):
10355         Remove handling of Pragma_Compiler_Unit[_Warning}.
10356         * restrict.adb (Check_Compiler_Unit): Remove both.
10357         * restrict.ads: Likewise.
10358         * snames.ads-tmpl (Pragma_Id): Remove
10359         Pragma_Compiler_Unit[_Warning].
10360         * libgnat/a-assert.ads: Remove pragma Compiler_Unit_Warning.
10361         * libgnat/a-chlat1.ads: Likewise.
10362         * libgnat/a-elchha.adb: Likewise.
10363         * libgnat/a-elchha.ads: Likewise.
10364         * libgnat/a-ioexce.ads: Likewise.
10365         * libgnat/a-strhas.ads: Likewise.
10366         * libgnat/g-byorma.adb: Likewise.
10367         * libgnat/g-byorma.ads: Likewise.
10368         * libgnat/g-dyntab.adb: Likewise.
10369         * libgnat/g-heasor.ads: Likewise.
10370         * libgnat/g-hesora.adb: Likewise.
10371         * libgnat/g-hesora.ads: Likewise.
10372         * libgnat/g-htable.adb: Likewise.
10373         * libgnat/g-htable.ads: Likewise.
10374         * libgnat/g-spchge.adb: Likewise.
10375         * libgnat/g-spchge.ads: Likewise.
10376         * libgnat/g-speche.adb: Likewise.
10377         * libgnat/g-speche.ads: Likewise.
10378         * libgnat/g-table.ads: Likewise.
10379         * libgnat/g-u3spch.adb: Likewise.
10380         * libgnat/g-u3spch.ads: Likewise.
10381         * libgnat/interfac.ads: Likewise.
10382         * libgnat/s-addope.adb: Likewise.
10383         * libgnat/s-addope.ads: Likewise.
10384         * libgnat/s-assert.adb: Likewise.
10385         * libgnat/s-assert.ads: Likewise.
10386         * libgnat/s-bitops.adb: Likewise.
10387         * libgnat/s-bitops.ads: Likewise.
10388         * libgnat/s-carun8.adb: Likewise.
10389         * libgnat/s-carun8.ads: Likewise.
10390         * libgnat/s-casuti.adb: Likewise.
10391         * libgnat/s-casuti.ads: Likewise.
10392         * libgnat/s-conca2.adb: Likewise.
10393         * libgnat/s-conca2.ads: Likewise.
10394         * libgnat/s-conca3.adb: Likewise.
10395         * libgnat/s-conca3.ads: Likewise.
10396         * libgnat/s-conca4.adb: Likewise.
10397         * libgnat/s-conca4.ads: Likewise.
10398         * libgnat/s-conca5.adb: Likewise.
10399         * libgnat/s-conca5.ads: Likewise.
10400         * libgnat/s-conca6.adb: Likewise.
10401         * libgnat/s-conca6.ads: Likewise.
10402         * libgnat/s-conca7.adb: Likewise.
10403         * libgnat/s-conca7.ads: Likewise.
10404         * libgnat/s-conca8.adb: Likewise.
10405         * libgnat/s-conca8.ads: Likewise.
10406         * libgnat/s-conca9.adb: Likewise.
10407         * libgnat/s-conca9.ads: Likewise.
10408         * libgnat/s-crc32.adb: Likewise.
10409         * libgnat/s-crc32.ads: Likewise.
10410         * libgnat/s-crtl.ads: Likewise.
10411         * libgnat/s-excdeb.adb: Likewise.
10412         * libgnat/s-excdeb.ads: Likewise.
10413         * libgnat/s-except.ads: Likewise.
10414         * libgnat/s-exctab.adb: Likewise.
10415         * libgnat/s-exctab.ads: Likewise.
10416         * libgnat/s-finmas.ads: Likewise.
10417         * libgnat/s-htable.adb: Likewise.
10418         * libgnat/s-htable.ads: Likewise.
10419         * libgnat/s-mastop.adb: Likewise.
10420         * libgnat/s-mastop.ads: Likewise.
10421         * libgnat/s-memory.adb: Likewise.
10422         * libgnat/s-memory.ads: Likewise.
10423         * libgnat/s-os_lib.ads: Likewise.
10424         * libgnat/s-parame.adb: Likewise.
10425         * libgnat/s-parame.ads: Likewise.
10426         * libgnat/s-parame__posix2008.ads: Likewise.
10427         * libgnat/s-purexc.ads: Likewise.
10428         * libgnat/s-resfil.adb: Likewise.
10429         * libgnat/s-restri.adb: Likewise.
10430         * libgnat/s-restri.ads: Likewise.
10431         * libgnat/s-secsta.adb: Likewise.
10432         * libgnat/s-secsta.ads: Likewise.
10433         * libgnat/s-soflin.adb: Likewise.
10434         * libgnat/s-soflin.ads: Likewise.
10435         * libgnat/s-sopco3.adb: Likewise.
10436         * libgnat/s-sopco3.ads: Likewise.
10437         * libgnat/s-sopco4.adb: Likewise.
10438         * libgnat/s-sopco4.ads: Likewise.
10439         * libgnat/s-sopco5.adb: Likewise.
10440         * libgnat/s-sopco5.ads: Likewise.
10441         * libgnat/s-spsufi.ads: Likewise.
10442         * libgnat/s-stache.adb: Likewise.
10443         * libgnat/s-stache.ads: Likewise.
10444         * libgnat/s-stalib.adb: Likewise.
10445         * libgnat/s-stalib.ads: Likewise.
10446         * libgnat/s-stoele.adb: Likewise.
10447         * libgnat/s-stoele.ads: Likewise.
10448         * libgnat/s-strcom.adb: Likewise.
10449         * libgnat/s-strcom.ads: Likewise.
10450         * libgnat/s-strhas.adb: Likewise.
10451         * libgnat/s-string.adb: Likewise.
10452         * libgnat/s-string.ads: Likewise.
10453         * libgnat/s-strops.adb: Likewise.
10454         * libgnat/s-strops.ads: Likewise.
10455         * libgnat/s-ststop.adb: Likewise.
10456         * libgnat/s-ststop.ads: Likewise.
10457         * libgnat/s-traceb.adb: Likewise.
10458         * libgnat/s-traceb.ads: Likewise.
10459         * libgnat/s-traent.adb: Likewise.
10460         * libgnat/s-traent.ads: Likewise.
10461         * libgnat/s-utf_32.adb: Likewise.
10462         * libgnat/s-unstyp.ads: Likewise.
10463         * libgnat/s-wchcnv.adb: Likewise.
10464         * libgnat/s-wchcnv.ads: Likewise.
10465         * libgnat/s-wchcon.adb: Likewise.
10466         * libgnat/s-wchcon.ads: Likewise.
10467         * libgnat/s-wchjis.adb: Likewise.
10468         * libgnat/s-wchjis.ads: Likewise.
10469
10470 2022-01-05  Arnaud Charlet  <charlet@adacore.com>
10471
10472         * osint.adb (File_Names_Equal): Declare To_Lower locally.
10473         * osint.ads (Null_FD): New.
10474         * fmap.adb, sinput-l.adb, targparm.adb: Adapt to changes above.
10475         * switch-b.adb (Scan_Debug_Switches): Use Is_Regular_File to
10476         simplify the bootstrap dependencies.
10477
10478 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
10479
10480         * gnat_ugn.texi: Bump @copying's copyright year.
10481         * gnat_rm.texi: Likewise.
10482
10483 \f
10484 Copyright (C) 2022 Free Software Foundation, Inc.
10485
10486 Copying and distribution of this file, with or without modification,
10487 are permitted in any medium without royalty provided the copyright
10488 notice and this notice are preserved.