1 2023-05-29 Cedric Landet <landet@adacore.com>
3 * s-oscons-tmplt.c: move the definition of sigset out of the
6 2023-05-29 Cedric Landet <landet@adacore.com>
8 * Makefile.rtl: Move g-spogwa$(objext) from GNATRTL_NONTASKING_OBJS
9 to GNATRTL_SOCKETS_OBJS
11 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
13 * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in
14 both cases to copy the spec of the subprogram.
16 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
18 * exp_ch7.adb (Establish_Transient_Scope.Find_Transient_Context):
19 Bail out for a simple return statement only if the transient scope
20 and the function both require secondary stack management, or else
21 if the function is a thunk.
22 * sem_res.adb (Resolve_Call): Do not create a transient scope when
23 the call is the expression of a simple return statement.
25 2023-05-29 Patrick Bernardi <bernardi@adacore.com>
27 * libgnat/a-excach.adb (Call_Chain): Replace
28 Code_Address_For_AAA/ZZZ functions with AAA/ZZZ'Code_Address.
29 * libgnat/a-except.adb (Code_Address_For_AAA/ZZZ): Delete.
30 (AAA/ZZZ): New null procedures.
31 * libgnat/g-debpoo.adb
32 (Code_Address_For_Allocate_End): Delete.
33 (Code_Address_For_Deallocate_End): Delete.
34 (Code_Address_For_Dereference_End): Delete.
35 (Allocate): Remove label and use Code_Address attribute to
36 determine subprogram addresses.
37 (Dellocate): Likewise.
38 (Dereference): Likewise.
39 (Allocate_End): Convert to null procedure.
40 (Dellocate_End): Likewise.
41 (Dereference_End): Likewise.
43 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
45 * exp_ch6.adb (Expand_Simple_Function_Return): Call Insert_Actions
46 consistently when rewriting the expression.
48 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
50 * exp_util.adb (Is_Finalizable_Transient.Is_Indexed_Container):
51 New predicate to detect a temporary created to hold the result of
52 a constant indexing on a container.
53 (Is_Finalizable_Transient.Is_Iterated_Container): Adjust a couple
55 (Is_Finalizable_Transient): Return False if Is_Indexed_Container
56 returns True on the object.
58 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
60 * sem_res.adb (Has_Applicable_User_Defined_Literal): Make it clear
61 that the predicate also checks the node itself.
62 (Try_User_Defined_Literal): Move current implementation to...
63 Deal only with literals, named numbers and conditional expressions
64 whose dependent expressions are literals or named numbers.
65 (Try_User_Defined_Literal_For_Operator): ...this. Remove multiple
66 return False statements and put a single one at the end.
67 (Resolve): Call Try_User_Defined_Literal instead of directly
68 Has_Applicable_User_Defined_Literal for all nodes. Call
69 Try_User_Defined_Literal_For_Operator for operator nodes.
71 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
73 * sem_res.adb (Invoked_With_Different_Arguments): Use Get_Called_Entity,
74 which properly deals with calls via an access-to-subprogram; fix
75 inconsistent use of a Call object declared in enclosing subprogram.
77 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
80 (Add_Pre_Post_Condition): Attach pre/post aspects to E_Subprogram_Type
82 (Analyze_Entry_Or_Subprogram_Contract): Adapt to use full type
83 declaration for a contract attached to E_Subprogram_Type entity.
85 (Analyze_Pre_Post_Condition): Add pre/post aspects to the designed type.
87 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
89 * sem_util.adb (Check_Function_Writable_Actuals): Remove guard against
90 a membership test with no alternatives; simplify with a membership test.
92 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
94 * doc/gnat_ugn/gnat_and_program_execution.rst
95 (Some Useful Memory Pools): Remove extra whitespace from examples.
96 * sem_aggr.adb (Make_String_Into_Aggregate): Remove extra whitespace.
97 * gnat_ugn.texi: Regenerate.
99 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
101 * exp_aggr.adb (Convert_Aggr_In_Allocator): Replace Get_TSS_Name
102 with a high-level Is_TSS.
103 * sem_ch6.adb (Check_Conformance): Replace DECLARE block and
104 nested IF with a call to Get_TSS_Name and a membership test.
105 (Has_Reliable_Extra_Formals): Refactor repeated calls to
107 * sem_disp.adb (Check_Dispatching_Operation): Replace repeated
108 calls to Get_TSS_Name with a membership test.
110 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
112 * exp_ch5.adb (Expand_N_Case_Statement): Do not remove the statement
113 if it is the node to be wrapped by a transient scope.
115 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
117 * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not defer
118 anything to the back-end when the main unit is generic.
120 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
122 * sem_res.adb (Try_User_Defined_Literal): Restrict previous change
125 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
127 * sem_res.adb (Try_User_Defined_Literal): For arithmetic operators,
128 also accept operands whose type is covered by the resolution type.
130 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
132 * exp_aggr.adb (Initialize_Array_Component): Fix condition detecting
133 the nested case that requires an adjustment.
135 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
137 * exp_ch4.adb (Expand_N_In): Deal specifically with a null operand.
139 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
141 * exp_ch6.adb (Expand_Simple_Function_Return): Deal with a rewriting
142 of the simple return during the adjustment of its expression.
144 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
146 * exp_ch4.adb (Expand_N_Case_Expression): Distribute simple return
147 statements enclosing the conditional expression into the dependent
148 expressions in almost all cases.
149 (Expand_N_If_Expression): Likewise.
150 (Process_Transient_In_Expression): Adjust to the above distribution.
151 * exp_ch6.adb (Expand_Ctrl_Function_Call): Deal with calls in the
152 dependent expressions of a conditional expression.
153 * sem_ch6.adb (Analyze_Function_Return): Deal with the rewriting of
154 a simple return statement during the resolution of its expression.
156 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
158 * sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases.
160 2023-05-29 Marc Poulhiès <poulhies@adacore.com>
162 * exp_aggr.adb (Convert_To_Assignments): Do not mark node for
163 delayed expansion if parent type has the Aggregate aspect.
164 * sem_util.adb (Is_Container_Aggregate): Move...
165 * sem_util.ads (Is_Container_Aggregate): ... here and make it
168 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
170 * sem_res.adb (Resolve_Entity_Name): Relax rules for Exceptional_Cases.
172 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
174 * sem_ch4.ads (Unresolved_Operator): New procedure.
175 * sem_ch4.adb (Has_Possible_Literal_Aspects): Rename into...
176 (Has_Possible_User_Defined_Literal): ...this. Tidy up.
177 (Operator_Check): Accept again unresolved operators if they have a
178 possible user-defined literal as operand. Factor out the handling
179 of the general error message into...
180 (Unresolved_Operator): ...this new procedure.
181 * sem_res.adb (Resolve): Be prepared for unresolved operators on
182 entry in Ada 2022 or later. If they are still unresolved on exit,
183 call Unresolved_Operator to give the error message.
184 (Try_User_Defined_Literal): Tidy up.
186 2023-05-29 Steve Baird <baird@adacore.com>
189 (Expand_N_Object_Declaration.Default_Initialize_Object): Add test for
190 specified Default_Component_Value aspect when deciding whether
191 either Initialize_Scalars or Normalize_Scalars impacts default
192 initialization of an array object.
194 2023-05-29 Javier Miranda <miranda@adacore.com>
197 (Resolve_Record_Aggregate): For aggregates of derived tagged
198 record types with discriminants, when collecting components
199 from ancestors, pass to subprogram Gather_Components the
200 parent type. Required to report errors on wrong aggregate
203 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
205 * sem_util.adb (Check_Result_And_Post_State): Replace low-level
206 navigation with a high-level Unique_Entity.
208 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
210 * sem_util.adb (Check_Result_And_Post_State): Properly handle entry
213 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
215 * contracts.adb (Fix_Parent): Fir part both for lists and nodes.
217 2023-05-29 Arnaud Charlet <charlet@adacore.com>
219 * sem_ch7.adb: Refine handling of inlining for CCG
221 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
223 * sem_ch12.adb (Copy_Generic_Node): Test the original node kind
224 for the sake of consistency. For identifiers and other entity
225 names and operators, accept an expanded name as associated node.
226 Replace "or" with "or else" in condtion and fix its formatting.
228 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
230 * sem_util.adb (Check_Result_And_Post_State): Tune message.
232 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
234 * contracts.adb (Remove_Formals): Remove.
235 (Preanalyze_Condition): Replace Pop_Scope with End_Scope.
236 * sem_ch13.adb (Build_Discrete_Static_Predicate): Replace
237 Pop_Scope with End_Scope; enclose Install_Formals within
238 Push_Scope/End_Scope.
240 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
242 * sem_prag.adb (Analyze_Pre_Post_Condition): Tune error message.
244 2023-05-29 Javier Miranda <miranda@adacore.com>
246 * scans.ads (Inside_Interpolated_String_Expression): New variable.
247 * par-ch2.adb (P_Interpolated_String_Literal): Set/clear new
248 variable when parsing interpolated string expressions.
249 * scng.adb (Set_String): Skip processing operator symbols when we
250 arescanning an interpolated string literal.
252 2023-05-29 Johannes Kliemann <kliemann@adacore.com>
254 * Makefile.rtl (QNX): Use s-parame__qnx.adb for s-parame.adb.
255 * libgnat/s-parame__qnx.adb: Add QNX specific version of
258 2023-05-29 Yannick Moy <moy@adacore.com>
260 * libgnat/a-ngelfu.ads: Restore SPARK_Mode from context.
262 2023-05-29 Marc Poulhiès <poulhies@adacore.com>
264 * contracts.adb (Restore_Original_Selected_Component): Adjust assertion.
266 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
269 (Add_Pre_Post_Condition): Adapt to handle pre/post of an
270 access-to-subprogram type.
271 (Analyze_Type_Contract): Analyze pre/post of an
272 access-to-subprogram.
274 (Analyze_Type_Contract): Adapt comment.
276 (Build_Access_Subprogram_Wrapper): Copy pre/post aspects to
277 wrapper spec and keep it on the type.
279 (Analyze_Pre_Post_Condition): Expect pre/post aspects on
280 access-to-subprogram and complain if they appear without -gnat2022
282 (Analyze_Pre_Post_Condition_In_Decl_Part): Adapt to handle
283 pre/post on an access-to-subprogram type entity.
284 * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
287 2023-05-26 Bob Duff <duff@adacore.com>
290 (Build_Derived_Record_Type): Temporarily set the state of the
291 Derived_Type to "self-hidden" while processing constraints
292 and discriminants of a record extension.
294 2023-05-26 Bob Duff <duff@adacore.com>
296 * einfo.ads: Add comma.
297 * contracts.adb: Fix typos.
298 * exp_attr.adb: Likewise.
299 * exp_ch5.adb: Likewise.
300 * exp_ch6.adb: Likewise.
301 * lib-xref.adb: Likewise.
303 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
305 * debug.adb (d.N): Document new usage.
306 * exp_ch4.adb (Expand_N_Type_Conversion): Copy the Float_Truncate
307 flag when rewriting a floating-point to fixed-point conversion as
308 a floating-point to integer conversion.
309 * exp_fixd.adb: Add with and use clauses for Debug.
310 (Expand_Convert_Fixed_To_Fixed): Generate a truncation in all cases
311 except if the result is explicitly rounded.
312 (Expand_Convert_Integer_To_Fixed): Likewise.
313 (Expand_Convert_Float_To_Fixed): Generate a truncation for all kind
314 of fixed-point types, except if the result is explicitly rounded, or
315 -gnatd.N is specified and the type is an ordinary fixed-point type.
316 * sinfo.ads (Float_Truncate): Document usage for floating-point to
317 fixed-point conversions.
319 2023-05-26 Javier Miranda <miranda@adacore.com>
322 (Expand_N_Allocator): If an allocator with constraints is called
323 in the return statement of a function returning a general access
324 type, then propagate to the itype the master of the general
325 access type (since it is the master associated with the
328 2023-05-26 Yannick Moy <moy@adacore.com>
330 * sem_aggr.adb (Resolve_Record_Aggregate): Add dummy initialization and
331 assertion that clarifies when we reassigned to a useful value.
333 2023-05-26 Yannick Moy <moy@adacore.com>
335 * doc/gnat_rm/gnat_language_extensions.rst: Be more explicit on
336 pattern matching limitation.
337 * gnat_rm.texi: Regenerate.
338 * gnat_ugn.texi: Regenerate.
340 2023-05-26 Yannick Moy <moy@adacore.com>
342 * libgnat/a-calend.ads: Mark with SPARK_Mode=>Off the functions which may
344 * libgnat/a-ngelfu.ads: Mark with SPARK_Mode=>Off the functions which may
345 lead to an overflow (which is not the case of Tan with one parameter for
346 example, or Arctanh or Arcoth, despite their mathematical range covering
348 * libgnat/a-textio.ads: Remove Always_Return annotation from functions, as
349 this is now compulsory for functions to always return in SPARK.
350 * libgnat/i-cstrin.ads: Add Might_Not_Return annotation to Update procedure
351 which may not return.
353 2023-05-26 Bob Duff <duff@adacore.com>
355 * exp_put_image.adb (Build_Image_Call): Treat 'Img the same as
357 * exp_imgv.adb (Expand_Image_Attribute): If Discard_Names, expand
358 to 'Image instead of 'Img.
359 * snames.ads-tmpl, par-ch4.adb, sem_attr.adb, sem_attr.ads:
360 Cleanups: Rename Attribute_Class_Array to be Attribute_Set. Remove
361 unnecessary qualifications. DRY: Don't repeat "True".
363 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
365 * sem_prag.adb (Record_Possible_Body_Reference): Remove call to Present.
366 * sem_util.adb (Find_Untagged_Type_Of): Likewise.
368 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
370 * exp_aggr.adb (Initialize_Array_Component): Remove obsolete code.
371 (Expand_Array_Aggregate): In the case where a temporary is created
372 and the parent is an assignment statement with No_Ctrl_Actions set,
373 set Is_Ignored_Transient on the temporary.
375 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
377 * sem_ch12.adb (Instantiate_Package_Body): Set the ghost mode to
378 that of the instance only after loading the generic's parent.
379 (Instantiate_Subprogram_Body): Likewise.
381 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
383 * exp_ch4.adb (Expand_Set_Membership): Simplify by using Evolve_Or_Else.
385 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
387 * exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to
388 Unqual_Conv; consequently, change object from variable to constant;
389 replace an IF statement with an AND THEN expression.
391 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
394 (Build_Entry_Count_Expression): Remove loop over component declaration;
395 consequently remove a parameter that is no longer used; adapt callers.
396 (Make_Task_Create_Call): Refine type of a local variable.
398 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
400 * sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside
401 loop, not in the loop condition itself.
403 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
405 * libgnat/a-cbdlli.ads (List): Move Nodes component to the end.
407 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
409 * libgnat/a-crdlli.ads (List): Move Nodes component to the end.
411 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
413 * sem_attr.adb (Is_Thin_Pointer_To_Unc_Array): New predicate.
414 (Resolve_Attribute): Apply the static matching legality rule to an
415 Unrestricted_Access attribute applied to an aliased prefix if the
416 type is a thin pointer. Call Is_Thin_Pointer_To_Unc_Array for the
417 aliasing legality rule as well.
419 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
421 * sem_util.adb (Is_Null_Record_Definition): Use First_Non_Pragma and
422 Next_Non_Pragma to ignore pragmas within component list.
424 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
426 * sem_prag.adb (Get_Argument): Improve detection of generic units.
428 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
430 * sem_ch4.adb (Check_Action_OK): Replace low-level test with a
432 * sem_ch13.adb (Is_Predicate_Static): Likewise.
434 2023-05-26 Javier Miranda <miranda@adacore.com>
437 (Expand_N_Conditional_Entry_Call): Factorize code to avoid
438 duplicating subtrees; required to avoid problems when the copied
439 code has implicit labels.
440 * sem_util.ads (New_Copy_Separate_List): Removed.
441 (New_Copy_Separate_Tree): Removed.
442 * sem_util.adb (New_Copy_Separate_List): Removed.
443 (New_Copy_Separate_Tree): Removed.
445 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
447 * sem_ch13.adb (Check_Component_List): Local variable Compl is now
448 a constant; a nested block is no longer needed.
450 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
453 (Resolve_Record_Aggregate): Remove useless assignment.
455 (Has_Variant_Part): Remove useless guard; this routine is only called
456 on type entities (and now will crash in other cases).
458 (Create_Constrained_Components): Only assign Assoc_List when necessary;
460 (Is_Variant_Record): Refactor repeated calls to Parent.
462 (Gather_Components): Assert that discriminant association has just one
463 choice in component_association; refactor repeated calls to Next.
465 (Gather_Components): Tune whitespace in comment.
467 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
469 * sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with
470 First_Non_Pragma and Next_Non_Pragma.
471 * exp_dist.adb (Append_Record_Traversal): Likewise.
473 2023-05-26 Javier Miranda <miranda@adacore.com>
475 * exp_ch9.adb (Build_Class_Wide_Master): Remember internal blocks
476 that have a task master entity declaration.
477 (Build_Master_Entity): Code cleanup.
478 * sem_util.ads (Is_Internal_Block): New subprogram.
479 * sem_util.adb (Is_Internal_Block): New subprogram.
481 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
483 * sem_util.adb (Gather_Components): Remove guard for empty list of
486 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
488 * back_end.adb (Call_Back_End): Add gigi_standard_address to the
489 signature of the gigi procedure and alphabetize other parameters.
490 Pass Standard_Address as actual parameter for it.
491 * cstand.adb (Create_Standard): Do not set Is_Descendant_Of_Address
493 * gcc-interface/gigi.h (gigi): Add a standard_address parameter and
495 * gcc-interface/trans.cc (gigi): Likewise. Record a builtin address
496 type and save it as the type for Standard.Address.
498 2023-05-26 Ghjuvan Lacambre <lacambre@adacore.com>
500 * exp_disp.adb (Expand_Dispatching_Call): Handle new Controlling_Tag.
501 * sem_scil.adb (Check_SCIL_Node): Treat N_Object_Renaming_Declaration as
502 N_Object_Declaration.
504 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
507 (Build_Constrained_Type): Remove local constants that were shadowing
508 equivalent global constants; replace a wrapper that calls
509 Make_Integer_Literal with a numeric literal; remove explicit
510 Aliased_Present parameter which is equivalent to the default value.
511 (Check_Bounds): Remove unused initial value.
512 (Expand_Array_Aggregate): Use aggregate type from the context.
514 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
516 * einfo.ads (Delay_Cleanups): Document new usage.
517 * exp_ch7.ads (Build_Finalizer): New declaration.
518 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not treat
519 library-level package instantiations specially.
520 (Build_Finalizer): Return early for package bodies and specs that
521 are not compilation units instead of using a more convoluted test.
522 (Expand_N_Package_Body): Do not build a finalizer if Delay_Cleanups
523 is set on the defining entity.
524 (Expand_N_Package_Declaration): Likewise.
525 * inline.ads (Pending_Body_Info): Reorder and add Fin_Scop.
526 (Add_Pending_Instantiation): Add Fin_Scop parameter.
527 * inline.adb (Add_Pending_Instantiation): Likewise and copy it into
528 the Pending_Body_Info appended to Pending_Instantiations.
529 (Add_Scope_To_Clean): Change parameter name to Scop and remove now
530 irrelevant processing.
531 (Cleanup_Scopes): Deal with scopes that are package specs or bodies.
532 (Instantiate_Body): For package instantiations, deal specially with
533 scopes that are package bodies and with scopes that are dynamic.
534 Pass the resulting scope to Add_Scope_To_Clean directly.
535 * sem_ch12.adb (Analyze_Package_Instantiation): In the case where a
536 body is needed, compute the enclosing finalization scope and pass it
537 in the call to Add_Pending_Instantiation.
538 (Inline_Instance_Body): Adjust aggregate passed in the calls to
539 Instantiate_Package_Body.
540 (Load_Parent_Of_Generic): Likewise.
542 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
544 * sem_util.adb (Compile_Time_Constraint_Error): Test the Ekind.
546 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
548 * exp_aggr.adb (Build_Constrained_Type): Use List_Length to count
549 expressions in consecutive subaggregates.
551 2023-05-26 Doug Rupp <rupp@adacore.com>
553 * libgnarl/s-osinte__qnx.ads (sigset_t): Modify
554 declaration to use system.os_constants computed
557 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
559 * exp_sel.adb: Add clauses for Sem_Util, remove them for Opt, Sinfo
561 (Build_K): Always use 'Tag of the object.
562 (Build_S_Assignment): Likewise.
564 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
567 (Is_Formal_Of_Current_Function): This routine expects an entity
568 reference and not the entity itself, so its parameter is a Node_Id
569 and not an Entity_Id.
571 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
574 (Build_Array_Aggr_Code): Change variable to constant.
575 (Check_Same_Aggr_Bounds): Fix style; remove unused initial value.
577 2023-05-26 Ronan Desplanques <desplanques@adacore.com>
579 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create extra formals
582 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
584 * checks.adb (Selected_Range_Checks): Add guards to protect calls
585 to Expr_Value on bounds.
587 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
589 * sem_eval.ads (Is_Null_Range): Remove requirements of compile-time
590 known bounds and add WARNING line.
591 (Not_Null_Range): Remove requirements of compile-time known bounds.
592 * sem_eval.adb (Is_Null_Range): Fall back to Compile_Time_Compare.
593 (Not_Null_Range): Likewise.
594 * fe.h (Is_Null_Range): New predicate.
596 2023-05-25 Javier Miranda <miranda@adacore.com>
599 (Warn_On_Null_Component_Association): New subprogram.
600 (Empty_Range): Adding missing support for iterated component
602 (Resolve_Array_Aggregate): Report warning on iterated component
603 association that may initialize some component of an array of
604 null-excluding access type components with a null value.
606 (Expand_N_Expression_With_Actions): Add missing type check since
607 the subtype of the EWA node and the subtype of the expression
610 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
612 * sem_util.adb (Determining_Expressions): Fix style; fix layout and
613 ordering of pragma names; expect pragma Exceptional_Cases.
615 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
617 * einfo-utils.adb (Write_Entity_Info): Use procedural Next_Index.
618 * sem_aggr.adb (Collect_Aggr_Bounds): Reuse local constant.
619 (Resolve_Null_Array_Aggregate): Use procedural Next_Index.
621 2023-05-25 Javier Miranda <miranda@adacore.com>
623 * exp_aggr.adb (Build_Record_Aggr_Code): Protect access to
624 aggregate components when the aggregate is empty.
626 2023-05-25 Johannes Kliemann <kliemann@adacore.com>
628 * libgnat/system-vxworks7-ppc-kernel.ads: Enable
629 Support_Atomic_Primitives.
630 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
632 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
634 * sem_ch3.adb (Find_Type_Of_Object): Copy the object definition when
635 building the subtype declaration in the case of a spec expression.
637 2023-05-25 Tom Tromey <tromey@adacore.com>
639 * Make-generated.in (ada/stamp-snames): Check result of
642 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
644 * cstand.adb (Create_Standard): Set the Is_Descendant_Of_Address
645 flag on Standard_Address.
646 * freeze.adb (Freeze_Entity): Copy the modulus of System.Address
647 onto Standard_Address.
649 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
651 * libgnat/system-aix.ads (Address): Likewise.
652 * libgnat/system-darwin-arm.ads (Address): Likewise.
653 * libgnat/system-darwin-ppc.ads (Address): Likewise.
654 * libgnat/system-darwin-x86.ads (Address): Likewise.
655 * libgnat/system-djgpp.ads (Address): Likewise.
656 * libgnat/system-dragonfly-x86_64.ads (Address): Likewise.
657 * libgnat/system-freebsd.ads (Address): Likewise.
658 * libgnat/system-hpux-ia64.ads (Address): Likewise.
659 * libgnat/system-hpux.ads (Address): Likewise.
660 * libgnat/system-linux-alpha.ads (Address): Likewise.
661 * libgnat/system-linux-arm.ads (Address): Likewise.
662 * libgnat/system-linux-hppa.ads (Address): Likewise.
663 * libgnat/system-linux-ia64.ads (Address): Likewise.
664 * libgnat/system-linux-m68k.ads (Address): Likewise.
665 * libgnat/system-linux-mips.ads (Address): Likewise.
666 * libgnat/system-linux-ppc.ads (Address): Likewise.
667 * libgnat/system-linux-riscv.ads (Address): Likewise.
668 * libgnat/system-linux-s390.ads (Address): Likewise.
669 * libgnat/system-linux-sh4.ads (Address): Likewise.
670 * libgnat/system-linux-sparc.ads (Address): Likewise.
671 * libgnat/system-linux-x86.ads (Address): Likewise.
672 * libgnat/system-lynxos178-ppc.ads (Address): Likewise.
673 * libgnat/system-lynxos178-x86.ads (Address): Likewise.
674 * libgnat/system-mingw.ads (Address): Likewise.
675 * libgnat/system-qnx-arm.ads (Address): Likewise.
676 * libgnat/system-rtems.ads (Address): Likewise.
677 * libgnat/system-solaris-sparc.ads (Address): Likewise.
678 * libgnat/system-solaris-x86.ads (Address): Likewise.
679 * libgnat/system-vxworks-ppc-kernel.ads (Address): Likewise.
680 * libgnat/system-vxworks-ppc-rtp-smp.ads (Address): Likewise.
681 * libgnat/system-vxworks-ppc-rtp.ads (Address): Likewise.
682 * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Address): Likewise.
683 * libgnat/system-vxworks7-aarch64.ads (Address): Likewise.
684 * libgnat/system-vxworks7-arm-rtp-smp.ads (Address): Likewise.
685 * libgnat/system-vxworks7-arm.ads (Address): Likewise.
686 * libgnat/system-vxworks7-ppc-kernel.ads (Address): Likewise.
687 * libgnat/system-vxworks7-ppc-rtp-smp.ads (Address): Likewise.
688 * libgnat/system-vxworks7-ppc64-kernel.ads (Address): Likewise.
689 * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Address): Likewise.
690 * libgnat/system-vxworks7-x86-kernel.ads (Address): Likewise.
691 * libgnat/system-vxworks7-x86-rtp-smp.ads (Address): Likewise.
692 * libgnat/system-vxworks7-x86_64-kernel.ads (Address): Likewise.
693 * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Address): Likewise.
695 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
697 * sem_ch13.adb (Check_Aspect_At_Freeze_Point): fix format string,
698 use existing local Ident.
700 2023-05-25 Bob Duff <duff@adacore.com>
702 * atree.adb (Check_Vanishing_Fields): Fix bug in the "blah type
703 only" cases. Remove the special cases for E_Void. Misc cleanup.
704 (Mutate_Nkind): Disallow mutating to the same kind.
705 (Mutate_Ekind): Disallow mutating to E_Void.
706 (From E_Void is still OK -- entities start out as E_Void by
707 default.) Fix bug in statistics gathering -- was setting the wrong
708 count. Enable Check_Vanishing_Fields for entities.
709 * sem_ch8.adb (Is_Self_Hidden): New function.
710 (Find_Direct_Name): Call Is_Self_Hidden to use the new
711 Is_Not_Self_Hidden flag to determine whether a declaration is
712 hidden from all visibility by itself. This replaces the old method
714 (Find_Expanded_Name): Likewise.
715 (Find_Selected_Component): Likewise.
716 * sem_util.adb (Enter_Name): Remove setting of Ekind to E_Void.
717 * sem_ch3.adb: Set the Is_Not_Self_Hidden flag in appropriate
718 places. Comment fixes.
719 (Inherit_Component): Remove setting of Ekind to E_Void.
721 (Analyze_Protected_Type_Declaration): Update comment. Skip Itypes,
722 which should not be turned into components.
723 * atree.ads (Mutate_Nkind): Document error case.
724 (Mutate_Ekind): Remove comments apologizing for E_Void mutations.
725 Document error cases.
727 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
729 * libgnat/a-ststio.adb (Set_Mode): Test System.Memory_Size.
730 * libgnat/g-debuti.ads (Address_64): Likewise.
731 * libgnat/i-c.ads: Add with clause for System.
732 (ptrdiff_t): Define based on the size of memory space.
734 * libgnat/s-crtl.ads (size_t): Likewise.
736 * libgnat/s-memory.ads (size_t): Likewise.
737 * libgnat/s-parame.ads (Size_Type): Likewise.
738 * libgnat/s-parame__hpux.ads (Size_Type): Likewise.
739 * libgnat/s-parame__posix2008.ads (Size_Type): Likewise.
740 * libgnat/s-parame__vxworks.ads (Size_Type): Likewise.
741 * libgnat/s-putima.adb (Signed_Address): Likewise.
742 (Unsigned_Address): Likewise.
743 * libgnat/s-stoele.ads (Storage_Offset): Likewise.
745 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
747 * sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition
748 as when it was incremented.
750 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
752 * sem_util.ads (New_Copy_Tree): Remove Scopes_In_EWA_OK from spec;
754 * sem_util.adb (New_Copy_Tree): Remove Scopes_In_EWA_OK from body;
757 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
759 * sem_util.adb (Update_New_Entities): Remove redundant check for entity
762 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
764 * atree.adb (Copy_List): Call Copy_Separate_Tree for both entities and
767 2023-05-25 Steve Baird <baird@adacore.com>
770 (Cached_Streaming_Ops): A new package, providing maps to save
771 previously-generated Read/Write/Input/Output procedures.
772 (Expand_N_Attribute_Reference): When a new subprogram is generated
773 for a Read/Write/Input/Output attribute reference, record that
774 type/subp pair in the appropriate Cached_Streaming_Ops map.
775 (Find_Stream_Subprogram): Check the appropriate
776 Cached_Streaming_Ops map to see if an appropriate subprogram has
777 already been generated. If so, then return it. The appropriateness
778 test includes a call to a new nested subprogram,
779 In_Available_Context.
780 * exp_strm.ads, exp_strm.adb: Do not pass in a Loc parameter (or a
781 source-location-bearing Nod parameter) to the 16 procedures
782 provided for building streaming-related subprograms. Use the
783 source location of the type instead.
784 * exp_dist.adb, exp_ch3.adb: Adapt to Exp_Strm spec changes. For
785 these calls the source location of the type was already being
788 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
790 * sem_ch6.adb (Analyze_Function_Return): Add missing
791 Is_Access_Type check before accessing the Designated_Type field.
793 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
795 * sem_ch6.adb (Analyze_Return_Type): Remove unused initial value.
797 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
799 * sem_ch13.adb (Analyze_One_Aspect): Call Record_Rep_Item.
800 (Check_Aspect_At_Freeze_Point): Check the aspect is specified on
801 non-array type only...
802 (Analyze_One_Aspect): ... instead of doing it too early here.
803 * sem_aggr.adb (Resolve_Container_Aggregate): Do nothing in case
804 the parameters failed to resolve.
806 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
808 * sem_util.adb (Check_Internal_Protected_Use): Add standard protection
809 against search going too far.
811 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
814 (Add_Pre_Post_Condition): Mention new aspects in the comment.
816 (Add_Contract_Item): Likewise.
817 (Analyze_Subprogram_Body_Stub_Contract): Likewise.
819 (Contract_Freeze_Error): Likewise.
820 (Ensure_Aggregate_Form): Likewise.
822 (Find_Related_Declaration_Or_Body): Likewise.
824 (Is_Generic_Contract_Pragma): Likewise.
826 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
829 (Implementation_Defined_Aspect): Recently added aspects are
830 implementation-defined, just like Contract_Cases.
832 (Aspect_Specifying_Pragma): Recently added aspects have corresponding
833 pragmas, just like Contract_Cases.
834 (Pragma_Significant_To_Subprograms): Recently added aspects are
835 significant to subprograms, just like Contract_Cases.
837 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
839 * sem_res.adb (Resolve_Entity_Name): Tune handling of formal parameters
840 in contract Exceptional_Cases.
842 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
844 * par-ch7.adb (P_Package): Remove redundant guard from call to
846 * par-ch9.adb (P_Task): Likewise.
847 * sem_ch6.adb (Analyze_Expression_Function, Is_Inline_Pragma): Likewise.
849 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
851 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Use Get_Actual_Subtype
852 to retrieve the actual subtype for all actuals and do it in only one
853 place for all unconstrained composite formal types.
855 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
857 * sem_prag.adb (Analyze_Pragma): Fix references to Exceptional_Cases in
858 code copied from handling of Subprogram_Variant.
860 2023-05-25 Ronan Desplanques <desplanques@adacore.com>
862 * sem_ch3.adb (Replace_Type): Add more documentation.
864 2023-05-25 Ronan Desplanques <desplanques@adacore.com>
866 * sem_ch3.adb (Replace_Type): Use existing constant wherever
869 2023-05-25 Ronan Desplanques <desplanques@adacore.com>
871 * sem_ch3.adb (Replace_Type): Reduce span of variable.
873 2023-05-25 Bob Duff <duff@adacore.com>
875 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Set the flag
877 (Analyze_Single_Protected_Declaration): Likewise, for singleton
879 (Analyze_Task_Type_Declaration): Set the flag for task types.
880 (Analyze_Single_Task_Declaration): Likewise, for singleton task
882 * sem_ch10.adb (Decorate_Type): Set the flag for types treated as
884 (Build_Shadow_Entity): Set the flag for shadow entities.
885 (Decorate_State): Set the flag for an abstract state.
886 (Build_Limited_Views): Set the flag for limited view of package.
887 * sem_attr.adb (Check_Not_Incomplete_Type): Disable the check when
888 this is a current instance.
890 2023-05-25 Ronan Desplanques <desplanques@adacore.com>
892 * freeze.adb (Build_DTW_Body): Add appropriate type conversions for
893 controlling access parameters.
894 * sem_util.adb (Build_Overriding_Spec): Fix designated types in
895 controlling access parameters.
897 2023-05-25 Bob Duff <duff@adacore.com>
899 * gen_il-gen-gen_entities.adb (E_Label): Add
900 Entry_Cancel_Parameter. This is necessary because
901 Analyze_Implicit_Label_Declaration set the Ekind to E_Label.
902 Without this change, this field would fail the vanishing-fields
903 check in Atree (which is currently commented out).
904 * einfo.ads (Entry_Cancel_Parameter): Document for E_Label.
905 * sem_eval.adb (Why_Not_Static): Protect against previous errors
906 (no need to explain why something is not static if it's already
907 illegal for other reasons).
908 * sem_util.ads (Enter_Name): Fix misleading comment.
910 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
912 * einfo.ads (Scope_Depth): Fix circular definition.
913 (Scope_Depth_Value): Fix value for library units.
915 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
917 * sem_ch11.adb (Analyze_Raise_Expression): Tune warning condition.
918 * libgnat/g-dirope.ads (Open): Remove a potentially inaccurate comment.
919 * libgnat/g-dirope.adb (Open): Remove a potentially useless assignment;
920 the Dir output parameter should be assigned a null value anyway by the
921 preceding call to Free.
923 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
925 * sem_res.adb (Resolve_Entity_Name): Allow aliased parameters; tune
928 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
930 * sem_ch13.adb (Analyze_One_Aspect): Mark Aggregate aspect as
931 needing delayed resolution and reject the aspect on non-array
934 2023-05-25 Bob Duff <duff@adacore.com>
936 * sinfo-utils.adb: Update comment to refer to
937 New_Node_Debugging_Output.
939 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
941 * rtsfind.adb (Load_RTU.Restore_SPARK_Context): New.
942 (Load_RTU): Use Restore_SPARK_Context on all exit paths.
943 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Initialize local
946 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
949 (Analyze_Attribute_Old_Result): Allow uses of 'Old and 'Result within
952 (Within_Exceptional_Cases_Consequence): New utility routine.
953 (Resolve_Entity_Name): Restrict use of formal parameters within the
956 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
959 (Aspect_Id): Add aspect identifier.
960 (Aspect_Argument): New aspect accepts an expression.
961 (Is_Representation_Aspect): New aspect is not a representation
963 (Aspect_Names): Associate name with the new aspect identifier.
964 (Aspect_Delay): New aspect is never delayed.
966 (Add_Contract_Item): Store new aspect among contract items.
967 (Analyze_Entry_Or_Subprogram_Contract): Likewise.
968 (Analyze_Subprogram_Body_Stub_Contract): Likewise.
969 (Process_Contract_Cases): Expand new aspect, if present.
971 (Analyze_Entry_Or_Subprogram_Body_Contract): Mention new aspect in
973 (Analyze_Entry_Or_Subprogram_Contract): Likewise.
975 (Get_Pragma): Allow new aspect to be picked by the backend.
977 (Get_Pragma): Mention new aspect in spec.
979 (Expand_Pragma_Exceptional_Cases): Dummy expansion routine.
981 (Expand_Pragma_Exceptional_Cases): Add spec for expansion routine.
983 (Remove_Aspects_And_Pragmas): Remove aspect from bodies to inline.
985 (Par.Prag): Accept pragma in the parser, so it will be checked
988 (Implementation of Generic Contracts): Mention new aspect in
991 (Analyze_Aspect_Specifications): Transform new aspect info a
992 corresponding pragma.
994 (Analyze_Exceptional_Cases_In_Decl_Part): Analyze aspect
995 expression; heavily inspired by the existing code for analysis of
996 Subprogram_Variant and exception handlers.
997 (Analyze_Pragma): Analyze pragma corresponding to the new aspect.
998 (Is_Non_Significant_Pragma_Reference): Add new pragma to the
1001 (Assertion_Expression_Pragma): New pragma acts as an assertion
1002 expression, even though it is not currently expanded.
1003 (Analyze_Exceptional_Cases_In_Decl_Part): Add spec.
1005 (Is_Subprogram_Contract_Annotation): Mark new annotation is a
1006 subprogram contract, so the subprogram with it won't be inlined.
1008 (Is_Subprogram_Contract_Annotation): Mention new aspect in
1011 (Contract_Test_Cases): Mention new aspect in comment.
1012 * snames.ads-tmpl: Add entries for the new name and pragma.
1014 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1016 * sem_ch13.adb (Build_Predicate_Functions): If the current scope
1017 is not that of the type, push this scope and pop it at the end.
1018 * sem_util.ads (Current_Scope_No_Loops_No_Blocks): Delete.
1019 * sem_util.adb (Current_Scope_No_Loops_No_Blocks): Likewise.
1020 (Set_Public_Status): Call again Current_Scope.
1022 2023-05-23 Gary Dismukes <dismukes@adacore.com>
1024 * exp_ch6.adb (Might_Have_Tasks): Remove unneeded Etype call from
1025 call to Is_Limited_Record, since that flag is now properly
1026 inherited by class-wide types.
1027 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remove call
1028 to Make_Class_Wide_Type, which is done too early, and will later
1029 be done in Build_Derived_Record_Type after flags such as
1030 Is_Limited_Record and Is_Controlled_Active have been set on the
1033 2023-05-23 Patrick Bernardi <bernardi@adacore.com>
1035 * libgnat/s-stchop.adb (Stack_Check): Remove redundant parentheses.
1037 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1039 * freeze.adb (Freeze_Record_Type): Add tag for redundant pragma Pack.
1040 * sem_aggr.adb (Resolve_Record_Aggregate): Add tag for redundant OTHERS
1042 * sem_ch8.adb (Use_One_Type): Add tag for redundant USE clauses.
1044 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1047 (Check_Duplication): Fix inconsistent iteration.
1048 (Others_Present): Iterate over handlers using First_Non_Pragma and
1049 Next_Non_Pragma just like in Check_Duplication.
1051 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1053 * einfo.ads (Delay_Subprogram_Descriptors): Delete.
1054 * gen_il-fields.ads (Opt_Field_Enum): Remove
1055 Delay_Subprogram_Descriptors.
1056 * gen_il-gen-gen_entities.adb (Gen_Entities): Likewise.
1057 * gen_il-gen-gen_nodes.adb (N_Entry_Body): Add Corresponding_Spec.
1058 * sinfo.ads (Corresponding_Spec): Document new use.
1059 (N_Entry_Body): Likewise.
1060 * exp_ch6.adb (Expand_Protected_Object_Reference): Be prepared for
1061 protected subprograms that have been expanded.
1062 * exp_ch7.adb (Expand_Cleanup_Actions): Remove unreachable code.
1063 * exp_ch9.adb (Build_Protected_Entry): Add a local variable for the
1064 new block and propagate Uses_Sec_Stack from the corresponding spec.
1065 (Expand_N_Protected_Body) <N_Subprogram_Body>: Unconditionally reset
1066 the scopes of top-level entities in the new body.
1067 * inline.adb (Cleanup_Scopes): Do not adjust the scope on the fly.
1068 * sem_ch9.adb (Analyze_Entry_Body): Set Corresponding_Spec.
1069 * sem_ch12.adb (Analyze_Package_Instantiation): Remove obsolete code
1070 setting Delay_Subprogram_Descriptors and tidy up.
1071 * sem_util.adb (Scope_Within): Deal with protected subprograms that
1073 (Scope_Within_Or_Same): Likewise.
1075 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1077 * libgnarl/s-taskin.ads (Atomic_Address): Delete.
1078 (Attribute_Array): Add pragma Atomic_Components.
1079 (Ada_Task_Control_Block): Adjust default value of Attributes.
1080 * libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local
1082 * libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter.
1083 (To_Attribute): Adjust source type.
1084 * libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements.
1085 (New_Attribute): Adjust return type.
1086 (Deallocate): Adjust type of parameter.
1087 (To_Real_Attribute): Adjust source type.
1088 (To_Address): Add target type.
1089 (To_Attribute): Adjust source type.
1090 (Fast_Path): Adjust tested type.
1091 (Finalize): Compare with Null_Address.
1092 (Reference): Likewise.
1093 (Reinitialize): Likewise.
1094 (Set_Value): Likewise. Add conversion to Integer_Address.
1097 2023-05-23 Raphael Amiard <amiard@adacore.com>
1099 * scng.adb (Scan): Replace occurrences of All_Extensions_Allowed
1100 by Core_Extensions_Allowed.
1102 2023-05-23 Claire Dross <dross@adacore.com>
1104 * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Use new helpers.
1105 * libgnat/s-vauspe.ads (Raw_Unsigned_Starts_As_Based_Ghost,
1106 Raw_Unsigned_Is_Based_Ghost): New ghost helper functions.
1107 (Is_Raw_Unsigned_Format_Ghost, Scan_Split_No_Overflow_Ghost,
1108 Scan_Split_Value_Ghost, Raw_Unsigned_Last_Ghost): Use new
1111 2023-05-23 Arnaud Charlet <charlet@adacore.com>
1113 * par-ch5.adb, style.ads, styleg.adb, styleg.ads
1114 (Check_Xtra_Parens): Remove extra parameter Enable.
1115 (Check_Xtra_Parens_Precedence): New.
1116 (P_Case_Statement): Add -gnatyx style check.
1117 * sem_ch4.adb: Replace calls to Check_Xtra_Parens by
1118 Check_Xtra_Parens_Precedence.
1119 * stylesw.ads, stylesw.adb, usage.adb: Add support for
1121 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1122 Update -gnatyxzg doc.
1123 * sem_prag.adb, libgnat/s-regpat.adb,
1124 libgnarl/s-interr__hwint.adb, libgnarl/s-interr__vxworks.adb:
1125 Remove extra parens.
1126 * par-ch3.adb (P_Discrete_Range): Do not emit a style check if
1127 the expression is not a simple expression.
1128 * gnat_ugn.texi: Regenerate.
1130 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1132 * libgnat/s-dwalin.adb (Enable_Cache): Use the subtract operator of
1133 System.Storage_Elements to compute the offset.
1134 (Symbolic_Address): Likewise.
1136 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1138 * sem_res.adb (Resolve_Intrinsic_Operator): Always perform the same
1139 resolution for the special mod operator of System.Storage_Elements.
1141 2023-05-23 Raphael Amiard <amiard@adacore.com>
1143 * doc/gnat_rm.rst, doc/gnat_rm/gnat_language_extensions.rst,
1144 doc/gnat_rm/implementation_defined_pragmas.rst:
1145 * gnat_rm.texi: Regenerate.
1147 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1149 * exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special
1150 operator of System.Storage_Elements. Do not rewrite it into a rem.
1151 * sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the
1152 left operand for the special mod operator of System.Storage_Elements
1154 2023-05-23 Vadim Godunko <godunko@adacore.com>
1156 * libgnat/a-coinho__shared.adb (Constant_Reference): Remove call
1158 (Query_Element): Likewise.
1160 2023-05-23 Ronan Desplanques <desplanques@adacore.com>
1162 * sem_disp.adb: Fix reference to Ada issue in comment.
1164 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1166 * exp_disp.adb (Expand_Dispatching_Call): In the abstract interface
1167 class-wide case, use 'Tag of the object as the controlling tag.
1168 (Expand_Interface_Thunk): Perform address arithmetic using operators
1169 of System.Storage_Elements.
1171 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1173 * libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements.
1175 (Offset): New subtype of Storage_Offset.
1176 (To_Offset): New instance of Unchecked_Conversion.
1177 (To_Pointer): Adjust.
1178 (To_Addr): Likewise.
1179 (To_Ptrdiff): Likewise.
1180 ("+"): Call To_Offset on the offset.
1182 * libgnat/s-bituti.adb: Add clauses for System.Storage_Elements.
1183 (Val_Bytes): Change type to Storage_Count.
1184 (Get_Val_2): Add qualification to second operand of mod operator.
1185 (Set_Val_2): Likewise.
1186 (Copy_Bitfield): Likewise. Change type of Src_Adjust & Dest_Adjust.
1187 * libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address.
1188 * libgnat/s-statxd.adb (I_AD): Adjust.
1192 2023-05-23 Steve Baird <baird@adacore.com>
1195 (Is_Variable): Correctly return False for a selected component
1196 name of the form Some_Object.Some_Discriminant, even if
1197 Some_Object is a variable. We don't want to allow such a name as
1198 an actual parameter in a call if the corresponding formal
1199 parameter's mode is not "in".
1201 2023-05-23 Yannick Moy <moy@adacore.com>
1203 * sem_util.adb (Check_Node): Add default init on local Id.
1205 2023-05-23 Yannick Moy <moy@adacore.com>
1207 * libgnat/i-c.adb (To_Ada): Add loop invariant.
1209 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1211 * exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod
1212 operator of System.Storage_Elements.
1213 * exp_intr.adb (Expand_To_Integer): New procedure.
1214 (Expand_Intrinsic_Call): Call Expand_To_Integer appropriately.
1215 (Expand_To_Address): Deal with an argument with modular type.
1216 * sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic
1217 on a derived intrinsic subprogram.
1218 * sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic
1219 operators not coming from source exactly as those coming from
1220 source and also generate a reference in both cases.
1221 (Resolve_Op_Expon): Likewise.
1222 (Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get
1223 a nonprivate base type.
1224 * snames.ads-tmpl (Name_To_Integer): New intrinsic name.
1225 * libgnat/s-stoele.ads: Replace pragma Convention with pragma
1226 Import throughout and remove pragma Inline_Always and
1228 * libgnat/s-stoele.adb: Replace entire contents with pragma
1230 * libgnat/s-atacco.adb: Adjust comment about pragma No_Body.
1232 2023-05-23 Javier Miranda <miranda@adacore.com>
1234 * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
1235 call to preanalyze class-wide conditions since here it is too
1236 early; they must be preanalyzed when full views of private types
1238 * sem_ch7.adb (Analyze_Package_Specification): Preanalyze
1239 class-wide conditions of dispatching primitives defined in nested
1242 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1244 * errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1"
1245 statement into a subprogram; replace assertions with defensive code;
1246 fix few more off-by-one errors.
1248 2023-05-23 Ronan Desplanques <desplanques@adacore.com>
1250 * einfo.ads: Mention full name of LSP.
1252 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1254 * errout.adb (Last_Sloc): Rewrite skipping past numeric literals.
1256 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1258 * sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the
1259 commentary to the current implementation.
1260 * sem_util.ads (Current_Scope_No_Loops): Move around.
1261 (Current_Scope_No_Loops_No_Blocks): New declaration.
1262 (Add_Block_Identifier): Fix formatting.
1263 * sem_util.adb (Add_Block_Identifier): Likewise.
1264 (Current_Scope_No_Loops_No_Blocks): New function.
1265 (Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead
1266 of Current_Scope to get the current scope.
1268 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1270 * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not
1271 manually generate a predicate check. Call Unqualify before doing
1272 pattern matching on the expression.
1273 * sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual
1274 subtype when it is built in the definite case.
1276 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1278 * libgnarl/s-interr.adb
1279 (Registered_Handler): Remove default expression.
1280 (Registered_Handlers): Switch to singly-linked list.
1281 (Bind_Interrupt_To_Entry): Sync whitespace with other unit variants.
1282 (Is_Registered): Use singly-linked list.
1283 (Register_Interrupt_Handler): Use singly-linked list and initialized
1284 allocator; sync assertion with other unit variants.
1285 * libgnarl/s-interr__sigaction.adb: Likewise.
1286 * libgnarl/s-interr__vxworks.adb: Likewise.
1287 * libgnarl/s-interr__hwint.adb: Likewise.
1288 (Is_Registered): Remove repeated declaration.
1290 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1292 * pprint.adb (Expression_Image): Restore some of the old pretty-printing
1295 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1297 * errout.adb (First_And_Last_Nodes): Ignore accessibility parameters.
1299 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1301 * exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens.
1303 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1305 * pprint.adb (Expression_Image): Move Count_Parentheses and
1306 Fix_Parentheses routines from GNATprove and apply them before
1307 returning the slice of a source code buffer.
1309 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1312 (Paren_Required): New subsidiary routine for better handling of
1313 parentheses in First_Node/Last_Node.
1314 (First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly
1315 handle generic instances and inlined subprograms; tune handling of
1316 parentheses; improve handling of literals.
1317 * pprint.adb (Expression_Image): Simplify using
1318 First_Sloc/Last_Sloc.
1319 * sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis
1320 when relocating expression from expression function to simple
1323 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1325 * exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of
1326 subprogram variants.
1328 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1330 * frontend.adb (Frontend): Merge two conditional blocks and adjust.
1332 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1334 * libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment.
1336 2023-05-23 Ronan Desplanques <desplanques@adacore.com>
1338 * sem_ch7.adb: Remove duplicate comment.
1340 2023-05-23 Javier Miranda <miranda@adacore.com>
1343 (Analyze_Required_Limited_With_Units): New subprogram.
1344 (Depends_On_Limited_Views): New subprogram.
1345 (Has_Limited_With_Clauses): New subprogram.
1346 (Analyze_Compilation_Unit): Call the new subprogram that performs
1347 the full analysis of required limited-with units.
1349 2023-05-22 Ronan Desplanques <desplanques@adacore.com>
1351 * cstand.adb: Use more idiomatic procedure.
1353 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1355 * errout.adb (First_Loc): Avoid repeated calls.
1356 (Last_Loc): Likewise.
1358 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1360 * inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack
1361 flag from original to rewritten protected subprograms here...
1362 * exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>:
1363 ...but here instead. Add local variables and remove a useless
1366 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1368 * exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get
1369 the entity of the body.
1371 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1373 * exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the
1374 attribute reference, not of the loop statement.
1376 2023-05-22 Ronan Desplanques <desplanques@adacore.com>
1378 * par-ch3.adb: Add missing word in comment.
1380 2023-05-22 Justin Squirek <squirek@adacore.com>
1382 * checks.adb (Install_Null_Excluding_Check): Avoid non-null
1383 optimizations when assertions are enabled.
1385 2023-05-22 Marc Poulhiès <poulhies@adacore.com>
1387 * exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag
1388 for the copy of the initialization expression.
1389 * sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip
1390 error emission during Pre_Analyze.
1392 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1394 * exp_ch7.adb (Process_Package_Body): New procedure taken from...
1395 (Build_Finalizer.Process_Declarations): ...here. Call the above
1396 procedure to deal with both package bodies and package body stubs.
1398 2023-05-22 Ronan Desplanques <desplanques@adacore.com>
1400 * atree.ads: Remove outdated part of comment.
1402 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1404 * exp_ch7.adb (Build_Finalizer): Reverse the test comparing the
1405 instantiation and declaration nodes of a package instance, and
1406 therefore bail out only when they are equal. Adjust comments.
1407 (Expand_N_Package_Declaration): Do not clear the Finalizer field.
1408 * lib-writ.adb: Add with and use clauses for Sem_Util.
1409 (Write_Unit_Information): Look at unit nodes to find finalizers.
1410 * sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment
1411 about the rewriting of the instantiation node into a declaration.
1413 2023-05-22 Bob Duff <duff@adacore.com>
1415 * cstand.adb (Is_Past_Self_Hiding_Point): Rename to be
1417 * einfo.ads: Likewise.
1418 * exp_aggr.adb: Likewise.
1419 * gen_il-fields.ads: Likewise.
1420 * gen_il-gen-gen_entities.adb: Likewise.
1421 * sem.adb: Likewise.
1422 * sem_aggr.adb: Likewise.
1423 * sem_ch11.adb: Likewise.
1424 * sem_ch12.adb: Likewise.
1425 * sem_ch5.adb: Likewise.
1426 * sem_ch6.adb: Likewise.
1427 * sem_ch7.adb: Likewise.
1428 * sem_prag.adb: Likewise.
1430 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1432 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body
1433 as the expanded body of an expression function.
1435 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1437 * pprint.adb (Expression_Image): Handle several previously unsupported
1440 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1442 * sem_res.adb (Resolve_Entity_Name): Combine two IF statements that
1443 execute code only for references that come from source.
1445 2023-05-22 Bob Duff <duff@adacore.com>
1447 * einfo.ads (Is_Past_Self_Hiding_Point): Document.
1448 * gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of
1450 * gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare
1452 * exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate.
1453 * sem.adb: Likewise.
1454 * sem_aggr.adb: Likewise.
1455 * sem_ch11.adb: Likewise.
1456 * sem_ch12.adb: Likewise.
1457 * sem_ch5.adb: Likewise.
1458 * sem_ch7.adb: Likewise.
1459 * sem_prag.adb: Likewise.
1460 * sem_ch6.adb: Likewise.
1461 (Set_Formal_Mode): Minor cleanup: Move from spec.
1463 (Set_Formal_Mode): Minor cleanup: Move to body.
1464 * cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities
1465 as soon as they are created.
1466 * comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead
1468 * debug.adb: Minor comment cleanups.
1470 2023-05-22 Steve Baird <baird@adacore.com>
1472 * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
1473 Accept an executable pragma occuring in a declare expression as
1474 per AI22-0045. This means Assert and Inspection_Point pragmas as
1475 well as any implementation-defined pragmas that the implementation
1476 chooses to categorize as executable. Currently Assume and Debug
1477 are the only such pragmas.
1479 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1482 (Check_Postcondition_Use_In_Inlined_Subprogram): Mention
1483 Subprogram_Variant in the comment.
1484 (Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is
1485 ignored because of pragma Inline_Always and frontend inlining.
1487 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1489 * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only
1490 emit warning when frontend inlining is enabled.
1492 2023-05-22 Arnaud Charlet <charlet@adacore.com>
1494 * par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op,
1495 Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses.
1496 * par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses.
1497 * style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic
1498 related to expressions requiring parentheses here.
1500 2023-05-22 Arnaud Charlet <charlet@adacore.com>
1502 * ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb,
1503 checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb,
1504 libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb,
1505 libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb,
1506 libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb,
1507 libgnat/a-strmap.adb, libgnat/g-alleve.adb,
1508 libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb,
1509 libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb,
1510 par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
1511 sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb,
1512 exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb,
1513 exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb,
1514 sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb,
1515 sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb,
1516 sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb,
1517 binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb,
1518 gprep.adb, sem_ch11.adb: Remove extra parentheses.
1520 2023-05-22 Arnaud Charlet <charlet@adacore.com>
1522 * sem_aggr.adb (Get_Value): Use ?? instead of ?.
1524 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1526 * exp_aggr.adb (Aggregate_Size): Remove redundant calls to
1528 * exp_ch5.adb (Expand_N_If_Statement): Likewise.
1529 * sem_prag.adb (Analyze_Pragma): Likewise.
1530 * sem_warn.adb (Find_Var): Likewise.
1532 2023-05-22 Claire Dross <dross@adacore.com>
1534 * sem_util.adb (Find_Actual): On calls through dereferences,
1535 return the corresponding formal in the designated subprogram
1538 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1540 * sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec.
1541 * sem_util.adb (Is_Actual_Tagged_Parameter): Remove body.
1543 2023-05-22 Joffrey Huguet <huguet@adacore.com>
1545 * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads
1546 (To_Unbounded_String): Add postcondition. Add aspect SPARK_Mode
1547 Off on the version that takes a Natural as parameter.
1548 (To_String): Complete postcondition.
1549 (Set_Unbounded_String): Add postcondition.
1550 (Element): Likewise.
1553 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1555 * exp_ch3.adb (Freeze_Type): Do not associate the Finalize_Address
1556 routine for a class-wide type if restriction No_Dispatching_Calls
1559 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1561 * libgnat/s-genbig.ads (From_Bignum): New overloaded declarations.
1562 * libgnat/s-genbig.adb (LLLI): New subtype.
1563 (LLLI_Is_128): New boolean constant.
1564 (From_Bignum): Change the return type of the signed implementation
1565 to Long_Long_Long_Integer and add support for the case where its
1566 size is 128 bits. Add a wrapper around it for Long_Long_Integer.
1567 Add an unsigned implementation returning Unsigned_128 and a wrapper
1568 around it for Unsigned_64.
1569 (To_Bignum): Test LLLI_Is_128 instead of its size.
1570 (To_String.Image): Add qualification to calls to From_Bignum.
1571 * libgnat/a-nbnbin.adb (To_Big_Integer): Likewise.
1572 (Signed_Conversions.From_Big_Integer): Likewise.
1573 (Unsigned_Conversions): Likewise.
1575 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1577 * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec
1578 to copy the spec from the subprogram to the generated subprogram
1580 (Freeze_Entity): Do not wrap imported subprograms inside generics.
1582 2023-05-22 Steve Baird <baird@adacore.com>
1584 * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
1585 If Comes_From_Source (A) is False, then look at Original_Node (A)
1586 instead of A. In particular, if an (illegal) expression function
1587 is transformed into a "vanilla" function, we don't want to allow
1588 it just because Comes_From_Source is now False.
1590 2023-05-22 Steve Baird <baird@adacore.com>
1592 * sem_prag.adb (Analyze_Pragma): In Check_No_Return, call
1593 Error_Msg_Ada_2022_Feature in the case of a function. Remove code
1594 outside of Check_No_Return that was querying Ada_Version.
1596 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1598 * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): Do
1599 not look into nested blocks.
1601 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1603 * sem_ch3.adb (Find_Type_Of_Object): In a spec expression, also set
1604 the Scope of the type, and call Constrain_Array for array subtypes.
1606 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1608 * pprint.adb (Expression_Image): Reduce scope of local variables; inline
1609 local uncommented constant From_Source; concatenate string with a single
1610 character, as it is likely to execute faster; add missing cases to
1611 traversal for the rightmost node and assertion to demonstrate that the
1612 ??? comment is no longer relevant.
1614 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1616 * pprint.adb (Expr_Name): Qualify CASE expression with N_Subexpr; add
1617 missing alternative for N_Raise_Storage_Error; remove dead alternatives;
1618 explicitly list unsupported alternatives.
1620 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1622 * pprint.adb (Expr_Name): Exclude DEL from printable range.
1624 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1626 * sem_util.ads (New_Copy_Tree): Update comment.
1627 * sem_util.adb (New_Copy_Tree): Update Controlling_Argument, very
1628 much like we update the First/Next_Named_Association.
1630 2023-05-22 Bob Duff <duff@adacore.com>
1632 * fe.h: Remove Ada_With_Extensions and add commentary.
1633 * opt.ads: Rearrange code and add commentary.
1635 2023-05-22 Bob Duff <duff@adacore.com>
1637 * sem_util.adb (Process_Type): Stop the recursion.
1638 * exp_aggr.adb (Build_Record_Aggr_Code): Add assertion.
1640 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1642 * gcc-interface/decl.cc (gnat_to_gnu_entity): Use _P defines
1644 (constructor_address_p): Ditto.
1645 (elaborate_expression_1): Ditto.
1646 * gcc-interface/trans.cc (Identifier_to_gnu): Ditto.
1648 (Subprogram_Body_to_gnu): Ditto.
1649 (gnat_to_gnu): Ditto.
1650 (gnat_to_gnu_external): Ditto.
1651 (add_decl_expr): Ditto.
1652 (gnat_gimplify_expr): Ditto.
1653 * gcc-interface/utils.cc (create_var_decl): Ditto.
1654 * gcc-interface/utils2.cc (get_base_type): Ditto.
1655 (build_binary_op): Ditto.
1656 (build_unary_op): Ditto.
1657 (gnat_protect_expr): Ditto.
1658 (gnat_invariant_expr): Ditto.
1660 2023-05-16 Steve Baird <baird@adacore.com>
1662 * usage.adb: Generate output text describing the -gnatw_s switch
1663 (and the corresponding -gnatw_S switch).
1665 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1667 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>:
1668 Use the canonical accumulator type as the type of the accumulator
1669 in the prefixed case.
1671 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1673 * exp_aggr.adb (Expand_Array_Aggregate): Do not set Warnings_Off on
1674 the temporary created when in-place expansion is not possible.
1676 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1678 * freeze.adb (Freeze_Expression): When the freezing is to be done
1679 outside the current scope, skip any scope that is an internal loop.
1681 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1683 * exp_imgv.adb (Rewrite_Object_Image): If the prefix is a component
1684 that depends on a discriminant, create an actual subtype for it.
1686 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1688 * sem_ch13.adb: Add with and use clauses for Expander.
1689 (Resolve_Aspect_Expressions) <Aspect_Predicate>: Emulate a
1690 bona-fide preanalysis setup before calling
1691 Resolve_Aspect_Expression.
1693 2023-05-16 Yannick Moy <moy@adacore.com>
1695 * libgnat/s-aridou.adb (Lemma_Div_Pow2): Add assertion.
1696 * libgnat/s-arit32.adb (Lemma_Abs_Div_Commutation): Simplify.
1697 * libgnat/s-expmod.adb (Lemma_Exp_Mod): Add assertions.
1698 (Lemma_Euclidean_Mod): Add body to lemma.
1699 (Lemma_Mult_Mod): Add assertion.
1700 * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Modify assertion.
1701 * libgnat/s-vauspe.ads (Raw_Unsigned_Last_Ghost): Add
1703 * libgnat/s-widthi.adb: Use more precise types.
1705 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1707 * sem_res.adb (Has_Applicable_User_Defined_Literal): Apply the
1708 same processing for derived untagged types as for tagged types.
1709 * sem_util.ads (Corresponding_Primitive_Op): Adjust description.
1710 * sem_util.adb (Corresponding_Primitive_Op): Handle untagged
1713 2023-05-16 Javier Miranda <miranda@adacore.com>
1716 (Analyze_Attribute_Old_Result): When preanalyzing a class-wide
1717 condition, search in the scopes stack for the subprogram that has
1718 the condition. This is required because returning the current
1719 scope causes reporting spurious errors when the occurrence of the
1720 attribute is found, for example, in a quantified expression.
1722 2023-05-16 Javier Miranda <miranda@adacore.com>
1725 (Needs_BIP_Alloc_Form): Return False for functions with foreign
1726 convention since we never use build-in-place for such functions.
1728 2023-05-16 Piotr Trojanek <trojanek@adacore.com>
1730 * sem_util.adb (Aggregate_Constraint_Checks): Don't exit early
1731 when preanalysing in GNATprove mode. Now the condition is
1732 consistent with other similar conditions in other code.
1734 2023-05-16 Ghjuvan Lacambre <lacambre@adacore.com>
1736 * usage.adb (Usage): Document -gnatyD.
1738 2023-05-16 Marc Poulhiès <poulhies@adacore.com>
1740 * libgnat/s-tsmona__linux.adb (link_map, r_debug_type): Add
1741 'aliased' on all components.
1743 2023-05-16 Johannes Kliemann <kliemann@adacore.com>
1745 * libgnat/system-linux-ppc.ads: Add Support_Atomic_Primitives.
1746 * libgnat/s-atopri__32.ads: Add 32 bit version of s-atopri.ads.
1747 * Makefile.rtl: Use s-atopro__32.ads for ppc-linux.
1749 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1751 * sem_util.adb (Get_Actual_Subtype): For an explicit dereference,
1752 return the Actual_Designated_Subtype if it is present.
1753 (Get_Actual_Subtype_If_Available): Likewise.
1755 2023-05-16 Arnaud Charlet <charlet@adacore.com>
1757 * errout.ads: Update comment.
1758 * errout.adb (Skip_Msg_Insertion_Warning): Update to take e.g.
1759 -gnatyM into account.
1760 * erroutc.adb (Get_Warning_Option, Get_Warning_Tag)
1761 (Prescan_Message): Add support for Style tags.
1762 * par-ch5.adb, par-ch6.adb, par-ch7.adb, par-endh.adb,
1763 par-util.adb, style.adb, styleg.adb: Set tag on all style
1766 2023-05-16 Tom Tromey <tromey@adacore.com>
1768 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
1769 (Switches_for_gnatbind): Fix typo.
1770 * libgnat/g-spipat.ads: Fix typo.
1771 * gnat_ugn.texi: Regenerate.
1773 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1775 * exp_aggr.adb (Build_Assignment_With_Temporary): Adjust comment
1776 and fix type of second parameter. Create the temporary on the
1777 secondary stack by calling Build_Temporary_On_Secondary_Stack.
1778 (Convert_Array_Aggr_In_Allocator): Adjust formatting.
1779 (Expand_Array_Aggregate): Likewise.
1780 * exp_ch4.adb (Expand_N_Allocator): Set Actual_Designated_Subtype
1781 on the dereference in the initialization for all composite types.
1782 * exp_ch5.adb (Expand_N_Assignment_Statement): Create a temporary
1783 on the host for an assignment between nonnative storage models.
1784 Suppress more checks when Suppress_Assignment_Checks is set.
1785 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Deal with actuals
1786 that are dereferences with an Actual_Designated_Subtype. Add
1787 support for nonnative storage models.
1788 (Expand_Actuals): Create a copy if the actual is a dereference
1789 with a nonnative storage model.
1790 * exp_util.ads (Build_Temporary_On_Secondary_Stack): Declare.
1791 * exp_util.adb (Build_Temporary_On_Secondary_Stack): New function.
1792 * sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Do not
1793 build an actual subtype for dereferences with an
1794 Actual_Designated_Subtype
1795 * sinfo.ads (Actual_Designated_Subtype): Adjust documentation.
1796 (Suppress_Assignment_Checks): Likewise.
1798 2023-05-16 Piotr Trojanek <trojanek@adacore.com>
1800 * exp_spark.adb (SPARK_Freeze_Type): Copy whole handling of DIC
1801 and Type_Invariant from Freeze_Type.
1803 2023-05-16 Richard Kenner <kenner@adacore.com>
1805 * sem_util.adb (Subprogram_Name): If what's passed is already an
1806 entity, use that for the name.
1808 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1810 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
1811 (No_Dependence): Give examples of new No_Dependence restrictions.
1812 * gnat_rm.texi: Regenerate.
1814 2023-05-16 Arnaud Charlet <charlet@adacore.com>
1816 * snames.ads-tmpl (Name_ASCII): New.
1817 * style.adb (Check_Identifier): Fix handling of ASCII.
1819 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
1821 * gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat.
1822 * gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as
1823 semantical flag and change Includes_Infinities to semantical.
1824 * sinfo.ads (Cannot_Be_Superflat): Document it for N_Range.
1825 * exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the
1826 range of the result if the result cannot be null.
1828 2023-05-16 Richard Kenner <kenner@adacore.com>
1830 * gen_il-gen-gen_nodes.adb (Present_Expr): Type is now Uint.
1832 2023-05-16 Yannick Moy <moy@adacore.com>
1834 * libgnat/s-aridou.adb (Big3, Is_Mult_Decomposition)
1835 (Is_Scaled_Mult_Decomposition): Add annotation for inlining.
1836 (Double_Divide, Scaled_Divide): Simplify and remove ghost code.
1837 (Prove_Multiplication): Add calls to lemmas to make proof go
1839 * libgnat/s-aridou.ads (Big, In_Double_Int_Range): Add annotation
1842 2023-05-16 Yannick Moy <moy@adacore.com>
1844 * libgnat/a-strsup.adb: Add intermediate assertions.
1846 2023-05-16 Arnaud Charlet <charlet@adacore.com>
1848 * gnat1drv.adb: Ensure all dependencies are recorded even when not
1851 2023-05-16 Yannick Moy <moy@adacore.com>
1853 * libgnat/a-strsup.adb: Set assertion policy for Loop_Variant.
1855 2023-05-16 Marc Poulhiès <poulhies@adacore.com>
1857 * sem_ch12.adb (Instantiate_Package_Body): Simplify if/then/else.
1858 (Instantiate_Subprogram_Body): Likewise.
1860 2023-05-16 Yannick Moy <moy@adacore.com>
1862 * libgnat/s-aridou.adb:
1863 (Big3): Remove override made useless.
1864 (Lemma_Quot_Rem): Add new lemma and justify it, as no prover
1865 manages to prove it.
1866 (Lemma_Div_Pow2): Use new lemma Lemma_Quot_Rem.
1867 (Prove_Scaled_Mult_Decomposition_Regroup3): Retype for
1869 (Scaled_Divide): Remove useless assertions.Decompose some
1870 assertions with cut operations. Use Assert_And_Cut for second
1871 half. Add assertions.
1873 2023-05-15 Marc Poulhiès <poulhies@adacore.com>
1875 * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
1877 2023-05-15 Yannick Moy <moy@adacore.com>
1879 * libgnat/a-strbou.ads: Add justifications for Mapping.
1880 * libgnat/a-strfix.adb: Same.
1881 * libgnat/a-strfix.ads: Same.
1882 * libgnat/a-strsea.adb: Same.
1883 * libgnat/a-strsea.ads: Same.
1884 * libgnat/a-strsup.adb: Same and add loop variants.
1885 * libgnat/a-strsup.ads: Same and add specification of termination.
1887 2023-05-15 Yannick Moy <moy@adacore.com>
1889 * libgnat/a-strsup.adb (Super_Slice): Reorder component assignment
1890 to avoid failing predicate check related to initialization.
1891 * libgnat/s-expmod.adb (Exp_Modular): Add intermediate assertion.
1893 2023-05-15 Yannick Moy <moy@adacore.com>
1895 * libgnat/i-c.adb: Add loop variants. Remove useless
1898 2023-05-15 Bob Duff <duff@adacore.com>
1900 * einfo-utils.ads: Remove comment.
1902 2023-05-15 Bob Duff <duff@adacore.com>
1904 * einfo-utils.ads, einfo-utils.adb: Get rid of the Proc_Next_...
1905 procedures. Use Inline aspect instead of pragma Inline.
1906 Is_Discrete_Or_Fixed_Point_Type did not have pragma Inline, but
1907 now has the aspect; this was probably an oversight
1908 (which illustrates why aspects are better).
1910 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
1912 * doc/gnat_ugn/gnat_utility_programs.rst: Fix formatting
1915 2023-05-15 Bob Duff <duff@adacore.com>
1918 (Proc_Next_Component_Or_Discriminant): Call
1919 Next_Component_Or_Discriminant.
1921 2023-05-15 Bob Duff <duff@adacore.com>
1924 (First_Entity): Update comment explaining why this exists on all
1925 [sub]types, as opposed to just the ones with associated entities.
1927 2023-05-15 Bob Duff <duff@adacore.com>
1930 (Check_Vanishing_Fields): Disable the check for "root/base type
1931 only" fields. This is a bug fix -- if we're checking some subtype
1932 S, we don't want to reach over to the root or base type and
1933 Reinit_Field_To_Zero of that, thus modifying the field for lots of
1934 subtypes other than S. Disable in the to/from E_Void cases. Misc
1936 * gen_il-gen-gen_entities.adb: Define First_Entity, Last_Entity,
1937 and Stored_Constraint for all type entities, because there are too
1938 many cases where Reinit_Field_To_Zero would otherwise be needed.
1939 In any case, it seems cleaner to have First_Entity and Last_Entity
1940 defined in the same entity kinds.
1942 (First_Entity, Last_Entity, Stored_Constraint): Update comments to
1943 reflect gen_il-gen-gen_entities.adb changes.
1944 (Lit_Hash): Add missing "[root type only]" comment.
1945 * exp_ch5.adb: Add Reinit_Field_To_Zero calls for vanishing
1947 * sem_ch10.adb: Likewise.
1948 * sem_ch6.adb: Likewise.
1949 * sem_ch7.adb: Likewise.
1950 * sem_ch8.adb: Likewise.
1951 * sem_ch3.adb: Likewise. Also remove now-unnecessary
1952 Reinit_Field_To_Zero calls.
1954 2023-05-15 Eric Botcazou <ebotcazou@adacore.com>
1956 * sem_ch7.adb (Hide_Public_Entities): Use the same condition for
1957 subprogram bodies without specification as for those with one.
1959 2023-05-15 Piotr Trojanek <trojanek@adacore.com>
1961 * sem_util.adb (New_Copy_Tree): Remove redundant calls to Present.
1963 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
1965 * sem_ch8.adb (End_Scope): Simplify lookup of predecessor in
1968 2023-05-15 Piotr Trojanek <trojanek@adacore.com>
1970 * sem_aggr.adb (Resolve_Aggregate): Accept aggregates with OTHERS
1971 appearing inside unchecked conversions.
1973 2023-05-15 Steve Baird <baird@adacore.com>
1975 * warnsw.ads: Add a new element,
1976 Warn_On_Ineffective_Predicate_Test, to the Opt_Warnings_Enum
1978 * warnsw.adb: Bind "-gnatw_s" to the new
1979 Warn_On_Ineffective_Predicate_Test switch. Add the new switch to
1980 the set of switches enabled by -gnata .
1982 (Build_Discrete_Static_Predicate): Declare new local procedure,
1983 Warn_If_Test_Ineffective, which conditionally generates new
1984 warning. Call this new procedure when building a new element of an
1986 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1987 Document the -gnatw_s switch (and the corresponding -gnatw_S
1989 * gnat_ugn.texi: Regenerate.
1991 2023-05-15 Yannick Moy <moy@adacore.com>
1993 * sem_attr.adb: Update comment referring to rule number.
1995 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
1997 * sem_attr.adb: sem_attr.adb (Analyze_Access_Attribute): Tighten
1998 validity check for task types.
2000 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
2002 * doc/gnat_rm/implementation_defined_characteristics.rst: Fix
2003 minor documentation formatting issue.
2004 * gnat_rm.texi: Regenerate.
2005 * gnat_ugn.texi: Regenerate.
2007 2023-05-15 Bob Duff <duff@adacore.com>
2010 (Expand_N_Op_Expon): Remove the too-big check. Simplify. Signed
2011 and modular cases are combined, etc. Remove code with comment "We
2012 only handle cases where the right type is a[sic] integer", because
2013 the right operand must always be an integer at this point.
2015 2023-05-15 Bob Duff <duff@adacore.com>
2018 (Analyze_Attribute): Add a call to Check_Error_Detected.
2020 2023-05-15 Yannick Moy <moy@adacore.com>
2022 * par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to
2023 expression in pragma association.
2025 2023-05-15 Eric Botcazou <ebotcazou@adacore.com>
2027 * repinfo.ads (JSON output format): Document special case of
2028 Present member of a Variant object.
2029 * repinfo.adb (List_Structural_Record_Layout): Change the type of
2030 Ext_Level parameter to Integer. Restrict the first recursion with
2031 increasing levels to the fixed part and implement a second
2032 recursion with decreasing levels for the variant part. Deal with
2033 an extension of a type with unknown discriminants.
2035 2023-05-15 Claire Dross <dross@adacore.com>
2037 * libgnat/s-valueu.adb: Use cut operations inside assertion to
2039 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-spark and
2040 s-spcuop dependencies.
2042 2023-05-15 Yannick Moy <moy@adacore.com>
2044 * sem_prag.adb (Check_Grouping): Allow Annotate pragmas between
2047 2023-05-15 Javier Miranda <miranda@adacore.com>
2049 * doc/gnat_rm/implementation_defined_pragmas.rst
2050 (Extensions_Allowed): Document string interpolation.
2051 * gnat_rm.texi: Regenerate.
2052 * gnat_ugn.texi: Regenerate.
2054 2023-05-15 Joel Brobecker <brobecker@adacore.com>
2056 * doc/gnat_ugn/platform_specific_information.rst
2057 (_PIE_Enabled_By_Default_On_Linux): New section.
2058 * gnat-style.texi: Regenerate.
2059 * gnat_ugn.texi: Regenerate.
2061 2023-05-15 Javier Miranda <miranda@adacore.com>
2064 (Has_Dispatching_Constructor_Call): New subprogram.
2065 (Expand_Interface_Conversion): No need to perform dynamic
2066 interface conversion when the operand and the target type are
2067 interface types and the target interface type is an ancestor of
2068 the operand type. The unique exception to this rule is when the
2069 operand has a dispatching constructor call (as documented in the
2072 2023-05-15 Piotr Trojanek <trojanek@adacore.com>
2074 * sem_attr.adb (Analyze_Attribute): Reject attribute Initialized
2075 on unchecked unions; fix grammar in comment.
2077 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
2079 * sem_ch13.adb (Validate_Unchecked_Conversion): Fix behavior on
2080 System.Address to access to subprogram subtype conversion.
2082 2023-05-15 Piotr Trojanek <trojanek@adacore.com>
2085 (Is_Syntactic_Node): Refactored from New_Copy_Tree.
2087 (Is_Syntactic_Node): Likewise.
2088 (Copy_Separate_Tree): Use Is_Syntactic_Node.
2090 (Has_More_Ids): Move to Atree.
2091 (Is_Syntactic_Node): Likewise.
2093 2023-04-18 Jin Ma <jinma@linux.alibaba.com>
2095 * gcc-interface/utils.cc (unchecked_convert): Fix typo.
2097 2023-04-17 Martin Liska <mliska@suse.cz>
2099 * gnatvsn.ads: Bump Library_Version to 14.
2101 2023-04-15 Eric Botcazou <ebotcazou@adacore.com>
2104 * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset
2105 align to zero in any case. Set TYPE_USER_ALIGN on the type only if
2106 it is an aggregate type, or else a type whose default alignment is
2107 specifically capped on selected platforms.
2109 2023-04-14 Eric Botcazou <ebotcazou@adacore.com>
2112 * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align
2113 to zero if its value is equal to TYPE_ALIGN and the type is scalar.
2114 Set TYPE_USER_ALIGN on the type only if align is positive.
2116 2023-03-06 Javier Miranda <miranda@adacore.com>
2119 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with
2120 separate spec, if their return type was visible through a limited-
2121 with context clause, their extra formals were not added when the
2122 spec was analyzed. Now the full view must be available, and the
2123 extra formals can be created and Returns_By_Ref computed.
2125 2023-03-06 Eric Botcazou <ebotcazou@adacore.com>
2129 * Make-generated.in: Do not use GNATMAKE.
2130 * gcc-interface/Makefile.in: Ditto.
2132 2023-02-26 Peter Foley <pefoley2@pefoley.com>
2135 * Make-generated.in: Use GNATMAKE.
2136 * gcc-interface/Makefile.in: Ditto.
2138 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
2140 * gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard.
2142 2023-02-14 Dongsheng Song <dongsheng.song@gmail.com>
2144 * adaint.c [Linux]: Include <features.h>.
2145 (__gnat_get_executable_load_address) [Linux]: Enable only for
2148 2023-01-16 Marc Poulhiès <poulhies@adacore.com>
2150 * gcc-interface/Make-lang.in: Update copyright years.
2151 * gcc-interface/Makefile.in: Likewise.
2152 * gcc-interface/ada-builtin-types.def: Likewise.
2153 * gcc-interface/ada-builtins.def: Likewise.
2154 * gcc-interface/ada-tree.def: Likewise.
2155 * gcc-interface/ada-tree.h: Likewise.
2156 * gcc-interface/ada.h: Likewise.
2157 * gcc-interface/config-lang.in: Likewise.
2158 * gcc-interface/cuintp.cc: Likewise.
2159 * gcc-interface/decl.cc: Likewise.
2160 * gcc-interface/gadaint.h: Likewise.
2161 * gcc-interface/gigi.h: Likewise.
2162 * gcc-interface/lang-specs.h: Likewise.
2163 * gcc-interface/lang.opt: Likewise.
2164 * gcc-interface/misc.cc: Likewise.
2165 * gcc-interface/system.ads: Likewise.
2166 * gcc-interface/targtyps.cc: Likewise.
2167 * gcc-interface/trans.cc: Likewise.
2168 * gcc-interface/utils.cc: Likewise.
2169 * gcc-interface/utils2.cc: Likewise.
2171 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2173 * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
2175 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2177 * exp_ch3.adb (Make_Allocator_For_Return): Convert the expression
2178 to the return object's type in the constrained array case as well.
2180 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2182 * exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non-
2183 interface stand-alone object initialized by a function call, call
2184 Remove_Side_Effects on the expression to capture the result.
2186 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2188 * exp_util.ads (Has_Tag_Of_Type): Declare.
2189 * exp_util.adb (Has_Tag_Of_Type): Move to package level. Recurse on
2190 qualified expressions.
2191 * exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference
2192 to the interface tag in more cases for class-wide interface objects.
2194 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2196 * exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto.
2198 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2200 * exp_util.adb (Is_Temporary_For_Interface_Object): Delete.
2201 (Is_Finalizable_Transient.Is_Aliased): Deal with the specific case
2202 of temporaries generated for interface objects.
2204 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2206 * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back-
2207 and-forth displacement of the object's address when using a renaming
2208 for an interface object with an expression of the same type.
2209 * exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side
2210 effects of the expression up front for the simple allocators. Do not
2211 call the Adjust primitive if the expression is a function call.
2212 * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call
2213 unnecessarily for a special return object.
2214 (Expand_Simple_Function_Return): Restore the displacement of the
2215 return object's address in the case where the expression is the call
2216 to a function whose result type is a type that needs finalization.
2217 * exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side
2218 effects of the expression before calling Make_Subtype_From_Expr.
2219 (Make_CW_Equivalent_Type): If the expression has the tag of its type
2220 and this type has a uniform size, use 'Object_Size of this type in
2221 lieu of 'Size of the expression to compute the expression's size.
2223 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2225 * exp_ch3.adb (Make_Allocator_For_Return): Put back an interface
2226 conversion for expressions with non-interface class-wide type.
2228 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2230 * exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased
2231 objects if their nominal subtype is not an unconstrained array.
2233 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2235 * exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions
2236 needed for an initializating expression that is a function call to
2237 be renamable into the Is_Renamable_Function_Call predicate.
2238 Use it to implement the renaming in the case of class-wide interface
2239 objects. Remove an interface conversion on all paths, separate and
2240 optimize the renaming path in the special expansion for interfaces.
2241 (Is_Renamable_Function_Call): New predicate.
2242 (Make_Allocator_For_Return): Put back an interface conversion.
2243 * exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access
2244 checks on RE_Tag_Ptr.
2246 2023-01-09 Arnaud Charlet <charlet@adacore.com>
2248 * accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year.
2249 * adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise.
2250 * adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise.
2251 * ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise.
2252 * aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise.
2253 * aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise.
2254 * backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise.
2255 * binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise.
2256 * bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise.
2257 * bindo-builders.ads, bindo-diagnostics.adb: Likewise.
2258 * bindo-diagnostics.ads, bindo-elaborators.adb: Likewise.
2259 * bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise.
2260 * bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise.
2261 * bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise.
2262 * bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise.
2263 * butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise.
2264 * checks.ads, cio.c, clean.adb, clean.ads: Likewise.
2265 * comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise.
2266 * csets.adb, csets.ads, cstand.adb: Likewise.
2267 * cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise.
2268 * debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise.
2269 * einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise.
2270 * env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise.
2271 * erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise.
2272 * eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise.
2273 * exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise.
2274 * exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise.
2275 * exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise.
2276 * exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise.
2277 * exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise.
2278 * exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise.
2279 * exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise.
2280 * exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise.
2281 * exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise.
2282 * exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise.
2283 * exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise.
2284 * exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise.
2285 * exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise.
2286 * exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise.
2287 * exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise.
2288 * exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise.
2289 * final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise.
2290 * fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise.
2291 * freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise.
2292 * gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise.
2293 * gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise.
2294 * gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise.
2295 * gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise.
2296 * get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise.
2297 * gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise.
2298 * gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise.
2299 * gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise.
2300 * gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise.
2301 * gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise.
2302 * gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise.
2303 * gprep.adb, gprep.ads, gsocket.h: Likewise.
2304 * hostparm.ads: Likewise.
2305 * impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise.
2306 * indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise.
2307 * initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise.
2308 * krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise.
2309 * lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise.
2310 * lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise.
2311 * lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise.
2312 * lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise.
2313 * libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise.
2314 * libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise.
2315 * libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise.
2316 * libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise.
2317 * libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise.
2318 * libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise.
2319 * libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise.
2320 * libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise.
2321 * libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise.
2322 * libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise.
2323 * libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise.
2324 * libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise.
2325 * libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise.
2326 * libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise.
2327 * libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise.
2328 * libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise.
2329 * libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise.
2330 * libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise.
2331 * libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise.
2332 * libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise.
2333 * libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise.
2334 * libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise.
2335 * libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise.
2336 * libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise.
2337 * libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise.
2338 * libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise.
2339 * libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise.
2340 * libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise.
2341 * libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise.
2342 * libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise.
2343 * libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise.
2344 * libgnarl/s-interr__sigaction.adb: Likewise.
2345 * libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise.
2346 * libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise.
2347 * libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise.
2348 * libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise.
2349 * libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise.
2350 * libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise.
2351 * libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise.
2352 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise.
2353 * libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise.
2354 * libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise.
2355 * libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise.
2356 * libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise.
2357 * libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise.
2358 * libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise.
2359 * libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise.
2360 * libgnarl/s-osinte__dragonfly.adb: Likewise.
2361 * libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise.
2362 * libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise.
2363 * libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise.
2364 * libgnarl/s-osinte__hpux-dce.adb: Likewise.
2365 * libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise.
2366 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
2367 * libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise.
2368 * libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise.
2369 * libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise.
2370 * libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise.
2371 * libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise.
2372 * libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise.
2373 * libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise.
2374 * libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise.
2375 * libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise.
2376 * libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise.
2377 * libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise.
2378 * libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise.
2379 * libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise.
2380 * libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise.
2381 * libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise.
2382 * libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise.
2383 * libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise.
2384 * libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise.
2385 * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise.
2386 * libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise.
2387 * libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise.
2388 * libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise.
2389 * libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise.
2390 * libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise.
2391 * libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise.
2392 * libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise.
2393 * libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise.
2394 * libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise.
2395 * libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise.
2396 * libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise.
2397 * libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise.
2398 * libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise.
2399 * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
2400 * libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise.
2401 * libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise.
2402 * libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise.
2403 * libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise.
2404 * libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise.
2405 * libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise.
2406 * libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise.
2407 * libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise.
2408 * libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise.
2409 * libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise.
2410 * libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise.
2411 * libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise.
2412 * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
2413 * libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise.
2414 * libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
2415 * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
2416 * libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise.
2417 * libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise.
2418 * libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise.
2419 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
2420 * libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise.
2421 * libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise.
2422 * libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise.
2423 * libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise.
2424 * libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise.
2425 * libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise.
2426 * libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise.
2427 * libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise.
2428 * libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise.
2429 * libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise.
2430 * libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise.
2431 * libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise.
2432 * libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise.
2433 * libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise.
2434 * libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise.
2435 * libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise.
2436 * libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise.
2437 * libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise.
2438 * libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise.
2439 * libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise.
2440 * libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise.
2441 * libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise.
2442 * libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise.
2443 * libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise.
2444 * libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise.
2445 * libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise.
2446 * libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise.
2447 * libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise.
2448 * libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise.
2449 * libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise.
2450 * libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise.
2451 * libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise.
2452 * libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise.
2453 * libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise.
2454 * libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise.
2455 * libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise.
2456 * libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise.
2457 * libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise.
2458 * libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise.
2459 * libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise.
2460 * libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise.
2461 * libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise.
2462 * libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise.
2463 * libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise.
2464 * libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise.
2465 * libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise.
2466 * libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise.
2467 * libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise.
2468 * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise.
2469 * libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise.
2470 * libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise.
2471 * libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise.
2472 * libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise.
2473 * libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise.
2474 * libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise.
2475 * libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise.
2476 * libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise.
2477 * libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise.
2478 * libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise.
2479 * libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise.
2480 * libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise.
2481 * libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise.
2482 * libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise.
2483 * libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise.
2484 * libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise.
2485 * libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise.
2486 * libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise.
2487 * libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise.
2488 * libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise.
2489 * libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise.
2490 * libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise.
2491 * libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise.
2492 * libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise.
2493 * libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise.
2494 * libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise.
2495 * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise.
2496 * libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise.
2497 * libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise.
2498 * libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise.
2499 * libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise.
2500 * libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise.
2501 * libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise.
2502 * libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise.
2503 * libgnat/a-excach.adb, libgnat/a-except.adb: Likewise.
2504 * libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise.
2505 * libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise.
2506 * libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise.
2507 * libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise.
2508 * libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise.
2509 * libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise.
2510 * libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise.
2511 * libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise.
2512 * libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise.
2513 * libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise.
2514 * libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise.
2515 * libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise.
2516 * libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise.
2517 * libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise.
2518 * libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise.
2519 * libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise.
2520 * libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise.
2521 * libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise.
2522 * libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise.
2523 * libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise.
2524 * libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise.
2525 * libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise.
2526 * libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise.
2527 * libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise.
2528 * libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise.
2529 * libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise.
2530 * libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise.
2531 * libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise.
2532 * libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise.
2533 * libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise.
2534 * libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise.
2535 * libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise.
2536 * libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise.
2537 * libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise.
2538 * libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise.
2539 * libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise.
2540 * libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise.
2541 * libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise.
2542 * libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise.
2543 * libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise.
2544 * libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise.
2545 * libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise.
2546 * libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise.
2547 * libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise.
2548 * libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise.
2549 * libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise.
2550 * libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise.
2551 * libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise.
2552 * libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise.
2553 * libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise.
2554 * libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise.
2555 * libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise.
2556 * libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise.
2557 * libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise.
2558 * libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise.
2559 * libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise.
2560 * libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise.
2561 * libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise.
2562 * libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise.
2563 * libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise.
2564 * libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise.
2565 * libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise.
2566 * libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise.
2567 * libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise.
2568 * libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise.
2569 * libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise.
2570 * libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise.
2571 * libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise.
2572 * libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise.
2573 * libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise.
2574 * libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise.
2575 * libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise.
2576 * libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise.
2577 * libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise.
2578 * libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise.
2579 * libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise.
2580 * libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise.
2581 * libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise.
2582 * libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise.
2583 * libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise.
2584 * libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise.
2585 * libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise.
2586 * libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise.
2587 * libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise.
2588 * libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise.
2589 * libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise.
2590 * libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise.
2591 * libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise.
2592 * libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise.
2593 * libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise.
2594 * libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise.
2595 * libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise.
2596 * libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise.
2597 * libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise.
2598 * libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise.
2599 * libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise.
2600 * libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise.
2601 * libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise.
2602 * libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise.
2603 * libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise.
2604 * libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise.
2605 * libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise.
2606 * libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise.
2607 * libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise.
2608 * libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise.
2609 * libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise.
2610 * libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise.
2611 * libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise.
2612 * libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise.
2613 * libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise.
2614 * libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise.
2615 * libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise.
2616 * libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise.
2617 * libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise.
2618 * libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise.
2619 * libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise.
2620 * libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise.
2621 * libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise.
2622 * libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise.
2623 * libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise.
2624 * libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise.
2625 * libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise.
2626 * libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise.
2627 * libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise.
2628 * libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise.
2629 * libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise.
2630 * libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise.
2631 * libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise.
2632 * libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise.
2633 * libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise.
2634 * libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise.
2635 * libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise.
2636 * libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise.
2637 * libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise.
2638 * libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise.
2639 * libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise.
2640 * libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise.
2641 * libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise.
2642 * libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise.
2643 * libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise.
2644 * libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise.
2645 * libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise.
2646 * libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise.
2647 * libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise.
2648 * libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise.
2649 * libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise.
2650 * libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise.
2651 * libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise.
2652 * libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise.
2653 * libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise.
2654 * libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise.
2655 * libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise.
2656 * libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise.
2657 * libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise.
2658 * libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise.
2659 * libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise.
2660 * libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise.
2661 * libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise.
2662 * libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise.
2663 * libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise.
2664 * libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise.
2665 * libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise.
2666 * libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise.
2667 * libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise.
2668 * libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise.
2669 * libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise.
2670 * libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise.
2671 * libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise.
2672 * libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise.
2673 * libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise.
2674 * libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise.
2675 * libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise.
2676 * libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise.
2677 * libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise.
2678 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise.
2679 * libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise.
2680 * libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise.
2681 * libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise.
2682 * libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise.
2683 * libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise.
2684 * libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise.
2685 * libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise.
2686 * libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise.
2687 * libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise.
2688 * libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise.
2689 * libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise.
2690 * libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise.
2691 * libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise.
2692 * libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise.
2693 * libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise.
2694 * libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise.
2695 * libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise.
2696 * libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise.
2697 * libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise.
2698 * libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise.
2699 * libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise.
2700 * libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise.
2701 * libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise.
2702 * libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise.
2703 * libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise.
2704 * libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise.
2705 * libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise.
2706 * libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise.
2707 * libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise.
2708 * libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise.
2709 * libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise.
2710 * libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise.
2711 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise.
2712 * libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise.
2713 * libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise.
2714 * libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise.
2715 * libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise.
2716 * libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise.
2717 * libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise.
2718 * libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise.
2719 * libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise.
2720 * libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise.
2721 * libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise.
2722 * libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise.
2723 * libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise.
2724 * libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise.
2725 * libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise.
2726 * libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise.
2727 * libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise.
2728 * libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise.
2729 * libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise.
2730 * libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise.
2731 * libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise.
2732 * libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise.
2733 * libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise.
2734 * libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise.
2735 * libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise.
2736 * libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise.
2737 * libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise.
2738 * libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise.
2739 * libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise.
2740 * libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise.
2741 * libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise.
2742 * libgnat/g-string.adb, libgnat/g-string.ads: Likewise.
2743 * libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise.
2744 * libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise.
2745 * libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise.
2746 * libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise.
2747 * libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise.
2748 * libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise.
2749 * libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise.
2750 * libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise.
2751 * libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise.
2752 * libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise.
2753 * libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise.
2754 * libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise.
2755 * libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise.
2756 * libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise.
2757 * libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise.
2758 * libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise.
2759 * libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise.
2760 * libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise.
2761 * libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise.
2762 * libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise.
2763 * libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise.
2764 * libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise.
2765 * libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise.
2766 * libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise.
2767 * libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise.
2768 * libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise.
2769 * libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise.
2770 * libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise.
2771 * libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise.
2772 * libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise.
2773 * libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise.
2774 * libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise.
2775 * libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise.
2776 * libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise.
2777 * libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise.
2778 * libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise.
2779 * libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise.
2780 * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise.
2781 * libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise.
2782 * libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise.
2783 * libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise.
2784 * libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise.
2785 * libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise.
2786 * libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise.
2787 * libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise.
2788 * libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise.
2789 * libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise.
2790 * libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise.
2791 * libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise.
2792 * libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise.
2793 * libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise.
2794 * libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise.
2795 * libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise.
2796 * libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise.
2797 * libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise.
2798 * libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise.
2799 * libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise.
2800 * libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise.
2801 * libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise.
2802 * libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise.
2803 * libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise.
2804 * libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise.
2805 * libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise.
2806 * libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise.
2807 * libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise.
2808 * libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise.
2809 * libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise.
2810 * libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise.
2811 * libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise.
2812 * libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise.
2813 * libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise.
2814 * libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise.
2815 * libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise.
2816 * libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise.
2817 * libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise.
2818 * libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise.
2819 * libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise.
2820 * libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise.
2821 * libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise.
2822 * libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise.
2823 * libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise.
2824 * libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise.
2825 * libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise.
2826 * libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise.
2827 * libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise.
2828 * libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise.
2829 * libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise.
2830 * libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise.
2831 * libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise.
2832 * libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise.
2833 * libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise.
2834 * libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise.
2835 * libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise.
2836 * libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise.
2837 * libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise.
2838 * libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise.
2839 * libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise.
2840 * libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise.
2841 * libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise.
2842 * libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise.
2843 * libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise.
2844 * libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise.
2845 * libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise.
2846 * libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise.
2847 * libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise.
2848 * libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise.
2849 * libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise.
2850 * libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise.
2851 * libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise.
2852 * libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise.
2853 * libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise.
2854 * libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise.
2855 * libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise.
2856 * libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise.
2857 * libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise.
2858 * libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise.
2859 * libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise.
2860 * libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise.
2861 * libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise.
2862 * libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise.
2863 * libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise.
2864 * libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise.
2865 * libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise.
2866 * libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise.
2867 * libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise.
2868 * libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise.
2869 * libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise.
2870 * libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise.
2871 * libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise.
2872 * libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise.
2873 * libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise.
2874 * libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise.
2875 * libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise.
2876 * libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise.
2877 * libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise.
2878 * libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise.
2879 * libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise.
2880 * libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise.
2881 * libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise.
2882 * libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise.
2883 * libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise.
2884 * libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise.
2885 * libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise.
2886 * libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise.
2887 * libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise.
2888 * libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise.
2889 * libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise.
2890 * libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise.
2891 * libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise.
2892 * libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise.
2893 * libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise.
2894 * libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise.
2895 * libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise.
2896 * libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise.
2897 * libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise.
2898 * libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise.
2899 * libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise.
2900 * libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise.
2901 * libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise.
2902 * libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise.
2903 * libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise.
2904 * libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise.
2905 * libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise.
2906 * libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise.
2907 * libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise.
2908 * libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise.
2909 * libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise.
2910 * libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise.
2911 * libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise.
2912 * libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise.
2913 * libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise.
2914 * libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise.
2915 * libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise.
2916 * libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise.
2917 * libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise.
2918 * libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise.
2919 * libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise.
2920 * libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise.
2921 * libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise.
2922 * libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise.
2923 * libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise.
2924 * libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise.
2925 * libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise.
2926 * libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise.
2927 * libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise.
2928 * libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise.
2929 * libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise.
2930 * libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise.
2931 * libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise.
2932 * libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise.
2933 * libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise.
2934 * libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise.
2935 * libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise.
2936 * libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise.
2937 * libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise.
2938 * libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise.
2939 * libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise.
2940 * libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise.
2941 * libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise.
2942 * libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise.
2943 * libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise.
2944 * libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise.
2945 * libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise.
2946 * libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise.
2947 * libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise.
2948 * libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise.
2949 * libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise.
2950 * libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise.
2951 * libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise.
2952 * libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise.
2953 * libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise.
2954 * libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise.
2955 * libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise.
2956 * libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise.
2957 * libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise.
2958 * libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise.
2959 * libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise.
2960 * libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise.
2961 * libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise.
2962 * libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise.
2963 * libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise.
2964 * libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise.
2965 * libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise.
2966 * libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise.
2967 * libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise.
2968 * libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise.
2969 * libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise.
2970 * libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise.
2971 * libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise.
2972 * libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise.
2973 * libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise.
2974 * libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise.
2975 * libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise.
2976 * libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise.
2977 * libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise.
2978 * libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise.
2979 * libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise.
2980 * libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise.
2981 * libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise.
2982 * libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise.
2983 * libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise.
2984 * libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise.
2985 * libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise.
2986 * libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise.
2987 * libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise.
2988 * libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise.
2989 * libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise.
2990 * libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise.
2991 * libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise.
2992 * libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise.
2993 * libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise.
2994 * libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise.
2995 * libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise.
2996 * libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise.
2997 * libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise.
2998 * libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise.
2999 * libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise.
3000 * libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise.
3001 * libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise.
3002 * libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise.
3003 * libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise.
3004 * libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise.
3005 * libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise.
3006 * libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise.
3007 * libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise.
3008 * libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise.
3009 * libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise.
3010 * libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise.
3011 * libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise.
3012 * libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise.
3013 * libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise.
3014 * libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise.
3015 * libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise.
3016 * libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise.
3017 * libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise.
3018 * libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise.
3019 * libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise.
3020 * libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise.
3021 * libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise.
3022 * libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise.
3023 * libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise.
3024 * libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise.
3025 * libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise.
3026 * libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise.
3027 * libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise.
3028 * libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise.
3029 * libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise.
3030 * libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise.
3031 * libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise.
3032 * libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise.
3033 * libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise.
3034 * libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise.
3035 * libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise.
3036 * libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise.
3037 * libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise.
3038 * libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise.
3039 * libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise.
3040 * libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise.
3041 * libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise.
3042 * libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise.
3043 * libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise.
3044 * libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise.
3045 * libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise.
3046 * libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise.
3047 * libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise.
3048 * libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise.
3049 * libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise.
3050 * libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise.
3051 * libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise.
3052 * libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise.
3053 * libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise.
3054 * libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise.
3055 * libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise.
3056 * libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise.
3057 * libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise.
3058 * libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise.
3059 * libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise.
3060 * libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise.
3061 * libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise.
3062 * libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise.
3063 * libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise.
3064 * libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise.
3065 * libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise.
3066 * libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise.
3067 * libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise.
3068 * libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise.
3069 * libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise.
3070 * libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise.
3071 * libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise.
3072 * libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise.
3073 * libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise.
3074 * libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise.
3075 * libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise.
3076 * libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise.
3077 * libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise.
3078 * libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise.
3079 * libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise.
3080 * libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise.
3081 * libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise.
3082 * libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise.
3083 * libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise.
3084 * libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise.
3085 * libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise.
3086 * libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise.
3087 * libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise.
3088 * libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise.
3089 * libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise.
3090 * libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise.
3091 * libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise.
3092 * libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise.
3093 * libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise.
3094 * libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise.
3095 * libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise.
3096 * libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise.
3097 * libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise.
3098 * libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise.
3099 * libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise.
3100 * libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise.
3101 * libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise.
3102 * libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise.
3103 * libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise.
3104 * libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise.
3105 * libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise.
3106 * libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise.
3107 * libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise.
3108 * libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise.
3109 * libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise.
3110 * libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise.
3111 * libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise.
3112 * libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise.
3113 * libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise.
3114 * libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise.
3115 * libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise.
3116 * libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise.
3117 * libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise.
3118 * libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise.
3119 * libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise.
3120 * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise.
3121 * libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise.
3122 * libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise.
3123 * libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise.
3124 * libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise.
3125 * libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise.
3126 * libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise.
3127 * libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise.
3128 * libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise.
3129 * libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise.
3130 * libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise.
3131 * libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise.
3132 * libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise.
3133 * libgnat/system-solaris-sparc.ads: Likewise.
3134 * libgnat/system-solaris-x86.ads: Likewise.
3135 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
3136 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
3137 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
3138 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
3139 * libgnat/system-vxworks7-aarch64.ads: Likewise.
3140 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
3141 * libgnat/system-vxworks7-arm.ads: Likewise.
3142 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
3143 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
3144 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
3145 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
3146 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
3147 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
3148 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
3149 * libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise.
3150 * live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise.
3151 * make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise.
3152 * mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise.
3153 * mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise.
3154 * namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise.
3155 * opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise.
3156 * osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise.
3157 * osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise.
3158 * par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise.
3159 * par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise.
3160 * par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise.
3161 * par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise.
3162 * par.ads, par_sco.adb, par_sco.ads: Likewise.
3163 * pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise.
3164 * prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise.
3165 * raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise.
3166 * repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise.
3167 * restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise.
3168 * rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise.
3169 * scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise.
3170 * scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise.
3171 * scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise.
3172 * sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise.
3173 * sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise.
3174 * sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise.
3175 * sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise.
3176 * sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise.
3177 * sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise.
3178 * sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise.
3179 * sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise.
3180 * sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise.
3181 * sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise.
3182 * sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise.
3183 * sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise.
3184 * sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise.
3185 * sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise.
3186 * sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise.
3187 * sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise.
3188 * sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise.
3189 * sigtramp-ios.c, sigtramp-qnx.c: Likewise.
3190 * sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise.
3191 * sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise.
3192 * sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise.
3193 * sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise.
3194 * sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise.
3195 * sprint.adb, sprint.ads, stand.ads: Likewise.
3196 * stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise.
3197 * style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise.
3198 * stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise.
3199 * switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise.
3200 * switch.ads, sysdep.c, table.adb: Likewise.
3201 * table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise.
3202 * tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise.
3203 * treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise.
3204 * types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise.
3205 * urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise.
3206 * validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise.
3207 * warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise.
3208 * xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise.
3209 * gnatvsn.ads (Current_Year): Likewise and bump to 2023.
3211 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
3213 * exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement.
3214 (Make_Final_Call): Likewise.
3216 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
3218 * exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete.
3219 (Is_Displacement_Of_Object_Or_Function_Result): Likewise.
3220 * exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to...
3221 (Is_Temporary_For_Interface_Object): ...this.
3222 (Is_Finalizable_Transient): Adjust call to above renaming.
3223 (Is_Displacement_Of_Object_Or_Function_Result): Delete.
3224 (Requires_Cleanup_Actions): Remove special handling of the
3225 temporaries created for interface objects.
3226 * exp_ch7.adb (Build_Finalizer): Likewise.
3228 2023-01-07 LIU Hao <lh_mouse@126.com>
3230 PR middle-end/108300
3231 * adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include
3234 * ctrl_c.c: Likewise.
3235 * expect.c: Likewise.
3236 * gsocket.h: Likewise.
3237 * mingw32.h: Likewise.
3238 * mkdir.c: Likewise.
3239 * rtfinal.c: Likewise.
3240 * rtinit.c: Likewise.
3241 * seh_init.c: Likewise.
3242 * sysdep.c: Likewise.
3243 * terminals.c: Likewise.
3244 * tracebak.c: Likewise.
3246 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3248 * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak.
3250 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3252 * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the
3253 handling of objects with (class-wide) interface type by using the
3254 same idiom as the other cases generating a renaming.
3255 * exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak
3256 pattern matching code and exclude special return objects.
3257 (Requires_Cleanup_Actions): Adjust comment.
3258 * exp_ch7.adb (Build_Finalizer): Likewise.
3260 2023-01-05 Piotr Trojanek <trojanek@adacore.com>
3262 * freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to
3263 subprogram declaration early and then set the Body_To_Inling flag.
3265 2023-01-05 Piotr Trojanek <trojanek@adacore.com>
3267 * freeze.adb (Build_Renamed_Body): Revert a special case for
3268 GNATprove; remove unnecessary initialization of a local variable.
3270 2023-01-05 Marc Poulhiès <poulhies@adacore.com>
3272 * sem_ch12.adb (Instantiate_Package_Body): Better filtering when
3273 installing parent on the scope stack.
3275 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3277 * repinfo.ads (The JSON output format): Document change.
3278 * urealp.adb (UR_Write_To_JSON): Output a fraction instead of a
3279 decimal approximation.
3281 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3283 * exp_ch3.adb (Expand_N_Object_Declaration): New local variable
3284 Func_Id holding the function for a special return object.
3285 Use a direct renaming in the class-wide case when the initializing
3286 expression is a captured function call, except for a special return
3287 object when the two functions do not return on the same stack.
3288 Apply the accessibility check for class-wide special return objects.
3289 * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New.
3290 Do not force a dispatching call to the primitive operation _Size if
3291 the expression is known to statically have the tag of its type.
3293 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3295 * exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment.
3297 2023-01-05 Ronan Desplanques <desplanques@adacore.com>
3299 * sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for
3300 warning about use of parentheses for array aggregates.
3302 2023-01-05 Javier Miranda <miranda@adacore.com>
3304 * scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket)
3305 (Tok_Left_Interpolated_String): Placed in no category since they
3306 don't fit well in the existing categories. Fix typo in comment.
3307 (Inside_Interpolated_String_Literal): New scan state variable.
3308 * scng.adb (Slit): Scan interpolated string literals,
3309 continuations of interpolated string literals and escaped
3310 characters found in interpolated string literals.
3311 (Scan): Handle consecutive interpolated expressions. Handle ending
3312 delimiter placed immediately after an interpolated expression.
3313 Handle string literal placed after interpolated expression. Handle
3314 left and right curly brackets; when extensions are not allowed
3315 they are treated as left and right paren; when extensions are
3316 allowed they are handled as delimiters of interpolated string
3318 * sinfo.ads (N_Interpolated_String_Literal): New node.
3319 * gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define
3320 N_String_Literal node.
3321 * gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as
3323 * par-ch2.adb (P_Interpolated_String_Literal): New subprogram.
3324 * par-ch4.adb (P_Simple_Expression): Handle '}' as expression
3325 terminator when scanning an interpolated expression; disable error
3326 recovery machinery for binary operator when we are processing an
3327 interpolated string literal and reach the expression terminator
3329 (P_Primary): Call P_Interpolated_String_Literal when the opening
3330 interpolated-string-literal delimiter is found (that is, the left
3332 * par-tchk.adb (T_Right_Curly_Bracket): New subprogram.
3333 * par.adb (P_Interpolated_String_Literal): New declaration.
3334 (T_Right_Curly_Bracket): New declaration.
3335 * sem.adb (Analyze): Call Analyze_Interpolated_String_Literal.
3336 * sem_ch2.ads (Analyze_Interpolated_String_Literal): New
3338 * sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise.
3339 * sem_util.adb (Is_User_Defined_Literal): Complete mapping of
3340 literal aspects adding that interpolated string literals have no
3341 correspondence with any aspect.
3342 * sem_res.adb (Resolve_Interpolated_String_Literal): New
3344 (Has_Applicable_User_Defined_Literal): Complete mapping of literal
3345 aspects adding that interpolated string literals have no
3346 correspondency with any aspect.
3347 * expander.adb (Expand): Add call to
3348 Expand_N_Interpolated_String_Literal.
3349 * exp_util.adb (Insert_Actions): Handle
3350 N_Interpolated_String_Literal nodes; that is, continue climbing.
3351 * exp_ch2.ads (Expand_N_Interpolated_String_Literal): New
3353 * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise.
3354 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing
3355 conversion to force dispatching call. Required to handle calls to
3357 (Build_String_Put_Image_Call): Do not output string delimiters
3358 when the put_image call is part of an interpolated string literal.
3359 * rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces.
3360 * sprint.adb (Sprint_Node): Output interpolated string contents.
3361 * libgnat/a-stbubo.adb (Get_UTF_8): Add default value for
3362 Trim_Leading_White_Spaces component in aggregate.
3363 (Buffer_Type_Implementation): Update Trim_Leading_White_Spaces.
3364 * libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
3365 (Buffer_Type_Implementation): Likewise.
3366 * libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram.
3367 (Trim_Leading_Spaces): New subprogram.
3368 (Root_Buffer_Type): Adding Trim_Leading_While_Spaces component.
3369 * libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New
3371 (Trim_Leading_Space): New subprogram.
3372 (Put_UTF_8): Handle Trim_Leading_White_Spaces.
3373 (New_Line): Likewise.
3374 * libgnat/s-putima.ads (Put_Image_String): Adding formal
3376 (Put_Image_Wide_String): Likewise.
3377 (Put_Image_Wide_Wide_String): Likewise.
3378 * libgnat/s-putima.adb (Put_Image_String): Adding support for new
3380 (Put_Image_Wide_String): Likewise.
3381 (Put_Image_Wide_Wide_String): Likewise.
3383 2023-01-05 Joao Azevedo <azevedo@adacore.com>
3385 * doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout
3386 switch and update legacy switches.
3388 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3390 * freeze.adb (Freeze_Entity): For the purpose of deciding whether to
3391 freeze an entity coming from an outer scope in an inner scope, treat
3392 the internal subprogram generated because of post-conditions as also
3393 coming from source if the original subprogram itself does.
3395 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3397 * contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an
3398 extended return statement in all cases.
3399 (Expand_Subprogram_Contract): Adjust comment.
3401 2023-01-05 Ronan Desplanques <desplanques@adacore.com>
3403 * libgnat/g-forstr.adb (F_Kind): Rename enumeration literal.
3404 (P_Flt_Format): Adjust handling of "%g".
3405 (Determine_Notation_And_Aft): New procedure.
3406 (Decimal_Exponent): New function.
3407 (Increment_Integral_Part): New procedure.
3408 (Remove_Extraneous_Decimal_Digit): New procedure.
3409 (Trim_Fractional_Part): New procedure.
3410 * libgnat/g-forstr.ads: Change description of "%g" specifier.
3412 2023-01-05 Marc Poulhiès <poulhies@adacore.com>
3414 * sem_ch12.adb (Instantiate_Package_Body): Correctly find the
3415 parent instance to place on the scope stack.
3417 2023-01-05 Justin Squirek <squirek@adacore.com>
3419 * sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually
3420 resetting the entity field of a non-prefixed discriminant
3423 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3425 * exp_ch3.adb (Expand_N_Object_Declaration): New local variable used
3426 throughout instead of testing Is_Special_Return_Object every time.
3427 Do not rename an OK_To_Rename object for a special return object.
3428 * exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation
3429 if the result is allocated on the secondary stack.
3431 2023-01-05 Steve Baird <baird@adacore.com>
3433 * sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma
3434 function to handle case where the pragma's parent is an
3435 N_Aspect_Specification node. In analyzing a Discard_Names pragma,
3436 do not assume that a nonzero number of arguments implies that the
3437 pragma is not a configuration pragma; that assumption only holds
3440 2023-01-05 Bob Duff <duff@adacore.com>
3442 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
3444 * gnat_ugn.texi: Regenerate.
3446 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3448 * exp_ch3.adb (Expand_N_Object_Declaration): For a special return
3449 object of an interface type that is not inherently limited, make
3450 a call to the Adjust primitive after doing the copy. For a special
3451 return object of a non-class-wide type initialized by a function
3452 call, use a direct renaming only if the object doing the capture
3453 is flagged by Is_Related_To_Func_Return. For a special return
3454 object using a direct renaming, reassign the tag, if need be.
3455 * exp_ch6.adb (Expand_Simple_Function_Return): Fix comment.
3456 * exp_util.adb (Is_Related_To_Func_Return): Accept both regular and
3457 renaming object declarations for return objects.
3459 2023-01-05 Bob Duff <duff@adacore.com>
3461 * sem_ch5.adb (Analyze_Assignment): Fix the bug by checking
3462 Original_Node. The renaming might be elsewhere, but the (original)
3463 reference is right here.
3464 * errout.adb: Remove pragma Unreferenced which was added because
3466 * einfo.ads: Misc cleanup.
3467 * lib.adb: Likewise.
3468 * lib.ads: Likewise.
3470 2023-01-03 Ghjuvan Lacambre <lacambre@adacore.com>
3472 * errout.adb (Write_JSON_Span): Escape subprogram name.
3474 2023-01-03 Ghjuvan Lacambre <lacambre@adacore.com>
3476 * output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol.
3478 2023-01-03 Ronan Desplanques <desplanques@adacore.com>
3480 * libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling.
3482 2023-01-03 Ronan Desplanques <desplanques@adacore.com>
3484 * libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug.
3486 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
3488 * exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a
3489 captured function call also verifies Is_Related_To_Func_Return.
3490 Do not generate an actual subtype for special return objects.
3491 * exp_util.ads (Is_Related_To_Func_Return): Add commentary.
3493 2023-01-03 Ronan Desplanques <desplanques@adacore.com>
3495 * libgnat/g-forstr.adb
3496 (Advance_And_Accumulate_Until_Next_Specifier): New procedure.
3497 ("-"): Replace inline code with call to
3498 Advance_And_Accumulate_Until_Next_Specifier.
3499 (Next_Format): likewise.
3501 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
3503 * checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference):
3504 Return false for artificial dereferences generated by the expander.
3506 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
3508 * exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment.
3509 * sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref
3510 on functions with foreign convention.
3512 2023-01-03 Marc Poulhiès <poulhies@adacore.com>
3514 * exp_aggr.adb (Build_Assignment_With_Temporary): New.
3515 (Expand_Array_Aggregate): Tune backend optimization
3516 and insert a temporary in the case of an access with
3517 Designated_Storage_Model aspect.
3518 (Convert_Array_Aggr_In_Allocator): Likewise.
3520 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
3522 * sem_res.adb (Resolve_Membership_Op): Adjust again latest change.
3524 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
3526 * sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment.
3527 * sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return
3528 false for more artificial dereferences generated by the expander.
3529 (Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally
3531 * exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the
3534 2023-01-03 Joel Brobecker <brobecker@adacore.com>
3536 * doc/gnat_ugn/platform_specific_information.rst
3537 (_Platform_Specific_Information): Minor rewording of intro text.
3538 * gnat_ugn.texi: Regenerate.
3540 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
3542 * exp_util.ads (Is_Captured_Function_Call): Declare.
3543 * exp_util.adb (Is_Captured_Function_Call): New predicate.
3544 * exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a
3545 rewritten function call as the initializing expression.
3546 * exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a
3547 rewritten function call as the returned expression.
3549 2023-01-03 Bob Duff <duff@adacore.com>
3551 * exp_util.adb (Integer_Type_For): Assertion and comment.
3552 (Small_Integer_Type_For): Remove some code and call
3553 Integer_Type_For instead.
3554 * sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..."
3555 seems overly pedantic here.
3556 * exp_attr.adb (Succ, Pred): Clean up: make the code as similar as
3558 * exp_ch4.adb: Minor: named notation.
3560 2023-01-03 Javier Miranda <miranda@adacore.com>
3562 * ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may
3563 appear within the class-wide precondition of a helper subprogram.
3564 This context is treated as suitable because it was already
3565 verified when we were analyzing the original class-wide
3568 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
3570 * exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the
3571 ancestor type for a derived array type.
3572 * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the
3573 common processing done on representation items.
3574 For Default_Component_Value and Default_Value, look into the first
3575 subtype to find out the representation items.
3577 2023-01-02 Iain Sandoe <iain@sandoe.co.uk>
3580 * gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS):
3581 Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and
3582 -static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered
3583 out for other hosts).
3585 2023-01-02 Jakub Jelinek <jakub@redhat.com>
3587 * gnat_ugn.texi: Bump @copying's copyright year.
3588 * gnat_rm.texi: Likewise.
3591 Copyright (C) 2023 Free Software Foundation, Inc.
3593 Copying and distribution of this file, with or without modification,
3594 are permitted in any medium without royalty provided the copyright
3595 notice and this notice are preserved.